01 · 介绍
什么是Token
语言模型看不到字母或单词,它看到的是词元(token):一小段一小段的文本。"Hello" 是一个词元;"unbelievable" 可能是三个;一句中文通常每个字或每两个字对应一个词元。
词元之所以重要,主要有三个原因:
- 价格。 每次 API 调用都按词元计费,发送的内容(输入)和模型生成的内容(输出)分开计价。输出通常比输入贵好几倍。
- 上限。 模型一次只能容纳有限数量的词元,即它的上下文窗口。长文档必须能放进这个窗口里。
- 速度。 输出的词元越多,等待时间越长。
一个实用的经验法则:1,000 个英文单词约等于 1,300 个词元;1,000 个中文字符约等于 1,000 到 2,000 个词元,具体取决于模型。
02 · 适合什么场景
Token何时与你相关
- 为每天运行的 Agent 做预算。 运行次数 × token 数 × 单价 = 每月账单。
- 装下长文档。 一份 200 页的 PDF 放不进大多数上下文窗口;你需要先做摘要或拆分。
- 选择模型。 更便宜、更小的模型每 token 的成本只是一小部分,而且在分类和摘要任务上通常已经足够好。
- 解释意外的账单。 十次中有九次,原因是某个 prompt 在每次调用时都粘贴了整份文档。
03 · 配置
在花费前计算Token数量
- 拿一份典型的输入(一封邮件、一个页面或一条记录),粘贴到分词器页面中。记下token数量。
- 估算你预期的输出:一段两行的摘要约60个token;一整页内容约600个token。
- 查询该模型每百万个token的输入和输出价格。
- 相乘:(输入 + 输出token数)× 每天运行次数 × 30天。将得到的数字与任务的价值进行比较。
API每次调用的返回结果都会报告精确的 input_tokens 和 output_tokens。请记录这些数值。
04 · 使用说明
减少Token消耗
- 少发送。 在模型读取邮件前,去掉签名、HTML 和引用回复。
- 少要求输出。 "用一句话回答"可以降低输出成本和阅读时间。
- 按难度分流。 让小模型先判断这条内容是否相关?,只把相关的条目发送给强模型。
- 缓存重复内容。 每次调用都发送的相同指令,可以由服务商缓存并享受折扣;同一份文档被总结两次,则是白白浪费的钱。
- 留意上下文不断增长。 在长对话中,每一轮都会重新发送全部历史记录。话题变化时,请开启新的对话。
05 · 注意事项
常见陷阱
- 不同模型的价格相差 10 到 50 倍。请以价格页面为准,不要凭记忆判断。
- “思考”或推理 token 会按输出计费,即使你看不到它们。
- 图片、PDF 和音频同样会转换为 token 计费,一页 PDF 的成本可能高于一页纯文本。
- 代码中设置的硬性 token 上限(
max_tokens)如果太小,会导致回答在句子中间被截断。
06 · 资源
接下来去哪里
每家提供商都会发布价格页面和分词器。在设计工作流时,把两者都保持打开。
我的笔记
登录后可以在这本手册上记私人笔记。登录
