welclaiAI·TREND·DIGEST
研究

分词器,以及它为何对各种语言至关重要

语言模型从不见到词语。它见到的是 token。文本如何被切成 token,悄悄决定了跨语言的成本、速度与公平。

research2026-05-05 08:17 KST·主编·7 分钟

语言模型不读词语,也不读字母。在任何文本抵达模型之前,它都要经过一个分词器,被切成一串称为 token 的单元——而模型见到的,永远只是这些 token。这一步处在如此上游的位置,以至于很容易被忽视,可它塑造着下游几乎一切:一次请求要花多少钱、模型的记忆有效有多长,以及——惊人地——模型对待不同人类语言有多公平。

分词器是模型的感官。如果你想弄懂为什么同一个意思,用一种语言表达的成本能是另一种的两倍,你就得从这里说起。

token 究竟是什么

一个 token 是一段文本,而且它通常不是一个完整的词。现代分词器倾向于把文本切成子词片段。常见的词可能是单个 token,而较罕见的词会被拆成好几个。一个生造的或不寻常的字符串,可能被几乎逐字符地拆开。空格和标点也是 token,大小写也能改变某样东西被拆开的方式。

为什么用子词而非整词?因为一个整词的词表会大得吓人,而且仍会漏掉每一个新词、人名或拼写错误。又为什么不干脆用单个字符?因为那会让序列极其漫长,逼着模型从微小的碎片里重新拼凑出意义。子词分词是个折中:一个固定、可管理的词表,却仍能通过组合片段来表示任何输入。它高效地捕捉常见模式,却又从不会被某样它没见过的东西彻底难住。

词表是如何构建出来的

分词器的词表不是手写的——它是在模型被训练之前,从一个大型文本语料库中学出来的。那些流行方法背后的总原则是一样的:从小处起步,把常常一同出现的合并起来。

一种典型的做法,从基本字符起步,然后反复寻找最频繁的相邻配对,把它合并成一个新单元,并将该单元加入词表。这么做许多次,频繁的序列——常见前缀、后缀、不断出现的整词——就成了单个 token,而罕见的序列仍被拆成更小的部分。结果是一个调谐到了训练文本统计特性的词表。

最后这句话是整个故事的关键。分词器是调谐到它被构建所依据的那份文本上的。 那份文本富含什么,什么就拿到短而高效的 token。那份文本贫乏于什么,什么就被切成许多小片。

为什么这对各种语言并不公平

大多数大型分词器都是在由少数几种被广泛书写的语言主导的语料上训练的。那些语言——尤其是英语——最终得到了高效的分词:常见词成了单个 token,一个句子化作相对很少的几个 token。

那些在该语料中代表不足的语言则境遇更差。同样的意思,用这样一种语言表达,可能要求明显更多的 token,因为分词器从未为它学到紧凑的单元,只能退而求其次,把词拆成许多小碎片。字符集庞大的书写系统,或分词器见得很少的文字,可能受创尤其严重,有时逼近每字符一个 token。

这不是一个无关紧要的表面差异。它有着直接、复合的后果:

  • 成本。 模型通常按 token 计价和计量。如果你的语言要用更多 token 才能说同样的话,同一段对话就单纯地更贵。
  • 有效记忆。 模型的上下文窗口是以 token 来度量的。每句话用更多 token,就意味着能塞进的句子更少,于是在一种 token 效率低的语言里,模型有效记住的文档内容就更少。
  • 速度。 要读和要生成的 token 更多,意味着每次请求要更多计算、响应更慢。

于是,一种代表不足的语言的使用者,可能为同样的内容付更多钱、得到更短的有效记忆,还要等更久。这种不公平,被烤进了模型之下、分词器那一层。

对质量的下游影响

分词能塑造能力,而不只是成本。当词语被打碎成许多碎片时,模型就要做更多工作去重新拼凑意义,而那些在词的层面本会一目了然的模式,被稀薄地摊在了许多 token 上。那些取决于文本确切结构的任务——计数、拼写、操作字符、仔细的算术——可能以出人意料的方式栽跟头,恰恰因为模型见到的是 token,而非人所见的字母和数字。

这解释了一类否则看起来匪夷所思的行为。当一个模型数错一个词里的字母时,它不是迟钝;它压根就没把那些字母当成干净、独立的单元拿到手过。分词器递给它的是一些块,而这些块藏起了任务所需要的那个细节。

人们为此做了些什么

没有完美的修补,但有一些杠杆。用一个更均衡、多语言的语料来构建分词器的词表,能给代表不足的语言一份更公平的高效 token 份额。把词表做得更大,会留出余地让更多语言拿到紧凑单元,代价是一个更大的模型组件。有些系统从一开始就被设计为多语言的,并据此为它们的分词器训练加权。

这些都无法完全抹平差距,因为任何固定的词表都反映着优先次序——你没法同时给每一种文字最高效的可能编码。但在分词器上深思熟虑,是整条流水线里最高杠杆的公平性决策之一,恰恰因为它坐落在其他一切的上游。

作为用户该如何看待它

你很少能控制分词器,但你可以对它进行推理。如果你工作所用的语言分词效率低,就预期更高的 token 数,在预算和上下文限制里为此做计划,并意识到那些对字符极其敏感的任务可能更不靠谱。在比较两个模型的成本时,记住同一段文本的 token 数在它们之间可能不同,因为每个模型都自带它自己的分词器。"每 token 价格"这一头条数字,在不知道你的实际文本会变成多少 token 之前,意义甚微。

总结

分词器是那个把人类文本变成模型实际消费的单元的隐形层,而它是从它被训练所依据的那份语料里构建出来的。这单单一个事实向外泛起涟漪:在那份语料中代表充分的语言,得到便宜、紧凑、有能力的对待,而代表不足的语言,为同样的意思付更多钱、在上下文里塞得更少、运行得更慢。分词不是一个可以略过的技术细节——它正是一个模型的大量成本结构和大量公平性被悄悄定下的地方,远在模型本身做任何思考之前。

#tokenization#languages#nlp#fairness