DeepSeek-V4-Flash
DeepSeek-V4-Flash
Serve DeepSeek-V4-Flash with Dynamo and vLLM — aggregated or disaggregated, on B200 or H200, tuned for the agentic workload.
Each target below is an agentic-workload vLLM deployment of DeepSeek-V4-Flash — a MoE model (284B total / 13B active) with hybrid CSA + HCA attention, FP8 KV cache, and KV-aware routing. B200 serves the nvidia/DeepSeek-V4-Flash-NVFP4 checkpoint; H200 serves the public deepseek-ai/DeepSeek-V4-Flash. Pick your GPU and topology; every command on this page updates to match. Text only; reasoning + tool calling supported.
Choose your deployment target
Prerequisites
- A Kubernetes cluster with the Dynamo Platform (operator) installed.
- 4x B200 (aggregated) or 12x B200 (disaggregated, 2P1D) available.
- A Hugging Face token with access to
nvidia/DeepSeek-V4-Flash-NVFP4.
- 4x H200 (aggregated) or 28x H200 (disaggregated, 4P3D) available.
- A Hugging Face token with access to
deepseek-ai/DeepSeek-V4-Flash.
- The
nvcr.io/nvidia/ai-dynamo/vllm-runtime:1.3.0image (pinned in eachdeploy.yaml).
Create the namespace and token secret:
Edit cluster-specific values before applying: storageClassName in model-cache/model-cache.yaml (a RWX class). For disaggregated targets, also set VLLM_GPU_NIC_PCIE_MAPPING in the manifest to your node’s per-rank affine NICs — see Per-rank NIC mapping.
Deploy
Create storage, download the checkpoint into the PVC, then apply the target’s deploy.yaml:
First launch loads weights and warms CUDA graphs; the startup probes allow for it.
Smoke Test
The model field must be the served model name for your SKU (the --served-model-name in the deploy): B200 serves nvidia/DeepSeek-V4-Flash-NVFP4, H200 serves deepseek-ai/DeepSeek-V4-Flash.
Flash reasons by default: the chain-of-thought fills message.reasoning_content and the answer fills message.content. With too small a max_tokens the budget is spent on reasoning before any content (content: null, finish_reason: "length") — expected; raise max_tokens.
Benchmark
The shared perf.yaml replays the agentic MoonTrace (64K avg ISL / 400 OSL, 90% KV reuse) with AIPerf against the deployed frontend. Point ENDPOINT at ${DGD}-frontend:8000 and apply it:
Compare All Targets
Notes
- Reasoning / tool parsers are wired via the Dynamo variants (
--dyn-reasoning-parser deepseek_v4,--dyn-tool-call-parser deepseek_v4); the engine-native parsers do not feed the Dynamo OpenAI renderer. - Disaggregated targets require the per-rank NIC map (
VLLM_GPU_NIC_PCIE_MAPPING) for GPU-Direct RDMA KV transfer; B200 shipsrdma/shared_ib, H200 shipsrdma/ib. See the top-level recipe README. - AGG scales by independent single-replica DGDs — KV-routed multi-replica AGG does not improve per-GPU throughput.
- Day-0 / GB200 SGLang variants exist in the recipe tree but are experimental (dev images) and not shown here.
Source
- Recipe README: recipes/deepseek-v4/deepseek-v4-flash/README.md
- Top-level DeepSeek-V4 README (shared workloads, NIC mapping, limitations): recipes/deepseek-v4/README.md
- Manifests: vllm/ and shared perf/perf.yaml