返回笔记
基础概念
Token 化和分词:大模型如何"读"文字
Token
分词
BPE
Tokenizer
NLP
我们知道大模型处理的是 token,但 token 到底是什么?为什么要分词?这篇文章讲清楚。
计算机不能直接读文字
大模型本质上是数学函数,只能处理数字。所以必须把文字转成数字序列。这个过程叫分词。
什么是 Token
Token 是文本被切分后的最小单元。一个 token 可能是:
- 一个完整的英文单词(如 "hello")
- 单词的一部分(如 "ing"、"tion")
- 一个中文汉字(如 "语"、"言")
- 一个标点符号(如 "."、"?")
BPE 算法
目前主流的分词算法是字节对编码。它的思路是:
- 从字符级别开始
- 统计哪些字符对经常一起出现
- 把最常见的字符对合并成一个新 token
- 重复直到达到预设的词汇表大小
这样做的好处是:常见词占一个 token,罕见词被拆成更小的子词单元,不会出现 OOV(词汇表外)问题。
Token 的花费
- 英文大约 1 token ≈ 0.75 个单词
- 中文大约 1 token ≈ 1.5 个汉字
- API 按 token 计费,所以了解分词规则有助于优化成本
Tokenizer 对模型的影响
分词方式直接影响模型表现:
- 中英文混用:如果不合理,代码和自然语言混在一起的场景效率会很低
- 数字处理:有些 tokenizer 会把"12345"当成1个数字 token,有些会拆成多个
- 编程语言:对代码场景需要特殊优化