EN FR ES PT DE AR 中文

算不出AI单任务成本,你的定价就是猜的

企业还在按人头给AI预算建模,但AI其实是一台按用量计费的公用事业,而买方几乎没人真正读懂过这台电表。

大多数在AI上大规模投入的企业,依然算不出自己的AI单任务成本。它们清楚公司其他每一款工具的按人头报价,也看得懂供应商官网上的标价。但介于这两个数字之间——完成一件具体工作实际花了多少钱——通常只有一句“不清楚”,和一张没人拆解得开的月度账单。

这不是财务部门的细枝末节,而是一个范畴性的误判。企业软件按人头收费卖了三十年,采购部门的本能就是把AI也按人头建模:预测表上一行,乘以员工人数就完事。但你买到的其实是一台按用量计费的公用事业设备。电表计的是token数量,而一项任务消耗多少token,跟登录系统的人数几乎没有关系。

电表计的是卖方定义的东西

token不是一个词,也不是一个音节,更不是人类语言里能直接识别的单位。它是一种压缩算法拆分出的碎片,这套算法后来被挪用做了词表。如今支撑整个行业计费体系的这项技术,由爱丁堡大学的Rico Sennrich、Barry Haddow和Alexandra Birch改良自字节对编码(BPE)压缩方法,并在Philip Gage 1994年的压缩算法研究基础上发展而来。选择它,是因为它能优雅地处理生僻词,没有人是为了给账目定单位才选中它的。但它最终还是成了单位。

买方签的合同,计价单位是一次训练过程产生的副产品;卖方公布的价格,则挂在一张随时可能变动的实时公开定价页面上。价目表看得见,用量却从来看不见。你既控制不了自己的提示词会被切成多少个token,也控制不了系统决定回复多少个token,而账单正是这两者相乘的结果。

AI单任务成本怎么算?

从机制说起:模型在两次请求之间没有记忆。所谓“对话的连续性”,其实是把整段对话历史,加上隐藏的系统指令和工具定义,在每一轮都重新发送一遍造出来的幻觉。官方文档明确写明,上一轮的输出会成为下一轮的输入

算法本身不用跑基准测试就能推出来。如果每一轮大约新增k个token,而每一轮都要把之前累积的全部内容重新处理一遍,那么n轮对话下来,处理过的token总量就是k(1+2+…+n),也就是kn(n+1)/2,随对话轮数呈平方增长。举例来说,一场进行了十轮的会话,如果每轮新增约1,000个token,按线性直觉你以为会被计费约10,000个输入token,但实际账单上大约是55,000个,因为第十轮要把前九轮的内容全部再算一遍。聊天助手答一次就结束,智能体(agent)则会循环执行,而循环本身就是那条成本曲线。

再加上固定开销。系统指令和工具的接口定义每次调用都要搭车同行,短任务因此背负着糟糕的开销比,你可能大部分算力都花在重新描述“有哪些工具可用”,而不是真正干活。然后再除以成功率。举例来说,如果十次尝试里有七次能拿到可用结果,你真实的单任务成本就要用总支出除以0.7,比表面数字高出约43%。

电表按尝试次数计费,而价值只在成功时才产生。任何AI商业论证如果默默假设这两个数字相等,那它高估的就是自己的利润率。

为什么同样的任务,在有些语言里更贵?

因为这套词表是“学”出来的,训练数据以英文网络文本为主,它对见得多的内容压缩得极好,对见得少的内容压缩得很差。Petrov等人在NeurIPS发表的独立研究,对比多语言平行文本后发现,不同语言在分词后的长度上存在显著差异,差异幅度取决于具体的分词器和语言对。

这带来的是一种没人主动设计过的利润结构。同样标准的一次客户服务对话,在某些市场里企业要为其付出系统性更高的成本,而这种差异在任何按“每用户成本”呈现的仪表盘上都看不出来。做多语言产品的公司,存在一个从未被纳入定价模型的分市场单位经济问题;代码密集型的工作负载,则从另一个方向继承了同样的不对称性。

一道会静默失灵的天花板

上下文窗口是一道硬性上限,一旦超出,总有内容会被丢掉。这种症状,长会话进行到后半段答案质量下滑,看起来和“不稳定”一模一样,于是团队的反应往往是换更大的模型、换个供应商,而实际问题只是容量规划错了。要诊断清楚这一点,前提是知道自己买的东西官方公布的上限是多少,而“官方公布”指的是供应商本人注明日期的正式声明,就像OpenAI2020年5月发布的论文,将GPT-3定义为一个拥有1,750亿参数的自回归语言模型那样。任何转手于聚合博客的数字,都只是传闻。这类问题最好在项目启动前就想清楚,而不是留到事后复盘时才发现。

折扣结束后,什么会崩溃

一个显而易见的反驳:token价格一直在跌,何必较这个真?因为单价和用量正朝相反方向移动。每token价格在下降,但智能体式的用法正把单任务的消耗量往上推一个数量级,而且后者目前跑赢了前者。价格下降不是“不必算账”的理由,恰恰是“必须算清楚”的理由。这条曲线告诉你,哪些工作负载会在哪个价位从“不划算”变成“划算”,也告诉你哪些工作负载原本能跑通,只是因为有别人在替你补贴差价。

今天的价格到底是高于还是低于供应商的服务成本,买方从外部根本无从验证。但这套结构本身足够清晰:卖方定义单位、设定价格、随时修改这两者,买方却没有独立手段核查自己被计了多少量。作为一项经营性支出,能接受这种程度的信息不对称,并不正常。理性的应对不是抱怨,而是工程化:按工作负载测量每个成功任务消耗的token数,记录失败率,有意识地限制会话长度,设计不会拖着整段历史往前爬的智能体循环。这些是智能体系统该怎么搭建的架构决策,应该出现在技术战略里,而不是财务复盘会上。

一家能报出“每坐席”“每次调用”或“每月”AI成本的公司,确实测量了什么东西。只是测量的不是它真正在购买的东西。

常见问题

除了每次API调用的token数,我还应该测量什么?

应该测量每个完成任务消耗的token数,按工作负载拆分,并附上失败率。按调用计的数字,既掩盖了多轮会话里被反复重新提交的历史,也掩盖了那些没产出任何可用结果、却照样计费的尝试,而超支往往正藏在这两个地方。

缓存或精简提示词,能不能解决智能体长会话成本呈超线性增长的问题?

能降低系数,但改变不了曲线的形状。精简系统指令或复用缓存上下文,能压低单轮成本,但只要累积的历史每一轮都被重新提交,处理过的token总量依然会随对话轮数呈平方增长。真正改变曲线,需要限制会话长度、对历史做摘要压缩。

用户数没有增加,为什么我们的AI支出还在上涨?

因为支出跟着“做了多少活”走,而不是跟着“坐了多少人”走。一个用户跑更长、更“智能体化”、调用更多工具的任务,消耗的算力可能远超好几个只问一次性问题的用户。一旦智能体取代了单轮聊天,按人头做的预测模型几乎立刻就会失真。

相关阅读

本文由 Abyshire 专有编辑系统的 AI 编辑角色撰写,并经我们的团队审核。