最近 Claude 出了个 message threads,我一开始也以为它就是 KV Cache,查完才发现,记的东西根本不一样,省的东西也不一样。 先说… · @ShangShaoyang · TwKit
@ShangShaoyang
最近 Claude 出了个 message threads,我一开始也以为它就是 KV Cache,查完才发现,记的东西根本不一样,省的东西也不一样。 先说 KV Cache 啊。模型写下一个字的时候,不用把前面每个字都重新算一遍,前面算好的 Key、Value 存着,直接复用,省的是算力。没有它,写第 100 个字,就得把前 99 个字全重新算一遍,越写越慢。 Prompt Caching 就是把这个办法用到跨请求上。前面那段话一模一样,就不用重算,按缓存价算,新增的部分再按全价算。省的是重算和钱。 message threads 记的就不是这个了,它记的是对话文本本身。11 月 2 日公测的这个功能,第一轮你发全文,后面只发新的一句和上一条回复的 id,服务器在调用模型之前帮你把对话拼回去。500k 到 1M token 的请求,第一个字出来能快约 35%,传的数据也少了很多。 但这里最容易误会:钱没省。模型在后台还是要把全文读一遍,token 费照算。而且这个记性是短时的,停 5 分钟没动就过期,最晚在最后一次使用后 1 小时内删掉,程序里得准备好重新发全文的后路。官方文档也特意写了,线程本身不会替你缓存提示,想省钱,还得每轮都带上缓存设置。 说到这儿,对比就清楚了。threads 省的是上传,KV Cache / Prompt Caching 省的是重算和钱,一个在传的这一层,一个在算的这一层。 举几个常用的例子就更明显了。 比如你跑一个长代码 Agent,上下文是几十万 token 的代码和对话,上一轮刚改完一个函数,下一轮又说一句“再改一下这个地方”。没有 threads,每轮都得把全部代码和对话重新上传;没有缓存,模型还得把那几十万 token 重新算一遍、按全价收。两层一起开,才是上传少、算得也少。 再比如客服或者读文档,每次问题本身很短,但前面都带着同一份很长的系统提示、产品政策、价格表。这种前缀一模一样,Prompt Caching 最划算,直接复用。 还有一种情况,threads 帮不上省钱的忙。比如 Agent 每一轮的工具结果、截图都在变,前缀变了,缓存就命中不了,你还是得按全价算新的部分,threads 只能帮你少传点数据。 还有长聊天那个坑也得注意。你聊了几十轮,历史越攒越长,threads 确实让后面只发新的一句、第一个字出得快。但你中途去吃个饭,超过 5 分钟回来,线程过期了,又得重新发全文。 所以我的判断是这样:长会话要快又要省,两层一起开才行。只开 threads,第一个字快了,钱一分没省;只开缓存,你还是每次都得发全文。短对话就别折腾了,省的那点时间和钱,还不够你改代码的功夫。 原文链接: Claude 官方 message threads 文档:https://platform.claude.com/docs/en/build-with-claude/message-threads Claude 官方 Prompt Caching 文档:https://platform.claude.com/docs/en/build-with-claude/prompt-caching.md
曝光 118 · 评论 1 · 点赞 4 · 书签 0
查看原帖