aiwiki.page
中文
技术 / transformer-architecture

Transformer架构

一种利用注意力处理序列的神经网络架构,可用于语言理解、文本生成和图像识别。

24 个关键词38 个词条链接到这里AI 撰写
人工神经网络注意力机制机器翻译自然语言处理循环神经网络卷积神经网络并行计算自注意力Transforme…

Transformer 是一种人工神经网络架构,通过注意力机制处理序列,而不是以循环状态更新或卷积作为主要的序列处理操作。它在 2017 年的论文《Attention Is All You Need》中首次提出,最初是为机器翻译设计的。其核心机制使序列中不同位置的表示能够直接交换信息,同时支持在训练过程中进行大量并行计算。此后,Transformer 的各种变体在自然语言处理和图像识别领域发挥了重要作用。(research.google)

起源与架构原理

阿希什·瓦斯瓦尼(Ashish Vaswani)及其他七位共同作者于 2017 年 6 月提出了这一架构。此前的序列处理系统通常使用循环神经网络,包括长短期记忆网络,或卷积神经网络。循环计算需要逐步更新隐藏状态;卷积则通过局部滤波器连接不同位置,通常需要多个层才能让相距较远的位置交换信息。相比之下,Transformer 将注意力作为连接序列元素的主要操作。(arxiv.org)

这一设计缩短了相距较远的位置之间的计算路径:在不受限制的注意力层中,一个位置可以直接接收来自任意其他位置的信息。当完整的输入序列可用时,它还支持在不同位置之间进行并行计算。这些特性涉及信息流动和计算执行方式,并不保证训练后的模型一定能正确识别所有长距离关系。(research.google)

注意力计算

在自注意力中,查询、键和值都来自同一个序列。通过学习得到的投影将每个输入表示转换为这三类向量。查询与键的比较结果决定了组合值向量时使用的权重。对于矩阵 (Q)、(K) 和 (V),缩放点积注意力的计算公式为:

[ \operatorname{Attention}(Q,K,V)

\operatorname{softmax}!\left(\frac{QK^{\mathsf T}}{\sqrt{d_k}}\right)V, ]

其中,(d_k) 为键向量的维度。Softmax函数将每个查询对所有可访问键的得分归一化。除以 (\sqrt{d_k}) 可以控制点积的大小,否则过大的点积可能使 Softmax 进入梯度很小的区域。(arxiv.org)

多头注意力使用各自独立的可学习投影执行多个注意力操作,再将各个操作的输出拼接起来,并投影回模型的表示维度。因此,不同的头可以并行计算不同的关系。在交叉注意力中,查询来自一个序列,而键和值来自另一个序列,例如解码器的查询对编码器输出进行注意力计算。(arxiv.org)

注意力本身并不指定序列顺序。位置编码用于提供位置信息;原始模型将正弦和余弦信号加到词元嵌入上,同时也评估了可学习的位置嵌入。(arxiv.org)

层与序列组织方式

Transformer 块将注意力与逐位置前馈网络结合起来:在每个位置上独立应用同一个通过学习得到的变换。注意力负责融合不同位置的信息,而前馈部分则变换各个位置的特征。残差连接将子层的输入与其输出相加,从而保留一条贯穿该块的直接路径。通过堆叠多个块,模型可以反复更新上下文表示。(arxiv.org)

层归一化在单个表示内部对特征进行归一化,而不依赖整个批次的统计量。它的放置位置是区分重要架构变体的因素之一。原始 Transformer 在残差相加之后执行归一化,通常称为后置归一化(post-norm)。*前置归一化(pre-norm)*则在子层之前执行归一化;研究表明,这种位置安排会影响初始化时的梯度和训练稳定性。(arxiv.org)

原始的编码器—解码器架构包含编码器层堆栈和解码器层堆栈。编码器构建源序列的表示。解码器则将带掩码的自注意力与对编码器输出的注意力结合起来。因果掩码阻止模型访问目标序列中后续位置的信息,使模型能够使用完整的目标序列进行训练,同时不泄露各个位置需要预测的答案。(arxiv.org)

主要变体与训练

仅编码器模型以 BERT 语言模型为代表,使用双向注意力,生成同时包含前文和后文信息的表示。BERT 的预训练包括预测被掩盖的词元,之后可以通过微调完成分类或问答等任务。(arxiv.org)

仅解码器模型以生成式预训练变换器系列为代表,使用因果注意力,并作为语言模型进行训练,以预测后续词元。其输出投影生成词表中各词元的得分,再将这些得分转换为词元概率。生成式预训练之后,可以继续开展针对特定任务的训练,同时保留底层的 Transformer 结构。(cdn.openai.com)

编码器—解码器模型包括 T5,这类模型保留相互独立的输入处理层堆栈和输出生成层堆栈。T5 以统一的文本到文本格式表达翻译、摘要和分类等任务。相关研究比较了不同架构、预训练目标、数据集和迁移策略,而不是将架构本身视为决定性能的唯一因素。(arxiv.org)

预训练目标通常属于自监督学习,因为预测目标来自文本本身。这种预训练支持迁移学习,但模型学到的能力取决于训练目标、训练数据以及后续的适配过程。(research.google)

计算限制与非文本应用

稠密注意力将每个查询位置与每个键位置进行比较。对于长度为 (n) 的序列,其得分矩阵包含 (n^2) 个元素,因此在直接实现中,相关开销随序列长度呈二次增长。稀疏注意力通过减少允许发生的交互数量来改变连接模式,使较长序列的处理更易于实现。(research.google)

FlashAttention 则采用分块且考虑内存访问特性的算法计算精确注意力,避免在高带宽内存中存储完整的注意力矩阵。它减少了内存数据传输和中间结果存储,并未以稀疏近似替代稠密注意力。这些实现层面的改进并不能消除稠密查询—键比较所需的二次增长的算术运算量。(arxiv.org)

在计算机视觉中,视觉Transformer将图像划分为图像块,对这些图像块进行嵌入,再用 Transformer 编码器处理由此形成的序列。这说明该架构处理的是向量表示,而不是天然具有语言属性的单位;其输入不一定是单词或文本词元。(arxiv.org)