高效推理服务MiniMax-M3:解锁百万Token上下文与多模态能力,毫无遗憾
Together AI 通过KV块主稀疏注意力、分页MSA解码、优化索引评分内核以及基于Rust的多模态预处理网关等创新,实现了对MiniMax M3模型的高效服务,在不同并发级别下吞吐量提升81%–125%。
Together AI 与 MiniMax 合作,成为其最新旗舰模型 M3 的首选云合作伙伴,并将在模型开源后直接为开发者提供端点服务。M3 模型集成了顶尖的编码性能、智能体工作流支持和原生多模态推理能力,同时支持高达 100 万 token 的上下文窗口,且经济高效。为了高效服务 M3,Together AI 的推理和内核团队进行了一系列深度优化。
M3 的核心创新是 MiniMax 稀疏注意力(MSA),它采用块稀疏注意力机制,限制每个查询可关注的 token 数量,从而大幅降低长上下文处理成本。相比前代 M2.7,预填充阶段速度提升 9 倍以上,解码阶段提升 15 倍以上。MSA 的计算分为两部分:分数计算确定每个 KV 组最相关的 K 个块,然后在这些块上进行密集注意力。这种设计在 KV 组维度上保持表达能力,同时限制了单个查询关注的 KV token 数量,使得注意力计算不再随上下文长度二次增长,非常适合长上下文场景。
针对 MSA 的计算特性,团队实现了 KV 块主稀疏注意力内核。在预填充阶段,通过交换循环顺序,将 KV 缓存移动次数从每个查询一次减少到每个 KV 块一次,显著提高了计算强度。具体而言,将映射从 {q, kv block} 重组织为 {kv block, q},并重新实现注意力内核,最后基于 Log-Sum-Exp 进行归约缩放。
此外,团队还创新性地将 MSA 与分页注意力集成。在解码阶段,首先基于选定的块构建页表,将 KV 组维度展平到批次维度,并利用 KV 缓存张量的跨步视图,使现有支持 GQA 的注意力内核得以直接使用,无需重写。由于每个查询的选定块数量有限,块到页的映射开销极低,这一设计将解码吞吐量提升了 5%。
在解码阶段,MSA 将大量计算从密集注意力转移到分数计算和 top-k 索引器上。针对小查询索引、长键索引的形状,团队设计了优化的 AB 交换 HMMA 布局内核。该内核使用异步拷贝预取下一页面,以 bfloat16 精度计算点积,并将每个页面归约为一个块分数,避免了传统 GEMM 方法中的填充和额外开销。
多模态预处理方面,Together AI 的 SMG(服务模型网关)承担了所有视觉预处理任务。SMG 基于 Rust 实现,位于 OpenAI 兼容 API 与推理引擎之间。图像和视频输入需要下载、解码、帧采样、缩放和补丁张量转换等 CPU 工作。SMG 在网关中完成这些处理,使得 GPU 工作节点可直接运行视觉编码器。对于 M3,SMG 使用 FFmpeg 提取视频帧,基于 FPS 选择子集,调整大小并归一化,然后打包为扁平补丁张量和网格元数据张量,通过 gRPC 消息传递。SMG 的多模态管道基于 Rust traits 设计,使得添加 M3 的多模态支持只需实现特定 traits 和常量,管道本身无需改动,且该架构适用于大多数开源视觉模型。
性能测试显示,在常见的智能体流量模式下,Together AI 对 M3 的服务吞吐量在不同并发级别下提升了 81%–125%。内核执行时间分解显示,MSA 显著降低了每次迭代中注意力计算所占比。未来工作包括利用内核代理团队开发的生产级内核实现更多融合,以及通过 CPU 缓存卸载实现键索引和 KV 缓存的分解式加载。Together AI 将继续优化 M3 的推理性能,并为开发者提供稳定高效的端点服务。