Command Palette
Search for a command to run...
词元(Token) 是语言模型读写文本的最小单位。模型并不直接认识“字”或“词”,而是先把文本切成 token,再查表变成整数 ID、送入神经网络。切分方式直接决定了词表大小、序列长度和计算成本:按整词切,词表会随语言膨胀,遇到新词就出现“未登录词”;按字符切,序列又变得过长、语义单元太碎。
“token”一词原本是编译原理中词法分析的单位,早于大模型。这个问题在统计机器翻译时代靠回退词典等规则兜底。 2015 年,Sennrich、Haddow 与 Birch 在论文《Neural Machine Translation of Rare Words with Subword Units》中系统引入基于字节对编码(BPE)的子词切分:常见词整词保留,罕见词拆成更小的片段,从字符起步,统计相邻符号对的频率,反复合并最高频的一对,直到词表达到预设大小,翻译时再把子词拼回。在 WMT15 英德、英俄任务上,这一做法比回退词典的基线分别提升 1.1 和 1.3 BLEU,成为把子词 token 用于神经网络的重要代表性工作。
此后,BPE 及同属子词思路的 WordPiece、SentencePiece 成为大模型分词器的主流,GPT 系列也采用 BPE 类分词器,词表通常在数万到十数万之间。词表大小本身是一组权衡:词表越大,单个 token 承载的信息越多、序列越短,但嵌入矩阵与输出层也越大;词表越小,序列越长、计算越贵。由于 token 数直接关系到 API 计费、上下文占用和推理开销,“同样一句话会切成多少 token”已成为工程上必须精打细算的问题。