DeepSeek-V3徹底解剖:671BスケールのMoE×FP8で挑む最新LLM!ロードバランス革命と高性能の秘密に迫る
こんにちは、ゆずかきです。
ここからは、「DeepSeek-V3」 と呼ばれる最新の大規模言語モデル(LLM)について、論文をもとに技術ブログとしてまとめてみたいと思います。
今回紹介する「DeepSeek-V3」は、Mixture-of-Experts (MoE) アーキテクチャを採用しながら、大規模モデルであるにもかかわらず比較的安価に訓練できるという、研究者や実務家にとって見逃せないモデルです。総パラメータ数は671B(うち推論時に有効となるのは37B)という超大型モデルながら、これをFP8トレーニングや高度な通信最適化で乗り切り、さらにはMulti-Token Predictionによる学習効率アップを実現。結果として、GPT-4やClaudeなどのクローズドソース最先端モデルに肉薄する性能をオープンソースで叩き出しています。
それでは、論文の内容やアーキテクチャ構成、実験結果までを幅広くカバーしながら、順を追って解説していきましょう!
§本記事の構成
- はじめに: DeepSeek-V3とは?
- アーキテクチャの特徴: MLA + DeepSeekMoE + Auxiliary-loss-free Load Balancing
- FP8トレーニングの実装と通信最適化
- Multi-Token Prediction (MTP) 戦略
- トレーニング概要: 14.8兆トークン + 二段階の長文コンテキスト学習
- Post-Training (SFT & RL) と DeepSeek-R1からの知識蒸留
- 主要なベンチマーク結果の総覧
- 考察・課題・今後の展望
- まとめ
大規模MoEモデルの最新事情を追いかけている方も、あるいはFP8など低精度計算による学習効率化に興味のある方も、ぜひ最後までチェックしてみてください。
§はじめに: DeepSeek-V3とは?
論文の正式名称は
DeepSeek-V3 Technical Report
OpenAIやGoogle、AnthropicなどのクローズドソースLLMが台頭する中、「オープンソースのMixture-of-Expertsモデルでさらなる性能向上を目指す」というモチベーションで開発されたのが、このDeepSeek-V3です。
DeepSeekシリーズは既にV2やV2.5でMoEによる効率的なパラメータ活用を実証済みですが、今回はスケールアップ(671B総パラメータ)と学習効率の両立をさらに高い次元で実現。しかも、トレーニングコストは約278万GPU時間程度(H800相当)と抑えられ、商用のクラウド環境などでも(もちろん安くはないですが)手が届かなくはない水準に設計されています。
以下のような主要なポイントが挙げられています。
- Multi-head Latent Attention (MLA)
- DeepSeek-V2で導入された「KVキャッシュ圧縮」を発展させた手法。
- 推論時のキー・バリューキャッシュ(KVキャッシュ)を大幅に削減しつつ、性能を劣化させない工夫を凝らしている。
- DeepSeekMoE + Auxiliary-loss-free Load Balancing
- Mixture-of-Experts (MoE)におけるロードバランス(各エキスパートに均等にトークンを振り分ける課題)を、従来はAuxiliary Lossで補正する方法が一般的だったが、DeepSeek-V3では「バイアス項」を調整する仕組みを導入し、性能低下を最小化しながらバランスを維持する。
- Multi-Token Prediction (MTP)
- 1トークン先だけでなく、複数トークン先を同時に予測することでデータ効率を高める学習手法。
- 推論では通常の1トークン予測でもOKだが、Speculative Decodingと組み合わせると推論速度を大きく向上できる。
- FP8トレーニング
- BF16やFP16よりさらに低精度のFP8演算を活用。
- 新しいハードウェアのTensor Coreに合わせて、tile-wise / block-wiseでのスケーリングや高精度アキュムレーションを工夫。
- ActivationsやOptimizerステートなどを低精度に落とすことでメモリ圧縮&通信コスト削減を実現。
- 14.8Tトークンへのプリトレーニング + 2段階の長文コンテキスト学習(32K→128K)
- 大量かつ多言語・高品質な14.8兆トークンを使ったプリトレーニング。
- まず4Kまで学習した後に、Yawning at Recurrent Nullspace (YaRN)手法を使い32K→128Kへと段階的に文脈長を拡張する。
- Post-Training: SFT & RL + DeepSeek-R1からの知識蒸留
- 大規模なInstructionデータでSFTし、さらにRL(Group Relative Policy Optimization, GRPO)でチューニング。
- 特にDeepSeek-R1モデルからの「長い思考プロセス」を蒸留(Distillation)して取り入れ、数学やプログラミング領域の性能が大幅にアップ。
結果的に、GPT-4やClaude等とも肩を並べるレベルの性能を示しつつ、オープンソースとして公開されているところが非常に注目を集めています。
§アーキテクチャの特徴: MLA + DeepSeekMoE + Auxiliary-loss-free Load Balancing
DeepSeek-V3の基本構造はTransformerをベースにしつつ、Multi-head Latent Attention (MLA) と呼ばれるキー・バリュー圧縮の仕組み、そしてDeepSeekMoEによるMixture-of-Expertsが組み合わされています。
MLA (Multi-head Latent Attention)
- 従来のAttentionでは、各トークンに対してキー(k)とバリュー(v)をそのままキャッシュしていくため、超長文の場合にKVキャッシュが膨大になる。
- MLAでは低次元にダウンプロジェクションした「圧縮ベクトル」をまず生成し、そこからキー・バリューを再構築する仕組みを導入。
- 推論時は、圧縮ベクトル + RoPE適用された小さいベクトルだけをキャッシュすれば十分なため、KVメモリ削減につながる。
- 論文の実験では、従来のMulti-Head Attentionとほぼ同等の性能を維持しながら、KVキャッシュ量をグッと削減できているとのこと。
DeepSeekMoE: Finer-grained Experts + Shared Experts
- GShardやSwitch Transformerなど、近年のMoEモデルでは一般的に「トークンを複数の専門家(Expert)に割り振って処理を分散」する仕組みが取られる。
- DeepSeekMoEでは、かなり細粒度(Finer-grained)なExpertを多数用意し、その中で一部を「Shared Expert」、残りを「Routed Expert」と分ける。
- 例えば256個のRouted Expertを持ち、1つのShared Expertを持つブロックを何層にもわたって積む。
- トークンごとにAffinity(専門家への親和度)を計算して、Top-KのExpertにルーティングする仕組み。
Auxiliary-loss-free Load Balancing
MoEの大きな課題として「特定のExpertにばかりトークンが偏り、計算負荷がアンバランスになる(Routing Collapse)」という問題があります。
- 従来はAuxiliary Lossを加えてロードバランスを無理やり整えることが多かったが、これはLossが大きすぎると逆にモデル性能を下げてしまう問題がある。
- DeepSeek-V3では、Expertごとにバイアス項を設けてTop-Kの判定をゆるやかに補正し、学習ステップごとに微調整する「auxiliary-loss-free」の手法を採用。
- 最小限のAuxiliary Loss(Sequence-Wise補助損失)だけ補完的に用い、基本的にはバイアス調整でうまくバランスを取っているのが特徴。
結論として、「ロードバランスを保ちつつ、Auxiliary Lossに由来する性能劣化を緩和する」という狙いが功を奏し、従来のMoEよりも高い性能を示しています。
§FP8トレーニングの実装と通信最適化
DeepSeek-V3で特に目を引くのが、FP8 というさらに低精度の浮動小数点フォーマットを駆使したトレーニングです。近年はBF16やFP16が主流ですが、さらにビット数を削って演算効率とメモリ削減を狙う動きが加速しています。
FP8の課題と本モデルでの対処
FP8はExponentやMantissaのビット数がさらに少なく、オーバーフロー/アンダーフローや四捨五入誤差が発生しやすいリスクがあります。論文では以下のような工夫を実装しています。
- Fine-Grained Quantization (タイル単位・ブロック単位)
- アクティベーションを「1 x 128 タイル」単位、あるいは「128 x 1」単位でスケーリングし、極端な外れ値(outlier)の影響を局所化。
- ウェイトは「128 x 128ブロック」ごとにスケーリング。
- これらの微細分割によって、各ブロック内での最大値をスケーリング係数に合わせるやり方を取り、ダイナミックレンジ不足を緩和している。
- 高精度アキュムレーション (Increasing Accumulation Precision)
- FP8同士の乗算結果を一定区間ごと(例: 128要素)にFP32レジスタへ上げて集計し、誤差を低減。
- これによりTensor Coreでの積和演算が中間値を溜め込みすぎて大きな誤差を生むのを防ぐ。
- Online Quantization & Mantissa重視の形式
- 重みやアクティベーションを適宜オンザフライで最大値を算出し、スケーリング係数を決定。
- ハードウェアがサポートするE4M3 / E5M2などのFP8フォーマットに対して、可能な限りマンティッサ部分を優先し、精度ロスを抑制。
さらにOptimizerステートもBF16で持つなどして、最低限の高精度を担保しながら、大部分の重い行列乗算をFP8に落としているのがミソです。
通信最適化: DualPipe & All-to-all Overlap
DeepSeek-V3はMoEを採用しており、複数のExpertを跨いだAll-to-all通信が必要になりますが、これがボトルネックになりがちです。
そこで、DualPipeという独自のパイプライン手法を使い、Forward/Backward処理の隙間にAll-to-all通信をオーバーラップさせる設計を取っています。
- ForwardとBackwardで「Attention部分」「MLP部分」「Dispatch / Combine」などのステップを細分化し、計算と通信を時間的にずらして並列実行。
- GPUのSMを通信用に一部割り当て、Dispatch(データの振り分け)+ Combine(集約)を重ねながら他の演算を進行させることで通信待ちをほぼ隠蔽。
- この仕組みにより、大規模ノードでMoEをクロスノード展開しても通信負荷をうまく隠蔽できる。
また、ノード制限ルーティング (Node-limited Routing) と言って、トークンが許されるノード数を最大4に抑制(Top-Kで上位K=8を選ぶが、それを4ノード以内で割り当てる)する工夫により、インターコネクト転送量を減らす。
結果として、2048枚のH800 GPUであっても、大きな通信オーバーヘッドなしに並列学習が可能になっています。
§Multi-Token Prediction (MTP) 戦略
多くのLanguage Modelは「次の1トークンを予測する」タスクで学習されます。しかしDeepSeek-V3では「次の2トークン以上を同時に予測するモジュール」を追加し、よりリッチな学習信号を得る「MTP (Multi-Token Prediction)」を導入しています。
- 主モデルは通常の因果言語モデリング (Next Token Prediction) を行う。
- さらにMTPモジュールを1段 or 複数段追加し、(t+1)番目だけでなく(t+2)番目、(t+3)番目…などを並列に予測する。
- ただし「深さを変えたブロックを通して」学習し、各段で因果関係を保った状態でトークンを予測する。
これにより、1つの学習サンプルあたりで複数の将来トークンを予測することで学習が効率化し、モデルが先の文脈を前もって表現に組み込むことが期待できるといいます。実際に論文のアブレーションでは、MTPを導入したモデルのほうがHumanEvalやGSM8Kなど複数のベンチマークでスコアが上昇したとのこと。
推論時にはMTP部分を使わなくてもOKですが、Speculative Decodingと合わせれば、2トークン分を同時生成して合っていたら採用などの高速化が可能。その際は85~90%ほどの確率で追加トークンを受理でき、トークン生成速度が約1.8倍になる、と論文中では報告されています。
§トレーニング概要: 14.8兆トークン + 二段階の長文コンテキスト学習
続いて、実際にDeepSeek-V3をどう学習したかを見ていきましょう。
(1) 14.8Tトークンのプリトレーニング
- データセット: 14.8兆トークン分の多様なテキスト(英語・中国語が中心だが多言語も含む)を高品質化して構築。
- Fill-in-Middle (FIM) やPSM構造を一定確率で導入して学習データを多彩に。
- Tokenization: Byte-level BPE(語彙数128K)。punctuationや改行を結合したトークンなども定義し、圧縮効率を高めている。
- ハイパーパラメータ: 61層、隠れ次元7168、ヘッド128(1ヘッドあたり128次元)、中間層FFN 2048、各MoE層には256個のルーティングExpert+1個のShared Expert。
- 学習スケジュール: まず学習率を2.2e-4までウォームアップして10Tトークンまで、その後コサインで減衰、最終的に2.2e-5まで落とす。ミニバッチサイズは最大15360。
- Batch-wise + auxiliary-loss-freeでロードバランスをキープしつつ、合計約266.4万GPU時間(H800)で完了。
(2) 長文コンテキスト拡張 (32K→128K)
- プリトレーニングは4K文脈長で行ったが、追加でYawning at Recurrent Nullspace (YaRN) を使ってコンテキストを32Kに拡張する学習を1000ステップ行い、さらに128Kまで拡張する学習を1000ステップ追加。
- 32Kフェーズはバッチサイズ1920、128Kフェーズではバッチサイズ480。
- これにより128Kの長文入力にも対応可能に。
- 「Needle In A Haystack (NIAH)」テストでも128K文脈で高いロバスト性を示していると報告。
§Post-Training (SFT & RL) と DeepSeek-R1からの知識蒸留
DeepSeek-V3はベースモデルだけでも強力ですが、人間の指示追従性や出力品質をさらに高めるために、以下の2段階が実施されています。
- Supervised Fine-Tuning (SFT)
- 1.5M件の多様な指示データを作り、2epochほどファインチューニング。
- 数学やプログラミングなど高度な推論が必要な領域については、DeepSeek-R1という別の「長めの思考チェーンを生成可能なモデル」からデータを生成し、人間が検証・加筆修正して取り込む。
- これにより、回答の途中に検証やReflectionを入れつつも、冗長すぎないようなバランスを取った教師データが得られ、最終的に深い推論能力と適切な応答スタイルを両立している。
- Reinforcement Learning (RL)
- Group Relative Policy Optimization (GRPO)を適用し、報酬モデル(RM)を用いてさらにモデル応答を最適化。
- 数学やLeetCodeなど、ルールベースで正解判定可能なタスクはコンパイラやテストケースでフィードバック。
- 汎用QAやクリエイティブ系タスクではモデル自身をReward Modelにしつつ、自己反省 (self-rewarding) + Constitutional AIっぽい手法で安全性や品質を向上。
DeepSeek-R1からの長い思考プロセスを蒸留
特に数学やコード生成のドメインでは、DeepSeek-R1の長いChain-of-Thought出力を蒸留したことが、精度向上に効いているといいます。
- ただし長大なCoTをそのまま本番モデルが出力すると、冗長・計算負荷増大の懸念があるため、Distillation時に「過剰に長すぎない形にまとめる」工夫を施している。
- 結果、AIME2024やMATH-500などの難易度の高い数学ベンチマークで急伸するスコアが得られているとのこと。
§主要なベンチマーク結果の総覧
論文では、DeepSeek-V3をオープンソース最強のベースモデルと位置付けています。実際、PaLMやGPT、Claudeなどのクローズドソースモデルにも迫る勢いの数値が多数のベンチマークで報告されています。いくつか代表的な結果を紹介しましょう。
MMLU / MMLU-Pro / C-Eval / CMMLU などの多科目知識テスト
- LLaMA-3.1 405BやQwen2.5 72Bなど、他の大規模オープンソースモデルを上回る。
- 特にMMLU-Proのような難易度が上がったベンチでもClaude-3.5-Sonnetなどに迫る数値。
コード生成系 (HumanEval, LiveCodeBench, Codeforces, SWE-bench, Aider)
- LiveCodeBenchやHumanEval-Mulなどで、Qwen2.5やLLaMA-3.1を上回り、Claude-3.5に近いスコア。
- Codeforces(Percentile)で大幅なリードを示し、エンジニアタスク・アルゴリズム系に強い。
- エンタープライズ用途のSWE-Benchでも、オープンソース中トップレベル。
数学系 (GSM8K, MATH-500, AIME2024, CNMO2024)
- 多段推論が必須のMATH系ベンチマークで、非-long-CoTモデルとしては驚異的なスコア(MATH-500で90.2%!)
- AIME2024, CNMO2024のオリンピック系問題でも4~40%台だった従来モデルに比べ、DeepSeek-V3は40%超えの高い正解率。
長文理解 (LongBench v2, DROP, FRAMES)
- 128Kまでコンテキスト対応しており、長文QAのFRAMESやLongBench v2で高スコア。
- DROP(F1)でも91%超えを記録し、他モデルを上回る。
ファクト系QA (SimpleQA, GPQA-Diamond)
- SimpleQAは英語知識にやや弱みを見せるが、GPQA-Diamond(PhD級問題)ではQwen2.5やLLaMA-3.1を大きく引き離す。
- 中国語系SimpleQAではClaudeやGPT-4oを上回るというレポートもあり、多言語対応で強みを発揮。
総合的には、「コードと数学でとりわけ強いオープンソースモデル」という評価であり、汎用QAにおいても十分高性能という印象です。
§考察・課題・今後の展望
DeepSeek-V3はオープンソースとしては画期的な水準のLLMと言えそうですが、論文中や著者による考察でもいくつか課題や展望が挙げられています。
- 大規模GPUクラスター前提の推論
- 推論効率を最大化するには最低4ノード(32 GPU)単位のデプロイを推奨しており、さらにデコード段階では40ノード(320 GPU)規模を想定している。
- 小規模環境ではそもそも巨大MoEを動かしきれず、実際問題としてはクラウドでの分散推論が前提となる。
- ユーザビリティと負荷分散
- InfiniBandやNVLinkをフル活用した通信設計のため、ネットワークトポロジへの依存度が高い。
- 複雑なAll-to-all通信の冗長化戦略(Redundant Expertsなど)も導入されており、小規模なオンプレ環境では活用が難しい場合もある。
- 応答の長さ制御
- DeepSeek-R1からの長CoT蒸留の効果は絶大だったが、応答が冗長になりがちなトレードオフもある。
- 一定のハイパーパラメータ調整で抑制しているが、さらなる細かい制御が必要かもしれない。
- より大きなスケールアップ / さらなる効率化
- 著者は今後も更なるMoE拡張(Ex: 1024 Experts)や、Blackwell世代の新GPUアーキテクチャ対応などを視野に、真のトークン無限文脈を目指したいとしている。
- FP8よりさらに低精度な、FP4や定点数などの研究も進んでおり、学習コストをさらに下げる余地も。
とはいえ、「671B規模のMoEを2~3ヶ月程度で仕上げた」点で、DeepSeekチームの技術力と最適化ノウハウは相当高いと感じます。今後のモデルスケール拡大や、新ハードウェア対応も見ものですね。
§まとめ
以上、DeepSeek-V3を論文の内容に沿って詳しく見てきました。大規模MoEというだけでなく、FP8トレーニングの実用化、Multi-Token Predictionの導入、ロードバランシング戦略の刷新など、最先端の研究アイデアがフル装備されている印象です。
特に以下の点が印象に残ります。
- トレーニング効率: FP8低精度計算 + DualPipe + ノード制限ルーティングで通信待ちを最小化し、約278万H800 GPU時間というコストで14.8Tトークンのプリトレーニングを完遂。
- 推論効率: MLAによりKVキャッシュを削減しつつ、MoEは冗長エキスパート配置や動的負荷分散で数百GPU単位での推論を想定。
- Multi-Token Prediction: 学習性能が上がるだけでなく、Speculative Decodingで推論速度を約1.8倍にできる可能性。
- 数学・コード生成に強み: DeepSeek-R1からの長CoT蒸留が功を奏し、MATH-500やLiveCodeBenchなど複雑タスクで高い正答率を示す。
オープンソースLLM界隈では、LLaMA系やQwen系、Mistral系など群雄割拠が続いていますが、モジュール的にPoE (Plain-of-Experts)と比較してMoEを押し進めている深みがDeepSeekシリーズの特徴。さらに数ヵ月後には「DeepSeek-V4」的なさらなるモデルが出てくるかもしれませんので、引き続きウォッチしたいところです。
DeepSeek-V3はGitHubでモデル重みや推論コードが公開されています。大規模ノードを用意できる環境なら、数百ビリオン(数百億)のアクティブパラメータを扱うMoEを試してみるのも面白いかもしれません。
§参考文献(論文リンク)
- DeepSeek-V3(GitHub): https://github.com/deepseek-ai/DeepSeek-V3
- DeepSeek-V3(論文):https://arxiv.org/abs/2412.19437
- DeepSeekMoE: https://arxiv.org/abs/2206.00879 (関連研究)
- Mixed Precisionの最新動向: https://arxiv.org/abs/2210.04966 (FP8の参考例)
🔑この記事のポイントまとめ
- DeepSeek-V3: 671B総パラメータを持つ大規模MoEモデル、推論時に有効なパラメータは37B
- FP8トレーニング + 通信最適化(DualPipe) で、14.8Tトークン学習をわずか約278万GPU時間(H800)で完了
- Multi-Token Prediction を活用し、学習効率と推論速度の向上を両立
- 数学・コード生成性能 が特に高く、MATH-500やLiveCodeBenchなどでSOTA級
- ロードバランス戦略(auxiliary-loss-free)によりMoE特有の性能劣化を最小化
- 128K文脈長に対応し、長文タスクでも高水準のスコアを記録
オープンソースLLMの今後を占ううえで、要注目のモデルですね。論文には詳細な通信設計やFP8実装のアブレーションなども載っているので、興味があれば是非読んでみてください。
§おわりに
この記事では、DeepSeek-V3のモデルアーキテクチャから学習手順、実装上の工夫、さらには評価まで幅広く掘り下げてみました。MoEのロードバランシングや低精度トレーニング(FP8)、Multi-Token Predictionなど、最新の研究要素をいろいろ組み合わせている点に非常にワクワクしますね。
特に数理推論やコード生成タスクへの強さは、実装エンジニアから研究者まで多方面で応用可能性が大きいと感じます。その一方で推論スケールやネットワークトポロジへの依存度は高く、個人で気軽に試すにはかなりハードルがあるのも現実。今後、さらなる効率化が進めば、より広いコミュニティでの活用が期待できるでしょう。
それではここまでお読みいただき、ありがとうございました。大規模言語モデルとMoEの世界はまだまだ進化しそうです。DeepSeek-V3の動向にも注目しながら、次の世代のモデルがどこまで行くのか、楽しみに待ちたいと思います。
ディスカッション
コメント一覧
まだ、コメントがありません