当前位置: 首页 > article >正文

Prompt Cache:别再为同样的 System Prompt 重算一遍

多轮对话里 System Prompt 每次都一样——500 Token 的固定前缀每轮推理都要重跑一遍 Prefill。等于把同一段文字反复读几十上百遍。Prompt Cache 就是来省掉这件重复劳动的。正常推理流程下一个新请求进来先跑 Prefill全 Prompt 的 K/V 全部算一次然后进入 Decode每步算一个新 Token。如果 System Prompt 有 500 Token、用户输入 100 TokenPrefill 跑了 600 Token。第二次对话 System Prompt 一样、用户输入变成 80 Token——Prefill 又跑了 580 Token其中 500 Token 跟上一轮完全一样。Prefix Cache 的原理Prompt Cache也叫 Prefix Cache不存完整的 KV Cache——它只存 Prompt 前缀部分的 K/V。新请求进来时先拿 Prompt 的前 N 个 Token 去 Cache 里查——有没有匹配的前缀。有的话这 N 个 Token 的 K/V 直接复用Prefill 只算新增的部分。Prefix Cache 的命中流程 请求 1Prompt [SYS_500] [USER_100] → Prefill 全部 600 Token → 缓存 [SYS_500] 的 KV → hash(SYS_500) → Cache 条目 请求 2Prompt [SYS_500] [USER_80] → hash(SYS_500) 命中 → 跳过 500 Token 的 Prefill → 只 Prefill USER_80 部分80 Token → 500 Token Prefill 时间直接省掉多轮对话里第一轮是冷启动全量 Prefill第二轮起 Cache 命中率接近 100%。一个客服机器人一天 10 万请求90% 是第二轮及以后的对话——Prefill 节省的总时间非常可观。Runtime 如何管理 Prompt CacheCANN 的 Prompt Cache 实现在 Runtime 层不在应用层。好处是跟 NPU 显存管理和 HCCL 通信直接打通不用在 Host 和 Device 之间搬 Cache 数据。Cache 维护逻辑每个 Prefix 用 Token 序列的 hash 做键存在 NPU 显存里不搬回 CPU。新请求查 Cache——有命中就跳过对应 Prefill未命中就完整 Prefill 后把 Prefix 写入 Cache。Cache 满了走 LRU 淘汰——最久没被命中的条目被清除释放显存。# Prompt Cache 管理——Runtime 侧简化逻辑classPromptCache:def__init__(self,max_gb2):self.poolacl.rt.malloc(max_gb*1024**3)self.entries{}# {hash: {kv_offset, size, last_access}}deflookup(self,prefix_tokens):keyhash(tuple(prefix_tokens))ifkeyinself.entries:self.entries[key][last_access]now()returnself.entries[key][kv_offset]# NPU 显存地址returnNonedefinsert(self,prefix_tokens,kv_data):keyhash(tuple(prefix_tokens))offsetself.pool_alloc(kv_data.nbytes)acl.rt.memcpy(offset,kv_data)# 存进 Poolself.entries[key]{offset:offset,size:kv_data.nbytes,last_access:now()}ifself.pool_free256*1024**2:# 不足 256MB 时淘汰self.evict_lru()收益量化一个 AI 客服System Prompt 500 Token每轮用户输入平均 100 Token。1000 并发每个用户 10 轮对话。不使用 Prompt Cache每轮 Prefill 600 Token总 Prefill Token 数 1000 × 10 × 600 6M Token。每次 Prefill 约 12ms500100 Token每用户 10 轮 120ms Prefill 总时间。使用 Prompt Cache第一轮 600 Token Prefill12ms后 9 轮只有 100 Token Prefill约 2ms。每用户 10 轮 12 9×2 30ms。省了 90ms/用户——1000 用户省了 90 秒 NPU 时间。什么场景不适合每个请求 Prefix 都不一样——Cache 命中率接近零。Batch 小导致 Cache 插入即淘汰——Cache 没热起来就被清空。真正的收益集中在大 Prefix、高频重复的场景客服机器人、代码助手Tool 描述固定、RAG 的 System Prompt。参考仓库cann-recipes-infer 推理 RecipesRuntime 运行时ATB Transformer 加速库CANN 学习中心

相关文章:

Prompt Cache:别再为同样的 System Prompt 重算一遍

多轮对话里 System Prompt 每次都一样——500 Token 的固定前缀,每轮推理都要重跑一遍 Prefill。等于把同一段文字反复"读"几十上百遍。Prompt Cache 就是来省掉这件重复劳动的。 正常推理流程下,一个新请求进来先跑 Prefill(全 P…...

JMeter接口测试进阶:从功能验证到生产级性能工程

1. 这不是“点点点就能跑通”的接口测试,而是你真正能扛住压测的底气很多人第一次打开 JMeter,以为它只是个“图形化 Postman”——填 URL、选方法、点执行,看到绿色 Success 就觉得“接口测完了”。我带过三届测试团队,几乎每届都…...

软件可维护性评估工具对比:从代码行数到AI模型,谁更懂开发者?

1. 项目概述:为什么我们需要重新审视可维护性评估?在软件开发的日常里,我们总在和时间赛跑。新功能要上线,Bug要修复,架构要优化,而代码库就在这日复一日的迭代中悄然生长。直到某一天,你发现修…...

终极解放:BetterGI原神自动化工具完整指南

终极解放:BetterGI原神自动化工具完整指南 【免费下载链接】better-genshin-impact 📦BetterGI 更好的原神 - 自动拾取 | 自动剧情 | 全自动钓鱼(AI) | 全自动七圣召唤 | 自动伐木 | 自动刷本 | 自动采集/挖矿/锄地 | 一条龙 | 全连音游 | 自动烹饪 - U…...

JMeter接口测试从零到实战:新手避坑指南与自动化闭环

1. 为什么接口测试不是“点点点”,而JMeter是多数人绕不开的第一把刀很多人刚接触接口测试时,第一反应是:“不就是用Postman发个请求、看个返回码吗?还要学啥工具?”我带过十几批测试新人,八成在入职前两周…...

LayerDivider:3分钟让单张插画变可编辑图层的AI魔法

LayerDivider:3分钟让单张插画变可编辑图层的AI魔法 【免费下载链接】layerdivider A tool to divide a single illustration into a layered structure. 项目地址: https://gitcode.com/gh_mirrors/la/layerdivider 你知道吗?现在有超过85%的数字…...

Android Studio中文界面汉化终极指南:5分钟告别英文困扰

Android Studio中文界面汉化终极指南:5分钟告别英文困扰 【免费下载链接】AndroidStudioChineseLanguagePack AndroidStudio中文插件(官方修改版本) 项目地址: https://gitcode.com/gh_mirrors/an/AndroidStudioChineseLanguagePack 还在为Androi…...

Unpaywall:5分钟快速安装,轻松解锁付费学术论文的实用指南

Unpaywall:5分钟快速安装,轻松解锁付费学术论文的实用指南 【免费下载链接】unpaywall-extension Firefox/Chrome extension that gives you a link to a free PDF when you view scholarly articles 项目地址: https://gitcode.com/gh_mirrors/un/unp…...

保姆级教程:在Windows电脑上免梯子安装GPT4All最新版(附模型下载避坑指南)

Windows系统本地部署GPT4All全流程指南:从零基础到高效运行最近半年,开源大语言模型生态中最令人兴奋的变化之一,就是像GPT4All这样的工具让普通开发者也能在消费级硬件上运行强大的AI模型。作为一名长期关注AI本地化部署的技术顾问&#xff…...

别再被GPG签名卡住了!手把手教你修复老版本Kali Linux的apt更新源报错

彻底解决Kali Linux旧系统GPG签名失效:从原理到实战当你面对Kali Linux系统中apt-get update命令抛出的一连串GPG签名错误时,那种挫败感我深有体会。作为一名长期维护渗透测试环境的工程师,我见过太多同行因为这类问题放弃旧系统,…...

如何用NightX Client彻底改变你的Minecraft 1.8.9游戏体验?终极功能解析

如何用NightX Client彻底改变你的Minecraft 1.8.9游戏体验?终极功能解析 【免费下载链接】NightX-Client Minecraft Forge 1.8.9 hacked client, Based on LiquidBounce 项目地址: https://gitcode.com/gh_mirrors/ni/NightX-Client 想要在Minecraft 1.8.9中…...

028、原理图ERC检查与常见错误排查

028 原理图ERC检查与常见错误排查 一次让我通宵的“悬空引脚”教训 几年前做一款工业控制板,原理图画完,自我感觉良好,直接丢给Layout工程师。结果板子回来,上电就烧了一路电源。查了两天,最后发现是一个运放的反馈引脚在原理图上画了线,但网络标号写错了——那个引脚实…...

027、原理图绘制进阶:总线、网络标号、层次图

027 原理图绘制进阶:总线、网络标号、层次图 从一块烧掉的板子说起 去年接手一个同事离职留下的项目,一块四层板,MCU挂了三片ADC、两片DAC、一个FPGA,外加一堆传感器。原理图打开那一刻,我差点把咖啡喷屏幕上——整张图就一张Sheet,密密麻麻的飞线像蜘蛛网,网络标号全…...

026、原理图绘制基础:放置元件与连线

026 原理图绘制基础:放置元件与连线 一次“短路”引发的血案 去年接了个返修板,客户说上电就冒烟。拆开一看,电源芯片的SW引脚对地短路,焊盘都烧黑了。查原理图,设计者把两个相邻的电源网络标号写成了“VCC_3V3”和“VCC_3.3V”——一个下划线,一个点。PCB布线时,这两…...

025、原理图库创建与管理

025 原理图库创建与管理:从一次电容封装错位说起 去年做一款工业控制板,BOM清单核对三遍,打样回来焊了十块板子,上电就炸了三块。排查到最后,发现是原理图库里一个0805电容的封装引脚间距画错了0.2mm。焊盘实际间距比标准大了一截,手工焊的时候电容歪着放,引脚搭到隔壁…...

终极FFXIV模组管理器:TexTools完全使用指南与实战教程

终极FFXIV模组管理器:TexTools完全使用指南与实战教程 【免费下载链接】FFXIV_TexTools_UI 项目地址: https://gitcode.com/gh_mirrors/ff/FFXIV_TexTools_UI 你是否厌倦了在《最终幻想14》中与其他玩家穿着相同的装备?是否梦想着为你的光之战士…...

如何快速提升视频画质:AI视频增强终极指南

如何快速提升视频画质:AI视频增强终极指南 【免费下载链接】video2x A machine learning-based video super resolution and frame interpolation framework. Est. Hack the Valley II, 2018. 项目地址: https://gitcode.com/GitHub_Trending/vi/video2x Vid…...

AI率总超标?2026年AI论文平台排行榜权威发布,一次过审不是梦!

写论文效率低、熬夜赶稿、查重不过关?别慌!2026 年最新 AI 论文写作工具合集来了,覆盖选题、大纲、初稿、润色、降重、格式、文献引用全流程,帮你精准匹配最适合的学术助手,彻底告别论文内耗!🏆…...

使用Taotoken后模型API调用的延迟与稳定性实际观测体验

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 使用Taotoken后模型API调用的延迟与稳定性实际观测体验 1. 观测背景与测试方法 作为一名日常需要调用多种大模型API的开发者&…...

3分钟上手d2s-editor:暗黑破坏神2存档修改终极指南

3分钟上手d2s-editor:暗黑破坏神2存档修改终极指南 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 还在为暗黑破坏神2的存档管理头疼吗?无论是角色属性不够完美,还是装备收集太耗时&#xff0…...

数据不是石油,是稀土:被误读的具身智能数据竞赛

一个被反复引用的判断是——"数据是具身智能时代的石油"。 我想说的恰恰相反:这个比喻,从一开始就错了。 一、五十万小时的困境 先看一组行业账目。 某国内头部具身智能企业,在预计投入的 20 亿元科研创新费用中,仅&q…...

明日方舟游戏素材资源库:创作者与开发者的数字宝藏

明日方舟游戏素材资源库:创作者与开发者的数字宝藏 【免费下载链接】ArknightsGameResource 明日方舟客户端素材 项目地址: https://gitcode.com/gh_mirrors/ar/ArknightsGameResource 还在为明日方舟相关的创作项目寻找高质量素材而烦恼吗?无论是…...

如何通过SPT-AKI Profile Editor存档编辑器轻松掌控你的塔科夫离线体验

如何通过SPT-AKI Profile Editor存档编辑器轻松掌控你的塔科夫离线体验 【免费下载链接】SPT-AKI-Profile-Editor Программа для редактирования профиля игрока на сервере SPT-AKI 项目地址: https://gitcode.com/gh_mirr…...

【技术专题】Reloaded-II依赖循环与无限下载问题的系统性解决方案

【技术专题】Reloaded-II依赖循环与无限下载问题的系统性解决方案 【免费下载链接】Reloaded-II Universal .NET Core Powered Modding Framework for any Native Game X86, X64. 项目地址: https://gitcode.com/gh_mirrors/re/Reloaded-II 问题场景:模组依赖…...

终极指南:如何使用WarcraftHelper彻底解决魔兽争霸3兼容性问题

终极指南:如何使用WarcraftHelper彻底解决魔兽争霸3兼容性问题 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为魔兽争霸3在现代Wind…...

如何用QrazyBox修复损坏的二维码:终极修复工具指南

如何用QrazyBox修复损坏的二维码:终极修复工具指南 【免费下载链接】qrazybox QR Code Analysis and Recovery Toolkit 项目地址: https://gitcode.com/gh_mirrors/qr/qrazybox 你是否曾遇到过打印模糊、水渍污染或屏幕划痕导致的二维码无法扫描?…...

分布式接口幂等性设计:唯一索引、Token 与分布式锁

接口幂等性解决的是“同一个请求被执行多次,会不会造成重复业务效果”的问题。用户重复点击、网络重试、MQ 重复消费,都可能让同一业务被重复执行。 一句话概括:幂等就是多次调用和一次调用的业务结果一致;查询和按唯一值删除天然…...

显存直降68%、推理提速3.2倍,DeepSeek-V2量化部署方案全解析,仅限首批内测团队流出

更多请点击: https://codechina.net 第一章:DeepSeek-V2量化部署方案全景概览 DeepSeek-V2作为高性能开源大语言模型,在实际生产环境中面临显存占用高、推理延迟大等挑战。量化部署是实现低资源开销与高吞吐并存的关键路径,本章…...

分布式事务方案:Seata XA、AT、TCC 与 MQ

只要一个业务操作同时写多个服务的数据,就会遇到分布式事务问题。比如下单要写订单、扣库存、扣余额,任意一步失败都可能造成数据不一致。 一句话概括:Seata 通过 TC、TM、RM 协调全局事务和分支事务;XA 追求强一致但性能差&#…...

Taotoken审计日志功能在团队协作与安全排查中的作用

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Taotoken审计日志功能在团队协作与安全排查中的作用 在团队协作使用大模型API的过程中,一个常见的问题是:当…...