RedKnot – 小红书开源的长文本推理加速引擎
RedKnot:小红书倾力打造的 LLM 长文本推理加速引擎
在人工智能飞速发展的今天,长文本处理能力已成为大型语言模型(LLM)性能的关键瓶颈。小红书开源的 RedKnot 项目,正是为了打破这一桎梏,提供了一个高效、创新的 LLM 长文本推理加速解决方案。
RedKnot 的核心在于其对 KV Cache 的精妙管理。它打破了传统 KV Cache 的密集存储模式,将 KV Cache 按注意力头的维度进行解耦。通过离线分析,RedKnot 能精准地将注意力头划分为两类:一类是需要全局重算的“全局头”,另一类是可以被局部复用的“局部头”。这一创新性的分类,配合 SegPagedAttention 技术,实现了按头分页存储和融合变长注意力内核,从而彻底规避了 attn_mask 带来的内核性能惩罚。
更值得一提的是,RedKnot 还引入了稀疏 FFN(前馈神经网络)机制。它能够识别出具有高注意力分数的 token,并对其执行稠密的 FFN 计算,而将其他 token 直接跳过,仅保留残差连接。这一策略有效地解决了短上下文场景下 FFN 成为性能瓶颈的问题。
RedKnot 的主要亮点包括:
头分类的稀疏性:在推理前,将每个注意力头离线分类为全局头或局部头,无需在线计算,大大降低了在线推理的开销。
位置无关的 KV 复用:即使相同的文档片段出现在非前缀位置,RedKnot 也能智能复用预计算的 KV Cache,打破了传统严格的前缀匹配限制。
稀疏 FFN 加速:针对注意力得分最高的 Top-K token 执行稠密的 FFN 计算,其余 token 则通过残差恒等路径,有效缓解了短上下文 FFN 的性能瓶颈。
SegPagedAttention 存储:将 KV Cache 从传统的密集张量转变为按分段进行分页存储,物理上只保留每个注意力头真正需要的 token,实现高效存储。
弹性稀疏恢复策略:在模型的浅层,RedKnot 采用保守的局部注意力与稠密 FFN 组合,以保护早期残差流的准确性;在深层,则启用全局头重算与稀疏 FFN,从而在精度和效率之间取得最佳平衡。
架构无关的运行时:通过 Profile、BuildState、SelectVisibleState 和 Execute 四个适配器接口,RedKnot 能够无缝支持 GQA、MoE、MLA 等多种不同的注意力架构。
RedKnot 的技术原理是其高效性的基石:
按头解耦的 KV Cache:RedKnot 认识到不同注意力头的有效上下文范围和重要性存在显著差异,因此将 KV Cache 的管理粒度细化到每个注意力头,而非传统的密集张量。
头级稀疏替代 Token 级稀疏:相较于 Token 级稀疏需要合并各头重要 Token 导致膨胀,RedKnot 采用按头恢复,仅少数全局头需要重算,绝大多数局部头直接复用,有效避免了精度与延迟的权衡难题。
FFN 与注意力机制的正交优化:在短上下文(2-8K)场景下,FFN 占用了大部分推理时间(57-62%)。RedKnot 通过注意力信号选择关键 Token 执行 FFN,与 KV Cache 的稀疏化形成协同效应,带来显著的加速。
分页存储消除 Mask 惩罚:传统的密集布局和 attn_mask 会导致 FlashAttention 快速路径失效,产生高达 4.9-7.6 倍的内核惩罚。SegPagedAttention 通过按头分页和融合变长内核,全程避免构造 Mask,维持了内核的高效性。
分层弹性的策略设计:模型浅层,局部头占比较高,语义选择性不强,RedKnot 采用保守策略以防误差传播;模型深层,全局头比例上升,注意力更集中,此时采用稀疏策略能获得最大收益且精度损失最小。
使用 RedKnot 的流程清晰明了:
离线画像分类:通过 Profile 接口运行,利用 needle-in-a-haystack 测试,离线为每个 (layer,head) 对生成稳定的 Head Class Map,用于后续请求的零开销复用。
预构建可复用状态:利用 BuildState 接口,将常用文档片段的 KV Cache 按头维度分页存储在 Global / Local KV Pool 中,实现位置无关的离线预构造。
动态状态选择:在线请求时,SelectVisibleState 接口根据查询语义和 Head Class Map,从缓存池中精确选择需要复用的局部头 KV 和需要重算的全局头范围。
融合推理执行:Execute 接口负责全局头的完整注意力重算并写入 Online KV Cache,局部头直接复用分页 KV 并走局部注意力。同时,低分 Token 直接跳过 FFN 计算,走残差路径。
服务化部署集成:用户可从 GitHub 仓库 https://github.com/rednote-machine-learning/RedKnot 获取基于 SGLang 实现的源码,并按照四大适配器接口规范,轻松集成到现有推理服务栈中进行上线部署。
RedKnot 的核心优势体现在:
粒度对齐的按头解耦:RedKnot 将存储、计算和恢复的粒度统一到注意力头维度,与工作负载真实的按头稀疏结构高度匹配,超越了传统的 Token 级 KV Cache 管理。
零在线开销的离线画像:全局头与局部头的分类在请求间高度稳定,仅需一次离线 profiling,在线运行时直接查表应用,不增加任何推理延迟。
头级恢复而非 Token 级恢复:仅对约 12-15% 的全局头进行重算,85-88% 的局部头直接复用,避免了 Token 级并集膨胀导致的重算量失控,同时消除级联误差传播。
FFN 的正交稀疏加速:对 Top-K Token 执行稠密 FFN,其余 Token 走残差路径,有效削减了短上下文下占 TTFT 57-62% 的 FFN 瓶颈,与注意力机制优化形成乘法叠加收益。
RedKnot 的项目地址:
- GitHub 仓库:https://github.com/rednote-machine-learning/RedKnot
- arXiv 技术论文:https://arxiv.org/pdf/2606.06256
与同类竞品相比,RedKnot 展现出显著优势:
在核心定位上,RedKnot 专注于按头解耦的 KV Cache 管理系统,而 CacheBlend 则侧重于位置无关的 KV Cache 混合复用系统。在稀疏粒度上,RedKnot 采用更精细的按注意力头解耦,而 CacheBlend 则是按 Token 挑选重算子集。RedKnot 的 KV 复用范围是任意位置,且位置无关,CacheBlend 同样支持任意位置(非前缀片段)。
RedKnot 的一大亮点是其零在线开销,通过离线一次性 head 画像,请求间即可复用。而 CacheBlend 则存在在线开销,需要在在线选择 Token 子集并混合。在 FFN 优化方面,RedKnot 引入了稀疏 FFN,仅对 Top-K 重要 Token 计算,CacheBlend 则无此优化。
存储布局上,RedKnot 采用按头分页(SegPagedAttention),物理稀疏;CacheBlend 则使用稠密张量加 attn_mask,逻辑稀疏。这使得 RedKnot 的内核效率更高,全程无 attn_mask,运行于 FlashAttention 快速路径。CacheBlend 则需要构造 attn_mask,运行于 SDPA 慢路径,带来 4.9-7.6 倍的内核惩罚。
在浅层恢复策略上,RedKnot 采用保守策略,保护残差流;CacheBlend 则可能因 Token 并集膨胀,需要重算大量 Token。RedKnot 的精度表现通常优于或等于稠密基线 F1 的 95%,长文本甚至可反超;而 CacheBlend 的精度则依赖于重算 Token 的比例,浅层误差较大。
RedKnot 的应用场景广泛,涵盖:
RAG 长文档问答:通过位置无关 KV 复用和头级稀疏恢复,将数万检索片段的预填充延迟从数十秒大幅缩短至数秒。
编程 Agent 多轮工具调用:稀疏 FFN 有效削减了短片段(2-8K)下占 TTFT 过半的 FFN 瓶颈,适用于连续工具调用场景。
长会话记忆系统:按头复用极大地提升了单卡并发能力,从 4 路提升至 30 路以上,适用于需要长上下文记忆的系统。
多 Agent 协作框架:位置无关 KV 复用打破了前缀匹配限制,使得 Agent 间动态交换、重排上下文片段更加高效。
实时流式长文本生成:在 128K 上下文下,RedKnot 仍能保持低首字延迟和高生成稳定性,通过局部头直接复用近期 KV,全局头按需重算。


