跳到正文
vLLM Blog· vLLM Team·· 2026-07-15精选AI 评分62

vLLM 宣布 Day-0 支持 TML Inkling 模型

TML Inkling on vLLM: Day-0 Support with Optimized Performance

AI 导读

vLLM 官方宣布在 Day-0 支持 Thinking Machines Lab 训练的 1T 参数多模态模型 TML Inkling,同时支持 thinkingmachines/Inkling-NVFP4 与 BF16 版本。

推荐理由

vLLM 官方给出 TML Inkling 的 Day-0 支持细节与优化手段,读者可了解 1T 多模态模型在推理框架上的落地方式。

正文 · AI 翻译

我们非常高兴地宣布,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-code

TL;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 验证了模型质量和工具解析

模型架构

Figure 1. TML Inkling model architecture (some ops such as RMSNorm and residual connections are omitted).
图 1. TML Inkling 模型架构(省略了 RMSNorm 和残差连接等部分算子)。

模态。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 缓存无缝协作。

Figure 2. Sconv-aware TP sharding.
图 2. 感知 sconv 的 TP 分片。

感知 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 总体 micro71.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
HLE29.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