前几天翻小米MIMO V2.5 Pro的账单,发现一组挺有意思的数字:
- 总消耗:21,127,511 token
- 输入命中缓存:20,686,144
- 未命中:331,266
- 输出:120,101
缓存命中率98.4%。
这些数字是什么意思
先解释下这组数字的含义。每次跟MIMO对话,输入的内容(包括历史上下文、文件内容、系统提示)会先查缓存——如果之前已经发过同样的内容,就直接走缓存通道,价格比正常输入便宜很多。未命中就是第一次发送的新内容,按原价计费。
2068万这个数字看起来吓人,但其实它代表的是”被缓存复用的输入量”,不是实际多付的钱。真金白银花出去的,是那33万未命中的token和12万输出token。
输入部分,命中的2068万按缓存价格算,未命中的33万按原价算。输出的12万token没法缓存,按输出价格计费。三项加起来,总消耗2112万。
为什么缓存命中率能这么高
原因很简单:编程场景天然适合缓存。
一个项目改来改去,大部分代码上下文是不变的。每次对话带上的系统提示、项目结构、相关文件,90%以上内容跟上一轮一模一样。MIMO的缓存机制把这些不变的部分记住了,后续请求直接走缓存,省掉重复传输和计费。
具体来说,缓存命中的部分包括:
- 系统提示词:每次对话都会带上的角色设定、工具说明、项目规范,这些内容完全相同
- 项目文件:你添加到上下文的代码文件,只要没修改,下次对话直接命中缓存
- 历史对话:之前的聊天记录,只要会话还在,也会被缓存复用
而未命中的33万token,主要是:
- 新输入的内容:每次新提出的问题、修改的描述
- 动态生成的上下文:比如git diff、文件搜索结果这些实时信息
输出token才是大头
2112万总消耗里,输出只有12万,占比不到0.6%。但这个数字其实不太对劲——输出token的价格通常是输入的3-5倍,所以虽然数量少,实际花费可能占总成本的10-20%。
12万输出token大概是什么概念?大概是生成了几千行代码,或者写了几篇技术文档。对于编程场景来说,这个输出量其实挺克制的。
这也说明了一个问题:用AI编程,大部分token花在了”理解上下文”上,真正”生成内容”的比例很小。如果能把上下文管理得更精准,成本还能再降。
实际算一笔账
假设MIMO的定价是:
- 输入(未命中):2元/百万token
- 输入(缓存命中):0.2元/百万token
- 输出:10元/百万token
那么:
- 未命中输入:33万 × 2/百万 = 0.66元
- 缓存命中输入:2068万 × 0.2/百万 = 4.14元
- 输出:12万 × 10/百万 = 1.2元
总花费大概6元左右。如果所有输入都按未命中算,光输入就要42元。缓存帮我省了90%的成本。
几个省钱的观察
用了这么久MIMO,总结出几个控制成本的经验:
1. 上下文越精简越好
不要一股脑把整个项目丢进去。很多人喜欢把所有相关文件都加到上下文里,觉得这样AI能理解得更全面。但实际上,精准描述问题比堆砌代码有效得多。
比如你要修一个bug,直接告诉MIMO:这个函数在什么情况下报错,错误信息是什么,期望的行为是什么。比把整个模块的代码都贴进去效果更好,token也更省。
2. 长对话及时开新会话
上下文越长,每轮输入的token越多,即使有缓存,输出成本也在涨。而且上下文太长,AI的注意力会被稀释,反而可能影响输出质量。
我的习惯是,一个功能开发完就开新会话。不要把所有的讨论都塞进同一个对话里。
3. 一次说清需求
反复修改同一段代码,每次都要重新生成,输出token翻倍增长。最省钱的方式是第一次就把需求描述清楚,包括边界条件、特殊情况、代码风格偏好。
如果发现AI的理解有偏差,及时纠正,而不是等它生成完整代码后再推倒重来。
4. 善用缓存机制
既然缓存命中率能到98%,说明这个机制确实有效。在实际使用中,可以有意识地利用这一点:
- 把常用的项目文件提前添加到上下文,后续对话自动命中缓存
- 保持系统提示词的一致性,不要频繁修改
- 对于需要反复参考的代码,放在固定位置而不是每次手动粘贴
真实的使用场景
这2100万token大概支撑了我一周左右的开发工作。具体场景包括:
- 新功能开发:从需求分析到代码实现
- Bug修复:定位问题、分析原因、生成修复代码
- 代码重构:优化代码结构、提取公共函数
- 技术调研:询问技术方案、对比不同实现
- 其他:文档编写、代码解释、配置调整等
平均下来,每天大概300万token,成本不到1元。对于一个程序员来说,这个投入产出比其实挺划算的。
对AI编程工具的思考
用了一段时间MIMO之后,最大的感受是:AI编程工具的计费逻辑跟传统软件不一样。
传统软件按功能收费,用多少功能付多少钱。AI工具按信息量收费,输入多少内容、生成多少内容,直接决定成本。这意味着,使用习惯对成本的影响比传统软件大得多。
一个会用AI工具的程序员,可能只需要花费很少的token就能完成高质量的工作。而一个不怎么会用的人,可能花了很多token但效果一般。
关键不是省token,而是让每个token都产生价值。该用的时候用,不该用的时候不要硬用。AI工具是帮手,不是万能药。
2100万token听着多,但换来了几十次完整的需求开发周期。如果按人工时薪算,这笔账其实很划算。毕竟,一个程序员一天的工资,够买好几千万token了。
关于MIMO V2.5 Pro
小米的MIMO模型是小米AI团队推出的大语言模型,主打推理能力。V2.5 Pro版本在代码生成、逻辑推理方面表现不错,尤其是中文理解能力,毕竟国产模型。
几个特点:
- 推理能力不错,尤其是数学和代码场景
- 中文理解能力强,对国内开发者友好
- API价格有竞争力,缓存机制设计合理
- 支持function call和长上下文
对于国内开发者来说,MIMO是个不错的选择。不用担心网络问题,不用担心数据出境,价格也比国外模型便宜不少。
一些技术细节
对于想深入了解缓存机制的人,这里补充一些技术细节:
缓存的粒度
缓存是以”块”为单位的,不是逐字符匹配。通常以完整的消息或文件内容为单位进行缓存。这意味着,只要内容不变,无论之前缓存了多少,都能直接命中。
缓存的时效
缓存不是永久有效的。通常有几分钟到几小时的过期时间。如果长时间不使用某个上下文,缓存可能会失效。但只要持续使用,缓存会一直保持有效。
如何查看缓存情况
在MIMO的账单页面,可以看到详细的token消耗 breakdown,包括缓存命中、未命中、输出等各个分类。建议定期查看,了解自己的使用习惯和成本分布。
总的来说,MIMO的缓存机制设计得相当合理,对于编程这种高度重复的场景,确实能大幅降低成本。只要合理使用,AI编程工具的成本是可控的。
部分信息可能已经过时



