大模型学习 (Datawhale_Happy-LLM)笔记7: Encoder-Decoder PLM

大模型学习 (Datawhale_Happy-LLM)笔记7: Encoder-Decoder PLM

1. Encoder-Decoder架构概述

1.1 架构基础

Encoder-Decoder PLM是基于原始Transformer架构的完整实现,它同时保留了编码器(Encoder)和解码器(Decoder)两个核心组件。这种设计使得模型能够兼具文本理解和生成的双重能力,特别适合处理序列到序列(Seq2Seq)的转换任务。

1.2 核心特点

完整性保留:与仅使用Encoder的BERT [1] 和仅使用Decoder的GPT 不同,Encoder-Decoder架构完整保留了原始Transformer的双重结构,体现了Transformer设计的完整性。

双向处理能力:编码器进行双向编码,能够充分理解输入序列的上下文信息;解码器进行单向生成,确保生成过程的自回归特性。

序列转换专长:专门设计用于处理输入序列到输出序列的转换任务,如机器翻译、文本摘要、问答系统等。

1.3 工作原理

Encoder-Decoder模型的工作流程可以分为三个主要阶段:

  1. 编码阶段:Encoder对输入序列进行双向编码,生成包含丰富上下文信息的表示向量
  2. 解码阶段:Decoder基于编码表示和已生成的部分序列,逐步生成目标序列
  3. 交互机制:通过交叉注意力机制实现编码器和解码器之间的信息传递

2. T5模型:Encoder-Decoder架构的典型代表

2.1 T5模型概述

T5(Text-to-Text Transfer Transformer)是Google推出的Encoder-Decoder PLM的典型代表 [4][5],它体现了"大一统"的设计思想,将所有NLP任务统一为"文本到文本"的处理框架。

2.2 核心创新:Text-to-Text统一框架

T5的最大创新在于其统一的任务范式设计:

统一输入输出格式:所有任务的输入和输出都是自然语言文本,消除了不同任务间的格式差异。

任务前缀机制:通过在输入文本前添加任务描述前缀来区分不同的任务类型,例如:

  • 摘要任务:"summarize: [原文本]" → "[摘要文本]"
  • 翻译任务:"translate English to German: [英文文本]" → "[德文文本]"
  • 问答任务:"question: [问题] context: [上下文]" → "[答案]"

大一统思想的优势

  • 简化了任务处理流程,统一的输入输出格式降低了系统复杂度
  • 增强了模型的通用性,单一模型可以处理多种NLP任务
  • 便于模型微调,统一框架使得模型更容易适应新任务
  • 提高了实际应用的效率,为产业应用提供了更便捷的解决方案

3. T5详细架构分析

3.1 整体架构设计

T5模型主要由两个核心部分组成:

T5模型
├── Tokenizer部分
│   ├── 文本分词
│   ├── 编码转换
│   └── 输入格式化
└── Transformer部分
    ├── EncoderLayers
    │   └── 多个EncoderLayer Block
    └── DecoderLayers
        └── 多个DecoderLayer Block

3.2 EncoderLayer详细结构

每个EncoderLayer包含以下核心组件:

组件构成

  1. Self-Attention机制
  2. LayerNorm层(使用RMSNorm)
  3. 前馈神经网络(LayerFF)
  4. 残差连接

处理流程

输入 → LayerNorm → Self-Attention → 残差连接 → LayerNorm → LayerFF → 残差连接 → 输出

3.3 DecoderLayer详细结构

每个DecoderLayer的组件构成更为复杂:

组件构成

  1. Masked Self-Attention机制
  2. Encoder-Decoder Attention机制
  3. LayerNorm层(使用RMSNorm)
  4. 前馈神经网络(LayerFF)
  5. 残差连接

处理流程

输入 → LayerNorm → Masked Self-Attention → 残差连接 
     → LayerNorm → Encoder-Decoder Attention → 残差连接
     → LayerNorm → LayerFF → 残差连接 → 输出

3.4 Self-Attention机制解析

核心组件

  • Query、Key、Value状态计算
  • 注意力权重计算(QK^T)
  • 位置偏置(Position Bias)
  • Softmax归一化
  • 加权求和(MatMul)

计算流程

hidden_states → Query/Key/Value变换
Query × Key^T → attention_scores
attention_scores + position_bias → scaled_scores
Softmax(scaled_scores) → attention_weights
attention_weights × Value → output

4. RMSNorm技术创新

4.1 RMSNorm数学原理

T5模型采用RMSNorm替代传统的LayerNorm,这是一个重要的技术创新。RMSNorm的数学公式为:

RMSNorm ( x i ) = x i 1 n ∑ j = 1 n x j 2 + ϵ ⋅ g i \text{RMSNorm}(x_i) = \frac{x_i}{\sqrt{\frac{1}{n}\sum_{j=1}^{n}x_j^2 + \epsilon}} \cdot g_i RMSNorm(xi)=n1j=1nxj2+ϵ xigi

其中:

  • x i x_i xi 是输入向量的第i个元素
  • g i g_i gi 是可学习的缩放参数(对应代码中的weight)
  • n n n 是输入向量的维度数量
  • ϵ \epsilon ϵ 是一个小常数,用于数值稳定性(避免除零)

4.2 RMSNorm的技术优势

计算效率提升:相比LayerNorm只需要计算均方根而不需要计算均值,减少了计算复杂度。

参数简化:只有一个可学习的缩放参数,模型参数更加简洁。

数值稳定性:通过ε参数有效避免了除零情况,提高了训练的稳定性。

适应性增强:能够更好地适应不同任务和数据集的特点。

4.3 代码实现

class RMSNorm(nn.Module):
    def __init__(self, dim: int, eps: float):
        super().__init__()
        self.eps = eps
        self.weight = nn.Parameter(torch.ones(dim))
    
    def _norm(self, x):
        return x * torch.rsqrt(x.pow(2).mean(-1, keepdim=True) + self.eps)
    
    def forward(self, x):
        output = self._norm(x.float()).type_as(x)
        return output * self.weight

5. 位置编码与交互机制

5.1 相对位置编码

T5使用相对位置编码处理长序列中的位置信息,这种方法相比绝对位置编码具有更好的泛化能力。通过在注意力计算中加入position_bias,帮助模型理解token之间的相对位置关系。

5.2 Encoder-Decoder交互

交叉注意力机制

  • Query来源:Decoder的隐藏状态
  • Key和Value来源:Encoder的输出表示
  • 作用:建立输入序列和输出序列之间的依赖关系

Mask机制

  • Encoder:使用双向注意力,没有mask限制
  • Decoder:使用单向注意力,通过mask防止信息泄露

5.3 前馈神经网络(LayerFF)

结构设计

输入 → Linear变换 → GELU激活 → Dropout → Linear变换 → 输出

关键特点

  • 隐藏维度通常是模型维度的4倍
  • 使用GELU激活函数而非ReLU
  • 包含Dropout层防止过拟合

6. 技术特点与性能分析

6.1 技术优势

任务适应性强:完整的Encoder-Decoder架构使得模型能够很好地处理各种Seq2Seq任务,从文本摘要到机器翻译都能胜任。

生成质量高:结合了双向编码和单向生成的优势,既能充分理解输入内容,又能保证生成的连贯性。

统一处理能力:T5的Text-to-Text框架可以用统一的方式处理不同类型的NLP任务,大大简化了模型部署和维护。

可解释性好:编码-解码的过程相对清晰,便于理解模型的决策过程。

6.2 技术局限

计算复杂度高:需要同时维护编码器和解码器,计算资源消耗较大。

参数量庞大:相比单一结构模型,参数量更多,对硬件要求更高。

推理速度较慢:双重结构导致推理效率相对较低,不利于实时应用。

7. 应用场景与实践

7.1 适用任务

文本摘要:从长文本生成简洁的摘要,T5在各种摘要任务上都表现优异。

机器翻译:不同语言间的文本转换,能够处理多语种翻译任务。

问答系统:基于给定上下文回答问题,适合构建智能问答应用。

文本改写:改变文本的风格或表达方式,保持语义不变。

对话生成:基于上下文生成合适的对话回复。

7.2 实际应用考虑

在实际应用中,需要根据具体需求选择合适的模型架构:

  • 对于纯文本分类任务,Encoder-only模型更高效
  • 对于大规模文本生成,Decoder-only模型更适合
  • 对于需要精确控制输入输出映射关系的应用,Encoder-Decoder模型是最佳选择

参考文献

[1] Jacob Devlin, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. (2019). BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. arXiv preprint arXiv:1810.04805.

[2] Yinhan Liu, Myle Ott, Naman Goyal, Jingfei Du, Mandar Joshi, Danqi Chen, Omer Levy, Mike Lewis, Luke Zettlemoyer, and Veselin Stoyanov. (2019). RoBERTa: A Robustly Optimized BERT Pretraining Approach. arXiv preprint arXiv:1907.11692.

[3] Zhenzhong Lan, Mingda Chen, Sebastian Goodman, Kevin Gimpel, Piyush Sharma, and Radu Soricut. (2020). ALBERT: A Lite BERT for Self-supervised Learning of Language Representations. arXiv preprint arXiv:1909.11942.

[4] Colin Raffel, Noam Shazeer, Adam Roberts, Katherine Lee, Sharan Narang, Michael Matena, Yanqi Zhou, Wei Li, and Peter J. Liu. (2023). Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer. arXiv preprint arXiv:1910.10683.

[5] Colin Raffel, Noam Shazeer, Adam Roberts, Katherine Lee, Sharan Narang, Michael Matena, Yanqi Zhou, Wei Li, and Peter J. Liu. (2020). Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer. Journal of Machine Learning Research, 21(140), 1-67.

思维导图

Encoder-Decoder PLM Mindmap

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值