論文 · arXiv 2412.19437
DeepSeek-V3 テクニカルレポート
DeepSeek-V3 Technical Report
3行まとめ
- 🎯 フロンティア規模のMoEモデルは膨大な計算バジェットを必要とし、補助バランシング損失による性能低下や、ノード間の大規模なall-to-all通信ボトルネックに直面しています。
- 🔧 Multi-head Latent Attention (MLA)、補助損失フリーバランシングを備えたDeepSeekMoE、きめ細かい量子化を伴うFP8混合精度学習、DualPipeオーバーラップスケジューリング、Multi-Token Prediction (MTP)を採用しています。
- 📈 671Bパラメータ(活性化37B)を14.8Tトークンで、わずか2.788MのH800 GPU時間(約557.6万ドル)で学習し、オープンソースにおけるSOTAスコアを達成するとともに、GPT-4oやClaude-3.5-Sonnetと競合する性能を実現しました。
概要
総パラメータ数671B、各トークンに対する活性化パラメータ数37Bを備えた強力なMixture-of-Experts(MoE)言語モデルであるDeepSeek-V3を紹介します。効率的な推論とコスト効率の高い学習を実現するため、DeepSeek-V3はDeepSeek-V2で十分に検証されたMulti-head Latent Attention(MLA)およびDeepSeekMoEアーキテクチャを採用しています。さらに、DeepSeek-V3は負荷分散のための補助損失フリー(auxiliary-loss-free)戦略を先駆けて導入し、性能をより強化するためのマルチトークン予測(MTP)学習目標を設定しています。多様で高品質な14.8兆トークンでDeepSeek-V3を事前学習し、その後に能力を最大限に引き出すための教師あり微調整(SFT)および強化学習(RL)ステージを実施しました。包括的な評価により、DeepSeek-V3は他のオープンソースモデルを凌駕し、主要なクローズドソースモデルに匹敵する性能を達成することが明らかになりました。優れた性能にもかかわらず、DeepSeek-V3の完全な学習にはわずか278.8万H800 GPU時間を要したのみです。さらに、その学習プロセスは極めて安定しています。全学習プロセスを通じて、回復不能な損失スパイクやロールバックは一切発生しませんでした。モデルのチェックポイントは https://github.com/deepseek-ai/DeepSeek-V3 で公開されています。
英語の原文概要
We present DeepSeek-V3, a strong Mixture-of-Experts (MoE) language model with 671B total parameters with 37B activated for each token. To achieve efficient inference and cost-effective training, DeepSeek-V3 adopts Multi-head Latent Attention (MLA) and DeepSeekMoE architectures, which were thoroughly validated in DeepSeek-V2. Furthermore, DeepSeek-V3 pioneers an auxiliary-loss-free strategy for load balancing and sets a multi-token prediction training objective for stronger performance. We pre-train DeepSeek-V3 on 14.8 trillion diverse and high-quality tokens, followed by Supervised Fine-Tuning and Reinforcement Learning stages to fully harness its capabilities. Comprehensive evaluations reveal that DeepSeek-V3 outperforms other open-source models and achieves performance comparable to leading closed-source models. Despite its excellent performance, DeepSeek-V3 requires only 2.788M H800 GPU hours for its full training. In addition, its training process is remarkably stable. Throughout the entire training process, we did not experience any irrecoverable loss spikes or perform any rollbacks. The model checkpoints are available at https://github.com/deepseek-ai/DeepSeek-V3.
論文解説
問題設定と動機
フロンティアの大規模言語モデル(LLM)はAGIに向けた差を縮め続けていますが、オープンソースモデルのスケーリングには通常、極めて高い計算バジェットとインフラが求められます。さらに、Mixture-of-Experts(MoE)アーキテクチャのスケーリングは、特有のエンジニアリング課題をもたらします:
- 補助損失による性能低下: 従来の補助負荷分散損失はルーティングの柔軟性を大きく制限し、言語モデリング能力を損ないます。
- 通信ボトルネック: ノード間にまたがるきめ細かなルーティングは深刻なall-to-all通信オーバーヘッドを引き起こし、計算対通信の比率が1:1に達することも少なくありません。
- 数値精度とメモリ: 標準的な16ビット学習はメモリ消費が激しく、単純なFP8学習は外れ値アクティベーションやTensor Coreの限定的な累積精度に起因する数値的不安定性やアンダーフローに悩まされます。
DeepSeek-V3は、協調設計されたアルゴリズム戦略とハードウェアレベルのインフラ最適化によってこれらの課題に対処し、最小限の学習コストでフロンティア性能を達成します。
主なアイデア
- アーキテクチャの効率性: Multi-head Latent Attention (MLA) による低ランクKey-Value圧縮と、DeepSeekMoE によるきめ細かいルーティングエキスパート(共有1 + ルーティング256エキスパート、うち8つを活性化)を組み合わせます。
- 補助損失フリー(Auxiliary-Loss-Free)負荷分散: 性能低下を招く補助損失を動的に更新されるエキスパートバイアス項に置き換え、ルーティングの破綻(コラプス)を防ぎつつ明確なドメイン特化を可能にします。
- マルチトークン予測(Multi-Token Prediction; MTP): 因果チェーンを保持しながら各位置で連続する複数の未来のトークンを順次予測することで、学習シグナルを豊富にし、投機的デコーディング(1.8倍のTPS)をサポートします。
- DualPipe並列処理: フォワードおよびバックワード計算を、ノード間MoE all-to-allおよびPP通信と完全にオーバーラップさせる双方向パイプラインスケジュールです。
- FP8混合精度学習: すべてのテンソルにE4M3を使用し、タイル単位()のアクティベーションスケーリングとブロック単位()の重みスケーリングを適用。さらにステップごとに積算をCUDA CoreレジスタにFP32でオフロードします。
- 推論の蒸留(Reasoning Distillation): DeepSeek-R1シリーズから、検証やリフレクションを伴う長文思考(long-CoT)パターンをSFTおよびRLの事後学習ステージに直接蒸留します。
手法
1. Multi-head Latent Attention (MLA)
トークンの隠れ状態 に対し、MLAはKVキャッシュを共有潜在ベクトル に、クエリ状態を に圧縮します:
推論時、キャッシュ対象は と のみに限定されるため、メモリフットプリントが劇的に削減されます。
2. 補助損失フリーバランシングを備えたDeepSeekMoE
フィードフォワードネットワークの出力は、 個の共有エキスパートと 個のルーティングエキスパートを結合します:
エキスパート親和性は として計算されます。ゲーティング値 は を正規化して算出され、ルーティング決定には動的バイアス項 が組み込まれます:
ステップ終了時にエキスパート が過負荷の場合、 となり、負荷が不足している場合は となります()。補完として極めて小さなシーケンス単位のバランス損失()も使用されます。
3. Multi-Token Prediction (MTP)
予測深度 ()において、表現 はシフトされたトークン埋め込みと結合されます:
総学習損失には が加算されます。
実験結果
- 事前学習バジェット: わずか2.664MのH800 GPU時間で14.8Tトークンを事前学習(2048基のGPUで1Tトークンあたり3.7日)。完全な学習でも2.788M GPU時間(1時間あたり2ドルとして約557.6万ドル)しか消費しませんでした。
- 安定性: 14.8Tトークン全体を通じて、ロールバックはゼロ、回復不能な損失スパイクもゼロでした。
- ベースモデルのベンチマーク:
- MMLU(87.1 vs. 84.4)、BBH(87.5 vs. 82.9)、HumanEval(65.2 vs. 54.9)、MATH(61.6 vs. 49.0)でLLaMA-3.1 405B Baseを凌駕。
- C-Eval(90.1 vs. 89.2)およびGSM8K(89.3 vs. 88.3)でQwen2.5 72B Baseを凌駕。
- チャットモデルのベンチマーク:
- 数学・コード: non-o1における最高スコアを記録:MATH-500(90.2)、AIME 2024(39.2)、LiveCodeBench CoT(40.5)。
- 幅広い知識: MMLU(88.5)、MMLU-Pro(75.9)、GPQA-Diamond(59.1)。
- オープンエンド評価: Arena-Hardで85%超の勝率(85.5%)を記録し、長さ制御されたAlpacaEval 2.0で70.0%を達成。
限界と未解決の課題
- 推論時の最小ハードウェア要件: 効率的なサービングには大規模なデプロイメントユニット(プリフィルユニットに32 GPU、デコーディングユニットに320 GPU)が必要であり、小規模な組織にとってはインフラの障壁となります。
- ノード間SM割り当て: GPUあたり20個のSMが、行列演算ではなくノード間all-to-all通信ルーチンの管理に厳密に専従させられました。
- 事実性の差異: 中国語のSimpleQA(64.8%)ではリードしているものの、英語の事実性タスクであるSimpleQA(24.9% vs. 38.2%)では商用フロンティアモデル(GPT-4o、Claude-3.5-Sonnetなど)に後れを取っています。
重要用語
- Multi-head Latent Attention (MLA)
- KeyとValueを共有潜在ベクトルへと低ランク圧縮し、推論時のKVキャッシュ消費を劇的に削減するアテンション機構。
- DeepSeekMoE
- 特化性とルーティングの表現力を高めるために、専用の共有エキスパートときめ細かく分割されたルーティングエキスパートを活用するMixture-of-Expertsアーキテクチャ。
- Auxiliary-Loss-Free Load Balancing
- 目的関数に大きな正則化補助損失を追加する代わりに、バッチ内の負荷に基づいてエキスパートごとの親和性バイアス項を動的に修正するルーティング手法。
- Multi-Token Prediction (MTP)
- メインモデルの語彙埋め込みとヘッドを再利用しながら、因果モジュールを用いて位置ごとに複数の未来トークンを順次予測する学習フレームワーク。
- DualPipe
- フォワード、入力に対するバックワード、重みに対するバックワードの各計算を、all-to-all通信およびパイプライン通信とオーバーラップさせる双方向パイプライン並列化アルゴリズム。
- Warp Specialization
- IBおよびNVLinkのデータ送受信(dispatching/combining)を並行して行うため、GPUのStreaming Multiprocessorを専用のタスクワープに分割する実行モデル。
- Group Relative Policy Optimization (GRPO)
- サンプリングされた応答グループに対する相対的なアドバンテージを計算することにより、個別のCriticモデルを不要にする強化学習アルゴリズム。
よくある質問
DeepSeek-V3の総パラメータ数と活性化パラメータ数はいくつですか?
DeepSeek-V3の総パラメータ数は671Bで、トークンごとに37Bが活性化されます(1つの共有エキスパートに加え、256個のエキスパートから選択された8つのルーティングエキスパート)。
DeepSeek-V3の学習にはどのくらいのコストがかかりましたか?
完全な学習には2.788MのH800 GPU時間(事前学習に2.664M、コンテキスト拡張に119K、事後学習に5K)を要し、GPU時間あたり2ドルの見積もりで約557.6万米ドルでした。
なぜ補助損失フリーのバランシング手法は標準的な補助損失よりも優れているのですか?
標準的なシーケンスレベルの補助損失は、個々のシーケンスに対してエキスパートの均一な利用を強制するため、ドメイン特化が損なわれます。DeepSeekの動的バイアス更新は、主要な言語モデリングの勾配目標を汚染することなく、バッチレベルでのバランスを確保します。
FP8混合精度はどのようにして損失の発散なしに学習を成功させたのですか?
タイル単位(1x128)のアクティベーション量子化、ブロック単位(128x128)の重み量子化、純粋なE4M3表現を使用し、128要素ごとにTensor Coreの中間和をCUDA CoreのFP32レジスタにコピーして低精度積算によるアンダーフローを防ぐことで実現しました。
このページの解説は AI が論文から作成したもので、誤りを含む場合があります。詳細は原文をご確認ください。