大模型基础知识学习笔记之Tokenizer

1 Tokenizer的作用

  • 将文本序列转化为数字序列,作为transformer输入
  • 是训练和微调LLM必不可少的一部分


2 三种不同分词粒度的Tokenizers

  • Word-based:将文本划分为一个个词(包括标点),会引入规则避免不合理分词,例如spaCy和Moses。这种划分符合人的自然语言和直觉,但相同意思的词会被划分成不同token(如dog和dogs),词表会非常大。可以通过限制词表大小解决,未知的词用特殊的token表示,但会丢失信息。
  • Character-based:将文本划分为一个个字符,西文词表非常小,但相对单词来说信息量很低,会产生很长的Token序列。
  • Subword-based:能保持语义,适合多语言,常见方法BPE/BBPE,WordPiece,Unigram

四种常用的Subword Tokenizers

  • Byte-Pair Encoding(BPE) Tokenization:BPE算法包含两部分,“词频统计”和“词表合并”。首先按词表切分每个词,统计词内相邻token同时出现的频率,对频率高的进行合并添加到词表,如此迭代合并。



    BPE的缺点:包含所有可能的基本字符的基本词汇表可能特别大(中文等)。改进为Byte-level BPE(BBPE),将字节视为基本token,两个字节合并即可表示Unicode

  • WordPiece:


  • Unigram Tokenization:



    缺点:划分单词计算概率非常耗时

  • SentencePiece Tokenization


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容