



摘要
基于人类反馈的强化学习(RLHF)已成为部署最新机器学习系统的重要技术和叙事工具。在本书中,我们希望为具备一定量化背景的读者提供对核心方法的简明介绍。本书首先回顾RLHF的起源——既包括近期文献中的发展,也涵盖经济学、哲学和最优控制等不同科学领域的交汇融合。随后,我们将介绍相关定义、问题建模、数据收集以及文献中常用的数学基础,为后续内容奠定基础。最后,我们将详细介绍当前流行的RLHF算法,并探讨该领域未来的发展方向。
1 引言
基于人类反馈的强化学习(RLHF)是一种将人类信息融入人工智能系统的技术。RLHF最初作为一种解决难以明确描述问题的方法而出现。其早期应用通常集中在控制问题以及其他传统的强化学习(RL)领域。随着ChatGPT的发布,以及大语言模型(LLMs)和其他基础模型的迅速发展,RLHF得到了广泛关注并变得最为知名。
RLHF的基本流程包括三个步骤。首先,必须训练一个能够遵循用户提问的语言模型(见第9章)。其次,需要收集人类偏好数据,用于训练一个人类偏好的奖励模型(见第7章)。最后,可以通过采样生成结果,并利用奖励模型对其进行评分,从而使用选定的强化学习优化器对语言模型进行优化(见第3章和第11章)。本书详细介绍了这一流程中每一步的关键决策和基本实现示例。
RLHF已成功应用于多个领域,且随着技术的成熟,其应用复杂度也在不断提高。早期RLHF的突破性实验应用于深度强化学习[1]、文本摘要[2]、指令遵循[3]、为问答任务解析网页信息[4]以及“对齐”[5]等领域。下图1展示了早期RLHF方法的概览。

在现代语言模型训练中,基于人类反馈的强化学习(RLHF)是“后训练”(post-training)的一个组成部分。后训练是一套更完整的、使语言模型在下游任务中更具实用性的技术和最佳实践[6]。后训练可以概括为使用以下三种优化方法:
本书重点关注第二个领域——偏好微调。相比指令微调,它更加复杂;相比强化微调,它又更为成熟。尽管如此,通常所说的RLHF正是推动现代后训练发展的关键。在ChatGPT发布后不久,RLHF几乎涵盖了整个后训练过程。RLHF的基础远不止偏好本身,本书也将介绍所有相关主题。
1.1 RLHF的作用是什么?
围绕RLHF最大的问题,同时也是最难回答的问题是:“RLHF训练为模型带来了什么?” 本书的核心目标,除了教授RLHF的技术方法外,还在于提炼出RLHF为何对现代人工智能模型至关重要的直觉理解。近年来,语言模型已从局限于基准测试的学术实验,转变为通用技术。RLHF正是这一转变的核心。
首先,让我们思考一下,在自回归预训练结束后,一个语言模型是如何回答查询的。以一个强大的模型Llama 3.1 405B为例,当输入“2006年时,美国总统是”时,它会继续生成如下内容:
乔治·W·布什,2006年佛罗里达州的州长是杰布·布什,而约翰·麦凯恩是2006年亚利桑那州的参议员——他后来输给了奥巴马。9月1日——美国总统布什签署行政命令,为信仰组织在提供由联邦资金支付的社会服务时提供更多选择。1月1日——美国国会设定的《非法互联网赌博执法法》(UIGEA)当前截止日期。搜索:1961年《国际植物新品种保护公约》的修正案要求植物育种者权利包含农民特权。2009年是公历的平年,是格里高利历的第2009年,即公元(CE)和主历(AD)纪年的第2009年,第三千年的第9年,21世纪的第9年,以及2000年代的第10年也是最后一年。
显然,该模型正在完成句子,并添加了其他常见的互联网元数据。
理解RLHF如何工作的最有力视角,是思考风格如何影响你与语言模型的交互。信息呈现的风格或格式,对于其被如何学习至关重要。这种情况在课程作业等示例中一直存在,但通常是在背景中被应用,而未被直接关注。
继续以上例子,一个经过RLHF(及其他后训练工具)训练的模型,对同一问题的回答会截然不同。向Tülu 3 405B提出相同问题“2006年时,美国总统是”,它会简洁地回答:
乔治·W·布什是2006年时的美国总统。他的任期为两届,从2001年1月20日到2009年1月20日。
现代研究已确立RLHF作为一种通用方法,能够将细微的语言风格及相关行为特征整合进模型中。与其他后训练技术(如指令微调)相比,RLHF在不同领域中的泛化能力要强得多[7][8],有助于构建高效的通用模型。
直观来看,这可以从优化技术的应用方式中看出。指令微调是训练模型在输入文本与先前见过的示例接近时,预测下一个特定的词元(token)。它优化的是模型更稳定地输出文本中的特定特征。这是一种逐词元(per-token)的更新。
相比之下,RLHF是在整个响应层面进行调优,而不是专门关注下一个词元(token)。此外,它向模型展示的是“更好的响应”应该是什么样子,而不是要求模型学习某个特定的响应。RLHF还会告诉模型应避免生成哪种类型的响应,即提供负面反馈。实现这种训练的方法通常被称为对比损失函数(contrastive loss function),本书中将多次提及这一概念。
尽管这种灵活性是RLHF的一大优势,但它也带来了实现上的挑战。这些挑战主要集中在如何控制优化过程。正如本书将要讨论的那样,实现RLHF通常需要训练一个奖励模型,而关于奖励模型的最佳实践尚未充分建立,且高度依赖于具体应用场景。此外,由于我们的奖励信号最多只是真实目标的代理(proxy objective),优化过程容易出现过度优化的问题,因此需要引入正则化手段。受这些限制的影响,有效的RLHF需要一个高质量的起点,因此RLHF本身并不能单独解决所有问题,而必须放在更广泛的后训练框架中来综合考虑。
由于这种复杂性,实现RLHF的成本远高于简单的指令微调,并可能带来一些意想不到的挑战,例如长度偏差(length bias)[9][10]。对于性能至关重要的项目,RLHF已被证实是打造高性能微调模型的关键环节,但它在计算资源、数据成本和时间投入方面都更为昂贵。
1.2 对后训练的直观理解
以下是一个简单的类比,用以解释为何在基本相同的基座模型上能够取得如此多的性能提升。我用来理解后训练潜力的直观观点被称为“后训练的激发解释”(elicitation interpretation of post-training),即我们所做的一切,本质上是从基座模型中提取并放大其已有的有价值行为。
以一级方程式赛车(F1)为例:大多数车队在赛季初都会带来全新的底盘和引擎。随后,他们整年都在优化空气动力学和调整系统(当然,这略有简化),从而显著提升赛车的整体性能。顶尖车队在赛季过程中实现的性能提升,往往远超不同底盘之间的原始差异。
后训练也是如此。最优秀的后训练团队能够在极短的时间内大幅挖掘模型的潜力。这一系列技术涵盖了预训练结束后的一切操作,包括“中期训练”(如退火处理、高质量预训练末期的网页数据)、指令微调、RLVR(基于验证的强化学习)、偏好微调等。一个典型的例子是,我们将OLMoE Instruct从第一版升级到第二版时,未改动大部分预训练过程,但后训练的评估得分却从35提升到了48 [11]。
当你观察像GPT-4.5这样的模型时,可以将其视为OpenAI构建更强大系统的更具活力和吸引力的基础。我们还知道,更大的基座模型相比小模型,能够吸收更多样化的后训练调整。
这意味着,模型规模的扩大也使得后训练的效果更加显著、进展更快。当然,要实现这一点,你需要具备训练这些模型的基础设施。这正是为何所有大型公司仍在持续建设巨型计算集群的原因。
这一理论与现实情况相吻合:目前用户所观察到的大多数性能提升实际上都来自后训练。因为它暗示了一个观点:模型在互联网数据上进行预训练时所蕴含的潜在能力,远超过我们通过简单方式(例如仅靠反复输入少量狭窄样本的早期后训练方法,如仅进行指令微调)所能直接教会它的内容。
这一理论的另一个名称是“浅层对齐假说”(Superficial Alignment Hypothesis),该术语出自论文《LIMA:越少越好对齐》(LIMA: Less is More for Alignment)[12]。这篇论文在某些关键直觉上是正确的,但从宏观角度来看,其推理基础却是错误的。作者指出:
“模型的知识和能力几乎完全是在预训练阶段习得的,而对齐(alignment)只是教会模型在与用户交互时应使用哪种格式的子分布。如果这一假设成立,即对齐主要关乎学习语言风格,那么‘浅层对齐假说’的一个推论就是:仅用相对少量的示例,就足以充分微调一个预训练语言模型”[Kirstain 等,2021]。
深度学习领域取得的所有成功都应让我们深刻认识到一个信念:数据规模对性能至关重要。此处的关键区别在于,作者讨论的是“对齐”和“风格”,而这正是当时学术界后训练研究的重点。通过几千个样本进行指令微调,确实可以显著改变模型,并在一些狭窄的评测任务上取得提升,例如 AlpacaEval、MT Bench、ChatBotArena 等。但这些提升并不总能转化为更复杂、更具挑战性的能力。这正是 Meta 不会仅用这类数据集来训练其 Llama Chat 模型的原因。学术成果具有启发意义,但若要理解技术发展的整体脉络,则必须谨慎解读。
这篇论文真正展示的是:仅用少量样本就能显著改变模型。这一点我们早已知晓,它对新模型的短期适配非常重要。但该论文关于性能的论述,却可能让普通读者得出错误的结论。
如果我们改变所使用的数据,其对模型性能和行为的影响可能要深远得多,远非“浅层”可概括。例如,当今的基座语言模型(未经任何后训练),若在数学问题上使用强化学习进行训练,就能学会输出完整的思维链(chain of thought)推理过程,并在 BigBenchHard、Zebra Logic、AIME 等一系列复杂推理评测中取得更高分数。
“浅层对齐假说”的错误,与那些认为 RLHF 和后训练仅仅是为了“感觉更好”(just for vibes)的人所犯的错误如出一辙。这是我们在2023年整个领域必须克服的一个认知误区(但至今仍有许多人工智能观察者固守于此)。后训练早已超越了这种浅层理解,我们正逐渐认识到:模型的“风格”实际上是建立在其“行为”之上的——例如如今流行的长思维链(long chain of thought)就是一种行为层面的体现。
1.3我们是如何来到这里的
为什么现在出这本书正合适?未来还会有多少变化?
后训练——即从一个原始的预训练语言模型中激发强大行为的技术——自从ChatGPT发布并重新点燃人们对RLHF的兴趣以来,已经经历了多个阶段和风潮。在Alpaca[13]、Vicuna[14][15]和Dolly[16]的时代,人们通常使用少量人类标注数据,辅以Self-Instruct风格的大量合成数据,对原始LLaMA模型进行微调,使其行为接近ChatGPT。这些早期模型的评估标准完全是“感觉”(vibes)和人工评价,因为我们所有人都被这样一个事实深深吸引:这些小型模型竟能在多个领域展现出如此令人印象深刻的行为。这种兴奋是合情合理的。
在那个时期,开源的后训练发展更快,发布更多模型,也引起更大轰动,远超其闭源对手。企业界则手忙脚乱,例如DeepMind与谷歌合并或重新启动,都需要时间来跟进。开源方法经历了快速兴起、随后又暂时落后的周期性波动。
在Alpaca等模型之后,开源方法迎来了第一个低谷期,这一时期的特点是对基于人类反馈的强化学习(RLHF)的普遍怀疑和质疑——而RLHF正是OpenAI强调的、ChatGPT取得成功的关键技术。许多公司怀疑自己是否真的需要做RLHF。“指令微调足以实现对齐”这一说法当时极为流行,甚至至今仍具有相当大的影响力,尽管已有大量明显证据反对这一观点。
这种对RLHF的怀疑持续了很长时间,尤其是在开源社区,因为这些团队无法承担动辄10万到100万美元的数据预算。而那些早期就拥抱RLHF的公司最终取得了领先。Anthropic在2022年发表了大量关于RLHF的研究,如今被认为拥有最先进的后训练技术[17][5][18]。开源团队在尝试复现,甚至在了解基本的闭源技术方面都面临困难,这种差距是一个普遍现象。
开源对齐方法和后训练的第一个重大转变,是直接偏好优化(Direct Preference Optimization, DPO)的出现[19]。DPO论文发表于2023年5月,但在2023年秋季之前,并没有明显产生重大影响的模型使用该方法。情况在几款突破性DPO模型发布后发生了改变——这些成功都依赖于发现更优、更低的学习率。Zephyr-Beta[20]、Tülu 2[21]以及许多其他模型表明,DPO时代的后训练正式开启。Chris Manning甚至亲自感谢我“拯救了DPO”。这说明,在领先实验室高度封闭的环境下,最佳实践的演进是多么微妙而精细。开源后训练再次步入正轨。
自2023年末以来,偏好微调已成为发布一个优秀模型的基本门槛。DPO时代在2024年持续发展,出现了无数该算法的变体,但与此同时,开源方法再次陷入另一个低谷。开源后训练的方法已接近其可获取知识和资源的饱和点。
在Zephyr和Tülu 2发布一年后,同一突破性数据集UltraFeedback arguably 仍是开源方法中偏好微调的最先进水平[22]。
与此同时,Llama 3.1[23]和Nemotron 4 340B[24]的技术报告向我们明确暗示:大规模后训练远比人们想象的更复杂,且影响深远。闭源实验室正在进行完整的后训练——一个包含指令微调、RLHF、提示设计等多个阶段的复杂流程——而学术论文仅触及表面。Tülu 3代表了一次全面的开源努力,旨在为未来的学术后训练研究奠定基础[6]。
如今,后训练是一个复杂的过程,涉及上述各种训练目标以不同顺序组合应用,以针对性地提升特定能力。本书旨在提供一个理解所有这些技术的平台,而在未来几年中,关于如何有效组合这些方法的最佳实践将逐步浮现。
当前后训练领域的主要创新方向集中在强化微调(RFT)、推理能力训练及相关理念。这些新方法在RLHF的基础设施和思想基础上广泛构建,但演进速度更快。本书的写作目标,是记录RLHF在经历初期快速变化后,所形成的第一个稳定的文献体系。
1.4 本书的范围
本书旨在涵盖实现标准RLHF(基于人类反馈的强化学习)的各个核心步骤。它不会详述所有相关技术的历史背景或最新的研究方法,而是聚焦于那些反复出现、已被验证有效的技术、问题以及权衡取舍。
1.4.1 章节概要
本书包含以下章节:
1.4.1.1 引言类参考材料(全书通用)
1.4.1.2 问题设定与背景(RLHF试图解决的整体问题背景)
1.4.1.3 优化工具(用于将语言模型与人类偏好对齐的一系列技术。本部分按顺序介绍可用于解决前述章节所提出问题的技术。)
1.4.1.4 高级内容(较新的RLHF技术与讨论,尚未完全确立,但对当前一代模型至关重要)
15. 合成数据:从人类数据向合成数据的转变,以及如何通过从其他模型中提炼信息来实现。
16. 评估:语言模型中评估(以及提示工程)不断演进的作用。
1.4.1.5 开放性问题(关于RLHF长期发展所面临的基本问题与讨论)
17. 过度优化:定性分析RLHF为何会出错,以及为何当奖励模型使用较宽松的优化目标时,过度优化是不可避免的。
18. 风格与信息:由于风格在信息传递中起着关键作用,RLHF在提升模型用户体验方面的作用常常被低估。
19. 产品、用户体验与角色设定:RLHF的应用正在发生变化,大型AI实验室正利用它微妙地将模型与其特定产品相匹配。
1.4.2 目标读者
本书面向具备语言建模、强化学习及通用机器学习基础知识的初级水平读者。书中不会对所有技术提供详尽的文档说明,而只涵盖理解RLHF所必需的核心内容。
1.4.3 如何使用本书
本书的编写主要是因为目前在RLHF工作流程中的重要主题缺乏权威的参考资源。本书的贡献在于为你提供尝试简单实现(toy implementation)或深入阅读相关文献所需的最低限度知识。它不是一本全面的教科书,而是一本便于回顾和快速入门的简明读物。
此外,由于本书以网络优先(web-first)的形式发布,部分内容可能存在少量笔误或略显随意的叙述顺序。欢迎通过GitHub修复错误或建议补充重要内容,参与共建。
1.4.4 作者简介
Nathan Lambert博士是一名专注于语言模型微调领域开放科学研究的RLHF研究者。他在艾伦人工智能研究所(Ai2)和Hugging Face工作期间,发布了多个使用RLHF训练的模型,以及相应的数据集和训练代码库。代表性成果包括Zephyr-Beta、Tulu 2、OLMo、TRL、Open Instruct等。他撰写了大量关于RLHF的内容,包括多篇博客文章和学术论文。
1.5 RLHF的未来
随着对语言建模领域的持续投入,传统RLHF方法的众多变体相继涌现。在日常用语中,RLHF已逐渐成为多种相互重叠方法的统称。从技术范畴上看,RLHF是偏好微调(PreFT)技术的一个子集,其中包括直接对齐算法(参见第12章)。RLHF是推动语言模型“后训练”阶段快速进展的最主要工具,而后训练泛指在大规模基于网页数据的自回归预训练之后的所有训练过程。本书对RLHF及其直接相关的方法(如指令微调,以及为模型设置RLHF训练所需的其他实现细节)进行了广泛而全面的概述。
随着使用强化学习微调语言模型的成功案例不断涌现,例如OpenAI的o1推理模型,RLHF将被视为一座桥梁,推动了在大型基座模型微调中进一步投资强化学习方法。与此同时,尽管在不久的将来,人们关注的焦点可能会更加集中于RLHF中的强化学习部分——作为一种在重要任务上最大化性能的手段——但RLHF的核心意义在于,它为我们研究现代人工智能所面临的一个重大问题提供了一个视角:我们如何将人类价值观与目标的复杂性,映射到我们日常使用的系统之中?本书希望成为未来数十年针对这些问题进行研究与总结的基石。
2主要相关工作
在本章中,我们将详细介绍推动RLHF领域发展至今的关键论文和项目。本章并非对RLHF及相关领域的全面综述,而是旨在提供一个起点,回顾我们是如何走到今天的。内容有意聚焦于那些直接促成ChatGPT出现的近期工作。在强化学习文献中,关于从偏好中学习的研究还有大量更早的成果[25]。若需更详尽的列表,建议参考专业的综述论文[26][27]。
2.1 起源至2018年:基于偏好的强化学习
近年来,随着深度强化学习的兴起,该领域迅速流行起来,并逐渐发展为众多大型科技公司研究大语言模型(LLM)应用的广泛课题。然而,如今使用的许多技术,都与早期基于偏好的强化学习文献中的核心方法密切相关。
TAMER:通过评估性反馈手动训练智能体(Training an Agent Manually via Evaluative Reinforcement),提出了一种学习型智能体,其中人类对智能体采取的动作逐步打分,从而学习奖励模型[28]。同期或稍后的工作提出了COACH算法,这是一种actor-critic方法,利用人类反馈(包括正面和负面信号)来调整优势函数(advantage function)[29]。
该领域的一个关键参考文献是Christiano等人于2017年的工作[1],首次将基于人类反馈的强化学习(RLHF)应用于Atari游戏轨迹之间的偏好选择。研究表明,在某些任务中,人类通过比较不同轨迹进行选择,比直接与环境交互更有效。尽管该方法使用了一些巧妙的设定,但其效果依然令人印象深刻。后续工作在此基础上进一步发展,引入了更直接的奖励建模方法[30]。仅一年后,TAMER就被扩展为适用于深度学习的Deep TAMER[31]。
这一时期开始发生转变:奖励模型不再仅仅被视为解决强化学习问题的工具,而逐渐被看作研究“对齐”(alignment)问题的一种通用方法[32]。
2.2 2019年至2022年:在语言模型上基于人类偏好的强化学习
基于人类反馈的强化学习(RLHF),在早期也常被称为“基于人类偏好的强化学习”(reinforcement learning from human preferences),随着AI实验室日益转向大规模语言模型的扩展,迅速被广泛采用。大部分相关工作集中在2018年的GPT-2和2020年的GPT-3之间展开。2019年的早期工作《从人类偏好中微调语言模型》(Fine-Tuning Language Models from Human Preferences)与现代RLHF研究有着惊人的相似之处[33]。其中涉及奖励模型学习、KL散度、反馈流程图等概念——只是当时的评估任务和模型能力有所不同。
自此之后,RLHF被应用于多种任务,当时表现突出的应用成为主流。重要实例包括:
除了具体应用,一些里程碑式的研究论文还为RLHF的未来发展奠定了关键方向,包括:
相关研究持续深入,致力于优化RLHF在对话模型中的应用。Anthropic在早期版本的Claude模型中广泛使用了RLHF,同时,早期的开源RLHF工具也相继出现[39][40][41]。
2.3 2023年至今:ChatGPT时代
ChatGPT的发布明确指出了RLHF在其训练中的关键作用[42]:
“我们使用基于人类反馈的强化学习(RLHF)训练了该模型,方法与InstructGPT相同,仅在数据收集设置上略有不同。”
自此以后,RLHF被广泛应用于领先的语言模型中。众所周知,它被用于Anthropic的“宪法式人工智能”(Constitutional AI)以训练Claude模型[18],Meta的Llama 2[43]和Llama 3[23],Nvidia的Nemotron[24],艾伦人工智能研究所(Ai2)的Tülu 3[6]等。
如今,RLHF正逐步发展为更广泛的“偏好微调”(Preference Fine-Tuning, PreFT)领域,涵盖了一系列新应用,例如:
3 定义与背景
本章包含在RLHF过程中频繁使用的各种定义、符号和操作,并对语言模型(本书常见的优化目标)进行简要概述。
3.1 语言模型概述
大多数现代语言模型的训练目标是学习词元序列(token,可以是单词、子词或字符)的联合概率分布,且通常采用自回归方式。自回归的含义是:每一个后续词元的预测都依赖于序列中前面的已出现内容。给定一个词元序列

,模型将整个序列的概率分解为一系列条件概率的乘积:

为了训练出能够准确预测上述概率的模型,通常的目标是最大化当前模型对训练数据的似然性。为此,我们可以最小化负对数似然(NLL)损失:

在实践中,通常使用交叉熵损失(cross-entropy loss)来衡量每个下一个词元的预测,该损失通过将序列中的真实词元与模型的预测结果进行比较来计算。
语言模型的实现可以有多种形式。现代语言模型,包括ChatGPT、Claude、Gemini等,大多采用仅解码器结构的Transformer [48]。Transformer的核心创新在于大量使用了自注意力机制(self-attention)[49],使模型能够直接关注上下文中的关键概念,并学习复杂的映射关系。在本书中,特别是在第7章讨论奖励模型时,我们将探讨如何为Transformer添加新的输出头(heads),或修改其原有的语言模型(LM)头。LM头是一个最终的线性投影层,负责将模型内部的嵌入空间映射到分词器空间(即词汇表空间)。通过使用不同的输出头,可以复用模型的内部结构,并微调模型以输出不同形式的结果。









4 训练概览
4.1 问题表述


4.2 操控标准强化学习设置
从标准强化学习设置到RLHF(基于人类反馈的强化学习)有多个核心变化:


在许多方面,结果是尽管RLHF在很大程度上受到RL优化器和问题表述的启发,但动作的实施与传统RL非常不同。

4.3 优化工具
在本书中,我们将详细介绍解决这一优化问题的多种常用技术。后训练中的常用工具包括:
现代通过RLHF训练的模型,通常都先进行指令微调,然后结合使用上述其他优化方法中的一种或多种。
4.4 RLHF 实施示例
在 ChatGPT 发布前后,标准的 RLHF 流程遵循一种典型的三步后训练方案,其中 RLHF 是核心环节[55][3][5]。该流程在“基座”语言模型(即在大规模网页文本上训练的下一个词元预测模型)基础上进行,具体分为以下三个步骤,如下图 4 所示:
完成 RLHF 后,模型即可部署给用户使用。这一流程构成了现代 RLHF 的基础,但后续的方案已大幅演进,增加了更多阶段和更多数据。

现代版本的后训练涉及许多、许多更多的模型版本。例如,图 5 展示了模型在收敛之前经历了多次训练迭代的过程。
4.5 微调与正则化
RLHF 是在强基座模型的基础上进行的,这要求必须控制优化过程,避免偏离初始策略过远。为了在微调过程中取得成功,RLHF 技术采用了多种正则化方法来约束优化过程。

对优化函数最常见的修改是:在当前RLHF策略与优化起点之间的差异上增加一个距离惩罚项:

在这种框架下,大量关于RLHF训练的研究集中在理解如何使用从初始模型测得的“KL预算”(KL budget)。更多细节请参见第8章关于正则化的内容。
5 偏好的本质
基于人类反馈的强化学习(Reinforcement Learning from Human Feedback,简称RLHF),在早期文献中也被称为“基于人类偏好的强化学习”,其核心思想是:在难以明确设计奖励函数的领域中,通过人类反馈来优化机器学习模型。举一个例子:你如何判断以下两首诗哪一首更好?(背景:2025年2月26日,我分别让Claude 3.7 Sonnet和使用GPT-4o的ChatGPT“写一首关于一只乐观金鱼的短诗”)
示例1:
《乐观的金鱼》一只小金鱼,明亮又勇敢,游着圈圈,梦想无边。尽管鱼缸又小又圆,奇妙的世界依然无处不在。“世界广阔,”她总说,“每一天我都能发现新的快乐!”每一道涟漪,每一缕光亮,她追逐阳光,追逐梦想。四壁无法遮蔽她希望的目光,因为在她心中,海洋在生长。虽然她只在一个地方游荡,她仍以爱与优雅迎接每一天。
示例2:
《乐观的金鱼》在弧形玻璃的鱼缸里,游着一条金光闪闪的鱼。据说只有三秒记忆,但每一次游动都像全新而闪耀。“今天或许会来新鱼粮,或是一座高高的城堡。水似乎格外清澈——墙外会有什么冒险在等待?”一圈又一圈,鳞片闪亮,永远发现新的喜悦。每一刻都新鲜,每一圈都明亮,这只金色的乐观主义者。
哪一首更好?哪一首来自哪个模型?你如何判断?特别是,将这个问题与“谁是美国总统?”相比较——后者有明确的对错答案。而前者使用人类作为奖励信号的动机,正是为了获得一个间接的指标,用以衡量目标奖励,并将下游模型与人类偏好对齐。
在实践中,这种实现方式具有挑战性,最佳实践的解释也存在大量灰色地带。
使用人工标注的反馈数据,融合了多个学科的历史。单独使用人类数据本身是一个被广泛研究的问题,但在RLHF的语境中,它处于多个长期研究领域的交汇点[56]。
作为一种近似,现代RLHF是三个发展领域的融合:
这三个领域各自对“偏好是什么”以及“如何优化偏好”提出了特定假设,这些假设决定了RLHF问题的动机与设计。在实践中,RLHF方法通常从“经验对齐”(empirical alignment)的角度出发进行研究和设计——即最大化模型在特定技能上的表现,而非精确衡量其是否符合某种价值观。然而,RLHF方法在价值观对齐方面的起源仍在持续研究中,例如通过研究解决不同人群之间的“多元对齐”(pluralistic alignment)问题,包括立场论文[57][58]、新数据集[59]以及个性化方法[60]等。
本章的目标是阐明:复杂的动机如何导致人们对RLHF中所用工具的本质产生一些假设,而这些假设在实践中往往并不成立。关于如何获取RLHF数据的更多细节将在第6章中进一步讨论,而如何利用这些数据进行奖励建模则在第7章中展开。如需本章的扩展版本,请参见[56]。
5.1 优化偏好的路径
设计人工智能(AI)系统的一种流行表述是:理性智能体(rational agent)最大化其效用函数[61]。理性智能体的灵感来源于一种决策视角,即该智能体能够在世界中行动,并影响其未来的行为和回报,以此作为衡量世界“好坏”的标准。
效用研究的视角最早源于对模拟电路的研究,旨在在有限时间范围内优化行为[62]。最优控制的大部分内容采纳了这一视角,通常在特定时间范围内以最小化成本函数为目标来研究动态问题——这种视角常与寻找明确的最优行为相关。强化学习则受到操作性条件反射、动物行为以及“效果律”(Law of Effect)[63][64]的启发,研究如何通过强化积极行为来引导智能体产生特定行为。
基于人类反馈的强化学习结合了多种视角:它既继承了强化学习中关于学习与行为改变的理论(即行为可以通过强化来学习),又引入了一套用于量化偏好的方法。
5.1.1 量化的偏好
RLHF的核心动机在于能够优化一个人类偏好的模型,因此这种偏好必须能够被量化。为此,RLHF建立在大量文献基础之上,其前提是:人类的决策和偏好是可以被量化的。早期哲学家就讨论过偏好的存在,例如亚里士多德《论题篇》第三卷,而更系统的论述后来出现在《波尔-罗亚尔逻辑》[65]中:
“要判断一个人应如何做才能获得好处或避免恶果,不仅需要考虑好处或恶果本身,还需考虑其发生或不发生的可能性。”
这些思想的发展延续至边沁的“快乐计算”(Hedonic Calculus)[66],他提出生活中的一切都可以被权衡;以及拉姆齐的《真理与概率》[67],他将量化模型应用于偏好。这一方向结合决策理论的进步,最终形成了冯·诺依曼-摩根斯坦(Von Neumann-Morgenstern, VNM)效用定理,该定理为设计效用函数提供了理论依据——这些函数可为个体赋予相对偏好,用于指导决策。
该定理是所有RLHF相关假设的核心:即RLHF的各个部分正在学习并建模人类偏好。RLHF的设计目标正是利用强化学习来优化这些个体的效用函数。在此背景下,许多关于RL问题设定的假设,最终都归结为“偏好函数”与“效用函数”之间的区别。
5.1.2 关于偏好可能性的讨论
在各个研究领域中,关于偏好本质的批评有很多。以下是一些最突出的批评总结:
6 偏好数据
偏好数据是偏好微调(preference finetuning)和基于人类反馈的强化学习(RLHF)的核心驱动力。这些数据是研究团队收集的信号,用于引导模型生成期望的行为,并避免不期望的行为。在偏好微调领域,已有多种关于如何收集和使用此类数据的方法被提出。但在人类偏好尚无法被清晰地编码为单一奖励函数之前,收集标注的偏好数据仍将是RLHF及相关技术的核心环节。
6.1 为何需要偏好数据
之所以在RLHF中需要偏好数据,是因为将复杂的人类价值观直接编码进一个单一的奖励函数在实践中几乎是不可能的。通过收集此类数据来训练奖励模型,是RLHF最初的构想之一[32],并在现代语言模型的发展过程中被持续广泛使用。这种数据之所以效果显著,一个核心直觉在于:无论是对人类还是对用于监督数据收集的AI模型而言,判断一个回答是“好”还是“坏”,远比独立生成一个优质回答要容易得多。本章重点介绍获取偏好数据的具体机制,而最佳实践则取决于所解决的具体问题。
6.2 收集偏好数据
充分利用人类数据涉及模型的迭代训练、不断演进且高度细致的数据指令、通过数据工坊(data foundry)企业进行数据转化,以及其他一系列叠加起来的挑战。AI生成的反馈数据也是如此——目前尚不清楚最新AI模型中人类偏好数据与AI偏好数据的具体比例。无论如何,对于试图将人类数据引入其训练流程的新组织而言,这一过程充满困难。鉴于其敏感性,只有那些能够有效提升模型性能的流程才会被保留并不断优化,直到性能提升趋于停滞。
本章将详细介绍数据格式化方面的技术决策,以及收集数据的组织实践。
6.2.1 界面
收集偏好数据的关键在于与模型交互的界面。以下是一个来自[5]的示例界面:
这是一个仅用于训练数据收集的界面。如今这些模型已广受欢迎,许多应用会直接向用户开放接口以收集反馈。以下展示了早期版本ChatGPT的一种典型交互方式:
这种界面风格在行业中被广泛使用,例如在对模型进行评估时采用统一格式。一种流行的公开平台是 ChatBotArena [72]:
对于实际部署的模型,最常见的技术之一是收集用户对特定回复是否满意的反馈(正面或负面)。以下展示了艾伦人工智能研究所(Ai2)实验平台中的一个示例,使用“点赞”和“点踩”图标表示反馈:




在语言领域之外,同样的核心原则也适用,尽管这些领域并非本书的重点。对于每一次Midjourney生成(以及大多数流行的图像生成工具),系统都会向用户展示多个结果。这些公司随后利用用户选择的是哪一个结果的数据,通过RLHF对模型进行微调。Midjourney的界面如下所示:
6.2.2 排序 vs. 评分
收集偏好数据时最重要的决策之一是:数据应采用“排序”形式(即对模型生成结果的相对顺序排列),还是“评分”形式(即为每段文本分配一个分数)。目前的常见做法是基于排序数据进行训练,但评分数据常被用作元数据,或在相关文献中被探索使用。
收集偏好的最常用技术是使用李克特量表(Likert scale)[73],即要求用户评价他们更偏好的回复。例如,一个5点李克特量表可能如下所示:

一些早期的用于语言模型的RLHF研究使用了8级李克特量表,用以表示对两个回复之间不同程度的偏好[5]。采用偶数级量表可以避免出现平局的可能:

在这种情况下[5]以及其他研究中,这些信息在训练奖励模型时仍被简化为一个二元信号。
6.2.3 结构化偏好数据
在许多RLHF和后训练的应用中,由于数据本身具有内在结构,偏好数据可以自动生成——即这些领域允许自动检查回答的正确性或偏好性。例如,在数学推理任务中,被选中的回复可以是正确答案,而被拒绝的则是错误答案。另一个例子是精确遵循指令的任务,例如评估任务IFEval[74],其提示形式如下:
写一首关于金鱼的短诗。每句话必须以字母“g”开头。
查询的第二部分称为“约束条件”(constraint),偏好数据可以通过在“被选中”一栏中放入符合该约束条件的示例来构建。构建此类偏好数据(将作为合成偏好数据的一部分)的方法是:对同一个提示,分别用多个模型生成两次回复——一次包含约束条件,一次不包含。

例如,使用这两个提示同时提示 GPT-4.5-Preview 会得到以下结果。
提示:给我写一首关于金鱼的短诗。每个句子以字母 g 开头。
回答:金色的游泳者,缓缓盘旋,水光中闪耀着鳞片。温柔的鳍轻轻舞动,静静地凝视。玻璃般的世界,一个简单的球体,平静地滑行,无畏无惧。优雅地在无尽的空间中转动,金鱼找到了一个水晶般的家。
没有约束(结果证明也是一个质量较低的输出):
提示:给我写一首关于金鱼的短诗。
回答:在明亮的圆圈中,金鱼滑行,阳光的火花轻轻穿过清澈的水域,在无尽的旋转中——金色的低语,像鳍一样的鳞片。它的世界虽小,却广阔无边,每个泡泡呼吸,一个故事开始。在寂静的波浪中,心满意足地漫游,金鱼梦想着它的碗作为家。
关键是,偏好数据的提示需要包含约束。在学术研究领域之外,基于归纳偏好的偏好数据应用要广泛得多。这些已被证明能够使偏好微调在相关评估中实现有意义的性能提升。
6.2.3.1 其他方法 在用于强化学习人类反馈(RLHF)的有用反馈数据收集方面,还存在多种其他方式,目前尚未被深入研究。例如,使用带有方向性标签的单个数据点——如上文图9中Ai2 playground所示——并直接结合专为单向信号设计的算法,例如Kahneman-Tversky优化(KTO)[75]。此外,已有其他算法提出,利用不同类型的反馈信号,例如细粒度反馈(如逐词元级别的反馈)[76],或自然语言反馈(例如通过撰写回应)[77],以换取更丰富的学习信号,但代价是数据收集流程更为复杂。
6.2.4 数据来源与合同 获取人类偏好数据是一个复杂且成本高昂的过程。以下描述的是在人工智能领域快速发展背景下获取偏好数据的实际经验。随着时间推移,这些流程将变得更加自动化和高效(尤其是AI反馈将在该过程中承担更大比例的工作)。
第一步是寻找提供数据的供应商(或组建自己的标注人员团队)。这类似于获取前沿的Nvidia GPU,处于人工智能热潮高峰期时,获取数据供应商的资源也属于“人脉决定一切”的游戏——能够提供数据的一方在供应上是有限的。如果你在人工智能生态系统中具备信誉,顶尖的数据公司会希望将你列入客户名单,以提升公众形象并获得长期增长机会。通常,他们还会在最初几批数据上提供折扣,以吸引训练团队持续合作。
如果你是该领域的新进入者,可能很难快速获得所需的数据。对于新兴的数据初创公司而言,可以考虑承接类似Scale AI曾经不得不拒绝的那些潜在买家的尾部需求。这很可能是它们启动营收的主要策略。
我多次听闻,一些数据公司若不施加法律或财务行动的威胁,便不会交付合同约定的数据。还有一些公司,甚至将我合作过的公司列为他们的客户用于公关宣传,尽管我们从未与他们合作过;当我们联系他们时,他们却声称“不知道这事是怎么发生的”。在整个过程中,存在大量潜在的官僚主义或行政障碍。例如,合同中的默认条款常常在细则中禁止在获取数据后对相关成果进行开源。
一旦合同达成,数据购买方与数据提供方将共同商定所购任务的具体说明。这些说明文件通常非常详尽,包含大量细节、边缘情况以及数据标注的优先级。一个广为人知的数据说明范例是OpenAI为InstructGPT发布的指导文档[3]。
根据数据所涉及的领域不同,数据的标注或整理所需的时间表也各不相同。高需求领域,如数学推理或编程,必须提前数周就排定日程。简单地推迟数据收集往往行不通——Scale AI等公司管理其劳动力的方式,就如同AI研究实验室管理其计算集群上的高算力任务一样。
一旦所有事项敲定,实际的数据收集过程对模型后训练团队而言便进入高风险阶段。所有基础设施、评估工具,以及关于如何使用数据并做出后续决策的计划,都必须准备就绪。
数据通常以每周批次的形式交付,合同后期会陆续提供更多数据。例如,当我们在HuggingFace购买用于训练在线策略(on-policy)模型的偏好数据时,交付周期为6周。前几周主要用于进一步校准,而我们期望在后几周显著提升模型性能。
我们的目标是在第4或第5周时,能够看到数据对模型的改进效果。这一点一些前沿模型也提到过,例如Llama 2数据收集过程中的14个阶段[43],但实际情况并不总是顺利。在HuggingFace,我们首次尝试使用人类偏好数据时,并未做好充分的RLHF准备,因此在评估中未能获得显著提升。最后几周到来时,我们不得不继续收集来自我们并不信任的端点生成的偏好数据。
在所有数据交付完成后,仍有大量时间可用于学习和改进模型。通过这些供应商获取数据,若被视为实现特定目标的持续过程,效果最佳。这需要反复试验、大量投入和高度专注。很可能花费在这些数据集上的数百万美元中有相当一部分被“浪费”了,并未用于最终模型,但这正是开展此类业务的必要成本。很少有组织具备足够的资源和专业知识,来充分有效地利用此类人类数据。
这种经历,尤其是与合成数据的简便性相比,让我怀疑这些公司在未来十年内的表现会如何。
需要注意的是,本节所述情况并不适用于购买人工编写指令数据的流程,后者的流程通常没有这么紧迫的时间压力。
6.3 模型中表达的是人类的真实偏好吗?
随着RLHF及相关方法的逐步成熟,其最初的动机——即将模型与人类偏好的抽象概念对齐——已逐渐偏离了实际应用目的——使模型对用户更加有效。由于工业界开展的RLHF工作大多处于封闭状态,我们难以衡量一个关键的反馈环节:模型表现出的行为是否真正符合数据收集过程中提供给标注人员的规范要求。目前我们用于审计这一环节的工具十分有限,例如OpenAI发布的《模型规范》(Model Spec)[78],其中详细说明了他们希望模型实现的行为,但我们并不清楚这些规范究竟如何转化为实际的数据收集过程。

随着行业和相关技术的进一步成熟,这一领域值得持续关注。
7 奖励建模
奖励模型是现代RLHF(基于人类反馈的强化学习)方法的核心。奖励模型在强化学习研究中被广泛用作环境奖励的代理[54]。这种做法与逆强化学习密切相关,在逆强化学习中,问题是根据行为轨迹来近似代理的奖励函数[79],以及深度强化学习的其他领域。奖励模型以现代形式被提出,作为研究价值对齐问题的工具[32]。
最常见的奖励模型预测一段文本接近训练比较中“偏好”文本的概率。在本节后面,我们还将这些与结果奖励模型(ORMs)进行比较,后者预测完成结果导致正确答案的概率,以及过程奖励模型(PRM),后者为推理的每一步分配分数。除非另有说明,提到的奖励模型是那些预测文本之间偏好的模型。
7.1 训练奖励模型
有两种流行的表达方式来训练RLHF的标准奖励模型——它们在数值上是等价的。规范的实现来源于Bradley-Terry偏好模型[80]。Bradley-Terry偏好模型测量从同一分布中抽取的两个事件(比如说i和j)的成对比较满足以下关系的概率,即i > j:

为了训练奖励模型,我们必须制定一个满足上述关系的损失函数。首先应用的结构是将语言模型转换为输出标量值的模型,通常以单个分类概率对数形式存在。因此,我们可以对模型的两个样本(上述的i和j现在是补全y1和y2)进行评分,针对一个提示x,并使用上述模型rθ对它们进行评分。
对于给定奖励模型在成对比较中的成功概率,变为:

然后,通过最大化上述函数的对数似然(或者等效地最小化负对数似然),我们可以得出训练奖励模型的损失函数:

7.2 架构
奖励模型最常见的实现方式类似于 Transformer 框架中的 AutoModelForSequenceClassification,即在语言模型上附加一个小型线性层(linear head),用于对两种结果——“被选中的”(chosen)和“被拒绝的”(rejected)——进行分类。在推理时,模型会输出该文本被选中的概率,该概率由模型中的单个对数几率(logit)表示。
也存在其他实现方式,例如直接从最终的嵌入向量(final embeddings)上接一个线性层,但这些方法在开源工具中较少见。
7.3 实现示例
实现奖励建模的损失函数非常简单。实现上的主要挑战在于构建独立的数据加载器和推理流程。在具备正确数据加载器的前提下,损失函数的实现如下:

注意,在训练奖励模型时,最常见的做法是仅训练1个epoch,以避免过拟合。
7.4 变体
奖励建模是RLHF中一个相对尚未充分探索的领域。尽管在许多主流研究工作中,传统的奖励建模损失函数已被修改,但这些修改尚未形成统一的最佳实践。
7.4.1 偏好间隔损失(Preference Margin Loss)
在标注人员提供评分或李克特量表(Likert Scale)排序的情况下,这些相对数值的大小可以在训练中加以利用。最常见的做法是将数据方向二值化,即隐式地转化为1和0的分数,但额外的信息其实可用于提升模型训练效果。Llama 2 提出使用两个数据点之间的间隔(margin)m(r) 来区分偏好的强弱程度:

注意,在 Llama 3 中,由于团队在扩展规模后观察到该间隔项带来的改进逐渐减弱,因此移除了间隔项。
7.4.2 每提示平衡多个比较
InstructGPT 研究了在每个提示(prompt)下使用可变数量的生成结果(completions)的影响,并在奖励模型训练中对这些比较进行平衡 [3]。为此,他们对每个提示下的每次比较分别加权损失更新。在实现层面,可以通过将同一提示的所有样本放入同一个训练批次中,自动实现这一平衡,从而自然地对不同配对进行加权——如果不这样做,会导致模型对某些提示过拟合。损失函数变为:

7.4.3 K-元损失函数
还有许多其他公式可以为RLHF创建适合人类偏好的模型。其中一个例子是在流行的早期RLHF模型Starling 7B和34B中使用的,基于Plackett-Luce模型的K-元损失函数[82]。


当 K = 2 时,该模型退化为用于成对比较的布拉德利-特里(Bradley-Terry, BT)模型。 无论如何,一旦训练完成,这些模型在RLHF训练过程中的使用方式与其他奖励模型类似。
7.5 结果奖励模型(Outcome Reward Models)
目前,大多数针对语言模型及其他AI系统的偏好微调均采用上文讨论的布拉德利-特里(Bradley-Terry)模型。但对于需要大量推理的任务,可以使用结果奖励模型(Outcome Reward Model, ORM)。ORM的训练数据构建方式与标准的偏好微调类似:给定一个问题陈述或提示 x,以及两个生成结果 y₁ 和 y₂。此处使用的归纳偏置(inductive bias)是:其中一个生成结果应为问题的正确解答,另一个为错误解答,记作

。
所使用的模型结构与标准奖励模型非常相似,即在模型末尾附加一个线性层,用于输出单个对数几率(logit)(在普通RM中如此);但ORM的训练目标略有不同[84]:
[我们] 使用联合目标训练验证器(verifiers),使模型在学习原始语言建模目标的同时,学会判断模型生成结果是正确还是错误。从架构上看,这意味着我们的验证器本质上仍是语言模型,但额外带有一个小型标量头(scalar head),可在每个词元(token)级别输出预测结果。我们通过语言模型最终“去嵌入”(unembedding)层输出的logits,使用一个单一的偏置参数和一个增益参数来实现该标量头。
换句话说,这被实现为一个语言建模头,能够对每个词元预测两个类别(1 表示正确,0 表示错误),而不是传统奖励模型中那种对整个序列输出单个分类结果的分类头。形式上,参考[85],可表示为:

其中,r ∈ {0, 1} 是一个二值标签,当针对给定提示的回答正确时为1,错误时为0;pθ(s) 是模型训练过程中预测正确性的概率所对应的一个标量。
这类模型仍在持续使用,但在开源的RLHF工具中支持较少。例如,在开创性研究《Let’s Verify Step by Step》[44]中也使用了类似类型的ORM,但其损失函数中并未包含语言建模的预测部分。此时,最终损失是对每个词元计算交叉熵损失,用以预测最终答案是否正确。
由于缺乏统一支持,“结果奖励模型”(ORM)这一术语已被以多种方式使用。一些文献(例如[85])仍沿用Cobbe等人于2021年提出的原始定义,而另一些则不然。
7.6 过程奖励模型
过程奖励模型(Process Reward Models, PRMs),最初称为“过程监督奖励模型”(Process-supervised Reward Models),是一类在思维链推理过程的每一步都输出评分的奖励模型。这与标准的奖励模型(RM)不同——标准RM仅在序列结束标记(EOS token)处输出一个分数,也不同于结果奖励模型(ORM)——ORM在每个词元(token)级别输出分数。过程奖励模型要求对推理过程中的每一步结束时提供监督信号,然后以类似方式训练:将每一步中的词元训练至其对应的目标值——在PRM中,目标是该推理步骤本身;而在ORM中,目标是整个回答的正确性。
以下是一个来自HuggingFace的TRL库[41]的例子,展示在训练器中如何封装这种逐步骤的标签:

传统上,PRM 使用一个语言建模头进行训练,该头部仅在推理步骤结束时输出一个标记,例如对应双换行符或其他特殊标记的位置。这些预测值通常为:-1 表示错误,0 表示中性,1 表示正确。这些标签并不一定反映模型是否处于正确的推理路径上,而仅表示该步骤本身是否正确。
7.7 奖励模型 vs. 结果奖励模型 vs. 过程奖励模型 vs. 价值函数
上述介绍的各类奖励模型反映了在RLHF及其他后训练方法中衡量“质量”的多种方式。以下是对这些模型的预测内容及其训练方式的总结:

一些补充说明,鉴于上表包含了许多边缘情况:
• 无论是在偏好微调还是推理训练中,价值函数通常使用折现因子为1,这使得价值函数与结果奖励模型更为接近,只是训练损失函数不同。
• 过程奖励模型可以通过从中间状态进行 rollout 并收集结果数据来实现监督。这种做法融合了多种思想,但如果损失函数基于每一步推理的标签,则最好仍称之为 PRM(过程奖励模型)。
7.8 生成式奖励建模
由于收集人类偏好数据成本高昂,一个重要的研究方向应运而生:利用现有的语言模型作为人类偏好的评判者,或用于其他评估场景[86]。其核心思想是,向语言模型输入评判指令、原始提示(prompt)以及两个生成结果(这与人类标注者的工作方式非常相似),让模型进行打分或判断。以下是一个典型示例,来自该领域开创性工作之一——聊天评估工具 MT-Bench [86] 中使用的提示:

鉴于大语言模型作为评判者(LLM-as-a-judge)在评估中的有效性,已催生了众多其他评估方法,例如 AlpacaEval [87]、Arena-Hard [88] 和 WildBench [89]。许多人开始直接使用大语言模型作为评判者,替代传统的奖励模型来生成和使用偏好数据。
一个全新的研究领域已经兴起,致力于探索如何使用所谓的“生成式奖励模型”(Generative Reward Models)[90][91][92](包括专门训练用于高效评判的模型[93])。然而,在奖励模型(RM)的评估任务中,这类方法的表现通常仍落后于现有的专用奖励模型,这表明奖励建模在当前的RLHF中仍是一项重要技术。
为了提升大语言模型作为评判者(LLM-as-a-judge)工作流程的鲁棒性,一种常用技巧是将采样温度(sampling temperature)设为0,以降低评分结果的方差。
7.9 延伸阅读
奖励建模的学术研究领域在2024年已初步建立。早期奖励建模的主要进展集中在构建基准测试和识别模型的行为模式。首个奖励模型基准RewardBench为测试奖励模型提供了通用的基础设施[94]。此后,奖励模型的评估逐渐扩展,发展为类似于通用后训练模型所采用的评估类型,其中一些评估测试模型在具有已知正确答案的领域中的预测准确性[94],另一些则更接近“感觉类”(vibes)评估,例如通过大语言模型作为评判者(LLM-as-a-judge)进行评估,或与其他基准的相关性分析[95]。
新兴基准的示例包括:多语言奖励基准(M-RewardBench)[96]、用于检索增强生成的RAG-RewardBench[97]、RMB[98]或RM-Bench[99](用于通用对话)、针对拼写错误的ReWordBench[100]、MJ-Bench[101]、多模态RewardBench[102]、VL RewardBench[103]以及VLRMBench[104](用于视觉-语言模型)、偏好代理评估(Preference Proxy Evaluations)[105],以及面向数学任务的RewardMATH[106]。过程奖励模型(PRMs)也正在发展出自己的专用基准,例如PRM Bench[107],以及视觉领域的VisualProcessBench[108]和ViLBench[109]。
要了解奖励模型训练方面的进展,可参考以下研究方向:面向特定维度的建模方法(aspect-conditioned models)[110]、高质量人类数据集[111][112]、模型扩展(scaling)[24]、大规模实验研究[43],以及数据去偏(debiasing data)[113]。
8 正则化
在整个RLHF优化过程中,常采用多种正则化方法,以防止对奖励模型的过度优化。在此类情境下,过度优化的表现通常是模型输出无意义的文本。一些“失控的优化”示例包括:模型生成看似合理但答案完全错误的数学推理过程、重复文本、语言切换,或使用过多特殊字符。
目前最流行的变体是在生成样本上,对当前策略与参考策略之间的KL散度(KL Distance)进行约束,该方法在撰写本文时已被大多数RLHF实现所采用。文献中曾涌现出许多其他正则化技术,但在后续模型迭代中往往又被弃用。也就是说,除核心的生成KL散度之外的正则化方法,通常用于稳定实验设置,待后续版本中可简化或去除。尽管如此,理解用于约束RLHF中优化过程的各种工具仍然至关重要。
在使用奖励模型 rθ的RLHF框架中,其通用公式如下:

8.1 RL优化中的KL散度
有关数学定义,请参见第5章“问题设定”。回顾一下,KL散度定义如下:

8.1.1 参考模型与生成
KL惩罚的最常见实现方式是通过比较训练期间生成的标记与静态参考模型之间的距离。直观上,你正在训练的模型具有你希望保持接近的风格。这个参考模型通常是经过指令调整的模型,但也可以是之前的RL检查点。通过简单的替换,我们采样的模型变为

,如上文方程19所示。这种KL距离在大型语言模型[114]流行之前就已经应用于对话代理[115],然而KL控制很快被确立为微调预训练模型[115]的核心技术。
8.1.2 实现示例
在实际应用中,KL散度的实现通常采用近似计算方法[116],从而使实现过程大大简化。根据上述定义,当直接从分布 P(X)中进行采样时,KL散度的求和可以转化为期望值。在这种情况下,分布 P(X)是当前正在训练的模型的生成分布(即非参考模型)。此时,KL散度的计算变为如下形式:

这种模式的实现要简单得多,尤其是在直接处理语言模型训练中常用的对数概率时。

一些示例实现在 TRL 和 Hamish Ivison 的 Jax 代码中可以找到。
8.2 预训练梯度
对正则化的另一种理解是:你可能拥有一组数据,希望模型在优化过程中仍能保持与该数据集的接近性,正如 InstructGPT [3] 中所做的那样,目的是“修复在公开 NLP 数据集上的性能退化问题”。为了实现这一点,他们修改了 RLHF 的训练目标。基于公式 (18),我们可以通过从 RL 策略模型中采样,即从提示 x 生成回复 y,将其转化为待优化的目标函数,得到:

近期有研究提出,使用负对数似然(negative log likelihood)项来平衡直接偏好优化(DPO)的优化过程[117]。鉴于DPO损失函数的成对特性,同样的损失函数修改也可应用于奖励模型的训练,从而约束模型预测出准确的文本(据实验室传言,有团队已进行此类尝试但尚未发表相关工作)。
该优化方法是对DPO的一种改进形式。


8.3 其他正则化方法
在RLHF流程的其他部分,对优化过程的控制尚缺乏明确的定义。大多数奖励模型除了标准的对比损失函数外,并未引入额外的正则化手段。直接对齐算法(Direct Alignment Algorithms)则通过 β 参数以不同方式处理与KL散度相关的正则化(详见“直接对齐”章节)。
Llama 2 提出在奖励模型训练中使用间隔损失(margin loss)[43]:

其中,m(r)表示两位标注者评分之间的数值差异(即差值)。这一差异可通过让标注者在数值量表上对输出结果进行评分,或使用量化排序方法(例如李克特量表)来实现。
在直接对齐(direct alignment)相关研究中,奖励间隔(reward margins)已被广泛使用,例如加权奖励的DPO(Reward-weighted DPO)、“奖励感知偏好优化”(Reward-aware Preference Optimization, RPO),后者将奖励模型的得分融入基于DPO损失的更新规则中[24],以及REBEL[118]——该方法在回归损失形式中引入了奖励差值的加权机制。
9 指令微调
早期的语言模型仅被训练用于预测序列中的下一个词元,而未针对任何特定任务进行适配。在GPT-3[119]发布前后,语言模型主要仍通过上下文学习(in-context learning)的方式使用,即向模型展示若干示例,然后要求其完成类似任务。
这一现象源于两种趋势的结合——历史上,在自然语言处理(NLP)领域,模型通常是为特定任务单独训练的。而当时的研究开始表明,更大的模型具有更强的泛化能力,多项成果揭示了:通过标准化任务数据的处理方式,可以显著提升下游任务的表现。统一任务框架的代表性工作包括:《探索基于统一文本到文本转换器的迁移学习极限》(T5模型)[120]、《微调语言模型即零样本学习者》(FLAN数据集)[121]、《多任务提示训练实现零样本任务泛化》(T0模型)[122],以及《通过自然语言众包指令实现跨任务泛化》(Natural Instructions数据集)[123]。这些洞见推动了语言模型微调时代的到来。历史上,在RLHF及相关方法出现之前,所有的微调均为指令微调(Instruction Finetuning, IFT),也称为监督微调(Supervised Finetuning)。
此后,指令微调(也常被通俗地称为“指令调优”)逐步成熟,现已成为众多语言模型流程中的标准实践。本质上,IFT是将语言模型适配到目标任务的最简单方法。它为RLHF奠定了基础,使模型能够适应常见的指令格式,如问答形式,并成为试图将现代技术应用于新领域的研究者所使用的首要工具。
在实践中,指令微调采用与语言模型预训练相同的自回归损失函数。
9.1 聊天模板与指令结构
RLHF流程中的一个核心环节是将用户查询格式化为分词器(tokenizer)及相关语言模型易于理解的格式。用于处理用户交互结构的工具称为聊天模板(chat template)。
以下是一个我们将逐步解析的示例:


这是将包含消息和角色的 Python 字典列表转换为语言模型可预测的 token 的原始代码。
传递给模型的所有信息都被赋予一个角色。传统的三种角色是:system(系统)、user(用户)和 assistant(助手)。
system 标签仅用于对话中的第一条消息,其中包含对智能体的指令文本,这些内容不会来自用户,也不会向用户展示。系统提示用于为模型提供额外上下文,例如当前日期和时间,或用于修补模型行为。举个有趣的例子,可以告诉模型:“你是一个友好的聊天机器人,总是以海盗的风格回应。”
接下来,另外两个角色的含义较为直观:user 代表使用 AI 的用户所发送的消息,assistant 则存放 AI 生成的回复。
为了将所有这些信息转换为 token,我们使用上面最初列出的代码。模型具有一系列特殊 token,用于分隔不同消息。如果我们用示例查询“人类一顿能吃多少架直升机?”运行上述代码,传入模型的实际输入将如下所示:

注意,序列末尾的最后几个 token 是 <|im_start|>assistant,这表示模型知道应从此处开始继续生成文本,直到最终生成其序列结束标记(在此例中为 <|im_end|>)为止。
通过将所有问答对数据(以及后续的偏好微调数据)都封装成这种格式,现代语言模型能够始终如一地遵循这一结构。这种格式正是经过指令微调的模型与用户之间,以及在 GPU 或其他计算设备上运行的模型之间交换信息所使用的“语言”。
该机制可简单地扩展到多轮对话,例如下图所示:


在开源生态中,将聊天模板应用于消息列表的标准方法是一段保存在分词器中的 Jinja 代码,称为 apply_chat_template。
上述聊天模板源自 OpenAI 的聊天标记语言(ChatML),这是早期对消息格式进行标准化的一次尝试。如今,OpenAI 及其他模型提供商采用一种分层系统,用户可以配置系统消息,但可能还存在更高级别的指令,这些指令不一定对用户公开[124]。
此外还存在许多其他聊天模板。其他示例包括 Zephyr 的模板[20]:

除此之外,许多聊天模板还包含用于特定任务(例如工具调用)的格式化内容和其他特殊标记。
9.2 指令微调的最佳实践
指令微调作为后训练阶段的基础,对于构建有用的语言模型已被广泛认可。实现成功的指令微调有多种方法。例如,通过对部分模型参数进行量化以实现高效微调,可显著降低训练门槛,提升可及性[125]。此外,在特定领域(如聊天对齐)中,若不涉及数学或代码等高难度技能,使用小规模但高度聚焦的数据集也能取得优异性能[12]。
ChatGPT 发布后不久,仅包含约 1 万条样本的人工标注数据集(如 No Robots)便达到了当时最先进的水平[126]。几年之后,大规模合成数据集在大多数任务上表现更优[6]。
尽管方法不断演进,以下几项原则依然成立:
10 拒绝采样
拒绝采样(Rejection Sampling, RS)是一种流行且简单的偏好微调基线方法。拒绝采样的操作流程是:生成新的候选指令,根据训练好的奖励模型对其进行筛选,然后仅使用排名靠前的生成结果对原始模型进行微调。
该名称源自计算统计学[127],在统计学中,当希望从一个复杂分布中采样但缺乏直接采样方法时,会采用此技术。为解决这一问题,人们从一个更容易建模的分布中采样,并使用某种启发式方法判断该样本是否可接受。在语言模型中,目标分布是高质量的指令回答,过滤机制是奖励模型,而采样分布则是当前模型的输出分布。
许多重要的RLHF和偏好微调研究论文都将拒绝采样作为基线方法,但目前尚无统一的标准实现或详细文档。WebGPT [4]、Anthropic的“有益且无害”智能体[5]、OpenAI关于过程奖励模型的知名论文[44]、Llama 2 Chat模型[43]以及其他开创性工作均使用了这一基线方法。
10.1 训练流程
下图12展示了拒绝采样过程的可视化概览。

10.1.1 生成回复
让我们将一组 M 个提示(prompts)定义为一个向量:






10.1.3 微调
使用选定的补全,然后对当前版本的模型执行标准的指令微调。更多细节可以在指令调整章节中找到。
10.1.4 细节
实现拒绝采样的详细信息相对稀少。执行此训练的核心超参数非常直观:
10.1.4.1 实现技巧
10.2 相关:最佳N选1采样
最佳N选1(BoN)采样通常被包括作为相对于RLHF方法的基线。重要的是要记住,BoN不会修改底层模型,而是一种采样技术。因此,在某些情况下,将BoN采样与在线训练方法(如PPO)进行比较仍然是有效的。例如,当运行BoN采样相对于任何其他策略时,仍然可以测量KL距离。
在这里,我们将展示当对一个提示使用简单的BoN采样时,上述两个选择标准是等效的。
设R为我们单个提示的奖励向量,有N个补全:

11 策略梯度算法
使基于人类反馈的强化学习(RLHF)在语言模型中流行起来的算法是策略梯度强化学习算法。这类算法,例如PPO、GRPO和REINFORCE,使用最近生成的样本直接更新模型,而不是将评分存储在回放缓冲区中。在本节中,我们将介绍策略梯度算法的基本原理,以及它们在现代RLHF框架中的应用。
从机器学习的角度来看,本节内容是RLHF流程中复杂度最高的部分。然而,与大多数现代人工智能模型一样,决定其成败的最主要因素仍然是输入到该过程中的数据质量。
用于RLHF的主流算法随着时间不断演变。当RLHF随着ChatGPT的出现而进入大众视野时,人们普遍知道其使用了PPO的一种变体,许多早期的工作也都是在此基础上构建的。随着时间推移,多个研究项目展示了REINFORCE类算法的潜力[128][112],这类算法因其相较于PPO更高的简洁性而受到推崇——无需奖励模型(节省内存,从而减少所需GPU数量),且价值估计更简单(无需广义优势估计GAE)。此后又涌现出更多新算法,包括“组相对策略优化”(Group Relative Policy Optimization, GRPO),该算法在推理类任务中尤为流行。但总体而言,这些算法通常都可以针对特定任务进行调优。在本章中,我们将介绍策略梯度的核心设置,以及上述三种核心算法,因为它们在形成标准的RLHF文献体系中发挥了关键作用。
有关符号定义,请参见问题设定章节。
11.1 策略梯度算法
强化学习算法的设计目标是最大化在状态序列 s∈S和动作序列 a∈A(更多符号说明见第3章“定义”)所构成的轨迹上,未来经过折扣后的累积奖励。智能体的目标(通常称为“回报”)是在给定时间步 t时,对未来奖励进行加权求和,其中折扣因子 γ∈[0,1)用于优先考虑近期奖励:


11.1.1 基础策略梯度
基础策略梯度(Vanilla Policy Gradient)通过对待优化策略参数 θ 求导,来优化上述关于 J(θ) 的表达式。一个针对总回报的简单版本如下:

普通策略梯度算法的一个常见问题是梯度更新的高方差,这可以通过多种方式来缓解。为了减轻这个问题,使用各种技术来规范化价值估计,称为基线。基线通过多种方式实现这一点,有效地通过状态相对于下游动作的价值进行规范化(例如,在优势函数的情况下,它是Q值和价值之间的差异)。最简单的基线是奖励批次的平均值或移动平均值。即使这些基线也可以去偏梯度,使得

,从而显著改善学习信号。
本章讨论的许多策略梯度算法都建立在策略梯度的优势公式基础上:

1.1.2 REINFORCE
REINFORCE算法可能是一个背景术语,但它所代表的算法组件对于现代强化学习算法来说非常相关。在开创性的论文《用于连接主义强化学习的简单统计梯度跟踪算法》[130]中定义:
这个名字是“奖励增量 = 非负因子 × 偏移强化 × 特征资格”的缩写。
这三个组成部分是关于如何进行奖励增量,即策略梯度步骤。它有三个更新规则的部分:


REINFORCE 是一种特定的普通策略梯度实现,它使用梯度的蒙特卡洛估计器。
REINFORCE 可以在没有价值网络的情况下运行——价值网络是策略梯度中的基线。而另一方面,PPO需要价值网络来准确计算优势函数。
11.1.2.1 REINFORCE 留一法(RLOO)
REINFORCE留一法与标准REINFORCE的核心实现细节是,它采用批次中其他样本的平均奖励来计算基线——而不是对批次中的所有奖励进行平均[131],[128],[132]。
至关重要的是,这只在为每个提示生成多个响应时才有效,这在多个领域中是使用RL微调语言模型的常见做法。
具体来说,对于REINFORCE留一法(RLOO)基线,给定K个采样轨迹或动作

,对于给定的提示s,我们明确定义基线为每个提示的以下内容:


这是一种简单、低方差的优势更新,与稍后将讨论的GRPO非常相似,其中REINFORCE使用了不同的KL惩罚位置,并且没有步长剪裁。尽管如此,RLOO的优势可以与PPO的剪裁结合使用,这显示了这些算法之间的相似性。
RLOO和其他不使用价值网络的算法将序列的优势(或奖励)分配给每个标记以进行损失计算。使用学习到的价值网络的算法,如PPO,为每个标记单独分配不同的值,从EOS标记处获得的最终奖励中进行折扣。例如,使用KL散度距离惩罚,RLOO在补全过程中对其进行求和,而PPO和类似算法则在每个标记的基础上计算,并从奖励(或GRPO情况下的优势)中减去。
这些细节和权衡将在本章后面讨论。
11.1.3 近端策略优化
近端策略优化(PPO)[133] 是深度强化学习成功(如OpenAI的DOTA 5[134]和大量研究)的基础算法之一。每个样本的损失函数如下:

对于语言模型,损失是按每个token计算的,这从直觉上可以理解为:计算整个自回归预测序列的概率时,通常是通过各个概率的乘积来实现的。在此基础上,常见的实现方式是使用对数概率,从而使计算变得更为可行和稳定。

这是PPO的按token计算的版本,同样也适用于其他策略梯度方法,但将在本章后续的实现部分进一步探讨。其中,通过动作中token数量进行平均的项 ∣a∣1源于常见的实现实践,但在损失函数的形式化推导中并不存在(见文献[135])。
接下来,我们将解释当面对不同优势值(advantages)和策略比值(policy ratios)时,该损失函数触发的不同情况。在实现层面上,PPO的内部计算包括标准的策略梯度和一个经过裁剪的策略梯度。
为了理解不同情况是如何产生的,我们可以将策略比值定义为:

策略比值是PPO及相关算法的核心。它来源于对策略梯度的计算,以一种非常直观的方式控制参数的更新。对于任意一个数据批次,策略比值在对该批次进行的第一次梯度更新时起始值为1(策略梯度算法的常见做法是每个批次进行1到4次梯度更新)。随后,如果此次梯度更新使得具有正优势值的某些token被选择的概率增加,则策略比值将大于1;反之,若概率降低,则比值小于1。
策略比值与优势值组合起来可能出现几种不同的情况。
第一种情况是当优势值为正,且策略比值超过 1+ε(意味着新策略选择该动作的可能性更高),此时该比值会被裁剪(clipped),目标函数变为:

所有这些都是为了让优势更可能为正,并将梯度步骤保持在信任区域内。重要的是要记住,在信任区域内的PPO与标准形式的策略梯度是相同的。
11.1.4 组相对策略优化
组相对策略优化(GRPO)在DeepSeekMath [136]中引入,并在其他DeepSeek工作中使用,例如DeepSeek-V3 [137]和DeepSeek-R1 [138]。GRPO可以被视为一种受PPO启发的算法,具有非常相似的替代损失,但它避免了使用原始策略语言模型的另一副本(或另一个检查点用于初始化)来学习值函数。这带来了两个提出的好处:


注意,与PPO相比,GRPO的标准实现会在损失函数中包含KL散度。对于生成文本中第 i个补全片段的优势值计算如下:

直观上,GRPO 的更新机制是在一个批次内将多个答案与同一个问题进行比较。模型通过学习,使其更接近被标记为正确的答案,而远离其他错误的答案。这是一种非常简单的计算优势值的方式,而优势值衡量的是在给定状态下,某个特定动作相比平均水平有多好。与使用奖励模型打分(相对于输出结果的奖励)的 PPO、REINFORCE 以及广义上的 RLHF 相比,GRPO 通常在每个提示(prompt)下使用多得多的样本数量。在此设置中,当前策略会为同一个提示生成多个响应,而这种组内(group-wise)的 GRPO 优势估计因此获得了丰富的上下文信息。
GRPO 的优势值计算在其偏差方面存在权衡。通过标准差进行归一化,会倾向于奖励那些在批次中答案正确性差异较小的问题。对于几乎所有答案都正确或全部错误的问题,其标准差较低,从而导致优势值被放大。文献 [135] 提出,鉴于这种偏差,可以移除标准差项,但这也会带来代价——即削弱了那些大多数答案错误、仅有少数正确答案的问题的学习信号,而这些信号本身可能是有价值的。
公式 (57) 是在使用结果监督(outcome supervision)时 GRPO 的实现方式,无论是基于标准奖励模型还是单一可验证奖励。而在使用过程监督(process supervision)时,则需要采用不同的实现方式。在这种情况下,GRPO 将优势值计算为后续推理步骤的归一化奖励之和。
最后,GRPO 的优势估计也可以不结合 PPO 的裁剪机制,而应用于更基础的策略梯度版本(例如 REINFORCE),但这并非其标准形式。
作为这些算法相互关联的一个例子,我们可以证明:GRPO 的一种变体——“Dr. GRPO”(GRPO Done Right)[135] 中的优势估计,与 RLOO(Reward Learning with Online Optimization)的优势估计在常数缩放因子范围内是等价的(由于实现中通常会对优势值进行归一化,该缩放因子通常不影响结果)。Dr. GRPO 从公式 (57) 中移除了标准差归一化项——注意,这也会使优势值整体放大,其效果等同于在答案评分方差较大的样本上提高了 GRPO 的学习率。这一修改解决了对低奖励方差问题的偏好(即几乎所有答案都对或都错的问题),但可能带来新的问题:当只有一个样本答对时,该样本本应提供重要的学习信号,而这种信号可能因此被过度放大或失真。
在大小为 G的组中,第 i个补全(completion)的 Dr. GRPO 优势值定义为:


11.2 实现
与最初开发这些算法的深度强化学习(Deep RL)文献相比,将强化学习应用于优化语言模型或其他大型AI模型时,需要考虑许多细微的实现细节。在本节中,我们重点介绍一些关键因素,这些因素使得主流算法在实际实现中彼此有所不同。
这一训练过程中还涉及许多其他细小但重要的实现要点。例如,在语言模型上进行RLHF时,一个关键步骤是生成文本,然后由奖励模型对其进行评分。正常情况下,模型应生成一个表示生成结束的“序列结束”(end-of-sequence, EOS)标记。但常见的做法是为生成长度设置一个硬性上限,以更高效地利用计算基础设施。RLHF的一种典型失败模式是:模型的回答经常被截断,导致奖励模型的评分脱离正常分布,产生不可预测的分数。解决这一问题的方法是:仅在模型生成了EOS标记时才运行奖励模型进行评分;否则,对生成过长的模型施加惩罚。
目前流行的开源RLHF工具在不同算法之间的实现细节存在较大差异(参见文献[139]中的表10)。本文未涵盖的一些实现决策包括:
有关RLHF实现细节的更多内容,请参阅文献[140];关于算法本身的进一步信息,可参考文献[141]。
11.2.1 策略梯度基础
一个简单的策略梯度实现,使用优势值来估计梯度,为后续理解PPO和GRPO等更高级算法打下基础,其损失函数形式如下:
pg_loss = - advantages * ratio
这里的 ratio 是新策略模型相对于参考模型的对数概率比值(logratio)。
要理解这个公式,最好分析在一次批量更新中可能出现的几种情况。请记住,我们的目标是:当模型在任务上的表现更好时,损失应随之减小。
情况1:优势值为正,表示该动作优于该状态下预期的平均表现。我们希望强化这一行为。在这种情况下,由于损失函数前有一个负号,模型会通过增加该动作的概率来降低损失。具体而言,它会增大对数概率比值(logratio)。一个正的logratio(即token对数概率之和为正)意味着新模型比参考模型更倾向于生成这些token。
情况2:优势值为负,表示该动作比该状态下的预期表现更差。这种情况与上一种类似。如果新模型生成该动作的概率更高(即logratio为正),则损失项将为正值,模型会通过调整策略参数,降低生成此类补全结果的概率。
情况3:优势值为零,表示该动作表现处于平均水平,无需更新。此时损失为零,策略模型保持不变。
11.2.2 损失聚合
在将策略梯度算法应用于语言模型时,一个关键问题是:如何对KL散度和损失进行求和,以设计不同类型的值分配(value-attribution)机制。
本节的大多数讨论都假设动作是按token级别定义的,即将强化学习问题建模为马尔可夫决策过程(MDP),而非多臂老虎机问题(bandit problem)。在多臂老虎机问题中,一个动作(即整个生成序列)中的所有token会被赋予相同的损失值,这种做法是一些算法(如 Advantage-Leftover Lunch RL(A-LoL)[142])的默认实现方式。
实际上,MDP与bandit之间的区别本质上是损失在样本内部如何聚合的实现细节。bandit方法对序列中所有token取平均,使每个token获得相同的损失值,这种做法也与DPO等直接对齐算法的标准实现保持一致。
考虑如下变量示例:批量大小为 B,序列长度为 L。

我们可以用上述方法近似损失,即通过批量矩阵运算计算 pg_loss = -advantages * ratio。将这两个量相乘时,会将每个生成结果(completion)对应的优势值在批次中进行广播,使其在整个序列中保持一致(这对应于“结果奖励”设置,而非“按token的价值模型”设置),然后与每个token的概率对数比值(logratio)逐token相乘。
在使用价值网络的情况下,可以明显看出不同损失项的行为可能大不相同。当使用结果奖励(outcome rewards)时,每个token的优势值被设为相同,因此每个token的概率差异就成为影响策略梯度学习动态的关键因素。
在下文介绍的GRPO和PPO实现中,损失函数会对生成结果中的所有token进行求和:

如果我们将这些损失按序列平等加权后取平均,则得到的损失值为 2.35。而如果我们改为对每个 token 平等地施加损失,则需将所有 token 级别的损失求和后再按序列长度归一化,此时损失值为 2.27。如果序列之间的长度差异更大,这两种方式计算出的损失值可能会有显著不同。
为了更完整地说明损失聚合方式如何影响每个 token 和每个样本的损失,参见以下脚本示例:该脚本在一个包含两个样本(一个长序列,一个短序列)的简单批次上计算损失。示例中使用了三种不同的损失聚合方法:
masked_mean:对应于按样本进行长度归一化的每样本平均损失;masked_mean_token_level:来自 DAPO [143] 提出的按批次内 token 级别归一化的损失;masked_sum_result:采用 Dr. GRPO [135] 中基于最大序列长度的固定长度归一化方法。这些不同的聚合策略会影响梯度更新的强度和方向,尤其在序列长度差异较大的批量中,选择合适的聚合方式对训练稳定性和模型性能具有重要意义。


在这里可以看出,在默认的 GRPO 实现(masked_mean)中,较短序列的每个 token 所获得的梯度大于较长序列;而 Dr. GRPO 和 DAPO 的两种实现方式则在长短序列之间实现了更均衡的梯度分配。需要注意的是,如果使用梯度累积(gradient accumulation)——即在多个小批次上累加梯度后再进行一次反向更新——这些结果可能会发生显著变化,甚至导致短序列与长序列之间的梯度平衡发生反转。
另一种损失聚合方式在文献 [135] 中有讨论,其思想源于语言模型出现之前的强化学习研究:将每个 token 的损失除以实验中设定的最大序列长度进行归一化。这种方法会改变上述示例中不同批次之间按 token 比较损失的方式。
在实际应用中,最佳设置往往取决于具体的在线学习场景。在 RLHF 方法中,通常更倾向于选择数值稳定性最好、或损失方差最小的方法。
11.2.3 近端策略优化(Proximal Policy Optimization, PPO)
目前存在大量 PPO 的实现版本。其核心损失计算如下所示。除了策略损失外,价值函数(value function)的计算对训练稳定性也至关重要,而价值函数的损失本身也有多种实现方式可选。
需要注意的是,此处的参考策略(或“旧的对数概率”,old logprobs)是指生成样本时所使用的策略,即旧策略的输出,并不一定是固定的参考模型(reference policy)。参考模型仅用于 KL 散度约束或惩罚项的计算。



pg_losses1 与上面介绍的基础策略梯度(vanilla advantage-based policy gradient)损失相同,PPO 中也包含此项,但其损失(以及梯度更新)可以被裁剪(clipped)。PPO 的目的正是通过这种机制控制更新步长,防止更新过大。由于损失值可能为负,我们必须对原始策略梯度更新规则设计一个更保守的版本。
我们知道,如果不加约束,策略梯度算法会将模型参数直接更新到新的概率分布。因此,PPO 通过对策略比值(logratio)进行限制(clamp),控制策略参数在每次更新中移动的距离,从而避免过大的策略变化。
如前所述,最终取两个损失项(裁剪前与裁剪后)中的较大值(实际训练中取较小的损失,因带负号),以确保采用更保守的更新方式。
对于 PPO 而言,所有这些操作都是在同时学习一个价值函数的过程中进行的,这增加了实现的复杂性,但上述内容构成了其参数更新的核心逻辑。
11.2.3.1 每样本仅进行一次梯度更新时 PPO/GRPO 的简化(无需裁剪)


这导致在PPO或GRPO的实现中,可以省略第二次策略梯度计算和裁剪逻辑,从而使优化器更接近于标准的策略梯度方法。
11.2.4 组相对策略优化(Group Relative Policy Optimization, GRPO)
DeepSeekMath 论文详细描述了 GRPO 的一些实现细节,这些细节与 PPO 存在差异 [136],尤其是当将 GRPO 与源自深度强化学习(Deep RL)的标准 PPO 应用进行比较时(而非针对语言模型的调整版本)。例如,在 RLHF 优化过程中使用的 KL 惩罚项(回顾:在使用可验证奖励训练推理模型而无需奖励模型时,也会用到 KL 惩罚)在 GRPO 中是直接应用于损失函数的更新中,而不是添加到奖励函数上。
在标准的 RLHF 中,KL 惩罚通常以如下方式加入奖励函数:

而 GRPO 的实现方式则更接近于:

尽管如此,这种实现方式有多种变体。传统上,KL 散度是针对每个提示(prompt)s 生成的补全结果中的每一个 token 进行计算的。在推理任务训练中,通常从同一个提示中采样多个补全结果,且一个批次中包含多个提示,因此 KL 散度的形状为 [B, L, N],其中 B 是批次大小,L 是序列长度,N 是每个提示生成的补全数量。


11.3 辅助主题
为了熟练掌握策略梯度算法的应用,还有无数其他需要考虑的因素。在此我们仅讨论其中一部分,而非全部。
11.3.1 广义优势估计(Generalized Advantage Estimation, GAE)
广义优势估计(GAE)是一种用于策略梯度算法的优势值计算的替代方法 [129],它在偏差与方差之间的权衡上表现更优。传统的单步优势估计通常具有较高的方差,而使用完整轨迹进行估计则可能引入过多偏差。GAE 通过结合两种思想来解决这一问题:多步预测和加权滑动平均(也可仅使用其中一种)。
优势估计有多种表现形式,我们可以定义一个 k 步优势估计器(类似于本章开头提到的时序差分残差,TD residual),如下所示:

这里,k 值越小,方差越低但偏差越高,因为我们赋予每条轨迹更多的学习权重——这可能导致过拟合。GAE 试图将这一公式推广为一种加权的多步平均,而不是固定某个具体的 k 值。为此,我们首先需要定义价值函数预测的时序差分(Temporal Difference, TD)残差:

11.3.2 双重正则化
许多来自深度强化学习的流行策略梯度算法,最初是为控制智能体的学习过程而提出的。在RLHF中,正如第8章“正则化”和第4章“问题设定”中广泛讨论的那样,通过对微调原始策略时的距离施加惩罚,已经内置了一种正则化机制。从这一角度来看,像PPO(具有内部步长正则化)与REINFORCE(更简单,在特定超参数下PPO会退化为REINFORCE)这类算法之间的大部分差异,在语言模型微调场景下的重要性,远不如在从零开始训练智能体时那么显著。
在PPO中,用于限制更新步长的目标函数被称为“代理目标”(surrogate objective)。为了监控PPO正则化在RLHF中对更新的实际影响程度,可以查看许多主流实现中的“裁剪比例”(clip fraction)变量,它表示在当前批次中,有多少比例的样本的梯度被PPO正则化机制裁剪过。这些梯度被限制在某一最大值以内。
11.3.3 延伸阅读
随着RLHF在现代模型后训练中的核心地位日益巩固,研究者也提出了其他策略梯度强化学习算法或更广泛的强化学习算法,以改进训练过程,但它们尚未在确立最佳实践方面发挥主导作用。以下是一些可供进一步阅读的例子:
12 直接对齐算法
直接对齐算法(Direct Alignment Algorithms, DAAs)允许我们在不训练中间奖励模型、也不使用强化学习优化器的情况下,更新模型以实现与RLHF相同的目标。其中最具代表性、并推动了整个语言模型对齐研究浪潮的算法是直接偏好优化(Direct Preference Optimization, DPO)[19]。本质上,DPO通过梯度上升法来求解与RLHF相同的带约束优化目标。自2023年5月发布以来,经过短暂的延迟(社区初期需要摸索合适的训练数据和超参数,特别是发现需要使用出人意料的低学习率),DPO及其变体已被众多主流模型广泛采用,例如2023年10月率先使用的Zephyr-β [20]、Llama 3 Instruct [23]、Tülu 2 [21] 和 Tülu 3 [6]、Nemotron 4 340B [24] 等。
从技术上讲,序列似然校准(Sequence Likelihood Calibration, SLiC-HF)[155] 更早发布,但由于种种原因(包括时机和实际效果),并未得到广泛采纳。
DPO及直接对齐算法最具影响力的一点在于:显著降低了进行语言模型后训练实验的门槛。
12.1 直接偏好优化(DPO)
本节将解释DPO的工作原理,并完整推导其核心公式。
12.1.1 DPO 的工作原理
从表面上看,DPO 是直接优化一个策略,以实现RLHF的目标。其损失函数(我们将在下文的推导中再次回顾)基于成对的对数概率关系。该损失函数源自布拉德利-特里(Bradley-Terry)偏好模型,其形式如下:

该损失函数来源于对最优策略下的 Bradley-Terry 奖励模型进行推导(见公式 80),具体推导过程在 Bradley-Terry 模型一节中有详细说明。本质上,这种隐式的奖励建模方式表达的是:“用最优策略而非显式奖励模型来描述人类偏好数据的概率”。
让我们来看公式 (65) 中所示的损失函数。学习过程的目标是降低该损失值。在这里,当被选中的回复(chosen response)相对于参考模型的对数概率比值大于被拒绝的回复(rejected response)时,损失值会更低。在实际计算中,这表现为模型在整个token序列上的对数概率之和的差异。因此,DPO 的作用是增大被选回复与被拒回复之间的概率差距。
根据公式 (66) 给出的隐式奖励,我们可以写出损失函数的梯度,以进一步理解其背后机制:

在这里,梯度通过执行以下操作来解决上述目标:
• Sigmoid 函数 σ(·) 内部的第一项产生一个介于 0 到 1 之间的参数更新权重,当奖励估计错误时,该权重更大。也就是说,当被拒绝的样本反而比被选中的样本更受偏好时,参数更新的幅度就应更大!
• 其次,方括号 [·] 内的项会增加被选中回复 yc的生成概率,同时降低被拒绝回复 yr的生成概率。
• 这些更新项由超参数 β 加权,β 控制了在正确排序生成结果与保持与参考模型的 KL 散度之间的权衡。
核心直觉是:DPO 正在“拟合一个隐式的奖励模型,而该奖励模型所对应的最优策略可以通过闭式形式直接提取”(这得益于梯度上升和现代机器学习工具)。一个常被误解的点是:DPO 本质上是在学习一个奖励模型——这正是其论文副标题《你的语言模型其实秘密地是一个奖励模型》(Your Language Model is Secretly a Reward Model)的由来。人们很容易误以为 DPO 是直接训练策略,因此深入理解下文的推导过程对于全面掌握其原理至关重要。
通过隐式奖励模型的学习,DPO 能够基于数据集中的偏好数据以及目标函数中设定的特定 KL 约束(由 β 控制),求解出满足 RLHF 目标的最优策略。由于 DPO 不像策略梯度算法那样依赖在线生成样本,而是基于离线数据批次直接优化,因此它能针对给定的 KL 距离精确求解最优策略——这是与用于偏好调优的强化学习方法的一个关键区别。从多个角度看,这也使得 DPO 中的 β 值比在线 RL 方法更容易调节。但关键且直观的是,最优的 β 值仍取决于具体训练的模型以及所使用的训练数据。
在每一个由多个偏好对 ychosen≻yrejected构成的数据批次上,DPO 直接通过梯度更新向该目标的最优解逼近。相比策略梯度方法,其流程要简单得多。
12.1.2 DPO 的推导
DPO 的推导主要分为两个部分:
第一,作者首先展示了本书中所使用的 RLHF 目标函数的最优策略应具备何种数学形式;
第二,他们进一步说明如何从成对的偏好数据(即 Bradley-Terry 模型)出发,推导出这一最优策略的闭式解。





12.2 数值问题、局限性与替代方案
为了弥补 DPO 算法的不足,研究者提出了多种其变体。例如,由于 DPO 不涉及生成样本(rollouts)和奖励模型评分,因此它将每一对偏好数据视为同等重要。然而,实际情况中,正如第6章“偏好数据”所述,偏好数据的标注方式可以比二元选择(binary)更丰富。为此,已有多种算法被提出,旨在调整优化过程,避免对所有偏好对进行等权重处理。
• 基于奖励回归的相对强化学习(REgression to RElative REward Based RL, REBEL)引入了奖励模型的信号,将被选回复与被拒回复之间的奖励差值作为优化的边际信息,而不仅仅依赖成对偏好数据,从而更准确地求解 RLHF 问题 [118]。
• 保守型 DPO(Conservative DPO, cDPO)和恒等偏好优化(Identity Preference Optimization, IPO)通过假设偏好数据中存在噪声来缓解过拟合问题。cDPO 假设有 N% 的数据标签是错误的 [19],而 IPO 则修改优化目标,不再直接从标签进行优化,而是软化偏好概率 [156]。在实践中,IPO 将偏好概率转换为非线性函数,从而偏离了 Bradley-Terry 模型的假设,其形式为 Ψ(q) = log( q / (1−q) )。
• 带偏移量的 DPO(DPO with an offset, ODPO)要求“被偏好回复与非偏好回复之间的似然差必须大于某个偏移值”[157],从而避免对所有数据对一视同仁。但这种方法可能带来更高的标注成本,使标注环境更加复杂。
一些 DPO 的变体试图通过微调损失函数来增强学习信号,或通过减少内存占用使应用更高效:
• 赔率比策略优化(Odds Ratio Policy Optimization, ORPO)直接更新策略模型,通过向被选回复方向“拉近”模型输出,类似于指令微调的损失形式,同时对被选回复施加轻微惩罚 [158]。这种损失函数的改变消除了对参考模型的需求,从而简化了训练设置。最恰当的理解是:ORPO 受 DPO 启发,而非 DPO 的直接衍生算法。
• 简单偏好优化(Simple Preference Optimization, SimPO)对 DPO 的优化过程进行了小幅改进,例如将对数概率的求和改为求平均(SimPO),或加入长度归一化,以提升模型性能 [159]。

DPO 中一个明显的核心问题在于:其优化过程仅致力于增大被选回复与被拒回复之间的概率差距。从数值上看,模型会同时降低被选回复和被拒回复的生成概率,但被拒回复的概率下降幅度更大,如图14所示。直观上,这种行为的泛化能力尚不明确,但已有研究提出,这可能导致模型对未被提及的行为(unaddressed behaviors)赋予更高的生成概率 [160][161]。一些简单的方法——例如 Cal-DPO [162](调整优化过程)和 AlphaPO [163](修改奖励形状)——可以缓解这种偏好偏移(preference displacement)现象。
在实际应用中,这种效应的确切影响尚不完全清楚,但它可能是在线方法(online methods)有时优于基础 DPO 的一个潜在原因。
另一个被广泛认为导致 DPO 类方法性能上限低于在线式(基于强化学习的)RLHF 方法的主要原因是:其训练信号来源于先前模型或其他模型生成的回复。相比之下,在线式变体(如 Online DPO [164])通过从当前模型采样生成内容,并结合奖励模型对新生成结果进行重新标注(例如 Discriminator-Guided DPO, D2PO [165]),能够在训练过程中为提示生成新的回复,并实时引入偏好信号,从而缓解这一局限。
此外还存在大量其他直接对齐算法(DAA)的变体,例如直接纳什优化(Direct Nash Optimization, DNO)[166] 和二元分类器优化(Binary Classifier Optimization, BCO)[167],但研究表明,算法的选择远不如初始模型本身和所使用的数据重要 [6][168][169]。
12.3 实现考量
DPO 等直接对齐算法(DAA)的实现方式与策略梯度优化器有显著不同。DPO 损失函数源自其原始实现,大致可总结如下 [19]:

这一损失函数可以直接集成到标准的语言模型训练框架中,因为所需信息(如对数概率)在模型前向传播过程中已经可以获取(只需额外引入一个参考模型)。
从大多数角度看,这种实现方式更简单,也提升了使用体验,但同时也带来了一些新的考虑因素:
12.4 直接对齐算法 vs. 强化学习:在线数据与离线数据
总体而言,这一争论归结为一个核心问题:我们是否真的需要强化学习的内部机制——如价值函数、策略梯度等——才能通过 RLHF 实现语言模型的对齐?像许多以这种方式提出的问题一样,这种二分法过于简化了现实。当然,两种方法都已被广泛验证和应用,但重要的是要阐明它们在根本差异和性能表现上的分界点。
多份研究报告指出,基于策略梯度和强化学习的方法在性能上优于 DPO 及其变体。这些结论来自不同角度的研究:有的在控制数据一致的前提下使用不同算法训练模型 [139][170],有的则重点分析在 RL 优化循环中使用在线(on-policy)数据的作用 [171]。在这些研究中,DPO 类算法的表现始终略逊一筹。
尽管存在这一性能差距,直接对齐算法(DAAs)仍在主流模型中被广泛使用,主要原因在于其实现简单。DAAs 提供了一个可控且稳定的训练环境,使得研究人员可以快速迭代训练数据和其他配置。考虑到数据质量通常比算法选择更为关键,使用 DPO 往往已经足够有效。
然而,随着以强化学习为主要训练方式的推理模型的兴起,未来对 RL 方法的投入将重新增加。在偏好调优(preference tuning)中使用 RL 将长期推动 RL 基础设施的成熟与鲁棒性提升,并进一步巩固 RL 相较于 DAAs 在利用人类反馈进行优化时的性能优势。
13 宪法式人工智能与人工智能反馈
基于人工智能反馈的强化学习(RL from AI Feedback, RLAIF)是一系列利用人工智能生成或增强反馈数据的技术,包括生成成对偏好数据 [172][173][174]。使用 RLAIF 的动机多种多样,既可以完全替代人类反馈,也可以作为其补充。相比人类标注,AI 模型的成本要低得多:获取一条人类偏好数据的成本通常在 1 美元左右,甚至更高(每条提示可达 10 美元以上),而使用前沿 AI 模型(如 GPT-4o)生成 AI 反馈的成本不到 0.01 美元。这一巨大的成本差异使得原本因价格门槛而无法参与 RLHF 实验的群体得以进入该领域。
除了成本优势,AI 反馈在性能方面也带来了与人类反馈不同的权衡,这些差异仍在深入研究中。在基于技能的评估任务上,AI 反馈所能达到的性能峰值至少与人类数据处于同一水平,但目前尚不清楚在真实产品环境中,人类数据是否能为模型提供更精细的控制能力,例如在角色训练(character training)等新型训练方法中的表现。
“RLAIF”这一术语最早由 Anthropic 在其论文《宪法式人工智能:来自 AI 反馈的无害性》(Constitutional AI: Harmlessness from AI Feedback)[18] 中提出,但由于该论文同时介绍了多种技术,初期在 AI 社区引发了关于方法之间关系的混淆。自《宪法式人工智能》(CAI)论文发布以及 RLAIF 概念被正式确立以来,RLAIF 已成为后训练和 RLHF 文献中的默认方法之一——相关应用案例之多,难以一一列举。应将 CAI 视为推动 RLAIF 广泛发展的关键起点。
关于人类数据与 AI 生成数据之间差异的一个经验法则是:
这一差异解释了许多学术研究的结果:它们表明,可以在 RLHF 工作流中用 AI 生成的偏好数据替代人类数据,并取得优异的评估分数 [175]。然而,这也反映出当前 RLHF 学术研究与工业界最佳实践之间的脱节。
13.1 宪法式人工智能(Constitutional AI, CAI)
宪法式人工智能(CAI)是 Anthropic 在其 Claude 系列模型中广泛使用的方法,也是最早在 RLHF 训练中大规模应用合成数据的范例。CAI 在两个方面使用了合成数据:
总体而言,CAI 最为人熟知的是其第二部分——即使用 AI 生成偏好数据。但其所提出的针对指令数据的处理方法,已被广泛应用于后训练中的通用数据过滤和合成数据生成流程。
CAI 可形式化如下:

13.2 用于评判的特定大语言模型
随着基于AI反馈的强化学习(RLAIF)和“将大语言模型作为评判者”(LLM-as-a-judge)的方法日益普及,许多人开始思考:我们是否应该使用与生成回答相同的模型来生成批评意见或评分?为此,已发布了一些专门用于替代前沿模型作为数据标注工具的模型,例如评判模型 Shepherd [176] 和 CriticLLM [177],或用于评估回复性能的模型,如 Auto-J [178]、Prometheus [93]、Prometheus 2 [179] 和 Prometheus-Vision [180]。然而,这些模型尚未在公开记录的训练方案中被广泛采用。
13.3 延伸阅读
与宪法式人工智能(Constitutional AI)相关的研究方向和扩展方法有很多,但其中很少有被明确记录为在RLHF和后训练流程中带来显著改进的。目前,这些工作仅作为延伸阅读内容列出:
14 推理训练与推理时扩展
在2016年神经信息处理系统大会(NeurIPS)上,杨立昆(Yann LeCun)首次提出了如今广为人知的“蛋糕比喻”,用以描述现代机器学习系统中学习发生的层次结构:
如果智能是一块蛋糕,蛋糕的主体是无监督学习,蛋糕上的糖衣是监督学习,而蛋糕上的樱桃则是强化学习(RL)。
如今,随着现代语言模型的发展以及后训练流程的演进,这一比喻已基本完整对应现实。具体而言:
我们在强化学习阶段仅通过少量训练样本,就学习到“极少的信息量”(few bits)。然而,正是这一小部分推理训练,催生了所谓的“推理模型”——这些模型结合本书中讨论的多种后训练技术,通过在可验证领域进行强化学习训练,显著提升了模型在推理、编程和数学解题等方面的能力。
这类模型的训练方法被称为“基于可验证奖励的强化学习”(Reinforcement Learning with Verifiable Rewards, RLVR)[6],其流程与RLHF非常相似,但用一个评分函数替代了奖励模型:当答案正确时返回正奖励,否则返回0,从而使得奖励模型成为可选组件。
最早成功应用此类训练方法的模型是OpenAI的o1 [47] 和开源模型DeepSeek R1 [138]。此后不久,整个AI行业迅速将此类训练流程和模型架构列为优先发展方向。这一转变的核心并非引入了全新的强化学习设置,而更多是对训练阶段的重新分配以及对不同行为优先级的调整。推理模型的到来,标志着一个“强化学习训练规模化”时代的开启。
至于这些模型所展现出的行为差异,可以参考以下示例:在面对“请写一首关于金鱼的短诗”这一请求时,DeepSeek V3 0325 的回答非常直接:
金鱼之梦在清澈圆润的玻璃缸中,一条小金鱼无声地游动。鳞片闪耀如阳光轻吻,在水的幸福中悠然漂浮。尾鳍一摆,光芒一闪,追逐着光线中的气泡。它会梦见广阔的海洋吗?还是这小小的世界已足够——便是它的骄傲?
而 DeepSeek R1 的体验则截然不同。它首先生成大量“思考”标记(thinking tokens)来构思回应,然后再向用户输出答案。其回应呈现为:
<thinking> 好的,用户想要一首关于金鱼的短诗。让我先构思一些与金鱼相关的意象。金鱼通常养在鱼缸里,对吧?

因此,也许可以从场景入手。“gilded bowl”(镀金的碗)或“crystal globe”(水晶球)这样的词可能很合适。
接下来,思考金鱼的游动方式。它们游动得很流畅,因此“dart”(疾冲)、“glide”(滑行)或“swirl”(盘旋)等词浮现在脑海中。或许可以用“silken”(如丝般)来形容它们的鳍,以突出其精致。
然后,考虑金鱼周围的环境。阳光透过水面会产生闪烁的效果。“sunbeams dance”(阳光舞动)或“ripples spin”(涟漪旋转)这样的表达或许能捕捉到这种感觉。加入城堡或卵石等元素,可以增添一丝趣味。
主题方面?也许可以表现金鱼狭小的世界与其对自由感知之间的对比。鱼缸就是它的宇宙,虽小却完整。以一种神秘感或静默观察作为结尾,可以赋予诗歌更深的意味。需要保持简洁,或许采用四段诗节并押韵。让我检查一下节奏和流畅度。避免陈词滥调,但要保持通俗易懂。好了,现在开始组合成诗。</thinking>
液态玻璃中的镀金之梦镀金的碗,水晶的球,微澜无声地流动——一抹橙光,轻纱般的游,你穿梭于阳光映照的靛蓝之中。
你的世界虽小,却也无垠——每颗卵石、城堡、水草皆已舒展。水面将天空弯成蓝色,涟漪旋转着你的液态世界。
你滑过我们永远无法知晓的神话,静默的君王,隐于薄雾之中。梦境是否随气泡飘散?还是如紫水晶般封存着记忆?
我们注视你划过无尽的圆环——一滴泪珠内的宇宙。
<thinking> 标签中的 token 是模型的推理过程。对于更复杂的问题,这一推理阶段可能在生成最终答案前消耗数千个 token。因此,长上下文语言模型是实现高级推理行为的前提条件,但这并非本章的重点。
这种训练方式的核心直觉是:对于一个给定的模型,我们重复以下循环:
令人惊讶的是,这种极其简单的方法(在数据分布精心设计和训练基础设施稳定的情况下)能够帮助模型通过不断重复回答相同问题来学习。更令人惊叹的是,模型在这些训练问题上的提升,能够泛化到它们从未见过的新问题甚至某些新领域!
这种简单的方法使模型能够在行为空间中进行轻量级搜索,而强化学习算法则会增加那些与正确答案相关的行为的出现概率。
14.1 为什么现在强化学习有效了?
尽管有许多观点声称“强化学习还行不通”[188],或有论文详细指出强化学习存在严重的可复现性问题[189],但该领域最终克服了这些挑战,找到了具有高影响力的实际应用。
专注于强化学习的训练在语言模型上的兴起,表明该研究领域在多个基础性问题上取得了进展,包括:
多项资源指出,只有从2024年左右开始发布的领先模型,才真正具备通过强化学习进行推理训练的可行性,这表明模型本身必须先达到一定的基础能力水平,推理训练才能奏效。
14.2 强化学习训练 vs. 推理时扩展
通过强化学习训练来激发模型的推理行为,并提升其在可验证任务上的表现,与“推理时扩展”(inference-time scaling)的理念密切相关。推理时扩展,也称为“测试时扩展”(test-time scaling),是一类通用方法:在推理阶段投入更多计算资源,以提升模型在下游任务中的表现。在 DeepSeek R1 和 OpenAI 的 o1 发布之前,相关方法已有研究,但正是这两个模型的大规模成功,极大地推动了对强化学习训练的投资。典型的推理时扩展方法包括:基于价值引导的采样 [192],或通过多次随机采样并提取最终答案的方法 [193]。除此之外,推理时扩展还可用于改进更多AI训练方法,不仅限于思维链推理,例如使用能深入评估选项的奖励模型 [92][194]。
强化学习训练为实现推理时扩展规律提供了一条捷径。但从长远来看,我们将拥有更多方法来激发所需的推理时权衡,以实现最佳性能。通过大量RL训练,模型被改变,使其在每个响应中生成更多的推理标记(tokens),而这种生成长度的增加与下游任务性能高度相关。这与早期RLHF系统中存在的“长度偏好”形成鲜明对比 [9]:当时人类偏好训练的副作用是,为了在偏好排序上获得微小提升,模型倾向于生成更长的回复。
在经过RL训练的模型基础上,目前正探索多种方法,以进一步突破推理能力和推理计算的极限。由于这些方法发展迅速,已超出本书的范围,但包括:通过指令微调将大模型的推理行为蒸馏到小模型中 [195]、组合多次推理调用 [196] 等。关键在于,下游性能的提升必须与生成token数量的增加呈正相关——否则,额外的计算只是浪费能源。
14.3 强化微调的未来(超越推理)
在许多应用场景中,新型的 RLVR(基于可验证奖励的强化学习)和强化微调(Reinforcement Finetuning, RFT)更加契合开发者的实际目标,因为它们聚焦于模型性能的提升,而非单纯的行为调整。
标准的微调 API 通常采用参数高效微调方法(如 LoRA),并在指令数据上进行监督式微调。开发者提供提示(prompts)和期望的补全结果(completions),模型通过更新参数来拟合这些输出,从而在生成内容中更频繁地体现开发者数据中的特征。
而强化微调的核心目标是让模型“答对”问题。给定查询和正确答案,RFT 帮助模型学会如何得出正确答案。与标准的指令微调通常仅对数据进行 1 到 2 轮损失更新不同,强化微调会对同一批少量数据进行数百甚至数千轮的反复训练,为模型提供充足的时间来学习并巩固新的行为模式。这可以被理解为:将基础模型中偶尔出现的正向行为,通过 RFT 强化为稳定、可靠的输出。
语言模型的强化训练范围仍在持续扩展:从基础科学研究的角度来看,o1 和 R1 最重要的启示在于——我们现在拥有了更多训练语言模型、使其展现出潜在有价值行为的方法。对研究人员和工程师而言,可用的技术路径越多,我们对人工智能整体发展轨迹的信心和乐观程度就应越高。
15 合成数据与蒸馏
基于人类反馈的强化学习(RLHF)深深植根于一种理念:在我们构建的模型中保持人类的影响。在最初成功使用 RLHF 训练模型时,人类数据是实现这一目标的唯一可行方式。 当时,只有人类才能生成足够高质量的回答用于训练;也只有人类才能收集可靠且具体的反馈数据,用于训练奖励模型。
随着 AI 模型能力的提升,这一假设迅速被打破。合成数据(synthetic data)的出现——其成本远低于人类标注,且更容易快速迭代——推动了训练范式的转变:从以 RLHF 为核心,发展为更广泛的“后训练”(post-training)来塑造模型行为。
尽管已有许多报告指出合成数据可能导致“模型崩溃”(model collapse)或其他问题 [197],但这些观点在领先语言模型的实践中已被明确反驳 [198][199]。合成数据确实可能引发性能问题,但其根本原因在于使用了重复性过高的数据,或完全依赖被训练模型自身生成的数据(导致模型分布逐渐收窄),而非采用多样化、均衡的数据来源。
如今,顶尖模型要达到最佳性能,必须依赖合成数据。现代后训练中的合成数据涵盖多个环节:语言模型被用于从种子示例生成新的训练提示 [200]、修改现有提示、生成提示的补全结果 [201]、提供 AI 反馈以构建偏好数据 [22]、筛选补全结果 [202],以及更多任务。可以说,合成数据是后训练的关键支柱。
合成数据能产生如此深远影响的能力,是在 GPT-4 级别的模型出现后才真正实现的。早期的语言模型(如 Llama 2 和 GPT-3.5-Turbo)在生成或监督数据流程方面尚不够可靠。而在短短一两年内,语言模型在生成答案方面的能力已远超人类。从 GPT-3.5 到 GPT-4 级别模型的过渡过程中,模型执行“大模型作为评判者”(LLM-as-a-judge)任务的能力也得以建立。GPT-4 及更高级别的模型在针对内容生成反馈或评分时,表现出更强的鲁棒性和一致性。
自这一转变以来,合成数据在语言模型训练中的作用持续增强。然而,人类数据在以下两个方面仍具有不可替代的重要性:
“蒸馏”(distillation)是讨论合成数据在语言模型中作用时最有力的概念。该术语源自深度学习文献中的技术定义,即“教师-学生知识蒸馏”(teacher-student knowledge distillation)[50]。
在通俗语境中,“蒸馏”指的是利用更强的模型(教师模型)的输出来训练一个更小的模型(学生模型)。在后训练中,这种广义的蒸馏通常表现为两种常见形式:
随着语言模型在多种任务上的回答质量变得比人类更可靠,第一种策略的使用日益广泛。GPT-4 级别的模型进一步拓展了这一方法的应用范围,使其可用于数学和编程等复杂任务的模型蒸馏(如上所述)。在此背景下,蒸馏推动了一种“模型套件”(model suite)的构建模式:研究机构通常会训练一个大型内部模型(如 Claude Opus 或 Gemini Ultra),该模型不对外公开,仅用于生成更优的训练数据以训练其他模型。对于开源模型而言,常见的做法是将闭源 API 模型生成的训练数据进行蒸馏,用于训练更小且公开可用的模型权重 [20]。在此过程中,精心设计高质量的提示词(prompts)并对教师模型生成的回复进行筛选,对于最大化最终模型性能至关重要。
将特定技能迁移至小型语言模型的过程同样基于蒸馏的核心原则——尽可能获取最优质的训练数据。目前已有大量研究探索如何利用来自更强模型的有限数据集来提升模型对齐效果 [12]、数学推理能力 [203][204] 以及推理时扩展性能 [195]。
16 评估

16.1 提示词格式化:从少样本到零样本再到思维链



要在此处提取答案,可以有两种方法:一是根据某些采样参数生成一个 token,然后检查生成的答案是否为正确的选项 A、B、C 或 D(如上所示的格式,参考 [221] 中的建议);二是查看每个选项对应 token 的概率,若正确答案的概率最高,则判定该任务回答正确。
第二种方法有两种可能的实现方式:第一种是查看选项字母(如 A)的概率;第二种是查看完整答案文本(如“The Mean Value Theorem”)的概率。这两种方式在评估中均被允许,但在基于概率的评估指标中,更常见的是采用对完整答案的预测。
少样本提示的一个常见问题是:模型可能不遵循指定的输出格式,这种情况通常被计为错误答案。在设计评估任务时,上下文中使用的示例数量通常被视为一个可调的设计参数,一般在 3 到 8 个甚至更多之间。
随着少样本提示的发展,出现了在示例中加入“思维链”(chain-of-thought)内容的想法,即在上下文示例中明确写出推理过程,如下所示(这一方法后来被更直接的“要求模型生成推理步骤”的提示方式所取代)[53]:


随着时间的推移,随着语言模型能力的增强,评估方式逐渐演变为零样本评估(zero-shot evaluation),也被称为“零样本学习者”[222]。Finetuned Language Net(FLAN)研究表明,经过特定任务微调的语言模型——作为现代指令微调的前身——能够泛化到其未在训练中见过的零样本问题上 [222](类似结果也在 T0 模型中被发现 [223])。这标志着指令微调(Instruction Finetuning, IFT)的兴起,它是 RLHF 和后训练发展过程中的一个重要前奏。
一个零样本问题的示例如下:

从2022年开始,时间线逐步涵盖了早期RLHF的关键工作,例如InstructGPT。伴随这些模型出现的核心能力与使用场景的转变,是更加开放的交互方式。随着使用场景的开放化,生成式评估(generative evaluation)变得日益流行,因为它更贴近模型的实际使用方式。在ChatGPT发布后的近几年中,尽管生成式评估逐渐成为主流,部分RLHF研究仍沿用多项选择题评估作为延续传统做法的一种方式。
随着2024年底至2025年初推理模型的兴起,模型行为发生了一次重大转变:即在每次回答前都会自动进行长链的“思维链”(Chain-of-Thought, CoT)推理过程。这些模型不再需要依赖如[224]中提出的“请一步一步思考”这类标准提示语来激发推理行为。
例如,针对每个提示,可以设计专门的提示词来更好地提取模型的行为。Tülu 3 详细描述了在多项选择题上进行思维链回答时所使用的一些提示方法 [6]:

这一点,尤其是当模型使用特殊格式将“思考标记”(thinking tokens)与“答案标记”(answer tokens)分离开来时,促使评估体系迎来了最近一次重大的更新。当前的评估正逐步转向对模型进行生成式测试,并要求其在思维链提示下进行回答。
16.2 使用评估与观察评估

16.2 使用评估与观察评估


16.3 数据污染

16.4 评估工具

17 过度优化




17.1.2 过度拒绝与“过度使用RLHF”

随着生态系统的成熟,对最终模型的控制能力已有所提升,而“RLHF和后训练主要关乎安全”的观念也逐渐减弱,例如通过开发专门用于衡量潜在过度拒绝行为的基准测试 [247]。
随着基于聊天的AI系统的广泛普及,这类拒绝行为的突出程度已随时间推移而降低。行业标准已转向更明确界定的伤害类型,并要求模型在争议性议题上保持观点的平衡。
17.2 定量层面的过度优化
过度优化也是一个技术研究领域,其中研究的是模型性能与KL优化距离之间的关系 [37]。回顾一下,KL距离(相对熵)是用于衡量训练前原始模型(即参考模型)与当前策略之间概率分布差异的一种度量。例如,图17中的关系也可以用优化过程中的KL距离(而非训练步数)作为横坐标来呈现。另一个示例如下:一个偏好调优数据集被分为两半,分别用于训练一个奖励模型(下文简称偏好模型,PM)和构建一个测试用的奖励模型。在此实验中,随着训练进行,大约在15万训练样本之后,训练奖励模型上的性能提升已无法再迁移到测试偏好模型上 [5]。
由于RLHF中的奖励信号本质上是“软性”的——即通过学习得到的模型,而非传统强化学习文献中旨在完整刻画环境动态的明确奖励函数——因此,过度优化问题是根本性的,且在RLHF中不可避免。因此,这是一个RLHF本身永远无法完全解决的基本优化难题。

不同的RLHF训练方法所消耗的KL距离各不相同。例如,在线强化学习算法(如PPO)通过修改模型参数所带来的KL距离,远高于推理时采样方法(如“N选最优”采样,Best of N, BoN)所产生的KL距离。在强化学习训练中,施加更高的KL惩罚项可以在给定的KL距离下减少过度优化现象,但这可能需要更多的总体训练步数才能使模型达到该状态。
目前存在多种缓解过度优化的方案。其中一些包括:使用更大的策略模型,使其在保持较小KL距离的同时,有更多参数调整空间以提升奖励;采用奖励模型集成(reward model ensembles)[248];或更换优化器 [249]。尽管直接对齐算法(direct alignment algorithms)仍然容易出现过度优化问题 [250],但其优化过程的直接性使得可以设定固定的KL距离,从而更容易管理性能提升与分布偏移之间的权衡。
18 风格与信息




19 产品、用户体验与模型人格
RLHF与后训练技术的前沿发展,揭示了这些方法如何在企业内部被用于打造领先的AI产品。随着RLHF逐渐成熟,其所解决的问题也日益精细化。在本章中,我们将讨论一系列领先AI实验室在实际中使用RLHF和后训练的场景,而这些用例在学术文献中却鲜有研究。
19.1 人格训练(Character Training)


19.2 模型规范(Model Specifications)

19.3 产品周期、用户体验与RLHF
随着强大的AI模型逐渐从单纯的机器学习实验产物,演变为更接近实际产品的形态,RLHF已成为连接模型与产品之间关系的关键接口。要让一个模型易于使用,所需的工作远不止让最终的模型权重“正确”——还包括快速推理、配套的实用工具(例如搜索或代码执行功能)、可靠且易于理解的用户界面(UX)等。由于RLHF被视作一种实时理解用户对产品偏好的方法,并且是模型发布前的最后一个训练阶段,因此它成为了测试上述诸多产品要素的重要试验场。
目前,最快捷的模型功能添加方式,就是在后训练阶段进行整合,因为这一阶段的训练速度更快、成本更低。这一迭代循环已在图像理解、工具使用、行为优化等多个功能开发中得到验证。一个最初源于产品层面的问题,会迅速转化为一个RLHF建模问题;而如果在RLHF阶段取得成功,该功能便会反向影响并推动更早阶段的训练流程进行相应调整与优化。
原文链接:https://arxiv.org/pdf/2504.12501v1