Axi's Blog

Back

RL 学习笔记(14):基于人类反馈的强化学习 (RLHF)Blur image

本内容暂时为 PPT 转述,后续会进行修编

第 16 讲:基于人类反馈的强化学习 (RLHF)#

一、大模型概述 (Overview of Large Models)#

  • 发展历程 (Page 3)
    • 大型语言模型 (Large Language Models, LLM) 的发展经历了从 GPT-1 到 GPT-4 的演进。
    • 关键技术包括 Transformer 架构、生成式预训练、模型规模扩展、代码预训练、上下文学习 (In-context Learning)、指令遵循 (Instruction Following) 和人类对齐 (Human Alignment) 等。
    • ChatGPT 和 GPT-4 是重要的里程碑,展示了强大的对话和推理能力。
  • LLM 训练流程 (Page 4):通常包含两个主要阶段:
    1. 预训练 (Pre-training):在大规模无标注文本数据上进行无监督学习(通常是预测下一个词元),构建基础语言模型 (Base LLM),使其掌握语言的统计规律和基础认知能力。
    2. 后训练 (Post-training) / 对齐 (Alignment):对预训练模型进行微调,使其能力与人类的指令和价值观对齐。主要包括:
      • 有监督微调 (Supervised Fine-tuning, SFT):使用高质量的“指令-回答”对数据进行微调,让模型学会遵循指令。
      • 奖励建模 (Reward Modeling, RM):训练一个模型来预测人类对不同模型输出的偏好程度。
      • 强化学习 (Reinforcement Learning, RL):使用奖励模型作为反馈信号,通过 RL 算法(如 PPO)进一步微调模型,使其生成更符合人类偏好的内容。
  • 指令微调 (Instruction Fine-tuning / SFT) (Page 5)
    • 使用包含任务描述(指令)、可选输入、对应输出以及少量示例(可选)的格式化实例集合来微调预训练 LLM。
    • 目的是提高模型理解和遵循指令的能力,并泛化到未见过的任务。
    • 数据来源可以是现有的 NLP 数据集、人工编写的日常对话、通过 API 收集的数据或模型自己生成的数据(合成数据)。
    • 参数高效微调 (Parameter-Efficient Fine-tuning, PEFT):如 LoRA 等技术可以在只训练少量参数的情况下达到接近全量微调的效果。
  • 人类对齐 (Human Alignment) (Page 6)
    • 目标:使 LLM 的行为符合人类的价值观和意图。
    • 3H 原则 (OpenAI)
      • 有用性 (Helpfulness):理解上下文,提供有用的信息,具有创造性和多样性。
      • 真实性 (Honesty):提供真实客观的信息,避免误导。
      • 无害性 (Harmlessness):避免生成有害或负面内容。
    • 更广泛标准:行为对齐、意图对齐、道德对齐。
    • 挑战:人类价值观复杂、主观且难以形式化建模。

二、基于人类反馈的强化学习 (RLHF) 概述#

  • 核心目标 (Page 7):利用 RL 的框架,结合人类的反馈,实现 LLM 与人类价值观的对齐,使其输出有用、安全、真实的内容。
  • 基本思路 (Page 7):人类很难直接定义一个精确的奖励函数来捕捉“有用性”、“无害性”等复杂概念。RLHF 的思路是:让人类比较模型生成的不同输出的好坏(提供偏好),然后训练一个奖励模型 (Reward Model, RM) 来学习和模拟这种人类偏好,最后用这个 RM 作为 RL 过程中的奖励信号。
  • 发展脉络 (Page 7, 9)
    • 早期的反馈学习探索(如 TAMER, 2008)。
    • 从偏好比较中学习策略(OpenAI/DeepMind, 2017, Christiano 等人)。
    • InstructGPT (OpenAI, 2022) 论文是 RLHF 在对齐 LLM 方面取得突破性进展的标志。
    • ChatGPT (OpenAI, 2022) 结合了 GPT-3.5、RLHF 和 PPO。
  • 早期探索 (Page 8)
    • TAMER (2008):人类通过提供标量奖励信号来训练智能体。
    • Deep RL from Human Preferences (2017):人类比较智能体的两个行为片段,训练一个奖励预测器,然后用 RL 优化该预测奖励。

三、RLHF 实现流程 (The RLHF Pipeline) (Page 10-12)#

RLHF 通常包含三个主要步骤:

  1. 第一步:监督微调 (Supervised Fine-tuning, SFT) (Page 10, 13, 14):

    • 目标:让预训练的 LLM 初步具备理解和遵循指令的能力,学习期望的输出格式和风格。
    • 数据:高质量的“提示 (Prompt) - 回答 (Response)”对,由人工编写或筛选。
    • 过程:使用这些数据对预训练模型进行标准的有监督微调。
    • 输出:SFT 模型 (πSFT\pi^{SFT})。
    • 注意:这一步有时是可选的,但通常能为后续步骤提供一个更好的起点。
  2. 第二步:奖励模型训练 (Reward Model Training) (Page 10, 15-26):

    • 目标:训练一个模型 rϕ(x,y)r_{\phi}(x, y),输入提示 xx 和模型生成的回答 yy,输出一个标量分数,表示人类对这个回答的偏好程度。
    • 数据收集 (人类反馈) (Page 15, 17, 20):
      • 选择一批提示 xx
      • 让当前的 SFT 模型(或后续 RL 过程中的模型)对每个提示生成多个不同的回答 {y1,y2,,yk}\{y_1, y_2, \dots, y_k\}
      • 人类标注者对这些回答进行比较和排序。最常见的是成对比较 (Pairwise Comparison):给定两个回答 yi,yjy_i, y_j,标注者选出更偏好的一个 (ywy_w, winner) 和不太偏好的一个 (yly_l, loser)。
      • 收集大量的偏好数据 D={(x,yw,yl)}D = \{(x, y_w, y_l)\}
    • 奖励模型 (RM) 架构 (Page 22)
      • 通常使用与 SFT 模型类似的预训练 LLM 架构。
      • 将模型的最终输出层替换为一个标量输出头,用于预测偏好分数。
    • 损失函数 (Page 23):常用成对比较损失 (Pairwise Ranking Loss),基于 Bradley-Terry 模型: loss(ϕ)=E(x,yw,yl)D[log(σ(rϕ(x,yw)rϕ(x,yl)))]loss(\phi) = - \mathbb{E}_{(x, y_w, y_l) \sim D} [\log(\sigma(r_{\phi}(x, y_w) - r_{\phi}(x, y_l)))] 目标是让 RM 给赢家 ywy_w 的打分高于输家 yly_lσ\sigma 是 sigmoid 函数。
    • 训练过程 (Page 25):使用偏好数据集 DD 对 RM 参数 ϕ\phi 进行有监督训练。
    • 输出:训练好的奖励模型 rϕr_{\phi}
  3. 第三步:强化学习训练 (RL Fine-tuning) (Page 10, 27-32):

    • 目标:使用 RM 作为奖励信号,通过 RL 算法(通常是 PPO)微调 SFT 模型,使其生成的回答能够获得更高的 RM 分数,从而更符合人类偏好。
    • RL 设定 (Page 27, 28, 38)
      • 策略 (Policy):LLM πθ(yx)\pi_{\theta}(y|x),参数为 θ\theta。通常从 SFT 模型初始化。
      • 状态 (State):当前的提示 xx 和已经生成的 token 序列 y<ty_{<t}
      • 动作 (Action):生成的下一个 token yty_t
      • 奖励 (Reward):通常是稀疏的。只有在生成完整回答 yy 后,才使用 RM 计算奖励 rϕ(x,y)r_{\phi}(x, y)。中间步骤奖励为 0。为了防止 RL 策略偏离 SFT 模型太远(导致语言模型能力下降或胡言乱语),通常会加入一个 KL 散度惩罚项,惩罚 πθ\pi_{\theta}πSFT\pi^{SFT} 之间的差异。
    • PPO 优化目标 (Page 29, 30):PPO 优化的目标函数通常是: Objective(θ)=E(x,y)DπθRL[rϕ(x,y)βKL(πθRL(x)πSFT(x))]\text{Objective}(\theta) = \mathbb{E}_{(x, y) \sim D_{\pi_{\theta}^{RL}}} [r_{\phi}(x, y) - \beta KL(\pi_{\theta}^{RL}(\cdot|x) || \pi^{SFT}(\cdot|x))] (这里的 β\beta 是 KL 惩罚系数;KL()KL(\dots||\dots) 可以用 log(πθRL(yx)/πSFT(yx))\log(\pi_{\theta}^{RL}(y|x) / \pi^{SFT}(y|x)) 近似;Page 30 的公式还包含一个可选的预训练分布保持项)。
    • 训练流程 (Page 31)
      1. 初始化 RL 策略 πθ\pi_{\theta}(来自 SFT 模型)和参考策略 πref\pi_{ref}(通常固定为 SFT 模型)。
      2. 循环迭代: a. 从提示数据集中采样提示 xx。 b. 使用当前 RL 策略 πθ\pi_{\theta} 生成回答 yy。 c. 使用 RM rϕr_{\phi} 计算奖励 rϕ(x,y)r_{\phi}(x, y)。 d. 计算 KL 惩罚项,例如 KL(πθ(x)πref(x))KL(\pi_{\theta}(\cdot|x) || \pi_{ref}(\cdot|x))。 e. 使用 PPO 算法(通常是 Actor-Critic 形式,需要一个价值网络来估计优势)更新策略参数 θ\theta,以最大化(奖励 - KL 惩罚)的目标。
    • 输出:经过 RLHF 微调的、与人类偏好对齐的最终 LLM πθRL\pi_{\theta}^{RL}

四、从 AI 反馈中强化学习 (RLAIF) (Page 33-39)#

  • 动机 (Page 33):RLHF 中的人类标注成本高昂、耗时且难以规模化。RLAIF (Reinforcement Learning from AI Feedback) 提出使用AI 模型(通常是另一个强大的 LLM)来代替人类进行偏好标注。
  • 核心流程 (Page 33 图示)
    1. 使用 SFT 模型生成回答对 (y1,y2)(y_1, y_2)
    2. 使用一个现成的、强大的 AI 标注模型 (AI Labeler LLM) 来判断 (y1,y2)(y_1, y_2) 中哪个更好,输出偏好标签(可能是硬标签或软标签/概率)。
    3. 使用这些 AI 生成的偏好标签来训练奖励模型 (RM)
    4. 使用这个 AI 训练的 RM 进行强化学习 (RL) 微调,得到最终的 RLAIF 模型。
    • 这个过程可以看作是将强大的 AI 标注模型的偏好蒸馏到 RM 中。
  • AI 偏好标注方法 (Page 34-35)
    • 设计合适的提示 (Prompt),要求 AI 标注模型比较两个回答。
    • 思维链 (Chain-of-Thought, CoT):提示 AI 标注模型先进行一步步的分析和推理(生成思维链),再给出最终的偏好判断,可以提高判断的一致性和准确性。
    • AI 模型可能输出软标签(例如,认为 y1y_1y2y_2 好的概率是 0.6)。
  • RM 训练与 RL 阶段 (Page 36-39)
    • RM 训练:与 RLHF 类似,但使用 AI 偏好标签。如果使用软标签 p1p_1y1y_1 优于 y2y_2 的概率),可以使用交叉熵损失。
    • RL 阶段:与 RLHF 完全相同,只是使用的 RM 是从 AI 反馈中学习得到的。

五、小结 (Page 40-41)#

  • RLHF/RLAIF 的意义 (Page 40):已成为对齐 LLM 和人类价值观、提升 LLM 性能的主流技术。涉及到模型训练、评估、治理等多个方面。
  • RLHF vs SFT (Page 41)
    • 反馈粒度:RLHF 基于对整个回答的偏好打分进行优化,而 SFT 是基于每个词元的交叉熵损失。RLHF 的反馈更符合人类评估的整体性。
    • 多样性:RLHF 更容易鼓励生成多样化的高质量回答,而 SFT 可能导致模型过度拟合示例的特定表达方式。
    • 缓解幻觉:RLHF 可以通过定制奖励模型来更好地处理“不知道”的情况(赋予拒答较高的奖励,或对错误答案赋予很大的负奖励),可能比 SFT 更能缓解模型一本正经胡说八道(幻觉)的问题。

总的来说,RLHF/RLAIF 通过引入人类(或 AI)的偏好反馈,结合强化学习的优化能力,使得大型语言模型能够更好地理解和遵循复杂、模糊的人类意图和价值观。

RL 学习笔记(14):基于人类反馈的强化学习 (RLHF)
https://axi404.top/blog/rl-note-14
Author 阿汐
Published at April 21, 2025
Comment seems to stuck. Try to refresh?✨