Transformers实战——为何需要 Transformer

130 阅读15分钟

翻译:

本章内容包括

  • 变压器(Transformers)如何彻底改变自然语言处理
  • 注意力机制——Transformer 的关键架构组件
  • 如何使用 Transformer
  • 何时以及为何使用 Transformer

随着一种称为 Transformer 的新型神经网络的发明,机器学习(ML),尤其是自然语言处理(NLP)领域,经历了革命性变化。这些模型因其对自然语言的强大理解与生成能力而引人注目,是广泛使用的生成式 AI 应用(如 OpenAI 的 ChatGPT、Anthropic 的 Claude)的支柱。

Transformer 及其派生模型(如大语言模型,LLM)采用了一种独特的架构方法,其中包含名为“注意力机制”的创新组件。注意力机制使模型能够以不同权重关注输入数据的不同片段,从而增强其处理和理解复杂序列数据的能力。这一能力对 LLM 处理自然语言至关重要,同时也适用于处理音频流、图像和视频等更广泛的场景。

我们先将 Transformer 与其前辈——长短期记忆网络(LSTM)——进行比较,然后更细致地考察 Transformer 的各个组件。

1.1 Transformer 的突破

人类大脑具有非凡的能力,能够摄取大量信息并迅速在其中建立相关联结。机器学习模型长期难以完成这一基本任务,部分原因在于它们难以在海量数据流中识别最重要的序列关系。

为解决这些限制,Vaswani 等人 [1] 提出了以注意力机制为核心构建的深度学习架构——Transformer。通过允许序列中的每个元素直接“关注”序列中的所有其他元素,Transformer 同时加速了处理并提升了序列任务的准确率。自从开创性论文《Attention Is All You Need》问世以来,Transformer 标志着从先前流行的循环神经网络(RNN)架构(如 LSTM)向前的一次重大转变。在 Transformer 之前,LSTM(RNN 的一种特例)是处理序列数据(包括自然语言)的主流选择。顾名思义,RNN 通过逐个遍历序列元素,并维持某种对已处理信息的“记忆”来处理序列。下面我们快速看看在 Transformer 出现之前,机器学习模型如何完成诸如英译法这样的任务。

1.1.1 Transformer 之前的翻译

假设我们想把句子 “I don’t speak French” 翻译成 “Je ne parle pas français”。在 RNN 中,作为该神经网络的一个架构组件——编码器(encoder)——会逐词处理“I don’t speak French”,每读入一个词就更新其状态,最终产出该英文句子的所谓“上下文向量(context vector)”。这个向量封装了输入句子的语义,并作为桥梁传递给 RNN 的下一个组件——解码器(decoder)。

随后,解码器使用这个上下文向量逐词生成输出序列“Je ne parle pas français”,并通过其内部(循环)状态来记住此前已经生成的词。在整个过程中,架构的循环特性使每一步都能在前一步的基础上构建,从而生成连贯的翻译。这种基于序列的处理让 RNN 能够捕捉句子内部的时间依赖关系,但在处理词语之间的长距离关联时也会面临挑战。该过程示意见图 1.1。

image.png

图 1.1 RNN 中序列数据总体流动的高层概览。RNN 的编码器逐词处理输入句子,并在每个词处更新其内部状态,最终得到表征整句的上下文向量。解码器再利用这一上下文向量逐词生成输出句子,并通过其内部(循环)状态记住已生成的词。

如图 1.1 所示,“循环状态”会在输出序列的每个位置被更新,捕获已处理部分的上下文信息。然而,RNN 也有一些缺点:它们在面对较长序列时往往表现不佳,因此在捕捉长期依赖方面效率较低。

1.1.2 Transformer 有何不同?

与此相反,Transformer 开创了一种截然不同的策略。Transformer 在处理每个局部片段时,能够同时考虑输入序列的多个部分。它不是逐元素处理并携带单一的循环状态向前,而是为序列中的每个元素在“与其他所有元素的关系”这一上下文中计算一个“注意力”分数。

这种根本性的转变使 Transformer 更易于并行化,因此更高效;同时也显著增强了模型理解复杂模式和长期依赖的能力。不同于传统的序列到序列模型,Transformer 通过注意力机制对整个序列形成更互联的理解,从而提升预测的准确性。此外,Transformer 的架构可以同时处理序列中的所有元素,大幅缩短计算时间。

继续以将 “I don’t speak French” 翻译为 “Je ne parle pas français” 为例。与 RNN 不同,Transformer 模型的编码器先从输入句子中抽取特征;随后借助注意力机制为每个元素计算注意力分数,这些分数有效捕捉了每个词与整句其他词之间的上下文关系。解码器(Transformer 的另一组件)利用这些注意力分数和编码器抽取的特征生成目标句子“Je ne parle pas français”。该流程的高层功能示意见图 1.2。

image.png

图 1.2 Transformer 架构中序列数据总体流动的高层概览。输入句子从左侧进入 Transformer,首先由编码器与注意力机制处理;得到的结果(通常称为注意力分数或上下文表征)传递给带有自身注意力机制的解码器;最终输出为翻译后的句子。

如图 1.2 所示,Transformer 内的注意力机制支持对整个序列的并行处理,而不是像 RNN 那样在每个位置更新一个“循环状态”。这种设计使 Transformer 能够有效捕捉序列各部分之间的上下文关系,克服传统模型(如 RNN)在长序列上的困难,进而实现更高效、更强大的建模能力,能够处理复杂模式和长期依赖。

1.1.3 揭开注意力机制的面纱

Transformer 的注意力机制使模型在计算序列表征时能够为序列中不同位置分配不同权重。本质上,在编码器—解码器架构中,注意力机制评估各个输入向量的重要性,并为那些最关键的向量赋予更高权重。这与 LSTM 等 RNN 模型逐项处理输入序列的方式形成对比。

回到我们的英译法示例。一个理想的翻译模型需要在全句上下文中理解每个词。在这里,“speak” 翻译成 “parle” 会受到其周围词语 “I”、“don’t” 和 “French” 的影响。图 1.3 中用连线的粗细(即模型赋予的注意力分数)来表示词与词之间的这种关联。

image.png

图 1.3 带注意力的 Transformer 模型示例翻译。连线的粗细与颜色体现模型分配的注意力分数。

注意力机制是 Transformer 的关键组成部分,它赋予模型处理元素间复杂关系序列的能力。尽管我们的示例句子相对直观,但它已经要求模型通过注意力考虑句中多个词之间的关系。随着序列更复杂、任务更细腻,高级注意力策略(如多头注意力,multihead attention)的重要性就愈发明显。下面我们以更复杂的 NLP 任务——情感分类——来看看多头注意力。

1.1.4 多头注意力的威力

Transformer 引入了对注意力机制的强力扩展——多头注意力。多头注意力增强了模型捕捉序列中多重关系的能力。通过这一机制,模型可以同时关注输入的不同位置,提取信息的不同方面;也就是说,模型可以保持多个“视角”,从而更好地理解数据中的复杂模式。

例如句子“The movie was not bad.”(“这部电影不差”)。在这种情况下,Transformer 的多头注意力可以同时解析 “not” 与 “bad” 之间的相互作用,从而得出整体情感为正面的理解。图 1.4 直观展示了句中词语之间的这种相互关系。

image.png

图 1.4 句中不同关系的示例

相比之下,LSTM 等循环模型往往难以识别句子中的长期依赖,从而在把握这类微妙之处时面临困难。基于注意力的 Transformer 则有效规避了这一问题,能够高效捕捉文本数据中的复杂相互关系。

简言之,多头注意力使 Transformer 能够同时理解输入的多个方面,相较以往的 LSTM 等模型实现了显著飞跃。借助这一技术,最早的 Transformer 在一个名为 BLEU(BiLingual Evaluation Understudy,双语评测替身)的指标上取得了 41 分的成绩。这是一个非常高的分数,表明 Transformer 模型生成的翻译与参考译文高度相似。更令人惊讶的是,第一版 Transformer 仅用 3.5 天训练就达到了这一结果——而此前的同类最优网络(如 LSTM)在同一个英法翻译任务上需要更长的训练时间才能达到相近水平。

此外,与 LSTM 等其他基于 RNN 的模型相比,Transformer 与 LLM 的成功更体现在它们对 NLP 领域的颠覆性影响。尽管 LSTM 在序列处理方面曾是重要进步,但 LLM 与 Transformer 席卷该领域的速度,以及前沿模型被持续迭代推出的节奏,前所未有。正由于 Transformer 的快速且突破性的成功,在其问世仅五年后,人们便得以构建出诸如 ChatGPT 这般先进的语言模型。

1.2 如何使用 Transformer

借助机器学习平台 Hugging FaceTransformers 库,开启你的 Transformer 之旅要简单得多。该库提供了预训练模型,可用于从机器翻译文本生成文本分类情感分析等各类任务。

预训练”指的是:模型事先在海量数据集上训练过,这些数据通常包含数以百万计、覆盖广泛主题的文档。通过这样的训练,模型学到了语言的细微规律,包括句法语义上下文。使用这些预训练模型,你等于在直接调用它们已学到的知识,而无需从零开始训练。这种方式能显著节省算力与时间,因为你只需围绕自己的具体任务进行微调即可。比如,在情感分析任务中,你可以使用由“句子对 + 标签(neutral/negative/positive)”构成的带标注数据集来进行训练。

使用 Transformer 时,另一个需要考虑的因素是所需算力。由于结构复杂,Transformer 的计算开销可能很大;这正是 GPU 发挥作用的地方。GPU 被设计为可并行执行大量运算,十分适合 Transformer 训练和推理中常见的矩阵计算并行计算。即便你没有高性能的本地 GPU,许多云服务(如 Google Colab)也提供 GPU 访问,使 Transformer 的使用对更广泛的用户群体变得可及。

因此,借助 Hugging Face 的 Transformers 库中的预训练模型与各类云服务提供的算力,你已具备把 Transformer 用于自有语言任务的充分条件。

1.3 何时以及为何使用 Transformer

Transformer 已成为现代机器学习版图中不可或缺的一部分。在 NLP 领域它们拥有无与伦比的能力,同时其潜力也在视觉音频识别等领域不断显现,预示着它可能成长为更通用的机器学习架构。

Transformer 的真正魅力在于其易用性。Hugging Face 的 Transformers 库汇聚了多种预训练模型,让实践者更容易上手。与常常需要从头训练的 LSTM 架构不同,通过 Hugging Face,你可以直接获取可用的预训练模型,从而节省大量时间与计算资源。

这一优势还因其活跃的开源社区而被进一步放大。得益于全球机器学习爱好者的持续贡献与改进,很多任务(如情感分析)往往只需数小时即可完成对预训练 Transformer 的微调

此外,零样本(zero-shot)小样本(few-shot)学习技术的兴起也扩展了 Transformer 的适用面。零样本学习指模型能够处理未被专门训练过的任务——它凭借广泛的预训练经验去理解并执行新任务。小样本学习则指模型仅凭与新任务相关的极少量数据就能迅速学会执行该任务,这依赖于其在大规模预训练中获得的先验知识。结合社区生态的资源与工具,这些技术让 Transformer 成为 NLP 领域广泛任务的有吸引力之选。

尽管如此,如今的多样化 Transformer 模型也存在局限性——尤其是所谓的“十亿参数级”模型(指模型规模与可学习参数数量)。例如,早期 Transformer 约有 1.1 亿参数,而后续发展出现了数千亿参数的更大模型。

这些超大模型在对话中展现出连贯且符合上下文的生成能力,但也并非无所不能:在金融、医疗等对领域知识要求极高的场景里,其通用性可能下降;而在实时系统中部署亦会面临计算与内存开销巨大的挑战。

尽管有以上限制,这些 Transformer 变体的潜力仍不容小觑——它们不断推动着自然语言理解与生成、文本分类、翻译等任务的前沿。但和任何工具一样,关键在于因题制宜的平衡选择。接下来我们将进一步讨论如何在具体问题上扬长避短、发挥不同模型类型的优势并应对其限制。

1.4 从 Transformer 到 LLM:持久的蓝图

Transformer 架构是当今最先进 LLM 的核心基石。本质上,这些强大的模型是基于 Transformer 的神经网络,在海量文本语料上进行大规模训练,因而能在众多 NLP 任务上表现卓越。尽管这些年出现了许多改进与变体,但所有当代 SOTA LLM 都从 2017 年那篇奠基论文 《Attention Is All You Need》 继承了基本架构与关键机制。此后虽有诸多创新——包括面向翻译等任务的编码器—解码器变体、面向生成任务优化的仅解码器架构,以及在注意力与位置表示上的改良(如多头注意力稀疏注意力位置嵌入改进)——但核心原则基本未变:以注意力作为捕捉数据内部上下文关系的主力机制,定义了 Transformer 及其能力边界。

Transformer 的通用性正源于这些传承特性。例如,编码器—解码器模型擅长需要深入理解输入上下文的任务(如机器翻译),而仅解码器架构已成为文本补全会话式 AI等生成任务的主流。同样,位置编码注意力机制的改进显著提升了模型处理更长序列更复杂上下文的能力,但其基本设计哲学始终如一。

概言之,原始的 Transformer 论文提供了一份异常稳健且可扩展的蓝图。现代 LLM 在此蓝图之上,沿着超大规模化训练策略优化(如无监督预训练有监督微调人类反馈强化学习)的路径持续演进。理解 Transformer 的基础架构不仅具有历史意义,更重要的是:它持续而深刻地塑造着当代生成式 AI 系统的架构与能力边界。

小结

  • Transformer 依靠注意力多头注意力机制工作。借助这些工具,模型能在句子各处自适应地聚焦(给予更高注意力)真正影响语义与上下文理解的词。
  • 注意力机制让模型关注输入中的关键部分,突出最重要的信息。
  • 多头注意力帮助模型同时捕捉序列中多重关系,这也是 Transformer 成为最广泛使用的 NLP 模型之一的重要原因。
  • Transformer 在 NLP 中表现卓越,源于其处理长期依赖的能力。
  • 它们通过更高效的并行训练,实现了更短的训练周期却能超越当时最优网络的效果。
  • 零样本/小样本学习等先进技术,使大模型能基于既有训练迁移与泛化到新任务,更高效地利用资源与时间。
  • 即便能力强大,超大规模 LLM 仍有局限:比如在金融、医疗等强领域依赖场景中的有效性下降,以及在落地时面临的计算与内存压力。因此,选择合适模型需要结合具体任务,在模型复杂度实用性之间做好权衡。