30秒快速回答: Token 是大语言模型(LLM)读写文本的”最小单位”,类似单词或汉字的碎片。英文中约 4 个字符=1 个 Token,中文里 1 个汉字通常≈1~2 个 Token。模型不是按”字数”而是按 Token 计费:你发的提示词(输入 Token)+ 它生成的回复(输出 Token)加起来算钱。上下文窗口上限、对话记忆长度也都用 Token 衡量。
一、定义:Token 到底是什么?
Token 是模型分词(Tokenization)后的基本单元。模型不会直接读”字”,而是把文本切成一串 Token 再处理。
- 英文:
"ChatGPT is great"→ 可能切成Chat / GPT / is / great(4 个 Token) - 中文:
"你好世界"→ 可能切成你 / 好 / 世 / 界(4 个 Token,或按子词更碎)
不同模型用不同分词器(如 GPT 的 BPE、Llama 的 SentencePiece),切法不同,Token 数也不同。
二、原理:为什么用 Token 而不是字数?
1. 模型内部只认数字
神经网络处理的是向量,文本必须先映射成 Token ID(每个 Token 对应一个编号),再转成向量。Token 是模型”思考”的语言。
2. 计费与算力挂钩
模型每生成一个 Token 都要做一次前向计算,成本与 Token 数成正比。所以按 Token 收费最公平,也最贴近真实算力消耗。
3. 上下文以 Token 为界
模型”能记住”的最大长度 = 上下文窗口(如 128K Token)。超出部分会被截断或遗忘。
4. 输入/输出分别计价
| 类型 | 含义 | 通常价格 |
|---|---|---|
| 输入 Token | 你发的提示词 | 较便宜 |
| 输出 Token | 模型生成的回复 | 较贵(约 3~4 倍) |
三、实操:怎么算 Token、怎么省钱?
步骤 1:估算你的 Token 数
经验公式(中文):
Token 数 ≈ 中文字数 × 1.5 + 英文字符数 ÷ 4
精确计算可用官方分词器(如 OpenAI 的 tiktoken 库)。
步骤 2:用 tiktoken 实测(Python)
import tiktoken
enc = tiktoken.encoding_for_model("gpt-4o")
text = "你好,世界!这是一段测试文本。"
print(len(enc.encode(text))) # 输出 Token 数
步骤 3:省钱技巧
- 精简 Prompt:去掉冗余废话,长文档先摘要
- 缓存上下文:OpenAI 支持
prompt caching,重复前缀打折 - 选对模型:简单任务用 mini 版,别用旗舰模型烧钱
- 控制输出长度:用
max_tokens限制回复上限 - 批量接口:离线任务用 Batch API,价格打 5 折
四、工具推荐表
| 工具 | 用途 | 价格 | 亮点 |
|---|---|---|---|
| tiktoken | OpenAI Token 计数 | 免费 | 官方精准 |
| TokenCounter | 在线估算 | 免费 | 无需安装 |
| OpenAI Pricing | 价格查询 | 免费 | 实时费率 |
| LangChain | 上下文管理 | 免费 | 自动截断 |
| Claude Tokenizer | Anthropic 计数 | 免费 | 适配 Claude |
五、FAQ 常见问题
Q1:中文和英文哪个更费 Token? 中文通常更费。同样意思,中文 Token 数往往多于英文,因为中文按子词切分较碎。
Q2:为什么输出比输入贵? 生成需要逐 Token 做完整推理计算,成本高于”只读”输入。
Q3:上下文窗口 128K 是字还是 Token? 是 Token。换算成中文约 8~10 万字,但含输入+输出总和。
Q4:超出窗口会怎样? 模型只保留最近的内容,更早的会被丢弃(除非用滑动窗口或摘要压缩)。
Q5:免费版有 Token 限制吗? 有。免费产品通常限制每日对话轮数或单次回复长度,本质都是 Token 配额。
延伸阅读:什么是大语言模型(LLM)? 理解 Token 所处的技术体系。