Transformer模型与Attention机制是什么

Transformer 的核心设计

Transformer 是一种基于自注意力机制(Self-Attention) 的深度学习模型架构,由 Google 团队在 2017 年提出(论文《Attention Is All You Need》)。它彻底改变了传统的序列建模方式(如 RNN 和 CNN),成为现代大语言模型(如 GPT、BERT)和跨模态模型(如 Vision Transformer)的核心基础。

Transformer模型架构

在这里插入图片描述

📖 Transformer模型的核心组件及其作用如下:

  1. 编码器-解码器架构(Encoder-Decoder)

    • 编码器:将输入序列(如文本、图像块)转换为高维语义表示。
      对文本的实现:使用词嵌入矩阵(如 Word2Vec 或可学习的嵌入层);
      对图像的实现:将图像切分为块(Patch),线性投影为向量(Vision Transformer)。
    • 解码器:基于编码器的输出生成目标序列(如翻译结果、文本续写)。
    • 某些模型(如 BERT)仅使用编码器,GPT 仅使用解码器。
  2. 自注意力机制(Self-Attention)

    • 通过计算序列中每个位置与其他位置的关联权重,动态捕捉全局依赖关系。
      例如:在句子The cat didn't eat because it was hungry中,模型通过自注意力直接关联itcat,无需逐步传递信息。
  3. 多头注意力(Multi-Head Attention)

    • 并行使用多个独立的注意力头,捕获不同维度的语义关联(如语法、指代、情感)。
  4. 位置编码(Positional Encoding)
    为输入序列添加位置信息(如正弦函数或可学习的嵌入向量),弥补自注意力机制对顺序不敏感的特性。

    • 绝对位置编码:使用正弦/余弦函数(原始论文)或可学习的嵌入向量。
    • 相对位置编码:通过注意力计算中的偏置项隐式建模位置关系(如 T5 模型)。
    • 公式(以正弦编码为例):
      P E ( p o s , 2 i ) = sin ⁡ ( p o s 1000 0 2 i / d model ) , P E ( p o s , 2 i + 1 ) = cos ⁡ ( p o s 1000 0 2 i / d model ) PE_{(pos, 2i)} = \sin\left(\frac{pos}{10000^{2i/d_{\text{model}}}}\right), \quad PE_{(pos, 2i+1)} = \cos\left(\frac{pos}{10000^{2i/d_{\text{model}}}}\right) PE(pos,2i)=sin(100002i/dmodelpos),PE(pos,2i+1)=cos(100002i/dmodelpos)
      其中, p o s pos pos:位置序号, i i i:维度序号, d model d_{\text{model}} dmodel:模型维度。
  5. 前馈网络(Feed-Forward Network, FFN)

    • 每个位置的输出经过全连接层和非线性激活(如 ReLU),增强模型表达能力。
      FFN ( x ) = max ⁡ ( 0 , x W 1 + b 1 ) W 2 + b 2 \text{FFN}(x) = \max(0, xW_1 + b_1)W_2 + b_2 FFN(x)=max(0,xW1+b1)W2+b2
  6. 残差连接与层归一化

    • 残差连接:将模块的输入与输出相加,缓解梯度消失问题。
      x out = x in + Sublayer ( x in ) x_{\text{out}} = x_{\text{in}} + \text{Sublayer}(x_{\text{in}}) xout=xin+Sublayer(xin)
    • 层归一化:对每个样本的特征维度进行归一化,加速训练收敛。
  7. 掩码注意力Masked Attention,仅解码器)

    • 作用:在解码器中,确保生成第 t 个词时仅关注前 t-1 个词(防止未来信息泄露)。
    • 实现:在注意力权重矩阵的上三角区域(未来位置)填充负无穷(softmax 后变为 0)。

Transformer的优势与局限

  • 优势

    1. 并行计算能力强,适合 GPU 加速。
    2. 长距离依赖建模能力优异(如段落级指代消解)。
    3. 架构灵活,可扩展至多模态任务(如文本+图像)。
  • 局限

    1. 自注意力计算复杂度为 O ( n 2 ) O(n^2) O(n2),长序列处理成本高(需稀疏注意力优化)。
    2. 位置编码对绝对/相对位置的建模仍有改进空间。
    3. 小数据场景下容易过拟合(需大规模预训练)。

注意力机制(Attention Mechanism)

基本概念与分类

注意力机制是一种让模型动态聚焦于输入中重要部分的技术,灵感来源于人类视觉和语言理解中的选择性关注。其核心思想是:根据当前任务需求,为不同输入分配不同的权重

📖 常见的注意力机制有以下几种:

  1. 软性注意力(Soft Attention)

    • 权重通过概率分布表示(如 0.7 关注词 A,0.3 关注词 B),可微分,适合端到端训练。
    • 示例:在机器翻译中,生成目标词时,模型可能更关注源句子中的特定词。
  2. 硬性注意力(Hard Attention)

    • 权重为 0 或 1(非此即彼),不可微分,需强化学习优化(应用较少)。
  3. 自注意力(Self-Attention)

    • 同一序列内部的注意力,用于捕捉序列内元素的依赖关系(如 Transformer 中的核心机制)。
  4. 交叉注意力(Cross-Attention)

    • 不同序列之间的注意力,例如解码器在生成目标词时关注编码器的输出。

Transformer中的Self-attention机制

在这里插入图片描述


🐱 以单头自注意力为例,其计算过程为:

  1. 将输入转换为 Query(Q)、Key(K)、Value(V)矩阵。
  2. 计算单头注意力权重:

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

其中 d k d_k dk 为 Key 的维度,用于缩放防止梯度爆炸。

  1. 输出为加权后的 Value 向量之和。

🦁 计算多头注意力的过程如下:

  1. 将 Q、K、V 拆分为 h 个头(如 8 头)。
  2. 每个头独立计算自注意力。
  3. 拼接所有头的输出并通过线性层融合。

MultiHead ( Q , K , V ) = Concat ( head 1 , . . . , head h ) W O \text{MultiHead}(Q, K, V) = \text{Concat}(\text{head}_1, ..., \text{head}_h)W^O MultiHead(Q,K,V)=Concat(head1,...,headh)WO
其中 W O W^O WO 为输出投影矩阵。

Transformer与注意力机制的关系

1. 注意力机制是 Transformer 的核心组件

  • Transformer 完全依赖注意力机制(尤其是自注意力和交叉注意力)来建模序列内和序列间的依赖关系,摒弃了传统的循环(RNN)或卷积(CNN)结构。
  • 自注意力机制的优势
    • 并行计算:所有位置同时计算,大幅提升训练速度(对比 RNN 的时序依赖)。
    • 全局依赖:直接捕捉任意距离的关联,解决 RNN 的长程依赖问题。
    • 可解释性:注意力权重可视化可解释模型的关注点(如情感分析中关注关键词)。

2. Transformer 是对注意力机制的扩展与优化

  • 多头注意力:通过并行多个注意力头,捕获多样化的语义关联(如同时关注句法结构和语义角色)。
  • 位置编码:弥补纯注意力机制对位置信息的忽略,使模型理解顺序。
  • 残差连接与层归一化:解决深层网络训练中的梯度问题,使模型更易优化。

Transformer与RNN模型的对比

对比维度TransformerRNN(含 LSTM/GRU)
核心结构基于自注意力机制的编码器-解码器架构,无循环结构。基于循环单元(如简单 RNN、LSTM、GRU)的链式结构,按时间步处理序列。
并行计算能力:自注意力可同时计算序列所有位置的关联,充分利用 GPU 并行性。:必须按时间步顺序计算,无法并行处理序列。
长距离依赖处理:自注意力直接建模任意距离的依赖关系,无信息衰减。:依赖时间步传递,长距离易出现梯度消失/爆炸(LSTM/GRU 部分缓解)。
计算复杂度 O ( n 2 ) O(n^2) O(n2)(n 为序列长度),长序列计算成本高。 O ( n ) O(n) O(n)(线性复杂度),但无法并行导致实际训练时间更长。
位置信息处理显式位置编码(如正弦函数、可学习向量)注入位置信息。隐式通过时间步顺序处理位置,无显式编码。
训练效率:并行计算大幅缩短训练时间(如 GPT-3 训练需数千 GPU 天)。:时间步串行导致训练慢,尤其对长序列。
内存消耗:需存储所有位置的注意力矩阵(显存占用随序列长度平方增长)。:仅需存储当前时间步的隐状态(内存占用线性增长)。
模型深度支持:残差连接 + 层归一化支持数百层深度(如 GPT-4)。:深层 RNN 易梯度消失,通常不超过 10 层。
动态权重分配通过自注意力权重动态聚焦关键位置(如关键词、图像区域)。固定权重:循环单元参数在时间步间共享,无法动态调整关注点。
典型变体BERT(仅编码器)、GPT(仅解码器)、ViT(视觉 Transformer)、T5(编码器-解码器)。LSTM(长短期记忆)、GRU(门控循环单元)、BiRNN(双向 RNN)。
训练数据需求:依赖大规模预训练数据(如千亿 token)才能发挥优势。:小规模数据下可能表现更好(尤其任务数据有限时)。
推理延迟:解码时需计算完整注意力矩阵(可通过 KV 缓存优化)。:逐时间步生成,内存占用稳定。
应用场景文本生成(GPT)、翻译(Transformer)、图像分类(ViT)、语音识别(Conformer)等。时间序列预测、短文本分类、早期机器翻译、简单对话系统(如 ELMo)。
可解释性:注意力权重可可视化(如显示模型关注哪些词)。:隐状态含义难以直接解释。
硬件适配依赖高性能 GPU/TPU(需大显存和并行计算能力)。可在低端设备运行(计算需求较低)。

GPT-3 模型参数量一窥

GPT-3模型中的权重参数量超过1750亿个。

在这里插入图片描述

  • Embedding组件12288 d_embed * 50257 n_vocab
  • Key组件128 d_query * 12288 d_embed * 96 n_heads * 96 n_layers
  • Query组件128 d_query * 12288 d_embed * 96 n_heads * 96 n_layers
  • Value组件128 d_value * 12288 d_embed * 96 n_heads * 96 n_layers
  • Output组件12288 d_embed * 128 d_value * 96 n_heads * 96 n_layers
  • Up-projection组件49152 neurons * 12288 d_embed * 96 n_layers
  • Down-projection组件12288 d_embed * 49152 neurons * 96 n_layers
  • Unembedding组件*:50257 n_vocab * 12288 d_embed

推荐延伸阅读

【1】Attention Is All You Need, https://arxiv.org/abs/1706.03762
【2】Transformers (how LLMs work) explained visually | DL5, https://www.youtube.com/watch?v=wjZofJX0v4M
【3】Attention in transformers, step-by-step | DL6, https://www.youtube.com/watch?v=eMlx5fFNoYc
【4】What does it mean for computers to understand language? | LM1, https://www.youtube.com/watch?v=1il-s4mgNdI
【5】The History of ChatGPT, https://www.youtube.com/watch?v=OFS90-FX6pg
【6】Let’s build GPT: from scratch, in code, spelled out., https://www.youtube.com/watch?v=kCc8FmEb1nY
【7】A Mathematical Framework for Transformer Circuits, https://transformer-circuits.pub/2021/framework/index.html
【8】Efficient Estimation of Word Representations in Vector Space, https://arxiv.org/abs/1301.3781

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GottdesKrieges

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值