3.1 ⼤模型之模型概括

3.1.1语⾔模型的⼀开始就可以被看做是⼀个⿊箱,当前⼤规模语⾔模型的能⼒在于给定⼀个基于⾃身需求的prompt就可以⽣成符合需求的结果。
形式可以表达为:prompt————completion
从数学的⻆度考虑就对训练数据 (traing data: (x1,...,xL))的概率分布:trianingData——p(x1,...,xL)
3.1.2分词:即如何将⼀个字符串拆分成多个标记。
3.1.3模型架构:Transformer架构,这是真正实现⼤型语⾔模型的建模创新。

3.2分词

1.语⾔模型 是⼀个对标记(token)序列的概率分布,其中每个标记来⾃某个词汇表 :[the,mouse,ate,the,cheese]
2.分词器将任意字符串转换为标记序列:the mouse ate the cheese——{the,mouse,ate,the,cheese}这并不⼀定是语⾔建模中最引⼈注⽬的部分,但在确定模型的⼯作效果⽅⾯起着⾮常重要的作⽤。这个⽅式理解为⾃然语⾔和机器语⾔的⼀种显式的对⻬。
3.2.1基于空格的分词
1.解决⽅案是使⽤text.split(' ')⽅式进⾏分词,这种分词⽅式对于英⽂这种按照空格,且每个分词后的单词有语义关系的⽂本是简单⽽直接的分词⽅式。然⽽,对于⼀些语⾔,如中⽂,句⼦中的单词之间没有空格:'你吃早饭了嘛';⽐如德语,存在着⻓的复合词(例如Abwasserbehandlungsanlange);即使在英语中,也有连字符词(例如father-in-law)和缩略词(例如don't),它们需要被正确拆分。因此,仅仅通过空格来划分单词会带来很多问题。
2.什么样的分词才是好的呢?⽬前从直觉和⼯程实践的⻆度来说:
	1.⾸先我们不希望有太多的标记(极端情况:字符或字节),否则序列会变得难以建模。
	2.其次我们也不希望标记过少,否则单词之间就⽆法共享参数(例如,mother-in-law和father-in-law应该完全不同吗?),这对于形态丰富的语⾔尤其是个问题(例如,阿拉伯语、⼟⽿其语等)。
	3.每个标记应该是⼀个在语⾔或统计上有意义的单位。
3.2.2Byte pair encoding
1.将字节对编码(BPE)算法应⽤于数据压缩领域,⽤于⽣成其中⼀个最常⽤的分词器。
2.Unicode的问题
3.2.3Unigram model (SentencePiece)
1.种基于⽬标函数的分词模型可以适应更好分词场景
2.似然值,是根据 unigram 模型计算得出的概率,表示训练数据的似然度。这个值代表了根据 unigram 模型,将训练数据分词为所给的分词结果 的概率。
3.unigram 模型通过统计每个词汇在训练数据中的出现次数来估计其概率。
4.算法流程

3.3模型架构

1.上下⽂向量表征 (Contextual Embedding): 作为先决条件,主要的关键发展是将标记序列与相应的上下⽂的向量表征:
3.3.1语⾔模型分类
1.起源来⾃于Transformer模型,这个模型是编码-解码端 (Encoder-Decoder)的架构。
2.当前对于语⾔模型的分类三个类型:编码端(Encoder-Only),解码端(Decoder-Only)和编码-解码端(Encoder-Decoder)。
3.3.1.1编码端(Encoder-Only)架构
1.编码端架构的著名的模型如BERT、RoBERTa等。这些语⾔模型⽣成上下⽂向量表征,但不能直接⽤于⽣成⽂本。
2.该架构的优势是对于⽂本的上下⽂信息有更好的理解,因此该模型架构才会多⽤于理解任务。
3.优点是对于每个xi ,上下⽂向量表征可以双向地依赖于左侧上下⽂(x1:i-1)和右侧上下⽂x(i+1):L。
4.缺点在于不能⾃然地⽣成完成⽂本,且需要更多的特定训练⽬标(如掩码语⾔建模)。
3.3.1.2解码器(Decoder-Only)架构
1.解码器架构的著名模型就是⼤名鼎鼎的GPT系列模型-⾃回归语⾔模型。
2.优点为能够⾃然地⽣成完成⽂本,有简单的训练⽬标(最⼤似然)。
3.缺点也很明显,对于每个 xi,上下⽂向量表征只能单向地依赖于左侧上下⽂ (x1:i-1)。
3.3.1.3编码-解码端(Encoder-Decoder)架构
1.编码-解码端架构就是最初的Transformer模型,其他的还有如BART、T5等模型。
2.在某种程度上结合了两者的优点:它们可以使⽤双向上下⽂向量表征来处理输⼊x1:L,并且可以⽣成输出y1:L。
3.缺点就说需要更多的特定训练⽬标。

3.4语⾔模型理论

1.
3.4.1基础架构
1.⾸先,我们需要将标记序列转换为序列的向量形式。
3.4.2递归神经⽹络
1.第⼀个真正的序列模型是递归神经⽹络(RNN),它是⼀类模型,包括简单的RNN、LSTM和GRU。
3.4.3Transformer
1.推动⼤型语⾔模型发展的序列模型。
3.4.3.1注意⼒机制
3.4.3.2残差连接和归⼀化
1.残差连接:计算机视觉中的⼀个技巧是残差连接(ResNet)。
2.层归⼀化:另⼀个技巧是层归⼀化
3.4.3.3位置嵌⼊

3.5总结:

1.GPT-3架构,只需将Transformer块堆叠96次即可。

3.6混合专家模型

3.6.1基础知识
3.6.1.1示例:每个专家都是⼀个线性分类器
3.6.1.2训练:反向传播来学习混合专家模型
3.6.1.3节约计算:,⻔控函数g(x)=[g1(x),...,gE(x)]对于每个专家都是⾮零的。
3.6.1.4平衡专家
1.只有所有专家都参与进来,混合专家才有效。
2.如果只有⼀个专家处于活跃状态(例如,g(x)=[0,1,0,0]),那么这就是浪费。
3.此外,如果我们⼀直处于这种状态,那么未使⽤的专家的梯度将为零,因此他们将不会收到任何梯度并得到改善。
4.因此,使⽤混合专家的主要考虑因素之⼀是确保所有专家都能被输⼊使⽤。
3.6.1.5并⾏
1.混合专家⾮常有利于并⾏。
2.每个专家都可以放置在不同的机器上。
3.我们可以在中⼼节点计算近似⻔控函数g(x)。
4.然后,我们只要求包含激活专家的机器(稀疏)来处理x 。
3.6.2Sparsely-gated mixture ofexperts
3.6.2.1符号定义:
3.6.2.2平衡专家
3.6.2.3示例
3.6.3Switch Transformer
3.6.4Balanced Assignment of Sparse Experts (BASE) layers
3.6.4.1实验设置
3.6.4.2总结和下⼀步⼯作
3.6.5Generalist Language Model (GLaM) (Du et al. 2021)
3.6.5.1规格:
3.6.5.2其他:
3.6.5.3结果:
3.6.5.4WinoGender上的结果:
3.6.6FacebookMoE (Artetxe et al.,2021)
3.6.6.1实验设置:
3.6.6.2示例:
3.6.7Decentralized mixture-of-experts (Ryabinin & Gusev, 2020)
3.6.7.1动机:
3.6.7.2主要考虑因素:
3.6.7.3分布式哈希表:
3.6.7.4论⽂实验:
3.6.8Diskin et al., 2021:
3.6.9总结
1.混合专家:起源于将不同专家应⽤于不同输⼊的经典理念
2.允许训练更⼤的语⾔模型(1.1万亿个参数)
3.与稠密Transformer模型相⽐,每个输⼊的效率⾼得多(FLOP更少)
4.效果难以⽐较:在相同规模上,直接⽐较仍然具有挑战性(GPT-3与GLaM与FacebookMoE)
5.对权⼒下放的重⼤影响

3.7基于检索的模型

1.基于检索的(或检索增强的、记忆增强的模型),它可以帮助我们突破稠密Transformer的缩放上限。
3.7.1编码器-解码器
3.7.2检索⽅法
3.7.3 Retrieval-augmented generation (RAG) (Lewis et al., 2020)
3.7.3.1检索器:
3.7.3.2⽣成器:
3.7.3.3训练:
3.7.3.4实验:
3.7.4RETRO (Borgeaud et al., 2021)
3.7.4.1实验结果
3.7.5讨论
1.基于检索的模型⾼度适合知识密集型的问答任务。
2.除了可扩展性之外,基于检索的模型还提供了可解释性和更新存储库的能⼒。
3.⽬前尚不清楚这些模型是否具有与稠密Transformer相同的通⽤能⼒。

3.8总体总结:

1.为了扩⼤模型规模,需要改进稠密Transformer。
2.混合专家和基于检索的⽅法相结合更有效。
3.如何设计更好的、可扩展的体系结构仍然是⼀个悬⽽未决的问题。
01-21 22:33