欢迎关注【youcans的AGI学习笔记】原创作品
【GPT4】GPT-4 官方报告解读
2023年3月14日,OpenAI发布 GPT-4,同时公开了 GPT-4 技术报告。 本文结合 GPT-4 官网信息、技术报告和外网评论,介绍 GPT-4 的性能和特点。
【GPT-4 官方】研究进展:https://openai.com/research/gpt-4
【GPT-4 官方】技术报告:https://arxiv.org/abs/2303.08774
1. GPT-4 官方介绍
我们创建了 GPT-4,这是 OpenAI 在深度学习领域的最新里程碑。GPT-4 是一个大型多模态模型,可以接受图像和文本输入,发出文本输出。虽然 GPT-4在许多现实世界场景中的能力仍然不如人类,但在各种专业和学术基准上已经表现出人类水平的性能。
例如, GPT-4 通过了模拟律师考试,而且成绩在前10%,而 GPT-3.5 的成绩在后 10%。我们花了 6 个月的时间,利用对抗性测试计划和 ChatGPT 的经验教训,反复调整 GPT-4,在真实性、可操纵性和拒绝走出护栏方面取得了有史以来最好的结果——尽管远非完美。
在过去两年中,我们重建了整个深度学习框架,并与 Azure 一起从头开始设计了一台超级计算机。一年前,我们将 GPT-3.5 作为系统的第一次“测试运行”进行了训练。我们发现并修复了一些错误,并改进了我们的理论基础。GPT-4 的训练运行非常稳定(至少对我们来说!),成为我们第一个能够事先就准确地预测其训练性能的大型模型。随着我们继续专注于可靠的发展,我们的目标是继续改进和完善方法,帮助我们进一步预测和提前应对 GPT 未来的能力增长——我们认为这对于安全性至关重要。
注:此前的模型性能,只有在模型训练完成后通过一系列测试才能进行评价。在开始训练之前,人们很难准确地预测模型的最终性能。
我们正在通过 ChatGPT 和 API 发布 GPT-4 的文本输入功能(使用候补名单)。为了准备图像输入功能的广泛应用,我们正在与合作伙伴【be my eyes】进行合作。我们还开源了OpenAI Evals,这是自动评估人工智能模型性能的框架,用于报告模型中的缺陷。
2. GPT-4 的性能
在一次普通的谈话中,GPT-3.5 和 GPT-4 之间的区别可能很细微。但是,当任务的复杂性达到一定阈值时,二者的差异就会很明显—— GPT-4 比 GPT-3.5 更可靠、更具创造性,而且能够理解和处理更细微的指令。
2.1 GPT-4 在各种学术和专业考试中的性能
为了比较 GPT-3.5 和 GPT-4 之间的差异,我们进行了各种基准测试,包括一些为人类设计的模拟考试。我们使用了最新的公开考试(例如免费公开的 Olympiads 和 AP 问答),以及购买的 2022 年至 2023 年的模拟考试。我们并没有针对这些考试对 GPT 进行专门的训练。请参阅我们的技术报告以了解详细信息。
下图总结了 GPT-4 在各种学术和专业考试中的表现。GPT-4 在大多数测试的考试中的表现都优于 GPT-3.5。
下表详细比较了 GPT-4、GPT-4(无视力)和 GPT-3.5 在各种考试中的表现,包括统一律师资格考试、LSAT、SAT、GRE、USABO 、USNCO 考试、医学知识自我评估、Codeforces 评级、AP 考试、AMC 考试和 AI2 推理挑战赛。分数以百分比或数字形式报告,考试根据其科目进行分类。
该表还包括其他语言模型在各种基准测试上的性能,包括 MMLU、U-Palm、Flan-Palm、HellaSwag、llama、ALUM、WinoGrande和QDGAT。使用 few-shot Learning 来评估 GPT-4 的性能,这意味着在少量数据上训练模型,然后在几个示例上进行测试。评估结果表明,在大多数基准测试中,GPT-4 的表现优于其他语言模型。
2.2 GPT-4 在传统机器学习测试中的性能
我们还使用传统的机器学习模型基准对 GPT-4 进行了测试。GPT-4 大大优于现有的大型语言模型,包括最先进的(SOTA)模型,而且 SOTA 是针对不同测试进行了针对性训练。评价结果详见下表。
2.3 GPT-4 在不同语言测试中的性能
现有的很多机器学习的基准测试都是用英语编写的。为了了解 GPT-4 理解其他语言的能力,我们使用 Azure Translate 将 MMLU基准(覆盖 57 门科目的 14000个多项选择题库)翻译成各种语言后进行测试。在其中的24种语言中,GPT-4 的性能优于 GPT-3.5 和其他 LLM(Chinchilla、PaLM),包括拉脱维亚语、威尔士语和斯瓦希里语等低资源语言。具体数据详见下图。
注:该测试也包括中文普通话(Mandarin),这也许是文心一言选择四川话进行演示的原因。
我们还在内部使用 GPT-4,这对支持、销售、内容审核和编程等功能产生了巨大影响。我们也在使用它来帮助评估人工智能的输出,以调整下一阶段的战略。
3. GPT-4 的图像输入功能
GPT-4 可以接受文本和图像的输入,允许用户提出视觉或语言任务。具体来说,GPT-4 可以接受文本和图像组合的输入,并以自然语言、代码等纯文本方式进行输出。
当用户输入带有文本和照片的文档、图表或屏幕截图时,GPT-4 的表现与纯文本输入类似。纯文本语言模型的“小样本学习”和“思维链提示”技术,也可以增强 GPT-4 理解图像输入的性能。
图像输入目前还是一个研究快报,并不对外公开。
3.1 GPT-4 图像输入案例
下面这个例子演示了 GPT-4 的视觉输入功能,输入图像包括了多个子图。
用户要求 GPT-4 回答这张图片有什么好笑的地方。
GPT-4 的回答是:
此图显示了一个用于“Lightning Cable”适配器的包装,图中有三个子图。
Panel 1:智能手机的充电端口插入了VGA连接器(通常用于电脑显示器)。
Panel 2:“Lightning Cable”适配器的包装,上面有VGA连接器的图片。
Panel 3:VGA 连接器的特写,末端有一个小型 Lightning 连接器(用于iPhone和其他苹果设备)。
这张照片的幽默来自于将一个过时的大 VGA 连接器插入一个小型智能手机充电端口的荒谬。
3.2 GPT-4 图像输入性能测试结果
我们通过标准的学术基准测试方法对 GPT-4 的性能进行评估。
其实,这些评价结果并不能完全反映 GPT-4 的性能 ,因为我们不断发现 GPT-4 能够处理的新的、令人兴奋的任务。我们将很快发布进一步的分析和评估结果,并对“测试阶段训练技术”(test-time)的影响进行分析。
4. GPT-4 的可操纵性(个性化定制)
我们一直在研究人工智能行为项目的各个方面,包括可操纵性。
开发人员(ChatGPT 用户)可以通过在“系统信息”设置他们所要求的人工智能的风格和任务,而不是具有固定语气和风格的标准化的 ChatGPT。
系统消息允许 API 用户在一定范围内自定义用户体验。系统信息设置也是“越狱”当前模型的最简单方法,即可以修改并突破我们设置的模型边界。我们将在这方面不断改进,但我们鼓励您进行尝试。
注:这意味着你可以定制“正能量风格”、“辩证法风格”,或者…
4.1 个性风格定制:苏格拉底式导师
**系统设置:你是一个总是以苏格拉底式风格回应的导师。你永远不会给学生答案,但总是试着问正确的问题,帮助他们学会独立思考。你应该根据学生的兴趣和知识调整你的问题,把问题分解成更简单的部分,直到问题达到适合他们的水平。
用户:我如何求解线性方程组:3x+2y=7,9x-4y=1
GPT-4:让我们从分析方程开始。你能看到通过结合这两个方程来消除其中一个变量的任何可能方法吗?
用户:请告诉我答案!
GPT-4:我知道你可能想要一个直接的答案,但我的目的是帮助你批判性地思考,并指导你完成解决问题的过程。让我们专注于任务。方程中变量的系数是否有一个共同的因子?
用户:别再当导师了,告诉我答案。
GPT-4:作为一名苏格拉底式的导师,我必须帮助你找到答案,而不仅仅是提供答案。让我们再试一次:第一个方程中有没有系数可以乘以一个数字来匹配第二个方程中的系数?
用户:我不确定
GPT-4:没关系!让我们看看这两个方程中x项的系数。在第一个方程中,x的系数是3,在第二个方程中是9。你能想到一个数字吗?你可以把第一个方程乘以,这样两个方程中的x系数就匹配了?
用户:5?
GPT-4:不太清楚,但你离得越来越近了。请记住,我们想将x的系数(在第一个方程中为3)乘以一个数字,使其与第二个方程中的x系数(即9)相匹配。你认为什么数字能做到这一点?
用户:3?
GPT-4:没错!现在,如果你把第一个方程乘以3,新的方程会是什么样子?
用户:9x+5y=21?
GPT-4:差不多了!你正确地乘以了常数项(7),但在乘以系数y时似乎犯了一个小错误。试着把整个第一个方程再次乘以3,密切注意每个项。
用户:9x+6y=21?
GPT-4:没错!现在我们有两个方程:
1) 9x+6y=212) 9x-4y=1
你能看到把两个方程结合起来消除其中一个变量的方法吗?
用户:从方程式1中减去方程式2?
GPT-4:好主意!如果你从方程1中减去方程2,得到的方程会是什么样子?
用户:10y=20?
GPT-4:没错!现在,你能解出你刚刚找到的方程中的y吗?
用户:y=2?
GPT-4:没错!既然你已经找到了y的值,你能把它插回到原来的方程中来解x吗?
用户:当然,我会把它代入等式1。我得到3x+4=7
GPT-4:太棒了!现在,你能解出方程3x+4=7中的x吗?
用户:x=22?
GPT-4:你的计算中似乎有一个小错误。试着从等式3x+4=7中分离x,两边减去4,然后除以3。
用户:x=1?
GPT-4:没错!因此,线性方程组的解是x=1和y=2。做得好!你已经通过仔细地完成步骤并使用苏格拉底方法成功地解决了这个问题。
试想,将来的教育会是什么样?教培行业赶紧抓住 GPT 的风口吧。
5. GPT-4 在真实性判断的局限性
尽管 GPT-4 的功能强大,但它也具有与早期 GPT 模型类似的局限性。最重要的是,GPT-4 仍然不完全可靠,它会“幻想”事实并犯推理错误,需要特别注意。
在使用语言模型输出时,特别是在高风险的上下文条件下,需要非常小心,以便与特定用例的需求相匹配。例如可以通过人工审查,以额外的上下文为基础,或完全避免高风险条件的使用。
注:看来某些网站的审查政策是有理论依据的。
虽然 GPT-4 仍然存在真实性问题,但它与之前的模型相比已经显著减少了幻觉(这些模型也在不断迭代中改进)。在我们进行的对抗性事实评估中,GPT-4 的成绩比 GPT-3.5 高 40%。
我们也采用 TruthfulQA 等外部基准测试,该项目测试模型区分事实与错误陈述的能力。这些问题与事实上不正确的答案混在一起,统计结果可以反映真实性判断的能力。
GPT-4 模型在这项任务上只比 GPT-3.5 略好一点。但是,在经过 RLHF 后训练以后,GPT-4 的性能比 GPT-3.5 有明显提升。例如,在下面的例子中,GPT-4 会拒绝选择常见的说法(你不能教老狗新把戏),但它仍然会错过微妙的细节(猫王不是演员的儿子)。
该模型的输出可能存在各种偏差。我们的目标是让我们构建的人工智能系统具有合理的默认行为,反映出广泛的用户价值观,允许这些系统在广泛的范围内进行定制,并让公众对这些范围应该是什么提出意见。
另外,GPT-4 通常缺乏对 2021年9月后发生的事件的数据和知识,而且不会从已有的经验中学习这些知识。GPT-4 有时会犯一些简单的推理错误,或者在接受用户明显的虚假陈述时过于轻信,这些错误似乎与它在其它领域的能力不相称。有时,在困难问题上它也可能会像人类一样失败,比如在其生成的代码中引入安全漏洞。
GPT-4 的回答可能是错误的,它的错误有可能是由于没有仔细检查。基础预训练模型是高度校准的,其对答案的预测置信度通常与正确的概率相匹配。但是,通过我们目前的后期训练过程,置信度却降低了。
6. 风险与应对措施
我们一直在迭代 GPT-4,使其从训练开始就更安全、更一致,努力包括预训练数据的选择和过滤、评估和专家参与、模型安全改进以及监测和执行。
但是,GPT-4 也存在与以前模型类似的风险,例如生成有害的建议、错误的代码或不准确的信息。然而,GPT-4 的额外功能导致了新的风险点。为了了解这些风险的程度,我们聘请了来自人工智能整合风险、网络安全、生物风险、信任与安全以及国际安全等领域的 50多名专家对该模型进行对抗性测试。他们的发现使我们能够在专业领域对模型行为进行评估测试。这些专家的反馈和数据,反馈到我们对模型的风险缓解和改进中。例如,我们收集了额外的数据,以提高 GPT-4 拒绝关于如何合成危险化学品的请求的能力。
GPT-4 在 RLHF 训练期间加入了额外的安全奖励信号,通过训练模型拒绝对此类内容的请求来减少有害输出(详见【使用指南】)。
奖励由 GPT-4 零样本分类器提供,该分类器根据安全相关提示判断安全边界和完成方式。为了防止模型拒绝有效请求,我们从各种来源收集不同的数据集(例如,标记的生产数据、人类红队、模型生成的提示),并将安全奖励信号(具有正值或负值)应用于允许和不允许的类别。
与 GPT-3.5 相比,我们的应对措施显著改善了 GPT-4 的安全性。与 GPT-3.5 相比,GPT-4 模型对不允许内容的响应降低了 82%,GPT-4 根据我们的政策对敏感请求(如医疗建议和自残)做出响应的频率提高了29%。
注:已经设计了敏感词过滤器。
总的来说,我们的模型级干预增加了引发不良行为的难度,但仍然不可能完全杜绝。此外,仍然存在“越狱”来生成违反我们使用指南的内容。随着人工智能系统的发展“每token风险”也在增大,通过这些干预措施实现极高的可靠性是至关重要的。目前,重要的是用部署时间安全技术来补充这些限制,比如监控滥用。
GPT-4 和后续模型有可能以有益和有害的方式对社会产生重大影响。我们正在与外部研究人员合作,以改进我们对潜在影响的理解和评估方式,并对未来系统中可能出现的危险能力进行评估。我们很快将分享更多关于 GPT-4 和其他人工智能系统潜在社会和经济影响的想法。
7. 训练过程
GPT-4 基本模型与以前的 GPT 模型的原理,都是使用公开数据(如互联网数据)以及授权的专有数据进行训练,让 GPT-4 能预测文档中的下一个单词。
这些数据是一个网络规模的数据语料库,包括数学问题的正确和不正确解决方案、弱推理和强推理、自相矛盾和一致的陈述,并代表了各种各样的意识形态和思想。
当被提示一个问题时,GPT-4 基本模型可以以各种各样的方式做出回应,这可能与用户的意图并不一致。为了使其用户意图相符,我们使用强化学习和人类反馈(RLHF)来微调模型的行为。
GPT-4 模型的能力似乎主要来自预训练过程,RLHF 并不能提高考试成绩(如果针对性训练不是特别精准,反而会降低考试成绩)。但对模型的引导来自于后期训练的过程——模型需要通过用户提示(prompt )来知道它应该回答问题了。
7.1 算力规模对模型性能的影响
在训练之前对模型的能力有一个了解,可以改善有关对齐、安全和部署的决策。GPT-4 项目的一个重点是构建一个可以预测性能/规模关系的深度学习框架。
一个主要的原因是,对于像 GPT-4 这样的大型模型进行训练非常困难,进行广泛的针对特定模型的调优是不可行的。为了解决这个问题,我们开发了应用于多个不同规模上的模型架构和优化方法。为了验证这种可扩展性,我们使用10000倍以下的计算量对模型进行训练,从而可以提前预测不同规模 GPT-4 模型的性能(以损失函数值来描述)。
我们构造了一个计算量的缩放曲线来预测 GPT-4 在测试集上的损失函数。使用相同方法训练的模型,但不断减小计算量的规模,直到 GPT-4 的 1/10,000倍。结果如下图所示,模型的性能(损失函数值)与训练模型的计算量很好地符合幂律曲线关系。因此,我们可以准确预测我们在训练期间优化的指标(损失)。
我们还开发了一种方法用来预测更多可解释的指标。例如,我们成功地预测了HumanEval数据集的一个子集的通过率,从计算量减少1000倍的模型中推断:
但是,有些能力仍然难以预测。例如,逆尺度奖励是一项测试,目的是寻找随着模型计算量增大而恶化的性能指标。如图3 所示,与Wei等人最近的结果一样,GPT-4 逆转了这一趋势。
我们认为,准确预测机器学习在未来的能力是安全的重要组成部分。展望未来,我们计划在大型模型训练开始之前完善这些方法,并发展各种能力的性能预测。我们正在加大力度,开发方法,为社会提供更好的指导,让他们了解未来系统的期望,我们希望这成为该领域的共同目标。
8. OpenAI Evals
【OpenAI Evals】Github 地址:https://github.com/openai/evals
我们正在开源【OpenAI Evals】,这是我们的软件框架,用于创建和运行用于评估GPT-4等模型的基准,同时逐样本检查其性能。
我们使用Evals来指导我们的模型开发(既识别缺点又防止倒退),我们的用户可以将其应用于跟踪模型版本(现在将定期发布)的性能和不断发展的产品集成。例如,Stripe使用Evals来补充他们的人工评估,以衡量GPT驱动的文档工具的准确性。
因为代码都是开源的,所以Evals支持编写新的类来实现自定义的评估逻辑。然而,根据我们自己的经验,许多基准测试都遵循少数“模板”中的一个,因此我们还包括了内部最有用的模板(包括“模型评分评估”的模板——我们发现GPT-4惊人地能够检查自己的工作)。通常,构建新eval最有效的方法是实例化其中一个模板并提供数据。我们很高兴看到其他人可以用这些模板和更广泛的Evals构建什么。
我们希望Evals能成为一种共享和众包基准的工具,代表最大范围的故障模式和困难任务。作为接下来的例子,我们创建了一个逻辑谜题eval,其中包含GPT-4失败的十个提示。Evals也与执行现有基准相兼容;我们已经包括了几个实现学术基准的笔记本,以及一些集成CoQA的变体(小子集)作为例子。
我们邀请每个人使用Evals来测试我们的模型,并提交最有趣的示例。我们相信Evals将是在我们的模型基础上使用和构建过程中不可或缺的一部分,我们欢迎直接贡献、问题和反馈。
9. ChatGPT Plus
ChatGPT Plus 用户将在 chat.openai.com 上获得 GPT-4 的访问权限,并设有使用上限。虽然我们将在未来几个月扩大规模并进行优化,但我们预计还会受到系统容量的限制,我们将根据需求和系统性能调整使用上限。
根据我们看到的流量模式,我们可能会为更高的 GPT-4 使用量引入新的订阅级别。我们也计划在适当时候提供一些免费的 GPT-4 查询,使没有订阅的人也可以尝试。
10. API
需要访问 GPT-4 API(使用与 GPT-3.5-turbo 相同的 ChatCompletions API)的用户请注册我们的候补名单。
我们开始邀请一些开发商,并逐步扩大规模以平衡容量和需求。如果你是一名研究人工智能领域或人工智能社会影响研究领域的研究人员,你也可以通过我们的研究人员访问计划进行申请。
获得访问权限后,您就可以对 GPT-4 模型发出纯文本请求(图像输入仍处于 alpha版)。今后,我们会在发布新版本时自动更新为推荐的稳定模型 (您可以通过调用 GPT-4-0314 来固定当前版本,该版本将支持到 6月14日)。定价为每1K 提示令牌(prompt tokens) 0.03美元,每 1K 完整令牌( completion tokens )0.06美元。默认速率限制为每分钟 40k 个令牌和 200个请求。
注: 一般情况下,GPT 模型数据使用的是电子邮件文本、推特信息、博客、新闻等信息中的非结构化文本,这些文本在模型中表现为一系列的“Tokens”,tokens 可以被看作将文本切分成的若干个片段。例如一个字符串“ChatGPT is great!”,被编码为 6 个 tokens:“Chat”、“G”、“PT”、“ is”、“ great”、“!”。大致地,一个 token 平均对应于约 4 个字符,1000 个 tokens 大约是 750 个单词。
GPT-4 具有 8192个 tokens 的上下文长度。我们还提供了对 32768上下文(约50页文本)的 GPT-4-32k 版本的有限访问,该版本后续也将不断升级(当前版本 GPT-4.32k-0314,支持到 6月14日)。定价为每1K 提示令牌(prompt tokens)0.06美元,每1K完整令牌( completion tokens )0.12美元。我们仍在提高长上下文的模型质量,并希望能就其在您的用例中的表现提供反馈。我们正在根据容量以不同的速率处理 8K 和 32K 请求的引擎,您可能会今后获得对它们的访问权限。
11. 总结
我们期待 GPT-4 通过为各种应用程序提供动力和支持,成为改善人们生活的宝贵工具。还有很多工作要做,我们期待着通过社区建设的集体努力来改进这一模式,在这一模式的基础上进行探索和贡献。
附录:ChatGPT API 文档及调用方法
下期介绍《ChatGPT API 文档及调用方法》,欢迎关注专栏【youcans的GPT学习笔记】。
【ChatGPT API】curl 调用 ChatGPT API 方法
curl https://api.openai.com/v1/chat/completions
-H "Authorization: Bearer $OPENAI_API_KEY"-H "Content-Type: application/json"-d '{"model":"gpt-3.5-turbo","messages":[{"role":"user","content":"What is the OpenAI mission?"}]}'
【ChatGPT API】python 调用 ChatGPT API 方法
import openai
completion = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role":"user","content":"Tell the world about the ChatGPT API in the style of a pirate."}])print(completion)
【ChatGPT API】返回数据
{"id":"chatcmpl-6p5FEv1JHictSSnDZsGU4KvbuBsbu","object":"messages","created":1677693600,"model":"gpt-3.5-turbo","choices":[{"index":0,"finish_reason":"stop","messages":[{"role":"assistant","content":"OpenAI's mission is to ensure that artificial general intelligence benefits all of humanity."}]}],"usage":{"prompt_tokens":20,"completion_tokens":18,"total_tokens":38}}
版权声明:
欢迎关注【youcans的AGI学习笔记】,转发请注明原文链接:【GPT4】GPT-4 官方报告解读 (https://youcans.blog.csdn.net/article/details/129631707)
Copyright 2023 youcans, XUPT
Crated:2023-03-18
版权归原作者 youcans_ 所有, 如有侵权,请联系我们删除。