大模型学习 (Datawhale_Happy-LLM)笔记3: Transformer 架构

大模型学习 (Datawhale_Happy-LLM)笔记3: Transformer 架构

1. 概述

第二章分三个不分系统地讲解了Transformer架构的理论基础与实现细节。首先,本章介绍了注意力机制,其次是 Encoder 与 Decoder,最后通过代码完整实现了一个 Transformer 架构。

2. 注意力机制 (Attention Mechanism)

注意力机制起源于计算机视觉(Computer Vision, CV)领域。核心的神经网络架构:(1)前馈神经网络 (Feedforward Neural Network, FNN)

  • 输入层 (Input layer):接收原始数据,不进行计算,仅传递信号。
  • 隐藏层(Hidden layer): 可以有一层或多层,每层包含多个神经元,对输入数据进行非线性变换。
  • 输出层(Output layer): 产生最终预测结果。
  • 特点:层与层之间完全连接,无循环或反馈连接,信号单向流动。

(2)卷积神经网络(Convolutional Neural Network, CNN)
卷积神经网络(Convolutional Neural Network, CNN)是一种专门为处理具有网格结构数据(如图像、音频)而设计的深度学习模型。它通过卷积层自动提取特征,大幅减少参数数量,主要应用于图像分类、目标检测,语义分割等领域。

**CNN 主要由三种类型的层组成:**
卷积层(Convolutional Layer):通过卷积核提取局部特征。
池化层(Pooling Layer):降维并保留主要特征。
全连接层(Fully Connected Layer):输出分类或回归结果。	
**典型 CNN 架构:**
输入层 → [卷积层 → 激活函数 → 池化层] × N → 全连接层 → 输出层

(3)循环神经网络(Recurrent Neural Network, RNN)
循环神经网络是一种专门设计用于处理序列数据(如文本、语音、时间序列等)的神经网络架构。与前馈神经网络(FNN)不同,RNN 具有记忆能力,能够利用历史信息影响当前输出,其核心特点如下:

循环连接:网络中存在反馈环路,允许信息从当前时刻传递到下一时刻。
时序依赖:神经元的输出不仅取决于当前输入,还依赖于之前的隐藏状态。
参数共享:不同时间步使用相同的权重矩阵,大幅减少模型参数数量。

在注意力机制出现之前,RNN 及其变体 LSTM 的确在 NLP 任务上取得了最优效果,但仍存在两个难以弥补的缺陷:

依序计算,时间成本高
难以捕捉长距离的相关关系

(4)注意力机制原理
它是深度学习中模拟人类认知 “选择性关注” 特性的技术 —— 即让模型聚焦于输入数据中关键信息区域,忽略无关信息。其本质是对两段序列的元素依次进行相似度计算。核心参数包括:

查询(Query, Q):需要关注的目标信息
键(Key, K):输入数据的特征标识
值(Value, V):输入数据的具体内容

通过公式展示了Query、Key、Value之间的关系及其矩阵计算方式:

Attention(Q,K,V)=softmax(QKTdk)V\text{Attention(Q,K,V)}=\text{softmax}\biggl( \Large \frac{QK^T}{\sqrt{d_{k}}} \biggr) \normalsize \text{V}Attention(Q,K,V)=softmax(dkQKT)V

(5)自注意力机制 (Self-Attention Mechanism)
自注意力机制(Self-Attention)是注意力机制的变种。简单理解自注意力机制就像给模型装了一个 “智能放大镜”,让它在处理信息时,能自动聚焦关键部分,忽略无关细节,从而更聪明地理解整体内容。通过⾃注意⼒机制,我们可以找到⼀段⽂本中每⼀个 token 与其他所有 token 的相关关系⼤⼩,从⽽建模⽂本之间的依赖关系。在代码中的实现,self-attention 机制其实是通过给 Q、K、V 的输⼊传⼊同⼀个参数实现的。

(6)掩码自注意力(Mask Self-Attention)

简单理解就是给自注意力机制加了个 “时间锁”,让模型在生成内容时只能 “向后看”(看已经处理过的信息),不能 “向前看”(看还没生成的信息),保证生成逻辑的合理性 —— 就像你写作文时,只能按顺序构思,不能先写结尾再写开头。

(7)多头注意力(Multi-head Attention)

Multi-head Attention 即同时对⼀个语料进⾏多次注意力计算,每次注意力计算都能拟合不同的关系,将最后的多次结果拼接起来作为最后的输出,即可更全⾯深⼊地拟合语⾔信息。简单说,多头注意力机制就是让模型同时用多个 “思考视角” 分析信息,每个视角专注于不同类型的关联关系(如语义、语法、位置),最后把所有视角的发现合并起来,让模型对信息的理解更全面、更深入 —— 就像一群人从不同角度观察事物,比一个人单独看更能抓住本质。我们用公式可以表示为:

MultiHead(Q, K, V)=Concat(head1,...,headh)WO\text{MultiHead(Q, K, V)} = \text{Concat}(head_1,...,head_h)W^OMultiHead(Q, K, V)=Concat(head1,...,headh)WO
where headi=Attention(QWiQ,KWiK,VWiV)\text{where} \ head_i = \text{Attention}(QW_i^Q, KW_i^K, VW_i^V)where headi=Attention(QWiQ,KWiK,VWiV)

3. Encoder-Decoder

在 Transformer 中,使⽤注意⼒机制的是其两个核⼼组件——Encoder
(编码器)和 Decoder(解码器)。事实上,后续基于 Transformer 架构而来的预训练语言模型基本都是对 Encoder-Decoder 部分进⾏改进来构建
新的模型架构,例如只使⽤ Encoder 的 BERT、只使⽤ Decoder 的 GPT 等。

(1)Seq2Seq
序列到序列可以简单那理解为一个能把 “一段话” 转换成 “另一段话” 的智能翻译机,它的核心是通过 “编码器” 和 “解码器” 两个部分,先把输入内容 “压缩成思想包”,再把思想包 “扩展成目标内容”。就像你看中文小说时,大脑先理解内容(编码器),然后用英文转述出来(解码器)。

(2)前馈神经网络(FeedFoward Neural Network, FNN)
FNN 是一个 “信息向前单向加工的数学流水线”:输入数据像原材料一样进入网络,经过隐藏层的 “权重计算 + 激活函数ReLU” 层层加工,最后从输出层得到结果。它的核心是通过多层非线性变换,把简单特征组合成复杂特征,从而解决分类、回归等问题,是深度学习中最基础的网络结构之一。

(3)层归一化(Layer Norm)
Layer Norm(层归一化)可以理解为给神经网络的“输入数据”做“统一规格化处理”,就像把不同尺寸的快递盒塞进标准大小的快递袋里,让后续处理更高效。核心目的是让同一层的神经元输入数据分布更稳定,避免某些数据“太突出”或“太弱小”导致网络学习困难。 它特别适合处理长度变化的序列数据(如文本),不依赖批次大小,就像给每个学生单独按班级平均分打分,让神经网络能更公平地学习不同特征的重要性。

对比Batch Norm(批量归一化):应用场景的区别

场景Layer Norm(层归一化)Batch Norm(批量归一化)
标准化维度对单个样本的同一层所有特征做归一化对同一批次中每一层所有样本的同一特征做归一化
类比单个学生在班级内的成绩标准化不同班级同一科目的成绩标准化
适用场景变长序列(如NLP中不同长度的句子):每个样本独立处理,不依赖批次数据固定长度输入(如图像):需要批次数据计算统计量
是否依赖批次大小不依赖(只看单个样本的层内特征)依赖(批次越小,统计量越不准)

(4)残差连接(Residual Connection or Skip Connection)

在传统前馈神经网络中,数据按顺序流经每一层:一层的输出是下一层的输入。
残差连接通过跳过某些层,为数据到达神经网络的后续部分提供了另一条路径。考虑从第 i 层到第 i + n 层的一系列层,令 F 表示这些层所代表的函数。将第 i 层的输入记为 x。在传统前馈设置中,x 将简单地逐层通过这些层,第 i + n 层的输出为 F (x)。残差连接首先对 x 应用恒等映射,然后执行元素级加法 F (x) + x。

(5)Encoder 和 Decoder 代码
Encoder 由 N 个 Encoder Layer 组成, 每一个 Encoder Layer 包括一个注意力层和一个 FNN,在最后加入一个 Layer Norm 实现归一化。
同理,Decoder 由 N 个 Decoder Layer 组成,不同的是,Decoder Layer 由两个注意力层和一个 FNN 组成。 第一个 Attention Layer 是 Mask Self-Attention保证每⼀个 token 只能使用该 token 之前的注意力分数;第⼆个注意力层是⼀个多头注意力层,该层将使⽤第⼀个注意⼒层的输出作为 query,使用 Encoder 的输出作为 key 和 value,来计算注意力分数。最后,再经过前馈神经网络。

教程的最后是基于前面实现的各个组件,搭建一个完整的 Transformer。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值