DeepSeek-R1を読む
イントロダクション
DeepSeek-R1のテクニカルペーパーを読んだので,個人的に面白いと思ったポイントをまとめました.DeepSeek-R1がどのようにしてできたかを中心にまとめたので,モデルの評価などにはあまり触れません.(DeepSeek-R1がすごい!ってことは周知の事実だと思うので)
私の説明は大いに間違いを含んでいる可能性もあるので,悪しからず.
バックグラウンド
Open AIのo1シリーズが高い推論能力を持つことで話題になっているが,過去,プロセスリワードモデルや強化学習,モンテカルロ木探索やビームサーチといった手法ではo1のような高い推論能力は得られなかった.
DeepSeek-R1シリーズでは純粋な強化学習にフォーカスされている.具体的には,(GPT-4o相当の)DeepSeek-V3-Baseをベースモデルに大規模な強化学習を施して高い推論能力を得た.強化学習だけでトレーニングをしたDeepSeek-R1-Zeroはユーザーフレンドリーではなかった.そこで,DeepSeek-V3-Baseに対して適切なsupervised fine-tuning(SFT, 教師ありファインチューニング)や強化学習を行うと,扱いやすく推論能力の高いDeepSeek-R1が完成したという流れになっている.
DeepSeek-R1-Zero
DeepSeek-R1-Zeroはどのようにして生まれたのだろうか?DeepSeek-R1-Zeroはsupervised fine-tuning(SFT)なしで,ベースモデルに対してダイレクトに強化学習が行われた.
過去の強化学習では,教師ありデータに依存していたが,DeepSeek-R1-Zeroでは,純粋な強化学習を通した"self-evolution"によって進化した.
リワードモデル
DeepSeek-R1-Zeroで最も注目するべきなポイントは,そのリワード(報酬)モデルにあると思う.
DeepSeek-R1-Zeroのトレーニングでは,ルールベースのリワードシステムが適用されていて,ニューラルネットワークによるリワードシステムを利用していない.
ルールベースのリワードシステムは,
- 結果が一意に定まるような数学的な問題などで,精度報酬をフィードバックするモデル
- 思考のプロセスを<think>と</think>で囲ませるためのリワードモデル
で構成されている.
ニューラルネットワークによるリワードモデルを採用していない理由として,
- 大規模な強化学習では,リワードハッキング(報酬がうまく働かず望まない方向に学習が進むこと)に苦しむ
- リワードモデルをトレーニングするために追加のリソースが必要になり,DeepSeek-R1-Zero全体の学習パイプラインも複雑になる
などが挙げられている.
DeepSeek-R1-Zeroの欠点 & DeepSeek-R1へ
DeepSeek-R1-Zeroでは,上のリワードで強化学習した結果,強力な推論能力を発揮した一方で,推論プロセスの読みやすさや,言語の混在などの課題があった.そこで人間にやさしいコールドスタートデータで強化学習を利用してDeepSeek-R1がつくられた.
DeepSeek-R1
DeepSeek-R1では,先で挙げられたDeepSeek-R1-Zeroの可読性の低さに欠けていた点に加えて,
- 少量の高品質データを組み込むことで,推論パフォーマンスを向上させたり,収束を加速(おそらく強化学習の収束の意)させたりできるか?
- Chains of Thought(CoT)だけでなく,より一般的(おそらく数学やコーディング以外のタスクの意)に強力な能力を示し,ユーザーフレンドリーなモデルをトレーニングするか?
といった課題に取り組んでいる.
Step 1. CoTデータセットとSFT
DeepSeek-R1ではDeepSeek-R1-Zeroとは対照的に,**コールドスタートの段階でCoTのsupervised fine-tuning(SFT)**が行われている.
CoTデータセットは,
- 長いCoTを例に挙げて,内省と検証で詳細な回答を生成するようにプロンプト
- DeepSeek-R1-Zeroの出力を読み取りやすい形式で収集する
- 人間が後処理
こうして何千ものデータを得て,それらを使ってDeepSeek-V3-Baseをトレーニングし直した.
推論プロセス->要約の出力形式を定義することで可読性が向上し,人間の後処理によってより良いパフォーマンスを発揮するポテンシャルがある,とされている.
Step 2. DeepSeek-R1-Zeroと同じ強化学習
DeepSeek-R1-Zeroと同様に,定義と答えが明確なコーディングや数学,科学,論理推論などのタスクにおいて**(ルールベースの)強化学習**が行われた.
Step 3. 再びSFT
Step 2の強化学習を通して推論能力を収束させたら,推論だけではなく,ライティングやロールプレイングといった汎用的なタスクでもデータを集めsupervised fine-tuning(SFT)が行われた.合計約80万のデータで,後述する小型モデルへの蒸留でも利用される.
推論能力の磨き上げ
今まではルールベースの報酬をして評価できるデータのみを集めていたが,DeepSeek-V3を利用して追加のデータを得た.言語の混在や,長すぎるパラグラフ,コードブロックを含んだCoTデータはフィルタリングされて,約60万の推論関連のサンプルを収集している.
非推論データ
ライティングや翻訳,QAなどの非推論データは,DeepSeek-V3のパイプラインを採用して,DeepSeek-V3のSFTデータセットを再利用する形で約20万の推論とは関係のないデータを集めた.
Step 4. 再び強化学習
DeepSeek-R1-ZeroやStep 2の強化学習と同様に,ルールベースの報酬を使用して,数学やコーディング,論理推論の強化学習が再び行われた.
加えて,人間の好みの出力を掴むために,ルールベースではなく,DeepSeek-V3で構築されたリワードモデルで強化学習された.ここでは,回答の最終的な要約部分に焦点を当て,推論プロセスにはあまり手を出さないでいる.
更に加えて,生成プロセス中で発生する潜在的なリスク,バイアス,有害コンテンツを特定・軽減するために,推論プロセスと要約の両方のリワードもされている.
こうして最終的なリワードを与えて推論プロセスをできるだけ保護しながら,人間好みで倫理的な(?)DeepSeek-R1の最終的な整形を行われている.
蒸留で小型モデルをつくる
Qwen2.5やllama3.1/3.3に対して,先のStep 3で収集された約80万のデータを使用してsupervised fine-tuning(SFT)のみを利用して,蒸留された.これらの蒸留モデルには強化学習のステップは組み込まれていないが,technical paper上では,強化学習を組み込むことでモデルのパフォーマンスが向上する可能性が示唆されている.
感想
個人的に一番のキモは,メインの推論能力獲得において,ルールベースの強化学習が使用されたことだと思います.そのほか,ファインチューニングや,DeepSeek-V3を利用した強化学習との使い分けが,DeepSeek-R1のような使いやすいLLMの構築をサポートしています.今後それらの役割分担は,きっと探るべき対象になると思います.また強化学習も,おそらく計算資源や時間の関係から蒸留モデルには適用されていませんが,小さなモデルでも強化学習済みのモデルが出てきて高い性能を発揮することができたら,スケーリング則を打ち破るのかもしれません.
Discussion