Transformer 和 Attention机制入门

1. 什么是 Transformer

  1. 背景:

    在自然语言处理领域,早期常使用循环神经网络(RNN)及其变体(如 LSTM、GRU)来处理序列数据,如机器翻译、文本生成等任务。然而,RNN 结构存在以下问题:

    • 随着序列长度增加,模型难以捕捉远距离词汇之间的关联,且训练会出现梯度消失或梯度爆炸等现象。
    • 训练时难以进行大规模并行计算,速度较慢。
  2. Transformer 的诞生:

    2017 年,论文《Attention is All You Need》提出了 Transformer 模型。Transformer 彻底摒弃了循环结构,转而依赖 Attention 机制 来处理序列中的依赖关系,大幅提升了训练效率,并能更好地捕捉长距离依赖。

  3. 主要结构:
    Transformer 的整体结构可以概括为编码器(Encoder)和解码器(Decoder)两大部分:

    • Encoder :由多个相同的编码器层(Encoder Layer)堆叠而成,每一层主要包含 多头自注意力(Multi-Head Self-Attention)前馈网络(Feed-Forward Network)
    • Decoder :与编码器类似,也堆叠了多层的解码器层(Decoder Layer)。解码器层包含三个主要部分:掩码多头自注意力(Masked Multi-Head Self-Attention) 、**与编码器交互的多头注意力(Encoder-Decoder Attention)**以及 前馈网络
  4. 优势:

    • 能更高效地并行训练:由于不需要按时间步逐个地处理序列。
    • 能更好地捕捉句子中远距离的依赖关系。
    • 在 NLP 多个任务(翻译、问答、文本生成等)上有显著的效果提升。

2. 什么是 Attention

  1. Attention 机制的动机:

    在处理一句话时,通常并不是句子中所有词对当前输出预测都同等重要。例如,"我喜欢吃苹果"这句话中,如果要预测"吃"的后面那个词,就需要更多关注"苹果",而不必太在意"我"。Attention 机制通过加权的方式,让模型自动学习"关注"句子中最相关的部分。

  2. 计算过程概览:

    在 Transformer 中,一个 Attention 模块通常包含以下步骤:

    1. 将输入向量分别映射为 Query (Q)Key (K)Value (V)
    2. 通过 QK 的点积(或其他度量)计算相似度,得到注意力分布(即每个单词对于当前 Query 的重要程度)。
    3. 将注意力分数与 V 相乘以加权输出,得到最终的注意力结果。
  3. Self-Attention(自注意力):

    在 Transformer 的 EncoderDecoder 内部,每个单词都将自己当作 Query,与整句话中的所有单词(包含自己)进行 Key、Value 计算,从而捕捉全局上下文信息。

    • 具体来说,句子中每个位置都会输出自己的 Q、K、V,然后进行点积计算。这样,网络能够了解一个词与其他所有词(甚至包括它自己)之间的关系。
  4. Multi-Head Attention(多头注意力):
    自注意力 只是 Attention 机制的一个核心操作。Transformer 并不只做一次自注意力计算,而是把 Q、K、V 分成多个子空间(即多个"头",Heads),在每个子空间分别进行注意力计算,然后再将各子空间的结果拼接起来。这样做的好处是模型可以学习到不同角度的语义关系,提升表达能力。

  5. Encoder-Decoder Attention:

    • 解码器在生成输出时,除了需要关注解码器本身已有的输出序列(自注意力)外,还需要关注编码器输出的上下文表示(Encoder 输出),这就是 Encoder-Decoder Attention
    • 模型在生成下一个词时,通过这个注意力模块能够"查看"输入句子的每个词与当前要生成的目标词之间的关联。

3. 重点总结

  • Transformer 的核心特点

    • 不再依赖传统 RNN 或 CNN 结构,而是使用 Attention 完成序列到序列的映射。
    • 通过自注意力(Self-Attention)模块能够同时关注序列中所有位置的依赖关系,让模型可以高效并行并捕捉长距离依赖。
    • 模型结构由堆叠的编码器层和解码器层组成,形成高度模块化的设计。
  • Attention 的核心作用

    • 通过 Q-K-V 机制计算每个词对目标词的相关性,将最重要的上下文信息赋予更高的权重。
    • 多头注意力能够从不同的投影空间提取信息,提高模型对语义的捕捉能力。

总之,Transformer 是一种彻底基于 Attention 机制的神经网络结构,克服了 RNN 难以并行以及捕捉长距离依赖不足的缺点。Attention (尤其是自注意力)在其中扮演了最重要的角色,通过对不同词之间关联度的计算和加权,不仅显著提升了模型的性能,还极大加速了训练与推理过程。

接下来我会在我的这个专栏里详细解读一下Transformer的原理,以及常见的LLM是如何使用Transformer这个历史转折点一样的结构的。希望大家多多关注!

参考: jalammar

相关推荐
大模型铲屎官9 分钟前
大模型(LLM)面试全解:主流架构、训练目标、涌现能力全面解析
人工智能·面试·架构·大模型·llm·nlp·大模型面试
赛亚超32 分钟前
将txt转成excel正则化公式的调整
人工智能·python·excel
是十一月末1 小时前
机器学习之决策树的分类树模型及决策树绘制
人工智能·python·决策树·机器学习·信息可视化·分类
说私域1 小时前
开源AI智能名片商城小程序在个人品牌建设中的应用与“展温度”策略融合深度探索
人工智能·小程序
说私域1 小时前
会员制营销与门店业绩提升:以开源AI智能名片S2B2C商城小程序为例的深度剖析
人工智能·小程序
程序猿阿伟1 小时前
《鸿蒙系统AI技术:筑牢复杂网络环境下的安全防线》
网络·人工智能·harmonyos
Loving_enjoy1 小时前
深度学习:Java DL4J基于RNN构建智能停车管理模型
人工智能·深度学习·机器学习
远洋录2 小时前
WebSocket 客户端开发:浏览器实战
前端·人工智能·react
奔波儿灞爱霸波尔奔2 小时前
人工智能之基于阿里云快速搭建语音合成
人工智能·阿里云·云计算
White-Legend2 小时前
耗时一天,我用AI开发了AI小程序
人工智能·小程序