vLLM TML Inkling 支持

vLLM TML Inkling 支持

vLLM 现在为 TML Inkling 提供 Day-0 支持。TML Inkling 是由 Thinking Machines Lab 开发的 1T 参数多模态模型。此次集成为 thinkingmachines/Inkling-NVFP4thinkingmachines/Inkling (BF16) 版本提供了高性能推理,支持文本、图像和音频输入,原生上下文长度高达 100 万 token。

性能与硬件基准测试

在 4 张 NVIDIA GB200 GPU 的配置下,vLLM 在使用多 Token 预测 (MTP) 时实现了高达 380 tok/s/user 的吞吐量,而在不使用 MTP 时为 140 tok/s/user。这些结果是使用来自 SPEED-Bench 的 8K 输入 token 提示词以及每次请求 1K 输出 token 进行测量的。

虽然目前的支持针对 NVIDIA Blackwell 和 Hopper GPU 进行了优化,但 vLLM 正积极致力于扩展对其他硬件的支持,包括 AMD GPU,目前 AMD GPU 需要为该模型的相对注意力机制开发专用内核。

TML Inkling 模型架构

TML Inkling 是一个原生多模态的 decoder-only Transformer,拥有 1T 参数。其架构包含几个独特的组件:

  • 多模态输入: 模型接受文本、图像(通过轻量级 hMLP 编码器)和音频(通过 dMel embeddings)。
  • 混合注意力: 主干包含 66 层:11 层全注意力层和 55 层滑动窗口注意力层,以在 1M 上下文长度下保持效率。所有层都使用 Grouped-Query Attention (GQA),head size 为 128。
  • 相对注意力: Inkling 没有使用旋转位置嵌入 (RoPE),而是使用了一个学习到的相对位置项,添加到 pre-softmax attention logits 中。
  • 短卷积 (Sconv): 每一层都采用了四个 sconv 模块(窗口大小为 4),分别应用于 attention keys、attention values、attention output 和 MoE output,以提供极低开销的局部注意力。
  • 混合专家模型 (MoE): 每一层具有 256 个路由专家 (top-6) 和 2 个共享专家。Inkling 引入了“专家汇 (expert sinks)”的概念,其中两个共享专家参与路由分数计算以吸收概率质量,但不包含在 top-6 选择中。
  • 投机解码 (MTP): 模型包含 8 个链式 MTP heads(单层 Transformers),允许每次前向传播生成多达 9 个 token。

Inkling-NVFP4 变体中,只有路由专家被量化为 NVFP4,而共享专家和 qkvr linears 保持为 BF16。

vLLM 技术优化

vLLM 实施了多项专门的优化来处理 Inkling 独特的架构:

Sconv 缓存与 TP 分片

为了管理短卷积 (sconv) 缓存,vLLM 将其视为虚拟滑动窗口注意力层的 KV 缓存,并将其集成到统一的 KV 缓存管理器中。

为了避免在不同 GPU 之间重复进行 sconv 计算和缓存,vLLM 使用了 Sconv 感知的 TP 分片。vLLM 不在输出投影后使用标准的 all-reduce,而是在通道维度上使用 reduce-scatter 和 all-gather。这确保了每个 GPU 只存储和计算其自身的通道切片,类似于序列并行,但应用于通道维度。

低延迟集合通信与内核

  • 融合集合通信 (Fused Collectives): vLLM 使用基于 Lamport 协议(数据值轮询)的低延迟 reduce-scatter 和 all-gather 内核,将 batch size 为 1 时的内核时间从 40 µs 降低到 8 µs。
  • FA4 内核: 为了优化相对注意力的内存访问模式,vLLM 集成了一个带有“剪切偏差 (sheared-bias)”技术的新 FA4 内核。vLLM 根据 batch size、TP size 和 KV 长度动态选择 num_splits 因子。
  • MTP KV 缓存管理: 由于 MTP heads 依赖于之前的草稿 token,vLLM 会缓存基础模型的隐藏状态,并在拒绝采样后使用被接受的 token 重新运行 MTP heads。

准确性与验证

vLLM 的实现通过了多个基准测试,与参考实现保持一致:

  • 多模态与推理: 通过 MMAU (音频)、MMMU-Pro (视觉)、BFCL (工具调用) 和 HLE (推理) 进行了验证。
  • 长上下文: 使用 NIAH 进行验证。vLLm 在高达 221K tokens 时与参考实现完全一致,在高达 513K tokens 时误差保持在约 1 个百分点 (pp) 以内。在极端长度(800K+)下,观察到较高的运行间方差。

未来路线图

vLLM 为 TML Inkling 规划了以下增强功能:

  • FP8 全局注意力: 探索通过修改 FA4 内核来实现全局注意力的 FP8 支持,以减少计算和 KV 缓存瓶颈。
  • CUDA Graphs: 将 CUDA graphs 应用于图像和音频编码器,以消除 prefill 期间的 CPU 开销。
  • AMD 支持: 开发必要的相对注意力内核以实现 AMD GPU 兼容性。

Sources