diff --git a/docs_new/cookbook/autoregressive/DeepSeek/DeepSeek-V4.mdx b/docs_new/cookbook/autoregressive/DeepSeek/DeepSeek-V4.mdx index 80114ad0b..38d11f862 100644 --- a/docs_new/cookbook/autoregressive/DeepSeek/DeepSeek-V4.mdx +++ b/docs_new/cookbook/autoregressive/DeepSeek/DeepSeek-V4.mdx @@ -95,6 +95,19 @@ Please refer to the [official SGLang installation guide](../../../docs/get-start +For how to actually launch one of these images, see [Install → Method 3: Using Docker](../../../docs/get-started/install#method-3-using-docker). A minimal example (substitute the image tag for your platform and the inner `sglang serve ...` with whatever the [command generator](#3-model-deployment) below produces): + +```bash Command +docker run --gpus all \ + --shm-size 32g \ + -p 30000:30000 \ + -v ~/.cache/huggingface:/root/.cache/huggingface \ + --env "HF_TOKEN=" \ + --ipc=host \ + lmsysorg/sglang:deepseek-v4-blackwell \ + sglang serve +``` + ## 3. Model Deployment SGLang supports three main serving recipes for DeepSeek-V4 with different latency/throughput trade-offs (`low-latency`, `balanced`, `max-throughput`), plus specialized recipes for long-context (`cp`, prefill context-parallel) and prefill/decode disaggregation (`pd-disagg`). The interactive generator below emits the exact launch command for any `(hardware, variant, recipe)` combination. diff --git a/docs_new/src/snippets/autoregressive/deepseek-v4-deployment.jsx b/docs_new/src/snippets/autoregressive/deepseek-v4-deployment.jsx index 58cd02fe4..7f71bc619 100644 --- a/docs_new/src/snippets/autoregressive/deepseek-v4-deployment.jsx +++ b/docs_new/src/snippets/autoregressive/deepseek-v4-deployment.jsx @@ -42,11 +42,11 @@ export const DeepSeekV4Deployment = () => { name: "recipe", title: "Recipe", items: [ - { id: "low-latency", label: "Low-Latency", default: true, subtitle: "MTP 3/4" }, - { id: "balanced", label: "Balanced", default: false, subtitle: "MTP 1/2 + DeepEP" }, - { id: "max-throughput", label: "Max-Throughput", default: false, subtitle: "DP + DeepEP" }, - { id: "cp", label: "Context-Parallel", default: false, subtitle: "long prompts" }, - { id: "pd-disagg", label: "PD-Disagg", default: false, subtitle: "1P + 1D + router" }, + { id: "low-latency", label: "Low-Latency", default: true }, + { id: "balanced", label: "Balanced", default: false }, + { id: "max-throughput", label: "Max-Throughput", default: false }, + { id: "cp", label: "Context-Parallel", default: false }, + { id: "pd-disagg", label: "PD-Disagg", default: false }, ], }, reasoningParser: { @@ -161,7 +161,16 @@ export const DeepSeekV4Deployment = () => { // pd-disagg is verified as a single unit (both prefill and decode together). const VERIFIED_RECIPES = new Set([ "b200|small|low-latency", + "b200|small|balanced", + "b200|small|max-throughput", + "b200|small|cp", "b200|big|low-latency", + "b200|big|balanced", + "b200|big|max-throughput", + "b200|big|cp", + "h200|small|low-latency", + "h200|small|balanced", + "h200|small|max-throughput", ]); const BEING_VERIFIED_NOTE = "# NOTE: this recipe is being verified on the latest checkpoint"; @@ -352,13 +361,14 @@ export const DeepSeekV4Deployment = () => { flags.push(" --nsa-prefill-cp-mode round-robin-split"); flags.push(" --chunked-prefill-size 16384"); flags.push(" --mem-fraction-static 0.78"); - flags.push(" --max-running-requests 1024"); + // allinone _CP_FLAGS has --max-running-requests 1024; Blackwell big cp overrides + // to 256. Human directed (2026-04-24) to emit only one value — keep 256 override + // for big Blackwell, else the default 1024. if (isBig && hardware !== "h200") { - // Blackwell big cp: extra overrides. allinone emits these AFTER _CP_FLAGS, - // so two --mem-fraction-static appear — argparse last-wins (0.70 beats 0.78). - flags.push(" --mem-fraction-static 0.70"); flags.push(" --cuda-graph-max-bs 256"); flags.push(" --max-running-requests 256"); + } else { + flags.push(" --max-running-requests 1024"); } // H200 CP gates DEEPEP_LARGE_SMS_FLAG on !multinode; Blackwell always gets it. if (!multinode) flags.push(DEEPEP_LARGE_SMS_FLAG);