原识:快述Transformer架构
我来快述一下Transformer架构,便于对其有个概览。
Transformer这是一个革命性的架构(注意,它是一个架构),它彻底改变了自然语言处理领域,也是当今所有大语言模型(如GPT、LLaMA等)的核心基础。
我会从核心思想、整体架构到关键组件,层层递进地解释。
核心思想:摒弃循环,完全依赖注意力
在Transformer统治大模型架构之前,主流模型是RNN、LSTM等循环神经网络。它们的问题在于:
1. 顺序处理:必须一个字一个字地处理,无法并行计算,训练慢。
2. 长程依赖问题:对于很长的文本,模型会“遗忘”开头的信息。
小明计划在周末去公园,他准备叫上小红。
“他”和“小明”的关系,在人来说能够看出来,但是对模型来说就不是容易的事了。
简单的说,模型首先要把它们联系起来,需要同时“看到”它们,再计算它们干系度(QKV关系值)。
Transformer的解决方案是:完全使用自注意力机制来捕捉序列中所有元素之间的关系,无论它们相隔多远。 这使得它可以并行处理整个序列,极大地提升了训练效率和理解能力。
---
整体架构全景图
Transformer同样采用编码器-解码器结构,但其内部实现与前代截然不同。
(这是一个经典的Transformer结构图,来源于原论文《Attention Is All You Need》)
我们来分解这个架构:
1. 编码器
· 功能:将输入序列(例如一句英文)映射为一个蕴含了整个序列信息的“上下文向量序列”。
· 结构:由 N个(原论文中N=6)完全相同的层 堆叠而成。
· 每一层的构成:
1. 多头自注意力机制
2. 前馈神经网络
· 每个子层周围都有一个残差连接 和 层归一化。公式为 LayerNorm(x + Sublayer(x))。这使得深层网络更容易训练。
2. 解码器
· 功能:根据编码器的输出和之前已生成的输出,自回归地生成目标序列(例如翻译后的中文)。
· 结构:同样由 N个完全相同的层 堆叠而成。
· 每一层的构成:
1. 掩码多头自注意力机制:确保在生成第t个词时,只能看到第1到第t-1个词,防止“偷看未来”。
2. 编码器-解码器注意力机制:Query来自解码器上一层的输出,而Key和Value来自编码器的输出。这使得解码器在生成每个词时,都能“关注”输入序列中最相关的部分。
3. 前馈神经网络
· 同样,每个子层都有残差连接和层归一化。
3. 输入/输出处理
· 词嵌入:将输入的单词转换为稠密向量。
· 位置编码:由于Transformer本身没有循环结构,它无法感知单词的顺序。因此,需要额外注入位置信息。位置编码是一个与词嵌入维度相同的向量,它会与词嵌入相加作为模型的输入。它使用正弦和余弦函数来生成,确保模型能学到“相对位置”和“绝对位置”的概念。
---
核心组件深度解析
1. 自注意力机制
这是Transformer的灵魂。它的目标是:对于序列中的每一个词,通过计算它与其他所有词的相关性,来获得一个更能代表其在本序列中含义的新向量。(注意,它采用了旋转编码RoPE,融合绝对位置和相对位置,提升长度外推能力)
计算过程(缩放点积注意力):
1. 生成Q, K, V:对于每个词的输入向量,我们通过三个不同的权重矩阵,将其线性变换为三个向量:
· Query:表示“我正在寻找什么”。
· Key:表示“我包含什么信息”。
· Value:表示“我的实际内容是什么”。
2. 计算注意力分数:计算一个词(Query)与序列中所有词(Key)的相似度。通常使用点积:分数 = Q · K^T。
3. 缩放:将分数除以Key向量维度的平方根(√d_k),防止点积过大导致梯度消失。
4. Softmax归一化:对分数进行Softmax操作,将其转化为和为1的概率分布。这个分布代表了在生成当前词时,应该“注意”其他词的程度。
5. 加权求和:将Softmax后的分数作为权重,对所有的Value向量进行加权求和。得到的结果就是当前词的新表示。
公式:
Attention(Q, K, V) = softmax(QK^T / √d_k) V
2. 为什么要“多头”?
单一的注意力机制可能只关注到一种类型的关系(例如语法关系)。多头注意力 将Q、K、V投影到多个不同的“表示子空间”中,让模型同时关注来自不同位置的不同类型的信息。
· 操作:将Q、K、V分割成h份(h个头),在每个头上独立进行注意力计算,最后将h个结果拼接起来,再通过一个线性层融合。
· 好处:模型可以同时关注不同方面的信息。例如,在翻译“The animal didn’t cross the street because it was too tired”时,一个头关注“it”和“animal”的关系,另一个头关注“tired”和“it”的关系。
3. 前馈神经网络
这是一个简单的全连接网络(注意,它在位架构的层位置中,有且只有一个,它很巨大,行是每个token,列是维度,它负责放大筛选优质特征和记忆关系权重),通常包含一个隐藏层和ReLU激活函数。FFN(x) = max(0, xW1 + b1)W2 + b2。
它的作用是:对自注意力机制输出的表示进行非线性变换和增强。 值得注意的是,它在每个词的位置上是独立应用的,可以看作是作用于每个词上的“专家处理器”。
---
总结:Transformer的优势
1. 并行计算:摒弃循环,整个序列同时处理,训练速度极快。
2. 强大的长程依赖捕捉能力:自注意力机制让序列中任意两个词都能直接交互,无论距离多远。
3. 卓越的模型性能:在翻译、文本生成等任务上,效果远超之前的模型。
正是这些特性,使得Transformer成为了构建现代大语言模型的基石。无论是仅用解码器的GPT系列,还是编码器-解码器架构的T5、BART,其核心都源于这个划时代的架构。
