小红书联合北大、上交提出 HYPIC:混合注意力大模型首 Token 延迟降低 3.25 倍,实现位置无关缓存

小红书联合北京大学、上海交通大学提出HYPIC,为混合注意力大模型引入“位置无关缓存”机制,面向检索增强问答、多文档摘要和长程Agent等超长上下文场景,缓解预填充阶段的算力与成本压力,并将首token延迟降低3.25倍。
大模型服务的竞争焦点,正从简单的单轮对话逐渐转向检索增强问答、多文档摘要以及长程Agent等场景。这些新型负载有一个明显共性:单条请求的prompt通常由几十甚至上百个语义相对独立的片段拼接而成。检索文档、技能说明、记忆文件和历史对话轮次被集中组装后,上下文长度可能达到数万乃至数十万token。
在如此长的上下文下,预填充(prefill)阶段往往占据单次请求的大部分计算成本,也成为服务商最主要的开销来源之一。更棘手的是,当缓存没有命中时,尾部首token延迟(TTFT)可能升至数十秒,明显影响交互体验。
两条主流的推理降本路径
针对长上下文推理,业界逐渐形成了两类降本思路。
第一类是位置无关缓存(PIC)。它不再要求缓存内容严格遵循固定前缀,而是允许每个语义独立的片段只缓存一次,并在之后拼接到任意前缀之后。这种方式与RAG、Agent常见的prompt动态组装流程高度匹配。其核心可以概括为两个原语:沿token轴直接拼接的splice,以及重新计算少量token、用于恢复跨片段上下文关系的correction。
第二类是混合注意力模型。此类模型以线性注意力替代大部分全注意力层,将注意力计算的二次复杂度降低至线性,同时把不受限制的历史信息压缩为固定大小的循环状态。近年来的生产级模型,如MiniMax-M1、Ring-2.5、Qwen3.5和Kimi-Linear,普遍采用超过75%的线性化层,并保留少量全注意力层,混合注意力已经成为主流架构之一。以Qwen3.5-35B-A3B为例,其40层网络中有30层属于线性层。
问题在于,现有PIC主要处理逐token的KV缓存,而线性注意力层对外提供的通常只是每个请求对应的循环状态,并不存在可以执行splice或correction的逐token缓存。因此,混合注意力模型中的大部分层都无法直接受益于传统PIC。在HYPIC出现之前,业界还没有能够为混合注意力大模型提供位置无关缓存的系统。
HYPIC如何适配混合注意力模型
小红书大模型推理团队联合北京大学、上海交通大学提出了HYPIC。该系统首次在混合注意力大模型上实现了位置无关缓存。针对4个生产级混合注意力模型和5类工作负载的测试结果显示,HYPIC可将首token延迟平均降低3.25倍;在相同SLO条件下,可持续QPS提升1.66倍;任务质量与完全重算相比仅相差1.71分。
HYPIC的整体思路,是分别处理混合模型中的线性注意力层和全注意力层,再通过系统级的段并行加速缓存未命中的冷请求。整个方案由三个相互配合的机制组成。
线性层:缓存段累积转移算子
对于线性注意力层,HYPIC缓存的并不是单纯的末状态,而是能够支持状态组合的“转移算子”,从而实现常数时间的状态合并。
一种最直接的PIC方案,是将两段内容各自从零初值开始计算得到的末状态直接相加。在朴素线性注意力中,这种做法恰好成立;但对于带衰减、门控或delta擦除机制的进阶线性注意力架构,例如RetNet、Mamba2、GLA、DeltaNet、GDN和KDA,则会产生错误。
其中被忽略的关键量,是片段内部所有token转移矩阵连乘得到的段累积转移算子TC。真实的状态组合关系应为S(C1·C2)=T(C2)·S(C1)+S(C2)。简单相加实际上遗漏了T(C2)这一项,因此会带来结构性误差。实测显示,在RetNet慢衰减头上,长度为256token时,误差已经达到状态范数的22%。
HYPIC的关键观察是,TC与零初值末状态S(C|0)都只由当前片段内部的token决定,与片段前面的前缀无关。因此,系统会在片段首次prefill时,同时缓存二元组(TC,S(C|0))。在后续复用时,只需依据组合律先左乘TC,再执行状态相加,就能在常数时间内近似精确地恢复任意前缀下的末状态,并覆盖不同类型的线性注意力架构。
在Qwen3.5-35B-A3B上的测试中,组合后的状态在第0层与完全重算的差异仅为6×10-5,处于FP16噪声范围内。针对带因果卷积和带RoPE的变体,HYPIC分别加入卷积状态热身与状态重旋转机制,以实现严格对齐。
全注意力层:用缝合窗口修复跨段关系
混合模型中少量的全注意力层仍然需要PIC支持,但传统的选择性重算方式不能直接沿用。原因是,下方的线性注意力层只保留末状态,其他位置的token无法穿过线性层继续向上传递到全注意力层。
对此,逐token保存循环状态会带来过高的存储成本,而从零开始重新递推又会增加大量计算,两种方式都难以接受。研究团队发现,KV拼接产生的误差主要集中在每个复用片段的开头,片段其余部分受到的影响很小。这一现象与全注意力模型中的attention sink现象相似,在混合注意力模型中也同样存在。
基于这一观察,HYPIC会为每个内部片段开头的w个token设置一个“缝合窗口”。缓存阶段不保存这部分token;在复用阶段,则在完整前缀下重新计算它们,以修复跨段注意力关系。系统默认将w设为8。由于实际片段长度通常超过512token,缝合窗口所占比例很小,因此额外重算成本处于可控范围内。
为了完成段首KV重算,线性注意力层需要在复用过程中即时计算缝合窗口对应的T和S,并在推进running state的同时,将每个seam token的逐层输出传递给上层全注意力层。
段并行:加速缓存未命中的长请求
HYPIC的第三个机制是段并行,目标是让长冷请求同样具备可加速性。缓存未命中无法完全避免:语料会持续更新,低频文档也可能被淘汰,而长冷请求往往正是尾延迟的主要来源。
传统系统通常将完整prompt视为一个整体,在单个实例上串行完成所有冷片段的prefill,使TTFT按照O(n·|C|)增长。即使采用张量并行等实例内并行方式,也只能加速单次前向,整体扩展能力仍然有限。一条100k token的请求在TP-8配置下,仍需要17.7秒。
PIC使每个片段具备相对独立的特征:片段的prefill结果只取决于自身token。HYPIC据此引入实例间的段并行。Router首先探测各个片段的命中状态,再将冷片段并行分发给多个scatter worker,最后由combine worker组装各段结果,形成完整的运行状态。这样可以将冷prefill的复杂度从O(n·|C|)降至O(⌈n/m⌉·|C|+c)。
为充分利用并行资源,HYPIC采用LPT(最长处理时间优先)贪心策略平衡不同worker的负载,并将片段计算与数据传输进行流水线重叠,避免combine worker因集中到来的传输请求而出现等待。段并行与实例内的TP、DP、SP等并行方式作用于不同维度,因此可以叠加使用。
生产级测试结果
HYPIC已经在SGLang上完成实现,代码规模约为14k行Python与Triton代码。团队在8×H20节点上进行了评测,测试对象包括4个生产级混合注意力模型,即Ring-mini/flash-linear-2.0、Qwen3.5-35B-A3B和Qwen3.5-122B-A10B,4个公开数据集HotpotQA、TriviaQA、MultiNews、GovReport,以及1条生产RAG trace。
在缓存充分预热后,与Prefix Cache相比,HYPIC将p50 TTFT平均降低3.25倍,各模型的提升幅度为2.77倍至4.05倍。与此同时,任务质量基本没有损失:16个“模型×数据集”测试单元的平均得分仅比完全重算低1.71分;在Qwen3.5-35B上,HYPIC的得分甚至高出完全重算0.47分。
对照实验显示,如果不缓存转移算子、仅采用朴素状态相加,任务得分会直接下降66.9%,进一步说明TC在状态组合中的必要性。
在生产RAG trace中,满足1秒TTFT SLO时,HYPIC的可持续QPS相比Prefix Cache提升1.66倍,提升范围为1.49倍至1.85倍;峰值单卡吞吐提升约1.3至1.5倍。在纯冷缓存未命中路径上,一条32k token请求的TTFT从单worker下的2.83秒降至8worker下的0.49秒,实现5.7倍加速,主要收益来自具备近线性扩展能力的scatter阶段。
当片段长度分布不均匀时,LPT调度也表现出更好的负载均衡效果。相比Round-Robin,LPT将TTFT从1.26秒降低至0.84秒,对应加速比从2.4倍提升至3.6倍。系统额外开销同样较为有限:构造(TC,S(C|0))的单次成本,在最重的稠密转移模型上也仅为主前向计算的5.2%至6.7%,通过一次构造、多次复用可以进一步摊薄。
总结
HYPIC首次将位置无关缓存引入混合注意力大模型。它通过缓存段累积转移算子,让线性注意力层能够以常数时间完成状态组合;借助小规模缝合窗口,修复全注意力层的跨段对齐问题;再利用段并行,将长上下文冷请求转化为可并行加速的负载。
这套方案使RAG与Agent等长上下文服务在采用高效混合架构的同时,也能够获得片段级缓存复用带来的收益。团队表示,后续将继续探索分布式PIC管理与调度,以及多级缓存分层管理,推动大模型推理向更快、更节省资源且更具扩展性的方向发展。
