跳至主要内容

LLM 中的注意力机制:直观解读

了解注意力机制的工作原理,以及它如何彻底改变自然语言处理(NLP)。
Yesha Shastri
Yesha Shastri

创建您的免费账户

实践并学习路径你的进步。

使用 Google 继续继续即表示您接受我们的 使用条款,我们的 隐私政策 ,并且您的数据存储在美国。

语言是人类交流的核心,自动化处理语言能带来巨大的益处。多年来,自然语言处理(NLP)模型一直难以有效捕捉人类语言的微妙之处,直到一次突破——注意力机制。

注意力机制于 2017 年在论文 Attention Is All You Need 中提出。与把词语割裂处理的传统方法不同,注意力会根据与当前任务的相关性为每个词分配权重。这让模型能够捕捉远距离依赖,同时分析局部与全局上下文,并通过关注句子中更有信息量的部分来消解歧义。

考虑以下句子:“Miami, coined the 'magic city,' has beautiful white-sand beaches.” 传统模型会按顺序处理每个词。而注意力机制更像人脑,会根据理解当前焦点的需要为每个词打分。比如在考虑地点时,“Miami”和“beaches”会更重要,因此得分更高。

本文将以直观方式解释注意力机制。您也可以在这篇教程中找到更技术性的讲解:Transformer 的工作原理。让我们开始吧!

传统语言模型

我们先从语言模型的更大背景出发,开启理解注意力机制的旅程。

语言处理基础

语言模型通过试图理解语法结构(句法)和含义(语义)来处理语言。其目标是输出与输入相关、且在句法与语义上都正确的语言。

语言模型依赖一系列技术来拆解与理解文本:

  • 解析(Parsing): 分析句子结构,为每个词标注词性(名词、动词、形容词等),并识别语法关系。
  • 分词(Tokenization): 将句子切分为单独的词(标记),为进行语义分析打好基础(您可以在另一篇文章中进一步了解分词)。
  • 词干提取(Stemming): 将词还原为词根形式(例如,将“walking”还原为“walk”),以确保模型一致地处理相似词。
  • 实体识别与关系抽取: 协同识别并分类文本中的特定实体(如人物或地点),并挖掘它们之间的关系。
  • 词向量(Word embeddings): 为每个词创建数值表示(向量),以捕捉其含义及与其他词的联系,从而使模型能够处理文本并执行如翻译或摘要等任务。

传统模型的局限

尽管传统语言模型为 NLP 的发展铺平了道路,但在充分把握自然语言的复杂性方面仍面临挑战:

  • 上下文受限: 传统模型常将文本表示为一组独立的标记,无法捕捉句子的更广泛语境,因而难以理解句中相距较远的词之间可能存在的关联。
  • 上下文窗口短: 这类模型在处理时考虑的上下文窗口往往有限,导致它们难以捕捉长距离依赖,即句中相距较远的词彼此影响含义的情况。
  • 词义消歧困难: 仅凭周围词语,传统模型往往难以对一词多义进行消歧,缺乏利用更广泛语境来确定意图含义的能力。
  • 泛化能力挑战: 受限于网络架构与可用训练数据量,这些模型常难以适应新的或未见过的情境(域外数据)。

语言模型中的注意力是什么?

与将词语孤立处理的传统模型不同,注意力让语言模型能够考虑上下文。我们来看看具体如何实现!

“注意力即一切”

NLP 领域的变革性进展出现在 2017 年,论文 Attention Is All You Need 引入了注意力机制。

该论文提出了一种新的架构——Transformer。与早期的循环神经网络(RNN)和卷积神经网络(CNN)不同,Transformer 使用注意力机制。

通过解决传统模型的诸多问题,Transformer(及其注意力机制)成为当今众多流行大型语言模型(LLM)的基础,如OpenAI 的 GPT-4 和 ChatGPT。

注意力如何工作?

我们来看看“bat”在以下两句中的含义:

  1. "Swing the bat!"
  2. "The bat flew at night."

传统的嵌入方法会为“bat”分配单一向量表示,难以区分不同含义。而注意力机制通过计算与上下文相关的权重来解决这一问题。

它会分析周围词语("swing" 与 "flew"),计算决定相关性的注意力分数。随后,这些分数用于加权嵌入向量,从而为“bat”在运动器材意义(对 "swing" 权重更高)与飞行动物意义(对 "flew" 权重更高)分别得到不同表示。

这使模型能够捕捉语义细微差别并提升理解力。

attention_mechanism.png

注意力在 LLM 中的重要性

在对注意力建立直观理解的基础上,我们来看看该机制如何超越传统词向量以增强语言理解,并了解一些注意力的实际应用。

超越传统词向量

传统词向量技术(如 Word2Vec 和 GloVe)基于大规模语料中的共现统计,将词表示为语义空间中的固定维度向量。

这些嵌入虽能捕捉部分词语间的语义关系,但缺乏对上下文的敏感性。也就是说,无论一个词在句子或文档中的语境如何,其嵌入都相同。

在需要细腻语言理解的任务中,这一局限尤为明显——尤其当词在不同语境下承载不同含义时。注意力机制通过让模型选择性地关注输入序列中的相关部分,将上下文敏感性引入表示学习过程,从而解决这一问题。

提升语言理解

注意力让模型得以理解语言中的细微差别与歧义,从而更有效地处理复杂文本。其关键优势包括:

  • 动态加权: 根据当前语境的相关性,动态调整某些词的重要性。
  • 长程依赖: 能够捕捉相距较远词语之间的关系。
  • 上下文理解: 除了提供具备上下文的表示外,还能帮助消除歧义,使模型适应多种下游任务。

应用与影响

基于注意力的语言模型影响深远。成千上万的人在使用其之上的各类应用。常见应用包括:

  • 机器翻译: 如 Google 翻译等模型利用注意力聚焦源句中相关部分,生成更契合上下文的译文。
  • 文本摘要: 借助注意力找出文档中的关键信句或短语,从而生成更信息密集、简洁的摘要。
  • 问答系统: 注意力帮助深度学习模型将问题中的词与相关上下文对齐,从而更准确地抽取答案。
  • 情感分析: 情感分析模型通过注意力捕捉承载情绪的词及其语境重要性。
  • 内容生成: 内容生成模型利用注意力确保生成文本与输入上下文保持一致,从而生成连贯且上下文相关的内容。

进阶注意力机制

了解了注意力的工作方式后,我们来看看自注意力与多头注意力。

自注意力与多头注意力

自注意力使模型能够关注其输入序列中的不同位置,以计算该序列的表示。它让模型根据词与词之间的相对重要性进行加权,从而捕捉输入中不同词之间的依赖关系。该机制有三大要素:

  • Query(查询): 表示模型针对序列中某个特定词当前关注点或问题的向量。就像模型打着手电筒聚焦在某个词上,以理解其在上下文中的含义。
  • Key(键): 每个词都有一个标签或参照点——键向量就扮演这个角色。模型将查询向量与所有键向量比较,以找出回答所关注词问题时最相关的词。
  • Value(值): 保存与每个词相关的实际信息。一旦模型通过键的比较确定了相关词,就取回对应的值向量,以获取理解所需的具体信息。

注意力分数可通过对查询与键向量做缩放点积来计算。最终,这些分数与值向量相乘,得到值的加权和作为输出。

多头注意力是自注意力机制的扩展。它通过同时关注输入序列的不同部分,增强模型捕捉多样化上下文信息的能力。其做法是并行执行多组自注意力操作,每组都有自己学习到的查询、键与值的变换。

多头注意力带来更细腻的上下文理解、更强的鲁棒性与表达力。

注意力:挑战与解决方案

尽管引入注意力机制有诸多益处,但也伴随一系列挑战,相关研究仍在不断推进以求解决。

计算复杂度

注意力机制需要计算输入序列中所有标记之间的两两相似度,其复杂度相对于序列长度呈二次增长。对于长序列,这在计算上代价高昂。

为缓解计算复杂度,人们提出了多种技术,例如稀疏注意力、近似注意力方法,以及如 Reformer 模型基于局部敏感哈希的高效注意力机制。

注意力过拟合

注意力机制可能会对输入序列中的噪声或无关信息过拟合,导致在未见数据上的性能不佳。

正则化技术(如 dropout 与层归一化)有助于防止基于注意力的模型过拟合。此外,还提出了注意力 dropout 与注意力掩码等技术,以鼓励模型聚焦于相关信息。

可解释性与可说明性

理解注意力机制如何运作并解释其输出并不容易,尤其是在拥有多层与多头注意力的复杂模型中。这也引发了对这类新技术伦理问题的关注——您可以在我们的AI 伦理课程中进一步了解,或收听这期与 AI 研究者 Dr. Joy Buolamwini 的播客。

为了增强基于注意力模型的可解释性,人们开发了可视化注意力权重并解读其含义的方法。此外,注意力归因等技术旨在识别单个标记对模型预测的贡献,从而提升可说明性。

可扩展性与内存约束

注意力机制会消耗大量内存与计算资源,使其在扩展至更大模型与数据集时面临挑战。

用于扩展基于注意力模型的技术(如分层注意力、内存高效注意力与稀疏注意力)旨在在维持模型性能的同时,降低内存占用与计算开销。

注意力:总结

我们通过对比传统模型与基于注意力的模型,总结一下要点:

特性

基于注意力的模型

传统 NLP 模型

词表示

具备上下文感知的嵌入向量(根据注意力分数动态加权)

静态嵌入向量(每词单一向量,不考虑上下文)

关注点

为理解含义考虑周围词语(着眼更广泛的上下文)

将每个词独立对待

优势

捕捉长程依赖、消解歧义、理解细微差别

更简单,计算成本更低

劣势

计算开销可能较大

理解复杂语言能力有限,难以处理上下文

底层机制

带有注意力的编码器-解码器网络(多种架构)

解析、词干提取、命名实体识别、词向量等技术

结语

本文探讨了颠覆 NLP 的注意力机制。不同于以往方法,注意力让语言模型能够在考虑上下文的同时聚焦句子中的关键部分,从而把握复杂语言、长距离关联与词义歧义。

您可以通过以下方式继续学习注意力机制:

主题