LLM预训练后可能会输出不真实、有害或对用户无用的内容。
LLM 参数量巨大而且样本缺失或不均衡,传统有监督微调会导致训练不稳定和高方差问题。
策略优化算法PPO, Proximal Policy Optimization,通过CLIP限制更新幅度和稳定训练过程,使LLM更好地在各任务上对齐人类意图。
1 策略更新
策略梯度通过最大化累积期望回报来优化策略参数 𝜃。
具体来说,是最大化以下目标函数。
其中:
πθ(at|st)是当前策略在状态 st下采取动作 at 的概率。
πθold(at|st)是上一次策略更新后的策略。
𝐴̂𝑡是优势函数,表示在状态st下采取动作at相对于平均表现的优势。
2 CLIP机制
直接最大化目标函数J(θ),策略更新过大或过小,可能导致训练不稳定。
PPO 引入了CLIP机制,通过CLIP修正来限制策略更新的幅度。
rt(θ)是新旧策略在当前状态st和动作at下的概率比率,通常也称为奖励函数。
𝜖是一个超参数,通常设定0.1到 0.3之间,用于控制允许的策略更新幅度。
clip(rt(θ),1−𝜖,1+𝜖)将 rt(θ)限制在 [1−𝜖,1+𝜖][1−ϵ,1+ϵ] 范围内。
当优势𝐴̂𝑡>0时,如果rt(θ)过大即策略过度偏向动作at,目标函数被限制在 (1+𝜖)⋅𝐴̂𝑡内,限制了策略更新正向幅度。
当优势𝐴̂𝑡<0时,如果rt(θ),过小即策略过度减少动作at的概率,目标函数被限制在(1−𝜖)⋅𝐴̂𝑡,防止策略过度减少动作at的概率。
这种设计结合min操作了,确保了无论是增加还是减少动作at的概率,策略更新都不会超过预设的范围,从而在保证策略变化不剧烈的前提下,逐步优化策略,避免了传统方法中可能出现的不稳定和高方差问题。
3 CLIP参数
CLIP参数𝜖与策略更新的敏感度和稳定性有关。
较小𝜖,策略更新保守,但可能导致收敛速度较慢,难以快速适应环境变化。
较大𝜖,允许更快的策略更新,但可能导致训练不稳定,策略更新有过大风险。
通常,𝜖被设置在 0.1到 0.3之间,以在更新幅度和训练稳定性之间取得平衡。
4 KL机制
PPO目标函数的另一种变体是PPO-KL,使用KL散度进行正则化,限制大幅度的策略更新。
β在这里是动态调整的正则化系数,D_KL表示对KL计算结果求方差。
PPO-KL的目的也是解决PPO训练不稳定和高方差的问题。
reference
----
PPO损失函数 Loss
https://inuyashayang.github.io/AIDIY/RLHF_Pages/PPO_Loss/
A Comprehensive Survey of LLM Alignment Techniques: RLHF, RLAIF, PPO, DPO and More
https://arxiv.org/pdf/2407.16216