跳到正文
实时
vLLM Blog· Inferact and Thinking Machines·· 3 天前精选60

vLLM 在发布首日支持 Thinking Machines 的 Inkling 2 Small

Inkling 2 Small on vLLM: Day-0 Support

要点速览

vLLM 在 Inkling 2 Small 发布首日提供支持。该模型是文本与视觉输入的多模态 MoE,总参数 594B、激活参数 17B,上下文最长 1M tokens,并自带 DSpark 推测解码器。

Why it matters

原文给出了 vLLM 对 Inkling 2 Small 的 Day-0 支持细节与多项内核优化,读者可据此了解该模型的部署路径与吞吐表现。

正文 · AI 翻译

vLLM 支持 Thinking Machines 的 Inkling 2 Small 在第 0 天。它是一个多模态(文本和视觉)MoE 模型,总参数量为 594B,活跃参数量为 17B,上下文长度最多可达 1M。该模型还配备了原生的 DSpark 推测器。vLLM 通过优化性能(在 TP4 上最高可达 630 TPS/user,接受长度为 3.5)支持它,并且也支持 LoRA。

TL;DR

  • 594B 总量,17B 活跃,1M 上下文。 一个 48 层的 MoE,拥有 384 个专家(top-8),可以处理图像和文本,并输出文本。
  • 从 Inkling 升级的架构。 块注意力残差、注意力汇流、门控注意力和 ViT 图像编码器。
  • 混合精度 MoE。 MoE 使用 NVFP4(层 0–39)和 MXFP8(层 40–47),因此该模型可以在单个节点上服务。
  • 原生 DSpark 推测器。 DSpark 配备 RNN 头,每步生成 7 个 token。
  • 广泛的优化。 内核融合、PDL、高度优化的 Gluon 注意力内核和序列并行性,在 GB200 上 TP4 达到最高 630 TPS/user,接受长度为 3.5。
  • RL 和 LoRA 支持。 vLLM 支持 RL(通过 SkyRL)和 LoRA。

您可以用以下方式服务该模型:

vllm serve thinkingmachines/Inkling-2-Small \
  --tensor-parallel-size 8 \
  --reasoning-parser inkling --tool-call-parser inkling --enable-auto-tool-choice \
  --speculative-config '{"method":"dspark","num_speculative_tokens":7,"draft_sample_method":"probabilistic"}'

模型架构

图 1. Inkling 2 Small 架构。金色标记自 Inkling 以来新增或更改的部分。

InklingInkling 2 Small
层66 (55 滑动窗口 + 11 全)48 (40 滑动窗口 + 8 全)
残差路径残差流块注意力残差(8 个 6 层块)
注意力带相对偏差的 GQA,无 RoPE相同
头(查询 / KV)64 / 8 全,64 / 16 滑动48 / 8 所有层
滑动窗口5121,024
注意力输出普通sigmoid 门控和每个 token 的汇流
短卷积每层 4 个(K、V、注意力输出、MLP 输出),内核大小 4相同
MoE256 路由(top-6)+ 2 共享专家汇流,前 2 层密集384 路由(top-8),无共享专家,所有层为 MoE
专家精度NVFP4NVFP4(层 0–39),MXFP8(层 40–47)
模态文本、图像、音频输入;文本输出文本、图像输入;文本输出
图像编码器4 层 hMLP 在 40×40 块上23 层 ViT(1,024 宽)在 20×20 块上
推测解码8 个串联 MTP 头DSpark 推测,每步 7 个 token

Inkling 主干 + 最近进展。 Inkling 2 Small 保留了 Inkling 的主干:滑动窗口和全注意力的 5:1 混合,带学习相对偏差的 GQA 而非 RoPE,每层 4 个短卷积和 sigmoid 路由的 MoE。在此基础上,它增加了最近进展。 块注意力残差 替换了残差流,因此在每个子层之前,一个学习的查询会混合早期 6 层块的输出。 门控注意力 在每个头的输出上放置一个 sigmoid 门控,以及一个每个 token 的 注意力汇流。它将 hMLP 图像编码器替换为 23 层 ViT。

混合精度 MoE 与 Four-Over-Six NVFP4。 Inkling 2 Small 的 48 层中,前 40 层的专家使用 NVFP4,最后 8 层的专家使用 MXFP8。NVFP4 激活使用每个 token 的全局缩放加上双候选块缩放(Four Over Six):对于每个 16 元素块,量化器尝试将块的 最大值缩放到 6 和 4,并保留 whichever 给出较低的重建误差(MAE)。

带 RNN 头的 DSpark 推测器。 检查点还提供了一个 DSpark 推测器,取代了 Inkling 的 8 个串联 MTP 头。推测器有 5 层,每步生成 7 个 token。头是 DeepSeek 的 DSpark 论文 描述的 RNN 变体。

vLLM 集成与优化

图 2. 一个解码器层中的内核,用于解码和大型预填充。

内核融合和 PDL。 vLLM 主动将子层之间的集体通信和内存绑定操作融合成一个内核。通过注意力残差,每个边界需要一个全归约,一个短卷积,一个残差更新,一个注意力残差混合和一个 RMSNorm:在相同的隐藏状态上有五个内存绑定步骤。融合内核,allreduce_conv_mix(图 2 中的金色),在 NVLink 多播上运行全归约,并在其后保留所有内容在寄存器中。GEMM、注意力、路由和激活内核使用程序依赖启动 (PDL) 启动,因此每个内核的前置部分重叠于前一个内核的尾部,这在小批量大小下很重要,其中解码步骤是一长串短内核。

具有融合激活量化的 MoE。 vLLM 在产生它们的内核内部量化专家激活(NVFP4 或 MXFP8,匹配每层),因此没有单独的量化步骤触摸隐藏状态:路由内核在门/上投影之前量化标记,软限制 SwiGLU 在下投影之前量化其输出。专家 GEMM 在 TensorRT-LLM 的批处理-GEMM 内核上运行,随 FlashInfer 提供。

预填充的序列并行性。 在纯张量并行下,每个 GPU 在每次全归约后对所有标记运行短卷积、注意力残差混合和 RMSNorm:相同的工作,在每个排名上重复。这在解码中很便宜,但在预填充中很昂贵。vLLM 通过序列并行性(图 2 中的紫色和金色)消除了冗余。每个 GPU 减少分散,在其标记切片上在一个融合的 conv_mix 内核中运行短卷积、残差更新、注意力残差混合和 RMSNorm,并为下一个 GEMM 进行所有收集。这使 8K 标记的预填充步骤在 TP4 上减少了 22%,在 TP8 上减少了 26%,并为每个 GPU 释放了 1.3–1.9 GiB 用于 KV 缓存。

为解码优化的 Gluon 相对注意力内核。 Inkling 的 FlashAttention-4 解码路径对于 Inkling 2 Small 很慢:6:1 GQA 比率默默地禁用了 GQA 压缩。为了修复这个问题,我们编写了一个为解码专门优化的 Gluon 内核,并验证了它将 6 个头打包到一个 64 行的瓦片中,并读取 KV 一次:一个 TMA 瓦片流式传输 KV,一个 tcgen05 瓦片运行 MMAs,四个 softmax 瓦片应用相对偏差。在 100K 上下文中批处理 1 的解码步骤从 15.1 ms 降低到 4.8 ms。预填充保持 Inkling 的剪切偏差 FlashAttention-4 路径。

性能

我们在 TP8(两个 4-GPU 节点)上使用 DSpark(概率起草)和前缀缓存对 Inkling 2 Small 进行了基准测试,用于代理工作负载。每个会话保持一个长上下文,并且在每次回合中,追加先前的答案和一个 ~2K 标记的工具输出,因此每次回合大约只有 3K 标记是新的;然后每次回合在温度 1.0 上生成 1,024 个带推理的标记。表格给出了每个 GPU 在每个用户获得 100 标记/秒的并发性时的输出吞吐量。

会话上下文每 GPU 的输出 tok/s 在 100 tok/s/user 时并发会话前缀缓存命中率接受长度
32K~1,070~8491%3.3
64K~915~7295%3.4
128K~700~5598%3.5
256K~450~3799%3.5

对于 TP4 上的单个用户,模型解码速度约为 630 tok/s,接受长度为 3.5。

准确率评估

vLLM 保留了参考实现的数值计算:每一步都使用相同的数据类型,FP32 注意力输出和路由器,以及相同的 NVFP4/MXFP8 激活量化,只有缩减顺序和全归约的 BF16 部分不同。端到端地,我们在 NIAH 上验证了高达 1M token 的准确性,使用 inkling-verify 对 MMMU-Pro 和 HLE 进行验证,并启用了 DSpark;分数与我们的无推测解码运行结果一致。

致谢

我们感谢 Thinking Machines 团队在集成和优化 vLLM 中的 Inkling 2 Small 方面的紧密合作。这项工作由 Aurick Qiao (Thinking Machines) 和 Woosuk Kwon (Inferact) 领导。

来源: vLLM Blog · vllm.ai