简介:本教程面向开发者与技术负责人,讲解如何基于真实调用日志(Token 消耗、模型、场景、地域、语言等元数据)搭建一套可复现的 AI 使用情况分析流程,覆盖数据采集、指标定义、分流验证、场景拆解、留存评估、价格弹性测算与优化建议,帮助读者用自有数据判断开源与闭源选型、推理模型占比与区域分布。
本教程要完成的任务是:围绕“AI 调用量实证分析”这一通用技术主题,搭建一套可复现的数据分析流程,把分散在网关、代理层或应用日志中的模型调用记录,加工成可用于技术选型与容量规划的指标体系。
读完本教程,读者应当能够回答以下几类问题:
适合阅读人群:开发者、平台运维人员、技术负责人、企业架构师,以及需要为团队做模型选型与成本决策的技术管理者。
需要说明的是,本教程讨论的是通用分析方法,不依赖任何特定厂商的专有接口、参数或计费规则;文中涉及的产品类别均以通用类目表述,例如对象存储、日志服务、监控告警、数据仓库等。
以下场景均适合采用本教程的方法:
在开始之前,需要具备以下基础条件:
做什么:把调用日志规范为统一结构,并接入集中存储。
为什么做:不同来源的日志字段命名各异,直接分析会出现“同一模型多种写法”“Token 字段缺失”等问题。统一结构是后续所有指标计算的前提。
怎么做:定义一张最小字段表,例如:
request_id 请求唯一标识ts 请求时间戳model_id 模型标识(统一命名,避免别名)provider_type 提供方类型(开源部署 / 闭源接口)is_reasoning 是否推理型(布尔)input_tokens 输入 Token 数output_tokens 输出 Token 数status 状态码app_id 调用方标识(脱敏)scene 场景标签(coding / roleplay / general 等)region 区域lang 交互语言
采集链路建议为:应用埋点或网关代理 → 消息队列缓冲 → 写入对象存储作为原始层 → 定时任务清洗后写入数据仓库明细表。消息队列的作用是削峰,避免高峰期写日志拖慢主链路。
注意:model_id 必须维护一张映射表,把同一模型的不同别名归一;is_reasoning 这类派生字段建议在清洗阶段计算,而不是在查询时临时判断。
做什么:按周期计算总 Token、各模型 Token 占比、开源与闭源流量占比。
为什么做:Token 消耗比请求数更能反映真实算力占用,一个长上下文请求可能等价于上百个短请求,只看请求数会严重低估重负载场景。
怎么做:以周为粒度聚合,示意 SQL:
SELECTweek,model_id,SUM(input_tokens + output_tokens) AS total_tokens,SUM(input_tokens + output_tokens) * 1.0/ SUM(SUM(input_tokens + output_tokens)) OVER (PARTITION BY week) AS token_shareFROM dwd_model_callsWHERE status = 200GROUP BY week, model_id;
在此基础上派生两个关键比例:开源模型流量占比、推理型模型流量占比。建议同时输出“按请求数占比”与“按 Token 占比”两条曲线,两者背离时往往说明某类模型在处理长文本。
注意:失败请求是否计入需提前约定。通常建议单独统计失败率,不混入流量占比,否则会扭曲模型真实使用强度。
做什么:在时间序列上标注模型首次出现的时间点,观察其后若干周的流量变化。
为什么做:新模型发布常带来短期波峰,但波峰是否转化为持续使用,才是判断其是否进入生产环境的关键。短期冲高后快速回落,通常意味着只是尝鲜测试。
怎么做:对每个 model_id 计算首次出现周、峰值周、峰值后第 2/4/8 周的留存流量,形成“发布—波峰—沉淀”三段式视图。可定义沉淀率:
沉淀率 = 发布后第 4 周该模型 Token 量 / 峰值周 Token 量
沉淀率高的模型说明被真实业务接纳;沉淀率低则需回到场景标签排查是否为一次性评测流量。
做什么:把流量按场景标签拆分,重点观察编程类与角色扮演/创作类两条主线。
为什么做:不同场景对模型能力的要求差异极大。编程场景看重代码正确性与长上下文;创作类场景看重风格一致性与多轮对话稳定性。混在一起看总量,会掩盖结构性差异。
怎么做:在明细表中维护场景标签映射规则,例如按调用来源、提示词模板 ID 或应用 ID 归类。输出场景 × 模型 的交叉矩阵,观察:
注意:场景标签的准确性直接决定结论质量,建议抽样人工复核 100~200 条记录,校准映射规则。
做什么:统计不同区域、不同语言的调用量与付费调用量占比。
为什么做:区域与语言分布决定本地化投入优先级,也影响模型的多语言能力评估。付费占比比总调用量更能反映商业价值。
怎么做:按区域与语言两个维度分别聚合,输出“调用量占比”与“付费调用占比”两张表,并计算两者的差值。差值为正的区域说明付费转化率高于平均水平,值得优先投入。
注意:语言识别可能来自客户端上报或文本检测,两者准确率不同,需在报告中注明口径。
做什么:验证一个假设:若新模型在发布时就能精准解决某类痛点,用户留存会显著更高;否则流失很快。
为什么做:留存是比单次流量更强的信号。它能把“营销噪音”和“真实依赖”区分开。
怎么做:以调用方(app_id)为分析单元,定义“新模型首次使用后 4 周内仍持续调用该模型”为留存。对比不同模型的首周留存率与 4 周留存率。对于留存率异常高的模型,回溯其首批用户的场景标签,确认是否命中了特定痛点(例如某类代码补全、某类长文改写)。
注意:留存分析要排除配额限制、故障等外部因素造成的被动流失,建议过滤掉错误率骤升的时段。
做什么:评估价格调整对调用量的影响。
为什么做:整体降价往往只带来很小的增量,但在某些高效率模型上,低价可能引发使用量的报复性增长。这种差异对定价与容量规划都很关键。
怎么做:选取发生过价格调整的模型,对比调整前后若干周的调用量变化,计算弹性系数:
弹性 = 调用量变化百分比 / 价格变化百分比
按模型分组呈现弹性分布,重点标记弹性显著为负且绝对值大的模型——这类模型在降价后使用量激增,需要提前准备容量。
注意:价格调整常与其他事件(新版本发布、促销)同期发生,需用对照组或分段回归剥离混杂因素。
app_id 等标识需哈希或替换,语言与区域字段若属敏感信息需按合规要求聚合到较粗粒度。完成上述步骤后,用以下方式验证分析结果是否可信:
request_id,回溯原始日志,确认字段映射正确。本教程从统一日志字段出发,依次完成了核心指标计算、波峰识别、场景拆解、区域语言分析、留存验证与价格弹性测算,并给出了验证方法与排查思路。核心结论可以归纳为一条方法论:用真实 Token 消耗而非宣称数据来判断模型影响力。在此基础上,开源与闭源的流量结构、推理型模型的渗透率、编程与创作两大场景的分化、区域与语言分布,都会从模糊印象变成可量化、可复盘的指标。后续可继续关注的方向包括:把分析结果接入日常监控看板、将沉淀率纳入模型上线评审流程,以及建立口径变更的版本管理机制。