SGLang 前缀缓存(RadixAttention)如何避免重复 Prefill:完整讲解

发布时间:2026/9/2 22:16:13

SGLang 前缀缓存(RadixAttention)如何避免重复 Prefill:完整讲解
SGLang 前缀缓存RadixAttention如何避免重复 Prefill完整讲解【免费下载链接】sglangSGLang is a high-performance serving framework for large language models and multimodal models.项目地址: https://gitcode.com/GitHub_Trending/sg/sglang做客服机器人时你会发现一天几万个请求几乎都从同一段 2000 token 的系统提示词开头。不做前缀复用每个请求都要老老实实把这 2000 个 token 的注意力 prefill 跑一遍算力消耗随 QPS 线性上涨。SGLang 的前缀缓存RadixAttention就是针对这种浪费首个请求把计算结果写进缓存后续同前缀请求直接复用现成的 KV只补算自己多出来的尾巴。一句话原理给公共前缀建一份预制品可以把它类比成中央厨房的半成品第一单客人点菜时厨师把前奏部分系统提示词做熟装进保鲜盒后面凡是同款前奏的订单直接开盒接着炒自己的配菜不用再从生料做起。SGLang 里这份保鲜盒就是挂在基数树radix tree一种按前缀共享组织的树结构上的 KV cache键值缓存索引实现位于 python/sglang/srt/mem_cache/radix_cache.py。省下的时间不是来自更快的算子而是来自这部分根本不用算。SGLang 处理一次请求的流程命中是怎么发生的把视角放在一个请求从进来到离开整个过程分四步匹配match请求 tokenize 后从树根开始逐段比对找到当前序列已缓存的最长前缀。若匹配终点落在某个节点段中间会自动执行节点分裂split node把边界切干净——这不复制数据只是重排结构。只算增量模型前向只处理没命中的那部分 token。命中 80% 的请求prefill 计算量就只剩 20%。写回insert新算出的 KV 索引挂到树上对应位置供下一个同前缀请求命中。释放与回收每个节点带lock_ref引用计数请求在飞期间前缀被锁住不受淘汰影响请求结束后锁释放节点回到可淘汰evictable集合。内存吃紧时淘汰器用堆按策略默认 LRU弹出最老的叶子释放被锁节点自动跳过。匹配用页page做对齐当page_size 1时命中长度会向下取整到页的整数倍这同时是内存对齐和碎片控制的抓手。启用 SGLang 前缀缓存的 3 个常用启动参数前缀缓存默认开启什么都不用改就已经在工作。下面 3 个参数覆盖了大多数调优场景python -m sglang.launch_server \ --model-path 模型路径 \ --page-size 16 \ --radix-eviction-policy lru # 对比实验时可显式关闭缓存 python -m sglang.launch_server --model-path 模型路径 --disable-radix-cache参数默认值作用--disable-radix-cacheFalse布尔开关关掉前缀缓存做 A/B 对比--page-size视后端而定页大小匹配/插入/淘汰的对齐粒度建议 16 这类 2 的幂--radix-eviction-policylru淘汰策略可选lru/lfu/slru/priority命中率不用翻日志服务加--enable-metrics后指标接口会暴露缓存命中率、evictable_size可回收量与protected_size被锁保护量等直接接 Prometheus 即可实现见 python/sglang/srt/observability/metrics_collector.py。性能数据前缀缓存能省多少场景基线无复用RadixAttention变化幅度多轮对话1.0x3.2x220%批量提示工程1.0x4.8x380%代码补全1.0x2.7x170%文档摘要1.0x5.1x410%数据口径说明以上为参考文章复述的对比数据以无缓存 prefill 耗时为基线做相对加速比实际数值取决于模型、序列长度与前缀重叠率规律是共享前缀占比越高收益越大四舍五入后量级约为 5 倍封顶。进阶速览分块前缀缓存与 HiCache 分层分块前缀缓存Chunked Prefix Cache长序列请求被切成多个 chunk 分块 prefill普通模式下整条前缀要等第一个请求算完才可共享。该特性让边算边共享成为可能目前面向 DeepSeek 等长序列模型短序列场景若觉得有额外开销可用--disable-chunked-prefix-cache关闭相关阈值由环境变量SGLANG_CHUNKED_PREFIX_CACHE_THRESHOLD控制。HiCache 混合缓存把 KV 从 GPU 显存扩展到主机内存形成设备端 主机端两级。设备端未命中时会先去主机端捞而不是直接重算。关键参数是--hicache-ratio主机池/设备池比值cache 模式默认 2.0和--hicache-write-policy可选write_back/write_through/write_through_selective。对前缀很长、复现间隔长到会被 LRU 淘汰的负载这一层是命中率兜底。避坑与调优命中率、锁和命名空间隔离现象原因处理KV 池紧张但缓存迟迟不释放在飞请求持有lock_ref被锁节点计入protected_size淘汰器会跳过先查 protected 占比缩短单请求上下文或降低并发热前缀多时换slru/priority策略保活长序列首个请求耗时内缓存迟迟不可复用chunked prefill 下 KV 分块写入整条前缀写完才完整可共享长序列场景依赖分块前缀缓存特性短序列负载用--disable-chunked-prefix-cache省掉开销换了 LoRA 或采样 salt 后命中率骤降RadixKey支持extra_key命名空间不同命名空间的 token 序列故意不共享节点这是设计特性而非 bug想共享就保持命名空间一致想隔离不同 adapter、不同 RAG 上下文则正该这样用高频疑问前缀缓存是默认开启的吗是。disable_radix_cache默认 False起服务即生效。想关闭只需要加--disable-radix-cache。命中率怎么查--enable-metrics启动后拉/metrics关注前缀缓存命中率以及evictable_size、protected_size两个量。命中率长期偏低且 evictable 接近 0通常说明缓存容量小于工作集考虑扩显存预算或上 HiCache。淘汰策略怎么选默认lru对多轮对话够用请求模式高度重复少数超热前缀可试lfu想给关键租户的前缀更高存活率用priority按优先级淘汰。节点分裂会不会造成 KV 重复拷贝不会。分裂只调整树上节点的边界与指针KV 索引按段切分引用不重复搬运显存数据。写在最后SGLang 的前缀缓存把重复 prefill 同一前缀从默认行为变成了可感知、可度量、可淘汰的一等公民基数树负责找前缀引用锁负责保安全页对齐负责控碎片策略化淘汰负责省显存。理解了这条链路你就有了在真实负载下调命中率和内存水位的全部抓手。接下来值得关注的是跨实例的缓存共享与量化格式 KV 的落地前缀复用正从单服务内优化走向集群级基础设施。【免费下载链接】sglangSGLang is a high-performance serving framework for large language models and multimodal models.项目地址: https://gitcode.com/GitHub_Trending/sg/sglang创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

H5调起摄像头识别条形码实战:getUserMedia+jsQR完整指南

H5调起摄像头识别条形码实战:getUserMedia+jsQR完整指南

2026/9/2 22:16:13

简介:手机摄像头实时识别条形码的H5实践资源,面向Web前端与移动端开发者,演示不依赖原生App、在浏览器环境中完成扫码的实现思路,适用于电商、物流、库存管理等场景,对希望低成本接入扫码能力的前端用户尤其友好。压缩…

企业做GEO,究竟在解决什么问题?

企业做GEO,究竟在解决什么问题?

2026/9/2 22:16:13

2026年已至。当你向AI助手抛出一个问题——“东南亚跨境电商现在选什么品好卖?”或者“智能制造出海,合规上最容易踩的坑是什么?”——它给出的回答里,有没有出现你的品牌?这个念头,正让越来越多的出海企业…

CLIP 快速上手:免费跑通 AI 图文匹配与零样本分类

CLIP 快速上手:免费跑通 AI 图文匹配与零样本分类

2026/9/2 22:16:13

CLIP 快速上手:免费跑通 AI 图文匹配与零样本分类 【免费下载链接】CLIP CLIP (Contrastive Language-Image Pretraining), Predict the most relevant text snippet given an image 项目地址: https://gitcode.com/GitHub_Trending/cl/CLIP 没有标注数据&am…

OCRmyPDF:给扫描PDF加文本层的完整指南,3步让文件可搜索

OCRmyPDF:给扫描PDF加文本层的完整指南,3步让文件可搜索

2026/9/2 23:06:16

OCRmyPDF:给扫描PDF加文本层的完整指南,3步让文件可搜索 【免费下载链接】OCRmyPDF OCRmyPDF adds an OCR text layer to scanned PDF files, allowing them to be searched 项目地址: https://gitcode.com/GitHub_Trending/oc/OCRmyPDF OCRmyPDF…

从东南大学RoboCup救援仿真代码看多智能体协作与系统优化

从东南大学RoboCup救援仿真代码看多智能体协作与系统优化

2026/9/2 23:06:15

简介:这是东南大学RedSun团队参加RoboCup救援仿真国际赛的Java工程源码,面向研究多智能体协同、救援机器人算法与Agent仿真的学生及开发者,适合有一定Java和AI基础的读者深入研读。压缩包共918个文件,含146个Java源文件、147个cla…

如何给 Kronos 装上“自我调参“的头脑:强化学习金融预测完整教程

如何给 Kronos 装上“自我调参“的头脑:强化学习金融预测完整教程

2026/9/2 23:06:15

如何给 Kronos 装上"自我调参"的头脑:强化学习金融预测完整教程 【免费下载链接】Kronos Kronos: A Foundation Model for the Language of Financial Markets 项目地址: https://gitcode.com/GitHub_Trending/kronos14/Kronos Kronos 是一个面向金…

国乒止步16强别急着定性:竞技比赛复盘的五个正确方向

国乒止步16强别急着定性:竞技比赛复盘的五个正确方向

2026/9/2 23:06:15

8月10日这轮乒乓球比赛,因为张本兄妹在同一时段双双夺冠,加上国乒在单打项目提前出局、孙颖莎因伤退赛等消息,直接冲上了社交平台热搜。很多人看到“国乒止步16强”第一反应是“国家队不行了”,甚至用“丢脸”这种词来定性。作为看…

OCR 返回 Code=1,为什么还不能直接写进业务表?

OCR 返回 Code=1,为什么还不能直接写进业务表?

2026/9/2 23:06:15

从识别到落库,中间不是一步赋值,而是一组可验证的业务闸门。 摘要| 在 Microi吾码AI 的 OCR 链路里,Code1 表示请求已经通过租户绑定、供应商调用、响应解析与统一结果构造;它不是“这张票据可以入账”的业务判决。真正…

MFC按钮美化利器CButtonST实战指南

MFC按钮美化利器CButtonST实战指南

2026/9/2 22:56:15

简介:这一MFC增强按钮类库CButtonST面向Windows桌面应用开发者,用于替代默认CButton,快速实现自定义颜色、图标、热键与多状态视觉反馈,提升界面专业度与交互性。压缩包共120个文件,内含22个cpp源文件、23个h头文件、3…

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析

2026/9/2 10:08:07

每年校招季我都会接触不少准备数据库方向笔试的同学,看到最多的状态就是:简历上写着“熟悉 MySQL”“了解索引优化”,一碰到数据库管理工程师的笔试卷,却在索引、事务、锁、备份恢复这些题目上翻车。网易这套 2018 校园招聘数据库…

数字电路时序基石:深入理解建立时间与保持时间

数字电路时序基石:深入理解建立时间与保持时间

2026/9/2 12:11:52

1. 这不是“背公式”的事:时间参数到底在约束什么你翻过数字电路教材,一定见过这两个词:建立时间(Setup Time)和保持时间(Hold Time)。它们常被并列写在触发器(Flip-Flop&#xff09…

蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

2026/9/1 23:49:08

1. 项目缘起:从赛题到超声波测距机的诞生第八届蓝桥杯单片机设计与开发国赛的题目,我至今记忆犹新。它没有直接给出一个花哨的名字,而是用“超声波测距机”这个朴实无华的功能描述,精准地勾勒出了考核的核心。对于当时备赛的我而言…

单片机毕业设计-基于单片机与蓝牙通讯的输液状态监测终端设计与开发 基于 STM32 或 51 单片机的液位‑滴速‑温度多参数输液监护装置设计(024005)

单片机毕业设计-基于单片机与蓝牙通讯的输液状态监测终端设计与开发 基于 STM32 或 51 单片机的液位‑滴速‑温度多参数输液监护装置设计(024005)

2026/9/2 0:04:59

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

DeepSeek字幕翻译实战:从API调用到批量SRT转中文的完整方案

DeepSeek字幕翻译实战:从API调用到批量SRT转中文的完整方案

2026/9/2 0:04:59

这次我们来看一个很实用的 DeepSeek 落地场景:用 DeepSeek 把英文视频字幕自动翻译成中文。具体案例是《恶魔君》1989 年第 28 集的英转中字幕任务,标题写得很直白,但背后其实是一整套可以复用的技术流程:字幕解析、模型调用、批量…

用Python搭建搞笑语音助手:从语音识别到语音合成全教程

用Python搭建搞笑语音助手:从语音识别到语音合成全教程

2026/9/2 0:04:59

当你家里摆着一台天猫精灵,却总希望语音助手偶尔“不正经”一点,不用官方腔回答问题,而是张口就接几句搞笑段子,会是什么体验?我最近动手验证了一下这个想法——没有去改装任何市面上现有的智能音箱,而是直…

远程协作的工作台整理

远程协作的工作台整理

2026/9/2 6:21:32

远程协作的工作台整理远程协作的核心不是再加一个工具,而是让交接信息足够完整。异步任务要写明目标、输入位置、完成标准和需要决策的人。 工作台的最小配置 将日程、待办、代码和沟通入口收拢到少数固定位置;通知按紧急程度分层。工作台不需要模仿办公…

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

2026/9/2 6:21:32

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

2026/9/2 2:45:06

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…