单位 2 / 11

代币和定价逻辑

收益:

  • 解释令牌、输入/输出令牌区别和令牌化的概念。
  • 可以根据代币数量和单价计算出一次请求的成本和每月的工作量
  • 可以比较模型选择和提示长度对成本的影响

如果不了解 LLM API 的经济性,您就无法大规模构建解决方案。演示运行一次;最主要的是能够预测每月拨打数千个电话时的账单金额。在本单元中,我们设置了货币方面的内容:什么是代币、为什么输入和输出的定价不同、如何计算请求的成本以及如何预算每月的工作负载。此信息允许您衡量后续单元中优化技术(缓存、模型选择、批量)的回报。

什么是代币?

Token是模型处理文本的最小单位。一个词并不总是一个象征;标记通常是单词的一部分。粗略地说,在英语中,1 个 token 约等于 4 个字符约 0.75 个单词。在土耳其语和代码中,比例有所不同:由于其后缀结构和字母表,土耳其语单词通常比英语单词被划分为更多的标记。因此,需要使用提供商的代币计数工具来测量代币数量,而不是通过肉眼猜测。

每个模型的标记化(将文本分割为标记的过程)可能有所不同。这有两个实际后果:(1)相同的文本在不同的模型中可能会产生不同数量的标记; (2) 对于 Claude 来说,使用其他提供商的标记器(例如 OpenAI 的 tiktoken 库)进行的预测将不准确 - 请使用您正在使用的模型的标记计数提示。

提示:“大约有多少代币?”不要盲目回答问题。通过令牌计数 API 传递代表性文本;预算决策以衡量为基础。

输入和输出令牌

发票由两项组成:

  • 输入令牌:您发送到模型的任何内容 - 系统提示、过去的游览、用户消息、文档(如果有)。这些都是一次性处理的。
  • 输出标记:模型产生的响应。对于每个输出标记,模型逐步执行计算。

对于大多数提供商来说,输出比输入贵几倍。原因很简单:一次性读取所有输入比逐个生成输出要便宜。了解这种不对称性可以解释为什么像“需要简洁答案”这样的优化如此有效。

样本价格(每 100 万个代币,美元)

下表仅供参考;价格可能会随着时间的推移而变化,请确认您自己的提供商的当前列表。

模型类

样本模型

输入(美元/百万)

产出(美元/百万)

典型用法

快速/便宜

俳句 4.5

1.00

5.00

分类、标签、简单总结

平衡的

十四行诗 5

3.00

15:00

通用、编码、代理工作

作品 4.8

5.00

25:00

复杂推理、远程任务

每个类别的输出是输入的5倍;而且,即使是强大模型的输入也是廉价模型输入的 5 倍。这两个轴(输入↔输出和模型类)构成了成本决策的框架。

如何计算成本?

公式很简单:

成本 = (输入代币 / 1,000,000) × 输入价格 + (输出代币 / 1,000,000) × 输出价格

示例帐户。 Sonnet 5 的请求:1,500 个输入标记,400 个输出标记。

输入 = 1,500 / 1,000,000 × 3.00 = $0.0045 输出 = 400 / 1,000,000 × 15.00 = $0.0060 总计 = $0.0105 (约 1 美分)

一个电话看起来很便宜。但乘以数量:每天 20,000 个呼叫 → 每天 210 美元,每月约 6,300 美元。这就是规模发挥作用的地方。

每月预算模板

要提取工作负载的每月成本,请使用以下模板:

1) 每个请求的平均输入代币:......2) 每个请求的平均输出代币:......3) 每天的请求数量:......4) 每月工作天数:......5) 每个请求的成本 = (1)/1M×input_price + (2)/1M×output_price6) 每月成本 = (5) × (3) × (4)

将此模式倒入电子表格中,并查看当您更改模型时总和如何体现模型选择(单元 5)和缓存(单元 6)决策。

使用可复制模板缩短提示

大部分成本来自不必要的长提示和浪费的输出。下面的模板可提供直接节省。

# 限制输出长度。最多回答 3 项。添加理由或介绍性句子。

# 仅返回请求的字段 仅返回以下 JSON,不添加任何其他文本:{"category": "...", "urgency": "low|medium|high"}

# 删除不必要的上下文仅删除以下文本中的日期和金额。不要重复整个文本。文本:"""{{text}}"""

# 总结长篇演讲(节省输入) 将这篇演讲总结为 5 项。我将在后续几轮中使用这个摘要而不是完整的过去。语音:“”“{{过去}}”“”

弱提示/强提示(就成本而言)

# 弱(发布输出,昂贵)分析此支持请求并给我写一份全面的评论。

# STRONG(限制输出、廉价且可预测)对此支持请求进行分类。只需返回以下 JSON:{"category":"invoice|technical|refund|other","urgency":"low|medium|high"} 不写描述。

弱版本可能产生 500 个输出令牌;强版~15。由于输出成本高昂,因此每次调用都会产生显着差异,并且会与数量相乘。

三个迷你箱

案例 1——长提示的隐性成本。当会计自动化对每张发票进行排序时,它添加了一本 40 页的“规则手册”作为每个请求的输入:每个请求约 12,000 个输入令牌。刚刚输入 Sonnet 5 12,000/1M×3 = 0.036 美元。每天 5,000 张账单 → 每天 180 美元。通过缓存规则手册(第 6 单元),输入成本下降了约 90%。

案例 2 — 缩小模型规模的回报。一个团队正在使用 Opus 4.8 进行简单的“正面/负面”情绪标记:300 个输入 + 10 个输出标记。作品成本 300/1M×5 + 10/1M×25 = 0.00175 美元。切换到俳句,300/1M×1 + 10/1M×5 = 0.00035 美元 — 便宜 5 倍,准确度的差异是不可估量的。每月 300 万次调用,差异为 5,250 美元 → 1,050 美元。

情况 3 — 释放输出。当营销团队制作产品描述时,它不会对输出设置任何限制;该模型有时会显示 1,500 个代币。当我添加“最多 60 个字”指令时,平均输出从 900 个令牌下降到 90 个令牌。由于印刷费用昂贵,每月的账单减少了三分之一,文本变得更有用。

常见错误

  • 通过眼睛猜测标记:您可能会出错,尤其是在土耳其语和代码中。措施。
  • 假设输入和输出相同: 输出通常要昂贵得多;大多数优化来自于缩短输出。
  • 不要被一次通话的廉价所迷惑:决定是根据数量做出的。 0.01 美元 × 百万 = 10,000 美元。
  • 使用其他提供商的标记器进行预测:给出不正确的结果;使用模型的标记计数工具。
  • 无限放大对话历史记录:每轮都添加到词条中;在长对话中总结。
  • 将“max_tokens”保持不必要的高:隐藏预算计划和被削减的风险;给出一个现实的价值。

更深入:上下文窗口和长输入成本

重要的是要了解“整个对话”中的价格如何叠加,而不仅仅是“每个请求”。模型可以处理的文本总量称为上下文窗口;输入和输出的总和必须适合该窗口。现代模型提供了非常大的窗口(数十万,甚至数百万个令牌),但这并不意味着您可以“无限地填充它”——您放入窗口的任何内容都将作为输入计费。

长对话中的陷阱是这样的:在每一轮新的对话中,你都会再次发送整个历史记录(单元 1 中的无状态)。在 20 轮对话中,第 20 个请求携带整个前 19 轮作为输入。因此,随着对话时间的延长,每个请求的成本会累积增长,而不是线性增长。与座席助理进行 50 轮对话所产生的投入成本是第一轮的数十倍。

有两种方法可以管理这个问题。第一个是回顾:将较旧的回合压缩到单个回顾块中,仅保留最后几轮原始数据。第二个是即时缓存(单元 6):以十分之一的价格读取固定上下文,而不是以全价重复处理它。它们共同显着减少了长时间、上下文密集型工作负载的费用。所以代币经济学是关于整个会话的设计,而不是单个请求。

综上所述

Token是处理文本的最小单位;输入和输出是分开定价的,输出通常要贵得多。成本是代币数量乘以单价,真正决定的是数量。缩短提示、限制产量、选择完成任务的最轻模型,是成倍降低成本的最直接杠杆。

应用任务

选择你自己的任务。 (1) 确定代表性提示的输入和估计输出标记的数量(如果可能,使用标记计数工具进行测量)。 (2) 计算三个模型类的每个请求的成本。 (3) 估算您每天的请求数量并得出三种模型的每月预算。 (4) 添加缩短输出的指令并记下预期的节省。

清单

  • [ ] 我可以解释令牌的概念,并且令牌化根据模型的不同而变化。
  • [ ] 我知道为什么输入和输出代币的定价不同。
  • [ ] 我可以用公式计算一个请求的成本。
  • [ ] 我可以使用模板为工作负载创建每月预算。
  • [ ] 我可以用一个例子来展示缩短输出和减少模型的好处。