当前位置: 首页 > article >正文

【小白学AI系列】NLP 核心知识点(五)Transformer介绍

Transformer

Transformer 是一种基于自注意力机制(Self-Attention Mechanism)的深度学习模型,首次由 Vaswani 等人于 2017 年在论文《Attention is All You Need》中提出。与 RNN 和 LSTM 不同,Transformer 不需要依靠序列顺序进行递归,而是通过全局注意力机制一次性处理整个输入序列,从而具备了更高的计算效率和更强的并行化能力。

Transformer 的提出彻底改变了自然语言处理(NLP)和其他领域的发展,广泛应用于机器翻译、文本生成、语言理解、图像识别等任务。


Transformer 的结构

Transformer 模型由两部分组成:

  1. 编码器(Encoder):用于将输入序列转化为上下文相关的表示。
  2. 解码器(Decoder):用于根据编码器的输出生成新的序列(如翻译成另一种语言)。

Transformer 的基本结构如下:

Transformer
├── 编码器(Encoder)
│   ├── 多头自注意力机制(Multi-Head Attention)
│   ├── 前馈神经网络(Feed-Forward Neural Network)
│   └── 残差连接与层归一化(Residual Connection + Layer Normalization)
│
└── 解码器(Decoder)
    ├── 多头自注意力机制(Multi-Head Attention)
    ├── 编码器-解码器注意力机制
    ├── 前馈神经网络
    └── 残差连接与层归一化

核心机制解析

1. 多头自注意力机制(Multi-Head Self-Attention)

自注意力机制的核心是:每个单词能够根据输入序列的上下文信息,动态地分配注意力权重,从而获得上下文相关的表示。

计算步骤

  1. 将输入序列 ( X ) 通过线性变换生成查询向量(Query, Q)键向量(Key, K)值向量(Value, V)
  2. 计算每个查询向量 ( Q_i ) 与所有键向量 ( K_j ) 之间的相似度,通过 softmax 函数获得注意力权重。
  3. 将注意力权重与对应的值向量 ( V ) 相乘,得到加权后的输出。

公式:
Attention ( Q , K , V ) = softmax ( Q K T d k ) V \text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V Attention(Q,K,V)=softmax(dk QKT)V
其中:

  • ( Q ):查询矩阵
  • ( K ):键矩阵
  • ( V ):值矩阵
  • ( d_k ):向量的维度(用来进行缩放)

多头注意力机制 是将多个自注意力机制并行计算,捕捉到输入序列中不同层次的信息,然后将多个头的输出拼接成最终结果。


2. 前馈神经网络(Feed-Forward Network, FFN)

在自注意力机制后,每个位置的输出会通过一个前馈神经网络(通常是两层全连接层)进行非线性变换,提高模型的非线性表达能力。

公式:
F F N ( x ) = ReLU ( x W 1 + b 1 ) W 2 + b 2 FFN(x) = \text{ReLU}(xW_1 + b_1)W_2 + b_2 FFN(x)=ReLU(xW1+b1)W2+b2
其中 ( W1 ) 和 ( W2 ) 是权重矩阵,( b1 ) 和 ( b2 ) 是偏置项。


3. 残差连接与层归一化(Residual Connection + Layer Normalization)

为了避免梯度消失和梯度爆炸问题,Transformer 在每一层增加了残差连接,并在残差连接之后进行层归一化(Layer Normalization),确保输出保持稳定,提升模型训练的稳定性。

残差连接公式:
Output = LayerNorm ( x + SubLayer ( x ) ) \text{Output} = \text{LayerNorm}(x + \text{SubLayer}(x)) Output=LayerNorm(x+SubLayer(x))
其中 ( x ) 是输入,( \text{SubLayer}(x) ) 是注意力机制或前馈网络的输出。


4. 位置编码(Positional Encoding)

由于 Transformer 不像 RNN 那样依靠序列的顺序信息,因此需要为输入序列加入位置编码,帮助模型捕获序列的时序特征。

位置编码公式:
P E ( p o s , 2 i ) = sin ⁡ ( p o s 1000 0 2 i / d ) PE_{(pos, 2i)} = \sin\left(\frac{pos}{10000^{2i/d}}\right) PE(pos,2i)=sin(100002i/dpos)
P E ( p o s , 2 i + 1 ) = cos ⁡ ( p o s 1000 0 2 i / d ) PE_{(pos, 2i+1)} = \cos\left(\frac{pos}{10000^{2i/d}}\right) PE(pos,2i+1)=cos(100002i/dpos)
其中:

  • ( pos ) 是单词在序列中的位置。
  • ( i ) 是维度索引。
  • ( d ) 是向量的维度。

位置编码将序列的位置信息注入到输入嵌入中,使得模型能够区分“第一个词”和“第二个词”。


Transformer 的应用

1. 机器翻译

Transformer 最初的应用就是机器翻译任务。在机器翻译中:

  • 编码器将源语言的句子转化为上下文表示。
  • 解码器根据上下文生成目标语言句子。

2. 文本生成

GPT(生成预训练模型)是基于 Transformer 解码器结构的文本生成模型,能够根据输入文本生成合理的续写内容。

3. 语言理解

BERT(双向编码器表示模型)是基于 Transformer 编码器结构的语言理解模型,擅长回答问题、文本分类等任务。

4. 图像识别

Vision Transformer(ViT)将图像切分成小块,并将它们视为序列输入到 Transformer 中,从而实现了图像识别任务。


Transformer 的优点和缺点

优点:

  1. 高效并行:相比 RNN 和 LSTM,Transformer 不需要逐步递归处理序列,可以并行处理整个序列,大大提高了训练效率。
  2. 捕获长距离依赖:通过自注意力机制,Transformer 能够轻松捕获长距离的上下文关系。
  3. 结构灵活:编码器和解码器模块可以根据任务需求自由组合。

缺点:

  1. 计算量大:多头自注意力机制和全连接层使得模型计算复杂度较高,对硬件资源要求较高。
  2. 需要大规模数据:Transformer 模型的训练通常需要海量的数据和时间。

经典模型发展

  • 2017 年:Transformer 提出,首次应用于机器翻译,性能超越传统 RNN 和 LSTM。
  • 2018 年:BERT 推出,将 Transformer 编码器用于双向语言理解,成为 NLP 领域的里程碑。
  • 2018 年:GPT(Generative Pretrained Transformer) 推出,将 Transformer 解码器用于文本生成。
  • 2020 年:GPT-3 震惊 NLP 领域,通过 1750 亿参数的预训练模型实现了令人惊艳的文本生成效果。

http://www.kler.cn/a/523537.html

相关文章:

  • NLP模型大对比:Transformer > RNN > n-gram
  • 【Pandas】pandas Series cummax
  • pytorch逻辑回归实现垃圾邮件检测
  • CAPL编程常见问题与解决方案深度解析
  • Android Studio安装配置
  • 【信息系统项目管理师-选择真题】2010上半年综合知识答案和详解
  • 99.19 金融难点通俗解释:营业总收入vs归母净利润vs扣非净利润
  • 新鲜速递:DeepSeek-R1开源大模型本地部署实战—Ollama + MaxKB 搭建RAG检索增强生成应用
  • 数论问题75
  • LeetCode题练习与总结:N 叉树的后序遍历--590
  • 2025年AI Agent(智能体)的发展机会
  • C语言连接Mysql
  • PCIe基础分享
  • TensorFlow实现逻辑回归模型
  • 本地部署 DeepSeek-R1 大模型指南:基于 Ollama 的完整流程
  • Cyber Security 101-Build Your Cyber Security Career-Security Principles(安全原则)
  • 软件工程-软件开发模型
  • RoboMaster- RDK X5能量机关实现案例(一)识别
  • .~C#循环结构
  • Vue学习四—— Home主体页面
  • 数据结构与算法分析:专题内容——人工智能中的寻路4之A*搜索(代码详解)
  • 智慧园区系统分类及其在提升企业管理效率中的创新应用探讨
  • 软件工程概论试题一
  • 服务器上安装Nginx详细步骤
  • Linux:一切皆文件
  • 差分约束系统 + spfa求最短路