
8月6日 CUDA 与 AI 系统加速速览:TVM 0.26 RC、跨模型 KV 复用与长序列推荐压缩
本期聚焦 TVM 0.26.0 RC/0.27.dev 的编译器迁移、跨模型 KV cache 复用、SAKI 长上下文索引和 SITA 长序列推荐压缩,给出性能数字、适用边界与最小验证动作。
先看结论
今天适合拿回仓库验证的有四件事:跨模型 KV cache 复用已经把「跳过目标模型 prefill」写成了可测的线性映射;SAKI把长上下文 KV 压缩的目标从「还原 key」换成「保住 attention score」;TVM 的两个新标签更像编译器接口迁移信号,而不是性能发布;SITA则把长行为序列压缩和候选目标绑定起来,但线上毫秒数仍未披露。
| 更新 | 适用场景 | 核心改动 | 已报告数字 | 先验证什么 |
|---|---|---|---|---|
TVM v0.26.0.rc0 / v0.27.dev0 | Relax、TIRx、CUDA 后端和下游代码生成链路 | v0.26.0.rc0 引入 C++20 构建基线、TIRx 与多项后端/runtime 改动;v0.27.dev0 让 BufferType 直接进入 PrimFunc.params,逐步退出 PrimFunc.buffer_map。12 | 未报告 benchmark | 先跑下游 TIR/Relax、ABI 和序列化产物回归;不要把新标签当成加速比。 |
| 跨模型 KV cache transfer | 同一模型家族内做成本-质量级联、会话中途切换,且源/目标模型 KV head 数和每头维度相同 | 对每个目标 layer/head 选源 layer,做去 RoPE 的闭式 ridge 映射,目标模型跳过 prefill。34 | 映射器比重新 prefill 快 2.7–25×;6 对模型中 4 对保留目标模型独立 prefill 的 73–98% 准确率 | 先按 matched-KV 配对复现,再把映射器显存、质量保持率和多轮漂移一起测。 |
| SAKI | 百万 token 长上下文,把 KV cache 当作检索索引 | 用 query/key 协方差和 attention 算子求闭式非对称低秩映射,训练免调,不再只优化 key 重构误差。56 | rank 32 时,Llama 3.1 8B 的 recall@64 从 0.748→0.799,Qwen2.5 7B 从 0.786→0.850;未给端到端生成吞吐 | 对比 PCA 的 rank 16/32/64,额外记录真实生成质量和检索 P99。 |
| SITA | 长行为序列推荐,候选 item 数量大、用户历史需要离线压缩 | 用语义 ID 组织兴趣 token,离线压缩用户历史,在线按目标 item 的语义 ID 选 token,保留 target-aware 表达。78 | Taobao-MM 相对 DIN 的 AUC/GAUC +3.02%/+1.56%;工业评估两场景 AUC +0.057%/+0.078%,GAUC +0.049%/+0.076% | 线上不要只看 AUC;测用户 token 存储、更新延迟、P95/P99 和候选规模。 |
GPU 推理与 KV cache
跨模型 KV:先省掉 prefill,再确认质量没有一起省掉
大模型服务做成本-质量级联时,常见做法是先用小模型处理上下文,必要时切换到同家族的大模型。切换后,目标模型通常要重新读取整段上下文。论文的做法是把源模型已经算出的 KV cache 映射成目标模型可用的 KV,从而跳过这次 prefill。3
它的适用边界很窄,也正因为边界写得清楚,才值得做工程实验。源模型和目标模型必须属于同一模型家族,并且 KV head 数、每头维度相同;层数、隐藏维度和参数量可以不同。论文在 Qwen3、Llama 3.1、Ministral 三个家族上测试了 6 对模型,硬件是单节点 8 张 H100。4
映射器按 head 做闭式 ridge regression:先为每个目标层挑选最有预测力的源层,拼接源 KV,再对 key 去掉 RoPE(旋转位置编码)后拟合,映射完成后重新使用目标侧 RoPE。校准只用了 500 条 FineWeb-Edu 序列,每条 1,024 token。4
数字很吸引人,但要看参照物。Qwen3 14B→32B 在 32K token 上,映射器耗时 277.6 ms,目标模型重新 prefill 耗时 6,975.3 ms,约 25×;同一对模型的平均任务准确率保持率为 97.6%。但 Ministral 3B→14B 和 8B→14B 只有 44.2% 和 41.6%,不是所有跨模型切换都能直接用。映射器本身还要占约 4–12 GB,取决于模型对和选中的源层数量。4
验证动作:先固定 tokenizer、RoPE 实现、KV layout 和 batch,复现一对成功案例与一对失败案例;同时记录映射耗时、源 KV 传输耗时、目标模型首 token 延迟、任务质量和多轮对话漂移。论文只测了 matched-KV、同家族、稠密 full-attention 模型,不能外推到跨家族或 GQA 形状不匹配的模型。
SAKI:KV 索引应该优化 attention score,而不是只保 key 的方差
百万 token 上下文会把 KV cache 变成存储和检索问题。SAKI 论文给出的例子是:8B 模型在 1M token 上下文下,bf16 KV cache 约 130 GB。它把低秩 key 压缩写成一个 attention-score 失真目标,再用每个 head 的 query/key 协方差做 SVD,得到可离线计算的非对称映射。56
这和 PCA 的区别不在于「多加了一层压缩」,而在于保留的量不同:PCA 保 key 的总体方差,SAKI 直接保 query 与 key 形成的 attention score。实验在 Llama 3.1 8B、Qwen2.5 7B、Mistral 7B v0.1 和 Llama 3.2 3B 上做了 recall@64 比较。rank 32 时,Llama 3.1 8B 从 PCA 的 0.748 提升到 0.799,Qwen2.5 7B 从 0.786 提升到 0.850;rank 越高,召回仍会上升,但论文没有给出端到端生成质量或完整服务吞吐。6
验证动作:在自己的模型上先离线算每个 head 的协方差,和 PCA 的 rank 16/32/64 做同一份 streaming forward 对照;除了 recall@64,再把真实生成任务、KV 索引内存、检索 P99 和长上下文首 token 延迟放进结果表。当前证据支持「检索质量更好」,还不支持「线上生成一定更快」。
AI 编译器与 kernel 工具链
TVM 两个新标签:先处理接口迁移,别先找不存在的 benchmark
TVM 在 8 月 5 日至 6 日的发布流里出现了两个值得工程团队分开看的标签。
v0.27.dev0 的改动很集中:它让 buffer 参数的 BufferType 直接写进 PrimFunc.params,逐步退出整套 PrimFunc.buffer_map。迁移会触及 TIRx、TE、S-TIR、Relax、打印器/解析器、packed ABI lowering、specialization、storage rewriting 以及测试和文档。2v0.26.0.rc0 的范围更大,包含 TIRx 基础设施、cooperative tensor builtins、CUDA/LLVM/Vulkan/Metal 后端修复,按后端拆分 runtime DSO,以及 ONNX、PyTorch、TensorRT 前端更新。release note 把 C++20 列为新的构建基线,也提到 tvm-ffi 依赖版本调整。页面没有给出 benchmark。1这两个标签对使用 TVM 的团队意味着:先检查编译器接口、产物和构建环境,再决定是否值得升级。一个版本同时改动 IR、ABI、runtime 和前端时,单个模型跑通不能证明下游链路稳定。
验证动作:建立一条 C++20 构建的 CI,固定 CUDA/LLVM 版本,分别跑 Relax 导出、TIR schedule、packed ABI、序列化/反序列化和目标后端编译;把
buffer_map 依赖和旧 runtime DSO 加载路径列成失败项。当前 release 没有性能数字,先不要用版本号替代吞吐或延迟。推荐系统工程
SITA:把「压缩用户历史」改成对候选目标有条件的压缩
长行为序列推荐有两个互相拉扯的需求:按目标 item 检索历史会保留相关性,但每个候选都要重新做目标相关计算;一次性压缩用户历史成本低,却容易丢掉目标差异。SITA 用语义 ID 给 item 建结构化标识,再把用户兴趣压成按语义分组的 token,在线根据目标 item 的语义 ID 选择对应 token。78
它的离线部分叫 Structured Interest Compression,在线部分叫 SID-Guided Selection。若有 N 个 codebook、每个有 K 个 codeword,语义 ID 的组合空间是 K^N,但编码单元只需 N×K;组间交互把 token 级的
O((NK)^2) 降为 O(N^2),对 B 个候选的在线选择和目标注意力开销为 O(BNd)。这些是复杂度和存储结构,不是毫秒级 benchmark。8公开数据上,SITA 在 Taobao-MM 的 AUC/GAUC 为 0.6550/0.6175,在 XLong 为 0.9149/0.9120;相对 DIN 的 AUC/GAUC 提升分别为 Taobao-MM 的 +3.02%/+1.56%、XLong 的 +3.77%/+3.82%。工业评估覆盖一个日活数亿、最长行为序列 2,500 的推荐平台,两场景的 AUC 提升为 +0.057% 和 +0.078%,GAUC 提升为 +0.049% 和 +0.076%。论文没有给出线上毫秒数、QPS 或显存占用。8
验证动作:先把用户 token 离线生成和增量更新接入 shadow 流量,固定候选数,分别测 token 存储、更新延迟、候选级 P95/P99、AUC/GAUC 和业务指标。若线上延迟没有下降,复杂度从
O(BNd) 变成可部署代码并不等于系统更快。带回仓库的检查清单
- 跨模型 KV:只从 matched-KV、同家族模型开始;成功案例和失败案例各留一组,避免只复现 25× 的最好数字。
- 长上下文 KV 索引:把 SAKI 的 recall@64 与真实生成质量、索引内存和检索 P99 放在同一张表里。
- TVM 升级:先跑 C++20 构建、
PrimFunc.buffer_map迁移、ABI 和 runtime DSO 回归;本期没有可引用的性能 benchmark。 - 推荐压缩:SITA 的公开指标说明排序质量变化,不说明 serving 容量变化;线上验证必须补齐 token 更新和 P95/P99。
References
- 1TVM v0.26.0.rc0 release
github.com
- 2TVM v0.27.dev0 release
github.com
- 3Cross-Model KV Cache Transfer 摘要
arxiv.org
- 4Cross-Model KV Cache Transfer 正文
arxiv.org
- 5SAKI 摘要
arxiv.org
- 6SAKI 正文
arxiv.org
- 7SITA 摘要
arxiv.org
- 8SITA 正文
arxiv.org

CUDA 与 AI 系统加速日报
面向工程与算法读者的日报频道,追踪 CUDA、GPU、性能加速、AI 编译器优化,以及推荐模型与推荐系统相关进展。
This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.
Related content
- Sign in to comment.