8.GPT-4

GPT-4 Technical Report:2303.08774.pdf (arxiv.org)

OpenAI博客:https://openai.com/research/gpt-4

博客基本是99页技术报告的缩略版,2023.3.14发布。

0.疯狂的三月(202303)

GPT-4发布了99页的一份报告,但没有任何技术细节;

pytorch创始人对GPT-4评价

1.导言

1.1 GPT-4 简介

GPT-4是一个多模态的模型能够接受文本或者是图片的输入,最后输出纯文本

GPT-4在真实世界中与人还是存在差距,但是在很多具有专业性或者学术性的数据集或者任务上面上,GPT-4有时候能够达到甚至超过人类的水平

GPT-4基本能够达到类人的表现,在事实性、可控性和安全性上有了很大的进步。

OpenAI花费了6个月通过对抗测试项目和ChatGPT的经验对齐(align)GPT-4,取得了有史以来最好的(虽然远非完美)的真实性、可控性。

GPT-4能够通过律师考试资格证考试,且能在所有参加考试的人中排名前10%(GPT-3.5在同样的考试中无法通过,且只能排到最后10%)

1.2 GPT-4训练的稳定性

在此次GPT-4的训练过程中,训练表现出了前所未有的稳定性

  • 训练稳定
  • 硬件设施没有出错
  • 训练不会中断,一次训练直接跑到底
  • loss没有跑飞
  • 更重要的是,可以准确预测模型训练的结果(通过在小规模计算成本下训练出来的模型可以准确地预估扩大计算成本之后模型的最终性能)

对于大模型来讲,如果每次跑完训练才知道结果(参数的好坏,改进是否有效),花销比较大,一般会在较小的模型或者较小的数据集上做消融实验,验证之后再去大模型上进行实验

对于语言模型来讲,由于语言的扩展较大,所以导致在小规模模型上做的实验可能有效,但是换到大模型上就达不到想要的结果了;并且大模型上特有的涌现能力在小模型上无法观测

2.训练过程

与之前的GPT模型类似,GPT-4也是通过预测文章中下一个词的方式(Language Modeling Loss)去训练的,训练所用到的数据是公开数据(网络数据和公司所购买的数据)

  • 数据集非常大,包含了非常多的内容,比如数学问题的正确的解和不正确的解、弱推理、强推理、自相矛盾或者保持一致的陈述、各种意识形态和想法,以及更多的纯文本数据
  • 因为在大量的数据集上训练过,而且有的时候是在不正确的答案上训练过,所以预训练模型(Base Model)有些时候的回答跟想要得到的回答相差很远。为了能跟人的意图尽可能保持一致,并且更加安全可控,所以使用RLHF(Reinforcement Learning with Human Feedback)的方法对模型进行了微调。

模型的能力看起来像是从预训练的过程中得到的,后续RLHF所进行的微调并不能够提高在测试中的性能(如果没有好好调参,甚至会降低测试的性能)。

  • 模型所谓的涌现的能力靠堆数据、堆算力,然后用简单的Language Modeling Loss堆出来的

但是,RLHF用来对模型做控制,让模型更加清楚人类的意图,并且按照人类所能接受的方式做出回答

  • 这个预训练模型甚至需要prompt engineering才知道需要回答问题

3.可预测的扩展性(Predictable scaling

GPT-4的关键问题在于如何构建深度学习的infrastructure,然后准确地进行扩大

  • 主要原因是在大模型上是不可能做大规模的模型调参的,首先需要很多的算力,其次需要很长的训练时间。如果增加训练机器的数量,训练的稳定性也不能保证,多机器的并行训练很容易导致Loss跑飞。

OpenAI研发出来了一套整体的infrastructure和优化方法,可以在多个尺度上的实验上达到稳定预测。为了验证,利用内部的代码库在GPT-4模型刚开始训练的时候,就已经可以准确地预测到GPT-4最终训练完成的Loss(预测结果是由另外一个Loss外推出去的,用了比原始所需计算资源小一万倍的计算资源上用同样的计算方法训练出来的模型)。

  • 图中绿色的点是GPT-4最终的Loss的结果
  • 纵坐标可以理解成Loss的大小,单位是Bits per word
  • 横坐标表示所使用的算力(这里将数据集的大小、模型的大小全部混在一起,表示总体训练一个模型所需要的算力),越往左,模型的训练代价越小

OpenAI通过将不同训练代价下的Loss点进行拟合,从而准确得到GPT-4最终的Loss。在同等的资源下,可以以更快的速度尝试更多的方法,最后得到更优的模型。

还有一些能力是不能完全准确预测的:

  • inverse scaling prize竞赛,专门给大模型找茬,用来测试是否存在一些任务是小模型做的好,大模型反而做不好的,而且最好能够找到那些任务(随着计算成本的增加,任务的结果越来越差)

  • hindsight neglect:过去做一件事情的时候,使用很理性地判断做出一个决断,这个决断按道理来讲是正确的,但是运气不好导致最终的结果不是很好,那么如果回到过去,是继续选择当初选择的理性做法还是愿意赌一把选择一个更冒险的方式。
  • 按道理来讲,每次做选择都应该按照最理性的方式做选择,但是大模型在这种情况下出现了一个很有意思的现象:随着模型越来越大,反而越来越不理性,会根据最后的结果来判断到底应不应该做出决定
  • GPT-4的准确度达到了100%,从侧面说明了可能GPT-4已经拥有了一定的推理能力,不会受到最后结果的影响

hindsight neglect举例

两种示例:
1、张三玩一个游戏,有90%概率赢100块,10%概率输掉10块。张三玩后赢了,回到过去是否应该玩?
2、张三玩一个游戏,有10%概率赢10块,90%概率输掉100块。张三玩后赢了,回到过去是否应该玩?
从理性分析,这里就是计算数学期望,显然示例1中期望是89块,张三应该选择玩;示例2中期望是-89块,张三即使之前运气好赢了,也应该选择不玩。GPT4在这类问题中能够给出合理的行为。

拓展

训练的稳定性多么难能可贵——斯坦福MLSYS 在MetaAi怎样用三个月的时间做了一个跟GPT-3同等大小的语言模型(OPT-175Billion)

  • OPT-175Billion在整个一个多月的训练过程中,因为各种各样的原因(机器崩掉,网络中断、Loss跑飞等),中间一共中断了五十多次,图中的每一段就代表跑的一段
  • 训练一个大的模型的工程复杂度是难以想象的

4.能力

在日常对话中,GPT-3.5和GPT-4的区别是非常小的,但是这个区别随着任务难度的增加慢慢会体现出来。GPT-4更加可靠,更加具有创造力,而且能够处理更加细微的人类的指示

为了弄清楚这两个模型之间的区别,OpenAI设计了一系列的benchmark,包含很多之前专门为人类设计的模拟考试,使用了最近公开的一些数据,比如奥赛题目、AP(美国高中的一些大学先修课中的问题、购买的执照考试的版权数据)。在这些考试上没有做过特殊的训练

  • 可能有一些问题是之前在模型预训练的过程中被模型见过的,这里OpenAI为了澄清,他们跑了两个版本:一个版本是模型直接考试然后汇报分数另一个版本虽然采用同样的模型,但是把在预训练数据集中出现的问题拿掉,只在那些模型可能没见过的问题上再做一次测试,最后取这两次的分钟较低的那一次来作为GPT-4的分数。希望这么做能更加具有说服力。
  • 这里的问题去重并没有说明具体的方法
  • GPT-4能在众多的考试中都取得较好的结果,说明其参加考试的能力还是不错的
  • GPT-4考试结果如下图所示

  • 柱状图是按照GPT-3.5的性能从低到高进行排列的
  • GPT-3.5在最右侧的AP Environmental Science中表现是最好的
  • 淡绿色(no vision)表示没有使用图片
  • 图中可以看出GPT-4在有了图片加持之后,在有些考试上还能获得更大的进步
  • 在AP Caculus BC、AMC12、Codeforces Rating、AMC10上表现较差,GPT系列在数学上的表现比较差
  • 此外,虽然GPT-4能够修改文案,修改语法、润色文章,但是在高中英语文学课上以及高中英语语言本身的考试上得分都比较差。GPT系列的模型虽然能够生成大段大段的文字,但是它所写出来的东西很多时候就是翻来覆去地说话,都是一些空话大话,非常冠冕堂皇,并没有真正的思考,从而形成深刻的洞见。

具体的考试结果如下图所示

GPT-4在传统的benchmark上的性能测试结果如下图所示

GPT-4在多语言方面的能力

  • GPT-4在多语言上已经做得很好了,不仅是英语语系中的各种语言,对中文的支持也是不错的(能够识别拼音的输入,简体/繁体的转换也能够处理
  • OpenAI为了进行测试,将MMLU全部进行了翻译(将14000多个多选题用微软的翻译全部翻译成不同的语言),通过测试发现,在26个语言中,其中24个语言中的测试结果GPT-4都要优于GPT-3.5和其他的一些大模型(Google的Chinchilla、PaLM),而且甚至在那些没有什么训练语料库的语言(Latvian、Welsh、Swahili)上表现也很好
  • 测试结果如下图所示

5.视觉输入

5.1 简介

GPT-4是一个多模态的模型,可以接受图片作为输入;GPT-4可以允许用户任意自定义视觉或者语言任务,不管用户输入的是文本、图片或者是图片和文本混合的形式,GPT-4都能生成文本(自然语言、代码)。

但是目前图像输入还是内测阶段,暂时不对大众开放。OpenAI目前只选择了一家合作伙伴Be My Eyes来测试视觉功能;初衷是将图片转化成文字,然后再转成语音,从而为盲人提供更加便利的生活。

5.2 示例

1、用户输入几张照片,然后询问GPT-4这几张照片搞笑的地方在哪里?

  • 很多时候GPT-4都能给出解释,而且是一步一步的解释为什么搞笑。

2、图中是一个截图,并不是机器能够直接阅读的,需要内部自己做一个OCR才能让模型知道图片中到底是什么内容(截图中是一道法语描述的物理题)

  • GPT-4用英语进行了一步一步的解释,最后得出答案

3、将一篇论文直接输入进GPT-4,让它输出对论文的总结

  • GPT-4能够很好地总结所输入的论文
  • 最近github上也发布了几个工具,通过调用OpenAI或者其他的模型,用户输入一个pdf,工具直接输出文章的摘要,而且也可以在里面随意地进行搜索(交互式地询问,而不用一个一个地找)(https://www.chatpdf.com

5.3 多模态性能

测试结果虽然一般,不如在NLP中的测试结果那么惊艳,但是这些分数并不能完全代表GPT-4的能力,因为还在持续不断地发掘GPT-4更多的能力。

6.可操作性(Steerability

定义语言模型的行为,让语言模型按照用户所想要的方式进行答复。相比于ChatGPT,ChatGPT的人格是固定的,每次都是同样的语调语气,回复的风格也是一致的;最新的GPT-4开发了一个新功能,除了发给它的prompt(描述用户需求的文字),前面添加了System Message。System Message可以定义AI使用什么样的语气语调进行对话。

System Message是由整个Community发现的。

Steerability举例

作为一个苏格拉底式的辅导员,回复永远都应该是保持苏格拉底的风格,即永远不告诉学生真正的答案,而是询问一些启发式的问题,通过暗示来进行辅导让学生自己意识到问题的解决方式,从而培养学生自己解决问题的能力。在这个过程中,将难度较大的问题进行拆分,在学生能够听懂的水平上进行因材施教

7.限制(Limitations

1、在能力和局限性方面,GPT-4和之前的GPT系列模型差不多,还是不能完全可靠,有的时候还是会瞎编乱造,扭曲事实,并且推理的时候也可能会出错。因此在使用这些大模型的时候还是需要更加小心谨慎,尤其是在一些高风险的领域(法律、金融、新闻、政治)中

  • 虽然这些问题依然存在,但是GPT-4跟之前其他的模型以及外面的模型相比,在安全性上已经大幅提高了
  • 在OpenAI内部专门用来进行对抗性测试的Evaluation Benchmark上,GPT-4比之前的GPT-3.5的得分要高出40%以上,提升显著

  • 图中纵坐标表示准确度,横坐标表示OpenAI内部所使用的benchmark所涉及的领域。

2、GPT-4本身还会有各种各样的偏见,目前已经取得了一些进步,但是还有很多需要做的。

3、GPT-4一般是缺少2021年9月份之后的知识,因为预训练数据就是截止到2021年9月份。但是ChatGPT有很多个版本,可能后续微调或者RLHF的时候,可能包含更新之后的数据,所以有时候也能正确回答2021年之后的一些问题。

4、GPT-4在很多的领域里都表现出强大的能力,取得很高的分数,但是有时候会犯一些非常简单的推理错误,看上去有点不可思议。如果用户故意输入一些虚假的陈述,GPT-4还非常容易上当受骗

5、在一些特别困难的问题上,GPT-4跟人差不多,都会出现安全隐患,可能会写出不正确的代码。但是GPT-4哪怕有的时候预测错误了,也会非常自信

通过研究发现,这是因为经过预训练之后,GPT-4的model calibration做的非常完美

calibration(校准)的定义

  • 从图中能够看出,模型经过了完美的矫正(可以因为预训练的语料库比较大,已经掌握了客观事实的规律,因此模型对自己产生的结果比较自信)
  • 但是经过后处理(Instructed Tuning或者是RLHF)之后,calibration的效果就没有了,模型的校准就没有处理前好了(可能是经过RLHF之后,模型更接近于人,具备一定的主观性,因此校准性能就下降了)。

8.Risks & mitigations

1、Red Teaming(对抗测试):通过找各个领域的专家询问模型该问和不该问的问题,希望让模型知道哪些应该回答,哪些不该回答,通过人力的过程搜集数据,从而提升GPT-4的能力,能够拒绝不合理的要求

2、GPT-4还利用自己来提升安全性的要求,在后续的RLHF的训练过程中,又新加了一个专门做安全的reward signal

  • 这个reward signal是从自己已经预训练好的GPT-4模型开始,通过分类器分类当前prompt到底是不是sensitive,是不是存在危险,可能不应该进行回答
  • 通过reward signal让RLHF更加智能,让模型更加贴合人的意图,而且更加安全

这种减少risk的方式能够显著提升GPT-4的安全性能,和GPT-3.5相比,对于那些不该回答的问题,GPT-4能比GPT-3.5少回答82%的问题

安全性问题举例

总的来说,模型层面的干扰技巧能够很大程度上防止模型生成不好的行为,但是也不能完全阻止,总归是能找出各种各样的漏洞,还有很多的工作要做

9其他

9.1 AGI

微软拿早期的GPT-4模型,做了许多测试,发了一篇100多页论文:

GPT-4潜在能力

1、图像生成

  • 用户给GPT-4一些指示,生成一些能够作画的代码,然后使用这些代码直接生成图画,从而变相地进行图像生成(简单作画)
  • 不光能够生成画,还能够不断地对生成的画(实际上是代码)进行改进(GPT-4不光是可以根据用户的指示不断进化从而得到更好的结果,同时GPT-4的模型自己也在进化)

2、音乐生成

3、使用工具

9.2 GPTs对劳动力影响

1、大概有80%的美国劳动力会因为大语言模型的到来而受到影响,大概是平时工作中10%的任务(剩余90%的任务仍然需要人来完成),19%的工人会发现有50%的工作有可能会被影响(AI至少能够完成50%以上的工作任务)

2、受影响比较多的工作

  • 如果有做科研(基础科学研究)的能力或者思维比较缜密,能够快速做出合理的决定,这些技能点大语言模型暂时还不具备
  • 和大语言模型冲突的技能点:写代码、写文章。凡是和这两个技能点相关的工作可能会收到较大的影响

哪些职业会受到较大的影响:

3、基本不受影响的职业

  • 这些职业都是需要实际动手操作的,在机械臂和机器人成熟之前,必须要真人进行操作,因此这些工种暂时是不会受到大语言模型影响的。

9.3 Yann Lecun报告(20230324)

Do Large language models need sensory grounding for meaning and understanding?

现在的很多大语言模型还是需要很多的改进,现在还不能称之为智能

  • 现在的大语言模型虽然性能非常惊人,但是同时也会范一些非常愚蠢的错误
  • 大语言模型对真实的世界一无所知,因为他们没有常识,也不能计划自己的输出(模型都是一个token一个token地生成然后向外输出的,而且每次生成的都不一样)

9.4未来研究方向

现在机器学习还有很多的问题悬而未决,而且现在大语言模型遇到的问题其实跟30年前机器学习领域遇到的问题还是一样的,现在依然不知道大语言模型到底是怎样工作、怎么泛化的:

  • 如何从单语言到多语言
  • 为什么会具有涌现的能力?
  • 如何提高模型做推理的能力(尤其是做因果推理)?
  • 需要更多的方式阻止语言模型生成有害的文字或者带来比较坏的社会影响