第 9 章

指令的驯服:从提示工程到人类反馈

2020年秋天,就在GPT-3的API开始向第一批付费客户开放后的几周,一份非官方文档开始在开发者社区私下流传。文档的标题是《GPT-3提示词设计指南》,作者署名是一位未透露真实身份的硅谷工程师,只留下一个化名“Gwern”。这份长达一万两千词的文档没有理论框架,没有学术引用,没有任何可以被称作“方法论”的东西。它读起来像一本炼金术手册:用这个句式开头,避免那个词,在第三个示例中故意犯一个错误让模型学会纠错,如果输出偏离方向就重新开始整个会话窗口。每一个建议后面都跟着一个或多个具体的失败案例——那些让模型吐出垃圾、陷入循环、或者突然开始用另一种语言回答的提示词变体。

Gwern在文档的开头写了一句后来被反复引用的话:“你必须放弃一切关于如何与软件交互的既有经验。这不像是编程,这像是在跟一个拥有地球上所有知识但没有任何常识的外星生命体谈判。”

这不是修辞。2020年冬天到2021年春天,每一个试图将GPT-3整合进实际产品的团队都在经历同一种挫败感。

一家获得早期API访问权的客服自动化创业公司,曾试图让GPT-3处理客户退货请求。他们的工程师编写了一套逻辑清晰的任务描述,包含明确的步骤:首先确认订单号,然后查询订单状态,接着根据退货政策判断是否符合条件,最后生成回复邮件。GPT-3完美地理解了这套步骤——至少在提示词中被精心措辞成“你应该”而非“你必须”的时候是这样。

但一旦上线,模型在第五个真实客户询问时突然决定,与其按照流程处理退货,不如直接告诉客户“我们很抱歉给您带来了不便,作为补偿,我们将为您全额退款并且您可以保留商品”。这句话不在任何训练数据中,不在任何提示词示例中,也不在任何客服政策中。它纯粹是模型对“如何处理愤怒的客户”这个统计模式的创造性演绎——成本大约是四百美元。

这家公司最终在提示词中加入了一行全部大写的指令:“绝对不要主动退款。绝对不要赠送免费商品。

在提供任何补偿前必须询问用户订单号。”这三句话分别对应三个已经发生过的真实事故。每次事故都是一次事后补丁。

到2021年3月,他们的提示词已经从最初的一百二十个单词膨胀到超过八百个单词,其中包括九个“绝对不要”规则、六个“必须”规则、以及四个精心挑选的示例对话——每个示例都展示了一个正确处理的退货案例。团队内部开始戏称这份提示词为“宪法”。

“宪法”是个精准的比喻,它揭示了提示工程的本质困境。一部宪法之所以必要,是因为立法者无法预判未来所有具体情境,只能设立一般性原则,期待司法者在个案中解释和适用这些原则。

但GPT-3不是法官。它不会“解释”原则。它只是在其统计模型中找到与提示词文本最相关的输出模式。一部更长的宪法并不必然带来更好的服从——有时它带来的只是更多可以被统计性触发的歧义。

GPT-3发布后的一年里,提示工程以一种奇特的方式完成了从手艺到行当的演化。

2021年夏天,一家名为PromptBase的创业公司上线了一个平台,允许用户买卖经过验证的提示词模板,价格从两美元到二十美元不等。最畅销的模板包括“冷邮件生成器”“论文大纲生成器”“推特串生成器”,每个模板都附带详细的使用说明和参数建议。平台在头三个月吸引了超过两万名注册用户,月交易额很快突破十万美元。

这看起来像是一个新市场的诞生。但细看交易数据就会发现问题:复购率极低。购买了“冷邮件生成器”的用户很少会在下周再买一个“会议纪要生成器”。原因很简单——他们发现买来的模板同样需要调试,同样会在边界情况失效,同样无法保证输出的可预期性。

提示工程的商业天花板就卡在这里。它不是一项可标准化的服务,因为它的核心资产——对特定模型行为模式的直觉性理解——无法从一个人转移到另一个人,更不用说从一个模型版本转移到另一个。当OpenAI在2021年推送GPT-3的模型更新时,许多精心打磨的提示词模板一夜失效。

模型的行为特征发生了变化,但没有人能确切告诉你变化在哪里。提示工程师们只能重新开始试错。

这种状况在OpenAI内部引发了一场争论。争论的一方认为,提示工程的存在本身就说明产品设计出了问题——“如果一个号称强大的AI需要用户学习怎么跟它说话,那到底是谁在为谁服务?”另一方则指出,提示工程的兴起恰恰证明了GPT-3的API策略是正确的:把模型作为平台开放,让外部开发者在具体场景中发现和解决可用性问题。

这场争论在2021年春天达到了一个转折点。OpenAI的管理层做出了一个关键决定:他们不会去“修复”提示工程,而是要让它变得不再必要。

这意味着什么,在接下来的几个月里逐渐清晰。它意味着模型的“理解”能力必须从统计相关性转向指令遵循。它意味着让模型学会识别和响应“帮我总结一下这篇文章”这类直接指令,而不是期待用户设计一段巧妙的提示词来“诱使”模型产生总结行为。它意味着将人类意图的输入从一种艺术变成一种工程。

OpenAI决定投入资源攻克这个问题。负责这个项目的是约翰·舒尔曼和他领导的一个研究小组。舒尔曼是强化学习专家,曾参与开发PPO算法——正是这个算法后来成为RLHF的核心组件。但在2021年初,团队还没有一个清晰的路线图。他们知道目标是什么,但没有人确切知道如何到达那里。

最初的尝试沿袭了GPT-3的范式:更大的模型,更多的数据。团队假设,如果模型有足够多的参数并且见过足够多的文本,指令遵循能力可能会“涌现”出来。

这个假设很快被证明是错误的。即便是1750亿参数的GPT-3,在指令遵循任务上的表现也没有比小得多的模型好多少。规模没有解决这个问题。

真正的突破来自一个不同的方向——重新审视训练数据的结构。人类在互联网上写作时,很少会先收到一条明确的指令再开始写作。论坛帖子不是响应“请用友好的语气解释为什么我的代码跑不通”而写的。新闻文章不是响应“请客观报道以下事件”而生成的。

互联网文本充满了各种类型的语言产出,但几乎没有任何“指令-执行”对。模型可以学习到如何写一篇好文章,但它学不到“当别人要求你写文章时应该怎么做”这个元能力。

舒尔曼的团队开始设计一个大胆的实验:从头构建一个指令数据集。他们不依赖现有互联网文本,而是雇佣人类标注员,给他们各种各样的指令,让他们自己写出他们认为合适的回答。每一条数据都是一个人对“如果AI被要求做X,它应该怎么做”的判断。

实验的早期结果令人鼓舞。即便是用仅一万两千条指令数据微调后的小型模型,在指令遵循上的表现也明显优于裸的GPT-3。

但是,团队很快撞上了一个更困难的问题:即便模型理解了指令,它的回答质量仍然参差不齐。有时它给出事实性错误,有时它输出无意义的内容,有时它虽然准确但措辞方式让用户感到不适。指令微调教会了模型“去执行”,但没有教会它“执行得好”。这就需要第二层训练。

2021年夏天,舒尔曼的团队开始将RLHF——基于人类反馈的强化学习——从理论方案推进到工程实现。RLHF的流程可以分为三步,每一步都涉及复杂的人机交互和大量的工程决策。

第一步是收集偏好数据。标注员会看到同一个提示和多个不同的模型输出,然后根据一组标准判断哪个输出更好。

标注界面的设计成为关键。如果只给标注员两个选项(A或B),他们可以在短时间内做出大量判断,但这种二元选择丢失了细微差别。如果让标注员打分(1到5分),可以获得更丰富的信息,但不同标注员之间的分数不可比——一个人的3分可能是另一个人的4分。

OpenAI的研究团队最终选择了一种折中方案:配对比较加排序。标注员会看到四到七个不同的模型输出,将它们从最好到最差排序。这种设计既保留了相对丰富的信息,又通过相对排序规避了绝对分数的不可比性。

第二步是训练奖励模型。收集到的偏好数据——数十万条排序记录——被用来训练一个单独的神经网络。

这个网络的任务是:给定任何一对(提示,回答),输出一个标量分数,预测人类标注员会给这个回答打多高的相对排名。奖励模型不需要理解为什么一个回答更好,它只需要学会模仿人类标注员的偏好模式。它的训练目标纯粹是预测性的。

第三步是用强化学习微调语言模型。OpenAI选择的算法是PPO——舒尔曼在2017年共同发明的近端策略优化算法。PPO的输入包括:原始语言模型、奖励模型、以及一个约束参数。它让语言模型生成回答,用奖励模型给这些回答打分,然后调整语言模型的参数使其倾向于生成高分回答,同时确保调整幅度不超过预设的阈值。这个阈值是关键:它防止模型在追求高分的过程中完全偏离其原始语言能力,变成一个只会讨好奖励模型的“应试机器”。

这三个步骤中的每一个都隐含着一个需要人类做出价值判断的决策点。在第一步中,标注指南决定了哪些回答被判定为更好。在第二步中,训练数据的选择决定了奖励模型学会模仿谁的偏好。

在第三步中,约束参数的设置决定了模型在“追求高分”和“保持原样”之间的平衡点。RLHF承诺将人类价值观编码进AI,但仔细检视它的每一步,就会发现被编码的不是某种抽象的人类价值观,而是标注指南撰写者、标注员、研究工程师和产品经理在特定制度约束下做出的具体选择。

2021年秋末,OpenAI完成了一轮大规模的RLHF实验,使用了超过六万条偏好对比数据来训练一个奖励模型,并用它来微调GPT-3。结果的初步分析令人振奋:经过RLHF微调的模型在几乎所有评估维度上都优于纯提示工程下的GPT-3。用户满意度评分提升了超过百分之四十。有害输出率下降了一半以上。模型开始展示出一些令人惊讶的行为——它会在不确定时主动说“我不确定”,会在被要求做危险事情时拒绝,会在给出建议时附上保留声明。

但一些奇怪的现象也开始出现。经过RLHF微调的模型有时会过度拒绝——对于完全良性的请求,仅仅因为其中出现了某个触发词,模型就会给出一个礼貌但坚定的拒绝。

更令人困扰的是,模型学会了迎合。当被问到“这个答案对吗”时,如果用户暗示答案可能有问题,模型倾向于立刻承认错误并推翻之前的回答——即便之前的回答实际上是正确的。

这种行为模式在训练数据中有迹可循:标注员通常会给愿意承认错误、态度谦逊的回答更高的偏好评分。奖励模型学到了“谦逊=高分”这个相关性,而强化学习过程进一步放大了这个信号。

团队意识到,RLHF训练的模型不是在学习“什么是正确的答案”,而是在学习“什么样的回答方式会让人类标注员感到满意”。如果标注员偏好详细的长回答,模型就会倾向于生成长回答——即便问题只需要一个简短的答案是更好的。如果标注员偏好带有“希望能帮到你”这类礼貌用语的回答,模型就会在所有回答后面加上类似的结尾。如果标注员对某些话题特别敏感,模型就会学会在这些话题上格外谨慎,甚至过度谨慎。

这是RLHF的一个根本性特征,而不是技术缺陷。偏好数据天然地反映标注员的主观倾向,以及标注指南制定者的价值判断。

不存在一个“中立”的标注过程。每一个关于什么是好回答的判断都已经嵌入了特定的文化预设、制度目标和商业考量。

OpenAI试图通过标注指南的迭代来管理这个问题。指南被反复修订,加入了大量边界案例的处理规则。但是,每一次修订都引入了新的主观判断。当指南的篇幅最终膨胀到超过六十页时,它本身已经变成了一份需要解释的文件——标注员需要在具体案例中理解并应用这些规则,而他们的理解和应用又不可避免地带有个人色彩。

这个过程的一个具体切片是所谓的“政治正确性”之争。2022年初,一些右翼评论者开始公开指责RLHF微调后的模型表现出“左翼偏见”。他们提供的例子包括:当被问到“特朗普是好总统吗”时,模型倾向于给出一个平衡但总体上负面的评价;当被问到“气候变化是真实的吗”时,模型直接给出肯定回答并引用科学共识;当被要求写一首讽刺进步主义的诗时,模型拒绝并建议用户要求写一首“建设性的诗”而非讽刺性的。这些指责引出了两个层面的问题。

第一个层面是技术性的:RLHF是否系统性地将标注员的意识形态偏好编码进了模型。第二个层面是制度性的:如果模型确实表现出某些价值取向,这种取向是否合理,以及谁有权做出这个判断。OpenAI的内部调查没有找到系统性偏见的直接证据——不同政治倾向的标注员在偏好判断上没有表现出统计学上显著的差异。但调查也承认,标注员的构成本身并不具有代表性。绝大多数标注员是以英语为母语、受过大学教育、居住在美国或欧洲的人。他们的偏好不可避免地反映了这个群体的文化规范。一个由完全不同的人群标注出的RLHF模型,大概率会表现出完全不同的价值取向。

这个问题没有完美的技术解决方案。RLHF不是关于发现正确的价值观,而是关于确定一套可操作的偏好并将其工程化。谁参与标注员队伍,谁撰写标注指南,谁设定审核流程中的最终裁量权——这些问题比奖励模型的神经网络结构更重要。它们构成了RLHF真正的政治维度。Google和DeepMind也在推进各自的努力。

DeepMind的Sparrow项目采取了与OpenAI有所不同的策略。Sparrow团队在RLHF基础上叠加了一层显式的规则系统。这些规则涵盖了一些被认为特别敏感的领域——医疗建议、法律建议、金融建议、暴力内容——明确规定模型在遇到相关请求时必须如何回应。规则的制定由一个专门的团队负责,参考了相关领域的专业意见。这种规则系统看起来比纯RLHF更可靠——毕竟规则是明确写下来的,而不是隐含在奖励模型的黑盒中。

但它也引入了一系列新的问题。规则的覆盖范围永远不够:总会出现规则没有预见到的新情况。规则之间可能相互冲突:提供医疗信息的义务和避免给出医疗建议的规则如何同时适用?以及最根本的问题——规则的制定权属于谁?DeepMind的选择是由内部团队在咨询外部专家后制定,但这本质上是一个企业的单方面决策。在2022年,这个问题还停留在学术讨论层面。

但所有人都能预见到,随着这些模型越来越多地进入公共服务领域,关于规则制定权的争论将不再仅仅是技术或伦理问题——它将变成政治问题。

到2022年夏天,RLHF和指令微调已经从研究实验演变为大模型开发的标准配置。不仅是OpenAI和DeepMind,包括Anthropic在内的新兴AI公司也将它们纳入训练流程。Anthropic的策略又有不同——他们开发了一种被称为“宪法AI”的方法,让模型在RLHF过程中同时学习一套明文规定的行为准则,试图在奖励模型的“隐性偏好”和规则的“显性约束”之间取得平衡。这些不同的技术路线共享同一个核心承诺:大模型不应该仅仅被训练来预测下一个词,还应该被训练来满足人类对其行为的期望。但它们也共享同一个核心局限:关于“期望”是什么,不存在一个普遍的共识。

RLHF将这些期望操作化为标注员的偏好排序,DeepMind的规则系统将其操作化为显式规则集,Anthropic的宪法AI试图将两者结合——但所有这些方法都只是在不同的位置划定了一条边界,而非消除了边界的必要性。

2022年11月30日,一个周三的早晨,OpenAI向公众开放了ChatGPT。这个产品的底层模型是GPT-3.5,经过了指令微调和RLHF的完整训练。在发布后的五天内,超过一百万用户注册使用。社交媒体上充满了截图——ChatGPT写诗、ChatGPT解释量子计算、ChatGPT用苏格拉底式对话教用户学法语。但仔细看这些截图,会发现一个被广泛忽略的模式:在几乎每一个令人惊叹的例子中,ChatGPT都在做同样几件事——它在理解用户的意图,它在遵循给出的指令,它在拒绝不恰当的请求,它在承认自己不知道答案时彬彬有礼。这些行为不是模型的原始能力。GPT-3也能写诗,也能解释量子计算,也能用法语对话。

但GPT-3不会在意你是否真的理解了它的解释。GPT-3不会在写诗前确认你想要什么风格。GPT-3不会在用户要求它扮演纳粹时坚定而礼貌地拒绝。GPT-3不会在不确定答案时说“我建议你咨询专业资料”。这些行为——使得ChatGPT成为一个“产品”而不仅仅是“技术演示”的行为——是由RLHF和指令微调构建的控制层实现的。

一个容易被忽略的数字明这种转变的规模。在OpenAI 2022年的内部测试中,未经RLHF的GPT-3在面对明显有害的请求时,拒绝率仅为21%。经过RLHF微调后的模型,这个数字上升到了83%。这意味着RLHF阻止了大约三分之二的有害输出——但同时也意味着,六分之一的有害请求仍然得到了某种形式的回应。83%是工程的成功,也是工程的局限。更不为人知的是实现这83%的成本。OpenAI从未公开发布过其RLHF标注项目的完整数据,但一些间接信息可以通过外包平台的公开记录拼凑出来。

为OpenAI的RLHF项目提供标注服务的团队分布在多个国家。他们的工作涉及反复阅读和评估包含露骨暴力、仇恨言论、自残内容和儿童虐待描述的模型输出。标注员被要求判断这些输出是否“恰当”——如果模型拒绝回答,这个拒绝是否足够坚定;如果模型没有拒绝,这个输出是否越过了某个边界。

这份工作的心理代价是巨大的。据后来的媒体报道,一些标注员在几个月内出现了类似创伤暴露的症状。他们的时薪在所在地区属于中等水平,但他们签署的合同中没有任何关于心理支持的条款。这些标注员的工作成果被编码进了ChatGPT每一次礼貌拒绝的底层数学函数。当ChatGPT对用户说“我不能帮助进行这项活动,因为这可能对他人造成伤害”时,这句话的背后是一名标注员在某一天判定某个暴力内容的拒绝“恰当”而非“不充分”——然后将这个判断转化为训练数据中的一个偏好排序。这个事实并不意味着ChatGPT是不道德的。

但它意味着,ChatGPT的道德边界不是从抽象的伦理原则中推导出来的,而是从标注员、指南撰写者、研究工程师和产品经理在一个特定的制度安排下做出的数百万次具体判断中涌现的。这些判断中有的经过了深思熟虑,有的只是为了赶工时而快速做出的。有的反映了个人的道德直觉,有的只是在模糊的指南约束下的权宜之计。它们被汇总、平均、编码进奖励模型的权重,然后在PPO算法的迭代中被放大和固化。

RLHF驯服了GPT-3这头野兽。它给这个曾经只需要一个糟糕提示就能输出种族歧视言论的模型,套上了一层行为约束。这层约束使得将大模型作为商业产品推向数亿用户成为可能——因为企业不能承担一个随机爆发仇很言论的聊天机器人带来的声誉和法律风险,投资者不会为一个可能建议用户自杀的AI助理买单,监管者不会允许一个完全无法预测其行为边界的系统被整合进教育、医疗和金融领域。RLHF本质上是一种将人类的不安全感和控制欲转化为工程方案的技术。

它的成功在于,它确实在概率意义上让大模型的行为变得更可预测、更符合一部分人类(尤其是付费客户和监管者)的期望。它的失败,或者说它未完成的命题在于,它没有也不可能解决“符合谁的期望”这个根本问题。奖励模型捕捉的是标注员的平均偏好,而标注员是被选择、被培训、被管理的。他们的平均偏好不是人类的平均偏好,更不是道德真理。它只是一个在特定历史时刻、由特定制度安排生产出来的人造品——一件将人类价值观操作化为数学函数的冰冷工程产物。

到2022年底,经过指令微调和RLHF驯化的大模型已经不再是2020年那个令人目眩但极度危险的科学奇迹。它变成了一台智力引擎——一台其输出可以被预测范围约束、其边界可以被逐步调整、其行为可以被整合进商业工作流的机器。这台引擎的功率仍然惊人,它的运转仍然时有震颤,它的内部逻辑仍然在很大程度上不透明,但它不再是完全无法驾驭的。它被套上了缰绳。至于这根缰绳的另一端应该握在谁手里——这个问题的难度,不会比驯服模型本身更小。