GPT-3 的项目目标就决定了它的规模相对 GPT-2 必将大幅膨胀,OpenAI似乎也乐得如此,因为在使用多任务学习算法对 GPT-2 模型进行训练时,科学家初步观察到了一个十分神奇的现象:当训练规模(包括参数数量、训练数据量、训练时间)达到某个临界点后,模型似乎能够自发地学会一些原本并不在多任务学习清单中的额外能力。譬如在自然语言对话任务中,模型能够进行一些两位数的简单算术运算,尽管这些新的技能大多还十分稚嫩,时常出错,甚至连“9.11 和 9.8 哪个更大”这种问题都不能正确回答,但这些算术能力的确是在训练中自发学会的,完全不在设计者的预期当中。学术界借用了复杂系统科学中的“涌现”(Emergence)一词来描述该现象。
此外,人们还发现只要将任务步骤稍微拆解一下,按照思维链<sup>○二</sup>(Chain ofThought,CoT)的方式输入模型后,模型就能够更好地利用预训练与自发涌现的能力,在提示词的引导下顺利完成原本根本无法处理的复杂工作。GPT-3的生成任务是高度依赖提示词的,除了用思维链拆解复杂任务引导模型外,约束模型输出的表达格式、添加示例提升模型表现等都要通过提示词来进行,高质量的输出结果与用户能否设计出合适的提示词引导执行特定的任务密切相关。为此,从 GPT-3 开始逐渐流行起一个新的名词—“提示词工程”(PromptEngineering),原本 GPT-2 中出现的“提示词”是指引导预训练语言模型,使其能够准确识别出用户的任务意图,准确调节到执行特定任务上,现在加上“工程”二字,成了一种在编程之外的人类驱使计算机执行任务的全新方法。提示词工程与训练模型、编写代码相比没有太高的专业或学术门槛,却又需要一定的经验,更容易被大众所接受,后来发展成为公众参与到人工智能热潮中的一门显学,人工智能准入门槛的下降也显著提升了它从社会获得资源的速度。
GPT-3 发布后,OpenAI 既看到了模型规模膨胀对计算资源的巨大压力,也看到了 GPT-3 在与人机协作共同执行复杂任务背后的巨大潜力。为此,OpenAI 以 GPT-3 的代码为基线建立了两个分支:一个分支以提升计算性能和降低资源消耗为目标,代号为“GPT-Turbo”,这部分属于工程改进,笔者就不细表了;另一个分支的代号为“ InstructGPT”,从名字上就清晰地传达了这个分支的目标是专注于改善模型对用户指令的理解和执行能力。
第 8 章 从学习到创造
339
○一 地址为 https://www.commoncrawl.org/,一个从 2008 年起就通过爬虫对互联网进行爬取,并向公众免费提供其档案的互联网数据集。
○二 这个方法旨在模拟人类的思考方式,分步解释问题的逻辑,类似于解数学问题时逐步计算的过程。CoT 使得模型能够更好地理解复杂问题并产生更准确的回答。