跳到主内容
快讯直播
AI智模界
AI 词典

词表大小:分词粒度与开销的跷跷板

一句话定义:词表大小(Vocabulary Size)指一个模型能直接读写的最小文本单位——token——的总条目数,也就是分词器(tokenizer)那本字典里到底收了多少个字、词和片段。

它是怎么来的:模型不认字,只认整数。分词器先把文本切成 token,再给每个 token 编个号,词表大小就是这个编号表的总长度 V。模型里有两处直接由 V 决定:一是嵌入表(embedding matrix),形状是 V × d(d 为向量维度),每个 token 占一行向量;二是输出层,最后要算下一个 token 是词表里哪一个的概率,softmax 得在 V 个数上做归一化。

打个比方:词表像餐馆菜单。菜单厚(V 大),顾客报一句"番茄牛腩煲"就点完了,上菜快,但后厨得为每道菜备料备盘,每个 token 都得有一条专属向量。菜单薄(V 小),只能点"番茄+牛腩+炖",描述变长,但备料简单。

核心权衡:分词粒度越大,一个 token 覆盖的字符越多,同一段文本切出的序列就越短。序列短的好处很实在——注意力(attention)开销随序列长度平方增长,短一半省四倍;AI 词典:上下文窗口">上下文窗口按 token 计数,序列短就能装下更多内容;生成是一步一个 token,序列短也就更快。代价在两头:V × d 的嵌入表参数变多,输出 softmax 的 V 维计算和显存占用也变大。反过来 V 太小,序列被拉长,常见词被切碎,速度和语义双双受损。

词表小(粒度细)词表大(粒度粗)
同一句话的 token 数
嵌入表参数量(V×d)
输出 softmax 开销
注意力开销大(序列长)小(序列短)
生僻词与多语言易被拆成碎片更易整体收录
典型取舍省显存、偏慢偏快、吃显存

容易混的邻居:分词算法(BPE、WordPiece、Unigram)是"造字典的方法",词表大小是"字典造出来有多厚";嵌入维度 d 决定每行多宽,词表 V 决定有多少行,两者相乘才是嵌入层的参数量;上下文长度是序列能有多长的上限,词表大小决定同样一段文本要占掉多少格。

对我们的实际意义:按 token 计费的场景里,词表直接决定账单——同一个意思用中文还是英文表达,落在不同分词器下 token 数可能差不少。模型数不清某个单词里有几个字母,也是因为字母被合并成了 token。工程上,词表一改基本就得从头训练,它更像模型的"户口本",不是能随手替换的配置项;做大词表模型时,输出层 softmax 往往要用切分或并行来摊开。至于该选多大的词表,各家做法不同,以官方页面为准。

AI 生成本文由 AI 基于公开信息自动生成,仅供参考。