GPT-4 Technical Report论文阅读
文章目录
官方博客地址:https://openai.com/research/gpt-4
Abstract
本篇虽然是GPT-4的技术报告,但其中没有提到GPT-4的具体模型架构与训练过程,主要就是讲他的结果。
- GPT-4是一个多模态的模型,能够接受文本或者是图片的输入,最后输出纯文本
- GPT-4基本能够达到类人的表现,在事实性、可控性和安全性上有了很大的进步
- GPT-4在真实世界中与人还是存在差距,但是在很多具有专业性或者学术性的数据集或者任务上面上,GPT-4有时候能够达到甚至超过人类的水平
- GPT-4能够通过律师考试资格证考试,且能在所有参加考试的人中排名前10%(GPT-3.5在同样的考试中无法通过,且只能排到最后10%)
训练的稳定性
在此次GPT-4的训练过程中,训练表现出了前所未有的稳定性
- 训练稳定
- 硬件设施没有出错
- 训练不会中断,一次训练直接跑到底
- loss没有跑飞
- 更重要的是,可以准确预测模型训练的结果(通过在小规模计算成本下训练出来的模型可以准确地预估扩大计算成本之后模型的最终性能)
对于大模型来讲,如果每次跑完训练才知道结果(参数的好坏,改进是否有效),花销比较大,一般会在较小的模型或者较小的数据集上做消融实验,验证之后再去大模型上进行实验。对于语言模型来讲,由于语言的扩展较大,所以导致在小规模模型上做的实验可能有效,但是换到大模型上就达不到想要的结果了;并且大模型上特有的涌现能力在小模型上无法观测。
Training process
与之前的GPT模型类似,GPT-4也是通过预测文章中下一个词的方式(Language Modeling Loss)去训练的,训练所用到的数据是公开数据(网络数据和公司所购买的数据)
- 数据集非常大,包含了非常多的内容,比如数学问题的正确的解和不正确的解、弱推理、强推理、自相矛盾或者保持一致的陈述、各种意识形态和想法,以及更多的纯文本数据
- 因为在大量的数据集上训练过,而且有的时候是在不正确的答案上训练过,所以预训练模型(Base Model)有些时候的回答跟想要得到的回答相差很远。为了能跟人的意图尽可能保持一致,并且更加安全可控,所以使用RLHF(Reinforcement Learning with Human Feedback)的方法对模型进行了微调
模型的能力看起来像是从预训练的过程中得到的,后续RLHF所进行的微调并不能够提高在考试中的成绩(如果没有好好调参,甚至会降低考试的成绩)
- 模型所谓的涌现的能力靠堆数据、堆算力,然后用简单的Language Modeling Loss堆出来的
但是,RLHF用来对模型做控制,让模型更加清楚人类的意图,并且按照人类所能接受的方式做出回答
- 这个预训练模型甚至需要prompt engineering才知道需要回答问题
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竞赛,专门给大模型找茬,用来测试是否存在一些任务是小模型做的好,大模型反而做不好的,而且最好能够找到那些任务(随着计算成本的增加,任务的结果越来越差,除了GPT-4)
- hindsight neglect:过去做一件事情的时候,使用很理性地判断做出一个决断,这个决断按道理来讲是正确的,但是运气不好导致最终的结果不是很好,那么如果回到过去,是继续选择当初选择的理性做法还是愿意赌一把选择一个更冒险的方式
- 按道理来讲,每次做选择都应该按照最理性的方式做选择,但是大模型在这种情况下出现了一个很有意思的现象:随着模型越来越大,反而越来越不理性,会根据最后的结果来判断到底应不应该做出决定
- GPT-4的准确度达到了100%,从侧面说明了可能GPT-4已经拥有了一定的推理能力,不会受到最后结果的影响
训练的稳定性多么难能可贵
斯坦福MLSYS 在MetaAi怎样用三个月的时间做了一个跟GPT-3同等大小的语言模型(OPT-175Billion)
- 地址:https://www.bilibili.com/video/BV1XT411v7c9?t=1283.6
- 模型虽然性能一般,但是整个过程干货比较多
- OPT-175Billion在整个一个多月的训练过程中,因为各种各样的原因(机器崩掉,网络中断、Loss跑飞等),中间一共中断了五十多次,图中的每一段不同颜色就代表跑的一段
- 训练一个大的模型的工程复杂度是难以想象的,所以GPT-4的成功除了大量算力的投入,还需要很多的工程上的努力
Capabilities
考试成绩
在日常对话中,GPT-3.5和GPT-4的区别是非常小的,但是这个区别随着任务难度的增加慢慢会体现出来
- GPT-4更加可靠,更加具有创造力,而且能够处理更加细微的人类的指示
为了弄清楚这两个模型之间的区别,OpenAI设计了一系列的benchmark,包含很多之前专门为人类设计的模拟考试,使用了最近公开的一些数据,比如奥赛题目、AP(美国高中的一些大学先修课中的问题、购买的执照考试的版权数据)。在这些考试上没有做过特殊的训练
- 可能有一些问题是之前在模型预训练的过程中被模型见过的,这里OpenAI为了澄清,他们跑了两个版本:一个版本是模型直接考试然后汇报分数;另一个版本虽然采用同样的模型,但是把在预训练数据集中出现的问题拿掉,只在那些模型可能没见过的问题上再做一次测试,最后取这两次的分钟较低的那一次来作为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的表现很好几乎是第一名
- 但是在 Codeforces Rating写代码测试中,GPT-4的表现并不如人意,甚至在某些情况下表现更差
传统的benchmark
GPT-4在传统的benchmark上的性能测试结果如下图所示,几乎刷新了之前的state-of-the-art
语言方面的能力
- GPT-4在多语言上已经做得很好了,不仅是英语语系中的各种语言,对中文的支持也是不错的(能够识别拼音的输入,简体/繁体的转换也能够处理)
- OpenAI为了进行测试,将MMLU全部进行了翻译(将14000多个多选题用微软的翻译全部翻译成不同的语言),通过测试发现,在26个语言中,其中24个语言中的测试结果GPT-4都要优于GPT-3.5和其他的一些大模型(Google的Chinchilla、PaLM),而且甚至在那些没有什么训练语料库的语言(Latvian、Welsh、Swahili)上表现也很好
Visual inputs
GPT-4是一个多模态的模型,可以接受图片作为输入
- GPT-4可以允许用户任意自定义视觉或者语言任务
- 不管用户输入的是文本、图片或者是图片和文本混合的形式,GPT-4都能生成文本(自然语言、代码)
- GPT-4在其他任务上的表现也很不错,尤其是test-time techniques
- 这是一个用VGA线给手机充电的图片,很多时候GPT-4都能给出解释,而且是一步一步的解释为什么搞笑
- 图中是一个截图,并不是机器能够直接阅读的,需要内部自己做一个OCR才能让模型知道图片中到底是什么内容(截图中是一道法语描述的物理题)GPT-4用英语进行了一步一步的解释,最后得出答案
- 将一篇论文直接输入进GPT-4,让它输出对论文的总结。GPT-4能够很好地总结所输入的论文
Steerability
定义语言模型的行为,让语言模型按照用户所想要的方式进行答复
- 相比于ChatGPT,ChatGPT的人格是固定的,每次都是同样的语调语气,回复的风格也是一致的;最新的GPT-4开发了一个新功能,除了发给它的prompt(描述用户需求的文字),前面添加了System Message
- System Message可以定义AI使用什么样的语气语调进行对话
作为一个苏格拉底式的辅导员,回复永远都应该是保持苏格拉底的风格,即永远不告诉学生真正的答案,而是询问一些启发式的问题,通过暗示来进行辅导让学生自己意识到问题的解决方式,从而培养学生自己解决问题的能力。在这个过程中,将难度较大的问题进行拆分,在学生能够听懂的水平上进行因材施教。
Limitations
- 在能力和局限性方面,GPT-4和之前的GPT系列模型差不多,还是不能完全可靠,有的时候还是会瞎编乱造,扭曲事实,并且推理的时候也可能会出错。因此在使用这些大模型的时候还是需要更加小心谨慎,尤其是在一些高风险的领域(法律、金融、新闻、政治)中
- 虽然这些问题依然存在,但是GPT-4跟之前其他的模型以及外面的模型相比,在安全性上已经大幅提高了
- 在OpenAI内部专门用来进行对抗性测试的Evaluation Benchmark上,GPT-4比之前的GPT-3.5的得分要高出40%以上,提升显著
图中纵坐标表示准确度,横坐标表示OpenAI内部所使用的benchmark所涉及的领域
-
GPT-4本身还会有各种各样的偏见,目前已经取得了一些进步,但是还有很多需要做的
-
GPT-4一般是缺少2021年9月份之后的知识,因为预训练数据就是截止到2021年9月份
- 但是ChatGPT有很多个版本,可能后续微调或者RLHF的时候,可能包含更新之后的数据,所以有时候也能正确回答2021年之后的一些问题
-
GPT-4在很多的领域里都表现出强大的能力,取得很高的分数,但是有时候会犯一些非常简单的推理错误,看上去有点不可思议
- 如果用户故意输入一些虚假的陈述,GPT-4还非常容易上当受骗
-
在一些特别困难的问题上,GPT-4跟人差不多,都会出现安全隐患,可能会写出不正确的代码。但是GPT-4哪怕有的时候预测错误了,也会非常自信
- 通过研究发现,这是因为经过预训练之后,GPT-4的model calibration做的非常完美(calibration可以理解为模型有多大的自信认为自己的预测是对的)
- 从图中能够看出,模型经过了完美的矫正,即模型对自己的预测越有信心,他的预测就越可能是正确的(可以因为预训练的语料库比较大,已经掌握了客观事实的规律,因此模型对自己产生的结果比较自信)
- 但是经过后处理(Instructed Tuning或者是RLHF)之后,calibration的效果就没有了,模型的校准就没有处理前好了(可能是经过RLHF之后,模型更接近于人,具备一定的主观性,因此校准性能就下降了)
Risks & mitigations
- Red Teaming
- 通过找各个领域的专家询问模型该问和不该问的问题,希望让模型知道哪些应该回答,哪些不该回答,通过人力的过程搜集数据,从而提升GPT-4的能力,能够拒绝不合理的要求
- 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%的问题
哪些工作可能会被GPT-4取代?
论文:GPTs are GPTs: An Early Look at the Labor Market Impact Potential of Large Language Models
- 大概有80%的美国劳动力会因为大语言模型的到来而受到影响,大概是平时工作中10%的任务(剩余90%的任务仍然需要人来完成),19%的工人会发现有50%的工作有可能会被影响(AI至少能够完成50%以上的工作任务)
- 受影响比较少的工作,如果有做科研(基础科学研究)的能力或者思维比较缜密,能够快速做出合理的决定,这些技能点大语言模型暂时还不具备
- 受影响比较多的工作,和大语言模型冲突的技能点:写代码、写文章。凡是和这两个技能点相关的工作可能会收到较大的影响
即使有些工作不会被GPT-4取代,如服务员、泥瓦匠,但是也会被其他的AI机器人取代。所以这篇文章讲的不会受影响的工作也是相对的(所以没列出来)。
未来研究方向
现在机器学习还有很多的问题悬而未决,而且现在大语言模型遇到的问题其实跟30年前机器学习领域遇到的问题还是一样的,现在依然不知道大语言模型到底是怎样工作、怎么泛化的:
- 如何从单语言到多语言?
- 为什么会具有涌现的能力?
- 如何提高模型做推理的能力(尤其是做因果推理)?
- 需要更多的方式阻止语言模型生成有害的文字或者带来比较坏的社会影响
- 目前模型仅仅局限于文本,更多的问题都是在文本之外的,还有更多的模态等待探索