一文详解 ChatGPT RLHF 背后的 PPO 强化学习训练
直播预告 | 4月7日晚6点,StyleSV一作&港中文MMLab在读博士章启航主讲《基于GAN的任意长度高质量视频生成》,扫码报名!最近火出圈的🚀 ChatGPT 中 RLHF 主要采用了就是 PPO 进行强化学习训练主要运用在微调阶段(微调整个 10B~100B+ 参数的成本其实也非常高 )使用策略梯度强化学习 (Policy Gradient RL) 算法、近端策略优化 (PPO) 微调初始 LM 的部分或全部参数。
轨迹可表示为集合
可以看成一个分类问题(游戏中通过键盘输入来互动,分类类别为所有可操作的键位):- 理想情况下, 并不一直为正数,增加一个 baseline:
在电子游戏中,奖励值常常为正(通常为游戏分数)。这时需要增加一个偏置来保证同时有正样本和负样本
一个高分的游戏轨迹中也可能存在错误的动作,同样的,一个低分的游戏轨迹也可能存在正确的动作,而上文中的计算将最后的奖励值(最后的游戏分数)都一视同仁视为该游戏轨迹每个动作的学分。为了更准确地描述每个动作所得到的学分,将一个动作执行后对应的学分为后续的所有奖励值的总和当某个动作执行以后,其对后续的奖励分数的影响在慢慢减少,再增加一个衰减因子:- On-policy:学习到的 agent 和与环境交互的 agent 是相同的,每一次梯度更新都需要重新采样
- Off-policy:学习到的 agent 和与环境交互的 agent 是不同的,每次梯度更新不需要重新采样
- 使用策略网络 收集数据。当 更新后,则需要重新收集训练样本
- 目标:使用相同的样本(通过 采样)训练 。其中 为固定的,因此我们可以重复使用其样本数据
2.1 重要性采样(Importance Sampling)
考虑一个场景,假如正在尝试计算函数 的期望值,其中 服从某种分布。则对 有以下估计:蒙特卡洛抽样方法是简单地从分布 中抽出 ,然后取所有样本的平均值来得到期望值的估计。那么问题来了,如果 非常难取样怎么办?是否能够根据一些已知的、容易抽样的分布来估计期望值?其中 从分布 中采样, 不应为 0。通过这种方式,估计期望能够从另一个分布 中采样, 是称为采样率或采样权重,它作为校正权重以抵消来自不同分布的概率采样。虽然重要性采样保证了期望的一致,但是这里来计算一下方差是否一致2.2 从 on-policy 到 off-policy
我们使用重要性采样将 on-policy 调整为 off-policy- 其中 指的是 advantage 函数,其计算方式为加上衰减机制后的奖励值并减去基线。
- PPO(Proximal Policy Optimization)
- 使用 与环境互动以收集 ,并计算出 advantage 值
- TRPO(Trust Region Policy Optimizatio)
TRPO 和 PPO 在各个测试上性能差不多。但相比 PPO ,TRPO 计算要更复杂参考文献:
[1]https://spinningup.openai.com/en/latest/algorithms/ppo.html[2]https://openai.com/research/openai-baselines-ppo[3]https://huggingface.co/blog/deep-rl-ppo[4]https://huggingface.co/blog/rlhf
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。