Token / Tokenization(分词)
将文本拆分为模型可处理的最小单元(token)的过程。一个token可以是一个词、一个子词片段或一个字符。GPT系列使用BPE算法,中文通常一个字对应1-2个token。
Token / Tokenization(分词)
一句话理解
Tokenization 就是把原始文本切成模型能理解的最小片段——这些片段叫 Token。
为什么需要 Tokenization
语言模型不直接处理文字,它处理的是数字。Tokenization 是文本和数字之间的桥梁:
text
"Hello world" → ["Hello", " world"] → [15339, 1917]
每个 token 被映射为一个整数 ID,再通过 Embedding 层转成向量,才能输入模型。
常见分词算法
| 算法 | 代表模型 | 特点 |
|---|---|---|
| BPE(字节对编码) | GPT 系列 | 从字符开始,逐步合并高频字符对 |
| WordPiece | BERT | 类似 BPE,但用似然度而非频率选择合并 |
| SentencePiece | LLaMA、T5 | 语言无关,直接处理原始文本(含空格) |
中文的特殊性
英文 "transformer" 通常是 1 个 token,但中文 "自注意力机制" 可能被拆成多个 token(如 "自注意" + "力" + "机制"),因为中文没有空格分隔,子词切分策略不同。
对实际使用的影响
- 上下文窗口以 token 计量,不是字数——中文相同字数通常消耗更多 token
- API 计费按 token 数——分词方式直接影响成本
- 模型能力边界与 tokenizer 绑定——模型无法理解不在词表中的字符
引用本术语的文章