前言

第一课第二课中,我们掌握了全连接网络和卷积网络(CNN)。全连接层擅长处理静态特征,卷积层擅长处理空间特征(图像)。

然而,当面对序列数据(如一句话、一段音频)时,数据之间的顺序和上下文关系变得至关重要。今天我们通过对比传统 RNN 结构,深度拆解目前 AI 界的统治级架构——Transformer

一、 为什么抛弃 RNN?(背景与动机)

在 Transformer 问世之前,RNN(循环神经网络)是处理序列的主力,但它存在三大致命缺陷:

  1. 串行计算效率低:RNN 必须等前一个词算完才能算下一个,无法利用 GPU 并行加速,不适合大模型训练。

  2. 长距离依赖困境:RNN 仅考虑相邻位置关系。如果句首和句尾有强关联,RNN 很难捕捉到。

  3. 特征固定:词向量初始化后基本不变,无法根据语境“重构”含义(无法实现一词多义)。

二、 Transformer 整体架构

Transformer 彻底抛弃了循环结构,改用完全并行的编码器-解码器(Encoder-Decoder)架构。

  • 输入格式:输入为 Batch × 序列长度 × 特征个数 的矩阵。

  • 编码器:负责对输入进行深层特征提取。

  • 解码器:利用编码器特征进行预测(如翻译、生成)。

三、 注意力机制(Attention):Transformer 的灵魂

注意力机制的目的是让模型学会“区分重点”:多关注重要特征,忽略无用背景。

1. Q、K、V 的直观理解

Transformer 引入了三组向量来模拟“匹配”过程:

  • Q (Query - 查询向量):我要找什么?

  • K (Key - 键向量):我有什么特征可以提供参考?

  • V (Value - 值向量):我自身的实际特征内容是什么?

2. 计算流程:内积匹配与特征重构

  1. 计算关系分数:Q 与 K 进行内积计算。内积越大,表示两个词关系越近。

  2. 归一化(Softmax):将分数转化为总和为 1 的权重。

  3. 加权求和:用权重去乘以 V,得到融合了上下文信息的新特征

四、 进阶细节:多头注意力与位置编码

为了让 Transformer 更加鲁棒,还加入了两个关键设计:

  1. 多头注意力(Multi-Head Attention)

    • 通过初始化多组 QKV,让模型从多个维度(视角)去提取特征(类似于 CNN 的多个卷积核)。

    • 最后将多组特征拼接,增强特征的多样性。

  2. 位置编码(Positional Encoding)

    • Transformer 本身不识别顺序(认为“我打你”等于“你打我”)。

    • 通过给每个词加上一个特定的“位置向量”,让相同的词在不同位置产生不同的特征,解决置换不变性问题。

五、 解码器中的 Mask 机制

解码器在生成序列时,有一个特殊要求:不能偷看未来

  • Mask 机制:在训练时遮盖掉当前词之后的词。例如预测第 3 个词时,Q 只能看前 2 个词的 K 和 V,确保模型是根据已知信息进行预测。

如果你觉得这篇文章有启发,欢迎点赞、收藏并在评论区留下你的思考!我们下期见。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐