账本里的重试与失败记录汇总成一摞成本硬币
8

10 月

国产模型怎么比成本?把重试、缓存和失败任务记进同一本账

便宜的单价不一定带来便宜的任务。一次提取若调用三次才通过,账单必须包含三次尝试;一次回答若根本不能交付,也不能从费用表中删掉。比较国产模型时,先统一“每个验收通过任务的成本”,再讨论输入和输出单价。本文不列实时价目表,所有算术示例都使用虚构的记账单位。

多次尝试与缓存命中汇总为每个合格任务成本的示意图
每个合格任务的成本 = 全部尝试费用 ÷ 通过任务数(示意)

为什么不能只比较每百万 token 单价?

任务成本受输入长度、输出长度、重试、缓存以及外部工具调用影响。把官方报价直接乘以用户问题字数,会漏掉系统提示、历史消息和工具结果。字符也不等于 token,不同模型应分别读取自己的 usage,不能用一家 tokenizer 推算全部候选。

国产模型场景选型文章负责界定任务场景;成本表则应固定同一批任务和验收规则后再比较。它不是通用排行榜,也不应用合成短问题预测长文生产费用。

如何为每次尝试建立可追溯账目?

用 task_id 标识业务任务,attempt_id 标识一次调用。原始 usage 与归一化字段同时保存,明确币种、计费单位、模型实际标识、价格来源和生效日期。失败返回没有 usage 时,费用标为未知并与供应商账单核对,不擅自按零处理。下面是自定义日志格式,不是任何厂商 API 响应。

{
  "task_id":"extract-001",
  "attempt_id":"extract-001-1",
  "model_id":"candidate-a",
  "uncached_input_tokens":800,
  "cached_input_tokens":200,
  "output_tokens":120,
  "cost_status":"estimated",
  "accepted":false,
  "failure_reason":"schema_mismatch"
}

如需加入供应商请求 ID,把它放到受限日志,不连同密钥或客户原文公开。费用能对账,比日志看起来字段齐全更重要。

缓存命中应该如何计算?

以 DeepSeek 缓存文档为例,usage 区分命中与未命中的输入 token,缓存是尽力而为,不能保证每次命中。归一化时先确认这些字段与输入总量的包含关系,避免把命中部分再收费一次。

若供应商确实采用分项 token 计费,可用 C = (U×Pu + H×Ph + O×Po) / 1000000:U、H、O 分别为未命中输入、命中输入和输出 token,P 为对应的每百万单价。这是核算表达式,不替代供应商的账单规则;阶梯价格、折扣、思考 token、工具费和税费要另外按实际合同处理。

怎样算出每个合格任务的成本?

下面的纯 Python 例子不请求模型。把它作为 ledger_demo.py 运行即可复核除法;4 个任务总成本 12 个假设单位,其中 3 个通过,合格任务平均成本是 4,而非全部任务平均的 3。这是构造数据的算术结果,不是人民币或美元报价。

costs = [2, 3, 6, 1]  # hypothetical accounting units
accepted = [True, True, False, True]
total = sum(costs)
passed = sum(accepted)
print({
    "total_units": total,
    "accepted_tasks": passed,
    "units_per_accepted_task": total / passed if passed else None
})

这里的每项成本已合并该任务全部尝试。生产统计还要单独报告未知费用任务数;存在未知值时,这个平均值只能标为暂估。站内AI 成本与配给讨论是背景阅读,不能作为今天的报价来源。

如何设计一次公平的小规模比较?

先固定输入集、验收人、最长等待时间、重试上限和工具权限。冷热缓存分开记录;候选 A 全部预热、候选 B 全部冷启动的结果没有可比性。每个候选报告通过率、端到端延迟、合格任务成本和失败类型,预算上限到达就停止,并写明样本不足。

同一个任务不要因某模型失败而换成更简单题目。对复核有争议的输出先盲审,再揭示模型名。流程控制可结合生产级 Agent 工程原则理解,但预算决策必须依据本次实际日志。

哪些降本动作应该暂缓?

不要为了缓存把不同客户的敏感上下文拼到一起,也不要为了压缩 token 删除业务必须保留的证据。先尝试缩短冗余模板、限制无用输出、减少不必要工具轮次,再重新跑质量集。省下的 token 若换来更多人工返工,不应只汇报模型账单下降。

保留原始响应、归一化逻辑版本和当日价格快照,月末对照发票或控制台用量。本文没有执行收费请求、实时价格采集或跨模型性能测试;复用这套方法时,价格必须由操作者重新读取官方页面,不能把示例数值填入预算申请。

FAQ

问:本文的成本单位是人民币吗? 答:不是,只用于演示除法,不对应真实报价。

问:失败请求能按零费用处理吗? 答:不能,缺失 usage 时应标为未知并对账。

问:缓存命中意味着回答可以复用吗? 答:不意味着,前缀缓存与业务答案缓存是不同机制。

参考来源

核查日期:2026-10-06。公式、账本和对照实验设计为本文提出的方法,不是供应商报价或独立测试结果。

{"@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [{"@type": "Question", "name": "本文的成本单位是人民币吗?", "acceptedAnswer": {"@type": "Answer", "text": "不是,只用于演示除法,不对应真实报价。"}}, {"@type": "Question", "name": "失败请求能按零费用处理吗?", "acceptedAnswer": {"@type": "Answer", "text": "不能,缺失 usage 时应标为未知并对账。"}}, {"@type": "Question", "name": "缓存命中意味着回答可以复用吗?", "acceptedAnswer": {"@type": "Answer", "text": "不意味着,前缀缓存与业务答案缓存是不同机制。"}}]}

RELATED

Posts