大语言模型之Qwen2技术报告阅读笔记
QWEN2 TECHNICAL REPORT——2024
核心内容
介绍了Qwen2 大模型系列:基于transformer架构的LLMs
通过以下四个部分来展开介绍:
-
Tokenizer & Model
- 四个dense models,参数计数为 0.5 亿、15 亿、70 亿和 720 亿
- 一个Mixture-of-Experts (MoE) 模型,具有 570 亿个参数
-
Pre-training
-
Post-training
-
Evaluation
模型架构
Tokenzier
跟之前的Qwen模型一样,Qwen2作者依然使用了字节级别的字节对编码分词器
- 为什么要使用字节对编码(BPE)分词器???
BPE编码效率高,相比于其他的分词技术具有更好的压缩率,能够促进 Qwen2 的多语言能力
字节级别的字节对编码分词器也叫BBPE,Byte-level BPE(BBPE)和Byte-Pair Encoding (BPE)区别就是BPE是最小词汇是字符级别,而BBPE是字节级别的,通过UTF-8的编码方式这一个字节的256的范围,理论上可以表示这个世界上的所有字符
BPE 的基本思想是通过反复合并频率最高的字符或子词对,逐步构建出较长的单元,从而实现对文本的压缩和高效分词。
工作原理:
- 初始化:将文本中的每个单词视为字符的序列。
- 统计频率:统计文本中每对相邻字符出现的频率。
- 合并频率最高的对:找到频率最高的字符对,并将其合并为一个新的子词。
- 重复:将合并后的子词重新加入文本,更新频率统计,并继续合并频率最高的字符对。
- 终止条件:重复上述过程,直到达到预定的合并次数或不再有字符对可以合并为止
优点:
- 处理未知词汇:BPE 能有效处理未知词汇,因为它将词分解为更小的子词,增加了模型处理新词的能力。
- 减少词汇量:通过合并高频字符对,BPE 可以显著减少词汇表的大小,提高模型训练和推理的效率。
- 灵活性:适用于多种语言和多种文本类型,特别是对粘着语和复合词丰富的语言表现出色。
除了BPE,Transformer中还有两种常用的分词方法:WordPiece 和 Unigram
WordPiece: 是一种子词的分词方法,bert用的就是这种分词方法。
它的核心思想是通过将单词拆分为更小的子词或字符块,从而减少词汇量,并处理未登记词(out-of-vocabulary, OOV)的问题。
与上述BPE只有在合并字词的时候方法不一样:WordPiece 使用了最大似然估计(Maximum Likelihood Estimation, MLE)来选择最优的子词合并。具体来说,WordPiece 通过计算每对相邻子词的联合概率,并选择提升语言模型可能性的组合来进行合并。比如说 P(ed) 的概率比P(e) + P(d)单独出现的概率更大,可能比他们具有最大的互信息值,也就是说这个两子词在语言模型上具有较强的关联性,则将其合并
Unigram:
工作原理: Unigram分词算法是一种基于语言模型的分词方法。它从一个大的词汇表开始,该词汇表包含大量的子词候选,并通过迭代地移除概率最低的子词来优化词汇表
- 初始化:构建一个初始大词汇表,包含所有可能的子词(通常从单字母到整个单词的所有可能组合)
- 估计:计算每个子词的出现概率。这通常通过统计子词在训练数据中的频率来完成
- 优化:重复移除贡献最小的子词,即那些概率最低的子词,再重新估计剩余子词的概率
- 结束:当词汇表大小降至目标大小或满足其他终止条件时,停止优化
横向对比:
算法 | BPE | WordPiece | Unigram |
---|---|---|---|
训练方式 | 从一个小词汇表开始,学习合并token的规则 | 从一个小词汇表开始,学习合并token的规则 | 从大量词汇开始(可以通过BPE获得),学习删除token的规则 |
是否使用语言模型 | 否 | 是 | 是 |
规则 | 合并频次最高的token对,如有两个token对,(h,e)出现10次,(t, e)出现6次,则合并(h,e) | 计算token对的得分,合并得分最高的token对,得分为token对的频率除以两个token分别的频率(互信息) 如h 出现了100次,e出现了20次,he出现了5次,则得分为5/(100*20)=1/400 | 在全部语料中计算删除该token时的损失,删除损失最少的token |
学习结果 | 合并规则及词表 | 词表 | 词表,每个token有对应的分数 |
使用 | 将单词切分成单个字符,使用学到的合并规则从前往后对token进行合并 | 从单词的起始位置开始,找到最长的且位于词表中的subword,重复该步骤。 | 使用训练过程中学到的分数,找到最可能的切分结果。一般偏向将单词切分成尽可能少的token |
优点 | ①简洁高效: BPE的算法相对简单,能够快速找到高频的子词组合,逐步合并字符或子词对,生成稳定的词汇表 ②处理未知 |