一文读懂 Token:大模型词元化全景综述
原创
计算机与网络安全
计算机与网络安全
计算机与网络安全
2026年10月13日 07:57
山东
在小说阅读器读本章
去阅读
在公众号小说中沉浸阅读
《Token(词元)全景综述》 是一篇关于大语言模型(LLM)中词元化(Tokenization) 的系统性综述论文(150页)。全文共15章,覆盖了从基础算法到前沿研究的广泛内容。
很多人第一次被大模型震撼,是它能写诗、写代码、做翻译。
但很多人第一次对大模型失望,是发现它连“strawberry 里有几个 r”都答不对。
这不是模型“笨”,而是因为它根本不直接看文字。
在模型内部,文本先被切成一个个 Token(词元),然后才变成数字向量。
这个切分过程,叫 Tokenization(词元化)。
它决定了大模型看到什么、看不到什么,也直接影响:
- 模型推理快不快
- 多语言公不公平
- API 调用贵不贵
- 安全防护牢不牢
- 模型能不能做字符级任务
这篇综述,就是系统讲清楚:Token 是怎么来的、有什么问题、未来往哪走。
01
Token 是什么?为什么不能直接用字或词?
大模型处理文本的流程大致是:
原始文本 → 规范化 → 预词元化 → 词元化 → Token ID → 嵌入向量 → 模型
其中最关键的一步,是把文本切成 Token。
1. 词级模型:OOV 问题严重
如果每个词一个 Token,词表会爆炸。
英语至少上百万词,中文、德语、土耳其语更是可以无限造词。
一旦遇到没见过的词,就只能标记为 <OOV>,模型完全不知道它是什么意思。
例子:
如果词表里有 America,但没有 Americans,那 Americans 就会被当成未知词。
模型没法知道它和 America 有关系。
2. 字符级模型:没有 OOV,但序列太长
字符级模型用字母、汉字、字节做 Token。
好处是永远不会遇到 OOV。
坏处是序列变得非常长,计算量爆炸,而且单个字符几乎没有语义。
例子:
California 用词级是 1 个 Token,用字符级是 10 个 Token。
模型要多花 10 倍计算量,但每个字符单独看几乎没意义。
3. 子词词元化:折中方案
子词词元化介于字符和词之间。
它把常见词整体保留,把罕见词拆成更小的子词。
这样既避免 OOV,又控制词表大小,还缩短序列。
主流算法有三个:
- BPE(Byte-Pair Encoding)
- Unigram
- WordPiece
02
三大主流算法:BPE、Unigram、WordPiece
1. BPE:从字节开始,不断合并高频对
BPE 最初是数据压缩算法。
它的思路很简单:
找出文本里最常一起出现的相邻 Token,把它们合并成一个新 Token。
比如:
- 初始:
l o w - 发现
l o经常一起出现 → 合并成lo - 再发现
lo w经常一起出现 → 合并成low
这样反复合并,直到词表达到目标大小。
BPE 的优点是简单、压缩好、推理快。
GPT 系列、Llama 系列、Qwen 系列基本都用 BPE。
但 BPE 也有问题:
- 会产生大量“垃圾中间 Token”
- 有些 Token 训练后根本用不到,浪费词表
- 可能破坏词素边界
所以后来出现了很多变体:
- BPE-dropout:随机丢弃合并,让模型更鲁棒
- SuperBPE:允许跨空格合并,形成多词 Token
- BoundlessBPE:从训练开始就允许跨预词元边界
- PickyBPE:剔除中间垃圾 Token
- ScaffoldBPE:移除“脚手架”Token
2. Unigram:从大词表开始,不断剪枝
Unigram 是概率模型。
它假设文本是由一个个 Token 独立采样拼接而成的。
训练时先准备一个很大的种子词表,然后不断删除对似然影响最小的 Token,直到词表大小合适。
推理时,它用 Viterbi 算法找概率最大的切分方式。
Unigram 的优点是:
- 更符合形态学
- 天然支持子词正则化(采样不同切分)
- 多语言表现有时更好
缺点是推理效率不如 BPE,所以实际采用不如 BPE 广泛。
3. WordPiece:BERT 用的那个
WordPiece 最早由 Google 提出。
训练时它选择能最大提升语言模型似然的 Token 对进行合并。
推理时常用 MaxMatch:从左到右,每次匹配最长的词表 Token。
BERT 用的就是 WordPiece。
但后来 Hugging Face 的 WordPiece 其实是用 BPE 训练的,只是推理用 MaxMatch。
所以“WordPiece”现在更像一个家族,而不是单一算法。
03
预词元化:为什么 Token 不能跨空格?
在真正切 Token 之前,还有一个步骤叫 预词元化。
它先把文本切成粗粒度单元,比如按空格、标点、数字切。
为什么要这样做?
- 防止 Token 跨空格,比如
New York不应该被切成NewY ork - 提高训练和推理效率
- 让数字、标点处理更一致
常见操作:
- 规范化:大小写、Unicode、去重音
- 空格标记:用
▁或Ġ表示空格 - 数字处理:逐位切、三位一组、右对齐等
数字处理特别重要。
GPT-2 会把 8675309 切成 8 67 5 30 9,非常乱。
Llama 2 逐位切,Llama 3 三位一组切。
不同切法直接影响算术能力。
04
多语言问题:英语用户和缅甸语用户,成本差 3.8 倍
这是整篇综述里最扎心的部分之一。
大多数 Tokenizer 是在英语为主的语料上训练的。
结果就是:
- 英语压缩率高,Token 少
- 低资源语言被过度切分,Token 多
- 同样一句话,不同语言 API 成本差很多
论文里有个数据:
用 GPT-4o 生成《世界人权宣言》,英语 vs 缅甸语,成本差 3.8 倍。
如果按国家平均工资折算劳动时间,差距可达 54.3 倍。
这就是所谓的 Token Tax(词元税)。
低资源语言用户,为同样的信息付更多钱、花更多时间。
解决方案包括:
- 多语言预词元化(SCRIPT、OSPE)
- 公平词表分配(PA-BPE、XLM-V)
- 字节级模型(ByT5、MAGNET、FlexiTokens)
- 转写(罗马化、IPA)
- 后处理适配(词表扩展、继续训练)
但至今没有完美方案。
05
评估:为什么不能只看 Perplexity?
评估 Tokenizer 很难。
最直接的方法是训练一个模型看下游任务,但太贵。
所以大家用内在指标:
- 压缩率:Token 越少越好
- Fertility:每个词平均几个 Token
- Bits-per-byte:按字节归一化,可跨 Tokenizer 比较
- Rényi 效率:衡量 Token 频率分布是否最优
- 形态对齐:Token 边界是否和词素边界一致
- 跨语言公平性:不同语言 Token 数是否均衡
但要注意:
Perplexity 不能直接跨 Tokenizer 比较,因为分母不同。
必须用 bits-per-byte 或 bits-per-character 这类与 Tokenizer 无关的指标。
还有一个专门测字符级能力的基准:
- CUTE
- CharBench
- LMentry
- EXECUTE
- NUPA
比如“strawberry 里有几个 r”,就是典型 CUTE 任务。
大模型经常错,因为它的 Token 里没有单独的 r。
06
非规范词元化:同一个文本,多种切法
一个字符串往往有多种 Token 切法。
标准切法叫规范词元化,其他叫非规范词元化。
比如 tokenization 可以切成:
tokenization(规范)token iz ationtok en iz ation
非规范词元化有两大用途:
1. 训练时:子词正则化
随机采样不同切法,让模型更鲁棒。
类似图像里的数据增强。
2. 推理时:边缘化
理论上,字符串概率应该是所有切法概率之和。
但精确计算太难,通常用重要性采样近似。
非规范词元化也有风险:
可以用来绕过安全对齐,进行对抗攻击。
07
字节、字符与视觉 Token:要不要干脆不要 Tokenizer?
既然子词 Tokenizer 这么多问题,能不能不用?
1. 字节级模型
用 UTF-8 字节做 Token,词表只有 256。
没有 OOV,但序列极长。
代表:ByT5、MambaByte、EvaByte。
2. 隐式词元化
模型内部自己学怎么把字节聚合成隐式 Token。
代表:CANINE、MegaByte、BLT、H-Net、FlexiTokens。
3. 视觉文本表示
把文本渲染成图片,用视觉模型处理。
代表:PIXEL、CLIPPO、PIXAR。
优点是跨语言、抗扰动、无词表。
缺点是生成文本困难,需要 OCR,而且渲染本身有歧义。
08
现代 LLM 的 Tokenizer 现状
论文统计了前沿模型:
- 几乎都用 BPE
- 词表大小 100k–275k
- 多语言支持越来越强
- Claude 可能用最短路径 Tokenization,词表只有 49k/16k
- Hugging Face 上 94% 的模型复用已有 Tokenizer
这说明:
Tokenizer 创新很少,大家基本沿用少数几种设计。
09
安全与理论:Token 也是攻击面
安全风险
- 不可见字符注入:零宽连接符、西里尔字母冒充拉丁字母
- 非规范词元化绕过对齐
- 未充分训练 Token 作为攻击向量
- 控制 Token 注入,突破提示模板
理论视角
BPE 和 MaxMatch 都可以用有限状态自动机表示。
Tokenization 优化问题在理论上大多是 NP-hard。
但实际中,自然语言的统计规律让问题变得可解。
10
结论:Token 不是细节,是核心设计
这篇综述的核心结论可以归纳为五条:
- Token 决定模型看到什么。
字符级信息被隐藏,导致算术、拼写、字符任务困难。 - Token 影响成本与公平。
低资源语言被过度切分,用户付更多钱。 - Token 影响安全。
对抗 Token、不可见字符、控制 Token 注入都是真实威胁。 - Token 影响模型架构。
词表大小直接决定嵌入层参数量,影响缩放规律。 - Token 研究严重不足。
实验贵、评估难、创新少,但改进空间巨大。
未来方向:
- Tokenizer 缩放规律
- 字节级、视觉级、动态 Token 化
- 更好的评估基准
- 跨 Tokenizer 知识迁移
Token 是大模型的第一道关卡。
它不显眼,但决定了很多事情。
Token(词元)全景综述 PDF已上传👇
📁近万份资料(AI安全、大模型与Agent、算力算网),已收录于「人工智能、算力算网」,每天更新,成员可随时查看/下载。
立即加入网络安全AI安全群
-
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论