解析ChatGPT的语言能力是如何训出来的(下)

人工智能

636人已加入

描述

分布外鲁棒性

我们讨论的第三种能力是分布外的鲁棒性。在 2018 年至 2022 年期间,NLP、CV 和通用机器学习领域有大量关于分布偏移/对抗鲁棒性/组合生成的研究,人们发现当测试集分布与训练分布不同时,模型的行为性能可能会显著下降。然而,在大型语言模型的上下文学习中似乎并非如此。Si 等人在2022年的研究显示 :

ChatGPT

数据来自于 Si et. al. 2022. 虽然 GPT-3 在同分布设置下比 RoBERTa 要差,但在非同分布设置下优于 RoBERTa,性能下降明显更小。

同样,在此实验中,同分布情况下基于提示词的 GPT-3 的效果并没有精调后的 RoBERTa要好。但它在三个其他分布(领域切换、噪声和对抗性扰动)中优于 RoBERTa,这意味着 GPT3 更加鲁棒。

此外,即使存在分布偏移,好的提示词所带来的泛化性能依旧会继续保持。比如:

ChatGPT

图片来自于 Fu et. al. 2022. 即使测试分布与训练分布不同,复杂提示也始终比简单提示的表现更好。

Fu 等人2022年 的研究显示,输入提示越复杂,模型的性能就越好。这种趋势在分布转移的情况下也会继续保持:无论测试分布与原分布不同、来自于噪声分布,或者是从另一个分布转移而来的,复杂提示始终优于简单提示。

到目前为止的总结

在上文中,我讨论了只有大型模型才有的三种突现能力。它们是:

  • 复杂推理,大型模型在没有使用全部训练数据的情况下便显著优于以前的小型模型。
  • 知识推理,大型模型可能没有小模型效果好,但大模型不需要额外的知识来源(知识可能很昂贵,或者很难从非结构化数据中抽取)。
  • 分布外鲁棒性,这是之前进行模型精调时需要努力解决的问题。大型模型虽然在同分布情况下的效果不如以前的方法,但非同分布情况下的泛化性能却好得多。

突现能力推翻比例定律

鉴于上文列出的优点,大家可能会开始觉得大型语言模型确实很好了。在进一步讨论之前,让我们再回顾一下之前的工作,就会发现一个很奇怪的问题: GPT-3 在 2020 年就发布了,但为什么直到现在我们才发现并开始思考范式的转变

这个问题的答案就藏在两种曲线中:对数线性曲线和相变曲线。如下图:

ChatGPT

左图: 比例定律. 当模型大小呈指数增长时,相应的模型性能呈线性增长。右图: 当模型尺寸达到一定规模时,会出现突现能力,让性能急剧增加。

最初,(OpenAI)的研究者认为语言模型的性能与模型尺寸的关系可以通过对数线性曲线预测,即模型尺寸呈指数增长时,性能会随之线性增加。这种现象被称为语言模型的缩放定律,正如 Kaplan 等人在2020年 最初的GPT3文章 中讨论的那样。

重要的是,在那个阶段,即便最大的 GPT-3 在有提示的情况下也不能胜过小模型精调。所以当时并没有必要去使用昂贵的大模型(即使提示词的标注效率很高)。

直到2021年,Cobbe 等人 发现缩放定律同样适用于精调。这是一个有点悲观的发现,因为它意味着 我们可能被锁定在模型规模上 ——虽然模型架构优化可能会在一定程度上提高模型性能,但效果仍会被锁定在一个区间内(对应模型规模),很难有更显著的突破。

在缩放定律的掌控下(2020年到2021),由于GPT-3无法胜过精调 T5-11B,同时T5-11B微调已经很麻烦了,所以NLP社区的关注点更多的是研究更小的模型或者高效参数适应。Prefix tuning 就是提示和适应交叉的一个例子,后来由 He 等人在 2021 统一。当时的逻辑很简单:如果精调效果更好,我们就应该在高效参数适应上多下功夫;如果提示词的方法更好,我们应该在训练大型语言模型上投入更多精力。

之后在 2022 年 1 月,思维链的工作被放出来了。正如作者所展示的那样,思维链提示在性能-比例曲线中表现出明显的 相变 。当模型尺寸足够大时,性能会显著提高并明显超越比例曲线。

当使用思维链进行提示时,大模型在复杂推理上的表现明显优于微调,在知识推理上的表现也很有竞争力,并且分布鲁棒性也存在一定的潜力。要达到这样的效果只需要8个左右的示例,这就是为什么范式可能会转变的原因。

范式转变意味着什么?

范式转变究竟意味着什么?下面我们给出精调和提示词方法的对比:

ChatGPT

提示词的好处很明显:我们不再需要繁琐的数据标注和在全量数据上进行精调,只需要编写提示词并获得满足要求的结果,这比精调要快很多。

另外要注意的两点是:

上下文学习是监督学习吗?

  • 坦白讲,我不确定。
  • 相似之处在于,上下文学习也需要像训练数据一样的示例
  • 不同之处在于,上下文学习的泛化行为并不同于监督学习,这使得之前的泛化理论(例如 Rademancher Complexity 或 Neural Tangent Kernel)均不适用。

上下文学习真的比监督学习效果要好吗?

  • 答案还未知。
  • 大多数提示词和精调的对比都只比了 提示词+大模型 vs 精调+小模型,但公平的对比应该是 提示词+大模型 vs 精调+大模型,且对比时的基座模型应该一样。所以在最初的思维链文章中,如果 Wei 等人要说明提示词好于精调,他们应该对比精调后的PaLM,而不是GPT3。
  • 我的假设是:精调可以提高分布内的性能,但会损害分布外的鲁棒性。提示词在分布变化的场景中表现更好,但在同分布场景下不如精调。
    • 如果假设是真的,那么一个值得研究的问题就是如何在不牺牲其上下文学习能力的情况下进行精调
    • 注意分布外精调的效果同样会随着模型尺寸变化 。比如 Yang 等人在2022年的工作中,第四张表就显示,Bart-based的分布外泛化能力会下降,但Bart-large则提升。对于大模型,当测试集的分布和训练集相差不大时,同分布的精调效果也应该会提升。

再回顾一下前文提到的的逻辑:如果精调更好,我们应该努力研究如何进行参数高效的优化;如果提示词更好,我们应该努力去训练更好的大型语言模型。

所以,尽管我们相信大型语言模型有巨大的潜力,仍然没有确凿的证据表明精调和提示词哪种方法更好,因此我们不确定范式是否真的应该转变、或应该转变到什么程度。仔细比较这两种范式,使我们对未来有一个清晰的认识,是非常有意义的。我们将更多讨论留到下一篇文章。

模型应该多大才够?

两个数字:62B 和 175B。

  • 模型至少需要62B,使思维链的效果才能大于标准的提示词方法。
  • 模型至少需要175B(GPT3的尺寸),思维链的效果才能大于精调小模型(T5 11B)的效果。

62B这个数字来自于 Chung 等人 2022 年工作的第五张表 :

ChatGPT

对于所有小于62B的模型,直接用提示词都好于思维链 。第一个用思维链更好的模型是 Flan-cont-PaLM 62B 在BBH上的结果。540B的模型使用思维链会在更多任务上得到好的效果,但也不是全部任务都好于精调。另外,理想的尺寸可以小于 540B,在 Suzgun 等人2022年 的工作中,作者展示了175B的 InstructGPT 和 175B的 Codex 使用思维链都好于直接用提示词。综合以上结果,我们得到了63B和175B两个数字。所以,如果想要参与这场游戏,首先要有一个大于平均尺寸的模型。

不过,还有其他大型模型在思维链下的表现差了很多,甚至不能学到思维链,比如 OPT、BLOOM 和 GPT-3 的第一个版本。他们的尺寸都是175B。这就引出了我们下一个要讨论的问题。

规模是唯一的因素吗?

不是。

规模是一个必要但不充分的因素。有些模型足够大(比如 OPT 和 BLOOM,都是 175B),但并不能做思维链。

有两种模型可以做思维链 (TODO: add discussions about UL2):

  • GPT3系列的模型,包括 text-davinci-002 和 code-davinci-002 (Codex)。 这是仅有的两个具有强大突现能力并可公开访问的模型
    • 除了以上两个模型,其他GPT3模型,包括原来的GPT3,text-davinci-001,以及其他更小的GPT-3模型,都不能做思维链。
    • 当说“能做思维链”时,我们是指使用思维链方法的效果比直接用提示词、精调T5-11B效果更好。
    • 另外要注意的是,code-davinci-002 在语言任务上的性能始终优于 text-davinci-002。这个观察非常有趣且耐人寻味。这表明 基于代码数据训练的语言模型可以胜过根据语言训练的语言模型 。目前为止我们还不知道是为什么。
  • PaLM系列模型,包括 PaLM、U-PaLM、Flan-PaLM 和 Minerva。这些模型目前还未开放访问(此处@谷歌,快开源吧)。

为什么会有突现能力目前还不清楚,但我们找出了一下可能产生突现能力的因素:

  • 指令精调:GPT-3 text-davinci-002 就是用指令+强化学习精调 的产物。在这之前,text-davinci-001 做思维链的效果并不好。同时PaLM 在经过指令精调 后的效果也有提升。
  • 在代码上精调:Codex code-davinci-002 是在代码上进行精调的,它的效果持续好于 text-davinci-002。PaLM 也在代码上进行了调整。从表面上看,代码与语言关系不大,但似乎起了很大作用,我们会在之后的文章进行讨论。
  • 用思维链精调:在 text-davinci-002 发布时,谷歌已经发布 PaLM 3 个月了。所以 OpenAI 应该看到了思维链相关的工作。还有一些工作表明,直接用思维链数据进行精调可以激发模型的思维链能力。

然而,所有这些因素在现阶段都是推测。揭示如何训练才能让模型产生突现能力是非常有意义的,我们将更多讨论留[下一篇文章。

总结

在本文中,我们仔细研究了语言模型的突现能力。我们强调了复杂推理、知识推理和分布外鲁棒性的重要性和其中存在的机会。突现能力是非常令人兴奋的,因为它们可以超越比例定律,并在比例曲线中表现出相变。我们详细讨论了研究范式是否会真的从精调转向上下文学习,但我们目前还没有确切答案,因为精调和上下文学习在分布内、分布外场景下的效果仍有待对比。最后,我们讨论了产生突现能力的三个潜在因素:指令精调、代码精调和思维链精调。非常欢迎大家提出建议和讨论。

英文原版:https://franxyao.github.io/blog.html

作者: 符尧 ,yao.fu@ed.ac.uk,爱丁堡大学 (University of Edinburgh) 博士生,本科毕业于北京大学

Tushar Khot彭昊 在艾伦人工智能研究院 (Allen Institute for AI) 共同完成英文原稿

李如寐 (美团NLP中心)共同翻译为中文

感谢 Aristo teammates , Jingfeng Yang , 和 Yi Tay 的讨论与建议。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分