👻

Deepcoder-14Bによるコード推論の強化学習:分散強化学習の最前線

2025/04/14に公開

はじめに

大規模言語モデル(LLM)の発展により、コーディング支援や自動プログラミングの分野は急速に進化しています。その中でも「Deepcoder-14B」は、分散強化学習を駆使してコード推論能力を大幅に向上させ、o3-miniに匹敵する性能を達成した注目のモデルです。本記事では、Deepcoder-14Bの学習手法、直面した課題、そして実装された革新的な解決策について詳しく解説します。

背景:コード推論における強化学習の遅れ

近年、LLMの推論能力を強化するために強化学習(RL)が積極的に活用されています。しかし、数学分野に比べてコーディング分野での強化学習の適用は遅れていました。その主な理由は以下の2点です:

  1. 高品質データセットの不足:信頼性の高いコーディング問題と評価基準を含むデータセットの構築が進んでいなかった
  2. 効率的な報酬計算の難しさ:生成したコードを実行し、ユニットテストによる評価を分散環境で効率的に行う仕組みが確立されていなかった

これらの課題に対して、Deepcoder-14Bプロジェクトは革新的なアプローチで取り組みました。

Deepcoder-14Bの学習手法

データセット構築

Deepcoder-14Bチームは、既存のデータセットから以下の基準で問題を選別し、質の高い24,000問のデータセットを構築しました:

  • 簡単すぎる問題や重複する問題を除外
  • 5つ以上のユニットテストがある問題を優先的に選択

ユニットテストの数が少ない場合、モデルが答えを暗記するなどの「報酬ハック」が発生する傾向が観察されていました。十分な数のテストケースを用意することで、真に問題を解決する能力を評価できるようになります。

報酬設計の工夫

報酬関数は単純かつ厳格に設計されました:

  • 全てのユニットテストを通過した場合のみ報酬 = 1
  • それ以外の場合は全て報酬 = 0

部分的なテスト通過に対して報酬を与える設計も検討されましたが、その場合モデルが部分報酬を最大化するための「ハック」を学習してしまう傾向が見られたため、採用されませんでした。この「オール・オア・ナッシング」の報酬設計により、完全に機能するコードの生成に焦点を当てた学習が可能になりました。

コンテキスト長の段階的拡大

学習プロセスでは、コンテキスト長を段階的に拡大する手法が採用されました:

  • 最初は短いコンテキスト(例:16K)で開始
  • 学習が進むにつれて長いコンテキスト(32K)に移行

また、回答生成中にコンテキスト長の上限を超えた場合は、その例を学習から除外する工夫も行われました。これにより、コンテキスト長の変更による悪影響を防ぎながら、より複雑な問題への対応能力を向上させることができました。

学習アルゴリズム

学習には「GRPO+」アルゴリズムが使用されました。ただし、「Dr. GRPO」研究で指摘されているように、このアルゴリズムには回答が不適切に長くなるバイアスが含まれている可能性があります。このような副作用を認識しつつも、コード生成タスクにおける全体的な性能の向上が優先されました。

分散評価システムの革新

コード実行環境の構築

効率的な報酬計算のために、安全かつスケーラブルなコード実行環境が構築されました:

  • Together code interpreter:サンドボックス内で問題1つあたり約3セントで実行
  • 高い並列処理能力:100以上の問題を並列評価可能
  • 高速な処理:1分間あたり1000件の評価が可能
  • セキュリティ対策:標準入出力と評価用の最終出力のみを外部に公開し、その他の実行は安全に隔離

また、ローカル環境でのサンドボックス評価も可能にすることで、研究の再現性と拡張性を確保しています。

並列化の効率化

分散強化学習における大きな課題の一つが、問題ごとの実行時間のばらつきです。一部の問題解決に長時間かかると、それが全体のボトルネックとなります。Deepcoder-14Bチームはこの問題に対して「one-off pipelining」という革新的な手法を導入しました:

  1. バッチごとに実行し、全ての評価が完了するのを待つ
  2. 次のステップの学習を実行すると同時に、次のサンプリング評価も並列で開始する
  3. これにより、一時的に1ステップ古いモデルの方針(policy)が使われるものの、全体の実行効率が約2倍向上

この手法によるトレードオフ(最新のポリシーからやや遅れる)よりも、大幅な効率化のメリットが上回ると判断されました。

実装詳細と計算資源

Deepcoder-14Bの学習は、32台のH100 GPUを使用して約2.5週間かけて実施されました。この規模の計算資源を効率的に活用するために、上記の並列化手法が不可欠でした。

今後の課題と展望

分散強化学習の効率化問題は、今後も継続的な課題となると予想されています:

  • 実行時間のばらつきへの対応
  • オンラインポリシーの最新性と同期のバランス
  • より効率的な並列化アルゴリズムの開発

また、コード実行のセキュリティと効率性のバランスも重要な研究テーマとなるでしょう。

まとめ

Deepcoder-14Bの成功は、高品質なデータセット構築、厳格な報酬設計、そして効率的な分散評価システムの組み合わせによって実現されました。これらの取り組みは、単にコード生成の性能を向上させるだけでなく、分散強化学習のベストプラクティスを確立する上でも重要な貢献となっています。

コード推論能力の強化に向けた取り組みは今後も続き、Deepcoder-14Bの手法は他の領域における強化学習の応用にも影響を与えることでしょう。特に、実行時間のばらつきが大きいタスクにおける効率的な分散学習は、AI研究全体にとって重要な課題であり続けます。


この研究は、LLMの推論能力向上において強化学習が持つ可能性を示すと同時に、実装上の様々な課題と解決策を明らかにしました。高度なコーディング支援や自動プログラミングの実現に向けて、重要な一歩と言えるでしょう。

Discussion