注意力机制是一种机器学习技术,可指示深度学习模型优先考虑(或关注)输入数据中最相关的部分。注意力机制的创新使转换器架构得以产生 ChatGPT 等支持流行应用程序的现代大型语言模型 (LLM)。
顾名思义,注意力机制的灵感来自于人类(和其他动物)有选择地更多地关注突出细节,忽略当下不太重要的细节的能力。可以访问所有信息,但仅关注最相关的信息,有助于确保不会丢失任何有意义的细节,同时能够有效地利用有限的内存和时间。
从数学角度讲,注意力机制计算的注意力权重反映了输入序列中每个部分对当前任务的相对重要性。然后,它应用这些注意力权重,根据输入每个部分各自的重要性来增加(或减少)输入每个部分的影响力。注意力模型(即采用注意力机制的人工智能模型)经过训练,可以通过对大型示例数据集进行监督学习或自监督学习来分配准确的注意力权重。
注意力机制最初由 Bahdanau 等人作为一种技术于 2014 年提出,以解决当时用于机器翻译的最先进的循环神经网络 (RNN) 模型的缺点。随后的研究将注意力机制整合到卷积神经网络 (CNN) 中,用于图像字幕和视觉问答等任务。
2017 年,开创性的论文《Attention is All You Need》引入了转换器模型,该模型完全避免循环和卷积,而仅使用注意力层和标准前馈层。此后,转换器架构已成为尖端模型的支柱,为持续的 AI 时代提供动力。
虽然注意力机制主要与用于自然语言处理 (NLP) 任务(如摘要、问答、文本生成和情感分析)的 LLM 相关联,但基于注意力的模型也广泛用于其他领域。用于图像生成的主要扩散模型通常采用注意机制。在计算机视觉领域,视觉转换器 (ViT) 在对象检测1、图像分割2 和视觉问答3 等任务上取得了优异的结果。
转换器模型和为其提供支持的注意力机制几乎在深度学习的每个子领域都取得了最先进的成果。与卷积神经网络 (CNN) 中使用的卷积机制和循环神经网络 (RNN) 中使用的循环回路相比,注意力机制的性质使其具有显著优势。
要了解深度学习中的注意力机制是如何工作的,以及它们为何有助于引发生成式 AI 的一场革命,首先要了解注意力首次引入的原因:改进用于机器翻译的基于 RNN 的 Seq2Seq 模型。
RNN 是具有循环回路的神经网络,可提供“记忆”等效物,使它们能够处理顺序数据。RNN 获取有序的输入向量序列并按时间步长对其进行处理。在每个时间步长之后,生成的网络状态(称为隐藏状态)会连同下一个输入向量一起反馈给循环回路。
RNN 在训练中很快就会遭遇梯度消失或梯度爆炸的情况。这使得 RNN 在许多 NLP 任务中都不实用,因为它极大地限制了可处理的输入句子的长度。4一种称为长短期记忆网络 (LSTM) 的改进 RNN 架构在一定程度上减少了这些限制,它添加了门控机制来保存“长期”记忆。
在引入注意力之前,Seq2Seq 模型是机器翻译领域最先进的模型。Seq2Seq 在编码器-解码器架构中使用两个 LSTM。
以固定维数对输入序列进行编码,使 Seq2Seq 能够处理不同长度的序列,但也带来了重要的缺陷:
Bahdanau 等人在 2014 年的论文《Neural Machine Translation by Jointly Learning to Align and Translate》中提出了一种注意力机制,以改善编码器和解码器之间的通信,消除信息瓶颈。
他们的模型不是仅将编码器的最终隐藏状态(上下文向量)传递给解码器,而是将每个编码器隐藏状态传递给解码器。注意力机制本身用于确定在解码器执行的每个翻译步骤中,哪种隐藏状态(即原始句子中的哪个单词)最相关。
该论文解释说:“这使模型不必将整个源句子编码为固定长度的向量,同时也让模型仅关注与下一个目标单词的生成相关的信息。”“这对神经机器翻译系统在处理较长句子时产生良好结果的能力产生了重大的积极影响。”5
随后的 NLP 研究主要集中于提高性能和扩展循环模型中注意力机制的用例。2017 年,仅靠注意力驱动的转换器模型的发明,最终使 RNN 在 NLP 中几乎被淘汰。
注意力机制的主要目的是确定输入序列中不同部分的相对重要性,然后促使模型关注重要部分,忽略不重要部分。
尽管注意力机制有许多变体和类别,每种都适合不同的用例和优先事项,但所有注意力机制都有三个核心过程:
开创性的论文《Attention is All You Need》使用关系数据库的术语阐明了其注意力机制:查询、键和值。关系数据库旨在简化相关数据的存储和检索:它们为每条数据分配一个唯一标识符(“键”),每个键都与相应的值相关联。在 NLP 中,模型的“数据库”是从训练数据集中学习到的词元词汇表。
《Attention is All You Need》论文的巨大影响导致即使是以前的注意力机制也经常被追溯地用这些术语来描述。一般而言,这种注意力概念需要序列中每个词元的三种向量表示形式之间的相互作用。
具体的注意力机制变体主要通过向量的编码方式、对齐分数的计算方式以及为向模型提供相关信息而应用的注意力权重来区分。
Badhanau 的注意力机制是专为机器翻译设计的。它使用双向 RNN 对每个输入词元进行编码,正向和反向处理输入序列并将结果串联在一起。例如,当原始语言和翻译语言对名词和形容词有不同的排序约定时,这种方法特别有用。
在这里,译句每个时间步长的解码器隐藏状态相当于一个查询向量,源句每个时间步长的编码器隐藏状态相当于一个键向量。
然后,对齐分数由一个简单的前馈神经网络(注意力层)确定,该网络与模型的其余部分共同训练。该注意力层最多包括可学习模型权重的三个子集:隐藏解码器状态的查询权重(“Wq”),隐藏编码器状态的键权重(“Wk”)以及用于扩展最终输出的值权重(“wv”)。这些权重是模型的“知识”:通过在训练期间调整这些权重的特定值以最小化损失函数,模型学会进行准确的翻译。
在每个步骤中,加性注意力的工作原理如下:
解码器用于生成译句的上下文向量是根据每个键向量的注意力加权和计算得出的。加性注意力的一个优点是,它不要求查询向量和键向量的长度相同。
2015 年,Luong 等人引入了几种新方法来简化和增强 Badhanau 的机器翻译注意力机制。也许他们最显著的贡献是使用乘法而不是加法的新对齐分数函数。它还摒弃了函数,使用隐藏状态向量的点积计算彼此的相似性。因此,它通常被称为点积注意力或乘法注意力。
使用点积比较查询向量背后的直觉既是数学的,也是实用的:
使用点积注意力的一个结果是,点积计算要求两个向量具有相同的维数 .
加性注意力继续将上下文向量计算为键向量的加权和,而点积注意力则将上下文向量计算为键向量的加权平均值。
《Attention is All You Need》一文的作者指出,虽然点积注意力比加性注意力更快,计算效率更高,但对于较长的向量来说,加性注意力优于传统的点积注意力。
他们推测,当 非常大,得出的点积也非常大。当 softmax 函数将所有这些非常大的值压缩到 0-1 之间时,反向传播会产生难以优化的极小的梯度。实验表明,将两个长度为 的向量的点积乘以进行缩放后再执行 softmax 归一化会得到更大的梯度,从而实现更平滑的训练。
转换器模型中使用的缩放点积注意力函数的写法是 .
最早的注意力机制类型都执行现在被归类为交叉注意力的功能。在交叉注意力中,查询和键来自不同的数据源。例如,在机器翻译任务中,键来自一种语言的文本语料库,查询来自另一种语言;在语音识别任务中,查询是音频数据,键是用于转录该音频的文本数据。
在自注意力中,查询、键和值都来自同一来源。虽然 Bahdanau 和 Luong 的注意力机制都是明确为机器翻译设计的,但 Cheng 等人提出了自注意力(他们称之为“内部注意力”)作为一种总体上改善机器阅读的方法。他们在 2016 年的一篇论文 中概述了他们的注意力机制,该机制深入探讨的不是输入元素如何对整体序列做出贡献,而是不同的输入词元如何相互关联。
考虑一种语言模型,它可以解读英语文本
“on Friday, the judge issued a sentence”。
Cheng 等人的论文只关注自注意力阅读和理解文本的能力,但很快表示建模序列内关系也可能是编写文本的强大工具。自注意力机制的进一步发展,以及它所支持的转换器模型,直接导致了现代生成式 AI 和可以生成原始文本的自回归 LLM 的出现。
自回归 LLM 也可以使用自注意力进行机器翻译,但必须以不同的方式完成任务。交叉注意力将原文句子和译文句子视为两个不同的序列,而自注意力则将原文和译文视为同一个序列。
为了使自回归、基于自注意力的 LLM 能够翻译文本,模型在训练中遇到的所有单词(涵盖每种语言)都将作为一个大型多语言词元词汇表的一部分来学习。该模型简单地意识到,当序列包含“将 [语言 1 中的单词] 翻译成语言 2”之类的指令时,序列中的下一个单词应该是语言 2 中的词元。
从本质上讲,自回归 LLM 本身不一定理解存在不同的语言。相反,它只是了解某些词元(本例中是指与同一语言的单词相对应的词元)组合是如何相互关联的。通过指令调整等技术,这种情境理解得到了进一步强化。
Viswani 等人撰写的《Attention is All You Need》论文从自注意力中获得了灵感,引入了一种新的神经网络架构:转换器。他们的转换器模型完全避开了卷积和循环,而是只使用注意层和标准线性前馈层。
作者自己的模型遵循编码器-解码器结构,类似于基于 RNN 的前代模型。后来,基于转换器的模型脱离了编码器-解码器框架。BERT(转换器双向编码器表示的缩写)是转换器论文发布后首批具有里程碑意义的模型之一,它是一个仅编码器模型。彻底改变文本生成的自回归 LLM,例如 GPT(生成式预训练转换器)模型,为仅解码器模型。
《Attention is All You Need》提出了对注意力机制的几项创新(其中之一是缩放点积注意力),可提高性能并使注意力适应全新的模型结构。
单词的相对顺序和位置会对其含义产生重要影响。RNN 本质上通过逐个单词连续计算隐藏状态来保留有关每个词元位置的信息,而转换器模型必须明确编码位置信息。
使用位置编码时,模型会在词元进入注意力机制之前,根据每个词元的相对位置为其嵌入添加一个值向量。这种位置向量的维数通常比词元嵌入本身的维数要少得多,因此只有一小部分词元嵌入会接收到位置信息。虽然计算有些复杂,但逻辑很简单:
Viswani 等人设计了一种简单的算法,对偶数位置的词元使用正弦函数,对奇数位置的词元使用余弦函数。后来的算法,例如旋转位置编码 (RoPE),提高了对非常长的序列的位置信息进行有效编码的能力 - 这进而有助于实现具有更大上下文窗口的 LLM。
一旦每个词元嵌入都更新了位置信息,就会通过第一个注意力层之前的三个并行线性(前馈)神经网络层中的每一层传递原始词元,从而使用各词元生成三个新向量。每个并行层都有一个独特的权重矩阵,其具体值是通过在海量文本数据集上进行自监督预训练获得的。
注意力机制的主要功能是衡量每个词元之间的查询-键配对的重要性。对于输入序列中的每个词元 x,转换器模型按如下方式计算(然后应用)注意力权重:
平均来自其他词元的注意力加权贡献,而不是单独计算每个注意力加权贡献,这在数学上是有效的,但会导致细节丢失。转换器架构通过实现多头注意力来解决这个问题。
为了在享受平均效率的同时仍然考虑词元之间的多方面关系,转换器模型在网络中的每个注意力层多次并行计算自注意力运算。每个原始输入词元嵌入被拆分为 h 个大小均匀的子集。每一个嵌入片段都被输入到 h 个由 Q、K 和 V 权重组成的并行矩阵之一,每个矩阵分别被称为查询头、键头或值头。然后,每个并行的查询头、键头和值头三元组输出的向量都会被输入到相应的注意力头中。
在每个注意力块的最后层中,这 h 个并行回路的输出最终重新连接在一起。在实践中,模型训练导致每个回路学习不同的权重,这些权重捕获语义含义的不同方面。这进而让模型能够处理来自其他单词的上下文影响单词含义的不同方式。例如,一个注意力头可能专门研究时态变化,而另一个注意力头专门研究附近的单词如何影响语气。
这里演示了标准转换器的注意力块中的矩阵乘法的整个回路。值得注意的是,转换器注意力机制后来的发展,如多查询关注和分组查询关注,简化或合并了流程中的某些元素,以降低计算需求。
在转换器模型的最后几层中,通常对注意力头进行训练,以做出具体的预测。例如,LLM 的最后一层的一个注意力头可能专注于命名实体识别,而另一个注意力头专注于情绪分析,等等。
在自回归 LLM 中,倒数第二层是一个线性层,它接收完全转换后的向量,并将其投影到与模型为其词汇表中的每个词元所学习的向量嵌入相匹配的大小。这允许计算分数,表示生成的向量与该词汇表中的每个词元的匹配程度。最后一层是 softmax 层,它将这些分数转换成概率(满分为 1),并根据前面的单词,利用这些概率输出它认为最有可能出现的下一个单词。
1. "Leaderboard: Object Detection on COCO test-dev," Papers With Code, accessed 18 November 2024
2. "Leaderboards: Image Segmentation" Papers With Code, accessed 18 November 2024
3. "Leaderboard: Visual Question Answering (VQA) on VQA v2 test-dev," Papers With Code, accessed 18 November 2024
4. "Learning long-term dependencies with gradient descent is difficult," IEE Transactions on Neural Networks 5(2): 157-66, February 1994
5. "Neural Machine Translation by Jointly Learning to Align and Translate," arXiv, 1 September 2014
6. "Multiplicative Attention," Papers With Code
了解 CEOs 如何在生成式 AI 所能创造的价值与其所需的投资和带来的风险之间取得平衡。
学习基本概念并通过亲手实验、课程、指导项目、试用等方式培养您的技能。
了解如何自信地将生成式 AI 和机器学习融入您的业务中。
想要从 AI 投资中获得更好的回报吗?了解如何通过帮助您最优秀的人才构建和提供创新的新解决方案,在关键领域扩展生成式人工智能来推动变革。
我们对 2,000 家组织进行了调查,旨在了解他们的 AI 计划,以发现哪些方法有效、哪些方法无效,以及如何才能取得领先。
IBM Granite 是我们开放式、性能优异、值得信赖的 AI 模型系列,专门为企业量身定制,并经过优化,可以帮助您扩展 AI 应用。深入了解语言、代码、时间序列和防护措施选项。
了解如何为您的用例选择最合适的 AI 基础模型。
深入了解强大 AI 战略的 3 个关键要素:创造竞争优势、在整个企业中扩展 AI 以及推进值得信赖的 AI。