24年7月来自 Salesforce 的论文"A Comprehensive Survey of LLM Alignment Techniques: RLHF, RLAIF, PPO, DPO and more"。
随着自监督学习的进步、预训练语料库中数万亿个 token 的出现、指令微调以及拥有数十亿参数的大型 Transformer 的开发,大语言模型 (LLM) 现已能够对人类查询生成真实且连贯的响应。然而,训练数据的质量参差不齐可能会导致生成不理想的响应,从而带来重大挑战。在过去的两年中,人们从不同角度提出各种方法来增强 LLM,特别是在使其与人类期望保持一致方面。
在过去的几十年中,通过自监督学习 [1] 对 LLM 进行预训练取得显著进展。这些改进得益于更强大的仅用于解码器的 Transformer 开发、数万亿个 token 的使用以及跨多个 GPU 的并行计算。在预训练阶段之后,指令调整被用来指导 LLM 响应人类的查询。尽管取得了这些进展,但仍有一个关键问题尚未解决:LLM 可能会生成不良响应,例如提供如何实施非法活动的指令。为了降低这一风险,必须使 LLM 与人类价值观保持一致。
基于人类反馈的强化学习 (RLHF) [2, 3] 已成为一种用于对齐 LLM 的突破性技术。这种方法促成了 GPT-4 [4]、Claude [5] 和 Gemini [6] 等强大模型的开发。随着 RLHF 的推出,大量研究探索进一步对齐 LLM 的各种方法。然而,目前尚无关于如何将 LLM 与人类偏好相结合的方法的全面综述。
如图所示该综述结构:
奖励模型
奖励模型是一个经过微调的LLM,它根据提示和生成的响应分配分数。奖励模型如图所示:
显式奖励模型 vs. 隐式奖励模型
在RLHF中,研究人员收集一个由三元组组成的大型数据集,包括提示x、期望响应y_w和非期望响应y_l。基于收集到的偏好数据集,通过在预训练的LLM上进行微调,导出显式奖励模型(表示为r_φ(x, y)),为每个提示和响应分配奖励。然后,该奖励模型在RL环境中用于调整LLM策略。相反,隐式奖励模型(表示为 r_θ(x, y))绕过训练显式奖励模型的过程。例如,在 DPO 中,最优奖励模型与强化学习中的最优策略之间建立映射,从而允许在不直接推导奖励模型的情况下对齐 LLM。
逐点奖励模型 vs. 偏好模型
RLHF 中的原始工作推导出一个逐点奖励模型,该模型在给定提示 x 和响应 y 的情况下返回一个奖励分数,即 r(x, y)。给定来自提示的两个逐点奖励分数、一个期望响应和一个非期望响应 r(x, y_w) 和 r(x, y_l),基于 Bradley-Terry (BT) 模型 [38],可以得到期望响应优于非期望响应的概率 P(y_w > y_l|x) = σ(r(x,y_w) − r(x,y_l))。然而,该方法存在不足,因为它无法直接获得成对偏好,也无法适应人类标注的不一致性。为了解决这个问题,提出纳什(Nash)学习来直接建模 P(π > π′) = E_x∼ρ E_y∼π(y|x),y′∼π′(y|x) [P(y > y′|x)]。
响应级奖励 vs. token-级奖励
在以三元组形式收集的原始数据集(即 {x, y_w, y_l})中,奖励是按响应给予的。因此,在 RLHF 和 DPO 中,奖励是在响应级别构建的。然而,在马尔可夫决策过程 [39] 中,奖励是在每次操作后给予的,从而导致状态发生变化。为了实现每次操作后的一致性,引入了token-级奖励模型。
负偏好优化
在 RLHF 数据集中,人类标记期望和非期望响应。近年来,随着 LLM 功能的进步,一些研究人员认为 LLM 可以生成比人类标记者生成的更高质量的期望响应。因此,他们选择仅使用收集的数据集中提示和非期望响应,并使用 LLM 生成期望响应。
反馈
反馈包含偏好以及来自人类或人工智能的二元响应,以成对或列表的形式呈现。这些反馈的示意图如图所示。
偏好反馈与二元反馈
在 RLHF 论文中,收集的是偏好反馈,即 y_w > y_l。然而,后续研究(例如 KTO 和 DRO)表明,收集偏好反馈更具挑战性,因此收集二元反馈更为有利。二元反馈指的是简单的“赞成”(正面),即 y+ 或“反对”(负面),即 y^− 的响应。
成对反馈与列表反馈
在 RLHF 中,收集的是列表反馈。该方法涉及收集给定提示 x 的 K 个不同响应 y_1, y_2, …, y_K,以加快标记过程。然而,这些列表式响应随后被视为 C_K^2 个成对响应。然而,后续研究(例如 LiPO)提出,将列表式偏好视为排序问题比将其视为多个成对偏好更有利。
人工反馈 vs. 人工智能反馈
在 RLHF 中,反馈是从人类那里收集的,人类被要求针对同一提示的多个响应提供偏好。然而,事实证明,这个过程既繁琐又昂贵。随着 LLM 的最新发展,收集人工智能反馈以对齐 LLM 已成为可能。
强化学习
RL 目标包含两个主要部分:1)最大化响应的奖励;2)最小化对齐策略模型 π_θ(y|x) 与初始参考(SFT)模型π_ref(y|x) 的偏差。
基于参考的强化学习与无参考的强化学习
在带人类反馈的强化学习(RLHF)中,强化学习目标的一个关键目标是最小化当前策略(即π_θ)与参考策略(即π_ref)之间的距离。因此,大多数方法都侧重于基于参考的方法。然而,引入参考策略会带来显著的内存负担。为了解决这个问题,人们提出各种方法来避免使用参考策略。例如,SimPO 提出一个不同的目标函数,完全避免了对参考策略的需求。
长度控制强化学习
当使用 LLM 作为评估器时,它们倾向于冗长的响应,即使没有提供任何额外信息 [40]。这种偏差可能会影响 LLM 的对齐。此外,LLM 响应的冗长,可能会增加人类阅读和理解所需的时间。最初的强化学习目标函数并未考虑这个问题,但后续研究(例如 R-DPO 和 SimPO)纳入长度控制的考虑因素,其中 |y| 表示输出响应的长度。
强化学习中的不同发散度
在 RLHF 中,逆 KL 散度,即 DKL,通常用于衡量当前策略 π_θ(y|x) 与参考策略 π_ref(y|x) 之间的距离。然而,KL 散度已被发现会降低响应的多样性。为了解决这个问题,人们开展研究,探索不同发散度量(即 D_f)的影响。
在线策略学习或离线策略学习
在强化学习中,可以使用一种称为在线策略学习的方法在训练期间生成响应。在线策略学习的主要优势在于它从最新版的策略中采样响应。相比之下,离线策略方法依赖于先前生成的响应。虽然离线策略方法可以通过避免在训练期间生成新的响应来节省时间,但它们的缺点是使用的响应可能与当前策略不一致。
优化
LLM 的对齐过程涉及优化。有两个关键子主题:1. 迭代/在线偏好优化 vs. 非迭代/离线偏好优化;2. SFT 和对齐分离 vs. SFT 和对齐合并。这两个子主题的优化图如图所示。
迭代/在线偏好优化 vs. 非迭代/离线偏好优化
当仅使用收集的数据集进行对齐时,该过程被称为非迭代/离线偏好优化。相反,当 1. 人工标记的新数据,或 2. LLM 承担双重角色——生成响应并对其进行评估,迭代/在线偏好优化变得可行。
SFT 与对齐分离 vs. SFT 与对齐合并
在 RLHF 中,SFT 和对齐传统上以顺序分离的方式应用,这可能很繁琐,并且容易导致灾难性遗忘。为了解决这个问题,一些研究,例如 ORPO,提出将 SFT 与对齐集成到一个流程中,以简化微调过程。此外,PAFT 建议同时对 SFT 和对齐进行 LLM 微调,然后合并结果。
RLHF/PPO
LLM 在来自不同来源的海量语料库上进行预训练,这本身就无法确保数据集的质量。此外,LLM 的主要目标是预测下一个 token,这与“以有益且安全的方式遵循用户指令”的目标相悖 [2]。因此,LLM 可能会产生不真实、有害或对用户无益的输出。本质上,这些模型与用户的意图并不一致。RLHF/PPO 的主要目标是通过使用人工反馈对语言模型进行微调,使语言模型在广泛的任务范围内与用户意图保持一致。
InstructGPT
OpenAI 的作者们提出 InstructGPT,它为 ChatGPT 和 GPT-4 [4] 等训练模型奠定了基础。引入人类偏好解决了评估 LLM 生成响应的挑战。传统的评估指标,例如 BLEU [41]、ROUGE [42] 和 BERTScore [43],通常用于评估 LLM,但它们无法保证与人类偏好的一致性。为了解决这个问题,研究人员直接将人类偏好融入 LLM 中,以提升其性能。这个过程通常包含两个主要步骤:奖励模型学习和强化学习策略训练。
在奖励模型学习阶段,使用提示和成对响应(具体来说,通过 BT 模型 [38],人类标记一个期望响应 y_w 和一个不期望响应 y_l)来训练一个显式的逐点奖励函数。随后,进入强化学习策略训练阶段,其中 LLM 和预训练的奖励模型分别在强化学习框架中充当智体和环境。
为了训练 InstructGPT,使用三个数据集:
- SFT 数据集:包含用于训练 SFT 模型的标注员演示。
- RM 数据集:包含标注员对模型输出的排名,用于训练 RM。
- PPO 数据集:包含用作 RLHF 微调输入的提示。尽管任务复杂,但标注员之间的一致性率仍然非常高。训练标注员之间的一致性率为 72.6 ± 1.5%,而保留标注员的一致性率为 77.3 ± 1.3%。
训练了一个 6B 的奖励模型,用于训练不同规模的 RLHF/PPO 策略模型。还尝试了更大的 175B 奖励模型 [44]。虽然较大的 RM 表现出较低的验证损失,但它们的训练过程不稳定,并且显著增加了 RLHF/PPO 的计算要求。由于相同的输入提示会生成 K 个输出,因此这些输出是相关的。解决这个问题的一个直接方法是随机打乱并训练它们。然而,这种方法会导致过拟合。为了缓解这个问题,将所有比较样本作为一批样本进行训练,从而改善过拟合问题。该方法的一个局限性在于它没有考虑答案之间的相对分数;也就是说,分数相近或分数差异很大的答案对会被同等对待。后续研究也考虑了这个问题 [28]。
训练后的 InstructGPT 会从三个角度进行评估:有用性、诚实性和危害性。“有用性”是指模型应该遵循指令,并从少量提示或其他可解释的模式推断出意图,并由人工标注员进行评估。“诚实性”指的是两个指标:(1) 评估模型在闭域任务中捏造信息的倾向;(2) 在 TruthfulQA 基准测试中的表现 [45]。“危害性”是指标注员评估输出在客服助理的语境下是否不合适。作者声称,从人工评估来看,“尽管参数数量少 100 倍,但拥有 13 亿参数的 InstructGPT 模型的输出优于拥有 175 亿参数的 GPT-3 的输出”。值得注意的是,InstructGPT 在真实性和毒性任务上的表现优于 GPT-3,这对于对齐至关重要。PPO-ptx 在各种 NLP 基准测试中也表现出性能下降的趋势。
RLHF - Anthropic
Anthropic 也对同一主题进行了研究 [3]。首先,OpenAI 通过根据一致率或其他直接的标签质量指标筛选标注者来筛选标注者,最终实现约 76% 标注者之间的一致率。相比之下,Anthropic 假设,那些表现出强大写作能力并与 AI 进行更具启发性讨论的众包工作者,可能能够更好地判断哪些 AI 的回复最“有帮助”和“无害”。然而,他们观察到 Anthropic 研究人员与其众包工作者之间的平均一致率较低(约为 63%)。这一比较强调了实施筛选任务以识别高质量标注者的重要性。
此外,数据收集方法也存在显著差异。作者关注两个主要指标:“无害”和“有帮助”,其中“有帮助”包含“诚实”。这些指标指导两个不同数据集的创建。对于“有帮助”数据集,众包工作者使用 LLM 来辅助生成回复。相反,“无害”数据集则采用了不同的方法。在这里,众包工作者对语言模型进行对抗性探测或“红队测试”,以引发有害反应,例如诱导人工智能使用恶意语言。“有帮助”和“无害”这两个指标通常相互对立。整合这些数据集进行偏好建模可以提高这两个指标的性能,尤其是在偏好模型足够大的情况下。与 OpenAI 的方法一致,偏好强度信息被忽略,所有偏好对都被平等对待。
OpenAI 发现,RLHF 有助于对齐,但可能会降低某些 NLP 基准测试的性能,这种现象被称为“对齐税”。其 InstructGPT 模型拥有 13 亿个参数。相比之下,Anthropic 的研究人员评估了七种不同的模型,这些模型的大小从 1300 万到 5200 亿不等,呈几何级数递增,增量约为 4 倍。结论是,对齐会给较小的模型带来负担,而给较大的模型带来好处,尤其是那些参数规模为 13B 和 52B 的模型。鉴于这种对齐优势,还尝试了结合编码技术数据集来增强 LLM 的功能。在 OpenAI 的 RLHF 方法中,引入 PPO 和 PPO-ptx,其中 PPO-ptx 旨在减轻 NLP 基准测试中的对齐负担。Anthropic 的 RLHF 研究结果表明,仅使用 PPO 就能为 NLP 下游任务中的较大模型带来对齐奖励。还可确定 RL 策略训练中 KL 散度的最佳参数为 β = 0.001。
在训练奖励模型的过程中,奖励模型准确率与模型和数据集的大小之间存在近似对数线性关系。在 RL 策略训练中,较大的奖励模型比较小的奖励模型表现出更高的鲁棒性。然后,将偏好数据分为两半:训练部分和测试部分。在每半部分分别训练单独的奖励模型,分别称为训练 RM 和测试 RM。RLHF 策略使用训练 RM 进行训练,并使用测试 RM 进行评估。在评估过程中,“训练 RM 和测试 RM 的得分在训练初期非常接近,但最终出现分歧,测试 RM 的得分较低。” 这导致研究人员得出结论,奖励模型对训练数据存在过拟合:“奖励模型在较高奖励下鲁棒性较差,更容易被利用”。然而,当使用较大的 RM 时,这种过拟合问题并没有显著地转移到 RLHF 策略上。此外,在RL 策略训练过程中,研究人员发现奖励和强化学习策略-参考策略 KL 发散度之间存在线性趋势。随后,还采用了分布外 (OOD) 技术来检测和拒绝不良请求。最后,探索一种在线训练模式,其中奖励模型和 RL 策略都可以每周使用通过与众包工作者互动获得的新人类偏好数据进行更新。
在线/迭代 RLHF
将 LLM 与人类偏好相一致的 RLHF 技术传统上是离线方法。在 RLHF 范式中,首先准备一个静态数据集,即形式为 D = {(x, y_w, y_l)} 的偏好数据集,其中 y_w 是在提示 x 下优先于 y_l 的响应,然后基于 BT 模型 [38] 训练奖励函数 r_φ(x, y),然后利用 RLHF/PPO 算法优化 LLM 策略,以优化奖励模型的约束版 ( r_φ(x, y) − β log( π_θ(y|x)/π_ref(y|x) ) ),该模型控制累积奖励以及策略 π_θ(y|x) 与初始 SFT 策略 π_ref(y|x) 的偏差。在直接偏好优化(DPO) 等跳过奖励函数建模的方法中,静态数据集被用来近似最优策略:log { σ [ β log(π_θ (y_w |x)/π_ref (y_w |x) − β log(π_θ (y_l |x)/ π_ref (y_l |x) ] }。
使用离线数据集训练 RLHF/PPO 的缺点在于,静态数据集中的响应 (y_w , y_l ) 本身来自其他 LLM 策略,而偏好 y_w > y_l 则来自某些预言机,例如人类或其他 AI智体。至关重要的是,由于偏好数据已经固定,因此奖励模型的训练过程无法进一步查询偏好预言机。然而,有限的数据集 D 可能导致对分布内(ID)数据的奖励过度优化,因为有限的数据集只是提示-响应对整体的一个小样本。由此产生的策略模型在面对分布外(OOD)的数据时通常表现不佳数据 [8]。
为了处理分布外的数据,需要不断微调策略,即从中间策略生成针对新提示的响应对,从预言机获取偏好反馈并将其反馈给策略,即迭代/在线学习。在实践中,迭代学习分为两个部分 [7]:
- 偏好预言机训练:由于难以/不可能持续获得新数据的专家级人类偏好反馈,因此基于大量多样化的离线偏好数据集训练一个偏好模型,即不同的 LLM。该模型在被赋予新的(提示,响应对)时,可以对每个(提示,响应)进行评分,偏好的响应得分更高。
- 迭代策略优化:首先,基于预训练的 LLM(π_ref)对基础策略模型进行指令微调。然后,使用开发和探索框架不断微调策略。在探索阶段,当前的主策略会针对每个提示生成一个响应,而增强器策略则会针对同一提示生成另一个响应,并根据上一步的偏好预言机获取的响应的偏好标签进行处理。增强器策略的作用是探索相对于主策略而言响应不确定性更高的空间。在开发阶段,使用 RLHF/PPO 或 DPO 技术对新的偏好数据进行更新当前的主策略。最后,重复该过程以进一步提升主 LLM 策略的质量。在实践中,增强器策略可以通过启发式方法获得。常用的启发式方法包括调整主策略的温度以创建增强器策略,或拒绝抽样,其中主策略生成多个响应,并根据偏好预言机对这些响应进行排序,最终认为最佳和最差响应分别来自主策略和增强器策略。
[7] 中的显著实证评估表明,通过在线 RL 训练的策略结果优于离线 RL。
RLAIF
强化学习人工智能反馈 (RLAIF) 框架的开发,旨在降低获取人类偏好数据集所需的巨额成本。此外,随着 LLM 能力的不断提升,这种方法能够收集更准确的人工智能偏好数据集,从而增强 LLM 的一致性。
RLAIF-Anthropic
在 RLHF 的基础工作基础上,引入一种名为 RLAIF 的新方法 [9]。该方法包含两个主要阶段:1. 通过“宪法(constitution)”指导下的批判和修订进行监督学习;2. RLAIF。
在初始阶段,作者采用思维链 (CoT) 框架 [46],使用基于特定原则的指令来识别无害数据中的潜在危害,称为“宪法人工智能 (CAI)”。对于 CAI,LLM 充当批判者,提供修订。研究结果表明,自监督的批判和修订可以超越人类的表现。在此过程中,有用性得分下降,而无害性和有用性(HH)的综合得分则有所提高。此外,增加修改次数被证明是有利的,因为它可以识别和纠正更多有害的回复。重要的是,批评过程被发现至关重要,批评-修改方法的效果优于单独的修改过程。在批评-修改阶段之后,将SFT应用于LLM,并使用批评-修改阶段修改后的回复。
在第二阶段,用 RLAIF 替代 RLHF。在初始阶段,人工注释者标记有用性数据,而人工智能系统则标记无害性数据,如前所述。此外,采用不同的宪法和CoT推理原则来对齐LLM,旨在在保持有用性的同时最大限度地减少伤害。
本研究利用人工智能收集偏好数据,证明了自我监督的人工智能对齐的可行性。然而,由于确保无害性的任务比确保有用性的任务简单得多,因此它仅限于无害性而非有用性。
RLAIF-Google
基于 Anthropic 的 RLAIF 工作,先前的研究尚未直接比较人类与人工智能反馈的有效性,值得进一步研究 [10]。在人工智能反馈收集过程中,创建一个结构化的提示,包括:1. 序言;2. 少量样本示例(可选);3. 待注释样本;4. 结尾。生成人工智能反馈的评估分为两步:首先,指令的所有四个组成部分与 CoT 相结合,用于生成来自 LLM 的回复。在后续阶段,将 LLM 的回复(附加“首选摘要=”)发送回 LLM,以生成偏好概率,例如“摘要 1=0.6,摘要 2=0.4”。为了减轻位置偏差,两种回答的顺序被交替,并计算平均分数。
在 RLAIF 过程中,采用两种策略:1. “蒸馏的 RLAIF”,它遵循传统的 RLHF 方法,利用偏好来训练奖励模型,然后将其用于训练 LLM 策略;2. “直接的 RLAIF”,它利用 LLM 反馈,促使其直接输出评估分数作为强化学习中策略训练的信号。
最后,在评估过程中,采用了三个关键指标:1. AI-标注员一致性:AI 与人类标注员之间的一致性程度;2. 胜率:在比较两个候选答案时,人类标注员选择某个答案的可能性;3. 无害率:被人类评估员视为无害的答案的百分比。
实验在三个数据集上进行:1. Reddit TL;DR(摘要)[47],2. OpenAI 的人类偏好(有帮助)[47],3. 人类偏好(人为的有帮助且无害的人类偏好)[3]。PaLM 2 被用作对齐的 LLM [48]。
对摘要任务得到一些观察。RLHF 策略有时会产生幻觉,而 RLAIF 策略则不会,并且 RLAIF 生成的摘要有时不如 RLHF 连贯。需要进行更系统的分析才能了解这些模式是否在大规模场景下存在。
主要结论如下:首先,RLAIF 在摘要和有帮助的对话生成任务中的表现与 RLHF 相当,但在无害任务中的表现优于 RLHF。其次,即使 LLM 标注器与策略规模相同,RLAIF 也展现出增强 SFT 策略的能力。最后,“直接的RLHF”在对齐方面超越了“蒸馏的 RLHF”。
直接人类偏好优化
传统的 RLHF 方法通常涉及优化源自人类偏好的奖励函数。虽然这种方法有效,但它可能会带来一些挑战,例如增加计算复杂度,以及在估计和优化奖励时产生偏差-方差权衡 [49]。最近的研究探索一些替代方法,旨在直接基于人类偏好优化 LLM 策略,而无需依赖标量奖励信号。
这些方法旨在简化对齐过程,降低计算开销,并通过更直接地处理偏好数据来实现更稳健的优化。通过将问题定义为偏好优化而非奖励估计和最大化,这些方法为将语言模型与人类判断对齐提供了不同的视角。
SliC-HF
本研究引入基于人类反馈的序列似然标定 (SLiC-HF),通过采用带正则化的最大边际排序损失,使 LLM 与人类偏好保持一致。
其有两种主要变型:SLiC-HF-direct 和 SLiC-HF-sample-rank。SLiC-HF-direct 直接使用人类偏好反馈数据来定义期望响应 yw 和非期望响应 yl。相比之下,SLiC-HF-sample-rank 从 SFT 模型生成多个响应,然后使用单独的排名或奖励模型从这些生成的响应中确定 y_w 和 y_l。SLiC-HF-sample-rank 变型确保训练样本来自模型的当前输出分布,与使用离线策略人类偏好数据相比,这可能导致更稳定、更有效的学习。SLiC-HF-sample-rank 收敛性更强。
研究表明,SLiC-HF 可以实现与 RLHF/PPO 方法相当或更优的性能,同时使用的计算资源显著减少,即内存占用仅为 PPO 训练范式的 0.25 倍。在 Reddit TL;DR 摘要任务 [3] 中,使用 SLiC-HF 训练的 T5-Large(7.7 亿个参数)[50] 模型的表现优于使用 RLHF/PPO 训练的 60 亿个参数模型。这一结果表明,SLiC-HF 代表使 LLM 与人类偏好相符的一个有前景的方向,能够在性能、计算效率和实现简易性之间取得平衡。
RSO
拒绝抽样优化 (RSO) [51] 通过统计拒绝抽样来解决训练数据与最优策略预期数据之间的分布不匹配问题,从而解决 SLiC 和 DPO 等离线偏好优化方法的局限性。
在 TL;DR 摘要 [47] 和 Anthropic HH 对话数据集 [3] 上进行实验。T5-large 模型 (770M) 初始化为 SFT,而 T5-XXL (11B) 则用作奖励模型 [52]。评估结果表明,RSO 在包括人工评估在内的多项指标上均超越 SLiC 和 DPO 等先前方法。RSO 还展现出对更大规模模型的更好可规模化,并提升跨任务泛化能力。
RSO 提供一种更具原则性的方法来生成近似于在线策略强化学习 (on-policy RL) 的训练数据。其统一的框架和智能采样策略也可以成为其他离线策略训练方法的催化剂。
直接偏好优化 (DPO)
RLHL/PPO 要求首先使用偏好数据集训练奖励模型,然后使用预训练的奖励模型作为环境,训练强化学习 (RL) 策略。这种分叉的训练过程需要严密的监督,包括:需要大量计算资源来在内存中存储多个模型(奖励、价值、策略、参考);需要收集用于训练奖励模型和强化学习 (RL) 策略的数据,并监控过拟合情况。为了应对这些挑战,直接偏好优化 (DPO) 应运而生 [12]。
DPO的梯度最大化 y_w 的似然值,同时最小化 y_l 的似然。同时,其引入一个加权项 σ(r_θ(x, y_l) − r_θ(x, y_w)),当 y_w 和 y_l 的奖励差值趋近于负无穷时,施加更大的惩罚。随着差值增大并趋近于正无穷,惩罚逐渐减小。这种惩罚是合理的,因为当 y_l 的奖励与 y_w 相近或大于 y_w 时,应该施加更大的惩罚。相反,如果 y_w 的奖励显著超过 y_l,则只需进行最小程度的修改,梯度较小也是合理的。
使用 DPO 进行训练后,无需生成中间奖励函数,即可直接获得最优策略,从而简化 RLHF 的训练过程。总而言之,DPO 以封闭的形式促进相应最优策略的提取,仅使用简单的分类损失即可推导出标准 RLHF 问题的解。
然而,DPO 也存在一些局限性。在 OpenAI 使用的 RLHF 方法中,奖励模型保持不变,从而促进人工标注。对于相关任务的进一步训练,只需输入新的提示,由 LLM 生成响应,并从现有奖励模型中获得奖励。这种方法在灵活性和可重用性方面具有显著优势。例如,假设一位用户已经构建一个英语摘要模型和相应的奖励模型。为了将其扩展到西班牙语文本,可以将英语奖励模型重用为西班牙语奖励的初始值。相比之下,DPO 需要新的偏好数据进行进一步优化,而这需要细致的人工标注,因此获取这些数据可能具有挑战性。同样的例子,DPO 需要收集一组全新的西班牙语摘要偏好数据,包括每个文本的多个西班牙语摘要,并由双语人工标注人员进行比较和排序。与为 RLHF 方法生成新的西班牙语提示相比,这个过程耗费的资源要多得多。
此外,DPO 的损失函数仅侧重于最大化期望响应和非期望响应之间的差异。基于此损失函数,可能会无意中减少期望响应的奖励或增加非期望响应的奖励。尽管说如果两个奖励函数的差异仅取决于输入提示,则它们是等效的,但可能仍然希望 y_w 的奖励增加,y_l 的奖励减少。假设一个模型对提示生成了一个响应,而相应的奖励相对较低。在这种情况下,确定响应的质量就变得具有挑战性。结果可能是,尽管隐式奖励分数较低,但输出质量很高。在这种情况下,必须生成多个输出,计算它们的奖励分数,然后选择最佳解决方案。
最近的研究还表明,DPO 对基础模型输出和偏好数据之间的分布变化特别敏感 [53]。当基础模型的训练数据与偏好数据集不匹配时,这种敏感性可能会导致性能不佳。为了解决这个问题,提出迭代式 DPO 方法,该方法使用最新的策略模型生成新的响应,并在每次迭代中使用评价(可以是单独的奖励模型,也可以是在自奖励设置下的相同策略网络)进行偏好标记。这种方法有助于缓解分布偏移问题,并可能提升 DPO 的性能。
最后,DPO 论文中的测试主要针对简单案例进行,包括用于受控情绪生成的 IMDB 数据集 [54] 和用于摘要的 Reddit 数据集 [47]。为了评估 DPO 的有效性,应该评估更复杂的下游 NLP 任务,尤其是考虑到分布偏移敏感性和迭代式 DPO 的潜在优势。
DPOP:Smaug
DPO 损失函数旨在最大化期望答案和非期望答案之间的差异。然而,这种方法可能存在问题。只要期望答案和非期望答案之间的差异不断扩大,它就可能导致两者的奖励同时增加或减少。理论证明,这两种答案的奖励可以同时减少 [13]。这种现象在编辑(汉明)距离较小的数据中尤为明显。例如,“2+2=4”和“2+3=4”的编辑距离为 1。为了解决 DPO 在小编辑距离场景下的局限性,创建三个数据集:改良版 ARC [55]、Hellaswag [56] 和 Metamath [57],其中包含更多小编辑距离的示例。
DPO-positive (DPOP) 可以有效地防止期望响应的奖励减少。这是因为除了标准DPO损失之外,倾向的生成 logits也受到激励,优于参考模型。基于修订后的损失函数,在 Huggingface LLM 排行榜和 MTBench [58]上训练并评估Smaug-7B、34B和72B模型。事实上,当时 70B 规模的模型在 Huggingface LLM 排行榜上取得最佳性能。
β-DPO
虽然 DPO 在使 LLM 与人类偏好匹配方面展现出良好的前景,但其性能对其权衡参数 β 的微调(根据偏好数据的质量)较为敏感。这种敏感性可以归因于两个因素:1. β 的最优值会随着偏好数据的质量而变化,因此需要采用动态方法;2. 现实世界的数据集通常包含可能扭曲优化过程的异常值。为了避免这种开销,具有动态 β 的 DPO [14] 引入一个框架,可以根据底层偏好数据在批次级动态标定参数 β。
在 Anthropic HH [3] 和 Reddit TL;DR 摘要 [47] 任务上进行的实证评估表明,β-DPO 在不同模型规模和采样温度下的表现始终优于标准 DPO。例如,在 Anthropic HH 数据集上,β-DPO 在包括 Pythia-410M、1.4B 和 2.8B [59] 在内的各种规模的模型上都取得了超过 10% 的提升。 该方法的一个关键方面是考虑成对数据的质量,将其定义为“低差距”或“高差距”。低差距表示选择和拒绝的响应非常相似的情况,通常意味着高质量且信息丰富的配对。相反,高差距是指差异较大的配对,这意味着数据质量较低。
在 Anthropic HH 数据集上使用 Pythia-1.4B 进行的实验揭示了一个明显的趋势:对于低差距数据,较高的 β 会降低胜率,而对于高差距数据,较高的 β 会提高性能。这一观察凸显了根据数据质量调整 β 值的必要性,尤其是在存在异常值的情况下。 然而,未来的研究方向和局限性包括:探索 β-DPO 在自对弈场景中的应用;开发更复杂的评估指标;研究其对超大型模型的可扩展性;以及实现参数的自动化调优。
IPO
Azar [15] 发现 RLHF 和 DPO 容易出现过拟合,并引入身份偏好优化 (IPO) 来解决这个问题。其强调 RLHF 背后的两个关键假设:1. “成对偏好可以用逐点奖励替代”,2. “基于这些逐点奖励训练的奖励模型可以从收集的数据推广到策略采样的分布外数据”。在 DPO 中,可以通过直接从数据中学习策略来规避第二个假设,而无需中间奖励函数,从而保持第一个假设不变。具体来说,在使用 BT 模型将成对偏好替换为逐点奖励模型时,可能会出现一些挑战。
其可以直接优化损失函数获得最优策略,从而有效缓解过拟合问题。实验基于一个基本的数学用例进行,结果表明,当惩罚系数 β 足够大时,IPO 方法能够成功避免过拟合,而 DPO 方法则容易出现过拟合。不过,通过添加噪声对 DPO 方法进行改进,有望充分解决这个问题。最后,需要在下游 NLP 任务中进一步验证 IPO方法的优势。
sDPO
在 DPO 的背景下,参考模型对于保持 SFT 和下游任务的性能至关重要。假设参考模型是 DPO 的下限,改进的参考模型可以为 DPO 训练提供更优的下限 [16]。在此前提下,引入逐步 DPO (sDPO),该方法对偏好数据集进行分割并逐步应用。在每个阶段都应用 DPO,最终得到的部分对齐模型成为新的参考模型。
最初,使用 SOLAR 10.7B [60] 作为参考模型。随后,在 sDPO 过程中使用两个数据集:OpenOrca(约 12,000 个样本)[61] 和 Ultrafeedback Cleaned(约 60,000 个样本)[62],其中第一步使用 OpenOrca,第二步使用 Ultrafeedback。用四个任务,即 ARC [55]、HellaSWAG [56]、MMLU [63] 和 TruthfulQA [45],它们的得分超过 DPO。相比之下,Winogrande [64] 和 GSM8K [65] 被排除在外,因为它们本质上是生成任务,与之前考虑的多项选择任务不同。然而,这并不是排除这些任务的充分理由。这引出了一个问题:sDPO 会对生成任务产生负面影响吗?需要进一步的实验来探索这个问题。
本研究使用了两个数据集,分别对每个数据集进行逐步比对。假设只有一个数据集可用,对该数据集进行分段并依次对每个分段应用 DPO 是否能获得类似的效果?此外,即使有两个数据集,将每个数据集的前50%用于初始比对步骤,将剩余的50%用于后续比对阶段,是否更有利?最后,灾难性遗忘是一个众所周知的问题。将部分先前的逐步比对数据与新数据混合,是否有助于缓解这个问题?
广义倾向优化 (GPO)
略
token 级 DPO
在 DPO 中,奖励被分配给提示和响应。相反,在 MDP 中,奖励是分配给每个单独动作的。
DPO:从 r 到 Q
DPO 被概念化为老虎机问题,而非 token 级 MDP [39],整个响应被视为接收奖励的单臂。在 [17] 中,作者证明了 DPO 能够执行 token 级信用分配。在token 级 MDP 的背景下,它被定义为 M = (S, A, f, r, ρ_0),其中 S 表示状态空间,A 表示动作空间,f(s|a) 描述给定动作的状态转换,r 表示奖励函数,ρ_0 表示初始状态分布。 token 级 MDP 是在 RL 的最大熵设置框架内制定的。
大量实验证明 DPO 在 token 级 MDP中的有效性。最初,利用 token 级奖励来识别给定提示 x 的LLM响应 y 中的错误修改。然后,通过使用带有 token 级奖励的集束搜索,生成更高质量的响应,结果表明增加集束大小可以显著提高响应质量。最后要说,在最大熵强化学习中,当使用SFT微调的模型作为参考模型时,期望和非期望响应的隐式奖励都会减少。
TDPO
在DPO过程中,LLM的生成多样性会下降,并且与偏好响应相比,偏好较低的响应 KL 散度增长更快。为此,提出token-级 DPO(TDPO)来解决这些问题[18]。在原始 DPO 中,应用了反向 KL 散度,而在 token-级 DPO中,应用顺序正向 KL 散度。
在实验中,以 GPT-2 Large [67] 作为基础模型,并在 IMDB [54]、Anthropic HH [3] 和 MT-bench [58] 数据集上进行评估。实验表明,TDPO(尤其是在使用停止梯度的情况下)的表现优于 DPO。
迭代/在线 DPO
在 DPO 中,所有可用的偏好数据集都用于对齐 LLM。为了持续改进 LLM,需要实现迭代/在线 DPO,这引出一个问题:如何高效地收集新的偏好数据集。
迭代/在线 DPO:自奖励语言模型
DPO 面临的一个重大挑战是获取新的人类偏好数据非常困难,而且成本高昂。迭代/在线 DPO 的概念利用 LLM 来根据提示生成响应,并以类似于人类标注员的方式评估这些响应 [19]。
“为了打造超人智体,未来的模型需要超人的反馈来提供足够的训练信号。” 基于这一断言,使用 LLM 作为评估提示响应的评判者。此外,目标是“开发一个能够在训练过程中处理所有所需能力的智体,而不是将它们拆分成不同的模型”。因此,同一个 LLM 被用于“指令遵循:给定一个描述用户请求的提示,生成高质量、有用(且无害)的响应的能力”和“自我指令创建:生成和评估新的指令遵循示例以添加到自身训练集的能力”。
在“自我指令创建”阶段,生成 K 个候选响应,LLM 作为评判者来评估这 K 个响应。评估基于五个指标:相关性、覆盖范围、实用性、清晰度和专业性,分数最高为 5 分。得分最高的响应被选为首选响应,而得分最低的响应则被视为非首选响应。
在“指令遵循”训练期间,使用 DPO 训练 LLM,使其与生成的偏好数据集保持一致。
使用 Llama 2 70B 作为预训练的 LLM 进行大量实验 [68]。做三次自我奖励的训练迭代。本研究的主要局限性在于缺乏确定迭代最佳终止点的方法。它既没有解释为什么三次迭代就足够,也没有说明为什么额外的迭代可能不会带来更多益处。模型 M1、M2 和 M3 分别在 DPO 训练一次、两次和三次迭代后得到。在评估中,M2 的胜率为 55.5%,而 M1 的胜率为 11.7%。另一方面,M3 和 M2 的胜率分别为 47.7% 和 12.5%。
在 AlpacaEval 中也观察到类似的趋势,证明迭代/在线训练的优势。在 AlpacaEval [40] 中,进行包括“健康和专业”在内的各种子任务。总体而言,LLM 在不同任务上的表现会随着迭代次数的增加而提高,尤其是在稳定性方面。模型 M1 和 M2 在不同任务中表现出更大的可变性,而 M3 则表现出更高的鲁棒性。
MT-Bench [58] 上的结果有所提升,但在 NLP 基准上的表现却有所下降。这种下降是由于训练数据基于 Open Assistant 的提示,而这些提示可能与 NLP 基准中的任务无关。然而,这种差异是否表明存在过拟合,而非数据集的分布不均,尤其是在 LLM 对大型文本语料库进行大量预训练的情况下。
值得注意的是,NLP 基准上的表现会随迭代次数的增加而下降。这引发人们的担忧,即某些任务的改进是否以牺牲其他任务的能力为代价。最后,评估奖励模型,大多数指标都随着迭代次数的增加而有所提升,“5 个最佳百分比”指标除外,该指标最初有所上升,随后有所下降,但仍然高于初始值。这进一步强调确定终止迭代/在线 DPO 的最佳点至关重要。
迭代/在线 DPO:CRINGE
基于二元反馈,对比迭代负生成 (CRINGE) 损失是一种很有前景的方案 [69]。CRINGE 损失旨在分别处理正和负响应。对于正响应(分别表示为 x+ 和 y+),其处理方式与 SFT 类似。对于负响应(分别表示为 x− 和 y−),CRINGE 损失将序列中每个负向 token y_t− 与一个正向 token 进行对比。令 s_θ,t 表示对应于 token t 的模型输出分数(最终的 Softmax 输入)。首先,从所有分数 s_θ,t 中选出前 k 个分数 {s_θ,t[1], …, s_θ,t[k]},排除负 token s_θ,t[y_t−]。接下来,根据 Softmax 函数构建的分类分布,对这前 k 个得分进行采样,即 s^∗_θ,t ∼Softmax(s_θ,t[1],…,s_θ,t[k])。例如,当 k = 4 时,前 k 个 tokens 可能是“放电”、“充电”、“吸收”和“反射”。如果 s_θ,t[y_t^−] 为“放电”,则根据剩余三个候选 tokens(即“充电”、“吸收”和“反射”)的得分,应用 Softmax 函数并进行相应的采样。
鉴于最有效的对齐是通过偏好对齐实现的,将 CRINGE 从二元反馈扩展到偏好反馈是一个有趣的前景 [20]。
最后,将成对 CRINGE 损失与迭代/在线流程相结合,可进一步提升质量。构建 4个生成,并根据奖励函数的评估,将最佳训练集和最差训练集作为一对,用于在下一轮迭代中改进 LLM。
在实验中,使用 AlpacaFarm [70] 数据集在 GPT-2 [67] 上测试该方法。结果表明,成对 CRINGE 损失减少推理过程中的重复,并提高生成质量。 Pairwise CRINGE 的表现优于 Binary CRINGE、PPO 和 DPO,而迭代/在线 Pairwise CRINGE 的表现甚至更佳。
二元反馈
事实证明,收集偏好反馈比收集二元反馈(例如“赞成”和“反对”)更具挑战性,而二元反馈有助于扩展对齐过程。后续研究 KTO 和 DRO 专注于利用二元反馈来对齐 LLM。
SFT和对齐合并
先前的研究主要集中在顺序应用SFT和对齐,这种方法被证明非常费力,并会导致灾难性遗忘。后续研究要么将这两个过程合并为一个步骤,要么并行进行微调,最后将两个模型合并。
长度控制 DPO 和无参考 DPO
先前的研究表明,LLM 经常产生过于冗长的输出。为了解决这个问题,R-DPO 和 SimPO 致力于在不影响 LLM 性能的情况下生成长度控制的响应。此外,DPO 需要一个参考策略来确保对齐模型不会与参考模型出现显著偏差。相比之下,SimPO 和 RLOO 提出一些方法,可以在保持 LLM 有效性的同时消除对参考模型的需求。
列表偏好优化
先前关于 PPO 或 DPO 的研究主要集中在成对偏好上,而 RLHF 的研究则收集列表偏好以加快数据收集过程,然后将其转换为成对偏好。尽管如此,直接使用列表数据集进行偏好优化以提高 LLM 的性能仍然是可行的。
负偏好优化
这些研究都基于一个共同的前提:当前一代的 LLM 在翻译和摘要等任务上的表现已经超越了人类。因此,将 LLM 的输出视为期望响应,而不是依赖人工标记的数据作为偏好响应,是更有利的。相反,非期望响应仍然可以通过称为负偏好优化 (NPO) 的过程来利用 LLM 进行对齐。
纳什学习
先前的研究使用逐点奖励和 BT 模型来推导成对偏好。然而,这种方法无法与直接的成对偏好建模相提并论,并且无法解决成对偏好中的不一致性问题。为了克服这些局限性,一些研究引入纳什学习方法。
不同方法的比较
已有多项研究集中于比较这些不同的方法。综合这些研究可以阐明每种方法各自的优缺点。
评估隐式奖励算法 (DPO) 及其变型
对隐式奖励模型(即无强化学习算法,包括 DPO、KTO、IPO 和 CPO)进行全面的评估,评估范围涵盖推理、数学问题解决、真实性、问答和多任务理解等一系列任务。这些评估在三种不同的场景下进行:1)微调监督微调 (SFT) 模型,2)微调预训练模型,以及 3)微调指令模型 [96]。研究结果表明,KTO 在大多数基准测试中始终优于其他对齐方法。此外,研究还表明,对齐方法并未显著提升推理和问答任务的性能,但确实显著提高了数学问题解决的性能。数据量起着至关重要的作用,对齐方法在较小的数据子集上表现出最佳性能。此外,研究还发现,KTO 和 CPO 可以有效地绕过 SFT 阶段,直接进入对齐阶段,而不会影响性能。相比之下,当直接应用对齐阶段,绕过 SFT 阶段时,DPO 和 IPO 的性能会显著下降。
在 LLM 对齐方面,DPO 是否优于 PPO?
DPO 可能存在固有的局限性,可能会生成有偏差的解,并由于分布偏移而导致性能下降 [97]。DPO 倾向于训练偏向未见响应(尤其是分布外的样本)的策略。而迭代/在线 DPO 通过广泛探索响应空间并持续更新参考模型,可以缓解这一问题。相比之下,RLHF/PPO 通过优势归一化、大批量以及对参考模型使用指数移动平均线来应对这些挑战。最终,研究结果表明,PPO 的性能优于迭代/在线 DPO,而后者又优于标准 DPO。