HUOXIU

個人開発者が推論モデルをトレーニングできるのか?GRPOテクノロジーの詳細な解説。

編集者注:推論モデルのトレーニングにコンピューティング予算を使い果たしてしまうのではないかと、まだ不安を感じていますか?オープンソースの小規模モデルが数学の問題に直面した際に「機能不全に陥る」場合、どうすれば低コストでパフォーマンスのボトルネックを打破できるでしょうか?

従来の RLHF では数百万のコンピューティング リソースが必要となり、多くのチームが強化学習の世界に進出することさえ躊躇しています。乱雑な形式、論理ギャップ、偏った回答など、モデル推論の永続的な問題も AI 製品の展開を妨げているのでしょうか。

本稿では、DeepSeekの画期的なGRPO(Group Relative Policy Optimization)技術を詳細に分析します。この革新的な技術は、強化学習に必要な計算リソースをほぼ半減させ、LoRAと組み合わせることで、一般的なコンシューマーグレードのGPUでもモデル学習を可能にします。著者らはハンズオンテストを通じて、1パラメータのLlama 3.2モデルをわずか16GBのGPUメモリで推論可能なモデルへと変換することに成功しました(詳細は後続の記事で紹介します)。これは、強化学習のリソース要件に関する従来の認識を完全に覆すものです。

著者 | グレッグ・シェーニンガー

編纂者:岳陽

少し前に、DeepSeek-R1 の背後にある技術的原理について詳しく説明しましたが、「グループ相対ポリシー最適化 (GRPO)」と呼ばれるトレーニング プロセスで使用される重要な手法については詳しく説明しませんでした。

GRPOは本質的に、モデルの推論能力を向上させるために設計された強化学習アルゴリズムです。この手法は、研究論文「DeepSeekMath:オープン言語モデルにおける数学的推論の限界を押し上げる」[1]で初めて発表され、その後、DeepSeek-R1の学習後段階に適用されました。

論文「DeepSeek-R1:強化学習によるLLMの推論能力のインセンティブ化」[2]において、研究チームは、基本的な事前学習済み言語モデルから最終的な推論モデルに至るまでの完全な構築パスを詳細に説明しました。これまでGRPOの数学的原理やコード実装については深く検討していませんでしたが、本稿ではGRPOの技術的詳細を徹底的に分析し、読者がこの技術の核心を理解し、実務に適用できるよう支援します。

01 要点のまとめ: DeepSeek-R1がGRPO技術を活用する方法

理解を助けるために、まずベースモデルから推論モデルまでの学習プロセス全体を概説します。このプロセスでは、教師ありファインチューニング(SFT)とグループ相対ポリシー最適化(GRPO)を交互に反復することで、モデル能力を飛躍的に向上させます。

1. 教師あり微調整(SFT)段階

a.コールド スタート トレーニング: 手動でラベル付けされた数千の高品質データ ポイントを使用してモデルを微調整します。

b.データ検証: すべてのサンプルは信頼性を確保するために手動でレビューされます。

2. GRPO強化学習フェーズ

a.推論軌跡のトレーニング: 構造化された推論プロセス (ラベル付けされた推論軌跡) を生成するようにモデルをガイドします。

b.三重決定論的報酬: 形式の適合性、論理的一貫性、正解に基づいて報酬メカニズムが設計されます。

3. 強化されたSFTステージ

a.合成データ生成: 800,000 個の合成トレーニング サンプルを作成してフィルター処理します。

b.モデルの自己チェックとフィルタリング:「LLM As A Judge」メカニズムを通じて誤った応答を排除します。

4. GRPO最終調整段階

a.値のキャリブレーション: モデル出力が実用的かつ安全であることを確認します。

本稿では、大規模モデル推論能力の飛躍的進歩を推進するこの重要な技術を習得できるよう、GRPOの詳細を掘り下げて解説します。著者は既にGRPOに基づく小規模モデルの学習実験を実施しており、その後、完全なコードとエンジニアリングの実践の詳細を公開し、再現可能な例を通して理論的な知識と実際の応用を結び付けていきます。

02 GRPO が重要な理由

TLDRは計算要件を大幅に削減し、強化学習プロセスを簡素化します。ChatGPT(PPO)で使用されているHuman Feedback-Based Reinforcement Learning(RLHF)と比較すると、必要な計算リソースはほぼ半分です。LoRAと組み合わせることで、GPUが不足しているシステムでも強化学習のトレーニングを実行できます。実際に試してみましたが、確かにうまくいきました。1パラメータのLlama 3.2モデルを、わずか16GBのVRAMしか必要としない推論モデルに変換することに成功しました。コードとハードウェア要件の詳細については、後続の記事で説明します。

クラウドGPUサービスを使えば、自社のガレージから100ドル未満で推論モデルを学習できます。自社のハードウェアで小規模なモデルを実行するのは実質的に「無料」です。その根底にある原理は何でしょうか?次のセクションでは、PPOからGRPOへの進化について説明します。

03 PPOからGRPOへ

ChatGPTの背後にある強化学習(RL)技術はPPO(近似ポリシー最適化)であると噂されています。このプロセスは、InstructGPTの論文[3]で提案され、単に次の単語を予測するのではなく、指示に従うことができるモデルを作成することを目的としていました。

学習プロセスでは、大量のラベル付きデータを収集する必要があります。特定のユーザークエリに対して、モデルは複数の候補応答を生成する必要があります。これらの候補応答は、人間またはAIによってループ内でラベル付けされ、品質の高い順に並べ替えられます。このデータは、「報酬モデル」の学習に使用できます。報酬モデルは、新たに受信したプロンプトに対する「報酬値」を計算します。この報酬値は、特定のユーザークエリに対するモデルの応答品質を反映する必要があります。

並べ替えられラベル付けされたデータがすべて収集されると、PPO を開始して大規模言語モデル (LLM) のトレーニングを開始できます。

問題は、PPOのトレーニングには非常にコストがかかる可能性があることです。GRPO論文[1]の関連図は、PPOとGRPOプロセスに関与する様々なLLMを示しています。下の青と黄色の枠内には、合計4つの異なるLLMが含まれています。

上の図の用語を理解しやすくするために、ここで簡単な定義をいくつか示します。

  1. ポリシー モデル- 現在トレーニング中の LLM の別名。
  2. 参照モデル- トレーニングされた元の LLM の固定バージョン。
  3. 報酬モデル- 人間の好みに基づいてトレーニングされたモデル (上記の InstructGPT 技術から)。
  4. 価値モデル- 特定のアクションの長期的な報酬を推定しようとするモデル。

04. GRPOを使ってメモリ使用量を削減する

PPOアルゴリズムでは、ポリシーモデルと価値モデルの両方に学習可能なパラメータが含まれており、これらはバックプロパゲーションによって最適化する必要があります。バックプロパゲーション処理は大量のメモリリソースを消費します。上記のアーキテクチャ図からわかるように、GRPOアルゴリズムでは価値モデルモジュールが削除されます。

PPOアルゴリズムは、それぞれが膨大なメモリと計算リソースを必要とする4つの大規模言語モデル(LLM)を組み合わせて使用​​します。価値モデルと報酬モデルは通常、学習対象の言語モデルと同数のパラメータを持ちます。参照モデルは通常、初期学習フェーズの言語モデルの固定コピーです。

この実装方法は、高い計算コストがかかるだけでなく、多数の動的コンポーネントの調整と複数のモデルの最適化が必要になります。コンポーネントの数が増えるほど、最適化の難易度は高くなります。GRPOは、合理化されたアーキテクチャを通じてシステムの複雑さを効果的に軽減します。

興味深いことに、H100 でさまざまなパラメータ サイズのモデルをテストし、GRPO を使用してモデルを微調整するのがどれほど簡単かを確認しました。

詳細な技術情報については、関連するドキュメントを参照してください。

https://www.oxen.ai/blog/grpo-vram-requirements-for-the-gpu-poor

すべてのシステム要件のソースを理解したら、オープンソース プロジェクトへの貢献を開始できます。または、最近 trl リポジトリで見たこの PR のように、独自の機械学習ライブラリの最適化を開始することもできます。

05 グループの相対的優位性

強化学習において、言語モデル(LLM)から得られる主な信号は「アドバンテージ」を表す「A」です。この信号は、元の言語モデルの重みを更新するための指示を与えます。アドバンテージの値が高い場合、モデルが現在の行動を繰り返すように促す必要があります。アドバンテージの値が低い場合、モデルが別の行動を試すように誘導する必要があります。

PPOアルゴリズムにおいて、従来の価値モデルの中核となるタスクは、生成されたコンテンツの品質を評価すること、つまり、そのコンテンツが高い報酬を得る確率を予測することです。この評価を実現するには、価値判断モジュールとして大規模な言語モデルを学習する必要があります。では、GRPOはどのようにして価値モデルへの依存から脱却するのでしょうか?

最初のトリックは、GRPO が単一のクエリに対して単一の出力を生成しなくなり、代わりに複数の候補の回答を生成するようになることです。

具体的には、問題が数学の問題である場合、モデルは複数の異なる解法を試す可能性があります。次の数学の問題を例に挙げてみましょう。

カーティスさんの農場には325羽の鶏がいます。そのうち28羽は雄鶏で、残りは雌鶏です。雌鶏20羽は卵を産みませんが、残りの雌鶏は卵を産みます。カーティスさんの農場には産卵鶏が何羽いますか?

カーティスさんの農場には325羽の鶏がいます。そのうち28羽は雄鶏で、残りは雌鶏です。雌鶏のうち20羽は卵を産みません。産卵鶏は何羽いますか?

モデルは複数の解決策を試行することがありますが、そのうちのいくつかは正しいもの (回答 227) であり、いくつかは正しくありません (回答 305)。

正しい推論パス:

まず、鶏が何羽いるか調べてみましょう。鶏の総数は325羽で、そのうち28羽は雄鶏です。つまり、鶏の数は325-28=297羽です。この297羽のうち、20羽は卵を産まないので、産卵鶏の数は297-20=277羽です。

277

まず、鶏が何羽いるか見てみましょう。鶏は合計325羽、雄鶏は28羽います。したがって、鶏の数は325-28=297羽です。この297羽のうち、20羽は卵を産まないので、産卵鶏の数は297-20=277羽です。

277

誤った推論パス:

産卵鶏の数を求めるには、鶏の総数から産卵しない20羽を引く必要があります。つまり、産卵鶏の数は325羽 - 20羽 = 305羽です。

305

産卵鶏の数を求めるには、鶏の総数から非産卵鶏20羽を引く必要があります。したがって、産卵鶏の数は325羽 - 20羽 = 305羽となります。

305

次に、各出力に対する応答の質に基づいて「報酬」を計算します。異なる応答属性を評価する複数の報酬関数が存在する可能性があります。現時点では、これらの報酬関数はブラックボックスとして扱っていますが、数値的な結果を返すことは分かっています。応答の質が高いほど値が高く、質が低いほど値が低くなります。例えば、以下のようになります。

  1. フォーマットスコア = 1.0
  2. 回答(正解率) = 0.0
  3. 一貫性(論理的一貫性) = 0.5

GRPOは、全ての出力に対する報酬値®を取得した後、報酬値の平均μと標準偏差σを計算し、グループ相対優位性Aを生成します。具体的な計算式は以下のとおりです。

この式は機械学習の特徴量エンジニアリングにおいて非常に有用です。任意の数値を、より容易に学習可能な正または負の信号に正規化できるからです。直感的に言えば、「このデータポイントは平均値から何標準偏差ずれているか?」ということを意味します。

いくつかの例を見てみましょう。

ネイティブの NumPy コードを使用して表現すると、次のようになります。

別の値のセットを試してください:

正規化により、報酬値は平均値(0.0)を中心とする相対的な優位性値に変換されます。正の値は平均よりも優れていることを示し、負の値は平均よりも劣っていることを示します。これにより、「現在のプロンプト語を与えられた場合、平均的な応答はどの程度優れているか」というベンチマークが確立されます。トレーニング中は、パフォーマンスの高い出力を強化(確率を高める)し、パフォーマンスの低い出力を抑制(確率を下げる)することで、モデルの最適化の方向性を決定します。

これは、従来の価値モデルの目標、つまり与えられた応答に対する報酬値を予測することに似ています。現在、言語モデルを学習しているので、温度パラメータを調整するだけで複数の候補回答を生成できます。生成されたすべての回答の平均報酬値は、現在のモデルのパフォーマンスを示す優れた指標となり、行動を強化する必要があるかどうかを判断できます。

06 KLダイバージェンス

この式の最後の項は KL ダイバージェンス項です。

数学的な詳細を掘り下げる必要はありません。そのため、トレーニング中は常に「参照モデル」を保持します。新しいモデルが元のモデルから大きく逸脱することは望ましくありません。各トークンについて、新しいモデルの予測が元のモデルの予測から大きく逸脱しないようにする必要があります。

KLダイバージェンスを適用する直接的な理由は、初期モデルが既に一貫性のある文を生成し、指示に従う能力を備えているためです。新しいモデルが「報酬ハッキング」、つまり報酬信号内の元のモデルと一致しない特定の特徴を悪用することで不正行為を行うことは避けたいと考えています。例えば、モデルが「pamplemousse」(フランス語でグレープフルーツを意味し、発音が興味深く珍しい)という単語を使用すると高い報酬が得られると判断したとしても、この単語は事前学習中にはあまり使用されないという状況では、モデルがこの単語選択行動に過度に依存することを防ぐ必要があります。

これらの要素を統合すると、完全な最終方程式が得られます。

あるいは、私たちの信頼できる「専門家エリック」が言ったように...この数式は実際よりも複雑に見えます...

07 報酬シグナルメカニズム

DeepSeek-R1-Zero 研究の画期的な点は、「ニューラル報酬モデル」を完全に放棄することでメモリ消費をさらに削減した点にあります。

これは何を意味するのでしょうか?簡単に言うと、正規表現と文字列マッチング技術を直接用いて報酬信号を生成します。研究チームは、この手法によって「報酬ハッキング」の問題を回避し、トレーニングプロセス全体を簡素化できると考えています。

上記の「精度報酬」と「フォーマット報酬」のルールをコードに変換すると、コード実装は次のようになります。

参照:

https://gist.github.com/willccbb/4676755236bb08cab5f4e54a0475d6fb

トレーニング中は追加の報酬モデル(LLM)は必要ありません。ポリシーモデルと参照モデルのみがメモリ消費の主なソースとして保持されます。必要なLLMの数を4つから2つに減らすことで、GPUリソ​​ース要件が大幅に削減されます。

もし直感的に何かがおかしいと感じ、「この報酬関数には一般化能力があるのだろうか?」と疑問に思ったなら、その通りです。この種の報酬メカニズムは、特定の事前定義されたタスク(数学的推論やフォーマットなど)においてのみ優れたパフォーマンスを発揮しますが、他の実用的なシナリオには拡張できません。例えば、あるモデルはフォーマットされた数学的解答の生成には優れているものの、自由記述式の対話や創造的な文章作成には苦労するかもしれません。

私の予測では、「苦い教訓」[4]がここで繰り返されるでしょう。十分な計算リソースとデータがある場合、モデルは自律的に学習する傾向が強くなります。手動でルールをコード化する量を減らし、モデルに自律的な探索を任せるほど、パフォーマンスは向上します。現在のGRPO報酬メカニズムには依然として人間の介入の痕跡が残っています。報酬信号の重みをモデル自身に学習させないのはなぜでしょうか?

それでも、様々な報酬メカニズムを実験するのは非常に興味深いものです。GRPOの優れた点は、報酬関数(入力応答、出力値)をコードで定義できれば、それに応じて最適化できることです。外部APIを介して他のLLMを呼び出すことで、報酬シグナルを生成することさえ可能です。GRPOのトレーニング閾値が低いため、今後数週間から数ヶ月のうちに、開発者は様々な独創的な報酬メカニズムの設計を模索し始めると予想しています。

読んでくれてありがとう!

このブログを楽しんで、新しいことを学んでいただければ幸いです。

終わり

今週のインタラクティブコンテンツ🍻

❓この記事で「100ドル未満で推論モデルをトレーニングできる」と述べられていますが、それについてどう思われますか?ぜひコメント欄でご意見をお聞かせください。

🔗記事内のリンク🔗

[1]https://arxiv.org/abs/2402.03300

[2]https://arxiv.org/abs/2501.12948

[3]https://arxiv.org/abs/2203.02155

[4]http://www.incompleteideas.net/IncIdeas/BitterLesson.html

オリジナルリンク:

https://ghost.oxen.ai/why-grpo-is-important-and-how-it-works/