词表:AI认识多少个字?
词表大小决定了AI的词汇量,也决定了它理解世界的"粒度"
小时候学汉字,你用的是《新华字典》。字典里收录了多少个字,你就有可能认识多少个字。当然,字典里的字你不一定都认识,但没有字典里没有的字,你肯定不认识。
AI也一样。在处理文字之前,它有一本自己的"字典"——词表(Vocabulary)。词表里收录了多少个Token,AI就能"认识"多少个Token。
那AI的词表有多大?几千个?几万个?还是几百万个?这些Token又是怎么被选进词表的?词表大小对AI的能力有什么影响?
今天我们就来聊聊这个看似简单、实则大有讲究的话题。
1词表:AI的「身份证号码本」
词表(Vocabulary)是一个有序的Token列表,每个Token对应一个唯一的整数ID。
就像每个人都有身份证号码,词表里的每个Token都有一个固定的编号。"hello"可能是编号15496,"world"可能是编号995,"你好"可能是编号77823。
AI处理文字时,第一步就是把文本转化为这些数字编号,然后才能进行数学运算。
📝 原始文本
🔍 查询词表,得到ID
🔢 数字序列(AI能处理的格式)
💡 关键点:词表本质上是一个"文本到数字"的映射表。AI看不懂文字,但能处理数字。词表就是这个翻译本。
2不同模型的词表大小
各大主流模型的词表大小差异相当大,从几万到几十万不等:
GPT-4 / GPT-3.5
OpenAI · cl100k_base
100K
个Token
Claude 3
Anthropic
~100K
个Token
LLaMA 3
Meta
128K
个Token
LLaMA 2
Meta(上一代)
32K
个Token
BERT(早期模型)
30K
个Token
📊 趋势:越新的模型词表越大。GPT-2(50K)→ GPT-3/4(100K)→ LLaMA 3(128K)。更大的词表意味着更少的Token数量、更快的处理速度,但也需要更多内存。
3词表是怎么建立的?
词表不是手工编写的,而是通过统计学习自动生成的。最常用的方法叫做BPE(Byte Pair Encoding,字节对编码)。
原理很简单:反复找出训练数据中最频繁出现的相邻字符对,把它们合并成一个新Token,直到词表达到预设大小。
第一步:从单个字符开始
第二步:合并最高频的字符对
第三步:继续合并,直到词表够大
最终结果:词表包含常见词和片段
像编一本定制词典
4词表里有什么?
一个典型的100K词表,大概是这样的构成:
完整单词
高频出现的完整词汇
约占 20%
单词片段
常见前缀、后缀、词根
约占 40%
单个字符
字母、汉字、标点等基础字符
约占 30%
特殊控制符
开始/结束标记等控制符
约占 10%
🌍 中文和英文的差异
英文词表中,一个Token通常对应4个字符左右(比如"hello"就是一个Token)。但中文比较特殊——每个汉字通常占1-2个Token,词语可能是2-4个Token。
这也是为什么,用主要为英文设计的模型处理中文时,Token消耗往往比英文多得多。同样的意思,中文版本可能需要1.5倍到2倍的Token。
5词表大小:一把双刃剑
词表不是越大越好,也不是越小越好,它有明显的权衡关系:
Token更少,处理速度更快
模型更大,内存占用更高
训练和推理成本更高
📚
词表太小
❌ 效率低
每个词都要拆分
最优区间
30K – 130K
📖
词表太大
❌ 成本高
内存爆炸
⚖️ 工程师的选择
目前业界的共识是:30K-130K是词表大小的最优区间。太小会导致Token数量爆炸,影响效率;太大会导致参数爆炸,影响训练和推理成本。LLaMA 3选择128K就是在这个权衡上做出的工程决策。
6词表如何支持多语言?
全球有数千种语言,但AI的词表只有几万到几十万个Token,怎么做到支持多语言的?
答案是按数据比例分配。训练词表时,如果训练数据里80%是英文,那词表里绝大多数Token都会是英文词和片段;如果有10%是中文,词表里会有相应比例的中文字和词。
🤔 这产生了什么问题?
由于训练数据英文占比高,英文词表更"完整"。英文单词大多有专属Token,而中文的词语可能要拆成多个单字Token。这意味着:同样的语义,中文消耗的Token数通常是英文的1.5-3倍。这就是为什么使用这类模型时,中文prompt通常更贵。
7总结
🎓 一句话总结
- ①词表是什么:Token → 数字ID的映射表,AI的"字典"
- ②如何构建:BPE算法,反复合并高频字符对,统计学习而非手工编写
- ③主流大小:30K-130K,越新的模型词表越大(LLaMA 3达128K)
- ④大词表优点:Token数少、速度快;缺点:模型更大、成本更高
- ⑤中文问题:因训练数据英文为主,中文Token效率通常低于英文
→下篇预告
第34篇:大语言模型:为什么GPT这么厉害?
我们了解了Token、分词、词表,这些只是原材料。那这些组件如何组成一个完整的大语言模型?GPT-4凭什么能写代码、做数学题、聊哲学?下一篇,我们来揭开大语言模型真正的秘密。
✏️ 手绘图解 · AI Catch 出品
第 33 篇 / 共 84 篇