Token是大型语言模型(LLM)处理文本的基本单位,既不完全等于字,也不等于词。不同模型的分词方式不同,常见算法包括BPE(字节对编码)、WordPiece、SentencePiece等。
| 语言 | 平均比例 | 说明 |
|---|---|---|
| 英语 | 约 1 token / 4字符 | 常见英文词通常是1个token |
| 中文(GPT系列) | 约 1~2 token / 字 | 常用汉字通常1个token,生僻字可能2个 |
| 中文(Claude) | 约 1 token / 字 | Claude对中文tokenization较友好 |
| 日文/韩文 | 约 1~2 token / 字 | 与中文类似 |
| 代码 | 约 1 token / 3~5字符 | 取决于语言和缩进风格 |
Byte Pair Encoding(字节对编码)是主流LLM使用的分词方法。它通过统计语料库中最常见的字节对,迭代合并构建词表,在词表大小和覆盖率之间取得平衡。
| 模型系列 | 词表大小 | 分词算法 |
|---|---|---|
| GPT-4 / GPT-3.5 | 100,277 | cl100k_base (BPE) |
| Claude 3 / 3.5 | ~100K | BPE(内部) |
| Gemini 1.5 | ~256K | SentencePiece |
| Llama 3 | 128,256 | tiktoken BPE |
| Qwen2 / 通义 | ~150K | BPE(中文优化) |
API调用费用通常按输入token数 + 输出token数计算。上下文窗口(Context Window)限制了单次对话可处理的最大token数,超出会导致早期内容被截断。