什么是 Token
Token(令牌/词元) 是大语言模型处理和计费的最小单位。模型不是逐字符处理文本,而是将文本切分为 Token 序列。
用一句话理解:Token 是 AI 世界的基本货币,你输入和输出的文本都会被换算成 Token 来计费。
Token 与文字的换算
不同语言的 Token 效率不同:
| 语言 | 1 个 Token ≈ | 1 个字/词 ≈ |
|---|---|---|
| 英文 | 0.75 个单词 | 1.3 个 Token |
| 中文 | 0.5 个字 | 2 个 Token |
| 代码 | - | 1-3 个 Token |
示例
- "Hello world" → 2 tokens
- "你好世界" → 4 tokens(每个中文字约 1 个 token)
console.log("hello")→ 约 6 tokens
为什么 Token 重要
1. 计费基础
所有大模型 API 按 Token 计费:
- 输入 Token:你发给模型的内容(Prompt)
- 输出 Token:模型返回的内容(Completion)
2. 上下文窗口限制
每个模型有最大 Token 限制:
- GPT-4o:128K tokens
- Claude 3.5:200K tokens
- Gemini 1.5 Pro:1M tokens
3. 影响成本
一个简单的问题如果附带大量上下文,Token 消耗会暴增:
"你好" → 2 tokens
"你好" + 10页文档 → 5000+ tokens
如何减少 Token 消耗
| 方法 | 效果 | 示例 |
|---|---|---|
| 精简 Prompt | 减少 30-50% | 去掉重复说明 |
| 缓存上下文 | 减少 80%+ | 使用 Anthropic 的 Prompt Caching |
| 使用短模型 | 减少 50% | 用 Haiku 代替 Sonnet 做简单任务 |
| 分块处理 | 减少单次消耗 | 长文档分段处理 |
Token 计算工具
- tiktoken(Python):OpenAI 官方库
- @anthropic-ai/tokenizer:Claude 官方库
- 在线工具:platform.openai.com/tokenizer
相关概念
- 上下文窗口:模型一次能处理的最大 Token 数
- Embedding:将 Token 转换为向量
- Fine-tuning:训练 Token 费用