PPO算法中的多模型协作关系
一、核心模型与角色映射
PPO的核心部分由这四个模型进行一个组成:
-
Actor Model(主角模型)
- 角色定位:训练中的主体,对应篮球场景中的“球员”,负责生成动作(如对话回答)。
- 功能细节:
- 逐token生成响应(At, At+1, …),通过梯度下降优化策略以最大化预期奖励。
- 示例:在对话系统中,Actor生成“如何煮咖啡”的步骤回答。
-
Pre_model(参考模型)
- 角色定位:与Actor能力相近的“双胞胎兄弟”,作为策略对比基准。
- 功能细节:
- 提供基准策略(如初始SFT模型或历史版本),通过KL散度约束策略更新幅度。
- 示例:若Actor生成极端回答(“煮咖啡需用汽油”),Pre_model通过KL散度限制其偏离。
-
Critic Model(教练模型)
- 角色定位:动态评估动作长期价值的“篮球教练”,输出状态值函数V(s)。
- 功能细节:
- 预测动作的长期价值(Vt),通过优势函数(A_t)指导Actor调整策略。
- 与Actor共享梯度,协同优化策略与价值评估。
-
Reward Model(裁判模型)
- 角色定位:基于整体表现打分的“裁判”,提供即时奖励Rt。
- 功能细节:
- 冻结状态,仅负责评分(如回答相关性、安全性)。
- 可基于人类偏好数据训练或引入外部模型(如GPT-4)。
二、PPO训练流程
-
训练前准备
- SFT模型:通过监督数据(如正确步骤)训练基础模型。
- Reward模型:通过偏好数据(如“用户更喜欢回答A”)训练裁判。
-
PPO循环训练
-
Step 1:输入prompt(如“如何煮咖啡”),Actor生成回答At。
-
Step 2:Critic预测At的长期价值Vt(如“满意度8分”)。
-
Step 3:Reward Model计算即时奖励Rt(如“准确性7分”)。
-
Step 4:计算优势函数,指导策略更新。
-
Step 5:通过剪切目标函数约束策略变化,更新Actor和Critic参数。
-
-
关键机制
-
剪切机制:剪裁新旧策略比率在[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散度详述
-
定义与公式
-
作用机制
- 防止策略突变,确保新策略与Pre_model差异可控。
- 示例:Pre_model生成“煮沸3分钟”,Actor生成“煮沸30分钟”时触发KL约束。
四、Critic与Actor的梯度共享
-
Actor-Critic架构
-
Actor梯度:
-
Critic梯度:
-
共享机制:
- 基础:Critic Model 和 Actor Model 具有共享的底层编码器,比如状态特征提取层。该共享编码器负责对输入的状态信息(如图像、文本等高维特征数据)进行处理和特征提取,将其转化为公共的中间表征,为后续两个模型的不同任务输出提供基础。
- 机制:在强化学习中,策略网络和价值网络共享部分底层编码器,通过反向传播算法分别算得策略损失和价值损失梯度,在共享编码器部分合并(相加或按权重组合)更新其参数,使编码器学习有益特征。同时,两网络依各自梯度更新独立头部参数,策略网络头部优化动作选择策略,价值网络头部准确评估状态价值。如此,两网络相互协作影响,实现协同训练与共同优化,提升强化学习系统性能与效率,这便是二者协同工作的核心训练过程。
-
-
优势函数(Advantage Function)
五、Reward Model的奖励计算
-
奖励构成
-
Reward训练损失
六、动态交互流程
+----------------+ +----------------+ +----------------+
| Actor Model |-------| Critic Model |-------| Reward Model |
| (生成回答) | | (评估长期价值) | | (即时评分) |
+----------------+ +----------------+ +----------------+
↓ ↓ ↓
Pre_model KL散度 人类反馈
(参考基准) (约束更新) (训练数据)
七、思考点
-
Critic与Reward的本质区别
- Critic是“长期价值预测器”,Reward是“即时裁判”,二者结合实现短期与长期优化。
-
优势函数的实际应用
- 例:用户询问“头痛治疗”,Critic预测回答“布洛芬”的长期满意度为9分(Vt=9),Reward给出即时评分8分(Rt=8)。若下一状态价值V_{t+1}=9.5,则A_t=8+0.9*9.5-9=7.55,表明该回答优于平均。
- 例:用户询问“头痛治疗”,Critic预测回答“布洛芬”的长期满意度为9分(Vt=9),Reward给出即时评分8分(Rt=8)。若下一状态价值V_{t+1}=9.5,则A_t=8+0.9*9.5-9=7.55,表明该回答优于平均。
-
梯度共享的意义
- 确保策略与价值评估协同优化,避免单独训练导致的目标不一致。
-
不同约束策略更新方法有哪些?
方法 | 原理 | 优点 | 缺点 | 适用场景 |
---|---|---|---|---|
信任区域方法 | 定义信任区域,限制策略更新范围在旧策略邻域内,通过约束距离度量保证更新可靠 | 有效防止策略更新过度,确保更新后的策略与旧策略相似,提高训练稳定性 | 信任区域的确定可能较为复杂,需要根据具体问题进行调整 | 复杂环境下的强化学习任务,对策略稳定性要求高的场景 |
自然梯度下降 | 利用Fisher信息矩阵在参数空间中计算梯度,考虑策略分布几何结构进行优化 | 能更有效地在概率分布空间搜索,更快找到最优策略,避免普通梯度下降的一些问题,如局部最优和不稳定 | 计算Fisher信息矩阵可能较为复杂,增加了计算成本 | 对策略更新准确性和稳定性要求高的任务,如机器人控制、自动驾驶等 |
策略平滑约束 | 通过添加约束条件或正则化项,使策略在状态空间上具有平滑性,避免剧烈变化 | 使策略更连续可预测,提高模型泛化能力,适应状态空间的连续性 | 可能限制策略的表达能力,对于一些需要快速变化策略的场景不太适用 | 状态空间连续的强化学习问题,如物理系统控制 |
经验回放 | 将经验样本存储在缓冲区,训练时从缓冲区随机采样进行学习 | 增加训练数据多样性,减少样本相关性,提高学习效率,使策略更新更稳定 | 需要额外的存储空间来存储经验样本,样本选择策略可能影响学习效果 | 各种强化学习场景,尤其是非平稳环境或高探索需求的任务 |
KL散度 | 计算新旧策略间的差异,超过阈值则调整更新幅度 | 直接衡量策略变化程度,能及时发现并控制策略的过度更新 | 阈值的设定需要经验,对复杂策略计算量可能较大 | 强化学习中对策略变化敏感的场景,用于监控和控制策略更新 |
剪切机制 | 在目标函数中对新旧策略概率比值等进行剪切操作,限制其取值范围 | 在目标函数计算过程中直接施加约束,简单有效防止更新过度 | 可能对目标函数的优化有一定限制,影响模型收敛速度 | 强化学习中需要对策略更新进行直接约束的场景 |
八、总结
PPO通过多模型协作实现高效策略优化:
- Actor生成策略,Critic评估长期价值,Reward提供即时反馈,Pre_model约束稳定性。
- KL散度与剪切机制确保策略安全更新,梯度共享与优势函数设计提升训练效率。
模型协作实现高效策略优化: - Actor生成策略,Critic评估长期价值,Reward提供即时反馈,Pre_model约束稳定性。
- KL散度与剪切机制确保策略安全更新,梯度共享与优势函数设计提升训练效率。
- 实际应用:在对话系统中生成既符合人类偏好又避免极端输出的回答。