跳到正文
vLLM Blog· Inferact and Thinking Machines·· 23 小时前精选AI 评分60

vLLM 首日支持 Thinking Machines 的 Inkling 2 Small

Inkling 2 Small on vLLM: Day-0 Support

AI 导读

vLLM 宣布在 Inkling 2 Small 发布当天提供支持,这是一个文本与视觉输入的多模态 MoE 模型,总参数 594B、激活参数 17B,上下文最长 1M tokens。

推荐理由

原文给出 vLLM 对 Inkling 2 Small 的 Day-0 支持细节,读者可了解混合精度 MoE 与投机解码在推理框架中的落地方式。

正文 · AI 翻译

vLLM 在发布当天即支持 Thinking Machines 的 Inkling 2 Small。这是一个多模态(文本和视觉)MoE 模型,总参数 594B、激活参数 17B,上下文长度最高 1M tokens。该模型还自带原生 DSpark 推测器。vLLM 以优化后的性能支持它(在 TP4 下最高 630 TPS/用户,接受长度 3.5),并且也支持 LoRA。

TL;DR

  • 总参数 594B,激活参数 17B,上下文 1M。 一个 48 层 MoE,含 384 个专家(top-8),接收图像和文本并输出文本。
  • 相对 Inkling 的架构升级。 块注意力残差、注意力汇、门控注意力,以及 ViT 图像编码器。
  • 混合精度 MoE。 MoE 使用 NVFP4(第 0–39 层)和 MXFP8(第 40–47 层),因此模型可在单节点上部署。
  • 原生 DSpark 推测器。 带 RNN 头的 DSpark 每步草拟 7 个 token。
  • 大量优化。 内核融合、PDL、高度调优的 Gluon 注意力内核,以及序列并行,在 GB200 上以 TP4 达到最高 630 TPS/用户、接受长度 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 层)
模态文本、图像、音频输入;文本输出文本、图像输入;文本输出
图像编码器40×40 图块上的 4 层 hMLP20×20 图块上的 23 层 ViT(宽 1,024)
推测解码8 个链式 MTP 头DSpark 草稿,每步 7 个 token

Inkling 骨干 + 近期进展。 Inkling 2 Small 保留了 Inkling 的骨干:滑动窗口与全注意力 5:1 的配比、用学习到的相对偏置替代 RoPE 的 GQA、每层四个短卷积,以及 sigmoid 路由的 MoE。在此基础上,它加入了近期进展。块注意力残差取代了残差流,因此在每个子层之前,一个学习到的查询会混合此前 6 层块的输出。门控注意力在每个头的输出上加入 sigmoid 门控,并配合逐 token 的注意力汇。它用 23 层 ViT 取代了 hMLP 图像编码器。

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

带 RNN 头的 DSpark 推测器。 检查点还附带一个 DSpark 草稿,取代 Inkling 的 8 个链式 MTP 头。该推测器有 5 层,每步草拟 7 个 token。该头是 DeepSeek 的 DSpark 论文所描述的 RNN 变体。

vLLM 集成与优化

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

内核融合与 PDL。 vLLM 将子层之间的集合通信和内存受限操作激进地融合为单个内核。对于注意力残差,每个边界都需要一次 all-reduce、一次短卷积、一次残差更新、注意力残差混合以及一次 RMSNorm:在同一份隐藏状态上执行五个内存受限步骤。融合内核 allreduce_conv_mix(图 2 中的金色部分)通过 NVLink 多播执行 all-reduce,并将其后的所有内容保留在寄存器中。GEMM、注意力、路由和激活内核使用程序化依赖启动(PDL)启动,因此每个内核的前导部分会与上一个内核的尾部重叠,这在小批量大小下很重要,因为此时一个解码步骤是一长串短内核。

带融合激活量化的 MoE。 vLLM 在产生专家激活的内核内部对其进行量化(NVFP4 或 MXFP8,与每一层匹配),因此没有单独的量化过程会触及隐藏状态:路由内核在 gate/up 投影之前对 token 进行量化,而带 softcap 的 SwiGLU 在 down 投影之前对其输出进行量化。专家 GEMM 运行在 TensorRT-LLM 的 batched-GEMM 内核上,随 FlashInfer 一起提供。

预填充的序列并行。 在普通张量并行下,每次 all-reduce 之后,每个 GPU 都要对所有 token 运行短卷积、注意力残差混合和 RMSNorm:同样的工作在每个 rank 上重复执行。这在解码中开销很低,但在预填充中代价高昂。vLLM 通过序列并行(图 2 中的紫色和金色部分)消除了这种冗余。每个 GPU 执行 reduce-scatter,仅在其 token 切片上运行一个融合的 conv_mix 内核来执行短卷积、残差更新、注意力残差混合和 RMSNorm,然后 all-gather 结果以供下一个 GEMM 使用。这在 TP4 下将 8K token 的预填充步骤缩短了 22%,在 TP8 下缩短了 26%,并为每个 GPU 释放了 1.3–1.9 GiB 的 KV 缓存空间。

为解码优化的 Gluon 相对注意力内核。 Inkling 的 FlashAttention-4 解码路径对 Inkling 2 Small 来说很慢:6:1 的 GQA 比例会静默禁用 GQA 打包。为了解决这个问题,我们编写了一个 warp 专用的 Gluon 内核,用于解码和验证,它将 6 个头打包到一个 64 行的 tile 中并只读取一次 KV:一个 TMA warp 流式传输 KV,一个 tcgen05 warp 运行 MMA,四个 softmax warp 应用相对偏置。在 100K 上下文下,batch-1 解码步骤从 15.1 ms 降至 4.8 ms。预填充保留 Inkling 的 sheared-bias FlashAttention-4 路径。

性能

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

会话上下文每个 GPU 在 100 tok/s/用户下的输出 tok/s并发会话数前缀缓存命中率接受长度
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 激活量化,仅归约顺序和 all-reduce 的 BF16 部分有所不同。端到端方面,我们在启用 DSpark 的情况下,使用 inkling-verify 在最高 1M token 的 NIAH、MMMU-Pro 和 HLE 上验证了准确率;得分与我们未使用投机解码的运行结果一致。

致谢

我们感谢 Thinking Machines 团队在 vLLM 中集成和优化 Inkling 2 Small 过程中的密切合作。该工作由 Aurick Qiao(Thinking Machines)和 Woosuk Kwon(Inferact)领导。

来源:vLLM Blog · vllm.ai