ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

新手程序员必看:轻松掌握大模型的缓存优化秘籍,提升效率与性能!

新手程序员必看:轻松掌握大模型的缓存优化秘籍,提升效率与性能!

本文深入探讨了在运用大模型时,如何通过缓存优化来提升效率。首先介绍了KV Cache在减少重复计算和首字等待时间中的作用,随后详细阐述了Prompt Cache的适用场景和限制。接着,提出了LMCache和CacheBlend等解决方案,以应对跨进程缓存复用和文档顺序变化的问题。最后,文章提供了一套实用的上线检查单,帮助读者评估是否适合引入缓存系统。对于想要提升大模型应用性能的新手程序员来说,本文提供了宝贵的优化策略和实战指导。

一个 Coding Agent 跑到第 20 轮,眼前只多了一条工具结果,发给模型的输入却可能已经塞满系统提示词、工具定义、代码文件和前 19 轮历史。

模型每次都要先把这些内容读一遍,首字越来越慢。你以为 GPU 在继续思考,其实相当一部分时间花在重复做 prefill。

Provider 的 Prompt Cache 已经能省掉稳定前缀。可一旦自己部署模型,流量跨多个推理进程、工作集装不进显存,或者 RAG 文档不断换顺序,进程内 Prefix Cache 就开始撞墙。

LMCache 想做的,是把 KV Cache 从推理进程里拆出来,变成一层能共享、能分级、能观察的基础设施。

API 用户先把 Prompt Cache 用对;自托管团队只有在“长输入、高复用、高并发、显存吃紧”同时出现时,才值得为独立 KV Cache 服务付出运维成本。

Agent 的账单,常常先花在 prefill

模型收到一段输入,先经过 prefill:每个 token 在每一层注意力里生成 Key 和 Value。它们会被留在显存里,后续每生成一个 token,直接读取此前的 K/V,不必把旧 token 全部重新算一遍。

这份中间结果就是 KV Cache。

同一个系统提示词、同一组工具定义、同一段对话前缀,它们对应的 K/V 也可以复用。命中缓存后,服务跳过那段重复 prefill,只处理新追加的输入,再进入 decode。

所以要先分清两笔账:KV Cache 省的是重复输入的计算和首字等待时间;新输入与输出 token 仍然要处理。把“缓存输入便宜 90%”写成“总成本下降 90%”,上线后一定会失望。

命中也不是免费。KV 留在 HBM,读取很快但容量小;下沉到 CPU、SSD 或远端后,容量变大,搬运和等待也跟着增加。最终比较的是两段时间:把旧 KV 取回来,还是把原输入重新 prefill,哪个更快。

短上下文、低并发、小工作集经常是后者。缓存系统越复杂,不代表延迟越低。

Prompt Cache 很划算,但它认前缀

以 Anthropic 当前公开价格为例,5 分钟缓存写入是普通输入价的 1.25 倍,命中读取是 0.1 倍。一次命中就足以覆盖那 0.25 倍的额外写入成本。

条件也很明确:可复用部分必须保持一致,并按tools → system → messages组成稳定前缀。前方改了一处,后面的缓存也会受影响。

这给 Agent 应用留下了几条很具体的优化:

  • 系统提示词和工具定义放前面,别在每轮动态改写;
  • 工具列表保持稳定顺序,不要随手遍历一个无序集合;
  • 大段固定资料放在用户问题之前;
  • 会话需要压缩时,避免频繁改动已经缓存的前段;
  • 同一任务连续调用,别拖过缓存 TTL 才发下一轮。

如果你调用托管 API,先把这些做到位。没有必要一看见“缓存”两个字,就先搭一套新的分布式服务。

这里有个容易写错的细节:对话在尾部继续增长,不会自动毁掉前面的缓存。只要前缀保持一致,旧 K/V 仍能接上新一轮。麻烦来自前缀内容或顺序变化,以及多个独立片段重新组合。

比如 RAG 先取出文档 A、B、C,下一轮因为召回分数变化,顺序变成 C、A、B。三份材料都读过,拼起来却不再匹配旧前缀。又比如不同请求需要组合各自缓存过的文档,直接拼接各段 K/V 会漏掉文档之间的注意力关系。

对只在显存里维护缓存的推理服务,还有一层限制:多个数据并行进程各管一份缓存。相同上下文被路由到另一个进程,或者热数据被显存淘汰,复用机会就没了。

LMCache 把缓存做成独立服务

LMCache 的做法像给推理集群加一层专门的缓存系统。

推理引擎继续负责调度和生成;KV 可以分层留在 GPU、CPU 内存、本地 SSD 或远端存储。LMCache 的 MP 模式以独立服务运行,多个推理进程注册到同一个缓存池,于是跨进程也能找回相同上下文。

一次请求进来,推理进程先按 token 块查询缓存。命中就把 KV 拉回可用位置,只对缺失部分做 prefill;未命中则照常计算,并异步把结果写入后面的存储层。缓存服务超时也应退回正常 prefill,不能让“加速层”变成整条推理链路的单点故障。

这套设计解决了两个现实问题:

  • 缓存不再和某个推理进程同生共死,重启或跨实例调度时仍有机会复用;
  • 显存放不下的工作集可以下沉到更大的存储层,再异步预取回来。

代价也一并进来了:缓存键必须在不同进程间保持一致;淘汰策略要看工作集;CPU 内存、PCIe、网卡和 SSD 都可能成为新瓶颈;命中率高但取回太慢,指标看上去漂亮,用户依然在等。

LMCache 团队在 2026 年 5 月公开了一组 MI300X 测试。8 用户、32K 上下文的低负载下,工作集能放进 HBM,原生 Prefix Cache 完成 52 个请求,LMCache 只完成 25 个。多一层搬运,此时成了负担。

压力拉到 32 用户、100K 上下文后,显存开始顶不住,LMCache 的平均 TTFT 才从 HBM Prefix Cache 的 102.17 秒降到 34.59 秒,并完成 28 个请求,对方只有 12 个。

数字属于 2 张 MI300X、MiniMax-M2.5 和指定软件版本,不能抄成“部署就提速 3 倍”。它提供的工程判断更有用:工作集还在显存里时,搬缓存可能比重算更慢;工作集溢出后,分层缓存才开始还债。

文档换顺序,CacheBlend 怎么补

独立存储解决“缓存放哪儿”,还没有解决“不同文档的 KV 能不能直接拼”。

CacheBlend 处理的是后一个问题。它先复用各文档已有的 KV,再挑出受上下文影响较大的少量 token 重算,用这部分计算补回跨文档注意力。

EuroSys 2025 论文在 3 个开源模型和 3 组数据集上测试,相比完整重算与 Prefix Cache 基线,TTFT 改善 2.2–3.3 倍,吞吐提高 2.8–5 倍。作者的经验是,重算少于 15% 的 token 往往能接近完整重算质量。

“往往”两个字不能删。模型、文档相关性、任务类型变了,重算比例和质量也会变。对答案可验证的检索任务,可以先做离线评测;涉及合规、医疗、财务等高风险回答,别拿论文均值替代自己的质量门槛。

上线前,先抄这张检查单

我不会先问“要不要上 LMCache”,而会先拉出一周请求数据,看六项:

  1. 1. 每轮输入里,有多少 token 与前一轮重复;

  2. 2. Prefix Cache 的命中率和命中 token 数;

  3. 3. p50、p95、p99 TTFT,而不只看平均值;

  4. 4. 从缓存读取一段 KV 花多久,从头 prefill 又花多久;

  5. 5. 工作集是否频繁被 HBM 淘汰,CPU、SSD、网络是否还有余量;

  6. 6. 缓存服务超时或命中异常时,能否降级为正常 prefill。

API 用户如果连第 2 项都没拿到,先检查稳定前缀、TTL、工具顺序和缓存断点。

自托管团队如果发现长上下文重复率高、跨进程调度频繁、p95 TTFT 被 prefill 拉长,再做一次真实流量回放。固定模型、硬件、并发与请求集,只切换三组配置:无缓存、引擎自带 Prefix Cache、LMCache 分层缓存。

每组至少记录命中 token、缓存读取时间、prefill 时间、TTFT 分位数和完成请求数。别拿一条重复提示词的 warm hit,替代真实 Agent 工作集。

缓存不是越大越好,也不是层数越多越先进。它只在“取回旧计算”比“重新计算”更便宜时成立。

大模型的知识又多又杂,到底怎么学?

做这行久了,被问最多的问题就一个:大模型的知识又多又杂,我到底先学啥?翻了一堆资料,看啥都像重点,结果啥都没学进去。今天把我自己一路摸出来的顺序捋一遍,零基础、应届生、转行的都适用。跟着走,至少方向不乱、不瞎忙,学完拿得出手。

第一阶段(10天):初阶应用

这一阶段就一个目标:把大模型真正"玩明白",不是只会聊天那种,而是能调教它、能用代码把大模型和业务接起来。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范
  • …
第二阶段(30天):高阶应用

这阶段正式进实战,目标很实在:做出两个能拿出手的东西——一个私有知识库,一个 agent 对话机器人。

  • 为什么要做 RAG

  • 搭建一个简单的 ChatPDF

  • 检索的基础概念

  • 什么是向量表示(Embeddings)

  • 向量数据库与向量检索

  • 基于向量检索的 RAG

  • 搭建 RAG 系统的扩展知识

  • 混合检索与 RAG-Fusion 简介

  • 向量模型本地部署

  • …

走完这 30 天,Python 或 JavaScript 背景的基本能独立做一套 RAG 应用,简历上也敢写"大模型应用开发"了。

第三阶段(约20天):动手微调

学到这,你已经开始 “造” 模型了 —— 通过微调,搞出垂直领域的专用小模型。

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建
  • …

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你从 “只会用” 变成 “能造” 的 AI 小子。那么你还想往下探索吗?

想要入局AI大模型赛道、抢占行业红利的朋友,微信扫描下方CSDN官方认证二维码,即可100%免费领取全套学习资料!

第四阶段(20天):商业闭环,部署落地

技术学完,落地才算数。这阶段带你搞明白大模型怎么真正跑起来、用起来。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案
  • …

想要入坑大模型的朋友,给大家准备了一份2026 年最新 AI 大模型全套学习资料:

1、大模型系统化学习路线

2、大模型学习视频教程

3、大模型学习书籍&电子文档

4、AI大模型最新行业报告

5、大模型项目实战&配套源码

6、2026大模型大厂面试真题

7、为什么要学习大模型?

我国在A大模型领域面临人才短缺,数量与质量均落后于发达国家。2023年,人才缺口已超百万,凸显培养不足。随着AI技术飞速发展,预计到2025年,这一缺口将急剧扩大至400万,严重制约我国AI产业的创新步伐。加强人才培养,优化教育体系,国际合作并进是破解困局、推动AI发展的关键。

8、适合谁学?
  • 传统后端 / Java / 前端开发,想转型 AI 应用
  • 大学生、应届生,想拿更好的 offer
  • 产品经理、运营,想武装职业竞争力
  • 技术负责人,想给团队落地提效

学习是反人性的,但回报是真金白银。技术会更新,赛道会切换,但只要你先动手,机会就永远站在你这边。

9、这些资料真的有用吗?

这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理,现任上海殷泊信息科技CEO,其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证,服务航天科工、国家电网等1000+企业,以第一作者在IEEE Transactions发表论文50+篇,获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。

资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的技术人员,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。

想要入局AI大模型赛道、抢占行业红利的朋友,微信扫描下方CSDN官方认证二维码,即可100%免费领取全套学习资料!

好了,就写到这。路线是死的,人是活的,卡住了随时来问我。觉得有用就点个收藏,别让它进收藏夹吃灰——动起来比啥都强。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进