大模型微调之 PPO算法中的多模型协作关系

PPO算法中的多模型协作关系

一、核心模型与角色映射

PPO的核心部分由这四个模型进行一个组成:
在这里插入图片描述

  1. Actor Model(主角模型)

    • 角色定位:训练中的主体,对应篮球场景中的“球员”,负责生成动作(如对话回答)。
    • 功能细节
      • 逐token生成响应(At, At+1, …),通过梯度下降优化策略以最大化预期奖励。
      • 示例:在对话系统中,Actor生成“如何煮咖啡”的步骤回答。
  2. Pre_model(参考模型)

    • 角色定位:与Actor能力相近的“双胞胎兄弟”,作为策略对比基准。
    • 功能细节
      • 提供基准策略(如初始SFT模型或历史版本),通过KL散度约束策略更新幅度。
      • 示例:若Actor生成极端回答(“煮咖啡需用汽油”),Pre_model通过KL散度限制其偏离。
  3. Critic Model(教练模型)

    • 角色定位:动态评估动作长期价值的“篮球教练”,输出状态值函数V(s)。
    • 功能细节
      • 预测动作的长期价值(Vt),通过优势函数(A_t)指导Actor调整策略。
      • 与Actor共享梯度,协同优化策略与价值评估。
  4. Reward Model(裁判模型)

    • 角色定位:基于整体表现打分的“裁判”,提供即时奖励Rt。
    • 功能细节
      • 冻结状态,仅负责评分(如回答相关性、安全性)。
      • 可基于人类偏好数据训练或引入外部模型(如GPT-4)。
二、PPO训练流程

在这里插入图片描述

  1. 训练前准备

    • SFT模型:通过监督数据(如正确步骤)训练基础模型。
    • Reward模型:通过偏好数据(如“用户更喜欢回答A”)训练裁判。
  2. PPO循环训练

    • Step 1:输入prompt(如“如何煮咖啡”),Actor生成回答At。
      在这里插入图片描述

    • Step 2:Critic预测At的长期价值Vt(如“满意度8分”)。
      在这里插入图片描述

    • Step 3:Reward Model计算即时奖励Rt(如“准确性7分”)。
      在这里插入图片描述

    • Step 4:计算优势函数,指导策略更新。
      在这里插入图片描述

    • Step 5:通过剪切目标函数约束策略变化,更新Actor和Critic参数。

  3. 关键机制

    • 剪切机制:剪裁新旧策略比率在[1-ε, 1+ε],防止过度优化。
      在这里插入图片描述

    • KL散度:衡量新旧策略差异,确保渐进式改进。
      在这里插入图片描述

      • 在模型优化中,利用参考模型(SFT模型 )生成参考策略可能性的对数概率ref_log_probs,Actor模型生成当前可能性的对数概率log_probs 。为使Actor模型既符合人类喜好,又与参考模型差异不大,通过计算ref_log_probs和log_probs的KL散度衡量差异。差值越小,表明Actor模型更新幅度适中,符合在参考模型基础上渐进优化的预期。
      • 在步骤 5 更新 Actor 和 Critic 参数时,剪切机制通过对目标函数进行剪切来约束策略变化幅度,防止更新过度。与此同时,可计算新旧策略间的 KL 散度 。若 KL 散度超过预先设定阈值,说明策略变化过大,此时可根据 KL 散度值调整更新幅度,比如减小学习率等,与剪切机制共同保障策略在合理范围内更新,维持训练稳定性。
      • 剪切机制从目标函数角度约束策略更新幅度,KL 散度从新旧策略差异角度进行把控,二者相互配合。剪切机制先对目标函数进行初步约束,KL 散度进一步监测策略变化情况,当发现变化过大时及时介入调整,共同确保策略在合理范围内更新,维持训练过程的稳定性,避免模型因更新不当而产生不良后果,助力模型能够稳步朝着更优策略方向学习和优化。

在这里插入图片描述

三、KL散度详述
  1. 定义与公式
    在这里插入图片描述

  2. 作用机制

    • 防止策略突变,确保新策略与Pre_model差异可控。
    • 示例:Pre_model生成“煮沸3分钟”,Actor生成“煮沸30分钟”时触发KL约束。
      在这里插入图片描述
四、Critic与Actor的梯度共享
  1. Actor-Critic架构
    在这里插入图片描述

    • Actor梯度
      在这里插入图片描述

    • Critic梯度
      在这里插入图片描述

    • 共享机制

      • 基础:Critic Model 和 Actor Model 具有共享的底层编码器,比如状态特征提取层。该共享编码器负责对输入的状态信息(如图像、文本等高维特征数据)进行处理和特征提取,将其转化为公共的中间表征,为后续两个模型的不同任务输出提供基础。
      • 机制:在强化学习中,策略网络和价值网络共享部分底层编码器,通过反向传播算法分别算得策略损失和价值损失梯度,在共享编码器部分合并(相加或按权重组合)更新其参数,使编码器学习有益特征。同时,两网络依各自梯度更新独立头部参数,策略网络头部优化动作选择策略,价值网络头部准确评估状态价值。如此,两网络相互协作影响,实现协同训练与共同优化,提升强化学习系统性能与效率,这便是二者协同工作的核心训练过程。
        在这里插入图片描述
        在这里插入图片描述
  2. 优势函数(Advantage Function)
    在这里插入图片描述

五、Reward Model的奖励计算
  1. 奖励构成
    在这里插入图片描述

  2. Reward训练损失
    在这里插入图片描述

六、动态交互流程
+----------------+       +----------------+       +----------------+
|   Actor Model  |-------|   Critic Model |-------|  Reward Model  |
| (生成回答)   |       | (评估长期价值) |       | (即时评分)   |
+----------------+       +----------------+       +----------------+
          ↓                          ↓                          ↓
      Pre_model                     KL散度                    人类反馈
      (参考基准)                  (约束更新)               (训练数据)
七、思考点
  1. Critic与Reward的本质区别

    • Critic是“长期价值预测器”,Reward是“即时裁判”,二者结合实现短期与长期优化。
  2. 优势函数的实际应用

    • 例:用户询问“头痛治疗”,Critic预测回答“布洛芬”的长期满意度为9分(Vt=9),Reward给出即时评分8分(Rt=8)。若下一状态价值V_{t+1}=9.5,则A_t=8+0.9*9.5-9=7.55,表明该回答优于平均。
      在这里插入图片描述
  3. 梯度共享的意义

    • 确保策略与价值评估协同优化,避免单独训练导致的目标不一致。
  4. 不同约束策略更新方法有哪些?

方法原理优点缺点适用场景
信任区域方法定义信任区域,限制策略更新范围在旧策略邻域内,通过约束距离度量保证更新可靠有效防止策略更新过度,确保更新后的策略与旧策略相似,提高训练稳定性信任区域的确定可能较为复杂,需要根据具体问题进行调整复杂环境下的强化学习任务,对策略稳定性要求高的场景
自然梯度下降利用Fisher信息矩阵在参数空间中计算梯度,考虑策略分布几何结构进行优化能更有效地在概率分布空间搜索,更快找到最优策略,避免普通梯度下降的一些问题,如局部最优和不稳定计算Fisher信息矩阵可能较为复杂,增加了计算成本对策略更新准确性和稳定性要求高的任务,如机器人控制、自动驾驶等
策略平滑约束通过添加约束条件或正则化项,使策略在状态空间上具有平滑性,避免剧烈变化使策略更连续可预测,提高模型泛化能力,适应状态空间的连续性可能限制策略的表达能力,对于一些需要快速变化策略的场景不太适用状态空间连续的强化学习问题,如物理系统控制
经验回放将经验样本存储在缓冲区,训练时从缓冲区随机采样进行学习增加训练数据多样性,减少样本相关性,提高学习效率,使策略更新更稳定需要额外的存储空间来存储经验样本,样本选择策略可能影响学习效果各种强化学习场景,尤其是非平稳环境或高探索需求的任务
KL散度计算新旧策略间的差异,超过阈值则调整更新幅度直接衡量策略变化程度,能及时发现并控制策略的过度更新阈值的设定需要经验,对复杂策略计算量可能较大强化学习中对策略变化敏感的场景,用于监控和控制策略更新
剪切机制在目标函数中对新旧策略概率比值等进行剪切操作,限制其取值范围在目标函数计算过程中直接施加约束,简单有效防止更新过度可能对目标函数的优化有一定限制,影响模型收敛速度强化学习中需要对策略更新进行直接约束的场景
八、总结

PPO通过多模型协作实现高效策略优化:

  • Actor生成策略,Critic评估长期价值,Reward提供即时反馈,Pre_model约束稳定性。
  • KL散度与剪切机制确保策略安全更新,梯度共享与优势函数设计提升训练效率。
    模型协作实现高效策略优化:
  • Actor生成策略,Critic评估长期价值,Reward提供即时反馈,Pre_model约束稳定性。
  • KL散度与剪切机制确保策略安全更新,梯度共享与优势函数设计提升训练效率。
  • 实际应用:在对话系统中生成既符合人类偏好又避免极端输出的回答。
### 大语言模型中的分词对齐方法 大语言模型(LLMs)在处理自然语言时通常依赖于分词器将文本分解成更小的单元,以便更好地表示和建模。然而,在实际应用中,由于不同的模型可能采用不同的分词策略,或者同一模型的不同版本之间可能存在差异,因此需要一种有效的分词对齐方法来确保一致性。 #### 基本概念与背景 分词对齐是指将两个或多个序列(例如原始输入文本与其生成的目标文本)映射到相同的标记空间的过程。这对于跨模型协作、微调以及评估生成质量尤为重要[^2]。如果未正确执行此操作,则可能导致语义偏差或其他错误行为。 #### 解决方案概述 以下是几种常见的解决分词对齐问题的技术及其具体实现: 1. **共享词汇表** 使用统一的词汇表可以有效减少因不同分词方式带来的不一致现象。这种方法要求所有涉及的组件——无论是预训练阶段还是下游任务调整期间使用的模块——都基于同一个预先定义好的字典构建各自的嵌入层权重矩阵[^3]。 2. **动态适配机制** 当无法更改现有系统的配置而引入新的兼容性需求时,“软”转换成为可行的选择之一。比如可以通过插件形式加载额外的支持库文件完成必要的修改;又或者是利用注意力分布特性重新分配概率值给相邻位置上的候选词语选项从而间接达成目的[^4]。 3. **基于规则的映射** 对特定领域内的高频短语制定专门化的替换规则集合,并将其应用于整个流程之中作为补充手段加以运用。这种做法尤其适合那些具有较强结构性特征的数据集环境当中去实施部署。 4. **端到端优化框架** 结合强化学习理论设计出能够自动寻找最佳匹配路径的学习范式。正如之前提到过的那样,PPO(Policy Gradient with Proximal Optimization)算法便是一个典型例子,它能够在保持原有结构稳定性的前提下逐步改进直至满足预期目标为止。 ```python import torch from transformers import GPT2LMHeadModel, GPT2Tokenizer def load_model_and_tokenizer(): model_name_or_path = 'gpt2' tokenizer = GPT2Tokenizer.from_pretrained(model_name_or_path) model = GPT2LMHeadModel.from_pretrained(model_name_or_path).cuda() return model, tokenizer model, tokenizer = load_model_and_tokenizer() input_text = "This is an example sentence." inputs = tokenizer(input_text, return_tensors="pt").to('cuda') outputs = model.generate(**inputs, max_length=50) decoded_output = tokenizer.decode(outputs[0], skip_special_tokens=True) print(decoded_output) ``` 上述代码片段展示了如何加载一个预训练的大规模语言模型(GPT-2),并通过该模型生成一段连续的文字输出。在此基础上,我们可以进一步探索针对特定应用场景下的定制化解决方案。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值