02 4.40
DeepSeek-V4、GLM-5.3 这类学习式稀疏注意力里,每个 query 只对 k 个键做注意力,但挑出这 k 个键的小打分网络仍要给前缀里的每个键打一遍分。上下文到 100 万 token 时,这一步占了 prefill 时间的一半以上。AttentionIndex 大幅压低了这一步的开销:它在 prefill 过程中把键按相似程度分成一组组,query 先给每组的代表打分,只把最有希望的几组成员交给原来的打分网络细选。在这个长度上,它的 prefill 吞吐是逐个打分的 1.3 到 1.8 倍,也比速度相近的分块方法 HiSA 漏选得少。
03 4.40
一阵十分钟的流量高峰,就能让 prefill 和 decode 分离部署的 agent 推理服务一直恢复不了。高峰过去、流量回到原来扛得住的水平以后,在 SGLang 上之后一小时的有效吞吐仍下降约 88%。agent 每次调用都要把越来越长的对话重新发给模型,靠前缀缓存省掉重算。背后是一个循环。缓存不够导致重算,调用变慢,会话结束得更晚,同时在线的上下文变多,缓存就更不够。作者据此做了 Basin,它预估每个会话整个过程中最长会用到多少上下文,按这个量从一个随负载调整的总额度里预留,额度不够就先不收新会话。它的有效吞吐是 Continuum 的 1.20 到 1.70 倍。这类故障在利用率和队列长度上几乎看不出征兆。
04 4.40
GPU 上做高召回的向量检索,最快的 CAGRA 这类图索引要沿着图一轮轮走,每轮都得等上一轮的距离算完,召回要求越高,轮数越多。OctEx 换了个思路:把 GPU 显存花在提前算好的近邻列表上。它把数据随机投影成几百份低维副本,每份把向量归到规则网格的格子里,并为每个格子存好离格子中心最近的那些向量。查询时一次读出自己所在格子的列表,再读这些候选各自预存的近邻,轮数固定,不再等一条长链。在四张 H100 上的十亿向量数据集上,它在高召回下比 CAGRA 快 1.46 到 2.05 倍。用显存换掉查询时的串行等待,是这篇的核心取舍。
05 4.30
KV cache 放不下时,vLLM 和 SGLang 都从缓存序列的末尾开始删,为的是保住开头那段能被很多请求共用的前缀。但 agent 每一轮都会把很长的历史重新发回来,而越靠后的 token 重算越贵,因为它要和前面所有 token 算注意力。Penelope 反过来做:共享前缀照样保留,剩下的历史从靠前的部分开始删,留住靠后的部分。请求回来时,只重算缺掉的那一段。在 SGLang 上用真实 agent 请求记录测,只用 GPU 缓存时平均首 token 延迟最多降 60%,再加上 CPU 内存做第二层缓存时最多降 76%。该删哪一段,要看重算它要花多少,而不只看它被多少请求共用。
06 4.30
vLLM 和 SGLang 能把许多 LoRA 适配器的请求拼成一批,但 DoRA、VeRA、OFT 这类其他微调方法的适配器直接被拒,没法和它们混在一批里跑,转成 LoRA 又要多占显存、可能掉精度。多租户平台常给每个客户叠一个自己的小适配器,这个限制很碍事。Scute 在 LoRA 的计算里留出几个可填的位置:基础权重那条路上,输入先乘一个变换矩阵,输出再按列缩放、加一个偏移;低秩那一项的中间和输出也各乘一个向量。不用的位置就是乘 1 或加 0。比如 OFT 先旋转输入再走原来的层,它的旋转矩阵就填进输入变换。这样五种方法能在一个批次里精确混跑,decode 时间只比同样数量的 LoRA 多 5% 到 17%。与其把各种适配器都转成 LoRA,不如让 LoRA 的批处理核函数认识它们。
08 4.10
编译器里的一个错误可能不报任何错,只是悄悄让数值算偏,几周后让一次昂贵的训练发散,或者让线上推理质量变差。Google 介绍了他们怎样在大规模上排查 TPU 上 XLA 编译器的这类问题。一方面,用随机生成的程序和真实生产里的计算图做模糊测试,并让一群 AI agent 自动写压力测试、复现失败、起草修复。另一方面,定位时把出错的大计算图层层二分,一直缩小到融合核函数里出错的那一个算子。这套流程上线后已经推动修复了超过 142 个编译器缺陷,另有 103 个发现还在核实。编译器正确性要靠持续的生产级测试,只跑回归用例远远不够。
10 3.75
Amazon
很多 LLM 应用的提示都以一大段固定内容开头,比如几千 token 的客服规则,后面才是用户的一句话。单台机器上的前缀缓存能省掉这段重算,但多台机器时请求被随机分出去,每台都很少重复见到同一个开头,缓存基本用不上。Amazon SageMaker 新加的前缀感知路由会把开头相同的请求固定发到同一台机器。那台机器满载时,请求转给空闲的机器;扩缩容时,也只挪动一小部分流量。在官方测试里,缓存命中率从约 25% 升到 80% 以上,中位首 token 延迟最多降 77%。多实例部署时,前缀缓存省不省得下来,取决于路由。