【大模型基础_毛玉仁】2.4 基于 Encoder-Decoder 架构的大语言模型
更多内容:XiaoJ的知识星球
目录
- 2.4 基于 Encoder-Decoder 架构的大语言模型
- 2.4.1 Encoder-Decoder 架构
- 2.4.2 T5 语言模型
- 1)T5 模型结构
- 2)T5 预训练方式
- 3)T5 下游任务
- 2.4.3 BART 语言模型
- 1)BART 模型结构
- 2)BART 预训练方式
2.4 基于 Encoder-Decoder 架构的大语言模型
Encoder-Decoder 架构在 Encoder-only 架构的基础上引入 Decoder 组件,以完成机器翻译等序列到序列(Sequence to Sequence, Seq2Seq)任务。
.
2.4.1 Encoder-Decoder 架构
Encoder-Decoder架构:编码器+解码器
编码器Encoder:
-
多个编码模块组成,每个编码模块包含:一个自注意力模块、一个全连接前馈模块。
-
模型的输入序列在通过编码器部分后,会被转变为固定大小的上下文向量,这个向量包含了输入序列的丰富语义信息。
解码器Decoder:
-
多个解码模块堆组成,每个解码模块包含:一个带掩码的自注意力模块、一个交叉注意力模块和一个全连接前馈模块。
-
带掩码的自注意力模块:引入掩码机制防止未来信息的“泄露”,确保解码过程的自回归特性。
-
交叉注意力模块:实现了解码器与编码器之间的信息交互,对生成与输入序列高度相关的输出至关重要。
图 2.10: Encoder-Decoder 架构
自注意模块在编码器和解码器中的注意力目标不同的。
-
在编码器中,采用双向注意力机制以全面捕捉上下文信息。
-
在解码器中,自注意力机制则是单向的,仅以上文为条件来解码得到下文。通过掩码操作避免解码器“窥视”未来的信息。
交叉注意力通过将解码器的查询(query) 与编码器的键(key) 和值(value) 相结合,实现了两个模块间的有效信息交流。
通过自注意力和交叉注意力机制的结合,Encoder-Decoder 架构能够高效地编码输入信息并生成高质量的输出序列。
-
自注意力机制:确保了输入序列和生成序列内部的一致性和连贯性。
-
交叉注意力机制:确保解码器在生成每个输出 Token 时都能参考输入序列的全局上下文信息,从而生成与输入内容高度相关的结果。
在这两个机制的共同作用下,Encoder-Decoder 架构不仅能够深入理解输入序列,还能够根据不同任务的需求灵活生成长度适宜的输出序列,在机器翻译、文本摘要、 问答系统等任务中得到了广泛应用。
本节将介绍两种典型的基于 Encoder-Decoder 架构的代表性大语言模型:T5 和 BART。
.
2.4.2 T5 语言模型
T5(Text-to-Text Transfer Transformer)
通常,每种自然语言处理任务都需要对训练数据、模型架构和训练策略进行定制化设计。这不仅耗时耗力,而且模型难复用。
为了解决这一问题,Google 提出基于 Encoder-Decoder 架构的大型预训练语言模型 T5(Text-to-Text Transfer Transformer), 其采用统一的文本到文本的转换范式来处理多种任务。
1)T5 模型结构
T5 模型的核心思想:将多种 NLP 任务统一到一个文本转文本的生成式框架中。
在此统一框架下,T5 通过不同的输入前缀来指示模型执行不同任务,然后生成相应的任务输出,这种方法可以视为早期的提示(Prompt)技术。
图 2.11: 传统语言模型和 T5 统一框架
在模型架构方面,T5 与原始的包括一个编码器和一个解码器的 Transformer 架构相同。每个编码器和解码器又分别由多个编码模块和解码模块堆叠而成。
T5 模型根据不同的参数,提供 T5-Small、T5-Base、T5- Large、T5-3B 以及 T5-11B 五个版本
2)T5 预训练方式
T5收集了C4 数据集(Colossal Clean Crawled Corpus)进行训练,其覆盖了各种网站和文本类型。
T5 提出了名为 Span Corruption 的预训练任务。从输入中选择 15% 的 Token 进行破坏,每次都选择连续三个 Token 作为一 个小段(span)整体被掩码成 [MASK]。
与 BERT 模型中采用的单个 Token 预测不同,T5 模型需要对整个被遮挡的连续文本片段进行预测。这一设计要 求模型不仅等理解局部词汇的表面形式,还要可以捕捉更深层次的句子结构和上 下文之间的复杂依赖关系。
3)T5 下游任务
T5 模型可以在完全零样本(Zero-Shot)的情况下,利用 Prompt 工程技术直接适配到多种下游任务。
同时,T5 模型也可以通过微调(Fine-Tuning)来适配到特定的任务。
如今,T5 模型已 经衍生了许多变体,例如,mT5[43] 模型扩展了对 100 多种语言的支持,T0[31] 模型通过多任务训练增强了零样本学习(Zero-Shot Learning) 能力,Flan-T5[8] 模型专注于通过指令微调,以实现进一步提升模型的灵活性和效率等等。
.
2.4.3 BART 语言模型
BART(Bidirectional and Auto-Regressive Transformers)
-
中文解释:双向自回归Transformers
-
通过多样化的预训练任务,来提升模型在文本生成任务和文本理解任务上的表现。
1)BART 模型结构
BART 的模型结构同 Transformer 架构,包括一个编码器和一个解码器。每个编码器和解码器分别由多个编码模块和解码模块堆叠而成。
BART 模型有两个版本,分别是 BART-Base 以及 BART-Large。
2)BART 预训练方式
在预训练数据上,BART 使用了与 RoBERTa 相同的语料库。
在预训练任务上,BART 以重建被破坏的文本为目标。
通过以下五个任务来破坏文本,然后训练模型对原始文本进行恢复。
-
Token 遮挡任务(Token Masking):在原文中随机将一部分 Token 替换为 [MASK],从而训练模型推断被删除的 Token 内容的能力。
-
Token 删除任务(Token Deletion):在原文中随机删除一部分 Token,从而训练模型推断被删除的 Token 位置以及内容的能力。
-
连续文本填空任务(Text Infilling):在原文中选择几段连续的 Token(每段作为一个 span),整体替换为 [MASK]。span 长度服从 λ = 3 的泊松分布,如长度为 0 则直接插入一个 [MASK]。 这一任务旨在训练模型推断一段 span 及其长度的能力。
-
句子打乱任务(Sentence Permutation):将给定文本拆分为多个句子,并随机打乱句子的顺序。旨在训练模型推理前后句关系的能力。
-
文档旋转任务(Document Rotation):从给定文本中随机选取一个 Token,作为文本新的开头进行旋转。旨在训练模型找到文本合理起始点的能力。
BART 不仅在文本生成任务上表现出色,也能适应文本理解类任务的挑战。
.
小结:
综上所述,基于 Encoder-Decoder 架构的大语言模型,在生成任务中展示了良好的性能表现。表2.2从模型参数量和预训练语料规模的角度对本章提到的基于 Encoder-Decoder 架构的模型进行了总结。可以看出此时模型参数数量的上限已达 110 亿。
表 2.2: Encoder-Decoder 架构代表模型参数和语料大小表。
模型 | 发布时间 | 参数量(亿) | 语料规模 |
---|---|---|---|
T5 | 2019.10 | 0.6-110 亿 | 750GB |
mT5 | 2020.10 | 3-130 亿 | 9.7TB |
T0 | 2021.10 | 30-110 亿 | 约 400GB |
BART | 2019.10 | 1.4-4 亿 | 约 20GB |
mBART | 2020.06 | 0.4-6.1 亿 | 约 1TB |
在模型结构和参数规模的双重优势下,相较于基于 Encoder-only 架构的模型,这些模型在翻译、摘要、问答等任务中取得了更优的效果。
.
声明:资源可能存在第三方来源,若有侵权请联系删除!