文章主题:大型语言模型, 深度学习, 自然语言处理, NLP
公众号:将门创投
文章来源:公众号【李Rumor】
作者:李Rumor看过符尧大佬拆解GPT3起源的文章,收到了很多好评,同时也让我们开始思考:
是否只有大模型能训出ChatGPT?小模型+精调 vs 大模型+提示词,哪个更好?Prompt已经火了一年多,然而真正在生产中应用的还是少数,我们是否真的面临范式转变?如果真需要大模型,得多大?事实上,符尧在ChatGPT的概念尚未出现之时就已经撰写了一篇关于深度学习大型模型能力的深度剖析文章。经过我们共同的努力,这篇文章已经被成功翻译成中文,旨在帮助大家解决关于大型模型的一些理解难题。
英文原版:https://franxyao.github.io/blog.html作者符尧,目前是爱丁堡大学的博士生,他的电子邮件地址为[yao.fu@ed.ac.uk](mailto:yao.fu@ed.ac.uk)。他本科毕业于我国著名的北京大学。
我曾与Tushar Khot和彭昊一同在艾伦人工智能研究院(Allen Institute for AI)合作撰写英文原稿。
与 李如寐(美团NLP中心)共同翻译为中文
我衷心地感谢Aristo团队中的Jingfeng Yang和Yi Tay,他们的建设性意见和深入的探讨使我受益匪浅。
请同时参考CoT[1]团队的博客。原内容为:近期,大型语言模型所展现出的强大能力(如思维链[2]、便签本[3])引发了广泛的关注,并催生了诸多相关研究。我们将其概括为大模型的突现能力[4],这种能力可能在大型模型中出现,而在较小型模型中则不明显,故称之为“突现”。其中许多能力都给人留下了深刻的印象,例如复杂推理、知识推理和分布外的鲁棒性,我们将在后续进行深入探讨。值得注意的是,这些能力与NLP领域几十年来一直追求的目标非常接近,这可能代表着一种潜在的研究模式变革,即从微调小型模型转向利用大型模型进行上下文学习。对于先行者在实践中可能显得非常明显。然而,鉴于科学严谨性的要求,我们需要有明确的原因来解释为何应当转向使用大型语言模型,尽管这些模型可能价格高昂、使用起来困难,且效果不尽如人意。在本文中,我们将对上述能力进行详尽分析,探索大型语言模型能够提供的功能,以及它们在更广义的NLP/ML任务中所具有的潜在优势。
前提:我们假设读者具备以下知识:
预训练、精调、提示(普通从业者应具备的自然语言处理/深度学习能力)思维链提示、便签本(普通从业者可能不太了解,但不影响阅读)一、存在于大模型而非小模型的突现能力
图片来自于 Wei. et. al. 2022. Chain-of-Thought Prompting Elicits Reasoning in Large Language Models。X轴为模型尺寸。GSM8K是一个小学水平的数学问题集。在以上的效果图中,我们可以观察到模型的表现:
当尺寸相对小的时候提升并不大当模型变大时有很明显的提升这从根本上说明,某些能力可能不存在于小模型中,而是在大模型中获得的。
在2022年,Wei等人[5]整理了许多有趣的突显能力。然而,在这篇文章中,我们将不会探讨某些能力,例如last latter concatenation,我们认为这超出了语言模型的职责范围;或者3位数的加法,我们认为这是计算器的任务。
在本文中,我们主要对以下能力感兴趣:
1. NLP 社区近几年都关注但还没实现的能力
2. 之前的 NLP 模型很难达到的能力
3. 源自于人类语言最深层的本质的能力
4. 可能达到人类智力的最高水平的能力
二、突现能力的三个典型例子
很多有意思的能力都可以归到上文提到的类别里,在它们之中,我们主要讨论以下三种典型能力:
复杂推理知识推理分布外鲁棒性接下来让我们一个个详细讨论。
复杂推理
下面是一个GSM8K数据集中,用提示词显著超过精调的例子:
虽然这道题对于10岁的孩子来说很容易,但对语言模型来说却很难,主要是由于数学和语言混合在一起。
GSM8K 技术最初是由 OpenAI 在2021年10月[6]提出的。在那时,他们利用第一代GPT3技术对所有训练集进行了精细调整,其准确率大约为35%。这一成果让作者感到失望,因为他们的研究揭示了语言模型的规模与性能之间的关系:随着模型规模的扩大,其表现也将以指数方式增长(我在下文中将详细讨论这一点)。因此,在第4.1小节中,作者开始思考如何进一步优化这种技术。
“175B 模型似乎需要至少额外两个数量级的训练数据才能达到 80% 的求解率。”在2022年1月,Wei等研究人员[7]采用540B PaLM模型,仅用8个思维链提示示例,就成功将准确率提升至56.6%,而无需扩大训练集规模。紧接着在2022年3月,Wang等学者[8]同样基于540B PaLM模型,借助多数投票方式,将准确率进一步提高至74.4%。目前,SOTA(State-of-the-art)来自我国AI2团队(Fu等,2022年[9])的研究成果,他们在175B Codex上利用复杂的思维链策略,实现了82.9%的准确率。这些进展充分表明,技术进步呈现出指数级的增长趋势。
思维链提示是一个展示模型随着规模突现出能力的典型例子:
从突现能力来看: 尽管不需要 17500B,但模型大小确实要大于 100B ,才能使思维链的效果大于的仅有回答提示。所以这种能力只存在于大型模型中。从效果来看: 思想链提示的性能明显优于其之前的精调方法(目前还没有能公平对比提示词和微调的工作。但当思维链被提出的时候,尽管他们对于提示和精调的比较可能是不公平的,但确实比精调效果要好)。从标注效率上来看: 思维链提示只需要 8 个示例的注释,而微调需要完整的训练集。有些同学可能会认为模型能做小学数学代表不了什么(从某种意义上说,他们确实没有那么酷)。但 GSM8K 只是一个开始,最近的工作已经把前沿问题推向了高中[10]、大学[11],甚至是国际数学奥林匹克问题[12]。现在更酷了吗?
知识推理
下一个例子是需要知识的推理能力(例如问答和常识推理)。在这种情况下,对大型模型进行提示不一定优于精调小型模型(哪个模型更好还有待观察)。但是这个情况下的注释效率被放大了,因为:
在许多数据集中,为了获得所需的背景/常识知识,(以前很小的)模型需要一个外部语料库/知识图谱来检索[13],或者需要通过多任务学习在增强[14]的数据上进行训练对于大型语言模型,可以直接去掉检索器[15],仅依赖模型的内部知识[16],且无需精调图片来自于 Yu et. al. 2022. 以前的 SOTA 模型需要从外部知识源中检索。GPT-3 的性能与以前的模型相当/优于以前的模型,且无需检索。如表中所示,与数学题的例子不同,GPT-3 并没有明显优于之前的精调模型。但它不需要从外部文档中检索,本身就包含了知识(虽然这些知识可能过时或者不可信,但选择哪种可信知识源超出了本文的讨论范围)。
为了理解这些结果的重要性,我们可以回顾一下历史:NLP 社区从一开始就面临着如何有效编码知识的挑战。人们一直在不断探究把知识保存在模型外部或者内部的方法。上世纪九十年代以来,人们一直试图将语言和世界的规则记录到一个巨大的图书馆中,将知识存储在模型之外。但这是十分困难的,毕竟我们无法穷举所有规则。因此,研究人员开始构建特定领域的知识库,来存储非结构化文本、半结构化(如维基百科)或完全结构化(如知识图谱)等形式的知识。
通常,结构化知识很难构建(因为要设计知识的结构体系),但易于推理(因为有体系结构),非结构化知识易于构建(直接存起来就行),但很难用于推理(没有体系结构)。然而,语言模型提供了一种新的方法,可以轻松地从非结构化文本中提取知识,并在不需要预定义模式的情况下有效地根据知识进行推理。下表为优缺点对比:
分布外鲁棒性
我们讨论的第三种能力是分布外的鲁棒性。在 2018 年至 2022 年期间,NLP、CV 和通用机器学习领域有大量关于分布偏移/对抗鲁棒性/组合生成的研究,人们发现当测试集分布与训练分布不同时,模型的行为性能可能会显著下降。然而,在大型语言模型的上下文学习中似乎并非如此。Si 等人在2022年的研究显示[17]:
数据来自于 Si et. al. 2022. 虽然 GPT-3 在同分布设置下比 RoBERTa 要差,但在非同分布设置下优于 RoBERTa,性能下降明显更小。同样,在此实验中,同分布情况下基于提示词的 GPT-3 的效果并没有精调后的 RoBERTa要好。但它在三个其他分布(领域切换、噪声和对抗性扰动)中优于 RoBERTa,这意味着 GPT3 更加鲁棒。
此外,即使存在分布偏移,好的提示词所带来的泛化性能依旧会继续保持。比如:
图片来自于 Fu et. al. 2022. 即使测试分布与训练分布不同,复杂提示也始终比简单提示的表现更好。Fu 等人2022年[18]的研究显示,输入提示越复杂,模型的性能就越好。这种趋势在分布转移的情况下也会继续保持:无论测试分布与原分布不同、来自于噪声分布,或者是从另一个分布转移而来的,复杂提示始终优于简单提示。
到目前为止的总结
在上文中,我讨论了只有大型模型才有的三种突现能力。它们是:
复杂推理,大型模型在没有使用全部训练数据的情况下便显著优于以前的小型模型。知识推理,大型模型可能没有小模型效果好,但大模型不需要额外的知识来源(知识可能很昂贵,或者很难从非结构化数据中抽取)。分布外鲁棒性,这是之前进行模型精调时需要努力解决的问题。大型模型虽然在同分布情况下的效果不如以前的方法,但非同分布情况下的泛化性能却好得多。三、突现能力推翻比例定律
鉴于上文列出的优点,大家可能会开始觉得大型语言模型确实很好了。在进一步讨论之前,让我们再回顾一下之前的工作,就会发现一个很奇怪的问题:GPT-3 在 2020 年就发布了,但为什么直到现在我们才发现并开始思考范式的转变?
这个问题的答案就藏在两种曲线中:对数线性曲线和相变曲线。如下图:
左图: 比例定律. 当模型大小呈指数增长时,相应的模型性能呈线性增长。右图: 当模型尺寸达到一定规模时,会出现突现能力,让性能急剧增加。最初,(OpenAI)的研究者认为语言模型的性能与模型尺寸的关系可以通过对数线性曲线预测,即模型尺寸呈指数增长时,性能会随之线性增加。这种现象被称为语言模型的缩放定律,正如 Kaplan 等人在2020年[19]最初的GPT3文章[20]中讨论的那样。重要的是,在那个阶段,即便最大的 GPT-3 在有提示的情况下也不能胜过小模型精调。所以当时并没有必要去使用昂贵的大模型(即使提示词的标注效率很高)。直到2021年,Cobbe 等人[21]发现缩放定律同样适用于精调。这是一个有点悲观的发现,因为它意味着我们可能被锁定在模型规模上——虽然模型架构优化可能会在一定程度上提高模型性能,但效果仍会被锁定在一个区间内(对应模型规模),很难有更显著的突破。
在缩放定律的掌控下(2020年到2021),由于GPT-3无法胜过精调 T5-11B,同时T5-11B微调已经很麻烦了,所以NLP社区的关注点更多的是研究更小的模型或者高效参数适应。Prefix tuning[22]就是提示和适应交叉的一个例子,后来由 He 等人在 2021[23]统一。当时的逻辑很简单:如果精调效果更好,我们就应该在高效参数适应上多下功夫;如果提示词的方法更好,我们应该在训练大型语言模型上投入更多精力。
之后在 2022 年 1 月,思维链的工作被放出来了。正如作者所展示的那样,思维链提示在性能-比例曲线中表现出明显的相变。当模型尺寸足够大时,性能会显著提高并明显超越比例曲线。
当使用思维链进行提示时,大模型在复杂推理上的表现明显优于微调,在知识推理上的表现也很有竞争力,并且分布鲁棒性也存在一定的潜力。要达到这样的效果只需要8个左右的示例,这就是为什么范式可能会转变的原因。
四、范式转变意味着什么?
范式转变究竟意味着什么?下面我们给出精调和提示词方法的对比:
提示词的好处很明显:我们不再需要繁琐的数据标注和在全量数据上进行精调,只需要编写提示词并获得满足要求的结果,这比精调要快很多。
另外要注意的两点是:
上下文学习是监督学习吗?
坦白讲,我不确定。相似之处在于,上下文学习也需要像训练数据一样的示例不同之处在于,上下文学习的泛化行为并不同于监督学习,这使得之前的泛化理论(例如 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 年工作的第五张表[24]:
对于所有小于62B的模型,直接用提示词都好于思维链。第一个用思维链更好的模型是 Flan-cont-PaLM 62B 在BBH上的结果。540B的模型使用思维链会在更多任务上得到好的效果,但也不是全部任务都好于精调。另外,理想的尺寸可以小于 540B,在 Suzgun 等人2022年[25]的工作中,作者展示了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 就是用指令+强化学习精调[26]的产物。其、、在这之前,text-davinci-001 做思维链的效果并不好。同时PaLM[27]在经过指令精调[28]后的效果也有提升。在代码上精调:Codex code-davinci-002 是在代码上进行精调的,它的效果持续好于 text-davinci-002。PaLM 也在代码上进行了调整。从表面上看,代码与语言关系不大,但似乎起了很大作用,我们会在之后的文章进行讨论。用思维链精调:在 text-davinci-002 发布时,谷歌已经发布 PaLM 3 个月了。所以 OpenAI 应该看到了思维链相关的工作。还有一些工作表明[29][30],直接用思维链数据进行精调可以激发模型的思维链能力。然而,所有这些因素在现阶段都是推测。揭示如何训练才能让模型产生突现能力是非常有意义的,我们将更多讨论留到下一篇文章。
七、总结
在本文中,我们仔细研究了语言模型的突现能力。我们强调了复杂推理、知识推理和分布外鲁棒性的重要性和其中存在的机会。突现能力是非常令人兴奋的,因为它们可以超越比例定律,并在比例曲线中表现出相变。我们详细讨论了研究范式是否会真的从精调转向上下文学习,但我们目前还没有确切答案,因为精调和上下文学习在分布内、分布外场景下的效果仍有待对比。最后,我们讨论了产生突现能力的三个潜在因素:指令精调、代码精调和思维链精调。非常欢迎大家提出建议和讨论。
另外我们还提到了两个尚未讨论的有趣问题:
我们是否能公平对比精调和上下文学习的效果?我们是如何训练大模型,才能让模型具备突现能力、思维链能力?对于这两个问题,我们会在之后的文章中进行讨论。
中英对照表
参考
[1] https://www.yitay.net/blog/emergence-and-scaling: https://www.jasonwei.net/blog/emergence
[2] Wei et. al. 2022. Chain of Thought Prompting Elicits Reasoning in Large Language Models: https://arxiv.org/abs/2201.11903
[3] 便签本: https://lingo.csail.mit.edu/blog/arithmetic_gpt3/
[4] Wei et. al. 2022. Emergent Abilities of Large Language Models: https://arxiv.org/abs/2206.07682
[5] Wei et. al. 2022. Emergent Abilities of Large Language Models: https://arxiv.org/abs/2206.07682
[6] Cobbe et. al. 2021. Training Verifiers to Solve Math Word Problems: https://arxiv.org/abs/2110.14168
[7] Wei et. al. 2022. Chain of Thought Prompting Elicits Reasoning in Large Language Models: https://arxiv.org/abs/2201.11903
[8] Wang et. al. 2022. Self-Consistency Improves Chain of Thought Reasoning in Language Models: https://arxiv.org/abs/2203.11171
[9] Fu et. al. 2022. Complexity-Based Prompting for Multi-step Reasoning: https://arxiv.org/abs/2210.00720
[10] Chung et. al. 2022. Scaling Instruction-Finetuned Language Models: https://arxiv.org/abs/2210.11416
[11] Lewkowycz et. al. 2022. Minerva: Solving Quantitative Reasoning Problems with Language Models: https://arxiv.org/abs/2206.14858
[12] Jiang et. al. 2022. Draft, Sketch, and Prove: Guiding Formal Theorem Provers with Informal Proofs: https://arxiv.org/abs/2210.12283
[13] Xu et. al. 2021. Fusing Context Into Knowledge Graph for Commonsense Question Answering: https://aclanthology.org/2021.findings-acl.102.pdf
[14] Khashabi et. al. 2020. UnifiedQA: Crossing Format Boundaries With a Single QA System: https://aclanthology.org/2020.findings-emnlp.171
[15] Yu et. al. 2022. Generate rather than Retrieve: Large Language Models are Strong Context Generators: http://arxiv.org/abs/2209.10063
[16] Jung et. al. 2022. Maieutic Prompting: Logically Consistent Reasoning with Recursive Explanations: https://arxiv.org/abs/2205.11822
[17] Si et. al. 2022. Prompting GPT-3 to be Reliable. : https://arxiv.org/abs/2210.09150
[18] Fu et. al. 2022. Complexity-based Prompting for Multi-Step Reasoning: https://arxiv.org/abs/2210.00720
[19] Kaplan et. al. 2020. Scaling Laws for Neural Language Models: https://arxiv.org/abs/2001.08361
[20] Brown et. al. 2020. Language Models are Few-Shot Learners.: https://arxiv.org/abs/2005.14165
[21] Cobbe et. al. 2021. Training Verifiers to Solve Math Word Problems: https://arxiv.org/abs/2110.14168
[22] Li and Liang. 2021. Prefix-Tuning: Optimizing Continuous Prompts for Generation: https://aclanthology.org/2021.acl-long.353.pdf
[23] He et. al. 2021. Towards a Unified View of Parameter-Efficient Transfer Learning: https://arxiv.org/abs/2110.04366
[24] Chung et. al. 2022. Scaling Instruction-Finetuned Language Models: https://arxiv.org/abs/2210.11416
[25] Suzgun et. al. 2022. Challenging BIG-Bench tasks and whether chain-of-thought can solve them: https://arxiv.org/abs/2210.09261
[26] Ouyang et. al. 2022. Training language models to follow instructions with human feedback: https://arxiv.org/abs/2203.02155
[27] Chowdhery et. al. 2022. PaLM: Scaling Language Modeling with Pathways: https://arxiv.org/abs/2204.02311
[28] Chung. et. al. 2022. Scaling Instruction-Finetuned Language Models: https://arxiv.org/abs/2210.11416
[29] Huang et. al. 2022. Large Language Models Can Self-Improve: https://arxiv.org/abs/2210.11610
[30] Chung. et. al. 2022. Scaling Instruction-Finetuned Language Models: https://arxiv.org/abs/2210.11416
Illustration by M Wildan maulana from IconScout
-The End-
@将门创投· 让创新获得认可
如果喜欢,别忘了赞同、关注、分享三连哦!~笔芯❤
AI时代,拥有个人微信机器人AI助手!AI时代不落人后!
免费ChatGPT问答,办公、写作、生活好得力助手!
搜索微信号AIGC666aigc999或上边扫码,即可拥有个人AI助手!