vLLM 宣布 Day-0 支持 TML Inkling 模型
TML Inkling on vLLM: Day-0 Support with Optimized Performance
vLLM 官方宣布在 Day-0 支持 Thinking Machines Lab 训练的 1T 参数多模态模型 TML Inkling,同时支持 thinkingmachines/Inkling-NVFP4 与 BF16 版本。
vLLM 官方给出 TML Inkling 的 Day-0 支持细节与优化手段,读者可了解 1T 多模态模型在推理框架上的落地方式。

我们非常高兴地宣布,vLLM 在 Day 0 就正式支持 TML Inkling 模型。thinkingmachines/Inkling-NVFP4 和 thinkingmachines/Inkling(BF16)两个模型均获得支持,具备优化后的性能和完整的功能对等性。
TML Inkling 是由 Thinking Machines Lab 训练的 1T 参数多模态模型。该模型原生接受文本、图像和音频输入,并生成文本,上下文长度最高可达 1M。它引入了若干新颖的架构组件——相对注意力、短卷积和共享专家汇——这些现已高效集成到 vLLM 中。
借助 vLLM,该模型在 4 块 GB200 GPU 上运行速度最高可达启用 MTP 时 380 tok/s/用户,不启用 MTP 时 140 tok/s/用户。vLLM 还提供完整的功能对等性,包括 LoRA、TP/DP/EP/PP 并行、前缀缓存和分离式服务。我们通过全面的基准测试验证了模型准确性和工具解析。
集成 PR 见此。按如下方式运行模型:
export VLLM_USE_V2_MODEL_RUNNER=1
export FLASH_ATTENTION_CUTE_DSL_CACHE_ENABLED=1
vllm serve thinkingmachines/Inkling-NVFP4 \
--tokenizer-mode inkling \
--reasoning-parser inkling \
--tool-call-parser inkling \
--enable-auto-tool-choice \
--tensor-parallel-size 8 \
--speculative-config '{"method": "mtp", "num_speculative_tokens": 8}' \
--kernel-config.enable_flashinfer_autotune=False \
--trust-remote-codeTL;DR
vLLM 为 TML Inkling 提供强大的 Day-0 支持:
- 模型:
thinkingmachines/Inkling-NVFP4和thinkingmachines/Inkling(BF16)均获支持 - Hardware: NVIDIA Blackwell and Hopper GPUs
- 更广泛的硬件支持正在进行中。敬请期待!
- 模态:文本/图像/音频输入 → 文本输出
- 上下文长度:原生最高 1M token(Tinker 提供 64K 和 256K 上下文窗口)
- 功能:LoRA、投机解码(MTP)、TP/DP/EP/PP、前缀缓存、分离式服务等
- 优化:Sconv 感知的 TP 分片、低延迟融合集合通信、算子融合、多流、PDL 等
- 性能:在 4 块 GB200 GPU 上最高可达 380 tok/s/用户(启用 MTP)和 140 tok/s/用户(不启用 MTP)
- 准确性:通过 MMAU、MMMU-Pro、BFCL、NIAH-1M 和 HLE 验证了模型质量和工具解析
模型架构

模态。TML Inkling 是一个原生多模态模型,拥有 1T 参数。除文本和图像外,它还接受音频输入并生成文本。该模型使用极轻量的图像编码器(hMLP)和音频嵌入(dMel),如 TML 的交互模型预览所述。生成的嵌入由仅解码器 Transformer 主干处理。
注意力。主干有 66 层:11 个全注意力层和 55 个滑动窗口注意力层。这种对滑动窗口注意力的大量使用,正是该模型1M 上下文长度高效的原因。所有注意力层均使用分组查询注意力(GQA),头大小为 128。
Inkling 的一个独特设计选择是采用相对注意力作为其位置机制。Inkling 没有使用 RoPE,而是在 softmax 前的注意力 logits 上添加了一个可学习的相对位置项。详情请参阅 TML 的博客文章。
Sconv。Inkling 大量使用窗口大小为 4 的短卷积(sconv)。每一层包含四个 sconv 模块,分别应用于注意力键、注意力值、注意力输出和 MoE 输出。Sconv 的作用类似于一个小型局部注意力,同时计算和内存开销极小。
MoE。 每一层有 256 个路由专家(top-6)加上 2 个共享专家,因此每个 token 总共由 8 个专家处理。然而,与现有模型不同,Inkling 引入了专家汇(expert sink)的概念:两个共享专家参与路由分数计算(吸收概率质量),但被排除在 top-6 选择之外。
在 thinkingmachines/Inkling-NVFP4 中,只有路由专家被量化为 NVFP4;所有其他参数,包括共享专家和 qkvr 线性层,都保持为 BF16。在 thinkingmachines/Inkling 中,MoE 权重也是 BF16。
MTP。 Inkling 配备了 8 个 MTP 头用于投机解码,使模型每次前向步骤最多可生成 9 个 token。这些 MTP 头是链式的:每个头消费前一个头的隐藏状态和采样出的草稿 token。每个 MTP 头是一个单层 Transformer,具有全注意力或滑动窗口注意力以及一个稠密 MLP。所有 MTP 权重均为 BF16。
vLLM 集成与优化
vLLM 通过一系列优化高效地实现了该模型。关键亮点:
管理 sconv 缓存。 短卷积需要保留最后 W-1 个 token 的隐藏状态。vLLM 通过将其视为虚拟滑动窗口注意力层的 KV 缓存来管理这个 sconv 缓存。这使得 vLLM 能够通过其统一的 KV 缓存管理器优雅地处理 sconv 缓存:落在窗口之外的状态被标记为可驱逐,前缀缓存与 sconv 缓存无缝协作。

感知 sconv 的 TP 分片。 对该模型而言,一种直接的 TP 实现方式是:all-reduce(例如在 o_proj 之后)→ sconv → 残差连接 → RMSNorm。然而,这会在每个 GPU 上对完整的隐藏状态应用 sconv,从而在各 rank 之间重复 sconv 计算和 sconv 缓存。
为消除这种重复,vLLM 以不同方式对模型进行分片。由于 sconv 沿通道维度独立运算,我们沿通道对 sconv 进行分片:不使用 all-reduce,而是在通道维度上使用 reduce-scatter 和 all-gather。这样每个 GPU 只存储 sconv 缓存的一个分片,并且只计算自己那部分通道。这一思路类似于序列并行,但分片应用于通道维度而非 token 维度。
低延迟融合集合通信。 vLLM 进一步实现了若干融合内核来优化这一新的分片方案。特别是,我们通过扩展 FlashInfer 低延迟 all-reduce 内核的 Lamport 协议设计,构建了低延迟的 reduce-scatter 和 all-gather 内核(与周围算子融合)。Lamport 协议让内核通过数据值轮询而非显式屏障进行同步,将 batch size 为 1 时的内核时间从 40 µs 降至 8 µs(5 倍)。
带剪切偏置的 FA4。 相对注意力使内存访问模式复杂化,显著拖慢了注意力内核的计算流水线。为克服这一点,TML 与 Colfax Research 合作发布了一个采用剪切偏置技术的新 FA4 内核,vLLM 直接将其集成。vLLM 还会针对每种配置选择 FA4 的 num_splits 因子——综合考虑 batch size、TP 大小和 KV 长度——以最大化性能。
重新计算 MTP KV 缓存。由于每个 MTP 头都将前一个头的草稿 token 作为输入,因此每当一个草稿 token 被拒绝时,其 KV 缓存就会失效。vLLM 对此做了细致处理:它会缓存基础模型最近几个 token 的隐藏状态,并在拒绝采样后使用被接受的 token 重新运行 MTP 头。
除此之外,vLLM 的模型实现还包含额外的内核融合、PDL 和多流处理,以实现极致性能。详情请查看我们的 PR。
性能
得益于上述大量优化,vLLM 在 4× GB200 GPU 上使用 MTP8(平均接受长度 4.5)时达到 380 tok/s/user,不使用 MTP 时达到 140 tok/s/user。结果是在从 SPEED-Bench 采样的 8K 输入 token 提示上测得的,每个请求生成 1K 输出 token。
准确性评估
我们通过覆盖每种模态和能力的全面基准测试,验证了 vLLM 实现的正确性:
- 音频:MMAU
- 视觉:MMMU-Pro
- 工具调用:BFCL
- 推理:HLE
- 长上下文:NIAH
vLLM 在所有方面都与参考实现一致。在长上下文方面,vLLM 在 221K token 以内与参考完全一致,在 513K 以内保持在约 1 个百分点以内。在极端上下文长度(800K+)下,NIAH 分数显示该基准的多次运行间方差更高,我们正在努力收紧该区间内的可复现性。
| 基准 / 指标 | vLLM NVFP4 | 参考 NVFP4 | 与参考的差值 |
|---|---|---|---|
| MMAU 总体 | 76.10% (761/1,000) | 75.50% | +0.60 pp |
| BFCL 精确调用 | 78.61% (1,062/1,351) | 78.16% | +0.45 pp |
| BFCL All-Live 宏平均 | 75.86% | 73.54% | +2.32 pp |
| MMMU-Pro 总体 micro | 71.12% (3,691/5,190) | 70.52% (3,660/5,190) | +0.60 pp |
| MMMU-Pro 标准 10 选项 | 70.23% (1,215/1,730) | 70.00% (1,211/1,730) | +0.23 pp |
| MMMU-Pro 标准 4 选项 | 76.47% (1,323/1,730) | 76.30% (1,320/1,730) | +0.17 pp |
| MMMU-Pro 视觉 | 66.65% (1,153/1,730) | 65.26% (1,129/1,730) | +1.39 pp |
| HLE | 29.33% (633/2,158) | 26.65% | +2.68 pp |
| NIAH (2K-221K) | 99.09% (436/440) | 99.09% (436/440) | 0.00 pp |
| NIAH (294K-513K) | 95.68% (421/440) | 96.82% (426/440) | -1.14 pp |
| NIAH (586K-805K) | 81.36% (358/440) | 84.09% (370/440) | -2.73 pp |
| NIAH (878K) | 70.91% (78/110) | 80.91% (89/110) | -10.00 pp |
路线图
如上所述,vLLM 为 TML Inkling 提供了强大的 Day-0 支持。展望未来,我们看到了一些潜在的改进方向:
- 全局注意力的 FP8:Inkling 目前在全局注意力中使用 BF16,这可能成为计算和 KV 缓存容量方面的瓶颈。我们计划通过修改新的 FA4 内核来探索在此处使用 FP8。
- 图像和音频编码器的 CUDA graphs:图像和音频编码器目前以 eager 模式运行。虽然这通常不是大问题,因为它们在前填充期间运行,但我们计划对它们应用 CUDA graphs,以完全消除 CPU 开销。
- AMD GPU 支持:该模型目前尚不支持 AMD GPU,因为新的相对注意力机制需要专用内核。支持即将推出。
致谢
我们感谢 Thinking Machines Lab 团队的合作。模型支持由Inferact牵头,该公司致力于将 vLLM 发展为全球 AI 推理引擎,并通过让推理更便宜、更快速来加速 AI 进步。
来源:vLLM Blog · vllm.ai