lightbulb-onGSPO 强化学习

在 Unsloth 中使用 GSPO(组序列策略优化)进行训练。

我们引入了 GSPO,这是一种变体 GRPO 由阿里巴巴的 Qwen 团队提出。他们注意到一个观察:当 GRPO 为每个标记采用重要性权重时,尽管优势本质上并不会随每个标记而缩放或改变。这导致了 GSPO 的创建,GSPO 将重要性分配到序列似然性上,而不是标记的单独似然性。

通过在 Unsloth 中设置来启用 GSPO importance_sampling_level = "sequence" 在 GRPO 配置中。下面可以看到这两种算法的差异,来自 Qwen 和阿里巴巴的 GSPO 论文:

GRPO 算法,来源: Qwenarrow-up-right
GSPO 算法,来源: Qwenarrow-up-right

在式(1)中可以看到,优势将每一行按比例缩放到标记对数概率上,然后对该张量求和。实质上,每个标记被赋予相同的缩放,尽管该缩放是给整个序列而不是每个单独标记的。下面可以看到一个简单的示意图:

GRPO 对数概率比按行用优势缩放

式(2)表明,对数概率比在计算后对每个序列求和并取指数,只对得到的序列比值按行乘以优势。

GSPO 序列比按行用优势缩放

启用 GSPO 很简单,你只需在 GRPO 配置中设置 importance_sampling_level = "sequence" 标志。

最后更新于

这有帮助吗?