🎉

🧠 GSPO:シーケンスレベル最適化でLLM強化学習の安定性問題を解決

に公開

🔥 はじめに

大規模言語モデル(LLM)の強化学習において、モデル崩壊訓練不安定性は長年の課題でした。特に、Mixture-of-Experts(MoE)モデルや長文生成タスクでは、既存のGRPO(Group Relative Policy Optimization)アルゴリズムが深刻な不安定性を示し、しばしば回復不可能な訓練崩壊を引き起こしていました。

本記事では、Qwen3の開発チームが提案した**GSPO(Group Sequence Policy Optimization)**について詳しく解説します。GSPOは、トークンレベルからシーケンスレベルへの最適化パラダイム転換により、これらの根本的な問題を解決した革新的なアルゴリズムです。

📊 なぜこの問題が重要なのか

強化学習は、数学的推論やプログラミングなど高度な認知タスクにおいてLLMの能力を飛躍的に向上させる手法として注目されています。しかし、従来手法の不安定性により、大規模な計算資源を投入しても訓練が途中で破綻するリスクが常に存在していました。

🔍 従来手法(GRPO)の根本的問題

トークンレベル重要度サンプリングの限界

GRPOの核心的な問題は、重要度サンプリングの誤用にあります。重要度サンプリングの基本原理は以下の通りです:

\mathbb{E}_{z \sim \pi_{\text{tar}}}[f(z)] = \mathbb{E}_{z \sim \pi_{\text{beh}}}\left[\frac{\pi_{\text{tar}}(z)}{\pi_{\text{beh}}(z)} f(z)\right]

この手法が有効に機能するには、多数のサンプルに対する平均化が必要です(N \gg 1)。

しかし、GRPOは各トークン位置tで以下の重要度重み付けを適用します:

w_{i,t}(\theta) = \frac{\pi_{\theta}(y_{i,t} | x, y_{i,<t})}{\pi_{\theta_{\text{old}}}(y_{i,t} | x, y_{i,<t})}

この重みは単一のサンプルy_{i,t}に基づいているため、分布補正の役割を果たせず、代わりに高分散ノイズを勾配に導入してしまいます。

MoEモデルにおける専門家活性化の不安定性

MoEモデルでは、勾配更新後に同じ入力に対して活性化される専門家が大幅に変化します。Qwen3-30B-A3B-Baseの48層モデルでは、各RL勾配更新後に約10%の専門家が異なって活性化されることが観測されました。

この現象により、トークンレベルの重要度比w_{i,t}(\theta)が劇的に変動し、訓練の正常な収束を妨げていました。

🚀 GSPO:シーケンスレベル最適化への転換

核心的アイデア

GSPOの革新は、最適化の単位を報酬の単位に合わせることです:

  • 報酬はシーケンス全体に与えられる → 最適化もシーケンスレベルで行う
  • クリッピングはシーケンス単位で実行
  • 勾配はトークンを等しく重み付け

GSPO目的関数

GSPOは以下のシーケンスレベル最適化目的を採用します:

J_{\text{GSPO}}(\theta) = \mathbb{E} \left[ \frac{1}{G} \sum_{i=1}^{G} \min \left( s_i(\theta) \widehat{A}_i, \text{clip}(s_i(\theta), 1-\varepsilon, 1+\varepsilon) \widehat{A}_i \right) \right]

ここで、シーケンスレベル重要度比s_i(\theta)は長さ正規化されています:

s_i(\theta) = \left( \frac{\pi_{\theta}(y_i|x)}{\pi_{\theta_{\text{old}}}(y_i|x)} \right)^{\frac{1}{|y_i|}}

この比は「旧ポリシーから新ポリシーへの平均トークンレベル変化」を表現しており、理論的に明確な意味を持ちます。

勾配解析:なぜ安定するのか

GRPOの勾配(問題のある形)

\nabla_\theta \mathcal{J}_{\text{GRPO}}(\theta) \propto \sum_t \frac{\pi_{\theta}(y_t)}{\pi_{\theta_{\text{old}}}(y_t)} \nabla_\theta \log \pi_\theta(y_t)
  • 不均等な重み付け\pi_{\theta}/\pi_{\text{old}})が不安定な更新を引き起こす
  • MoEでは専門家切り替えがノイズを増幅

GSPOの勾配(安定した形)

\nabla_\theta \mathcal{J}_{\text{GSPO}}(\theta) \propto s_i(\theta) \cdot \frac{1}{|y_i|} \sum_t \nabla_\theta \log \pi_\theta(y_t)
  • 全トークンが等しく重み付けされる → 安定した方向性
  • シーケンス比s_i(\theta)が勾配全体をスケール → 保守的な更新

📈 実験結果

パラドックス:より多くのデータを捨てることで性能向上

GSPOの最も驚くべき発見の一つは、クリッピング率の大幅な増加にも関わらず、訓練効率が向上したことです:

指標 GRPO GSPO
クリッピング粒度 トークンレベル シーケンスレベル
クリッピング率 0.0013 0.15
有効トークン数 多い 少ないが高品質
勾配ノイズ 高い 低い

なぜこれが機能するのか?

  • GRPO:個別トークンをクリッピング → ほとんどのトークンが残存
  • GSPO:シーケンス全体をクリッピング → 1つの「悪い」応答で全トークンが破棄

GSPOの積極的なフィルタリングは、不安定でオフポリシーなサンプルを除去し、高シグナル・低ノイズのバッチを作成します。これにより、モデル崩壊を引き起こす破壊的更新を防止できます。

実世界での成果

GSPOはQwen3の優れた性能を支える基盤技術として実証されました:

MoEモデルの安定化

  • Routing Replayの必要性を完全に排除(18%のメモリオーバーヘッド削減)
  • Qwen3-235B-A22B-MoEの崩壊なし訓練を実現

長文脈RL問題の解決

  • トークンレベルノイズは長さに比例して悪化 → GSPOのシーケンス重視により100K+トークンでも安定

インフラストラクチャの簡素化

  • シーケンス尤度は訓練・推論エンジン間の数値的差異に対して頑健
  • 推論出力の直接使用が可能 → 分散RL の高速化

💡 まとめ:強化学習の新たな標準

GSPOは単なる改良ではなく、インフラストラクチャレベルの変革です。報酬の粒度と最適化を整合させることで、RLを脆弱にしていた根本的な問題を解決しました:

  1. シーケンスレベルクリッピングによる安定性 → ノイズが勾配に入る前にフィルタリング
  2. ルーティングに対する非感受性によるMoE対応 → 「専門家不安定性」の解消
  3. 高シグナル更新による効率性 → 無駄なステップの削減、収束の高速化

Qwen3の成功が証明するように、MoEモデルの訓練や推論限界の突破を目指すチームにとって、GSPOは必須の技術となるでしょう。

🔗 参考文献


この記事がGSPOの理解に役立ちましたら、ぜひいいね👍やコメント💬をお願いします!強化学習とLLMの最新動向について、さらなる議論ができれば幸いです。

Discussion