第 1 部分 约 11 分钟从预训练到后训练
1一个任务一个模型
直到 2010 年代后期,自然语言处理基本上是一个问题一个模型。情感分类器、问答系统和翻译模型各有各的架构、标注数据和训练流程;一个模型训练好之后,若要解决另一个问题,就再训练一个模型。
能共享的只有最底层。word2vec (Mikolov et al., 2013) 和 GloVe (Pennington et al., 2014) 这样的词向量从无标注文本中为每个词学习一个向量,任务模型把这些向量当作输入特征。这已经是迁移学习,但比较浅:每个词无论上下文如何都只有一个向量,所以 “river bank” 和 “bank account” 里的 bank 看起来一样,而词向量之上的一切仍然需要为每个任务从头学起。
2015 到 2020 年间,情况变了。领域逐渐收敛到另一套做法:在海量无标注文本上训练一个大型语言模型,保留下来,再适配到各个任务。这种“广泛训练一次、低成本适配多次”的做法,就是今天预训练与后训练分工的雏形。
2先预训练,再适配
悄然开场:半监督序列学习(2015)
Dai and Le (2015) 先把 LSTM 预训练成语言模型或序列自编码器,再用它的权重初始化有监督的文本分类器。经过预训练的网络在训练时更稳定,在多个分类基准上也有更好的泛化表现。“语言模型不必是最终产品,而可以作为有监督学习的预训练阶段”这一想法,在当时已经出现。
但这一想法并未立刻流行起来。LSTM 沿着序列逐步处理,训练难以并行,规模一大成本就很高。在缺乏充分证据表明预训练整个网络确实值得之前,人们没有足够理由放弃熟悉的“预训练词向量 + 任务专用模型”模式。
上下文相关的表示:ELMo(2018)
ELMo (Peters et al., 2018) 针对的是“一个词只有一个向量”的局限。它训练了一个双向 LSTM 语言模型:一个方向预测下一个词,另一个方向预测前一个词,因此每个词的内部表示都依赖上下文。不同层捕捉的信息不同,因此 ELMo 的最终表示是各层的任务特定加权组合,权重为每个任务单独学习。
ELMo 表明,大规模预训练语言模型学到的表示可以迁移到许多任务,并将这一领域从静态表示推向了上下文表示。但它仍然是基于特征的迁移:预训练模型生成特征,再交给一个独立的任务模型使用。
微调整个模型:ULMFiT(2018)
ULMFiT (Howard and Ruder, 2018) 选择了另一条路:既然已经有了一个通用语言模型,就直接在目标任务上微调这个模型本身。其做法分三步:先在通用文本上预训练语言模型;再用目标任务自己的文本继续做语言模型训练,使模型适应该领域的数据分布;最后加上分类器,用标签进行训练。中间这一步已经带有今天持续预训练和分阶段适配的影子。
在小数据集上微调整个网络,容易产生灾难性遗忘:大幅更新可能抹去预训练学到的内容。ULMFiT 使用了判别式微调(不同层使用不同学习率)、倾斜三角学习率调度和逐层解冻(先解冻最上层,再解冻下一层,依此类推)。这些具体技巧今天已不再那么重要,但“适配”与“遗忘”之间的张力仍是后训练的核心问题。
它最亮眼的结果体现在数据效率上:论文报告,只用 100 个标注样本,ULMFiT 就能达到从头训练使用 100 倍数据时的效果。这有力地说明,预训练模型已经掌握了任务所需的大部分内容,微调主要只是完成适配。
与任务无关的 Transformer:GPT-1(2018)
GPT-1 (Radford et al., 2018) 将“先预训练再微调”与 Transformer (Vaswani et al., 2017) 结合了起来。Transformer 对所有位置并行处理,使规模大得多的预训练变得可行。GPT-1 在一个书籍语料上预训练了一个仅解码器的 Transformer,然后针对每个任务进行微调。
它的关键设计是改变输入,而不是改变模型。结构差异很大的任务,通过任务特定的输入变换统一转换成 token 序列:蕴含任务把前提和假设用分隔符拼接;相似度任务把两个句子按两种顺序各拼一次;多项选择任务把上下文分别与每个候选答案配对。同一个网络处理所有任务,只额外加一个小的线性输出层。这是“把任务写成文本”的早期形态:今天用户直接用自然语言表达任务,而 GPT-1 用的是设计者规定的固定格式。
在微调时,GPT-1 还保留语言建模损失作为辅助目标,以免模型丢掉已有的语言建模能力。这与 ULMFiT 所面对的担忧相同,只是解法不同。论文的消融实验发现,辅助损失在较大的数据集上有帮助,在较小的数据集上没有明显收益,因此它并不是 GPT-1 最主要的贡献。
更重要的是一个关于零样本行为的观察。作者在预训练过程中的多个检查点上,测量尚未做任何微调的模型用简单启发式解决若干任务的能力。随着预训练的进行,性能总体上相当平稳地上升。他们提出的假设至今仍影响着这个领域:为了做好下一个 token 预测,语言模型不得不学会下游任务所需的一些能力,部分原因是无标注文本本身就包含这些任务的样例。LSTM 也表现出类似行为,但波动更大;作者据此推测 Transformer 的归纳偏置更有利于迁移。在另一些任务上,零样本启发式效果很弱,因此这并没有让微调变得多余。
如果预训练已经让模型具备通用表示和一定的问题解决能力,那么后训练究竟是在教会模型新的能力,还是在选择并释放模型已有的能力?
双向预训练:BERT(2018)
2018 年底,BERT (Devlin et al., 2019) 通过掩码语言建模(从两侧预测被随机遮住的 token)和下一句预测任务预训练了一个双向 Transformer 编码器,随后在大量语言理解基准上微调,取得了很强的性能。BERT 使“预训练大模型,再为每个任务微调”成为 NLP 的主流范式。不过,它仍需要为每个任务单独微调,而且编码器不能生成文本,统一的任务接口尚未出现。
3规模与提示
既然一个模型可以适配这么多任务,而仅凭预训练就已能产生一些零样本能力,我们真的还需要为每个任务做微调吗?
GPT-2:语言模型是无监督的多任务学习者(2019)
GPT-2 论文的标题就是它的论点 (Radford et al., 2019)。网络文本中充满了隐含的任务示范:采访记录里“Q:”后面跟着问题,“A:”后面跟着回答;文章后面接“TL;DR:”,再往后就是摘要。一个能很好地预测这类文本的模型,可能不得不学会“Q: … A:”之后应该跟什么。因此,在足够多的文本上训练足够大的模型,任务就可能在没有被标注为任务的情况下被学会。
GPT-2 拥有 15 亿参数,是 GPT-1 的十倍以上,训练数据是 WebText,约 40 GB 文本,来自约 800 万个网页文档。作者训练了多个规模的模型,并在不做任何微调的零样本设置下评测;各任务上的性能随模型规模大致呈对数线性提升。这是后来被系统研究的规模规律 (Kaplan et al., 2020) 的早期信号。
GPT-2 显然仅凭预训练就获得了与任务相关的行为。这也说明为什么预训练不是全部:问它一个问题,基座模型可能会继续续写文档而不是回答,比如接着写更多问题。它有知识,却没有按用户期望去使用知识的习惯。这一差距正是指令微调最重要的动机之一。
T5:一切都是文本到文本(2019)
T5 (Raffel et al., 2020) 没有提出新架构。它的贡献是统一的格式:所有任务都是“输入文本,输出文本”,并加上任务前缀,比如 translate English to German: 或 summarize:。这样,同一个模型、同一种损失就能处理翻译、摘要、分类和问答。T5 仍需要在下游任务上微调,但它的系统性研究也发现,性能随规模持续提升,一直到最大的 110 亿参数模型。
GPT-3:上下文学习(2020)
GPT-3 (Brown et al., 2020) 拥有 1750 亿参数,比 GPT-2 大两个数量级;论文训练了从 1.25 亿参数起的八个规模。在大量任务上,零样本、单样本和少样本性能总体都随规模上升,而且零样本与少样本之间的差距往往随模型增大而扩大。
少样本上下文学习是指在提示里放几个现成的例子,不更新任何权重,让模型按规律继续写下去。给定
模型很可能输出 fromage。这些例子把模型的输出分布推向我们想要的方向,却没有改动任何参数。可以说,GPT-3 最重要的规模现象不是更大的模型生成的文本更好,而是它们更擅长借助提示完成任务。
监督微调是自然的下一步。上下文学习表明,几个示范就能临时把一个固定模型引向某个任务;SFT 则把“按我的要求做”这种行为写进参数里,永久生效,并对所有提示生效。后训练的其余部分都建立在它之上。
贯穿全文的例子
为了看清每种方法在同一个对象上的作用,我们在全文中跟踪同一个提示:“What is the capital of France?”(法国的首都是哪里?)。我们的玩具模型可以给出六个完整回复 到 中的一个。下表列出后训练各阶段给它们的概率,以及后面阶段要用到的两个分数:一个奖励模型(§9),它学会了偏爱完整回答,但也高估了奉承;以及一个验证器(§20),它只检查回复是否答出了 Paris。
| 回复 | 内容 | 基座模型 | SFT 之后(πref) | 奖励模型 r | 验证器 | RLHF 之后(β = 1) |
|---|---|---|---|---|---|---|
| y1 | “What is the capital of Germany?” | 42% | 4% | −1.5 | 0 | 0.3% |
| y2 | “France is a country in Western Europe, bordered by…” | 26% | 11% | −0.4 | 0 | 3% |
| y3 | “Paris.” | 12% | 40% | 0.5 | 1(答出 Paris) | 25% |
| y4 | “The capital of France is Paris.” | 7% | 33% | 1.6 | 1(答出 Paris) | 61% |
| y5 | “Lyon.” | 10% | 9% | −1.0 | 0 | 1% |
| y6 | “Great question! The capital of France is Paris, a city famous for…” | 3% | 3% | 2.2 | 1(答出 Paris) | 10% |
从左到右读。基座模型大多在续写文档,就像 GPT-2 那样: 把这个提示当成测验里的一道题。SFT 把概率转移到了回答上(§6)。RLHF 在贴近 SFT 模型的前提下优化奖励模型的分数,进一步集中概率,主要集中到完整句子 上,也有一部分集中到奖励模型高估的奉承式回复 上(§16 与 §19)。所有数字都是示意,并非真实模型的测量结果。
第 1 部分一句话总结
预训练把知识和技能集中到同一个模型里;后训练要回答的开放问题,是如何让这个模型可靠地按人们期望的方式使用它们。
自测 为什么说 ELMo 是基于特征的迁移?ULMFiT 的做法有什么不同?
ELMo 的预训练网络生成表示,作为特征输入给每个任务单独训练的模型。ULMFiT 则直接在目标任务上微调语言模型自身的参数,这正是现代后训练所走的路线。
第 2 部分 约 11 分钟监督微调
4SFT 优化的是什么
监督微调(Supervised Fine-Tuning,SFT),又称指令微调,是在由提示–回复对组成的数据集上继续训练预训练模型,使其学会遵循指令并按预期方式作答。它通常紧接在预训练之后,是从通用语言能力通往有用行为的桥梁。
训练信号与预训练相同:预测下一个 token。变化的是数据。假设我们有 对提示 和参考回复 :
这一分解正是概率的链式法则:模型逐个生成 token,每个 token 都以提示和此前生成的 token 为条件。最大似然会选择使观测到的回复概率尽可能大的参数。
假设样本对彼此独立,则似然为各样本概率的乘积;取负对数后转化为可最小化的求和:
代入分解式后,乘积的对数化为对数之和,每个回复 token 对应一项:
每一项都是正确 token 上的 one-hot 分布与模型在词表上的预测分布之间的交叉熵,所以 SFT 本质上是 token 级分类,与预训练完全一样。在数据上取平均后,最小化该损失等价于最小化 KL 散度 ,因为剩余的数据熵项与 无关。这种“前向” KL 会严重惩罚模型给数据中的任何内容赋予低概率,因此 SFT 倾向于覆盖所有示范,而不是只挑出其中最好的。这一点在 §7 中很重要。
5数据、模板与损失掩码
SFT 数据的来源
- 人工示范。标注者会编写一个提示(或取自真实用户),并写出模型在理想情况下应给出的回复。InstructGPT 正是在这类标注者编写的示范上对 GPT-3 进行微调(Ouyang et al., 2022)。这是最纯粹但也最昂贵的 SFT 数据。
- 改写已有数据集。已有的监督数据集可以改写为指令形式。例如,一个句子的情感分类样本,可以改写为“下面这条评论的情感是积极还是消极?”,答案为“积极”。FLAN 正是以这种方式构建训练数据,为每个数据集配置多个自然语言模板(Wei et al., 2022a)。
- 合成数据。由模型生成指令和回复,经筛选后加入训练集。Self-Instruct 正是从少量种子任务出发,以这种方式自举生成指令数据(Wang et al., 2023)。
- 领域数据。当模型需要覆盖某个特定领域时,可使用代码、数学、医学或公司内部文档。
现代 SFT 通常会混合使用上述所有来源的数据。数据覆盖哪些行为、质量如何、各类比例怎样,在很大程度上决定了最终结果。训练前通常需要清洗数据:过滤有害、错误、低质量或不希望模型学习的样本,并平衡数据配比,避免某一类占据主导。
对话模板
对话会被序列化为一个 token 序列,并用特殊 token 标记角色。不同模型家族使用的具体 token 有所不同,示意如下:
系统提示设定整体行为;用户轮是提示;助手轮是回复。推理时,模型接收<|assistant|>之前的全部内容,并生成剩余部分,直到生成结束 token 为止。训练与推理使用同一模板至关重要。
Teacher forcing 与损失掩码
训练使用teacher forcing:在预测第个 token 时,模型以数据中真实的前文为条件,而不是以自己之前的预测为条件。由于每个位置的上下文事先已知,所有位置可以在一次前向传播中并行训练,与预训练一致。
通常只在回复上计算损失,也就是上文中高亮的部分。记为整个对话的 token 序列,掩码在助手 token 上为,其余为,则
提示仍会在上下文中影响预测,但模型并不是被训练来生成提示,而是被训练来回答提示。这种只在回复上计算的损失(response-only loss)很常见,但并非公认标准:有些流程会对整段对话计算损失,损失的归一化方式(按 token、按回复或按批次)也各不相同。
6为什么少量数据就够
一个非常强的经验事实是:只需很少的 SFT 数据,就能大幅改变模型行为,并且这种改变能够泛化。
- LIMA 只用 1,000 条精心挑选的提示—回复对微调了 650 亿参数的 LLaMA 模型,在没有使用强化学习的情况下就获得了很强的指令遵循能力,并且能泛化到训练数据中未出现过的任务 (Zhou et al., 2023)。
- FLAN 在 60 多个以指令形式表述的 NLP 数据集上对一个 1370 亿参数的模型做了指令微调。它在未见过的任务类型上的零样本表现显著提升,在评测的 25 个数据集中有 20 个超过了零样本的 175B GPT-3 (Wei et al., 2022a)。它的消融实验同样很有启发:任务簇越多越好,自然语言指令本身很重要,而且收益只在模型足够大时出现;在测试的较小模型上,指令微调反而损害了留出任务上的表现。
预训练已经让模型见过海量文本。很难相信一千个样本能教给它足够多的新知识,来解释如此大的变化。一个广为接受的观点,也就是 LIMA 作者所说的表层对齐假说(superficial alignment hypothesis),认为模型的知识和能力几乎全部在预训练中习得,对齐主要是教会它在与用户交互时采用哪种格式和风格 (Zhou et al., 2023)。
图 2 展示了这种直观认识。预训练见过无数次“the capital of France is Paris”,所以 Paris 本来就在候选集合里。但基座模型也在测验、列表和论坛帖子中见过这个问题;在这些地方,问题后面跟着的往往是另一个问题或一段离题的话。SFT 不需要教会这个事实;它要做的是把概率从“续写文档”挪到“回答问题”上。(SFT 也可以把模型推向别的目标,比如续写故事;这里讨论的是“回答”这一常见情形。)
这一图景有直接证据。Lin et al. (2024) 逐 token 比较同一模型的基座版本和对齐版本,可以发现两者在大多数位置上排名第一的 token 相同,变化集中在语篇标记、安全免责声明这类风格性 token 上。他们还表明,给基座模型配上几个精心挑选的上下文示例,就能接近对齐模型的表现。
这个观点也有边界。SFT 可以教会新事实,但过程很慢,而且有证据表明存在代价:Gekhman et al. (2024) 发现,引入模型原本不知道的知识的微调样本,比与已有知识一致的样本学得更慢;随着这些知识被学会,模型也更容易产生幻觉。因此,“SFT 主要是激发”最好理解为对 SFT 擅长什么的描述,而不是一条定律。
为什么参数高效微调有效
同样的观点也解释了为什么很小的更新就足够了。LoRA (Hu et al., 2022) 冻结预训练权重 ,学习一个低秩修正:
其中 初始化为零,所以训练恰好从预训练模型出发。LoRA 的动机是这样一个假设:适配过程中的权重变化具有较低的“内在秩”。它建立在更早的工作之上;那项工作发现,微调可以在一个低得惊人的子空间中被重新参数化,而且预训练模型越大,这个子空间越小 (Aghajanyan et al., 2021)。如果预训练模型已经处在参数空间中一个能力很强的区域,后训练只需沿少数几个方向移动它。学习 和 ,实际上就是在学习往哪些方向调整。这与“激发”的观点一致,但并不是它的证明。
7优点与局限
SFT 的优点很容易概括。它简单稳定:就是带有交叉熵损失的监督学习。它的信号直接:人类直接示范期望的输出。它数据效率高,只需比预训练少得多的数据就能改变行为。它可控:风格、格式和领域都能通过示范塑造。指令微调还带来一定的泛化能力,能迁移到未见过的任务。
真正推动后续发展的,是它的局限。
- 它告诉模型好答案是什么样子,却不告诉模型哪个答案更好。SFT 说的是“模仿这个回复”。但许多提示并没有唯一正确的回复:两个答案可能都可以接受,只是其中一个更准确、更简洁、更有帮助或更安全。在我们的例子中,经过 SFT 后,“Paris.”和完整句子都很可能出现;SFT 数据中没有任何信息说明哪个更受欢迎。而且对人来说,写出理想答案往往比比较两个答案更难。在提升质量时,比较可能是更容易提供、也更直接的信号。
- 它的上限取决于示范。模型只是在模仿训练回复。如果示范平庸、有偏差或前后不一致,模型会把这些缺陷一并学会;而最大似然的“覆盖”性质(§4)意味着它会学会复现整个分布,而不只是最好的部分。
- 它看不到自己的错误。使用 teacher forcing 时,模型总是以真实前文为条件;推理时却以自己的生成结果为条件。小错误可能不断累积,使模型进入训练数据从未覆盖的状态。这种不匹配被称为暴露偏差(exposure bias)(Ranzato et al., 2016),而 SFT 本身没有机制来针对模型自己常犯的错误。
接下来的几部分会把训练信号从“学会一个好答案”转向“学会更好的答案”,并让模型从自己的生成结果中学习。
第 2 部分一句话总结
SFT 是在示范上做最大似然;它成本低,善于激发行为,但不能给答案排序、不能超越数据,也不能纠正模型自己的错误。
自测 当只在回复上计算损失时,哪些 token 参与 SFT 损失?为什么提示仍然重要?
只有助手的 token(掩码 )计入损失。提示仍在上下文中,每次预测都以它为条件;模型学会回答提示,而不会被训练去写提示。
第 3 部分 约 7 分钟从偏好中学习
8从示范到比较
模型学会回答之后,下一个目标是让它回答得更好。很多时候,写不出唯一的参考答案,判断两个答案哪个更好却很容易。这就是示范数据和偏好数据最本质的区别:前者提供可供模仿的参考答案,后者提供答案之间的偏好关系。
示范(SFT)
一个提示和一个由人写出的理想回复。
信号:“生成这个”。
比较(偏好)
一个提示和两个或更多回复,通常由模型采样得到,由人排序。
信号:“这个比那个好”。
偏好数据的来源可以非常多样。人可以针对某个属性写出对比样本,比如希望回答详细时,写一个简略回复和一个详细回复。更常见的是由模型生成候选、由人来评判。在 SFT 中这样做很危险,因为在一个尚弱的模型输出上训练,可能会强化它的缺陷;但对比较数据来说,这很自然。“模型生成、人来评价”的这种分工,正是 RLHF 所利用的 (Christiano et al., 2017; Stiennon et al., 2020)。它还有一个好处:反馈针对的是模型自己的输出,而这恰恰是我们关心的输出。
比较不是免费的午餐。有些比较本身就很难,人与人之间会有分歧;单条“A 比 B 好”所携带的信息,比一整段高质量示范要少。它真正的优势在于:对许多开放式生成任务来说,比较是一种更容易扩展的监督接口。
现在的数据形如下式,其中 是被偏好(“胜出”)的回复, 是被拒绝(“落败”)的回复:
在我们的例子里,标注者看到 (“The capital of France is Paris.”)和 (“Paris.”)时,可能更喜欢完整句子,于是得到三元组 。如何把这样的排序变成训练信号?一个想法是给好的答案标 1、差的标 0,训练一个分类器。但能判断两个答案孰优孰劣的分类器,不一定能说清单个答案到底怎么样;而这恰恰是我们需要的:如果想让模型自己生成答案、打分、再改进,也就是强化学习,就需要一个能给单个答案打分的函数。
9Bradley–Terry 奖励模型
因此,我们想从成对排序中学到一个能为单个回复打分的函数 。由于“更好”本身没有固定定义,人的判断又带有噪声,偏好的概率模型便成为自然的出发点。设回复 和 的分数分别为 和 ,对两个分数做 softmax,就得到 胜出的概率:
其中 是 logistic sigmoid 函数。这就是成对比较中的 Bradley–Terry 模型 (Bradley and Terry, 1952):一个只依赖分数差的 logistic 模型。按标准最大似然方法,我们最大化观测偏好的概率,等价于最小化负对数似然:
这看起来像分类,但分类器被限制为 的形式,所以真正学到的是分数 。
记 ,梯度为
每次更新都会提高胜者分数、降低败者分数,更新权重是 :模型已有把握排对的样本对几乎没有贡献,排错的样本对贡献最大。虽然训练数据是成对的,得到的却是一个可以单独使用的打分函数。在 LLM 中, 通常本身也是一个 Transformer,常从 SFT 模型初始化,并把输出层替换为一个标量头,读入完整的提示和回复后输出一个数 (Ouyang et al., 2022)。InstructGPT 会为每个提示收集多个回复的排序,并把同一排序中的所有成对比较放在一起训练。
平移不变性
给每个分数都加上同一个常数,所有偏好概率都不变,因为进入 的只有差值。事实上,任何只依赖提示的平移 在数据中都无法辨识。这种平移不变性意味着奖励的绝对水平不可辨识;正因如此,InstructGPT 在 RL 之前对奖励模型做了归一化,使标注者示范的平均得分为零 (Ouyang et al., 2022)。这一点之所以重要,是因为偏好学习只关心相对差异,而 RL 优化器对奖励的绝对大小很敏感;奖励的水平和尺度需要通过其他方式控制。同样的不变性还会在 §14(减去 baseline 无害)和 §19(DPO 的归一化常数被消掉)中再次出现。
Reward hacking
奖励模型最大的隐患已经显现。我们希望优化的是一个难以形式化的人类目标,于是训练了一个模型来近似它。但分数越高就一定越好吗?我们无法保证不存在奖励模型打高分、人却并不喜欢的回复。在我们的例子中,奖励模型给奉承式的 打出了全场最高分 2.2。对一个不完美的代理目标用力优化,恰恰会找出这样的回复:这就是 reward hacking(奖励投机),也是 Goodhart 定律的一个实例。用留出的“黄金”奖励来衡量时,对代理奖励模型的优化起初会提升真实质量,但随着优化继续推进,真实质量反而下降 (Gao et al., 2023; Stiennon et al., 2020)。因此,在实践中我们从不简单地最大化学到的奖励;§16 会引入一个约束,让策略保持在奖励模型可信的区域附近。
第 3 部分一句话总结
Bradley–Terry 奖励模型把成对偏好变成标量分数,但这个分数只确定到相差一个平移,而且只在训练数据附近可信。
自测 把同一提示下每个回复的奖励分数都加 5,Bradley–Terry 损失会怎样?这个事实后面在哪里再次出现?
不变:进入 的只有分数差,所以损失和所有偏好概率都不变。同样的不变性使只依赖状态的 baseline 在策略梯度中无害(§14),也让 DPO 中依赖提示的常数 被消掉(§19)。
第 4 部分 约 23 分钟从零开始的强化学习
10智能体、MDP 与回报
奖励模型能判断一个答案有多好,却不能让模型生成更好的答案。为此,模型必须根据分数调整自己的生成策略,也就是输出分布。这就是强化学习(RL)。本节从第一性原理出发,构建 RLHF 所需的强化学习;Sutton and Barto (2018) 是本节内容的标准参考书。
智能体与环境
智能体(agent)不断与环境(environment)交互。在时刻 ,它观察到状态 ,按照自己的策略(policy) 选择动作 ,环境返回奖励 和新状态 :
我们通常假设环境具有马尔可夫性:
一个常见的误解是“未来与过去无关”。正确的理解是:当前状态已经包含了历史中所有会影响未来的信息,所以更早的状态不再提供额外信息。对语言模型来说,状态很自然地就是
即提示加上已生成的 token。每个状态在字面上已经包含了之前所有状态,所以马尔可夫性天然成立,状态转移也是确定的:把选中的 token 接到末尾。
马尔可夫决策过程
形式上,这个问题是一个马尔可夫决策过程(MDP):状态空间、动作空间、转移概率 (在相同状态下采取相同动作,也可能得到不同结果)、奖励函数 ,以及折扣因子 。我们希望智能体最大化长期奖励,而不只是即时奖励,因此定义折扣回报
右边的递推式几乎驱动了后面的一切。 接近 0 时,智能体目光短浅; 接近 1 时,它几乎同等看待远期和眼前的奖励,能学会权衡短期与长期收益。当 且奖励有界时,即使回合无限长,这个求和也是有限的。语言模型的回合在结束 token 处终止,RLHF 通常取 。
策略、轨迹与目标
强化学习的核心对象是策略。随机策略在每个状态下给出动作的概率分布:
语言模型天然就是一个策略:它计算 ,也就是给定当前状态时下一个动作的分布。策略与环境交互会产生一条轨迹 ;对语言模型来说,一条轨迹就是一整段生成的回复。它的概率是
其中 是初始状态的分布(对我们来说就是提示的分布)。强化学习的目标是最大化期望回报
在最简单的 RLHF 设定中,奖励只在最后出现一次,因此 。在我们的例子中,一条轨迹就是六个回复之一, 就是策略生成的回复的平均奖励模型得分。
与 SFT 对比一下:SFT 在固定数据集上告诉模型该生成什么。RL 让模型自己生成、对生成结果打分,再调整策略,使高分输出更可能出现、低分输出更不可能出现。只要奖励足够好,模型原则上可以从自己的尝试中不断改进。今天的推理方法(§20–21)也建立在同样的思想上,主要区别是把学到的奖励模型换成了验证器。
不过探索并不是随意的。模型只能发现自己以一定概率生成的好回复,所以起点很重要。这就是为什么语言模型的 RL 从 SFT 模型出发,而不是从头开始:在我们的例子中,基座模型只有 22% 的概率给出正确答案,SFT 模型则是 76%。
11策略梯度
策略究竟应该如何根据奖励来调整?直觉是:让高回报的轨迹更可能出现,让低回报的轨迹更不可能出现。把一条轨迹的回报记为 。我们想进行梯度上升 。
难点在于 出现在我们取平均所用的分布里,所以这个梯度看起来不像一个可以通过采样估计的期望。对数导数技巧(log-derivative trick)解决了这个问题:
再展开轨迹的对数概率。初始状态项和转移项来自环境,与 无关,因此梯度为零;这也意味着我们永远不需要环境模型:
把这两部分合起来:
这就是最基本的策略梯度。它表达的正是直觉的含义: 是让动作 更可能出现的方向,再乘以整条轨迹有多好。对语言模型来说,它就是被采样回复的对数似然梯度(SFT 用的也是这个量),再按奖励加权。SFT 可以看作每条示范的权重都为 1 的特例。
REINFORCE
REINFORCE (Williams, 1992) 用蒙特卡洛方法估计该期望:用当前策略采样 条轨迹并取平均,然后更新:
Reward-to-go
有一个很明显的改进。轨迹中每个动作都得到相同的权重 ,但它们的权重不应相同。如果回报高是因为第 2 步的一个好选择,后面平平无奇的选择不应因此得到加分;而且一个动作当然不可能影响在它之前到来的奖励。因此,可以把整条轨迹的回报换成从第 步开始的回报。根据 ,去掉 之前的奖励后剩下 :
这一结果是严格成立的,并非近似:被去掉的项期望为零。实践中通常省略因子 ;而在语言模型常用的 下它本来就是 1,于是得到熟悉的 。
证明:过去的奖励可以去掉
取任意一个在动作 之前获得的奖励 (即 ),令 表示截至 的历史,它包含 。给定 ,动作按 抽取。根据全期望公式,
关键事实 是得分函数期望为零的恒等式;它会在 §14 再次出现。
算法 1 · REINFORCE(可选 baseline)
输入:策略 、步长 、批量大小 、baseline (原始 REINFORCE 取零;见 §14)。
- 运行 ,采样 条轨迹 。
- 对每条轨迹的每一步 ,计算 reward-to-go 。
- 估计梯度:。
- 更新 ,丢弃这批轨迹,然后回到第 1 步。
REINFORCE 采样轨迹,再对 取平均。但 只是对未来的一次充满随机性的采样。想知道一个状态或动作平均而言有多好,就需要 的条件期望;这正是价值函数。
12价值函数与 Bellman 方程
状态价值函数是从状态 出发、按照 行动得到的期望回报;动作价值函数(Q 函数)是在状态 采取动作 、之后按照 行动得到的期望回报:
两者直接相关:在状态 下,下一个动作从 中采样,对其取平均即得
在我们的例子中,对于 SFT 策略和奖励模型,提示的价值 就是按 SFT 概率加权的平均奖励 0.60;它会在 §16 再次出现。
Bellman 期望方程
利用 以及马尔可夫性,一步之后的价值等于即时奖励加上到达状态的折扣价值。记 为转移到 并获得奖励 的概率:
将第一个关系代入自身,就得到只含 的同一递推:
这些就是 Bellman 方程:价值由一步之后的价值来定义。它们关于 是线性的,因此对于已知的有限 MDP 可以精确求解。
最优性
我们希望得到最优策略。定义最优价值函数,以及关于 贪心的最优策略:
当每一步都采取最优动作时,对下一个动作取平均就变成了取最大值,由此得到 Bellman 最优方程:
价值迭代与策略迭代
将第一个方程的右端视为作用在价值函数上的算子 。当 时,它在最大范数下是压缩映射,,因此由 Banach 不动点定理,从任意初值反复应用 都会收敛到唯一的不动点 。这就是价值迭代。
策略迭代交替进行两步。评估:通过求解 Bellman 期望方程计算当前策略的 。改进:使策略变得贪心,。新策略不会更差;只要仍有改进空间,就会严格变好。原因很简单: 是各个 的加权平均,而最大值不小于平均值,所以对每个状态都有 。
证明:贪心策略至少一样好(策略改进)
从 出发,将 展开一步,再在下一个状态上反复应用同一不等式:
如果没有任何状态还能改进,即处处 ,那么 满足 Bellman 最优方程, 已经是最优策略。
这两种方法都需要转移模型 来计算期望。通常我们并没有该模型,只能通过行动观察结果。这就是无模型(model-free)强化学习。
13蒙特卡洛与 TD 学习
蒙特卡洛
最直接的想法是回到定义 ,通过采样来估计这个期望:从 出发多次运行策略,记录回报并取平均。增量形式是每个回合结束后把估计朝观测到的回报移动一点:
也可以用每次访问 之后的回报来估计,再像之前那样贪心地改进策略,因此评估和改进都不需要模型。但蒙特卡洛必须等回合结束才能更新,而且一整条轨迹的随机性使 的方差很大,回合越长越明显。
时序差分学习
Bellman 方程告诉我们不必等待:
走一步之后我们观察到 和 ,而 已经是对 的一个新估计。时序差分(TD)学习 (Sutton, 1988) 把旧估计朝它移动:
是 TD 误差:看到这一步之前做出的预测,与看到之后做出的、信息更充分的预测之间的差值。TD 学习就是让旧预测向新预测靠拢。用一个估计去更新另一个估计,称为自举(bootstrapping)。
蒙特卡洛目标:
真实回报。无偏,但方差大,而且只有回合结束才能得到。
TD 目标:
一个真实奖励加上当前估计。每一步都能得到,方差通常更低,但只要 不准就有偏差。
SARSA 与 Q-learning
同样的思想也适用于 Q 函数。对固定策略,动作价值的 Bellman 方程是 ,其中 。交互一次后观察到 ,其中 是策略接下来实际采取的动作,然后更新
这就是 SARSA (Rummery and Niranjan, 1994),其名字来自它用到的五元组。收集数据的策略就是被评估和改进的策略,所以 SARSA 是 on-policy 方法。
如果想直接学习最优价值,就对 Bellman 最优方程 做同样的采样:
这就是 Q-learning (Watkins and Dayan, 1992):Q 值迭代的无模型、基于采样版本。它的目标使用贪心动作 ,与行为策略下一步实际做什么无关,所以被学习的策略(贪心)与收集数据的策略(往往带探索)不同:Q-learning 是 off-policy 方法。
这一节始终在回答同一个问题:如何估计一个状态或动作的长期价值,并用它来改进策略。采样整条轨迹得到蒙特卡洛;只向前采样一步并借助自举得到 TD;对固定策略的 Q 函数做 TD 得到 SARSA;对最优方程做 TD 得到 Q-learning。
14Baseline 与 advantage
回到策略梯度。 衡量的是回报的绝对水平,它混杂了三类因素:状态有多好、动作有多好,以及运气。这让梯度估计噪声很大,而且难以区分高回报究竟来自动作本身,还是继承自好的状态。
第一步是把样本 替换为它的期望 。由于 只依赖 ,且 ,根据全期望公式,梯度保持不变,而未来采样带来的噪声被去掉了:
这正是策略梯度定理 (Sutton et al., 2000) 的形式,在策略由一般函数逼近器表示时同样成立。但它仍然没有把状态和动作分开。于是,减去一个衡量状态好坏的 baseline ,用相对回报来加权:
为了保持梯度不变,baseline 这一项的期望必须为零。只要 baseline 只依赖状态而不依赖动作,任何 baseline 都满足:
对整条轨迹求和时同样的论证
如果 baseline 依赖动作 ,它就无法被移到内层期望之外,梯度一般会有偏。
自然的选择是状态价值 ,即该状态下的期望回报。于是权重变成 advantage(优势函数):
它表示在该状态下选择动作 比策略的平均水平好多少;对动作求平均后为零。期望梯度不变,但状态本身的好坏被去掉了,权重也变为以零为中心,从而降低了方差。(一般而言 并不恰好是使方差最小的 baseline,但它简单且效果好。)这是 §9 中平移不变性在 RL 中的对应:减去任何只依赖状态的量,期望都不变,噪声却大不一样。
在实践中, 和 都是未知的,因此这个公式还不是一个算法。advantage 该如何估计?
15Actor–critic 与 GAE
如果不知道 advantage,就去学习它。策略 是 actor,负责行动;学到的价值函数是 critic,负责评价,并用评价指导 actor 更新。这就是 actor–critic 方法族;用 advantage 作为权重时,常称为 advantage actor–critic,即 A2C,它是 A3C (Mnih et al., 2016) 的同步版本。
同时学习 和 再相减会带来额外负担。TD 误差绕开了这个问题:如果 是策略的真实价值函数,那么 TD 误差的期望就是 advantage:
因此只需学习一个 critic :用 算出的 就是一步 advantage 估计。critic 本身则像 TD 学习一样,通过向目标回归来训练。
但一步估计太短视了:它只使用一个真实奖励,就把整个未来交给 ;一旦 critic 不够准,它的误差就会直接污染 advantage。解决方法是先多用几个真实奖励,再把剩余部分交给 critic。 步 advantage 先使用 个奖励再自举,并且可以裂项写成 TD 误差之和:
时,它就是 actor–critic 的一步 TD 误差; 一直到回合结束时,它就变成蒙特卡洛回报减去 baseline。广义优势估计(GAE)(Schulman et al., 2016) 不做选择,而是对它们全部取指数加权平均:
从加权平均到 TD 误差之和,以及两个极限
代入 并交换求和顺序;TD 误差 会出现在所有 的 中:
时,只剩 一项:,即一步 actor–critic 估计; 时,价值项裂项相消,得到蒙特卡洛回报减去 baseline:
在代码里,GAE 就是一次反向遍历 ,critic 则回归到 。通过对远期 TD 误差打折,GAE 在一步 actor–critic 和蒙特卡洛之间给出了连续的偏差–方差权衡;它并没有消除这个权衡。实践中通常取中间值;§23 列出了论文中报告的取值。
纵观这一路,策略梯度的骨架从未改变:。变化的只是权重 :从 ,到 ,到 ,到 ,再到 TD 误差和 GAE。每一步都让梯度(基本)保持不变,同时让估计噪声更小、更容易在线计算。
第 4 部分一句话总结
策略梯度按“结果比预期好多少”来提高动作的对数概率;价值函数、TD 误差和 GAE 都是在用更小的噪声估计“比预期好多少”。
自测 为什么减去 baseline 不会使策略梯度有偏?为什么 baseline 会出问题?
因为得分函数的期望为零,(概率之和恒为 1),所以任何不依赖动作的因子都可以提出来,并与零相乘。依赖 的 baseline 提不出来,多出的那一项一般不再为零,梯度就有偏了。
第 5 部分 约 10 分钟RLHF 实践
16从 TRPO 到 PPO
普通的策略梯度更新存在两个实际问题。第一,梯度只在当前策略处有效:数据是从 采样的,一旦 改变,这些样本就不再描述新策略,因此每批数据只能安全地用于一小步更新。第二,步长很难选择:参数的微小变化可能导致行为的巨大改变,一次糟糕的更新就可能让策略崩溃,之后它只会继续生成糟糕的数据,难以恢复。
带重要性权重的替代目标
性能差异引理 (Kakade and Langford, 2002) 精确地说明了新策略 比 好多少:等于沿 的轨迹累积的 advantage ,
但在更新之前,我们并不知道 会访问哪些状态。
如果新策略与旧策略足够接近,就可以沿用旧策略访问到的状态,并用重要性比率修正动作分布。这就得到了替代目标(surrogate objective)
它可以用旧样本估计,并且在 处的梯度等于策略梯度。不过,它只在 附近可信。
TRPO:信赖域
信赖域策略优化(TRPO)(Schulman et al., 2015) 明确刻画了“附近”。其理论给出了真实改进的下界:替代目标减去一个关于新旧策略之间 KL 散度的惩罚;实际算法则在平均 KL 不超过某个上限的约束下最大化替代目标:
约束是在行为空间而非参数空间中衡量的,这正是它稳健的原因。TRPO 使用二阶近似、共轭梯度和线搜索来求解。它虽然有效,但实现复杂,也不便于与大型共享网络结合。
PPO:裁剪比率
近端策略优化(PPO)(Schulman et al., 2017) 保留了这一思想,但去掉了复杂的机制。对每个样本,比率
分情况讨论。如果动作是好的(),目标会鼓励提高它的概率,但只到比率达到 为止;超过之后,裁剪项保持平坦,该样本不再贡献梯度。如果动作是坏的(),降低它的概率也只在 之前有益。取最小值使目标成为一个悲观的下界:裁剪可以去掉继续更新的动力,但永远不会掩盖惩罚。如果比率已经朝错误方向移动,例如一个坏动作变得更可能了,未裁剪项仍然完全生效。
由于裁剪限制了每批数据能把策略更新推多远,PPO 可以在每批样本上安全地执行多个 epoch 的小批量梯度更新,样本效率远高于普通策略梯度。使用共享的 actor–critic 网络时,完整目标还需加上价值函数损失,以及可选的、鼓励探索的熵奖励:
PPO 论文还描述了一种用 KL 惩罚代替裁剪的变体,其中惩罚权重会自适应调整以达到目标 KL;实验表明,裁剪版本表现更好。
对参考模型的 KL 惩罚
对语言模型来说,还存在第二种、含义不同的 KL。PPO 的裁剪使每次更新贴近上一个策略;RLHF 则让整个优化过程贴近一个固定的参考模型 ,通常就是 SFT 模型(Ziegler et al., 2019; Stiennon et al., 2020; Ouyang et al., 2022):
这就是 §9 中承诺的、防止 reward hacking 的护栏:奖励模型是在类似的模型的输出上训练的,因此只在它们附近可靠;这一惩罚还能让文本保持流畅和多样。实现中,该惩罚通常被折算为逐 token 的奖励,奖励模型的分数则加在最后一个 token 上:
在一个采样回复上把这些对数比率相加,即可得到序列级 KL 的单样本无偏估计,因为
随后 PPO 照常运行:价值头在每个 token 处估计,GAE 将逐 token 的奖励转换为 advantage,裁剪目标用于更新策略。
算法 2 · 用于 RLHF 的 PPO
输入:SFT 模型、奖励模型、提示集;设置、epoch 数。
- 初始化策略、冻结的参考模型以及 critic。
- 采样提示和回复,其中是当前的一份拷贝。
- 用给每个回复打分,构造包含对的 KL 惩罚的逐 token 奖励。
- 计算、TD 误差、GAE advantage和价值目标。
- 在小批量上运行个 epoch:对上升,对下降。
- 返回第 2 步。
回到我们的例子:一步 PPO
从 SFT 模型开始进行 RLHF。此时,因此每一项 KL 都恰好为零;若 critic 完美,提示的价值就是按 SFT 加权的平均奖励。每个回复的 advantage 等于其奖励减去这个平均值:
| 回复 | 奖励模型 r | Advantage A = r − V(x) |
|---|---|---|
| y1 Quiz: Germany? | −1.5 | −2.10 |
| y2 Rambles | −0.4 | −1.00 |
| y3 Paris. | 0.5 | −0.10 |
| y4 Full sentence | 1.6 | +1.00 |
| y5 Lyon. | −1.0 | −1.60 |
| y6 Flattering | 2.2 | +1.60 |
注意“Paris.”:它虽然正确,但 advantage 为−0.10,因为平均回复的得分已经比它高。PPO 会略微降低它的概率,并提高(完整句子)和(奉承式回复)的概率。这正是奖励模型的偏好,连同它的缺陷;阻止占据主导的正是 KL 惩罚(图 9 展示了在不同下它会走多远)。
17InstructGPT 流程
基于偏好的语言模型强化学习早于 InstructGPT:此前已用于风格续写和摘要(Ziegler et al., 2019; Stiennon et al., 2020),并建立在基于人类偏好的深度强化学习(Christiano et al., 2017)之上。InstructGPT(Ouyang et al., 2022) 把这些组件组装成了后来成为对话助手模板的流程;同年,Anthropic 也采用类似流程训练了有用且无害的助手(Bai et al., 2022a)。
InstructGPT 中的 RLHF
- 监督微调。针对提示(其中许多由 API 用户提交)收集标注者编写的示例,并在这些示例上微调 GPT-3(§4–5)。
- 奖励模型。对每个提示,从模型中采样多个输出,由标注者排序,再用 Bradley–Terry 损失在每个排序的所有成对比较上训练奖励模型(§9)。
- 强化学习。用 PPO 针对奖励模型优化 SFT 模型,并加入对 SFT 模型的逐 token KL 惩罚(§16)。第 2 步和第 3 步可以迭代:在当前策略上收集新的比较数据。
最终目标还多了一项。RLHF 在若干公开 NLP 基准上造成退化,即所谓“对齐税”(alignment tax);于是作者混入了预训练目标,并将该变体称为 PPO-ptx(他们把这个系数写作,与折扣因子无关):
最引人注目的结果是:尽管规模相差百倍,标注者仍更偏好 13 亿参数的 InstructGPT 的输出,而非 1750 亿参数的 GPT-3。决定模型有用程度的,不只是规模,还有后训练。
数一数第 3 步涉及的网络:被训练的策略、用于 KL 惩罚的冻结参考模型、奖励模型,以及作为 critic 的价值网络。四个大模型、一个在线采样循环和大量超参数,使得基于 PPO 的 RLHF 既昂贵又脆弱。后来的许多工作,都是在想办法去掉其中的某些组件。
18RLHF 的局限
RLHF 有效,但每个阶段都有各自的失败模式;Casper et al. (2023) 对此做了详细综述。
- 反馈本身。标注者之间会有分歧、会犯错,也有各自的偏好和盲区。单一标量奖励无法代表偏好真正不同的人群。在困难任务上提供好的反馈需要专业知识,既慢又贵。
- 奖励模型。它是在有限数据上训练的不完美代理。当被强烈优化时,策略会找到它的错误:过度优化会在代理分数上升的同时降低真实质量 (Gao et al., 2023)。
- 学到的捷径。有些缺陷是系统性的。更长的回答往往更受青睐,RLHF 中测得的奖励提升,很大一部分可以归因于回答变长 (Singhal et al., 2023)。用人类反馈训练的助手倾向于谄媚(sycophancy),说用户似乎想听的话;而人类偏好判断有时会偏爱有说服力的谄媚回答,而不是正确回答 (Sharma et al., 2024)。我们例子中奉承式的 就是这两者的漫画版。
- 成本与稳定性。内存里有四个模型,训练循环中包含在线生成,并且对 、 和学习率等超参数敏感。
此后出现了两个方向。一个是在书面原则指导下用 AI 反馈代替人类标注者,例如 Constitutional AI (Bai et al., 2022b),以扩展监督规模。另一个是简化优化本身,这正是下一部分的内容。
第 5 部分一句话总结
PPO 用裁剪的重要性比率稳定策略梯度更新;RLHF 再加上对参考模型的 KL 惩罚,使对学到的奖励的优化不至于超出奖励可信的范围。
自测 一个 的样本,比率已经达到 ,,PPO 的裁剪项给出什么梯度?若 、比率相同呢?
时,比率超过了 ,取最小值的是平坦的裁剪项,该样本不贡献梯度。 时,未裁剪项 更小,完整的惩罚生效,梯度会把概率往回压。
第 6 部分 约 12 分钟PPO 之后
19直接偏好优化
§16 中带 KL 正则的目标有一个重要的性质:对于固定的奖励,其最优策略可以写成闭式解。直接偏好优化(DPO)(Rafailov et al., 2023) 利用这一点,同时跳过了奖励模型和 RL 循环。
闭式的最优策略
固定一个提示 ,考虑回复上的任意分布 。将奖励项和 KL 项合并到一个对数里:
其中归一化分布的定义见下式。 与 无关,而 KL 散度非负,且仅当两个分布相同时为零。因此目标恰好在 处达到最大:
最优策略就是用指数化的奖励对参考模型重新加权。 相当于温度: 较大时贴近 , 较小时集中到奖励最高的回复上。在我们的例子中,“RLHF 之后”那一列正是 时对应的 。
你的语言模型其实是一个奖励模型
现在把关系反过来。取对数并移项,就可以用最优策略来表示奖励:
是对所有可能回复求和,无法计算。但它只依赖提示,而 §9 已经表明,依赖提示的奖励平移对 Bradley–Terry 模型是不可见的,因此它在每个偏好概率中都会被消去。
代入 :
偏好概率现在只是策略的函数。于是直接参数化 ,像拟合奖励模型那样用最大似然将其拟合到偏好数据上:
定义隐式奖励
于是梯度为
提高被偏好回复的对数概率,降低被拒绝回复的对数概率,并按照隐式奖励当前把这一对排错的程度为每一对加权。训练只需要策略和一个冻结的参考模型,计算固定回复的对数概率,训练过程中不需要采样。它几乎和 SFT 一样简单。
算法 3 · DPO
输入:SFT 模型 ,偏好数据 ,,步长 。
- 初始化 和冻结的参考模型 。可选:预先计算一次 和 。
- 对每个小批量三元组:由 token 对数概率之和计算 和 。
- 对小批量平均的 做一步梯度下降。
- 在固定数据集上重复若干个 epoch;不生成任何回复。
回到我们的例子:一对 DPO 样本
以 §8 中标注者给出的那一对为例: 优于 。初始时 ,两个隐式奖励都为零,损失为 ;第一步梯度会提高 、降低 ,其他回复只会通过共享参数被间接改变。如果训练达到与这些偏好一致的奖励模型所对应的 KL 最优策略 ,那么隐式奖励之差就等于奖励差 1.1,该样本对的损失为 0.287。
与 PPO 的一个区别立刻显现出来。DPO 只从数据集中的样本对学习。如果标注者从未拿奉承式的 与其他回复比较过,DPO 既不会像奖励模型有缺陷时的 PPO 那样被推向它,也不会学会避开它。
DPO 放弃了什么,以及它的近亲
DPO 通常离线运行,使用从其他模型收集的固定偏好数据集。基于 PPO 的 RLHF 则是在线的:它不断从当前策略采样并打分,因此能随着模型变化获得关于模型自身输出的反馈,这正是 §8 中引入偏好时所看重的优势。DPO 的在线和迭代变体会在当前策略上收集新的偏好,以部分弥补这一点。其他离线目标则修改了推导中的不同环节:
- IPO (Azar et al., 2024) 指出,当偏好接近确定时,Bradley–Terry 似然会把隐式奖励差推向无穷,从而使 KL 正则失效;它改用朝向有限目标差值的平方损失来替代 log-sigmoid。
- KTO (Ethayarajh et al., 2024) 从仅标注为“可取”或“不可取”的非成对样本中学习,使用受前景理论启发的损失。
- SimPO (Meng et al., 2024) 移除了参考模型,以长度归一化的平均对数概率作为隐式奖励,并加入目标间隔。
20可验证奖励与 GRPO
学习得到的奖励模型是 RLHF 的薄弱环节:它是一个近似模型,容易被投机利用,而且需要偏好数据。对某些任务来说,它完全没有必要。答案已知的数学题、带单元测试的代码、带可检查约束的指令,都可以由程序打分。针对这类检查进行训练称为基于可验证奖励的强化学习(RLVR),这一名称随 Tülu 3 模型提出 (Lambert et al., 2024)。基于规则的奖励不太会像神经奖励模型那样被投机利用;不过,只检查最终答案的检查器,并不能说明推理过程是否可靠。
人们早已知道推理受益于中间步骤:提示模型写出思维链能提升大模型的多步推理 (Wei et al., 2022b);STaR 则通过在自己生成的、得出正确答案的推理过程上微调来自举推理能力 (Zelikman et al., 2022)。直接奖励步骤本身(过程监督)在训练数学奖励模型时优于只奖励最终答案 (Lightman et al., 2023),但步骤级标注成本很高。来自验证器的结果奖励成本低,也容易扩展。
GRPO:用一组样本替代 critic
组相对策略优化(GRPO)由 DeepSeekMath 提出 (Shao et al., 2024)。它保留了 PPO 的裁剪目标,但去掉了价值网络。对于每个提示 ,它从旧策略中采样一组 个输出 ,给它们打分,并用这组样本本身作为 baseline。当每个输出只有一个奖励时(结果监督),输出 的每个 token 都会得到归一化的 advantage
这是 §14 中 baseline 思想最简单的形式:对同一提示多次尝试的平均奖励,估计了提示状态有多好,因此 advantage 表示这一次尝试比它的“兄弟”好多少。无需训练 critic,这既省去了一个和策略同样大的模型,也避免了从只在结尾才出现的奖励中学习 token 级价值的困难。目标与 PPO 的目标一致,在组内和 token 上取平均,并把与参考模型之间的 KL 直接加在损失里,而不是折算进奖励:
其中逐 token 的比率为
KL 的逐 token 估计为
它始终非负(因为 );并且由于比率 在 下的期望为 1,它也是 KL 的无偏估计。
算法 4 · GRPO
输入:初始策略(SFT 或基座模型)、提示集、奖励函数(验证器或奖励模型)、组大小 、、 和内层迭代次数 。
- 用初始策略初始化 以及冻结的参考模型 。
- 采样一批提示 ,并对每个提示采样 个输出 。
- 给每个输出打分 ,并为 的每个 token 赋予 advantage 。
- 迭代 次:沿 上升(裁剪比率、逐 token 的 KL 惩罚)。
- 令 ,回到第 2 步;不训练 critic。
图 10 展示了二元奖励的两个性质。如果组内正确比例为 ,则正确回答的 advantage 是 ,错误回答是 :少见的成功会被强烈强化。而一组回答全对或全错时,完全没有信号,因此太容易或太难的提示都会被浪费掉。它还展示了验证器看不到什么:、 和奉承式的 都会得到 1 分,所以风格和语气必须来自别处,比如 SFT 数据或另一个奖励。后续工作对这些细节做了调整:DAPO 过滤掉没有信息的组,把裁剪的下界和上界解耦,并按 token 而不是按序列对损失取平均 (Yu et al., 2025);Dr. GRPO 认为按回复长度归一化和按标准差缩放会给训练带来偏差(例如偏向更长的错误回答),因此去掉了这两项 (Liu et al., 2025)。
21DeepSeek-R1 与推理
2024 年,OpenAI 报告 o1 的表现既随着更多强化学习而提升,也随着测试时更长的思考而提升 (OpenAI, 2024),但没有详细描述方法。DeepSeek-R1 (DeepSeek-AI, 2025) 公开给出了一条实现类似行为的路线,它建立在 GRPO 和可验证奖励之上。
DeepSeek-R1-Zero:只用 RL
直接在预训练基座模型上应用 GRPO,不做 SFT。奖励基于规则:准确性(最终答案是否正确、代码是否通过测试)和格式(推理是否放在思考标签之间)。出于对 reward hacking 的担忧,刻意没有使用神经奖励模型。
训练过程中,回复自发变得越来越长,并涌现出重新检查、重新评估先前步骤等行为,其中包括被广泛引用的“顿悟时刻”(aha moment)。但输出难以阅读,还会混用语言。
DeepSeek-R1:多阶段流程
- 冷启动:在少量较长且可读的思维链样本上做 SFT。
- 像 R1-Zero 那样进行面向推理的 RL,并额外加入语言一致性奖励。
- 从该模型进行拒绝采样,并加入通用数据,再做一轮 SFT。
- 最后一个 RL 阶段覆盖各类提示,兼顾推理、有用性和无害性。
还有两个发现对全局也很重要。论文通过在 R1 的输出上做普通 SFT,将其推理能力蒸馏到更小的开源模型中,并发现蒸馏比直接在小模型上做大规模 RL 更有效。论文也报告了使用过程奖励模型和蒙特卡洛树搜索的失败尝试;在其设定下,这些方法未能在大规模上奏效。
这个结构值得注意。SFT 仍是流程的开端,但现在的作用是为长推理设定可读的格式,而不是教模型如何回答;基于可检查奖励的 RL 承担了主要工作;在模型自己筛选过的输出上再做 SFT,则巩固了成果。第 1 到第 5 部分的思想——模仿、比较、策略梯度、baseline 和 KL 控制——仍然都在。
第 6 部分一句话总结
DPO 将带 KL 正则的目标转化为偏好对上的监督损失;带可验证奖励的 GRPO 去掉了 critic 和学到的奖励,使得面向推理的大规模 RL 变得可行。
自测 在一个包含 8 个回复的 GRPO 组里,8 个回复都正确。它们的 advantage 是多少?DAPO 对这样的组做了什么?
所有奖励都等于均值,标准差为零,因此每个 advantage 都是零,这一组不会贡献策略梯度(只有 KL 项起作用)。DAPO 会过滤掉回复全对或全错的组,并继续采样更多提示,直到批次中填满有信息的组。
第 7 部分 约 10 分钟实践
22方法并排对比
本文中的四类方法,与其说差别在数学(它们共享同一套数学),不如说在于需要什么,以及学习信号从哪里来。模型副本按完整大小计数;critic 往往更小或与策略共享网络;RLVR 描述的是奖励来源,可以与 PPO、GRPO 或其他优化器搭配。
| 方法 | 所需数据 | 内存中的模型 | 采样方式 | 学习信号 | 主要失败模式 |
|---|---|---|---|---|---|
| SFT | 提示–回复示范 | 1 个:策略 | 离线:固定数据集,teacher forcing | 示范的对数似然 | 照搬数据中的缺陷;暴露偏差;新知识学得慢,并与更多幻觉相关 |
| 奖励模型 + PPO | 排序比较(用于训练奖励模型)和提示 | 4 个:策略、参考模型、奖励模型、critic | On-policy:每轮迭代都要生成 | 学到的奖励减去 KL 惩罚,再转化为 GAE advantage | Reward hacking、长度偏差与谄媚;KL 失控;成本高、对调参敏感 |
| DPO | 偏好对 | 2 个:策略和参考模型 (参考模型的对数概率可预先计算) | 离线:训练中不生成 | 每个偏好对的隐式奖励差 | 受限于所收集的样本对;缺少对自身输出的反馈;在近乎确定的偏好上可能过拟合 |
| GRPO 配合 RLVR | 带有可检查答案的提示,或一个奖励模型 | 2 个:策略和参考模型 (如用奖励模型则再加一个) | On-policy:每个提示 个样本 | 相对于组均值的奖励,无 critic | 组内无信号;归一化带来的长度偏差;只检查答案的验证器 |
这张表由两组对比组织起来。信号从哪里来:示范(SFT)、经由学习到的模型进行的人类比较(PPO)或直接的人类比较(DPO),或者一个程序(RLVR)。评判的是谁的输出:固定数据集(SFT、离线 DPO),还是模型自己当前的样本(PPO、GRPO)。后者对 §7 中 SFT 的第三个局限最为关键:只有 on-policy 方法能看到并纠正模型自己犯的错误。
23实际运行:设置、成本、故障
论文报告的设置
超参数的取值取决于模型、数据和代码实现,因此下表中的数值只是相应论文报告的参考点,而非推荐值。
| 设置 | 作用 | 报告的取值 | 来源 |
|---|---|---|---|
| PPO 裁剪 | 每批数据最多能将每个动作的概率改变多少 | 0.2(在所比较的设置中效果最好) | Schulman et al. (2017) |
| GAE 、折扣 | advantage 估计的偏差–方差权衡;有效视野 | 在其基准实验中 、 | Schulman et al. (2017) |
| RLHF 的 KL 权重 | 策略与 SFT 模型之间的距离 | 0.02;PPO-ptx 的预训练混合系数为 27.8 | Ouyang et al. (2022) |
| 自适应 KL | 不固定 ,而是让 KL 保持在目标值附近 | 在训练中动态调整 ,使 KL 接近目标值 | Ziegler et al. (2019) |
| DPO 的 | 隐式 KL 约束的强度 | 默认 0.1;TL;DR 摘要任务为 0.5 | Rafailov et al. (2023) |
| GRPO 组大小 、KL 权重 | 每个提示用于构造 baseline 的样本数;策略与参考模型之间的距离 | , | Shao et al. (2024) |
| 解耦的裁剪范围 | 让低概率 token 的概率上升空间大于下降空间 | , | Yu et al. (2025) |
计算与内存
ZeRO 论文给出了一个实用的经验法则:使用混合精度 Adam 训练时,每个可训练参数约占 16 字节(16 位的权重与梯度,加上 32 位的主权重和 Adam 的两个矩估计),且不包括激活值 (Rajbhandari et al., 2020)。以 16 位精度存储的冻结模型每个参数约占 2 字节。因此,对一个有 个参数、进行全参数训练的策略而言:
- SFT 的模型与优化器状态约需 字节;仅一个 70 亿参数的模型就需要约 112 GB,这也是分片训练和 LoRA 等参数高效方法如此常见的原因。
- PPO 需要训练策略和 critic,同时冻结参考模型和奖励模型:若四者规模都与策略相同,总计约 。此外,它在每轮迭代中都要生成样本,而自回归生成可能占去每一步相当大一部分时间。
- DPO 约需 ;若预先算好参考模型的对数概率,则只需 ,并且无需生成。
- GRPO 约需 (若使用奖励模型则需另加),不需要 critic,但每个提示要生成 个样本。
故障如何显现
在语言模型上进行的 RL 训练大多会记录相同的几个量:平均奖励、相对参考模型的 KL、策略熵、回复长度、被裁剪样本的比例,以及留出集上的评测。下面四种故障涵盖了相当大一部分常见问题。
KL 失控
症状。相对参考模型的 KL 迅速上升,而奖励往往仍在上涨;样本的风格发生漂移,或变得重复。
诊断。把每批的 KL 与留出集上的质量指标画在同一张图上;阅读出现漂移的批次中的样本。
应对。使用更大的或自适应的 (Ziegler et al., 2019),降低学习率或缩小裁剪范围,减少每批数据上的 epoch 数。
长度偏差
症状。平均回复长度随奖励同步增长,更长的回答无论内容如何都在评测中胜出。
诊断。检查奖励的提升有多少可以仅由长度解释 (Singhal et al., 2023);比较长度控制后的评测与原始评测(§24)。
应对。使用考虑长度的目标函数或归一化 (Meng et al., 2024; Liu et al., 2025)、长度控制的评测,以及更均衡的偏好数据。
熵塌缩
症状。策略熵迅速下降;同一提示下的样本趋于一致,许多 GRPO 组的 advantage 为零,pass@ 不再提升。
诊断。跟踪熵以及无信号组所占的比例。
应对。加入熵奖励(PPO 目标中的 )、像 DAPO 那样提高裁剪上界(DAPO 正是为对抗熵塌缩而提出这一做法)(Yu et al., 2025),或提高采样温度。
Reward hacking
症状。代理奖励持续上升,而人工评判或留出集上的评判却停滞甚至下降 (Gao et al., 2023; Stiennon et al., 2020);输出钻了奉承、格式等漏洞。
诊断。使用不同于被优化对象的评判者进行评测;阅读奖励最高的样本。
应对。施加 KL 惩罚、依据留出集质量提前停止训练、像 InstructGPT 那样基于当前策略收集新的比较数据,或在条件允许时使用可验证奖励。
24后训练模型如何评测
后训练改变的是行为,因此对它评测时衡量的也应是行为:人们更偏好哪个回答,以及回答是否正确。
偏好:人与模型评判者
- 人类胜率。将两个模型对同一提示的输出交给评审者,统计各自被偏好的频率。InstructGPT 最主要的结果正是这样一种比较 (Ouyang et al., 2022)。
- 竞技场排名。Chatbot Arena 收集用户与两个匿名模型对话后的成对投票,并对投票拟合 Bradley–Terry 模型来给模型排名 (Chiang et al., 2024):这正是 §9 中奖励模型用到的那个模型,只不过这里是在给模型打分,而不是给回复打分。
- 模型评判者。一个强大的语言模型可以充当评判者。Zheng et al. (2023) 发现,强评判者与人类偏好一致的频率,与人类之间彼此一致的频率相当,同时还记录了位置偏差、冗长偏差和自我偏好偏差。由于评判者倾向于偏爱更长的回答,长度控制版本会对长度做校正 (Dubois et al., 2024)。
可验证的基准
当答案可以核验时,基准就不再需要评判者:GSM8K 中的小学数学应用题 (Cobbe et al., 2021)、MATH 中的竞赛数学 (Hendrycks et al., 2021),以及 HumanEval 中带单元测试的编程题 (Chen et al., 2021)。它们正是 RLVR 的天然标尺,常见的注意点是公开测试集可能泄漏进训练数据。
pass@1、pass@,以及二者区别为何重要
可验证基准可以按单次尝试或多次尝试来计分。pass@ 是 个样本中至少有一个正确的概率。对每道题采样 个答案,数出其中 个正确答案,Chen et al. (2021) 给出了一个无偏估计:
pass@1 衡量模型一次尝试时会做什么;大 下的 pass@ 衡量模型究竟能够达到什么。对 个样本做多数投票(maj@)则介于两者之间。这一区别正处在“激发还是教会”之争的核心:DeepSeekMath 发现,RL 提升了多数投票准确率,却没有提升 pass@ (Shao et al., 2024);Yue et al. (2025) 发现,尽管 RLVR 在小 时占优,但在大 时基座模型追平甚至超过了其经 RLVR 训练的版本。如果 RL 主要提升的是 pass@1,那么它是在让模型本来就能得到的答案更可能出现,这是一种“锐化”而不是新能力,至少在这些问题上如此。在我们的例子中,RLHF 把给出正确回复的概率从 76% 提高到了 96%,但每个正确回复本来就在 SFT 模型的能力范围之内。
评测还需要发现后训练可能破坏的东西。InstructGPT 测量了在标准 NLP 基准上的退化,这正是促使他们提出 PPO-ptx 的对齐税 (Ouyang et al., 2022)。
25开放问题
我们从 GPT-1 留下的问题出发:后训练是在教会模型新能力,还是在激发模型已有的能力?到目前为止,SFT 方面的证据偏向“激发”(§6),而同样的争论在 RL 上又重新展开(§24)。
- RL 是在创造推理,还是在锐化推理?上文的 pass@ 结果表明,在所研究的问题上,它起到的是锐化作用。更长、更广或设计不同的 RL 是否会改变这一点,仍是开放问题。
- 超越可验证奖励。可验证奖励覆盖数学、代码以及可检查的约束。人们想要的大部分东西,例如好的写作、可靠的建议或诚实的不确定性,都无法被机械地检查;这又把我们带回学习到的奖励及其失败模式。
- 优化什么。GRPO 及其后继方法与 DPO 家族之间的差别在于归一化、裁剪和损失聚合方式,看似细枝末节,却会改变行为。哪些选择重要、为何重要,仍在研究之中。
- 谁的偏好?单一奖励模型是在彼此存在分歧的人群上取平均。如何表示多元偏好,以及如何在人类难以评判的任务上监督模型,仍然悬而未决。
后训练至今的轨迹是:模仿好的答案,学会哪些答案更好,再让模型针对无法被糊弄的信号从自身的尝试中改进。每一步对人类标注者的要求都更少,对模型的要求都更多。
自测 经过 RLVR 之后,一个模型的 pass@1 上升了,但 pass@256 没有变化。这说明什么?
这说明 RL 让那些只要采样足够多就能找到的答案更有可能排在第一位:它锐化了输出分布,而没有扩展模型能解决的范围,至少在这些问题上如此。pass@1 衡量默认行为;大 下的 pass@ 衡量能力范围。
参考文献
- Armen Aghajanyan, et al. (2021). Intrinsic Dimensionality Explains the Effectiveness of Language Model Fine-Tuning. ACL 2021.
- Mohammad Gheshlaghi Azar, et al. (2024). A General Theoretical Paradigm to Understand Learning from Human Preferences. AISTATS 2024.
- Yuntao Bai, et al. (2022). Constitutional AI: Harmlessness from AI Feedback. arXiv:2212.08073.
- Yuntao Bai, et al. (2022). Training a Helpful and Harmless Assistant with Reinforcement Learning from Human Feedback. arXiv:2204.05862.
- Ralph Allan Bradley, Milton E. Terry (1952). Rank Analysis of Incomplete Block Designs: I. The Method of Paired Comparisons. Biometrika 39(3/4).
- Tom B. Brown, et al. (2020). Language Models are Few-Shot Learners. NeurIPS 2020.
- Stephen Casper, et al. (2023). Open Problems and Fundamental Limitations of Reinforcement Learning from Human Feedback. Transactions on Machine Learning Research.
- Mark Chen, et al. (2021). Evaluating Large Language Models Trained on Code. arXiv:2107.03374.
- Wei-Lin Chiang, et al. (2024). Chatbot Arena: An Open Platform for Evaluating LLMs by Human Preference. ICML 2024.
- Paul F. Christiano, Jan Leike, Tom B. Brown, Miljan Martic, Shane Legg, Dario Amodei (2017). Deep Reinforcement Learning from Human Preferences. NeurIPS 2017.
- Karl Cobbe, et al. (2021). Training Verifiers to Solve Math Word Problems. arXiv:2110.14168.
- Andrew M. Dai, Quoc V. Le (2015). Semi-supervised Sequence Learning. NeurIPS 2015.
- DeepSeek-AI (2025). DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning. arXiv:2501.12948.
- Jacob Devlin, Ming-Wei Chang, Kenton Lee, Kristina Toutanova (2019). BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. NAACL 2019.
- Yann Dubois, et al. (2024). Length-Controlled AlpacaEval: A Simple Way to Debias Automatic Evaluators. arXiv:2404.04475.
- Kawin Ethayarajh, Winnie Xu, Niklas Muennighoff, Dan Jurafsky, Douwe Kiela (2024). KTO: Model Alignment as Prospect Theoretic Optimization. ICML 2024.
- Leo Gao, John Schulman, Jacob Hilton (2023). Scaling Laws for Reward Model Overoptimization. ICML 2023.
- Zorik Gekhman, et al. (2024). Does Fine-Tuning LLMs on New Knowledge Encourage Hallucinations?. EMNLP 2024.
- Dan Hendrycks, et al. (2021). Measuring Mathematical Problem Solving With the MATH Dataset. NeurIPS 2021 Datasets and Benchmarks.
- Jeremy Howard, Sebastian Ruder (2018). Universal Language Model Fine-tuning for Text Classification. ACL 2018.
- Edward J. Hu, et al. (2022). LoRA: Low-Rank Adaptation of Large Language Models. ICLR 2022.
- Sham Kakade, John Langford (2002). Approximately Optimal Approximate Reinforcement Learning. ICML 2002.
- Jared Kaplan, Sam McCandlish, Tom Henighan, Tom B. Brown, Benjamin Chess, Rewon Child, Scott Gray, Alec Radford, Jeffrey Wu, Dario Amodei (2020). Scaling Laws for Neural Language Models. arXiv:2001.08361.
- Nathan Lambert, et al. (2024). Tülu 3: Pushing Frontiers in Open Language Model Post-Training. arXiv:2411.15124.
- Hunter Lightman, et al. (2023). Let's Verify Step by Step. ICLR 2024.
- Bill Yuchen Lin, et al. (2024). The Unlocking Spell on Base LLMs: Rethinking Alignment via In-Context Learning. ICLR 2024.
- Zichen Liu, et al. (2025). Understanding R1-Zero-Like Training: A Critical Perspective. arXiv:2503.20783.
- Yu Meng, Mengzhou Xia, Danqi Chen (2024). SimPO: Simple Preference Optimization with a Reference-Free Reward. NeurIPS 2024.
- Tomas Mikolov, Kai Chen, Greg Corrado, Jeffrey Dean (2013). Efficient Estimation of Word Representations in Vector Space. arXiv:1301.3781.
- Volodymyr Mnih, et al. (2016). Asynchronous Methods for Deep Reinforcement Learning. ICML 2016.
- OpenAI (2024). Learning to Reason with LLMs. OpenAI blog post.
- Long Ouyang, Jeff Wu, Xu Jiang, et al. (2022). Training Language Models to Follow Instructions with Human Feedback. NeurIPS 2022.
- Jeffrey Pennington, Richard Socher, Christopher D. Manning (2014). GloVe: Global Vectors for Word Representation. EMNLP 2014.
- Matthew E. Peters, Mark Neumann, Mohit Iyyer, Matt Gardner, Christopher Clark, Kenton Lee, Luke Zettlemoyer (2018). Deep Contextualized Word Representations. NAACL 2018.
- Alec Radford, Karthik Narasimhan, Tim Salimans, Ilya Sutskever (2018). Improving Language Understanding by Generative Pre-Training. OpenAI technical report.
- Alec Radford, Jeffrey Wu, Rewon Child, David Luan, Dario Amodei, Ilya Sutskever (2019). Language Models are Unsupervised Multitask Learners. OpenAI technical report.
- Rafael Rafailov, Archit Sharma, Eric Mitchell, Stefano Ermon, Christopher D. Manning, Chelsea Finn (2023). Direct Preference Optimization: Your Language Model is Secretly a Reward Model. NeurIPS 2023.
- Colin Raffel, Noam Shazeer, Adam Roberts, Katherine Lee, Sharan Narang, Michael Matena, Yanqi Zhou, Wei Li, Peter J. Liu (2020). Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer. Journal of Machine Learning Research 21.
- Samyam Rajbhandari, Jeff Rasley, Olatunji Ruwase, Yuxiong He (2020). ZeRO: Memory Optimizations Toward Training Trillion Parameter Models. SC 2020.
- Marc'Aurelio Ranzato, Sumit Chopra, Michael Auli, Wojciech Zaremba (2016). Sequence Level Training with Recurrent Neural Networks. ICLR 2016.
- Gavin A. Rummery, Mahesan Niranjan (1994). On-Line Q-Learning Using Connectionist Systems. Technical report, Cambridge University Engineering Department.
- John Schulman, Sergey Levine, Philipp Moritz, Michael I. Jordan, Pieter Abbeel (2015). Trust Region Policy Optimization. ICML 2015.
- John Schulman, Philipp Moritz, Sergey Levine, Michael I. Jordan, Pieter Abbeel (2016). High-Dimensional Continuous Control Using Generalized Advantage Estimation. ICLR 2016.
- John Schulman, Filip Wolski, Prafulla Dhariwal, Alec Radford, Oleg Klimov (2017). Proximal Policy Optimization Algorithms. arXiv:1707.06347.
- Zhihong Shao, et al. (2024). DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models. arXiv:2402.03300.
- Mrinank Sharma, et al. (2024). Towards Understanding Sycophancy in Language Models. ICLR 2024.
- Prasann Singhal, Tanya Goyal, Jiacheng Xu, Greg Durrett (2023). A Long Way to Go: Investigating Length Correlations in RLHF. arXiv:2310.03716.
- Nisan Stiennon, et al. (2020). Learning to Summarize from Human Feedback. NeurIPS 2020.
- Richard S. Sutton (1988). Learning to Predict by the Methods of Temporal Differences. Machine Learning 3.
- Richard S. Sutton, David McAllester, Satinder Singh, Yishay Mansour (2000). Policy Gradient Methods for Reinforcement Learning with Function Approximation. Advances in Neural Information Processing Systems 12.
- Richard S. Sutton, Andrew G. Barto (2018). Reinforcement Learning: An Introduction (2nd edition). MIT Press.
- Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Łukasz Kaiser, Illia Polosukhin (2017). Attention Is All You Need. NeurIPS 2017.
- Yizhong Wang, et al. (2023). Self-Instruct: Aligning Language Models with Self-Generated Instructions. ACL 2023.
- Christopher J. C. H. Watkins, Peter Dayan (1992). Q-learning. Machine Learning 8.
- Jason Wei, et al. (2022). Chain-of-Thought Prompting Elicits Reasoning in Large Language Models. NeurIPS 2022.
- Jason Wei, Maarten Bosma, Vincent Y. Zhao, Kelvin Guu, Adams Wei Yu, Brian Lester, Nan Du, Andrew M. Dai, Quoc V. Le (2022). Finetuned Language Models Are Zero-Shot Learners. ICLR 2022.
- Ronald J. Williams (1992). Simple Statistical Gradient-Following Algorithms for Connectionist Reinforcement Learning. Machine Learning 8.
- Qiying Yu, et al. (2025). DAPO: An Open-Source LLM Reinforcement Learning System at Scale. arXiv:2503.14476.
- Yang Yue, et al. (2025). Does Reinforcement Learning Really Incentivize Reasoning Capacity in LLMs Beyond the Base Model?. arXiv:2504.13837.
- Eric Zelikman, Yuhuai Wu, Jesse Mu, Noah D. Goodman (2022). STaR: Bootstrapping Reasoning With Reasoning. NeurIPS 2022.
- Lianmin Zheng, et al. (2023). Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena. NeurIPS 2023 Datasets and Benchmarks.
- Chunting Zhou, et al. (2023). LIMA: Less Is More for Alignment. NeurIPS 2023.
- Daniel M. Ziegler, et al. (2019). Fine-Tuning Language Models from Human Preferences. arXiv:1909.08593.
贯穿全文的示例及图 2–10 均使用为本页构建的小型示意玩具模型,其中的数字并非真实模型的测量结果。回到顶部 ↑