lightbulb-onGSPO Reinforcement Learning

Trainiere mit GSPO (Group Sequence Policy Optimization) RL in Unsloth.

Wir führen GSPO ein, eine Variante von GRPO entwickelt vom Qwen-Team bei Alibaba. Sie stellten die Beobachtung fest, dass GRPO Wichtigkeitsgewichte für jedes Token verwendet, obwohl sich Vorteile grundsätzlich nicht mit jedem Token skalieren oder ändern. Dies führte zur Entwicklung von GSPO, das nun die Wichtigkeit der Sequenzwahrscheinlichkeit anstelle der einzelnen Token-Wahrscheinlichkeiten der Tokens zuweist.

Aktivieren Sie GSPO in Unsloth, indem Sie importance_sampling_level = "sequence" in der GRPO-Konfiguration einstellen. Der Unterschied zwischen diesen beiden Algorithmen ist unten zu sehen, sowohl aus dem GSPO-Paper von Qwen und Alibaba:

GRPO-Algorithmus, Quelle: Qwenarrow-up-right
GSPO-Algorithmus, Quelle: Qwenarrow-up-right

In Gleichung 1 ist zu sehen, dass die Vorteile jede der Zeilen in die Token-Logprobs skalieren, bevor dieser Tensor summiert wird. Im Wesentlichen erhält jedes Token dieselbe Skalierung, obwohl diese Skalierung der gesamten Sequenz und nicht jedem einzelnen Token gegeben wurde. Ein einfaches Diagramm dazu ist unten zu sehen:

GRPO Logprob-Verhältnis zeilenweise mit Vorteilen skaliert

Gleichung 2 zeigt, dass die Logprob-Verhältnisse für jede Sequenz summiert und nach der Berechnung der Logprob-Verhältnisse exponiert werden und nur die resultierenden nun Sequenz-Verhältnisse zeilenweise mit den Vorteilen multipliziert werden.

GSPO Sequenz-Verhältnis zeilenweise mit Vorteilen skaliert

GSPO zu aktivieren ist einfach, alles, was Sie tun müssen, ist das importance_sampling_level = "sequence" Flag in der GRPO-Konfiguration zu setzen.

Zuletzt aktualisiert

War das hilfreich?