完整题目
大模型里的 Token 是什么?为什么中英文 Token 数量差异很大,各家 API 又为什么按 Token 计费?
本文目录
答案要点
- Token 是大模型处理文本的最小单位,由分词器(Tokenizer)切出来,可能是一个词、半个词或一两个汉字
- 模型的输入输出、上下文窗口、计费全部以 Token 计量,而不是字符或单词
- 中英文差异:主流词表偏英文,1 个英文单词约 1~1.3 token,1 个汉字常需 1~2 token
- 按 Token 计费是因为计算量与 Token 数直接成正比,每生成一个 token 都要完整跑一遍前向计算
- 估算成本先估 Token:输入和输出都收费,输出单价通常更贵
核心概念
Token 是大模型读写文本时的最小处理单位,由分词器(Tokenizer,把文本切分成小片段的组件)按照训练好的词表把句子切开。它不等于「字」也不等于「词」:常见英文单词可能整体就是 1 个 token,生僻词会被拆成几段,一个汉字可能对应 1~2 个 token。主流切分算法是 BPE(字节对编码)一类:高频片段合并成一个 token,低频内容拆碎处理。
中英文 Token 差异
| 文本 | 大致换算 |
|---|---|
| 英文 | 1 个单词 ≈ 1~1.3 token,100 词 ≈ 130 token |