KL-散度,或称为库尔巴克-莱布勒散度,是在强化学习领域经常遇到的概念,特别是在使用Proximal Policy Optimization(PPO)算法时。它是两个概率分布之间差异的数学度量,帮助我们了解一个分布与另一个分布的差异。在PPO的上下文中,KL-散度在引导优化过程中发挥关键作用,以确保更新的策略不会过于偏离原始策略。
在PPO中,目标是通过根据与环境交互获得的奖励来迭代更新其参数,为代理找到一个改进的策略。然而,过于激进地更新策略可能导致不稳定的学习或剧烈的策略更改。为了解决这个问题,PPO引入了一个限制,限制了策略更新的程度。通过使用KL-散度来强制执行这个限制。
要理解KL-散度的工作原理,想象一下我们有两个概率分布:原始LLM的分布和一个RL更新LLM的新提议分布。KL-散度度量了在我们使用原始策略对来自新提议策略的样本进行编码时获得的信息的平均量。通过最小化这两个分布之间的KL-散度,PPO确保更新的策略保持接近原始策略,防止可能对学习过程产生负面影响的剧烈变化。
一个可以用来使用强化学习训练变压器语言模型的库,使用PPO等技术的是TRL(Transformer Reinforcement Learning)。您可以在这个链接中了解有关这个库以及其与PEFT(参数高效微调)方法(如LoRA(低秩调整))的集成的更多信息。下图显示了TRL中的PPO训练设置的概览。
Reference
https://www.coursera.org/learn/generative-ai-with-llms/supplement/JESIK/kl-divergence