大模型微调之 详解PPO算法

大模型微调之 如何理解PPO

一、大模型训练流程
  1. 预训练(Base模型)

    • 基座模型(如Llama)通过海量数据学习通用知识,知识覆盖面广但缺乏专业能力。
  2. SFT微调(专业知识注入)

    • 在特定领域(如对话生成)通过监督学习注入专业知识,提升领域内回答能力,但仍存在短板(如输出稳定性不足)。
  3. 强化学习(PPO/DPO等)

    • 通过强化学习优化模型,进一步提升输出质量和多样性,确保模型在复杂场景下的稳定性。
  4. 开放使用

    • 经过多轮优化后,模型达到商业级水平,可部署应用。

思考点

  • 为什么需要SFT后再进行强化学习?
    SFT解决了“能不能回答”的问题,强化学习解决“回答好不好”的问题,两者互补。
二、强化学习方案对比

在这里插入图片描述
在这里插入图片描述

方案核心思想类比场景适用模型
RLHFPPO + 奖励模型(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算法核心原理

在这里插入图片描述
在这里插入图片描述

  1. 目标函数

    • 公式
      在这里插入图片描述在这里插入图片描述

    • 关键组件

      • 策略比率:当前策略与旧策略的动作概率比,衡量策略更新幅度。在这里插入图片描述

      • 优势函数:动作实际回报与期望回报的差值,引导策略更新方向。在这里插入图片描述

      • 剪切机制:该函数确保策略比率 r t ( θ ) r_t(θ) rt(θ)不会发生过大变化。若 r t ( θ ) r_t(θ) rt(θ)超出 [ 1 − ϵ , 1 + ϵ ] [1 - ϵ,1 + ϵ] [1ϵ,1+ϵ]范围,会被“剪切”回该区间;若在范围内,则保持原有比率。通过限制 r ( θ ) r(θ) r(θ)变化幅度,PPO确保每次更新不会偏离原始策略太远,避免策略更新过大导致训练不稳定。在这里插入图片描述
        在这里插入图片描述

  2. 优化逻辑
    在这里插入图片描述

    • 最大化累积奖励:通过调整策略参数 θ,使模型在环境中获得更高长期回报。
    • 稳定性保障:剪切机制避免策略偏离过大,确保训练稳定。

思考点

  • 剪切机制如何平衡探索与利用?
    剪切机制允许策略小幅改进(利用),同时限制过度探索(如随机动作),确保模型在安全范围内迭代。
四、PPO在模型优化中的应用
  1. 典型案例

以下模型均通过PPO算法实现关键能力突破:

模型名称应用场景PPO具体作用技术细节
ChatGPT对话生成优化结合人类反馈(RLHF)提升回复自然度与相关性。- 使用奖励模型评估回复质量
- 剪切机制确保策略更新稳定
InstructGPT指令遵循与用户期望对齐通过奖励模型优化生成文本,使其符合特定指令要求。- 奖励信号包含指令完成度评分
- 多轮迭代逐步校准输出
FLAN-T5毒性内容控制结合仇恨言论奖励模型减少有害输出。- 奖励模型对毒性内容打负分
- PPO抑制高毒性动作的概率
GPT-4多模态交互与复杂任务处理通过多维度奖励信号优化策略,平衡文本、图像等多模态输出。- 奖励模型整合多模态反馈
- 动态调整策略适应不同任务场景
LLaMA开源模型商业化结合奖励模型优化生成文本的质量与多样性。- 奖励信号包含流畅度、信息量等指标
- 采用Lora微调减少计算成本

思考点

  • 为何LLaMA选择Lora微调而非全参数更新?
    Lora通过低秩矩阵分解减少参数量,降低计算成本,适合开源社区资源限制场景。
  1. 核心作用
    • 提升生成文本的质量、安全性和人类偏好符合度。
    • 通过策略更新机制,逐步逼近最优解。

思考点

  • PPO为何成为顶流模型的标配?
    PPO的稳定性和灵活性使其适用于复杂场景,同时结合奖励模型能有效对齐人类价值观。
五、PPO架构与多模型协作
  1. 模型组成

    • 参考模型:旧策略模型(如SFT模型),提供初始策略。
    • 微调模型:当前策略模型,通过PPO更新。
    • 奖励模型(RM):评估生成文本质量,输出奖励值。
    • Critic模型:预测状态价值,辅助优势函数计算。
  2. 训练流程

    • Agent与环境交互,收集状态、动作、奖励数据。
    • 通过PPO目标函数优化策略,逐步提升性能。

思考点

  • 多模型协作如何影响训练效率?

    多模型增加了计算复杂度,但通过分工明确(如RM专注评估),能更高效地优化策略。

总结与思考

  1. PPO的核心优势

    • 稳定性:剪切机制避免训练崩溃。
    • 灵活性:适用于多种任务(如对话、毒性控制)。
    • 对齐性:结合奖励模型,符合人类偏好。
  2. 潜在挑战

    • 超参数(如ϵ)对结果影响较大,需谨慎调优。
    • 奖励模型的设计直接影响策略优化方向,需高质量标注数据。
  3. 模型选择的考量因素

  • 任务类型:对话任务优先选择RLHF(如ChatGPT);毒性控制选择DPO+RM(如FLAN-T5)。
  • 资源限制:LLaMA的Lora微调模式适合低成本场景。
  1. 未来趋势
  • 混合算法:结合PPO与其他强化学习方法(如DPO),提升效率。
  • 轻量化PPO:通过模型蒸馏或参数高效微调(如QLoRA)降低部署成本。

思考延伸

  • 如果奖励模型存在系统性偏差(如对特定群体的偏见),PPO会如何放大或缓解这种偏差?

    可能放大偏差,需通过公平性约束(如约束优化)或多样化数据缓解。

  • 未来强化学习算法可能如何改进?

    可能方向:减少对人类反馈的依赖、提升样本效率、增强多目标优化能力。

### ChatGPT 算法详解 #### 背景与发展历程 ChatGPT 实际上是 InstructGPT 的同源模型,而 InstructGPT 是基于 GPT-3 进行改进和发展而来。为了使模型能够更好地理解和执行人类指令,在开发过程中采用了人工标注的方法来训练初始的强化学习模型和奖励反馈机制[^1]。 #### 训练过程概述 在构建初期阶段,通过收集大量的人类示范数据集并利用这些数据对基础版本进行了预训练;随后引入了监督微调(SFT),即让经过筛选后的高质量对话样本指导模型调整参数直至其行为更贴近预期目标。接着便是采用近端策略优化(PPO)算法实施进一步迭代更新——这一步骤旨在借助先前积累的经验教训不断优化决策路径从而提升整体性能表现。最终得到的就是具备较强交互能力且易于使用的聊天机器人产品形态—ChatGPT。 #### 技术原理剖析 从技术角度来看,这类大型语言模型主要依赖于深度神经网络架构来进行自然语言处理任务的学习与预测工作。具体而言,它运用了一种称为Transformer的技术框架作为核心组件之一,该结构由多层自注意力机制构成,可以有效地捕捉输入序列中的长期依赖关系,并支持并行化计算加速训练效率。此外,还特别设计了一些针对性措施用于增强特定应用场景下的表达力: - **上下文理解**:通过对历史消息记录建模以获得更加连贯一致的回答效果; - **风格迁移控制**:允许用户指定期望语气或写作风格以便生成符合需求的内容片段; - **事实核查模块集成**:帮助过滤虚假信息传播风险的同时提高回复准确性。 ```python import torch.nn as nn class TransformerModel(nn.Module): def __init__(self, vocab_size, d_model, nhead, num_encoder_layers, num_decoder_layers, dim_feedforward, dropout=0.5): super().__init__() self.model_type = 'Transformer' self.pos_encoder = PositionalEncoding(d_model, dropout) encoder_layers = nn.TransformerEncoderLayer(d_model, nhead, dim_feedforward, dropout) self.transformer_encoder = nn.TransformerEncoder(encoder_layers, num_encoder_layers) def forward(self, src, src_mask=None): src = self.pos_encoder(src) output = self.transformer_encoder(src, src_mask) return output ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值