文章目录
- 01 | Token不是词:GPT如何切分语言的最小单元?
- 一、什么是 Token?
- 二、Token 是怎么来的?——BPE算法原理
- BPE核心步骤:
- 三、为什么不直接用词或字符?
- 四、Token切分的实际影响
- 五、中文Token的特殊性
- 六、Token机制的未来方向
- 七、总结
01 | Token不是词:GPT如何切分语言的最小单元?
副标题:深入BPE算法,理解token的非线性结构意义
一、什么是 Token?
在 GPT 这类语言模型中,token 是模型处理语言的基本单位。它不是传统意义上的“词”或“字符”,而是更小的、基于统计规律和语义结构的子词片段。
示例:
文本内容 | Token 切分 |
---|---|
ChatGPT | Chat, G, PT |
playing | play, ing |
我爱你 | 我, 爱, 你 |
英文可能被分成多个片段;中文一般一个字一个 token。
二、Token 是怎么来的?——BPE算法原理
GPT采用的BPE(Byte Pair Encoding)是一种子词分词算法,原本用于压缩,现在被用来平衡词与字符的语义表达。
BPE核心步骤:
- 初始化:所有词拆为单字符;
- 统计频次:找出最常见的字符对;
- 合并字符对:变成新的token;
- 重复合并,直到构建出固定大小的词表(如GPT-3为50257个token)。
BPE最终形成的token词表中,高频词可整体保留,低频词被拆解重构。
三、为什么不直接用词或字符?
粒度 | 优点 | 缺点 |
---|---|---|
字符 | 泛化强 | 语义弱 |
单词 | 语义强 | 新词不识别 |
子词(Token) | 平衡泛化与语义 | 实现复杂 |
token 是字符和词之间的平衡结构,便于模型学习和泛化。
四、Token切分的实际影响
- 模型限制:如 GPT-3 最大支持 2048 token,不是 2048 字;
- API计费:OpenAI 计费基于 token 数,而非字数;
- 上下文控制:token 越多,占用上下文窗口越快,需控制生成长度。
五、中文Token的特殊性
中文通常一字一 token,但模型会根据语料频率进行调整:
- “清华大学” 可能为 [“清”, “华”, “大学”] 或 [“清华”, “大学”];
- “ChatGPT” 可被切为 [“Chat”, “G”, “PT”],因非高频复合词。
六、Token机制的未来方向
- Unigram分词(如T5);
- 多语言共享词表(如mBERT);
- 动态tokenization:模型运行时自适应切分。
七、总结
token 不是词,它是语言模型的语言单位,是语义压缩与泛化效率之间的产物。理解 token 的切分方式,是深入理解GPT系列语言模型结构的第一步。