大模型微调之 如何理解PPO
一、大模型训练流程
-
预训练(Base模型)
- 基座模型(如Llama)通过海量数据学习通用知识,知识覆盖面广但缺乏专业能力。
-
SFT微调(专业知识注入)
- 在特定领域(如对话生成)通过监督学习注入专业知识,提升领域内回答能力,但仍存在短板(如输出稳定性不足)。
-
强化学习(PPO/DPO等)
- 通过强化学习优化模型,进一步提升输出质量和多样性,确保模型在复杂场景下的稳定性。
-
开放使用
- 经过多轮优化后,模型达到商业级水平,可部署应用。
思考点:
- 为什么需要SFT后再进行强化学习?
SFT解决了“能不能回答”的问题,强化学习解决“回答好不好”的问题,两者互补。
二、强化学习方案对比
方案 | 核心思想 | 类比场景 | 适用模型 |
---|---|---|---|
RLHF | PPO + 奖励模型(RM),结合人类反馈优化策略更新。 | 篮球训练:教练指导+裁判评分。 | ChatGPT、InstructGPT |
DPO | 直接偏好优化,通过模仿人类偏好数据学习,无需实时反馈。 | 自学篮球:观看视频并自我修正。 | FLAN-T5、GPT-4 |
DPO+RM | 结合奖励模型,进一步筛选优质数据。 | 混合模式:视频学习+定期测试评分。 | 部分开源模型 |
思考点:
-
RLHF和DPO的核心区别是什么?
RLHF依赖实时人类反馈,DPO依赖离线偏好数据,前者更贴近真实场景但成本高,后者成本低但可能受限于数据质量。
-
SFT和DPO的核心区别是什么?
-
PPO和DPO的核心区别是什么?
对比项 | DPO(直接偏好优化) | PPO(近端策略优化) |
---|---|---|
核心思想 | 直接对人类偏好数据进行建模和优化,学习数据中体现的人类偏好模式,从而使模型输出更符合人类期望。不依赖于实时的人类反馈,而是基于已有的偏好数据进行训练。 | 通过优化策略网络,使得新策略和旧策略之间的差异控制在一定范围内,避免策略更新时的剧烈变化,保证训练过程的稳定性。 |
训练方式 | 使用成对的输入和偏好标签数据,模型学习预测哪一个输出更受人类偏好。通过最小化预测偏好和实际偏好之间的差异来更新模型参数。 | 在与环境交互过程中收集轨迹数据,计算优势函数评估动作价值,利用目标函数(包含策略比率和优势函数)更新策略参数,且使用剪切机制限制策略更新幅度。 |
奖励机制 | 通常不依赖于显式的奖励函数。奖励信息隐式地包含在人类标注的偏好数据中,模型通过学习这些数据来优化自身。 | 需要定义显式的奖励函数,奖励函数用于评估每个动作的好坏,为策略更新提供反馈信号。 |
策略更新 | 模型直接根据人类偏好数据更新策略,学习不同输入下更受偏好的输出。更新过程更侧重于拟合人类偏好。 | 策略更新是基于与环境交互得到的经验,在更新时通过限制新旧策略的差异,逐步改进策略,使策略在稳定性和探索性之间取得平衡。 |
计算复杂度 | 相对较低,因为不需要像PPO那样频繁地与环境进行交互和计算优势函数等。主要是对标注数据进行学习和优化。 | 相对较高,需要与环境进行大量的交互以收集数据,同时在更新策略时需要进行复杂的计算,如计算策略比率、优势函数等。 |
适用场景 | 适用于有大量人类偏好数据可用的场景,例如在一些数据标注比较丰富的自然语言处理任务中,能够快速学习到人类的偏好模式。 | 广泛应用于各种强化学习场景,尤其是在环境交互复杂、需要在探索和利用之间平衡的场景中表现出色,如机器人控制、游戏等。 |
代表应用模型 | FLAN - T5(在一些优化中可能运用)、部分开源模型探索使用 | ChatGPT、InstructGPT等通过RLHF流程中结合PPO优化策略 |
三、PPO算法核心原理
-
目标函数
-
公式:
-
关键组件:
-
策略比率:当前策略与旧策略的动作概率比,衡量策略更新幅度。
-
优势函数:动作实际回报与期望回报的差值,引导策略更新方向。
-
剪切机制:该函数确保策略比率 r t ( θ ) r_t(θ) rt(θ)不会发生过大变化。若 r t ( θ ) r_t(θ) rt(θ)超出 [ 1 − ϵ , 1 + ϵ ] [1 - ϵ,1 + ϵ] [1−ϵ,1+ϵ]范围,会被“剪切”回该区间;若在范围内,则保持原有比率。通过限制 r ( θ ) r(θ) r(θ)变化幅度,PPO确保每次更新不会偏离原始策略太远,避免策略更新过大导致训练不稳定。
-
-
-
优化逻辑
- 最大化累积奖励:通过调整策略参数 θ,使模型在环境中获得更高长期回报。
- 稳定性保障:剪切机制避免策略偏离过大,确保训练稳定。
思考点:
- 剪切机制如何平衡探索与利用?
剪切机制允许策略小幅改进(利用),同时限制过度探索(如随机动作),确保模型在安全范围内迭代。
四、PPO在模型优化中的应用
- 典型案例
以下模型均通过PPO算法实现关键能力突破:
模型名称 | 应用场景 | PPO具体作用 | 技术细节 |
---|---|---|---|
ChatGPT | 对话生成优化 | 结合人类反馈(RLHF)提升回复自然度与相关性。 | - 使用奖励模型评估回复质量 - 剪切机制确保策略更新稳定 |
InstructGPT | 指令遵循与用户期望对齐 | 通过奖励模型优化生成文本,使其符合特定指令要求。 | - 奖励信号包含指令完成度评分 - 多轮迭代逐步校准输出 |
FLAN-T5 | 毒性内容控制 | 结合仇恨言论奖励模型减少有害输出。 | - 奖励模型对毒性内容打负分 - PPO抑制高毒性动作的概率 |
GPT-4 | 多模态交互与复杂任务处理 | 通过多维度奖励信号优化策略,平衡文本、图像等多模态输出。 | - 奖励模型整合多模态反馈 - 动态调整策略适应不同任务场景 |
LLaMA | 开源模型商业化 | 结合奖励模型优化生成文本的质量与多样性。 | - 奖励信号包含流畅度、信息量等指标 - 采用Lora微调减少计算成本 |
思考点:
- 为何LLaMA选择Lora微调而非全参数更新?
Lora通过低秩矩阵分解减少参数量,降低计算成本,适合开源社区资源限制场景。
- 核心作用
- 提升生成文本的质量、安全性和人类偏好符合度。
- 通过策略更新机制,逐步逼近最优解。
思考点:
- PPO为何成为顶流模型的标配?
PPO的稳定性和灵活性使其适用于复杂场景,同时结合奖励模型能有效对齐人类价值观。
五、PPO架构与多模型协作
-
模型组成
- 参考模型:旧策略模型(如SFT模型),提供初始策略。
- 微调模型:当前策略模型,通过PPO更新。
- 奖励模型(RM):评估生成文本质量,输出奖励值。
- Critic模型:预测状态价值,辅助优势函数计算。
-
训练流程
- Agent与环境交互,收集状态、动作、奖励数据。
- 通过PPO目标函数优化策略,逐步提升性能。
思考点:
-
多模型协作如何影响训练效率?
多模型增加了计算复杂度,但通过分工明确(如RM专注评估),能更高效地优化策略。
总结与思考
-
PPO的核心优势
- 稳定性:剪切机制避免训练崩溃。
- 灵活性:适用于多种任务(如对话、毒性控制)。
- 对齐性:结合奖励模型,符合人类偏好。
-
潜在挑战
- 超参数(如ϵ)对结果影响较大,需谨慎调优。
- 奖励模型的设计直接影响策略优化方向,需高质量标注数据。
-
模型选择的考量因素
- 任务类型:对话任务优先选择RLHF(如ChatGPT);毒性控制选择DPO+RM(如FLAN-T5)。
- 资源限制:LLaMA的Lora微调模式适合低成本场景。
- 未来趋势
- 混合算法:结合PPO与其他强化学习方法(如DPO),提升效率。
- 轻量化PPO:通过模型蒸馏或参数高效微调(如QLoRA)降低部署成本。
思考延伸:
-
如果奖励模型存在系统性偏差(如对特定群体的偏见),PPO会如何放大或缓解这种偏差?
可能放大偏差,需通过公平性约束(如约束优化)或多样化数据缓解。
-
未来强化学习算法可能如何改进?
可能方向:减少对人类反馈的依赖、提升样本效率、增强多目标优化能力。