1/6

SGLang 速懂:RadixAttention 如何复用 KV Cache

用六张竖版图看懂 RadixAttention 如何复用共享前缀的 KV Cache,并跑起一个最小 SGLang 服务。

RadixAttention 的核心,是把已经算过的前缀留下来。SGLang 论文描述的做法是:把 prompt 和生成结果对应的 KV cache 保留在 radix tree 中,之后的请求沿树寻找可复用的前缀,再只计算分歧后的 token。1
这套机制适合反复出现相同前缀的请求:few-shot、self-consistency、多轮对话和 Tree-of-thought 都在官方博客列为典型场景。匹配的边界是 token 前缀一致,不是语义相似就能命中。2
论文报告的 cache hit rate 覆盖 50%–99% 的不同 benchmark;在 Chatbot Arena 的 Vicuna-33B 场景里,命中率为 74.1%,首 token 延迟平均降低 1.7×。这些数字属于特定 workload,不能直接当成所有模型和流量的保证。1
想跟着做,可以先按官方文档安装并启动一个服务:pip install uv,再运行 uv pip install --prerelease=allow sglang,然后用 python3 -m sglang.launch_server --model-path qwen/qwen2.5-0.5b-instruct --host 0.0.0.0 --port 30000 启动。官方请求教程给出了 /v1/chat/completions、cURL、Requests 和 OpenAI Python Client 的用法,Swagger 入口是 http://localhost:30000/docs3 4
验证时固定同一段 system prompt,连续发送两条不同问题,再对比第二次请求的首 token 延迟。这样测到的,才是你的流量里共享前缀带来的实际收益。

相似内容

评论

登录后可发表评论。