大模型(LLMs)Tokenizer篇

LLMs Tokenizer 篇
Byte-Pair Encoding(BPE)篇
1 Byte-Pair Encoding(BPE) 如何构建词典?
1 准备足够的训练语料;以及期望的词表大小;
2 将单词拆分为字符粒度(字粒度),并在末尾添加后缀“”
,统计单词频率
3 合并方式:统计每一个连续/相邻字节对的出现频率,将最高频的连续字节对合并为新字词;
4 重复第 3 步,直到词表达到设定的词表大小;或下一个最高频字节对出现频率为 1。
注:GPT2、BART 和 LLaMA 就采用了 BPE。
WordPiece 篇
WordPiece 与 BPE 异同点是什么?
本质上还是 BPE 的思想。与 BPE 最大区别在于:如何选择两个子词进行合并
BPE 是选择频次最大的相邻子词合并;
WordPiece 算法选择能够提升语言模型概率最大的相邻子词进行合并,来加入词表;
注:BERT 采用了 WordPiece。
SentencePiece 篇
简单介绍一下 SentencePiece 思路?
把空格也当作一种特殊字符来处理,再用 BPE 或者来构造词汇表。
注:ChatGLM、BLOOM、PaLM 采用了 SentencePiece。
对比篇
1 举例介绍一下不同大模型 LLMs 的分词方式?
2 介绍一下不同大模型 LLMs 的分词方式的区别?
1. LLaMA 的词表是最小的,LLaMA 在中英文上的平均 token 数都是最多的,这意味着
LLaMA 对中英文分词都会比较碎,比较细粒度。尤其在中文上平均 token 数高达 1.45,
这意味着 LLaMA 大概率会将中文字符切分为 2 个以上的 token。
2. Chinese LLaMA 扩展词表后,中文平均 token 数显著降低,会将一个汉字或两个汉字切
分为一个 token,提高了中文编码效率。
3. ChatGLM-6B 是平衡中英文分词效果最好的 tokenizer。由于词表比较大,中文处理时间
也有增加
4. BLOOM 虽然是词表最大的,但由于是多语种的,在中英文上分词效率与 ChatGLM-6B
基本相当。