Chapter 3
1. 分词
分词的方法:
基于空格的分词
Byte pair encoding(BPE)
a. Input(输入):训练语料库(字符序列)。
b. Step1. 初始化词汇表 为字符的集合。
c. while(当我们仍然希望继续增长时):
d. Step2. 找到中共同出现次数最多的元素对 x,x′。
e. Step3. 用一个新的符号 替换所有 x,x′的出现。
f. Step4. 将 添加到V中。
Unicode的问题
Unicode(统一码)是当前主流的一种编码方式。其中这种编码方式对BPE分词产生了一个问题(尤其是在多语言环境中),Unicode字符非常多(共144,697个字符)。在训练数据中我们不可能见到所有的字符。
为了进一步减少数据的稀疏性,我们可以对字节而不是Unicode字符运行BPE算法(Wang等人,2019年)。
以中文为例:
BPE算法在这里的作用是为了进一步减少数据的稀疏性。通过对字节级别进行分词,可以在多语言环境中更好地处理Unicode字符的多样性,并减少数据中出现的低频词汇,提高模型的泛化能力。通过使用字节编码,可以将不同语言中的词汇统一表示为字节序列,从而更好地处理多语言数据。
- Unigram model (SentencePiece)
2. 语言模型的分类
1) Encoder-Only
生成上下文向量表征,但不能直接用于生成文本
代表模型:BERT、RoBERTa
优点:
对于文本的上下文信息有更好的理解,对于每个 ,上下文向量表征可以双向地依赖于左侧上下文 和右侧上下文 。
缺点:
- 不能自然地生成完成文本
- 需要更多的特定训练目标(如掩码语言建模)
用途:
自然语言理解任务:如分类任务:情感分析
2) Decoder-Only
给定一个提示 ,它们可以生成上下文向量表征,并对下一个词元 (以及递归地,整个完成 ) 生成一个概率分布。
常见的自回归模型或者叫Casual language model.
代表模型:GPT系列
优点:能够自然地生成完成文本,有简单的训练目标(最大似然)
缺点:对于每个 ,上下文向量表征只能单向地依赖于左侧上下文 () (因为后面的文本内容是不知道的,被MASK掉了)
3) Encoder-Decoder
最初的trasformer架构,它们可以使用双向上下文向量表征来处理输入 ,并且可以生成输出 。
代表模型:T5
优点:该模型的具有编码端,解码端两个架构的共同的优点,对于每个 ,上下文向量表征可以双向地依赖于左侧上下文 ) 和右侧上下文 ( ),可以自由的生成文本数据。
缺点:需要更多的特定训练目标。