非工作时间成本曲线:为什么你的 AI 功能在周六和周二的开销不同
每个人都在看的成本仪表盘是一个周滚动平均值,而那个平均值正在对你说谎。并不是说数字本身是错误的——它是计费事件流的忠实算术平均值——而是它隐藏了底层的成本曲线形态。周五晚上到周一早上之间的 token 消耗方式,与周二上午 10 点到周四下午 4 点之间截然不同。周六凌晨 3 点活跃的群体与周二上午 11 点活跃的群体并非同一拨人,这些群体的单用户经济效益(per-user economics)差异巨大,但没人记录这一点,因为仪表盘通过平均值将其抹平了。
大多数团队第一次发现这一点,是在周末自动化脚本烧光预算的时候。一个 LangChain 智能体在周五晚上陷入了无限对话循环,运行了大半周才被人发现,导致产生了一张五位数的账单,周一早上不得不向财务部门解释。事后回顾将其视为一次性事件——糟糕的重试逻辑、缺失的预算上限、没有触发值班报警。但是,那个隐藏了失控循环的仪表盘,同时也隐藏了同一现象的稳态版本:每周都会出现的非工作时间流量基准,其单位经济效益在结构上比工作时间基准更差,而周平均值让这一切变得不可见。
用户构成即曲线
当产品团队思考“周末流量”时,他们通常会想象同样的群在不同时间使用同样的产品。对于 AI 功能来说,这种思维模型是错误的。周六凌晨 3 点的用户构成并不是周二上午 11 点用户构成的时移版本——它是一个完全不同的群体。其构成通常包括:愿意花一小时与他们在专注工作时无法忍受的聊天机器人纠缠的失眠者;产品设计之初未考虑到的时区里的国际用户;针对产品 API 运行自研脚本的专业消费者(prosumer)高级用户;探测拒绝模式的越狱者(jailbreakers)和红队人员;为了躲避基础过滤器而伪装成人类流量的滥用机器人;以及因为操作者认为供应商有非高峰定价而计划在廉价计算窗口启动的自动化运行任务。
这些子群体中的每一个都有不同的 token 经济模式。失眠者发送带有低转化意图的长篇探索性查询。专业消费者每小时请求同一个端点上千次,并期望每次调用都能成功。越狱者迭代对抗性提示词(adversarial prompts),旨在驱动模型生成更长、更昂贵的补全内容。滥用机器人粘贴一个 50 KB 的文档,然后要求返回一个段落。没有任何一种行为类似于周二上午的中位数用户,后者的查询简短、意图具体,且会话在三轮对话后就会结束。当“单活跃用户成本”指标以日或周聚合计算时,这些群体被混合成一个单一的平均值,这美化了工作时间群体,并将非工作时间群体吸收进了噪声中。
混合后的数字不仅不精确——它在结构上具有误导 性,甚至会影响定价。基于混合平均值定价的固定费率方案是对工作时间用户的过度收费(他们隐形地补贴了非工作时间群体),而对非工作时间群体的收费不足(其边际成本超过了边际收益)。定价团队看到了稳定的毛利率,并得出单位经济效益健康的结论。成本团队看到了稳定的日常支出,并得出没有异常发生的结论。两者对总量分析都是正确的,但对构成总量的每一个群体分析都是错误的。
滚动平均值隐藏了什么
7 天或 30 天的滚动成本平均值有三个结构性盲点,对于 AI 功能来说,这些盲点的影响尤为显著。
第一个是 时间性的构成偏移 (temporal mix shift)。每用户小时成本在任何周末的凌晨都会急剧上升,因为合法用户的分母缩减速度比自动化和滥用流量的分子缩减速度更快。一个由 50 名用户(包括 10 个滥用机器人和 5 个失控脚本)组成的周末深夜时段,产生的单用户成本与 50,000 名用户(同样包含那 5 个失控脚本)的工作日高峰时段截然不同。将单用户成本与周内小时数对比绘图,会产生一个热力图,在工作时间边界和周末深夜会出现亮点——而周平均值将这些亮点转化为了一个暗淡的数字。
第二个是 成本斜率反转 (cost-slope inversion)。在工作时间内,成本大致与活跃用户数成比例增长。在非工作时间,成本大致与流逝的时间成比例增长,因为自动化和滥用流量是不睡觉的。一个针对“今日支出对比昨日支出”设置告警的团队,会错过周末失控的自动化脚本,因为每天的总额看起来都很正常——峰值分散在 48 小时内,而不是集中在 1 小时内。针对“每流逝小时成本”的斜率(按周内时间段细分)设置告警,才能在周一站会之前发现 LangChain 循环模式。
第三个是 缓存命中率崩溃 (cache-hit rate collapse)。AI 功能越来越依赖提示词缓存(prompt caching)来优化单位经济效益。缓存局部性(cache locality)取决于少量高流量提示词前缀每分钟被重复数千次。在非工作时间,请求量下降,缓存剔除了热门条目,导致第二天早上的唤醒流量为那些在工作时间本应被缓存的前缀支付了全额输入 token 价格。成本仪表盘报告了一整天的平均输入 token 成本;没人看到早上 6 点到 9 点时间段支付的价格是中位数费率的 4 倍,因为此时缓存是冷的。
为什么组织无法察觉
- https://www.netlify.com/blog/how-to-rate-limit-ai-features-and-avoid-surprise-costs/
- https://www.finops.org/wg/how-to-build-a-generative-ai-cost-and-usage-tracker/
- https://cloud.google.com/blog/topics/cost-management/announcing-ga-of-cost-anomaly-detection
- https://www.truefoundry.com/blog/rate-limiting-in-llm-gateway
- https://zuplo.com/learning-center/token-based-rate-limiting-ai-agents
- https://www.clarifai.com/blog/ai-cost-controls
- https://cordum.io/blog/agent-finops-token-cost-governance
- https://www.cloudzero.com/blog/inference-cost/
- https://www.moesif.com/blog/technical/api-development/The-Ultimate-Guide-to-AI-Cost-Analysis/
