Reinforcement Learning from Human Feedback
基于反馈的强化学习
https://arxiv.org/pdf/2504.12501v1
摘要
基于人类反馈的强化学习(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]。后训练可以概括为使用以下三种优化方法:
指令微调 / 监督微调(IFT/SFT),在此过程中我们教授模型格式规范,并培养其遵循指令的基本能力。这主要涉及对语言特征的学习。
偏好微调(PreFT),在此过程中我们将模型与人类偏好对齐(同时能力也会有小幅提升)。这主要涉及语言的风格,以及那些难以量化的细微人类偏好。
强化微调(RFT),这是最新的一种后训练方式,可在可验证的领域中提升模型性能。
本书重点关注第二个领域——偏好微调。相比指令微调,它更加复杂;相比强化微调,它又更为成熟。尽管如此,通常所说的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 引言类参考材料(全书通用)
引言:概述RLHF以及本书所提供的内容。
具有里程碑意义的(近期)工作:回顾RLHF技术发展历程中的关键模型与论文。
定义:本书所涉及的强化学习、语言建模及其他机器学习技术的数学定义。
1.4.1.2 问题设定与背景(RLHF试图解决的整体问题背景)
RLHF训练概述:介绍RLHF训练目标的设计方式,以及理解该目标的基本知识。
什么是偏好?:解释为何需要人类偏好数据来驱动并理解RLHF。
偏好数据:介绍RLHF中偏好数据的收集方法。
1.4.1.3 优化工具(用于将语言模型与人类偏好对齐的一系列技术。本部分按顺序介绍可用于解决前述章节所提出问题的技术。)
奖励建模:利用偏好数据训练奖励模型,作为强化学习训练的优化目标(或用于数据筛选)。
正则化:约束优化过程,使其保持在参数空间中有效区域的工具。
指令微调:将语言模型调整为适应问答格式的方法。
拒绝采样:一种基础技术,通过结合奖励模型与指令微调来实现模型对齐。
策略梯度:在RLHF中用于优化奖励模型(及其他信号)的核心强化学习技术。
直接对齐算法:一类直接从成对偏好数据优化RLHF目标的算法,无需先学习奖励模型。
1.4.1.4 高级内容(较新的RLHF技术与讨论,尚未完全确立,但对当前一代模型至关重要)
宪法式人工智能与AI反馈:介绍AI生成的反馈数据,以及专门设计用于模拟人类偏好评分的模型如何工作。
推理与强化微调:探讨新的强化学习训练方法在推理时扩展能力方面的作用,及其与后训练和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被应用于多种任务,当时表现突出的应用成为主流。重要实例包括:
通用文本摘要 [2]
书籍的递归式摘要 [34]
指令遵循(InstructGPT)[3]
浏览器辅助问答(WebGPT)[4]
支持引用的回答生成(GopherCite)[35]
通用对话系统(Sparrow)[36]
除了具体应用,一些里程碑式的研究论文还为RLHF的未来发展奠定了关键方向,包括:
奖励模型的过度优化问题 [37]:指出强化学习优化器可能过度拟合基于偏好数据训练的模型;
将语言模型作为“对齐”研究的通用领域 [17];
红队测试(Red Teaming)[38]:评估语言模型安全性的过程。
相关研究持续深入,致力于优化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)领域,涵盖了一系列新应用,例如:
针对推理中间步骤的过程奖励(process reward)[44];
受直接偏好优化(DPO)启发的直接对齐算法[19];
从代码或数学任务的执行反馈中学习[45][46];
以及受OpenAI的o1模型启发的其他在线推理方法[47]。
3 定义与背景
本章包含在RLHF过程中频繁使用的各种定义、符号和操作,并对语言模型(本书常见的优化目标)进行简要概述。
3.1 语言模型概述
大多数现代语言模型的训练目标是学习词元序列(token,可以是单词、子词或字符)的联合概率分布,且通常采用自回归方式。自回归的含义是:每一个后续词元的预测都依赖于序列中前面的已出现内容。给定一个词元序列 ,模型将整个序列的概率分解为一系列条件概率的乘积:
为了训练出能够准确预测上述概率的模型,通常的目标是最大化当前模型对训练数据的似然性。为此,我们可以最小化负对数似然(NLL)损失:
在实践中,通常使用交叉熵损失(cross-entropy loss)来衡量每个下一个词元的预测,该损失通过将序列中的真实词元与模型的预测结果进行比较来计算。
语言模型的实现可以有多种形式。现代语言模型,包括ChatGPT、Claude、Gemini等,大多采用仅解码器结构的Transformer [48]。Transformer的核心创新在于大量使用了自注意力机制(self-attention)[49],使模型能够直接关注上下文中的关键概念,并学习复杂的映射关系。在本书中,特别是在第7章讨论奖励模型时,我们将探讨如何为Transformer添加新的输出头(heads),或修改其原有的语言模型(LM)头。LM头是一个最终的线性投影层,负责将模型内部的嵌入空间映射到分词器空间(即词汇表空间)。通过使用不同的输出头,可以复用模型的内部结构,并微调模型以输出不同形式的结果。
3.2 ML 定义
4 训练概览
4.1 问题表述
4.2 操控标准强化学习设置
从标准强化学习设置到RLHF(基于人类反馈的强化学习)有多个核心变化:
在许多方面,结果是尽管RLHF在很大程度上受到RL优化器和问题表述的启发,但动作的实施与传统RL非常不同。
4.3 优化工具
在本书中,我们将详细介绍解决这一优化问题的多种常用技术。后训练中的常用工具包括:
- 奖励建模
(第7章):训练一个模型,用于捕捉从收集到的偏好数据中提取的信号,并输出一个标量奖励值,以表示未来生成文本的质量。
- 指令微调
(第9章):RLHF的前提步骤,通过模仿预先选定的示例,教会模型掌握当前大多数语言模型交互中使用的问答格式。
- 拒绝采样
(第10章):最基础的RLHF技术,使用奖励模型对指令微调生成的候选回复进行筛选,使其模拟人类偏好。
- 策略梯度
(第11章):在RLHF的开创性案例中使用的强化学习算法,通过奖励模型提供的信号来更新语言模型的参数。
- 直接对齐算法
(第12章):一类直接从成对偏好数据中优化策略的算法,无需先学习中间的奖励模型再进行后续优化。
现代通过RLHF训练的模型,通常都先进行指令微调,然后结合使用上述其他优化方法中的一种或多种。
4.4 RLHF 实施示例
在 ChatGPT 发布前后,标准的 RLHF 流程遵循一种典型的三步后训练方案,其中 RLHF 是核心环节[55][3][5]。该流程在“基座”语言模型(即在大规模网页文本上训练的下一个词元预测模型)基础上进行,具体分为以下三个步骤,如下图 4 所示:
- 在约 1 万个示例上进行指令微调
:教会模型遵循问答格式,并通过主要是人工编写的数据掌握一些基本能力。
- 在约 10 万个成对提示上训练奖励模型
:该模型从经过指令微调的检查点出发进行训练,用于捕捉最终模型希望体现的各种多样化价值观。奖励模型即为 RLHF 的优化目标。
- 使用约 10 万个提示,通过 RLHF 对指令微调后的模型进行训练
:模型根据一组提示生成回复,再由奖励模型进行评分,进而基于这些评分对模型进行优化。
完成 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 关于偏好可能性的讨论
在各个研究领域中,关于偏好本质的批评有很多。以下是一些最突出的批评总结:
阿罗不可能定理[68]指出,没有任何投票系统能够在保持某些合理标准的同时,聚合多个偏好。
人际比较的不可能性[69]强调了不同个体有不同的偏好相对大小,并且它们不容易进行比较(如同大多数现代奖励模型训练中所做的那样)。
偏好会随时间变化[70]。
偏好可能因情境而异。
从聚合偏好中得出的效用函数可能会降低下游代理的可纠正性[71](即代理行为被设计者纠正的可能性)。
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]。
尽管方法不断演进,以下几项原则依然成立:
数据质量是性能的关键。模型实际学习的是生成结果(completion),因为在多数情况下,提示(prompt)本身并不参与预测,因此模型不会学习如何生成提示。
约 100 万个提示可用于训练出具备优秀 RLHF 和后训练能力的模型。进一步增加提示数量可能带来提升,但收益迅速递减。
最优的提示应与目标下游任务的分布尽可能接近。
如果在指令微调之后还进行多个阶段的训练,模型有能力从过程中一定程度的噪声中恢复。因此,优化整体训练流程比追求每个单独阶段的完美更为重要。
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 细节
实现拒绝采样的详细信息相对稀少。执行此训练的核心超参数非常直观:
采样参数:拒绝采样直接依赖于模型接收到的补全。RS的常见设置包括零度以上的温度,例如在0.7到1.0之间,以及其他对参数的修改,如top-p或top-k采样。
每个提示的补全数:成功的拒绝采样实现包括每个提示的10到30个或更多补全。使用太少的补全会使训练产生偏见或噪声。
指令调整细节:在RS期间没有明确的指令调整训练细节被发布。它们可能使用与模型初始指令调整阶段略有不同的设置。
异构模型生成:一些拒绝采样的实现包括来自多个模型的生成,而不仅仅是当前将要训练的模型。关于如何做到这一点的最佳实践尚未确定。
奖励模型训练:所使用的奖励模型将严重影响最终结果。有关奖励模型训练的更多资源,请参见相关章节。
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)用于优先考虑近期奖励:
热门跟贴