如何分析你的 LLM 用量文件
每一笔 LLM 账单背后都有一份文件:服务商会交给你的用量导出,逐行、逐模型、逐日。大多数人从不打开它,因为原始导出是一堵 token 计数之墙,没有总数、没有结论。本指南说明从哪里获取这份文件、它里面到底有什么,以及一旦能清晰地看到它,值得寻找的三种模式——使用本站的 LLM usage analyzer(LLM 用量分析器),它只在你的浏览器里读取文件,别无他处。
最后更新:
从哪里导出用量
从服务商保存数字的地方开始。OpenAI 在两个地方提供用量:服务商控制台的用量页,汇总当前计费周期内按日和按模型的活动;以及用量 API,以 JSON 返回相同数据——时间桶,每个桶含按模型汇总的结果,包含上下文 token、生成 token 和请求数。这个 JSON 形式值得了解,因为它是可以归档、对比并无需截图就能喂给工具的那一种。今天就值得养成的习惯:每月拉一次 API 响应并保存。服务商在控制台只保留有限窗口的历史;你自己的归档是你实际花费的唯一完整记录,逐月如此。
Anthropic 以同样的精神通过其控制台和报告 API 提供用量与成本报告:按日和模型汇总,可导出为表格数据。其他服务商精致程度不同,种类却相同——从用量或账单页下载 CSV,或一个返回带日期行数据的 API 端点。通用形式就是任何分析所需要的:一列日期、一列模型名称、输入 token、输出 token,运气好时还有缓存 token、请求数和成本列。如果服务商提供多种导出,选择它提供的最细粒度那一种——按日的按模型数据胜过按月的按项目数据,因为你自己做的汇总总能撤销,服务商做的汇总却不能。
文件里到底有什么
一行用量是一个小而密集的主张:在这一天,这个模型服务了这么多请求,读了这么多输入 token——其中这么多是缓存的——写了这么多输出 token。读一份带这些列的文件,你几乎可以重建工作负载形状的一切:提示词是长是短、回答是否啰嗦、流量稳定还是突发、哪些模型在做真正的工作。文件刻意不包含的内容同样重要:没有提示词文本、没有补全内容、没有用户内容。它是计数和名称,这也是为什么它可以比它所描述的流量更自由地处理——尽管正如最后一节所说,“更自由”不等于“任何地方都可以”。
有两列在分析前值得怀疑。第一列是成本:有些导出带的是计费成本,有些带的是标价估算,有些根本没有,而文件很少标明是哪一种。把成本列当作服务商的数字,但在信任总数之前先核对日期范围和被跳过或部分缺失的行。第二列是缓存 token 列,服务商至少有五种不同命名方式,有时还把它折叠进输入计数而不单独列出。如果输入 token 对该模型来说便宜或昂贵得不合常理,表头是第一个要看的地方——这正是分析器会展示其从表头检测到的列映射、并让你在计算任何东西之前纠正它的原因。
要找什么:三种模式
第一,缓存 token 比例。用缓存输入除以总输入,按模型计算。任何有重复结构的工作负载——系统提示词、文档前缀、固定的工具模式——都应该缓存其输入的很大份额,因为那个前缀在每次调用时都相同。在这样的工作负载上比例接近零,意味着缓存被关闭、缓存在调用之间过期,或前缀中的某样东西每次请求都在变——时间戳、随机 id、被重新排序的字段——并悄悄破坏了它。修复这一个数字通常比重新谈判模型更值钱,因为在每个主要服务商那里,缓存输入都按全额费率的一小部分计费。
第二,模型组合。按成本而不是请求数对模型排序:当昂贵层级的成本份额大致与其真正需要的工作份额相符时,组合是健康的。要警惕的漂移是:旗舰模型的成本份额逐月上升而其请求份额持平——更长的提示词、更长的输出,或新流量被一个没人记得设置过的默认值悄悄路由到大模型。第三,集中与尖峰:一个 API 密钥、项目或模型主导文件,既是成本事实也是爆炸半径事实;而按日的尖峰——尤其在周末或夜间、没人工作时——是重试循环、失控智能体或被滥用的泄漏密钥的标志。按日表格的存在就是为了让那个尖峰不可能被错过。
为不带成本的文件定价
许多导出根本没有成本列,这时分析必须自己为文件定价。分析器以透明的方式做这件事:每行都用本站 LLM pricing(LLM 价格)表定价——cost calculator(成本计算器)也使用的已核对标价——用服务商自己的公式:未缓存输入按输入费率,缓存输入按缓存费率(如有),输出按输出费率。模型名称严格匹配:精确匹配、去掉服务商前缀后匹配,或剥离末尾日期或 “latest” 后缀后匹配。这种严格正是关键所在。更宽松的模糊匹配最终会把微调模型当作其基础模型定价,或把预览当作正式版定价,总数会获得它未曾挣得的置信度。
这正是为什么匹配不到任何条目的模型会被列出,而不是猜测。它们的 token 和请求仍然计数——你能看到其流量并判断缺口是否重要——但成本留空,结果会标明其金额来自哪里:文件本身、由表计算、混合或无。读任何计算出的总数时都要以这个标准衡量它:它是标价算术,不知道你的折扣、额度、批处理费率或分层长上下文定价,所以不会与账单精确到分地对上。它可靠做到的是排序:哪些模型、哪些日期、哪些模式主导了账单。在成本工作中,排序通常是与决策相关的部分。
隐私,以及一套每月例行程序
用量文件不含提示词文本,但它在运营上仍然敏感:它点名你运行的每个模型、你按日的流量、你的增长曲线和你的支出——一套系统如何构建的、具竞争与安全相关性的指纹。这正是 LLM usage analyzer(LLM 用量分析器)在你的浏览器本地解析文件、绝不上传的原因。这条通用规则远不止适用于这一个工具:一份文件越是能概括你的基础设施,把它粘贴到托管聊天或未知转换器里就越是坏主意,哪怕文件字面上不含秘密。聚合数据也会泄漏,只是更安静。
最后给一套小到真的能发生的例行程序。每月一次:导出文件,分析它,写下四个数字——总成本及其来源、头部模型的成本份额、缓存 token 比例、最大的单个日期。与上个月的四个数字比较。这五分钟的差异对比能在漂移、尖峰和失效的缓存还便宜时抓住它们,一年下来能建立起任何服务商控制台都不会为你保留的归档。账单只会让只读账单的人吃惊。它们很少让读用量的人吃惊。
常见问题
该用哪种导出——控制台 CSV 还是用量 API JSON?
都可以;它们描述同一活动。控制台 CSV 获取最快,足够一次性查看。API JSON 是更好的习惯:它完整、可脚本化、可归档,并以稳定形式携带按模型的 token 字段(上下文、生成、如有的缓存以及请求数)。如果两者不一致,先检查日期范围和时区——控制台视图通常以本地时间显示,而 API 的桶是 UTC,这会移动一天的边界,把支出在相邻日期间挪动,总数却不变。
我的缓存 token 比例接近零。什么会破坏提示缓存?
通常的原因按顺序是:流量所走路线上未启用缓存或不提供缓存;调用间隔超过缓存寿命,每个条目在复用前过期;或提示前缀在调用之间并非真的相同——注入的时间戳、每请求 id、被打乱的工具列表或用户专属的第一条消息,都会改变前缀并使缓存未命中。在开头逐字节比较两个原始请求:最先不同的地方就是缓存停止匹配的地方。修复方法是把所有可变内容移到稳定、共享的前缀之后。
为什么工具不为我的一些模型估算价格?
因为在其表中对那个名称不存在诚实的价格。微调继承基础模型的引擎,却不一定继承其价格,预览的计费常与正式版不同,第三方部署遵循自己的合同——猜测其中任何一个都会让总数看起来完整,却让它变错。工具改为列出那些模型及其流量,让你能从合同或账单中自行定价那部分,并把每个数字的来源保持清晰地加入计算总数。