DeepSeek は 2025–2026 年にコスパ最高のオープンソース LLM の一つとなった。V3 シリーズは汎用タスクで GPT-4 級の性能に迫り、R1 は推論チェーンで o1 クラスの能力をセルフホスト可能な価格帯まで引き下げた。しかし本番投入時、チームが最初に直面するのは「モデルが賢いか」ではなく、初 token 遅延の急上昇、並行処理での OOM、量子化後の品質断崖である。
本記事はDeepSeek パフォーマンス最適化の完全ガイドだ。モデル選定、推論エンジン、量子化戦略、KV Cache とバッチ処理、API 呼び出し、本番モニタリングまで、「まずボトルネックを測定し、次に対症療法」という順で書いた。ベンチマークのスクリーンショットは並べず、すぐに使えるパラメータとチェックリストだけを提供する。
一、DeepSeek モデル系列とパフォーマンス基準
最適化の前に「どのモデルラインを動かしているか」を揃える——系列によって算力要件は桁違いだ:
| 系列 | 代表モデル | パラメータ規模 | 典型的な用途 | パフォーマンス特性 |
|---|---|---|---|---|
| V3 | DeepSeek-V3、V3-0324 | MoE ~671B(活性 ~37B) | 汎用対話、コード、Agent | 高スルー、長コンテキスト向き;マルチ GPU または強い量子化が必要 |
| R1 | DeepSeek-R1、R1-Distill | フル MoE または 7B–70B 蒸留 | 数学、論理、多段推論 | 出力 token 多、遅延に敏感;バッチプールで分離向き |
| 蒸留小型モデル | R1-Distill-Qwen-7B/14B/32B | 7B–32B dense | エッジ、高並行 API、コスト重視 | 単 GPU で可能;推論チェーン品質はサイズで大きく変動 |
| Coder | DeepSeek-Coder-V2 | MoE / dense 複数サイズ | IDE 補完、リポジトリ規模のコード | Fill-in-the-middle はエンジン対応必須;コンテキストが長いほど KV を消費 |
基準の推奨:リリース前に固定プロンプトセット(50–200 件)で 3 つの数値を測る——TTFT(初 token 時間)、TPOT(出力 token あたりの時間)、tokens/s/GPU。基準がないと、後の量子化とチューニングは闇雲な調整になる。
二、まずボトルネックを特定:遅延、スルー、コスト
DeepSeek のパフォーマンス問題は通常 3 類に分かれ、最適化手段はまったく異なる:
- 対話遅延(チャット、Copilot):TTFT 低減を優先 → prefill 長を短縮、FP8 有効化、GPU クロックと PCIe 帯域を向上
- スルー(バッチ、オフライン注釈):continuous batching、
max_num_seqs引き上げ、マルチ GPU tensor parallel を優先 - コスト(24/7 API):INT4/AWQ 量子化、小型モデルルーティング、重複プロンプトのキャッシュを優先
コア指標
| 指標 | 意味 | 一般的な目標(対話シーン) |
|---|---|---|
TTFT |
初 token 遅延 | < 500ms(短いプロンプト);長文書 RAG は 1–3s まで許容 |
TPOT |
出力 token あたりの時間 | < 30ms(体感で滑らか) |
GPU 利用率 |
演算が飽和しているか | 定常 > 70%;長期 < 40% は batch または並列度不足 |
KV Cache 使用量 |
VRAM の主因 | 長コンテキストでは重みより先に OOM しがち |
同じプロンプトで「コールドスタート」と「ウォームキャッシュ」を測る
初回リクエストにはモデルロードと CUDA graph コンパイルが含まれる。本番 SLA はウォームアップ後の p95 を基準にする。負荷試験スクリプトに 10 ラウンドの warmup を入れてから集計する。
三、推論エンジンの選定とチューニング
DeepSeek は MLA(Multi-head Latent Attention)などのアーキテクチャを採用——上流パッチがマージされたエンジンバージョンを必ず使う。2026 年 8 月時点の本番主流:
vLLM
汎用 OpenAI 互換 API、マルチテナント並行に適する。主要パラメータ:
# 例:単一ノード 8×A100 で DeepSeek-V3 AWQ
vllm serve deepseek-ai/DeepSeek-V3 \
--quantization awq \
--tensor-parallel-size 8 \
--max-model-len 32768 \
--gpu-memory-utilization 0.92 \
--enable-prefix-caching \
--max-num-seqs 256
--enable-prefix-caching:System Prompt、RAG テンプレートの重複が多いとき TTFT を大幅に低減--gpu-memory-utilization:0.9–0.95 が一般的;OOM 時は 0.85 に下げmax_num_seqsを減らす--max-model-len:ビジネスの実上限で設定し、デフォルト最大にしない——8K コンテキスト追加ごとに KV が線形増加
SGLang
複雑な Agent グラフ、多輪分岐、RadixAttention プレフィックス共有に適する。同一 System Prompt の Agent swarm では、SGLang の prefix cache 命中率が vLLM を上回ることが多い。
python -m sglang.launch_server \
--model-path deepseek-ai/DeepSeek-R1-Distill-Qwen-32B \
--tp 2 \
--mem-fraction-static 0.88 \
--context-length 16384
エッジと CPU:llama.cpp / Ollama
7B–14B 蒸留モデルを Mac / コンシューマ GPU で動かす場合、llama.cpp の GGUF Q4_K_M がしばしば遅延と消費電力の最適解。ローカルでのプロンプト検証向きで、高並行 API には不向き。
四、量子化:品質と VRAM のバランス
フルスケール DeepSeek MoE は量子化なしでは単一ノード展開がほぼ不可能。推奨順序:
- FP8(W8A8):H100/B200 でネイティブ友好、品質損失最小——まず試す
- AWQ / GPTQ INT4:VRAM 半減;コードと数学タスクは回帰テスト必須
- GGUF Q4_K_M:エッジと Ollama;長い Agent チェーンでは過低 bit は慎重に
| 量子化方式 | VRAM 削減 | 品質リスク | 適用 |
|---|---|---|---|
| BF16 ネイティブ | 基準 | なし | 32B 蒸留単 GPU、ベンチマーク比較 |
| FP8 | ~40% | 極低 | H100 クラスタ、本番デフォルト |
| AWQ INT4 | ~50% | 中(推論チェーン、JSON) | コスト重視、抜き取り検査可 |
| Q4 GGUF | ~60%+ | 高(複雑なツール呼び出し) | ローカル開発、デモ |
量子化後は「タスクレベル」回帰を必ず行う——平均点だけ見ない
R1 クラスは INT4 でも MMLU を通過するが、多段ツール呼び出し、JSON 構造化出力が先に崩れる。実際の Agent trace を 100 件リプレイする方が公開ベンチマークより有用だ。
五、KV Cache とコンテキスト長の最適化
長コンテキストは DeepSeek の強みであり、OOM の主因でもある。最適化手段:
- 実コンテキストの制限:
max_model_lenをビジネス p99 に設定し、128K のモデル上限にしない - Prefix caching:固定 System + ドキュメントテンプレートをキャッシュ;RAG では user 部分だけ変える
- 分段要約:16K 超の履歴は先に圧縮してからモデルへ(Agent Memory フレームワークと併用)
- MLA 対応:エンジンが DeepSeek MLA KV 圧縮をサポートしていることを確認;旧版は latent KV を展開し VRAM が倍増
六、バッチ処理、並行、スケジューリング
同一 GPU で「短い Q&A」と「R1 長チェーン推論」を混在させると相互に足を引っ張る。本番ではSLA 別にプール分離を推奨:
- 高速プール:V3 / 小型蒸留、
max_tokens=512、高max_num_seqs - 低速プール:フル R1、並行数制限、高めの TPOT を許容
- ルーティング層:単純分類は小型モデル、複雑推論は R1 にエスカレート(大規模モデル API 価格とパフォーマンス選定を参照)
# OpenAI 互換クライアント:ストリーミングで体感遅延を低減
stream = client.chat.completions.create(
model="deepseek-v3",
messages=messages,
max_tokens=1024,
stream=True,
extra_body={"top_p": 0.9, "temperature": 0.6}
)
七、プロンプトとコンテキストエンジニアリング
コストゼロのパフォーマンス改善はここにある:
- System Prompt の圧縮:重複指示を統合;R1 に長い「段階的に考えて」は不要——すでに内面化済み
- 構造化出力:JSON Schema / tool call を使い、「合法 JSON を出力」の長い説明を避ける
- RAG チャンク:300–500 token ずつ、top-k=3–5;20 チャンク詰め込みより 5 件の精密検索が速くて良い
- 停止語:
stopシーケンスを設定し、R1 の無限反省ループによる token 消費を防ぐ
八、API 呼び出しとセルフホストの比較
| 方式 | 利点 | 欠点 | 選ぶタイミング |
|---|---|---|---|
| DeepSeek 公式 API | 運用ゼロ、従量課金、最新版 | データ越境、レート制限、ピーク時の待ち | MVP、流量変動大、GPU 備蓄なし |
| セルフホスト vLLM/SGLang | データ制御、量子化カスタム、単価上限なし | 運用、マルチ GPU コスト、専任チューニング | 日 500 万 token 超、コンプライアンス要件 |
| ハイブリッド | ピークは API に溢れ、閑散期は自前 | 二重モニタリング、バージョン乖離 | 成長期プロダクト、コスト重視 |
API 側の最適化:接続再利用(HTTP/2 keep-alive)、指数バックオフ再試行(429/5xx)、リクエスト重複排除キャッシュ(同一 embedding 検索結果 5–15 分 TTL)。
九、ハードウェアとデプロイ構成
参考構成(2026 年 8 月、量子化とエンジンバージョンで変動):
| モデル | 量子化 | 推奨ハードウェア | 備考 |
|---|---|---|---|
| R1-Distill-7B | Q4 / BF16 | 1× RTX 4090 / M4 Max 64GB | ローカル Agent プロトタイプ |
| R1-Distill-32B | AWQ INT4 | 2× A100 80GB | コスパ推論ノード |
| DeepSeek-V3 | FP8 / AWQ | 8× H100 または 8× A100 | NVLink / 高速インターコネクト必須 |
| DeepSeek-R1 フル | FP8 | 16× H100 級 | 専用推論クラスタ推奨 |
開発と負荷試験では推論サービスと Agent オーケストレーションを分離:安定した Linux GPU ノードまたはリモート環境で vLLM を動かし、ローカル Mac はクライアントと評価スクリプトのみ——ノート PC の GPU とコンパイルがリソースを奪い合わないようにする。コーディング Agent ツールチェーン選定は 2026 AI プログラミングツールランキングを参照。
十、モニタリング、負荷試験、回帰
本番に必須の 4 類の観測:
- リクエストレベル:TTFT、TPOT、総 token、エラーコード分布
- GPU レベル:利用率、VRAM、温度、NCCL 帯域(マルチ GPU)
- キューレベル:待ち時間、拒否率、continuous batch サイズ
- 品質レベル:抜き取り勝率、JSON パース失敗率、ツール呼び出し成功率
推奨ツール:prometheus + grafana で vLLM metrics endpoint を取得;負荷試験は locust または vllm bench serve;バージョンアップ後は固定 golden set を実行し、token 使用量と遅延分布を比較。
十一、本番リリースチェックリスト
- ☐ エンジンバージョンが対象 DeepSeek 変体(MLA / MoE 含む)をサポートしていることを確認
- ☐ 量子化方案がビジネスプロンプトセットで回帰済み(ベンチマークのみでない)
- ☐
max_model_lenを p99 で設定(モデル上限ではない) - ☐ Prefix caching 有効化済み、命中率が観測可能
- ☐ 高速/低速プールまたはモデルルーティングで SLA 分離済み
- ☐ ストリーミング出力有効(対話シーン)
- ☐ レート制限、サーキットブレーカー、バックオフ再試行を設定済み
- ☐ ウォームアップフローをデプロイスクリプトに組み込み
- ☐ Golden set 自動回帰を CI に接続
FAQ
DeepSeek 推論を最速にするには?
短いプロンプト対話:FP8 量子化 + prefix caching + ストリーミング + max_tokens 制限。長文書:先に RAG で精密検索してからモデルへ——全文をコンテキストに詰め込まない。
V3 と R1 のパフォーマンスチューニングの違いは?
V3 はスルーと汎用遅延重視;R1 は出力が長く単リクエストが重い——別プール化、並行制限、過剰生成防止の stop 語を設定。
INT4 量子化は本番で使える?
使えるが、実タスクでの回帰が必須。コード生成、JSON、マルチツール Agent は量子化に敏感;汎用チャットは通常許容範囲。
Mac で DeepSeek を動かせる?
7B–14B 蒸留版は Ollama/llama.cpp で Apple Silicon 上で可能;フル V3/R1 はマルチ GPU NVIDIA クラスタまたは API が必要。
日何 token でセルフホストに切り替える?
目安:安定して日 300–500 万 token 超が 1 ヶ月以上続くなら、A100 級単 GPU 自前がしばしば有利;それ以外は公式 API が手軽。
まとめ
DeepSeek パフォーマンス最適化に銀の弾はない:TTFT / TPOT / GPU 利用率でボトルネックを測定し、量子化とエンジンパラメータを選ぶ。フル MoE は FP8 とマルチ GPU;高並行は batch とルーティング;長い Agent は KV とコンテキストエンジニアリング。
三つの原則:
- コンテキストをデフォルト最大にしない——KV Cache が重みより先に OOM しがち
- 量子化後は実 trace を回す、単一ベンチマーク点だけ見ない
- 高速・低速リクエストをプール分離、R1 が全体遅延を引きずらないように
Agent と推論サービスは分離デプロイすべき?
ローカルで Ollama でプロンプト検証、本番 vLLM は GPU ノード;Mac はオーケストレーションと評価に専念。Vuncloud Cloud Mac は推論クラスタと切り離した安定したリモート開発・負荷試験環境として適する。
関連記事
- 大規模モデル API 価格・仕様・パフォーマンス選定ガイド
- 2026 年最高の AI プログラミングツールランキング
- 2026 年最高の AI Agent Memory フレームワーク
- 個人 AI Agent アーキテクチャ三要素
モデルバージョンとエンジンサポートは各プロジェクトの公式ドキュメントに準ずる。最終更新:2026 年 8 月 8 日。