概要
- DeepSeek は高性能なオープンソース大規模言語モデル(LLM)であり、独自のアーキテクチャを持つ
- SGLang による最適化実装で、公式DeepSeekブログに近いスループットを達成
- Prefill-Decode分離 と大規模Expert Parallelism(EP)を活用し、コスト効率も大幅向上
- すべてのコンポーネントと実験コードは 完全オープンソース で公開
- 本記事では並列化設計、最適化手法、評価結果を解説
DeepSeek推論システムの大規模並列化と最適化
- DeepSeek はMulti-head Latent Attention(MLA)とMixture of Experts(MoE)を採用した独自構造
- モデル規模が大きく、効率的な大規模サービングには高度な並列化設計が必要
- SGLangを用いた実装はAtlas Cloud上の 12ノード・各8台のH100 GPU で稼働
- Prefill-Decode分離および大規模Expert Parallelism(EP)により
- 1ノードあたり 52.3k input tokens/sec、 22.3k output tokens/sec (2000トークン入力時)を達成
- 公式DeepSeek報告にほぼ匹敵するスループットをオープンソースで初めて実現
コスト・効率比較
- この構成をローカルで展開した場合、 $0.20/100万output tokens のコスト
- 公式DeepSeek Chat APIの約1/5のコスト効率
- 同じリソースでのバニラTensor Parallelismと比較し、 最大5倍の出力スループット向上
主な技術ハイライト
- Prefill-Decode分離(PD Disaggregation) と大規模EP(DeepEP, DeepGEMM, EPLB)をSGLangでサポート
- 12ノード・各8 H100 GPUでDeepSeek推論システムを再現
- 効率化・メモリピーク削減・ワークロードバランスに重点を置いた最適化
- 実験結果・コードは全て オープンソース で公開
並列化設計
- 計算複雑性 と メモリ要求 を満たすため、各コンポーネントごとに最適な並列化戦略を採用
- Attention Layer:DP Attention(KVキャッシュ重複排除によるメモリ削減)
- Dense FFN:Data Parallelism(DP)によるスケーラビリティ・メモリ効率・通信コスト最小化
- Sparse FFN(MoE):Expert Parallelism(EP)で大規模専門家重みの分散
- LM Head:DP適用によるメモリ・通信効率化
Attention Layer最適化
- DeepSeekのMLAに対し、 DP Attention でKVキャッシュ重複を排除し、メモリオーバーヘッドを大幅削減
- SGLang v0.4からハイブリッドDP/TPをサポートし、小バッチサイズでも効率的処理
Dense FFN最適化
- 中間次元18,432など高次元FFNがメモリピークの主因
- Tensor Parallelism(TP)では分割単位が小さくなりすぎ、GPUアラインメント効率低下
- DPは分割ロスを回避し、バランス良いワークロード分配が可能
- メモリ効率:
- TPはDP Attention下での優位性が減少
- DP=TP時、最適なTPサイズはPrefill3以下・Decode6程度
- 低TP度の方がメモリ効率良好
- 通信効率:
- TPはFFNごとにAll-Reduce2回必要
- DPはReduce-ScatterとAll-Gather1回ずつで通信コスト半減
- AttentionもDPなら通信完全排除が可能
Sparse FFN(MoE)最適化
- 大規模専門家重みの分散が必要
- Expert Parallelism(EP) で各デバイスに専門家重みを分配し、メモリボトルネックを解消
- 不規則なAll-to-All通信やワークロード不均衡の課題もEP設計で最適化
LM Head最適化
- 大語彙出力のため、従来はVocabulary Parallelismを採用
- 本実装では DP を適用し、通信・メモリ効率を向上
Prefill-Decode分離(PD Disaggregation)
- LLM推論は Prefill(全入力処理) と Decode(トークン生成) の2フェーズ
- 従来は一体型エンジンでスケジューリングされ非効率
- PrefillバッチがDecodeバッチを頻繁に中断、トークン生成遅延
- DP AttentionでPrefill/Decode混在時に遅延増大
- DeepEPのPrefill/Decode異なるディスパッチモードに非対応
- PD分離 で各フェーズを独立最適化、GPU利用率最大化
実装詳細
- Prefill ServerとDecode Serverがペアとなり、ローカルで送受信を確立
- Decode ServerがKVキャッシュを事前割当→Prefill Serverが前処理・KV計算→Decode Serverへ転送→トークン生成
- ノンブロッキング転送 :バックグラウンドスレッドで送受信し、イベントループを妨げない
- RDMA利用 :非連続メモリチャンクも効率的に転送
- 高性能RDMAライブラリ(Mooncake, NIXL等)とAPI統合
大規模Expert Parallelism
DeepEPによるExpert Parallelism
- DeepSeek開発の通信ライブラリ DeepEP でMoEモデルの大規模EPを実現
- トークンを専門家に効率的にルーティングし、通信遅延を最小化
- Prefill/Decodeで異なるディスパッチモードを提供
- Normal Dispatch :Prefill向け、最大スループット重視(CUDA Graph非対応)
- Low-Latency Dispatch :Decode向け、低遅延重視(CUDA Graph対応・事前メモリ割当必須)
- SGLangでは Autoモード でワークロードに応じて自動切替
- PD分離によりPrefill/Decodeで最適なモードを同時活用可能
DeepGEMM統合
- DeepSeek開発の高効率ライブラリ DeepGEMM でMoE関連行列積の高速化
- 専用関数でPrefill/Decode双方の計算を最適化
評価・今後の展望
- 本実装は公式DeepSeek報告にほぼ匹敵するスループットをオープンソースで実現
- コスト効率・拡張性・再現性に優れる
- 全コード・実験手順を公開し、コミュニティによる発展が期待
まとめ
- DeepSeekの大規模推論を SGLang で最適化・オープンソース化
- Prefill-Decode分離・大規模EP等の最先端技術を実装
- コミュニティによるさらなる発展・応用に向けた基盤提供