跳转至

Tokenization

Tokenization 把文本转换为有限词表中的 token ID 序列,是文本进入模型和模型输出文本的接口。

粒度取舍

  • 词级词表语义单位大,但词表庞大且难处理未登录词;
  • 字符或字节级覆盖稳定,但序列更长;
  • 子词方法在词表大小、覆盖能力和序列长度之间折中。

常见训练方法包括 BPE、Byte-level BPE、WordPiece 和 Unigram;SentencePiece 提供了不依赖语言空格 规则的训练与编码方式。

为什么 tokenizer 影响模型

  • 决定同一文本占用多少上下文和计算;
  • 影响数字、代码、多语言和领域术语的表示;
  • 词表大小决定输入 embedding 与输出 head 的规模;
  • 不同 tokenizer 下的 loss 和 perplexity 不宜直接比较。

修改词表的风险

新增 token 会改变切分路径和 embedding 矩阵。继续预训练时,应验证旧文本是否仍按预期编码,并为 新增 embedding 设计初始化和训练方案。不能把“扩词表”当作无副作用的配置修改。