为何Deepseek v4 pro的缓存命中价格可以低至0.025元百万Token?

叠甲:本人不是大模型研究方向的专业人士,最近用Deepseek的时候被这个缓存命中的定价惊到了,查阅了一些资料之后把自己的理解总结出来,跟大家聊聊。如果有说错的地方,欢迎大佬们在评论区指正。


不知道你们有没有注意到,Deepseek v4 pro的API定价里有一个非常离谱的数字:缓存命中时,输入价格只要0.025元/百万token,而正常的输入价格是3元/百万token,差了120倍。

这到底是怎么回事?为什么命中一个缓存就能便宜这么多?

一、命中的是什么?

首先得搞清楚“缓存命中”到底命中了啥。其实简单来说,就是输入内容的前缀

举个最简单的例子:假设你跟AI说了一段很长很长的话,比如把一篇几千字的论文贴了进去,然后在最后问了一个问题。如果你紧接着又问了一个新问题,并且再次把同一篇论文贴了一遍,这时候前面那一段论文的部分就形成了一个“前缀”。Deepseek的底层系统一看:哎,这个前缀我之前算过啊,而且结果还存着呢,那我就直接把上次算好的结果拿来用,不用再重新算了——这就叫缓存命中。

那问题来了:如果我后面的话不一样,比如第二个问题变了,那缓存还有用吗?答案是:前缀部分有用,后缀完全没用

为什么后缀命中没用?这跟大模型的工作原理有直接关系,我们接着往下聊。

二、大模型回复你的本质:高级版文字接龙

我猜很多同学对“缓存”这个东西感到抽象,主要是因为不太清楚大模型到底是怎么生成回复的。所以我先不讲缓存,先把模型推理的过程说清楚。

大模型在回复你的时候,本质上是在玩一个极其厉害的文字接龙游戏。你发过去一句话,它不是直接“理解”了你的意思再回答你,而是根据你给的文本,一个token一个token地猜下一个最应该出现的token是什么,猜出来一个就拼上去,然后把这个拼好的整体再拿去猜下一个token,循环往复,直到它觉得可以结束了。

打个比方:你问它“世界上最高的山是哪座山?”

如果它只是单纯的接龙,那它大概率会顺着你的话说:“世界上最高的山是哪座山?这个问题问得好……” 这不就成了瞎扯淡了吗?

可现实中我们用的模型并不会这样,而是会给出“珠穆朗玛峰”之类的正经答案。这是为什么?

三、原来AI收到的根本不是你的原话

原因很简单:模型实际收到的内容,根本不是你输入的那句裸问题,而是一个被精心包装过的提示词模板。

你脑补一下,在系统内部,发给模型的东西大概是这么个格式(当然我极度简化了):

<|user|>世界上最高的山是哪座山?<|assistant|>

模型看到 <|assistant|> 这个标记之后,就会按照它在训练中学到的规律,开始接龙出高质量的回答,比如“世界上最高的山是珠穆朗玛峰……”。因为它的训练数据里有海量这种对话格式,它知道在 assistant 标记后面应该跟着一个靠谱的回答,而不是接着用户的话瞎编。

这种设计的精妙之处就在于:把“回答问题”这个行为,重新转化成了“文本续写”这个单一任务。对模型来说,无论你是让它写诗、翻译还是写代码,它做的一直都是同一件事——给你一段前缀,它往后接龙。

四、那这跟缓存命中有啥关系?

别急,知道了AI是在做接龙,缓存的事情就好理解了。

这里要引入一个概念,叫 KV Cache

大模型内部处理文本的时候,有一项极其吃计算量的工作,就是把输入文本的每个token,通过几百层的神经网络,算出一套“钥匙(Key)”和“值(Value)”。你可以把这些KV理解成对输入内容进行高度抽象压缩之后得到的信息表示。模型后面在接龙生成每一个新token的时候,都要用到前面所有token的KV信息,来判断下一个该出什么。

关键点来了:这套KV信息,只要输入的文本前缀不变,它就完全不会变。

比如你输入了“世界上最高的山是哪座山?”,模型吭哧吭哧算出了一套KV存起来。如果你下次再发一模一样的前缀,比如你连续问了好几个关于珠峰的问题,每次都把同样的长篇背景资料贴上,那么这段背景资料的KV是可以直接复用的,完全不需要重新算。

这个被存起来可以直接复用的计算结果,就是我们现在聊的“缓存”,也即 KV Cache的缓存

五、为什么命中便宜这么多?因为省掉了最贵的那一步

现在我们可以回答最初的问题了:为什么缓存命中的价格能低到0.025元,而未命中则贵几十倍?

因为大模型推理的大部分成本,都花在把输入token变成KV Cache的计算上

一个token从输入到变成KV,需要经过模型全部层级的矩阵乘法,这个过程不仅消耗大量GPU算力,还需要在显存和计算单元之间来回搬运大量数据,属于又吃算力又吃带宽的重体力活。而当缓存命中时,这些重体力活就被直接跳过了——系统直接把之前算好的KV从缓存里读出来,几乎零成本地喂给模型,然后模型只需要在这个基础上做后续的增量推理就行了。

这也是为什么后缀命中完全没用。因为模型生成内容是自回归的,每个新token依赖前面所有的KV。后缀指的是你输入的后半部分变了,那从变化位置开始,往后的所有KV都要重新计算,缓存就只能用到没变的那段前缀,后缀部分的计算成本一点也省不掉。

六、这套体系厉害在哪儿?

其实KV Cache复用不是新概念,很多推理框架都在用。但通常这种缓存只能在一个请求内部复用,或者在一个很短的会话窗口内复用。但是Deepseek v4 pro能把定价做到0.025元/百万token,这背后说明了几件事:

  1. 他们做了一个规模庞大、效率极高的全局缓存系统,能够将海量的KV Cache存储起来,并在不同请求到来时快速检索匹配前缀,没有给推理链路增加明显延迟。
  2. 他们预测到用户会有大量重复的前缀输入,比如多人调用同一个长文档、同一个系统提示词、同一段代码上下文。事实也确实如此,在很多企业级应用和Agent场景中,前缀的重复率惊人地高。
  3. 边际成本足够低。KV Cache一旦算好,存储和读取的开销比起重算来说几乎可以忽略不计。这种巨大的成本落差,让他们敢于把命中价格定到地板价,从而吸引开发者优化自己的输入构造方式,主动提高命中率,形成双赢。比方说最近的 Reasonix 就是针对缓存命中专门对前缀构造做了优化。

所以回到标题:0.025元/百万token,本质上是 “将昂贵的计算变成廉价的存储读取” 这一思路在商业定价上的极致体现。Deepseek把省下来的算力成本,让利给了能设计出高缓存命中率系统的开发者,然后用超低价格教育了市场


本文就是我在查阅公开资料后自己梳理出来的理解,不保证术语的绝对严谨,如果什么地方讲得不对,欢迎指正。

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐