Vortex:高效可编程稀疏注意力机制用于大模型推理服务
论文来源 : arXiv:2606.06453 | 主题: 稀疏注意力、大模型推理服务、vFlow编程模型、AI代理驱动研究
📌 摘要与核心贡献
Vortex 是一个专为大规模语言模型(LLM)设计的系统,旨在加速稀疏注意力机制(Sparse Attention)的设计、部署与评估。它解决了现代 LLM 推理服务中的三大核心痛点:
- 动态稀疏性(Dynamic Sparsity):现有系统难以支持实时(on-the-fly)的稀疏模式计算。
- 缺乏可编程性(Lack of Programmability):引入新的稀疏算法需要重写约 2000 行代码,工程成本高。
- 与现代技术栈的兼容性(Incompatibility):自定义稀疏内核难以与分页注意力(paged attention)、前缀缓存(prefix caching)及现代后端(如 FlashInfer)兼容。
Vortex 通过结合 Python 嵌入式前端(vFlow)、以页面为中心的张量抽象(vTensor)以及深度优化的后端架构,实现了高效、可编程的稀疏注意力服务。
🏗️ 系统架构与核心组件
1. vFlow: 编程模型
vFlow 是一个高度可组合的编程模型,采用两阶段分解策略,模仿检索/搜索范式:
- 两阶段计算分解 :
forward_cache():与查询无关的预处理(例如构建块摘要),在缓存构建期间计算一次。forward_indexer():与查询相关的执行(例如评分、Top-K 选择),针对每个令牌(token)计算。
- 逻辑连续视图(Logical Contiguous Views) :抽象物理分页布局,允许开发者将张量视为连续的
[1, B, d]或[1, g, d]形状进行推理。 - 高可组合性与缓存 :支持重用基础图原语(GeMM、Softmax、Reduce 等),支持命名缓存(如
c["acc"])和跨步骤持久化,用于需要运行时统计信息的算法。
2. vTensor: 以页面为中心的抽象
vTensor 扩展了 PyTorch 张量,引入了显式的布局元数据:
- 数学定义:𝒙^v = (𝒙, 𝒞),其中 𝒞 = (b, 𝐩, 𝐈) 捕获批次大小、索引指针和锯齿状索引结构。
- 组合性与自包含性:算子独立作用于每个序列,形状与布局传播时无需不必要的物化或布局转换。
- 布局继承:继承运行时分页布局,命名缓存使用分页布局,而中间结果默认使用锯齿状布局。
3. 执行优化策略
| 优化策略 | 描述 |
|---|---|
| 工作负载规划与内核融合 | 基于张量布局和数据依赖关系规划工作负载,将兼容的算子融合为 DAG 以消除冗余的读写操作。 |
| 随机 Radix Top-K | 引入随机早期终止机制以进行基于 Radix 的 Top-K 选择,通过可调的 tolerate_ratio 参数在精确性与速度间取得权衡,降低细化开销。 |
| 后端兼容性 | 重用优化后的后端(如 flashinfer、trtllm_mha)。支持 GQA、MLA 架构、fp8 精度,并包含自定义 cuda_mla 内核以支持灵活块大小(最小至 16)。 |
📈 实验结果与性能评估
1. AI 代理驱动的发现 (AI Agent-Driven Discovery)
Vortex 支持通过 AI 代理(如 Claude Code, Codex)进行自主算法探索:
- 算法生成:生成的稀疏注意力算法无需人工干预即可编译和执行。
- 自主迭代优化 :18 小时的自主优化循环生成了比全注意力机制高 3.46 倍 吞吐量的算法,同时保持精度。
- 多样性 :AI 模型生成的设计在多个基准测试(RULER, AMC23, AIME24)中实现了 2×--3.1× 的吞吐量提升,且呈帕累托最优。
2. 架构特异性与缩放结果
| 配置/模型 | 吞吐量提升 (Speedup) | 延迟降低 (Latency Reduction) | 备注 |
|---|---|---|---|
| Block Top-K | 最高 3.60× | P95 延迟最高降低 11.7× | 保持精度;稳健默认配置:块大小 16,top-k ≈ 125 |
| Quest | 最高 2.98× | P95 延迟最高降低 12.8× | 在不同模型规模下均优于基线 |
| MLA (GLM-4.7-Flash) | 最高 4.7× | N/A | 在 NVIDIA B200 上的绳感知稀疏注意力 |
| MiniMax-M2.7 (229B) | 最高 1.37× | N/A | 在 4× NVIDIA B200 GPU (TP=4) 上评估 |
🔍 关键洞察与发现
1. 路由信号集中性 (Routing Signal Concentration)
查询-键(Query-Key)路由信号在注意力机制中高度集中。在 Qwen3 模型中,仅 g3 和 g7 通道至关重要;屏蔽两者会导致精度显著下降,而保留它们则可实现无损推理。
2. MLA 架构的路由依赖
位置绳(Positional Rope)组件携带 MLA 架构的关键路由信号。在 Vortex 的绳感知设计中,可实现 4× 的速度提升;而绳非感知设计则降至约 0.60 的精度。
3. 最优块配置
通过对块大小(16, 32, 64)和 top-k 预算进行扫描,发现 块大小为 16、top-k ≈ 125 的配置在精度天花板与吞吐量增益之间取得了最佳平衡,且在 0.6B 至 229B 参数规模的模型上表现稳健。
📝 核心公式与资源
vTensor 定义与布局
Vortex 通过 vTensor 实现了对锯齿状(ragged)和分页(paged)布局的统一抽象:
Xv=(X,C) \mathcal{X}^v = (\mathcal{X}, \mathcal{C}) Xv=(X,C)
其中 C=(b,p,I)\mathcal{C} = (b, \mathbf{p}, \mathbf{I})C=(b,p,I),分别代表批次大小、索引指针和锯齿状索引结构。
核心算法伪代码与算子
python
# vFlow 伪代码示例
def forward_cache(c, tokens):
# 一次性预处理:生成块摘要
c["summary"] = compute_block_summaries(tokens)
c["centroids"] = compute_centroids(c["summary"])
def forward_indexer(c, query):
# 逐令牌执行:基于索引进行稀疏计算
scores = top_k(c["centroids"], query, k=125)
return apply_sparse_attention(scores)
📎 附录
- 核心结论 :Vortex 通过可编程的
vFlow和高效的vTensor抽象,显著降低了稀疏注意力算法的开发与部署成本,并在实际推理中实现了显著的性能增益。 - 资源链接 :
- 关键术语:vFlow, vTensor, 稀疏注意力, AI 代理驱动研究, MLA, Block Top-K.