1<!DOCTYPE html> 2<html lang="zh"> 3<head> 4 <meta charset="utf-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1"> 6 <title>åæº 16ÃH100 é¨ç½² DeepSeek-V4.1-Flashï¼vLLM DP2 à TP8 + EP16 + 1M ä¸ä¸æå®æ</title> 7 <link rel="preload" as="style" href="/assets/built/screen.css?v=eO5MZ7MbqRs0AXtb"> 8 <link rel="stylesheet" href="/assets/built/screen.css?v=eO5MZ7MbqRs0AXtb"> 9 <link rel="stylesheet" href="https://lucent.blog/dist/Artalk.css" data-artalk-styles onerror="this.dataset.artalkStylesFailed = 'true'"> 10 <link rel="icon" href="https://lucent.blog/content/images/size/w256h256/format/jpeg/2026/08/b_2efb53416812e31894318965b1251a61-1.jpg" type="image/jpeg"> 11 <link rel="canonical" href="https://lucent.blog/deepseek-v41-flash-dp2-tp8/"> 12 <link rel="alternate" type="text/markdown" href="https://lucent.blog/deepseek-v41-flash-dp2-tp8.md"> 13 <meta name="referrer" content="no-referrer-when-downgrade"> 14 15 <meta property="og:site_name" content="Lucent's Blog"> 16 <meta property="og:type" content="article"> 17 <meta property="og:title" content="åæº 16ÃH100 é¨ç½² DeepSeek-V4.1-Flashï¼vLLM DP2 à TP8 + EP16 + 1M ä¸ä¸æå®æ"> 18 <meta property="og:description" content="DeepSeek-V4.1-Flash æ¯ DeepSeek æ°ä¸ä»£å¤§è§æ¨¡ MoE 模åï¼åçæ¯æ 1,048,576 Tokenï¼1Mï¼ä¸ä¸æï¼åæ¶å å« Engram Memoryãç¨ç注æåãVision 以å DSpark Speculative Decoding çæºå¶ã 19 20vLLM 宿¹ Recipe ç»åºç模åè§æ¨¡é常大ï¼çº¦ 552B Backbone + 196B Engram Memoryï¼æ¨¡åæä»¶çº¦ 511 GBï¼å®æ¹ç»åºçæä½æ¾åé¢ç®çº¦ 614 GBã 21 22æ¬æè®°å½ä¸æ¬¡å®é é¨ç½²ï¼ 23 24以䏿ææè ¾åæ¯å ä¸ºæªæ¢åæï¼vllm代ç 仿ªå®ç¾æ¯æå¤æºæ¨ç DeepSeek-V4.1-Flashã 25 26æå¡å¨æ°éï¼"> 27 <meta property="og:url" content="https://lucent.blog/deepseek-v41-flash-dp2-tp8/"> 28 <meta property="og:image" content="https://lucent.blog/content/images/size/w1200/2026/09/be93c42e-425a-441f-90d0-2412adc44576.png"> 29 <meta property="article:published_time" content="2026-09-14T15:10:18.000Z"> 30 <meta property="article:modified_time" content="2026-09-14T15:27:29.000Z"> 31 <meta property="article:tag" content="大模å"> 32 33 <meta name="twitter:card" content="summary_large_image"> 34 <meta name="twitter:title" content="åæº 16ÃH100 é¨ç½² DeepSeek-V4.1-Flashï¼vLLM DP2 à TP8 + EP16 + 1M ä¸ä¸æå®æ"> 35 <meta name="twitter:description" content="DeepSeek-V4.1-Flash æ¯ DeepSeek æ°ä¸ä»£å¤§è§æ¨¡ MoE 模åï¼åçæ¯æ 1,048,576 Tokenï¼1Mï¼ä¸ä¸æï¼åæ¶å å« Engram Memoryãç¨ç注æåãVision 以å DSpark Speculative Decoding çæºå¶ã 36 37vLLM 宿¹ Recipe ç»åºç模åè§æ¨¡é常大ï¼çº¦ 552B Backbone + 196B Engram Memoryï¼æ¨¡åæä»¶çº¦ 511 GBï¼å®æ¹ç»åºçæä½æ¾åé¢ç®çº¦ 614 GBã 38 39æ¬æè®°å½ä¸æ¬¡å®é é¨ç½²ï¼ 40 41以䏿ææè ¾åæ¯å ä¸ºæªæ¢åæï¼vllm代ç 仿ªå®ç¾æ¯æå¤æºæ¨ç DeepSeek-V4.1-Flashã 42 43æå¡å¨æ°éï¼"> 44 <meta name="twitter:url" content="https://lucent.blog/deepseek-v41-flash-dp2-tp8/"> 45 <meta name="twitter:image" content="https://lucent.blog/content/images/size/w1200/2026/09/be93c42e-425a-441f-90d0-2412adc44576.png"> 46 <meta name="twitter:label1" content="Written by"> 47 <meta name="twitter:data1" content="Lucent"> 48 <meta name="twitter:label2" content="Filed under"> 49 <meta name="twitter:data2" content="大模å"> 50 <meta property="og:image:width" content="1200"> 51 <meta property="og:image:height" content="675"> 52 53
53<script type="application/ld+json"> 54{ 55 "@context": "https://schema.org", 56 "@type": "Article", 57 "publisher": { 58 "@type": "Organization", 59 "name": "Lucent's Blog", 60 "url": "https://lucent.blog/", 61 "logo": { 62 "@type": "ImageObject", 63 "url": "https://lucent.blog/content/images/2026/08/b_2efb53416812e31894318965b1251a61.jpg", 64 "width": 60, 65 "height": 60 66 } 67 }, 68 "author": { 69 "@type": "Person", 70 "name": "Lucent", 71 "image": { 72 "@type": "ImageObject", 73 "url": "https://www.gravatar.com/avatar/3642289e0b2e0025802a85f6b5b6a8a0?s=250&r=x&d=mp", 74 "width": 250, 75 "height": 250 76 }, 77 "url": "https://lucent.blog/author/lucent/", 78 "sameAs": [] 79 }, 80 "headline": "åæº 16ÃH100 é¨ç½² DeepSeek-V4.1-Flashï¼vLLM DP2 à TP8 + EP16 + 1M ä¸ä¸æå®æ", 81 "url": "https://lucent.blog/deepseek-v41-flash-dp2-tp8/", 82 "datePublished": "2026-09-14T15:10:18.000Z", 83 "dateModified": "2026-09-14T15:27:29.000Z", 84 "image": { 85 "@type": "ImageObject", 86 "url": "https://lucent.blog/content/images/size/w1200/2026/09/be93c42e-425a-441f-90d0-2412adc44576.png", 87 "width": 1200, 88 "height": 675 89 },
90 "keywords": "大模å", 91 "description": "DeepSeek-V4.1-Flash æ¯ DeepSeek æ°ä¸ä»£å¤§è§æ¨¡ MoE 模åï¼åçæ¯æ 1,048,576 Tokenï¼1Mï¼ä¸ä¸æï¼åæ¶å å« Engram Memoryãç¨ç注æåãVision 以å DSpark Speculative Decoding çæºå¶ã\n\nvLLM 宿¹ Recipe ç»åºç模åè§æ¨¡é常大ï¼çº¦ 552B Backbone + 196B Engram Memoryï¼æ¨¡åæä»¶çº¦ 511 GBï¼å®æ¹ç»åºçæä½æ¾åé¢ç®çº¦ 614 GBã\n\næ¬æè®°å½ä¸æ¬¡å®é é¨ç½²ï¼\n\n以䏿ææè ¾åæ¯å ä¸ºæªæ¢åæï¼vllm代ç 仿ªå®ç¾æ¯æå¤æºæ¨ç DeepSeek-V4.1-Flashã\n\næå¡å¨æ°éï¼2\nGPUï¼16 à NVIDIA H100 80GB\næ¯èç¹ï¼8 à H100\nèç¹ 1ï¼10.30.8.1\nèç¹ 2ï¼10.30.8.2\n\né«éç½ç»ï¼\nNode 1:\n ens11np0 = 1.1.1.2\n ens13np0 = 1.1.2.2\n\nNode 2:\n ens11np0 = 1.1.1.1\n ens13np0 = 1.1.2.1\n\nç½ç»ï¼åè·¯ 4", 92 "mainEntityOfPage": "https://lucent.blog/deepseek-v41-flash-dp2-tp8/" 93} 94 </script>
94 95 96 <meta name="generator" content="Ghost 6.59"> 97 <link rel="alternate" type="application/rss+xml" title="Lucent's Blog" href="https://lucent.blog/rss/"> 98 99
99<script defer src="https://cdn.jsdelivr.net/ghost/sodo-search@~1.8/umd/sodo-search.min.js" data-key="e47e3d9ecc25587dd309a3f526" data-styles="https://cdn.jsdelivr.net/ghost/sodo-search@~1.8/umd/main.css" data-sodo-search="https://lucent.blog/" data-locale="zh" crossorigin="anonymous"></script>
99 100 101 <link href="https://lucent.blog/webmentions/receive/" rel="webmention"> 102
102<script defer src="/public/cards.min.js?v=ShRHxgy4po8zN-Wf"></script>
102 103 <link rel="stylesheet" type="text/css" href="/public/cards.min.css?v=Jw0334E-A8vpuWdm"> 104
104<script defer src="/public/ghost-stats.min.js?v=RYVTbqYSu0JtTYwE" data-stringify-payload="false" data-datasource="analytics_events" data-storage="localStorage" data-host="https://lucent.blog/api/v1/page_hit" tb_site_uuid="0a519f17-ce0c-4b9e-8152-2e0f20a2d7cd" tb_post_uuid="6b128eb5-c7cc-44c3-8349-0771797de376" tb_post_type="post" tb_member_uuid="undefined" tb_member_status="undefined" tb_gift_link=""></script>
104<style>:root {--ghost-accent-color: #FF1A75;}</style> 105 <link rel="preconnect" href="https://fonts.bunny.net"><link rel="stylesheet" href="https://fonts.bunny.net/css?family=noto-serif:400,700|noto-sans:400,700"><style>:root {--gh-font-heading: Noto Serif;--gh-font-body: Noto Sans;}</style> 106</head> 107<body class="post-template tag-halo-content-11 gh-font-heading-noto-serif gh-font-body-noto-sans route-content"> 108 <a class="skip-link" href="#main-content">è·³å°æ£æ</a> 109 <header class="site-panel"> 110 <div class="site-panel__background" aria-hidden="true"> 111 <img class="site-panel__background-image" src="/content/images/size/w2000/2026/08/37A6B7EA-DD79-475F-BD74-AAB500C6882F.png" alt=""> 112 </div> 113 <div class="site-panel__content"> 114 <button class="site-panel__menu-button mobile-menu-toggle" type="button" data-mobile-menu-toggle aria-controls="site-navigation" aria-expanded="false" aria-label="忢坼èª"> 115 <span class="site-panel__menu-icon"><svg aria-hidden="true" focusable="false" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"> 116 <path d="M4 6h16"></path> 117 <path d="M4 12h16"></path> 118 <path d="M4 18h16"></path> 119</svg> 120</span> 121 <span class="site-panel__close-icon"><svg aria-hidden="true" focusable="false" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"> 122 <path d="M6 6l12 12"></path> 123 <path d="M18 6L6 18"></path> 124</svg> 125</span> 126 </button> 127 128 <div class="site-panel__identity" data-site-identity> 129 <a class="site-panel__avatar-link" href="https://lucent.blog/#blog" data-blog-action aria-label="æ¥çæç« "> 130 <img class="site-panel__avatar" src="/content/images/size/w360/2026/08/b_2efb53416812e31894318965b1251a61.jpg" alt="Lucent's Blog" width="80" height="80"> 131 </a> 132 133 <p class="site-panel__title"> 134 <a class="site-panel__brand" href="https://lucent.blog" data-home-action>Lucent's Blog</a> 135 </p> 136 137 <p class="site-panel__subtitle"> 138 彿¶ææå¨ æ¾ç §å½©äºå½ 139 </p> 140 <hr class="site-panel__divider"> 141 <p class="site-panel__welcome"> 142 人çä¸ç¸è§ï¼å¨å¦åä¸åã 143 </p> 144 <hr class="site-panel__divider site-panel__divider--secondary"> 145 146 <nav id="site-navigation" class="site-panel__navigation" aria-label="主导èª"> 147 <ul class="nav"> 148 <li class="nav-shou-ye"><a href="https://lucent.blog/">é¦é¡µ</a></li> 149 <li class="nav-wen-zhang"><a href="https://lucent.blog/#blog">æç« </a></li> 150 <li class="nav-guan-yu"><a href="https://lucent.blog/about/">å ³äº</a></li> 151 <li class="nav-wo-de-zuo-pin"><a href="https://lucent.blog/MyWorks/">æçä½å</a></li> 152 <li class="nav-teabuddy"><a href="https://teabuddy.dev/">TeaBuddy</a></li> 153</ul> 154 155 </nav> 156 </div> 157 158 <div class="site-panel__actions" role="group" aria-label="ç«ç¹å·¥å ·"> 159 <button class="site-panel__search" type="button" data-ghost-search aria-label="æç´¢"> 160 <svg aria-hidden="true" focusable="false" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"> 161 <circle cx="11" cy="11" r="7"></circle> 162 <path d="m20 20-4-4"></path> 163</svg> 164 </button> 165 </div> 166 167 <div class="site-panel__social-links" role="group" aria-label="ç¤¾äº¤é¾æ¥"> 168 </div> 169 </div> 170</header> 171 <div class="content-shell"> 172 <div id="main-content" class="content-shell__inner" tabindex="-1"> 173 174<main class="article-view"> 175 <article class="article post tag-halo-content-11"> 176 <header class="article-header"> 177 <div class="article-meta"> 178 <time datetime="2026-09-14">2026-09-14</time> 179 <span>é¢è®¡é 读 12 åé</span> 180 </div> 181 <h1>åæº 16ÃH100 é¨ç½² DeepSeek-V4.1-Flashï¼vLLM DP2 à TP8 + EP16 + 1M ä¸ä¸æå®æ</h1> 182 <div class="article-byline">
183 <span><a href="/author/lucent/">Lucent</a></span> 184 <span><a href="/tag/halo-content-11/">大模å</a></span> 185 </div> 186 </header> 187 188 <figure class="article-image"> 189 <img 190 src="/content/images/size/w2000/2026/09/be93c42e-425a-441f-90d0-2412adc44576.png" 191 srcset="/content/images/size/w360/2026/09/be93c42e-425a-441f-90d0-2412adc44576.png 360w, 192 /content/images/size/w720/2026/09/be93c42e-425a-441f-90d0-2412adc44576.png 720w, 193 /content/images/size/w1200/2026/09/be93c42e-425a-441f-90d0-2412adc44576.png 1200w, 194 /content/images/size/w2000/2026/09/be93c42e-425a-441f-90d0-2412adc44576.png 2000w" 195 sizes="(max-width: 960px) 92vw, (max-width: 1400px) 60vw, 860px" 196 alt="åæº 16ÃH100 é¨ç½² DeepSeek-V4.1-Flashï¼vLLM DP2 à TP8 + EP16 + 1M ä¸ä¸æå®æ" 197 loading="eager" 198 fetchpriority="high" 199 > 200 </figure> 201 202 <section class="gh-content"> 203 <p>DeepSeek-V4.1-Flash æ¯ DeepSeek æ°ä¸ä»£å¤§è§æ¨¡ MoE 模åï¼åçæ¯æ <strong>1,048,576 Tokenï¼1Mï¼ä¸ä¸æ</strong>ï¼åæ¶å å« Engram Memoryãç¨ç注æåãVision 以å DSpark Speculative Decoding çæºå¶ã</p><p>vLLM 宿¹ Recipe ç»åºç模åè§æ¨¡é常大ï¼çº¦ <strong>552B Backbone + 196B Engram Memory</strong>ï¼æ¨¡åæä»¶çº¦ 511 GBï¼å®æ¹ç»åºçæä½æ¾åé¢ç®çº¦ 614 GBã</p><p>æ¬æè®°å½ä¸æ¬¡å®é é¨ç½²ï¼</p><p>以䏿ææè ¾åæ¯å ä¸ºæªæ¢åæï¼vllm代ç 仿ªå®ç¾æ¯æå¤æºæ¨ç DeepSeek-V4.1-Flashã</p><pre><code class="language-`">æå¡å¨æ°éï¼2 204GPUï¼16 à NVIDIA H100 80GB 205æ¯èç¹ï¼8 à H100 206èç¹ 1ï¼10.30.8.1 207èç¹ 2ï¼10.30.8.2 208 209é«éç½ç»ï¼ 210Node 1: 211 ens11np0 = 1.1.1.2 212 ens13np0 = 1.1.2.2 213 214Node 2: 215 ens11np0 = 1.1.1.1 216 ens13np0 = 1.1.2.1 217 218ç½ç»ï¼åè·¯ 400G RoCE</code></pre><p>æç»éç¨ï¼</p><pre><code class="language-`">DP = 2 219TP = 8 220EP = 16 221PP = 1 222Context = 1M 223DSpark = ON 224Vision = ON</code></pre><p>ä¹å°±æ¯ï¼</p><pre><code class="language-`"> API Server 225 â 226 10.30.8.1 227 â 228 DP Coordinator 229 âââââââ´ââââââ 230 â â 231 DP Rank 0 DP Rank 1 232 â â 233 10.30.8.1 10.30.8.2 234 TP8 TP8 235 GPU 0 ~ GPU 7 GPU 0 ~ GPU 7 236 âââââââ¬ââââââ 237 â 238 EP16</code></pre><p>vLLM æ¬èº«æ¯æè¿ç§ <strong>DP + TP + EP</strong> ç»åï¼Attention 卿¯ä¸ª DP rank å ä½¿ç¨ TPï¼MoE Expert åå¯ä»¥éè¿ <code>--enable-expert-parallel</code> å¨ <code>DP à TP</code> èå´ç»æ Expert Parallel Groupã</p><h3 id="%E4%B8%80%E3%80%81%E4%B8%BA%E4%BB%80%E4%B9%88%E6%9C%80%E7%BB%88%E9%80%89%E6%8B%A9-dp2-%C3%97-tp8">ä¸ã为ä»ä¹æç»éæ© DP2 à TP8</h3><p>ä¸å¼å§æèªç¶çæ³æ³å ¶å®æ¯ï¼</p><pre><code>2 èç¹ Ã 8 H100 239 â 240 TP16</code></pre><p>ä¹å°±æ¯è®©ä¸ä¸ªè¯·æ±æ¨ªè·¨å ¨é¨ 16 å¼ GPUã</p><p>ä½å®é æµè¯åç°ï¼æªè³æ¬æä½¿ç¨ç vLLM nightlyï¼</p><pre><code>vllm/vllm-openai:nightly-eed1f3d0c6043bd494424a22443ee198dd56f657</code></pre><p>DeepSeek-V4.1-Flash ç TP16 è·¯å¾ä»ç¶åå¨å®ç°éå¶ã</p><p>å®é å¯å¨å·²ç»å¯ä»¥ï¼</p><pre><code class="language-`">â åå§å 16 个 TP Rank 241â NCCL è·¨èç¹éä¿¡ 242â å è½½ DeepSeek-V4.1-Flash 243â å 载模åæé</code></pre><p>ä½å¨ <code>profile_run</code> é¶æ®µè¿å ¥ FlashMLA æ¶ä¼æ¥ï¼</p><pre><code class="language-`">vllm/models/deepseek_v4_1/nvidia/flashmla.py 244 245heads_per_group = 246 self.n_local_heads // self.n_local_groups 247 248ZeroDivisionError: 249integer division or modulo by zero</code></pre><p>ä¹å°±æ¯å¨ <strong>TP16 åååï¼å½å FlashMLA 对é¨åæ¬å° Attention Group çåååºç°äº <code>n_local_groups == 0</code></strong>ã</p><p>餿¤ä¹å¤ï¼DeepSeek-V4.1 ç Engram ç®åä¹åå¨ TP shard æ°éæ¹é¢ç约æãvLLM å½å代ç ä¸çè³æç¡®ä¿ç(åä¸å¤©çæä¸ä¸æ¯è¿æ ·ï¼æä»¥æ¯å®æ¹ä¹åç°äºé®é¢)ï¼</p><pre><code class="language-`">
249# TODO: Support row-wise sharding when there are too few hash heads.</code></pre><p>å æ¤è¿å¹¶ä¸æ¯ï¼</p><pre><code>NCCL é ç½®é误 250RoCE ç½ç»é误 251æ¾åä¸è¶³ 252模åæä»¶æå</code></pre><p>èæ¯å½å vLLM 对 DeepSeek-V4.1 <strong>è¶ å¤§ TP Size çæ¨¡åå®ç°ä»æè¾¹çæ¡ä»¶æ²¡æå®å ¨å¤ç</strong>ã</p><p>æä»¥è¿éæ¹ä¸ºï¼</p><pre><code>TP16 à DP1 253 â 254TP8 à DP2</code></pre><p>æ¯å°æå¡å¨å½¢æä¸ä¸ª TP8 Attention Groupã</p><h3 id="%E4%BA%8C%E3%80%81dp2-%C3%97-tp8-%E5%92%8C-tp16-%E6%9C%89%E4%BB%80%E4%B9%88%E5%8C%BA%E5%88%AB">äºãDP2 à TP8 å TP16 æä»ä¹åºå«</h3><p>ä¸¤ç§ææçèµ·æ¥é½ç¨äº 16 å¼ H100ï¼ä½æ§è¡æ¹å¼ä¸åã</p> 255<!--kg-card-begin: html--> 256<table data-start="2521" data-end="2849" class="w-fit min-w-(--thread-content-width)"><thead data-start="2521" data-end="2552"><tr data-start="2521" data-end="2552"><th data-start="2521" data-end="2526" data-col-size="sm" class="last:pe-10">项ç®</th><th data-start="2526" data-end="2539" data-col-size="sm" class="last:pe-10">TP16 à DP1</th><th data-start="2539" data-end="2552" data-col-size="sm" class="last:pe-10">TP8 à DP2</th></tr></thead><tbody data-start="2569" data-end="2849"><tr data-start="2569" data-end="2589"><td data-start="2569" data-end="2578" data-col-size="sm">GPU æ»æ°</td><td data-start="2578" data-end="2583" data-col-size="sm">16</td><td data-start="2583" data-end="2589" data-col-size="sm">16</td></tr><tr data-start="2590" data-end="2604"><td data-start="2590" data-end="2595" data-col-size="sm">DP</td><td data-start="2595" data-end="2599" data-col-size="sm">1</td><td data-start="2599" data-end="2604" data-col-size="sm">2</td></tr><tr data-start="2605" data-end="2633"><td data-start="2605" data-end="2623" data-col-size="sm">æ¯ä¸ª Attention TP</td><td data-start="2623" data-end="2628" data-col-size="sm">16</td><td data-start="2628" data-end="2633" data-col-size="sm">8</td></tr><tr data-start="2634" data-end="2667"><td data-start="2634" data-end="2652" data-col-size="sm">Expert Parallel</td><td data-start="2652" data-end="2659" data-col-size="sm">EP16</td><td data-start="2659" data-end="2667" data-col-size="sm">EP16</td></tr><tr data-start="2668" data-end="2695"><td data-start="2668" data-end="2686" data-col-size="sm">Attention æ¯å¦è·¨èç¹</td><td data-start="2686" data-end="2690" data-col-size="sm">æ¯</td><td data-start="2690" data-end="2695" data-col-size="sm">å¦</td></tr><tr data-start="2696" data-end="2720"><td data-start="2696" data-end="2711" data-col-size="sm">Expert æ¯å¦è·¨èç¹</td><td data-start="2711" data-end="2715" data-col-size="sm">æ¯</td><td data-start="2715" data-end="2720" data-col-size="sm">æ¯</td></tr><tr data-start="2721" data-end="2748"><td data-start="2721" data-end="2735" data-col-size="sm">ç¬ç« KV Cache</td><td data-start="2735" data-end="2741" data-col-size="sm">1 ç»</td><td data-start="2741" data-end="2748" data-col-size="sm">2 ç»</td></tr><tr data-start="2749" data-end="2771"><td data-start="2749" data-end="2760" data-col-size="sm">API ååè½å</td><td data-start="2760" data-end="2765" data-col-size="sm">è¾ä½</td><td data-start="2765" data-end="2771" data-col-size="sm">æ´é«</td></tr><tr data-start="2772" data-end="2802"><td data-start="2772" data-end="2792" data-col-size="sm">åè¯·æ± Attention GPU</td><td data-start="2792" data-end="2797" data-col-size="sm">16</td><td data-start="2797" data-end="2802" data-col-size="sm">8</td></tr><tr data-start="2803" data-end="2822"><td data-start="2803" data-end="2811" data-col-size="sm">å¤è¯·æ±å¹¶å</td><td data-start="2811" data-end="2816" data-col-size="sm">ä¸è¬</td><td data-start="2816" data-end="2822" data-col-size="sm">æ´å¥½</td></tr><tr data-start="2823" data-end="2849"><td data-start="2823" data-end="2836" data-col-size="sm">1M Context</td><td data-start="2836" data-end="2843" data-col-size="sm">çè®ºæ¯æ</td><td data-start="2843" data-end="2849" data-col-size="sm">æ¯æ</td></tr></tbody></table> 257<!--kg-card-end: html--> 258<p>DP2 å¹¶ä¸ä¼æï¼</p><pre><code>1M Context</code></pre><p>åæï¼</p><pre><code>512K + 512K</code></pre><p>ä¸ä¸ªè¯·æ±ä»ç¶å¯ä»¥æ¥æå®æ´ï¼</p><pre><code>1,048,576 Token</code></pre><p>åªæ¯å®ç Attention ä¼å¨å ¶ä¸ä¸ä¸ª TP8 Replica ä¸è¿è¡ã</p><p>ä¾å¦ï¼</p><pre><code>Request A 259 â 260DP Rank 0 261 â 262Node 1 TP8 263 264Request B 265 â 266DP Rank 1 267 â 268Node 2 TP8</code></pre><p>è MoE Expert é¨åï¼ç±äºå¼å¯ï¼</p><pre><code>--enable-expert-parallel</code></pre><p>Expert Parallel Size 为ï¼</p><pre><code>EP_SIZE = DP à TP 269 270 = 2 à 8 271 272 = 16</code></pre><p>æä»¥ Expert ä»ç¶å¯ä»¥æ¨ªè·¨ 16 å¼ GPUã</p><h3 id="%E4%B8%89%E3%80%81docker-%E9%95%9C%E5%83%8F">ä¸ãDocker éå</h3><p>æ¬æ¬¡ä½¿ç¨ï¼</p><pre><code>vllm/vllm-openai:nightly-eed1f3d0c6043bd494424a22443ee198dd56f657</code></pre><p>è¿ä¸ªçæ¬å·²ç»å å«ï¼</p><pre><code>DeepseekV41ForCausalLM 273DeepSeek V4.1 tokenizer 274DeepSeek V4.1 tool parser 275DeepSeek V4.1 reasoning parser 276DSpark 277æ°ç Engram å®ç° 278Rust Frontend</code></pre><p>模ååæ¾å¨ä¸¤å°æºå¨ç¸åè·¯å¾ï¼</p><pre><code>/mnt/disk2/modelscope/models/deepseek-ai/DeepSeek-V4.1-Flash</code></pre><h3 id="%E5%9B%9B%E3%80%81%E4%B8%BB%E8%8A%82%E7%82%B9-docker-compose">åã主èç¹ Docker Compose</h3><p>主èç¹ï¼</p><pre><code>10.30.8.1 279 280400G IP: 2811.1.1.2 2821.1.2.2</code></pre><p><code>docker-compose.yml</code>ï¼</p><pre><code class="language-yml">services: 283 deepseek-v41-flash: 284 image: vllm/vllm-openai:nightly-eed1f3d0c6043bd494424a22443ee198dd56f657 285 container_name: deepseek-v41-flash 286 restart: unless-stopped 287 288 network_mode: host 289 ipc: host 290 privileged: true 291 gpus: all 292 293 environment: 294 CUDA_VISIBLE_DEVICES: "0,1,2,3,4,5,6,7" 295 296 # vLLM èç¹é´éä¿¡å°å 297 VLLM_HOST_IP: "1.1.1.2" 298 299 # 大模ååå§åå¯è½éè¦è¾é¿æ¶é´ 300 VLLM_ENGINE_READY_TIMEOUT_S: "3600" 301 302 # DeepSeek V4.1 æ¨è Rust Frontend 303 VLLM_USE_RUST_FRONTEND: "1" 304 305 PYTHONUNBUFFERED: "1" 306 307 # ======================== 308 # NCCL / RoCE 309 # ======================== 310 311 NCCL_DEBUG: "INFO" 312 313 # NCCL Socket 使ç¨ä¸¤å¼ 400G ç½å¡ 314 NCCL_SOCKET_IFNAME: "=ens11np0,ens13np0" 315 316 # Gloo æ§å¶éä¿¡åºå®èµ°ç¬¬ä¸å¼ 400G ç½å¡ 317 GLOO_SOCKET_IFNAME: "ens11np0" 318 319 # ä¸¤å¼ 400G RoCE HCA 320 NCCL_IB_HCA: "=mlx5_0:1,mlx5_2:1" 321 322 # å¯ç¨ IB Verbs / RoCE 323 NCCL_IB_DISABLE: "0" 324 325 volumes: 326 - /mnt/disk2/modelscope/models:/models:ro 327 - ./vllm-cache/deepseek-v41-flash:/root/.cache 328 329 ulimits: 330 memlock: 331 soft: -1 332 hard: -1 333 stack: 334 soft: 67108864 335 hard: 67108864 336 337 command: 338 - /models/deepseek-ai/DeepSeek-V4.1-Flash 339 340 # ======================== 341 # API 342 # ======================== 343 344 - --host 345 - "0.0.0.0" 346 347 - --port 348 - "8030" 349 350 - --served-model-name 351 - DeepSeek-V4.1-Flash 352 353 # ======================== 354 # TP8 355 # ======================== 356 357 - --tensor-parallel-size 358 - "8" 359 360 - --distributed-executor-backend 361 - mp 362 363 # ======================== 364 # DP2 365 # ======================== 366 367 # å ¨å± DP æ°é 368 - --data-parallel-size 369 - "2" 370 371 # å½åèç¹è¿è¡ä¸ä¸ª DP Replica 372 - --data-parallel-size-local 373 - "1" 374 375 # 主èç¹ä¸è¦æå® --data-parallel-start-rank 376 # é»è®¤ä» DP Rank 0 å¼å§ 377 378 # DP Coordinator å°å 379 - --data-parallel-address 380 - "1.1.1.2" 381 382 - --data-parallel-rpc-port 383 - "13399" 384 385 - --data-parallel-backend 386 - mp 387 388 # ======================== 389 # Expert Parallel 390 # ======================== 391 392 # DP2 à TP8 => EP16 393 - --enable-expert-parallel 394 395 # ======================== 396 # Context / Scheduler 397 # ======================== 398 399 # DeepSeek-V4.1 åç 1M Context 400 - --max-model-len 401 - "1048576" 402
403 # 忬¡ Scheduler Iteration æå¤§ Token Budget 404 - --max-num-batched-tokens 405 - "8192" 406 407 # æ¯ä¸ª DP Rank æå¤§æ´»è· Sequence æ°é 408 - --max-num-seqs 409 - "128" 410 411 - --gpu-memory-utilization 412 - "0.95" 413 414 # DeepSeek MLA KV Cache 415 - --kv-cache-dtype 416 - fp8_ds_mla 417 418 - --enable-prefix-caching 419 420 # ======================== 421 # DeepSeek V4.1 422 # ======================== 423 424 - --tokenizer-mode 425 - deepseek_v41 426 427 # Tool Calling 428 - --tool-call-parser 429 - deepseek_v41 430 431 - --enable-auto-tool-choice 432 433 # Reasoning / Thinking 434 - --reasoning-parser 435 - deepseek_v41 436 437 # ======================== 438 # DSpark 439 # ======================== 440 441 - --speculative-config 442 - '{"method":"dspark","num_speculative_tokens":5,"draft_sample_method":"probabilistic","rejection_sample_method":"block","enable_adaptive_verification":true}'</code></pre><p>è¿éæä¸ä¸ªé常容æè¸©çåï¼</p><p><strong>主èç¹ä¸è¦è®¾ç½®ï¼</strong></p><pre><code>--data-parallel-start-rank 0</code></pre><p>vLLM å½å CLI ä¸ï¼<code>--data-parallel-start-rank</code> æ¯ç» secondary node 使ç¨çã妿䏻èç¹ä¹æ¾å¼è®¾ç½®å®ï¼ä¼è¿å ¥ Hybrid Load Balancing 夿ï¼ä»èååèç¹ç <code>--headless</code> 模å¼å²çªã宿¹å¤èç¹ Internal DP 示ä¾åæ ·æ¯ä¸»èç¹ä¸ä¼ <code>start-rank</code>ï¼secondary node æä¼ ã</p><h3 id="%E4%BA%94%E3%80%81%E5%AD%90%E8%8A%82%E7%82%B9-docker-compose">äºãåèç¹ Docker Compose</h3><p>第äºå°æå¡å¨ï¼</p><pre><code>10.30.8.2 443 444400G IP: 4451.1.1.1 4461.1.2.1</code></pre><p>宿´é ç½®ï¼</p><pre><code>services: 447 deepseek-v41-flash: 448 image: vllm/vllm-openai:nightly-eed1f3d0c6043bd494424a22443ee198dd56f657 449 container_name: deepseek-v41-flash 450 restart: unless-stopped 451 452 network_mode: host 453 ipc: host 454 privileged: true 455 gpus: all 456 457 environment: 458 CUDA_VISIBLE_DEVICES: "0,1,2,3,4,5,6,7" 459 460 # å½åèç¹ 400G ç½ç» IP 461 VLLM_HOST_IP: "1.1.1.1" 462 463 VLLM_ENGINE_READY_TIMEOUT_S: "3600" 464 465 VLLM_USE_RUST_FRONTEND: "1" 466 467 PYTHONUNBUFFERED: "1" 468 469 # ======================== 470 # NCCL / RoCE 471 # ======================== 472 473 NCCL_DEBUG: "INFO" 474 475 NCCL_SOCKET_IFNAME: "=ens11np0,ens13np0" 476 477 GLOO_SOCKET_IFNAME: "ens11np0" 478 479 NCCL_IB_HCA: "=mlx5_0:1,mlx5_2:1" 480 481 NCCL_IB_DISABLE: "0" 482 483 volumes: 484 - /mnt/disk2/modelscope/models:/models:ro 485 - ./vllm-cache/deepseek-v41-flash:/root/.cache 486 487 ulimits: 488 memlock: 489 soft: -1 490 hard: -1 491 stack: 492 soft: 67108864 493 hard: 67108864 494 495 command: 496 - /models/deepseek-ai/DeepSeek-V4.1-Flash 497 498 # ======================== 499 # Headless Worker 500 # ======================== 501 502 # 第äºèç¹ä¸æä¾ HTTP API 503 - --headless 504 505 - --served-model-name 506 - DeepSeek-V4.1-Flash 507 508 # ======================== 509 # TP8 510 # ======================== 511 512 - --tensor-parallel-size 513 - "8" 514 515 - --distributed-executor-backend 516 - mp 517 518 # ======================== 519 # DP2 520 # ======================== 521 522 - --data-parallel-size 523 - "2" 524 525 - --data-parallel-size-local 526 - "1" 527 528 # 第äºå°æå¡å¨è´è´£ DP Rank 1 529 - --data-parallel-start-rank 530 - "1" 531 532 # å§ç»æå主èç¹ 533 - --data-parallel-address 534 - "1.1.1.2" 535 536 - --data-parallel-rpc-port 537 - "13399" 538 539 - --data-parallel-backend 540 - mp 541 542 # ======================== 543 # Expert Parallel 544 # ======================== 545 546 - --enable-expert-parallel 547 548 # ======================== 549 # Context / Scheduler 550 # ======================== 551 552 - --max-model-len 553 - "1048576" 554 555 - --max-num-batched-tokens 556 - "8192" 557 558 - --max-num-seqs 559 - "128" 560 561 - --gpu-memory-utilization 562 - "0.95" 563 564 - --kv-cache-dtype 565 - fp8_ds_mla 566 567 - --enable-prefix-caching 568 569 # ======================== 570 # DeepSeek V4.1 571 # ======================== 572 573 - --tokenizer-mode 574 - deepseek_v41 575 576 - --tool-call-parser 577 - deepseek_v41 578 579 - --enable-auto-tool-choice 580 581 - --reasoning-parser 582 - deepseek_v41 583 584 # ======================== 585 # DSpark 586 # ======================== 587 588 - --speculative-config 589 - '{"method":"dspark","num_speculative_tokens":5,"draft_sample_method":"probabilistic","rejection_sample_method":"block","enable_adaptive_verification":true}'</code></pre><p>宿¹çå¤èç¹ Internal DP 乿¯ç±»ä¼¼ç»æï¼</p><pre><code>主èç¹ï¼ 590API + æ¬å° DP Engine 591 592Secondaryï¼ 593--headless 594--data-parallel-start-rank N</code></pre><p>æç»ææè¯·æ±ä»ç¶åªéè¦è®¿é®ä¸»èç¹ã</p><h3 id="%E5%85%AD%E3%80%81%E5%90%AF%E5%8A%A8%E9%A1%BA%E5%BA%8F">å ãå¯å¨é¡ºåº</h3><p>æ¨èå å¯å¨åèç¹ï¼</p><pre><code>docker compose up</code></pre><p>æè ï¼</p><pre><code>docker compose up -d 595docker compose logs -f</code></pre><p>çåèç¹å¼å§çå¾ Coordinatorã</p><p>ç¶åå¯å¨ä¸»èç¹ï¼</p><pre><code>docker compose up -d 596docker compose logs -f</code></pre><p>æç» API å°åï¼</p><pre><code>http://10.30.8.1:8030</code></pre><h3 id="%E4%B8%83%E3%80%81%E9%AA%8C%E8%AF%81%E6%A8%A1%E5%9E%8B">ä¸ãéªè¯æ¨¡å</h3><p>é¦å æ£æ¥æ¨¡åå表ï¼</p><pre><code>curl http://10.30.8.1:8030/v1/models</code></pre><p><img src="https://obj.lemonc.cc/files/2026/09/14/224918.png" alt="" loading="lazy"></p> 597<p>ç¶ååéæµè¯è¯·æ±ï¼</p><pre><code>curl http://10.30.8.1:8030/v1/chat/completions \ 598 -H "Content-Type: application/json" \ 599 -d '{ 600 "model": "DeepSeek-V4.1-Flash", 601 "messages": [ 602 { 603 "role": "user", 604 "content": "17*19çäºå¤å°ï¼åªè¿åæ°åã" 605 } 606 ], 607 "temperature": 0, 608 "chat_template_kwargs": { 609 "thinking": false 610 } 611 }'</code></pre><p><img src="https://obj.lemonc.cc/files/2026/09/14/225205.png" alt="" loading="lazy"></p> 612<p>å ³é Thinkingï¼</p><pre><code>{ 613 "chat_template_kwargs": { 614 "thinking": false 615 } 616}</code></pre><p>éè¦æ¨çæ¨¡å¼æ¶åï¼</p><pre><code>{ 617 "chat_template_kwargs": { 618 "thinking": true 619 } 620}</code></pre><h3 id="%E5%85%AB%E3%80%818192-%E5%92%8C-128-%E5%88%86%E5%88%AB%E6%8E%A7%E5%88%B6%E4%BB%80%E4%B9%88">å «ã8192 å 128 å嫿§å¶ä»ä¹</h3><p>å½åæç»é ç½®ï¼</p><pre><code>--max-num-batched-tokens 8192 621--max-num-seqs 128</code></pre><p>è¿ä¸¤ä¸ªåæ°å¾å®¹æè¢«è¯¯è§£ã</p><h2 id="max-num-batched-tokens8192"><code>max-num-batched-tokens=8192</code></h2><p>å®ä¸æ¯ï¼</p><pre><code>æå¤§ä¸ä¸æ = 8192</code></pre><p>çæ£çæå¤§ä¸ä¸æä»ç¶ç±ï¼</p><pre><code>--max-model-len 1048576</code></pre><p>å³å®ã</p><p><code>max-num-batched-tokens</code> æ§å¶çæ¯ï¼</p><blockquote>
621ä¸ä¸ª Scheduler iteration å æå¤å¤çå¤å° Tokenã</blockquote><p>æä»¥ä¸ä¸ª 1M Prompt å¯ä»¥è¢« Chunked Prefill ææå¾å¤ä¸ª chunkï¼</p><pre><code>1,048,576 / 8192 622â 128 个è°åº¦ Chunk</code></pre><p>8192 乿¯ vLLM DeepSeek-V4.1 Recipe ç»åºçå¸¸è§ sweet spotã</p><p>弿´å¤§ï¼</p><pre><code>16384 62332768</code></pre><p>é¿ Prompt Prefill ååå¯è½æé«ï¼ä½ activationãworkspace å䏿¬¡ forward çååä¹ä¼å¢å¤§ã</p><hr><h2 id="max-num-seqs128"><code>max-num-seqs=128</code></h2><p>å®è¡¨ç¤ºï¼</p><blockquote>æ¯ä¸ä¸ª DP rank åæ¶æå¤è°åº¦ 128 æ¡æ´»è· sequenceã</blockquote><p>å 为æä»¬ç°å¨ï¼</p><pre><code>DP = 2</code></pre><p>æä»¥æ´ä¸ªæå¡ç论 Scheduler Active Sequence ä¸éï¼</p><pre><code>128 à 2 624= 256 sequences</code></pre><p>注æè¿éæ¯ï¼</p><pre><code>Active Sequences</code></pre><p>è䏿¯ï¼</p><pre><code>æå¤åªè½æ 256 个 HTTP 请æ±</code></pre><p>è¶ è¿ 256 ç请æ±å¯ä»¥ç»§ç»å¨éåçå¾ ã</p><p>æä»¥å®¢æ·ç«¯å®å ¨å¯ä»¥ï¼</p><pre><code>Concurrency = 300</code></pre><p>åªæ¯å¨æä¸ä¸ªç¬é´çæ£è¿å ¥ä¸¤ä¸ª Engine Scheduler ç active sequence æ°éæå¤çº¦ï¼</p><pre><code>256</code></pre><p>å ¶ä½è¯·æ±çå¾ è°åº¦ã</p><h3 id="%E4%B9%9D%E3%80%81%E5%AE%9E%E9%99%85%E5%8E%8B%E6%B5%8B%E7%BB%93%E6%9E%9C">ä¹ãå®é åæµç»æ</h3><p><img src="https://obj.lemonc.cc/files/2026/09/14/225404.png" alt="" loading="lazy"></p> 625<h3 id="%E5%8D%81%E3%80%81%E5%87%A0%E4%B8%AA%E8%B8%A9%E5%9D%91%E8%AE%B0%E5%BD%95">åãå 个踩åè®°å½</h3><h4 id="1-%E4%B8%BB%E8%8A%82%E7%82%B9%E4%B8%8D%E8%83%BD%E8%AE%BE%E7%BD%AE-data-parallel-start-rank0">1. 主èç¹ä¸è½è®¾ç½® <code>data-parallel-start-rank=0</code></h4><p>é误é ç½®ï¼</p><pre><code>主èç¹ï¼ 626--data-parallel-start-rank 0 627 628åèç¹ï¼ 629--headless</code></pre><p>å¯è½å¯¼è´ï¼</p><pre><code>Remote engine 1 must not use --headless 630in external or hybrid dp lb mode</code></pre><p>æ£ç¡®æ¹å¼ï¼</p><pre><code>主èç¹ï¼ 631ä¸ä¼ start-rank 632 633åèç¹ï¼ 634--data-parallel-start-rank 1 635--headless</code></pre><p>宿¹ææ¡£åæ ·æ <code>--data-parallel-start-rank</code> å®ä¹ä¸º secondary node çèµ·å§ DP rankã</p><h4 id="2-%E4%B8%8D%E8%A6%81%E4%BD%BF%E7%94%A8-tp16">2. ä¸è¦ä½¿ç¨ TP16</h4><p>å½å tested nightly ä¸ï¼</p><pre><code>TP16 636â FlashMLA local attention group åçå¼å¸¸ 637â n_local_groups = 0 638â ZeroDivisionError</code></pre><p>æä»¥ï¼</p><pre><code>DP2 à TP8</code></pre><p>æ¯ç®åå¨ 2Ã8 H100 䏿´ç¨³å®çæ¹æ¡ã</p><h4 id="3-dspark-%E4%B8%8D%E5%BB%BA%E8%AE%AE%E5%92%8C-pp2-%E6%B7%B7%E7%94%A8">3. DSpark ä¸å»ºè®®å PP2 æ··ç¨</h4><p>æä»¬ä¹åè¿æµè¯è¿ï¼</p><pre><code>TP8 à PP2 + DSpark</code></pre><p>DSpark Draft Model å½å䏿¯æ Pipeline Parallel è·¯å¾ï¼å æ¤ä¼åºç°ï¼</p><pre><code>Pipeline parallelism is not supported for this model</code></pre><p>æä»¥æ¬æ¹æ¡ä¿æï¼</p><pre><code class="language-`">PP = 1</code></pre><h3 id="%E5%8D%81%E4%B8%80%E3%80%81%E4%B8%BA%E4%BB%80%E4%B9%88%E6%B2%A1%E6%9C%89%E7%BB%A7%E7%BB%AD%E4%BD%BF%E7%94%A8%E5%AE%98%E6%96%B9%E6%97%A9%E6%9C%9F%E9%95%9C%E5%83%8Fdeepseekv41-flash-0909">åä¸ã为ä»ä¹æ²¡æç»§ç»ä½¿ç¨å®æ¹æ©æéådeepseekv41-flash-0909</h3><p>æå¼å§é¨ç½² DeepSeek-V4.1-Flash æ¶ï¼æä»¬ä½¿ç¨çæ¯ vLLM 为该模åæä¾çä¸ç¨éåï¼</p><pre><code>vllm/vllm-openai:deepseekv41-flash-0909</code></pre><p>éåå å®é vLLM çæ¬ä¸ºï¼</p><pre><code>0.1.dev20904+g179dd0fa9</code></pre><p>è¿ä¸ªéååæº <code>TP8</code> å¯ä»¥è¿è¡ DeepSeek-V4.1-Flashï¼å æ¤æåçæ³æ³å¾ç´æ¥ï¼</p><pre><code>åæºï¼ 6398 à H100 640TP8 641 â 642æ©å±å°åæºï¼ 64316 à H100</code></pre><p>ä½çæ£ååæºæµè¯æ¶ï¼åç°å½æ¶è¿ä¸ªä¸ç¨éåå¯¹äº DeepSeek-V4.1 ç夿ºå¹¶è¡æ¯æè¿ä¸å®æ´ã</p><h4 id="%E7%AC%AC%E4%B8%80%E7%A7%8D%E5%B0%9D%E8%AF%95%EF%BC%9Atp8-%C3%97-pp2">第ä¸ç§å°è¯ï¼TP8 à PP2</h4><p>æç´è§çåæºæ¹æ¡æ¯ï¼</p><pre><code>Node 1ï¼TP8 644Node 2ï¼TP8 645 646Pipeline Parallel = 2 647Tensor Parallel = 8</code></pre><p>ä¹å°±æ¯ï¼</p><pre><code>TP8 à PP2 = 16 GPU</code></pre><p>使¯å¼å¯ DSpark åï¼å¯å¨ç´æ¥å¤±è´¥ï¼</p><pre><code>NotImplementedError: 648Pipeline parallelism is not supported for this model. 649Supported models implement the SupportsPP interface.</code></pre><p>
649è¿ä¸æ¥æ£æ¥ä»£ç ååç°ï¼è¿éçé®é¢å¹¶ä¸æ¯ DeepSeek-V4.1 ä¸»æ¨¡åæ¬èº«å®å ¨ä¸æ¯æ PPï¼èæ¯ <strong>DSpark Draft Model</strong> 没æå®ç° vLLM ç <code>SupportsPP</code> æ¥å£ã</p><p>ä¹å°±æ¯è¯´ï¼</p><pre><code>DeepSeek-V4.1 主模å 650 â 651å¯ä»¥åå¨ PP æ¯æ 652 653DSpark Draft Model 654 â 655没æ PP æ¯æ</code></pre><p>å æ¤ï¼</p><pre><code>TP8 + PP2 + DSpark</code></pre><p>è¿æ¡è·¯èµ°ä¸éã</p><p>èæä»¬å¹¶ä¸å¸æä¸ºäºåæºèå ³é DSparkï¼å 为 speculative decoding æ¬èº«å°±æ¯è¿å¥é¨ç½²å¸æä¿ççéè¦æ§è½è½åã</p><h4 id="%E7%AC%AC%E4%BA%8C%E7%A7%8D%E5%B0%9D%E8%AF%95%EF%BC%9Atp16-%C3%97-pp1">第äºç§å°è¯ï¼TP16 à PP1</h4><p>æ¢ç¶ï¼</p><pre><code>PP2 + DSpark</code></pre><p>åå¨å ¼å®¹é®é¢ï¼é£ä¹å¦ä¸ä¸ªæè·¯å°±æ¯å½»åºä¸ä½¿ç¨ Pipeline Parallelï¼</p><pre><code>PP = 1 656TP = 16</code></pre><p>让æ´ä¸ªæ¨¡åç´æ¥åè·¨èç¹ Tensor Parallelï¼</p><pre><code>Node 1 GPU0~7 ââ 657 âââ TP16 658Node 2 GPU0~7 ââ</code></pre><p>è¿æ · DSpark å°±ä¸åç»è¿ PPã</p><p>使¯æ§ç <code>deepseekv41-flash-0909</code> åå¨ <strong>Engram</strong> åå§åé¶æ®µå¤±è´¥ã</p><p>å®é é误为ï¼</p><pre><code>AssertionError: 659Engram sharding leaves ranks without hash heads: 66024 heads over TP=16 x DP=1</code></pre><p>åå æ¥èª DeepSeek-V4.1 ç Engram Memoryã</p><p>模åè¿éä¸å ±æï¼</p><pre><code>24 个 Engram Hash Heads</code></pre><p>æ§ç vLLM æâ宿´ Hash Headâè¿è¡ Tensor Parallel åçã</p><p>妿ï¼</p><pre><code>TP = 8</code></pre><p>é£ä¹ï¼</p><pre><code>24 / 8 = 3 heads / TP rank</code></pre><p>å好å¯ä»¥å¹³ååï¼</p><pre><code>TP0 -> 3 661TP1 -> 3 662... 663TP7 -> 3</code></pre><p>使¯å¦æï¼</p><pre><code>TP = 16</code></pre><p>æ§å®ç°éç¨æ head group åçåï¼ä¼åºç°é¨å rank æ æ³è·å¾ææ Engram Head çæ åµã</p><p>å æ¤ä»£ç ä¸ç´æ¥è¿è¡äºä¿æ¤ï¼</p><pre><code>Engram sharding leaves ranks without hash heads</code></pre><p>æ¢å¥è¯è¯´ï¼å½æ¶çå®ç°å®é ä¸è¦æ±ï¼</p><pre><code>Engram Head æ°é 664å¿ é¡»è½å¤åçè¦çææ TP Rank</code></pre><p>ä½ï¼</p><pre><code>24 Heads 66516 TP Ranks</code></pre><p>并䏿»¡è¶³å½æ¶çåçå®ç°ã</p><p>æä»¥æ§éåä¸ï¼</p><pre><code>TP16 + PP1</code></pre><p>åæ ·æ æ³å¯å¨ã</p><h4 id="%E7%AC%AC%E4%B8%89%E7%A7%8D%E9%97%AE%E9%A2%98%EF%BC%9App2-%E4%B8%8E%E5%A4%9A%E6%A8%A1%E6%80%81%E8%B7%AF%E5%BE%84">第ä¸ç§é®é¢ï¼PP2 ä¸å¤æ¨¡æè·¯å¾</h4><p>æä»¬è¿æµè¯è¿å ³é DSpark åç»§ç»å°è¯ <code>TP8 à PP2</code>ã</p><p>模åæéå¯ä»¥å®æå è½½ï¼NCCL åè·¨èç¹éä¿¡ä¹é½æ£å¸¸ï¼ä½å¨ vLLM ç <code>profile_run</code> é¶æ®µï¼å¤æ¨¡ææ¨¡åè·¯å¾ååºç°ï¼</p><pre><code>ValueError: 666DeepSeek V4 vision MoE routing requires input_ids.</code></pre><p>ä¹å°±æ¯è¯´æ§çå¨ï¼</p><pre><code>Pipeline Parallel 667+ 668DeepSeek V4.1 Vision</code></pre><p>ç»åä¸ï¼dummy/profile forward çè¾å ¥ä¼ éè¿åå¨é®é¢ã</p><p>彿¶å¯ä»¥éè¿ï¼</p><pre><code>--language-model-only</code></pre><p>ç»å¼ Vision è·¯å¾ï¼ä½è¿æ ·åæå³ç失å»å¤æ¨¡æè½åã</p><p>æä»¥ï¼å¯¹äºæä»¬çç®æ ï¼</p><pre><code>åæº 16 à H100 669+ 670Vision 671+ 672DSpark 673+ 6741M Context</code></pre><p>æ§éåå®é 䏿²¡æä¸æ¡å®æ´å¯ç¨çåæºè·¯çº¿ï¼</p> 675<!--kg-card-begin: html--> 676<table data-start="2634" data-end="2844" class="w-fit min-w-(--thread-content-width)"><thead data-start="2634" data-end="2645"><tr data-start="2634" data-end="2645"><th data-start="2634" data-end="2639" data-col-size="sm" class="last:pe-10">æ¹æ¡</th><th data-start="2639" data-end="2645" data-col-size="sm" class="last:pe-10">ç»æ</th></tr></thead><tbody data-start="2656" data-end="2844"><tr data-start="2656" data-end="2670"><td data-start="2656" data-end="2665" data-col-size="sm">TP8 åæº</td><td data-start="2665" data-end="2670" data-col-size="sm">â </td></tr><tr data-start="2671" data-end="2711"><td data-start="2671" data-end="2692" data-col-size="sm">TP8 à PP2 + DSpark</td><td data-start="2692" data-end="2711" data-col-size="sm">â DSpark 䏿¯æ PP</td></tr><tr data-start="2712" data-end="2756"><td data-start="2712" data-end="2733" data-col-size="sm">TP8 à PP2 + Vision</td><td data-start="2733" data-end="2756" data-col-size="sm">â profile_run 夿¨¡æé®é¢</td></tr>
676<tr data-start="2757" data-end="2787"><td data-start="2757" data-end="2770" data-col-size="sm">TP16 à PP1</td><td data-start="2770" data-end="2787" data-col-size="sm">â Engram åçéå¶</td></tr><tr data-start="2788" data-end="2844"><td data-start="2788" data-end="2822" data-col-size="sm">TP8 à PP2 + language-model-only</td><td data-start="2822" data-end="2844" data-col-size="sm">å¯ç»è¿é¨åé®é¢ï¼ä½ä¸¢å¤± Vision</td></tr></tbody></table> 677<!--kg-card-end: html--> 678<p>æç»ç»è¿ä¸ç³»åçæè ¾ï¼å¾åºä»¥ä¸ç»è®ºï¼</p><p><strong><em>deepseekv41-flash-0909 å¨å½åç DeepSeek-V4.1 å®ç°ä¸ï¼æ æ³å¨ä¿ç VisionãDSpark ç宿´è½åçåæ¶æææä»¬éè¦çåæº 16ÃH100 é¨ç½²</em></strong>ã</p><p>æä»¥ï¼æç»å°äºä»æ¥ 2026.09.14ï¼éçææ°ä»£ç åå¹¶ï¼nightly éåç»äºåæ¥æ¯æäºå¤æºè¿è¡ DeepSeek-V4.1-Flash</p><p><code>vllm/vllm-openai:nightly-eed1f3d0c6043bd494424a22443ee198dd56f657</code></p> 679 </section> 680 </article> 681 682 <nav class="post-navigation" aria-label="ç¸é»æç« "> 683 <a class="post-navigation__link post-navigation__link--previous" href="/deepseek-v4-flash-vision-and-qwen3-8-flash-think-mode/" rel="prev"> 684 <span class="post-navigation__direction">ä¸ä¸ç¯</span> 685 <strong class="post-navigation__title">DeepSeek-V4-Flash-Vision ä¸ Qwen3.8-Flash-Next æèæ¨¡å¼æ§å¶è¯´æ</strong> 686 <span class="post-navigation__excerpt">1. åæ°å¯¹ç § 687 688 689 690模åå ³éæèå¼å¯æèæè强度DeepSeek-V4-Flash-Vision-Expthinking: falsethinking: truelow / high / maxQwen3.8-Flash-Nextenable_thinking: falseenable_thinking: truelow / medium / xhigh</span> 691 </a> 692 693</nav> 694 <section class="article-comments" aria-label="è¯è®º"> 695 <div class="artalk-comments" data-artalk-comments data-artalk-server="https://lucent.blog" data-artalk-site="Lucent's Blog"></div> 696 <p class="artalk-comments__status" data-artalk-status hidden>è¯è®ºææ¶æ æ³å è½½ã</p> 697</section> 698</main> 699 700 </div> 701 <footer class="site-footer"> 702 <nav class="site-footer__navigation" aria-label="è¾ å©å¯¼èª"> 703 704 </nav> 705 <div class="site-footer__meta"> 706 <a class="site-footer__rss" href="https://lucent.blog/rss/" aria-label="éè¿ RSS 订é Lucent's Blog"> 707 <svg aria-hidden="true" focusable="false" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"> 708 <circle cx="5" cy="19" r="1"></circle> 709 <path d="M4 11a9 9 0 0 1 9 9"></path> 710 <path d="M4 4a16 16 0 0 1 16 16"></path> 711</svg> 712 <span>订é </span> 713 </a> 714 <span>© 2026 Lucent's Blog</span> 715 </div> 716</footer> 717 </div> 718
718<script src="https://lucent.blog/dist/Artalk.js" defer></script>
718 719
719<script src="/assets/built/main.js?v=uCzHSkGMfNrdy2bh" defer></script>
719 720 721</body> 722</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.