令牌计费:成本代理原理 | AI生成和翻译
问题:当一些人声称按 token 收费类似于 IBM 按 MIPS 收费时,为什么 LLM 提供商要按 token 收费?
回答:
MIPS 类比是一种修辞手法,而非技术上的精确类比。它通常被用作一种批评——“按 token 收费就是新的 MIPS 收费”,意思是这是一种人为的、与真实成本脱钩的租金抽取单位。但两者在结构上存在根本差异,理解这一点能揭示 LLM 经济学的某些本质。
为什么 token 实际上是一个合理的成本代理
按 token 收费之所以行得通,是因为 token 是 Transformer 中的原子计算单位。处理一个请求的成本主要由两个阶段决定,两者在 token 数量上呈线性(甚至更差)关系:
预填充:处理 N_in 个提示 token → O(N_in²) 注意力计算,前馈网络每层 O(N_in) FLOPs
解码:生成 N_out 个 token → 每个输出 token 执行一次前向传播
对于密集模型,每个 token 的计算量大致为:
# 每个 token 的 FLOPs ≈ 2 * 参数量(前向传播,著名的 2N 规则)
flops_per_token = 2 * n_params
# 解码受内存带宽限制,而非 FLOP 限制:
# 每个输出 token 需要重新读取所有权重 + KV 缓存
因此,输出 token 的成本高于输入 token(这就是为什么所有提供商都将输出定价高于输入,通常为 3-5 倍)。输入 token 在预填充阶段可以批处理并并行化;输出 token 则是串行的且受带宽限制——每生成一个 token 都要从 HBM 中重新读取权重。Token 数量与 GPU 秒消耗量之间存在真实的物理相关性。这就是它与 MIPS 收费的关键区别。
为什么 MIPS 收费恰恰相反
IBM 大型机的 MIPS 收费将价格与成本脱钩。MIPS 评级是机器内置的容量等级,IBM 根据它来收取软件许可费(以及子容量定价)。同样的工作负载,你会因为 IBM 说机器更大而支付更多的 MIPS 费用——这是一种价格歧视和锁定用户的杠杆,而非使用量计量器。对 IBM 来说,多执行一条指令的边际成本几乎为零;MIPS 收费纯粹是对已安装容量的经济租金。
| MIPS(IBM) | Token(LLM) | |
|---|---|---|
| 计量对象 | 已安装机器容量等级 | 每个请求实际消耗的计算量 |
| 与边际成本的关联 | 弱/无——容量租金 | 强——与 GPU 秒大致呈线性 |
| 提供商的边际成本 | 多执行一条指令几乎为零 | 真实的 HBM 带宽 + FLOPs |
| 目的 | 锁定用户、价格歧视 | 成本传导(+利润) |
批评者的观点并非全无道理
这个类比并非完全错误,以下是人工智能原生视角下你可能关心的细微差别:
-
Token 在不同供应商之间并非固定单位。 不同的分词器对同一文本的分词结果不同。GPT 的 BPE、Llama 的分词器和 DeepSeek 的分词器对相同输入产生的 token 数量都不同。因此“按 token”并不是一种稳定的货币单位——它取决于供应商,这一点确实像 MIPS(你无法轻易进行比较)。
-
定价中利润占比高,而非成本。 对于 MoE 模型(DeepSeek v4),每个 token 只激活一小部分参数。DeepSeek v4 的活跃参数远低于总参数量,因此其每个 token 的真实边际成本远低于同等总参数量的密集模型——然而定价并不总是成比例地反映这一点。固定的每 token 价格掩盖了底层成本结构的变化。这就是租金重新出现的地方。
-
缓存打破了线性关系。 提示缓存(Anthropic/DeepSeek/OpenAI)对缓存的输入 token 按正常价格的约 10% 收费。这相当于承认 token 并不是真正的成本单位——真正的成本单位是未缓存的前向传播。缓存的 token 跳过了预填充计算,因此成本几乎为零,定价现在反映了这一点。一旦你进行优化,这个单位就会瓦解。
诚实的总结
按 token 收费是一种真正的用量计量方式,与 MIPS 不同——它能以真实保真度追踪 GPU 秒,尤其是对于输出 token 而言。但它继承了一个类似 MIPS 的缺陷:单位由供应商定义(取决于分词器),价格由利润和竞争决定,而非透明的成本。因此,“这就是 MIPS”的说法对了一半:相同的不透明性和锁定机制,完全不同的物理基础。
如果你想为自己的训练/推理经济学建立一个更清晰的成本模型,可以直接按 GPU 秒 定价——token 只是 GPU 秒的(有损)代理,而 GPU 秒才是你实际向 AMD 开发云支付费用的单位(MI300X 约 2 美元/小时)。