从宏观看 Transformer

F7
概念 · AI 基础

从宏观看 Transformer。

每个现代 LLM 都是一个"transformer"——GPT 里的那个"T"。你不需要数学就能理解为什么这一个架构取代了它之前的一切。本篇解释让 transformer 起作用的那一个思想(注意力:让每个词都能看到其他每个词),为什么这个思想解锁了巨大规模,以及它对这些模型行为的预言。

STEP 1

Transformer 解决的问题。

在 2017 年之前,处理语言的领先网络读文本的方式,就像你朗读一个句子——严格从左到右,一次一个词,在一小块记忆里携带一份滚动摘要。这有两个致命弱点。第一,长程记忆很差:读到一个长段落末尾时,第一句话的影响已大幅消退,模型很难把一个代词与远在前面提到的名词联系起来。第二,这种严格顺序的处理无法并行——第 100 个词在第 99 个词算完之前无法计算——这限制了这些模型能做多大、跑多快。

2017 年的论文《Attention Is All You Need》引入了 transformer,它彻底移除了顺序瓶颈,并且几乎作为副作用,让模型在长程联系上好得多。几年之内,它就在语言领域取代了先前的方法,后来在视觉和音频领域也是如此。

STEP 2

核心思想:注意力。

核心机制是自注意力。Transformer 不再把信息硬挤过一个狭窄的从左到右记忆,而是让每个令牌直接看输入中其他每个令牌,并自行决定此刻哪些是相关的。

标准直觉是这个句子:"The animal didn't cross the street because it was too tired."(动物没有过马路,因为太累了。)要表示 it,模型必须知道 it 指的是 animal 还是 street。注意力让令牌 it"看"所有其他令牌,并给每个分配一个重要性权重;这里它把大部分权重放在 animal 上,从而构建出一个实际意思为"那只动物"的 it 表示。把"tired"改成"wide"(太宽了),注意力就把权重转移到 street 上。每个令牌都这样做,并行进行,在每一层都进行——反复混合信息,使每个位置的表示都受整个上下文影响,而不仅是它的邻居。

"The animal didn't cross the street because it was too tired."
                                            ^^
   "it" attends most strongly to ->  "animal"   (not "street")
   each token: build a query, compare to every other token,
   take a weighted blend of the ones that matter

你可以忽略确切的数学("查询/键/值"那套机制),抓住本质:注意力就是每个令牌从最相关的其他令牌处收集信息,而这个相关性是学出来的,不是手工编码的

STEP 3

为什么这解锁了规模。

注意力不仅更准确;它正是今天的模型能做到如此之大的原因。因为每个令牌一次性地关注每个令牌,繁重的计算是在整个序列上并行运行的矩阵乘法——恰恰是现代 GPU 为之而生的工作负载。旧的严格顺序模型无法这样并行;transformer 可以,因此能在可行的时间内用多得多的数据、多得多的参数来训练。

这种可并行性是整个领域隐藏的枢纽。LLM 篇里的规模化故事——更大的模型、更多的数据、出人意料的涌现能力——之所以可行,仅仅是因为 transformer 把语言建模变成了一个能在并行硬件上干净扩展的工作负载。还有几个部件补全了这个架构:许多注意力层深深堆叠;每个注意力步骤之后有一个"前馈"子层进一步处理结果;以及在输入处加上一个位置信号,让模型尽管一次看全部,仍知道词序。需要记住的细节只是这个形状——一个由"注意力加处理"块组成的深堆叠。

"GPT" = Generative(生成式)Pre-trained(预训练)Transformer。"Transformer"是这个架构;"预训练"是"训练与推理"篇中的下一令牌训练目标;"生成式"是 LLM 篇中那个一次一个令牌的循环。这个时髦词不过是你已经见过的三个概念叠在一起。

STEP 4

这个架构对行为的预言。

知道模型是个 transformer,就能解释若干日常行为,让它们不再显得任意:

  • 对提示词内上下文的强力运用。因为注意力让生成可以回溯到任何更早的令牌,模型能出色地遵循提示词中的指令、示例和粘贴的文档。这是提示工程、检索和工具使用之所以能成立的架构原因。
  • 成本随上下文长度急剧增长。"每个令牌关注每个令牌"意味着注意力的工作量大致随序列长度的平方增长。把输入翻倍,注意力成本会涨到两倍多——这是长上下文昂贵且更慢的核心原因,也是上下文工程之所以重要的原因。
  • 位置效应。因为词序是作为一个额外信号加进去的,而非由顺序处理强制,信息在上下文中所处的位置会可测量地影响模型使用它的可靠程度——这是"迷失在中间"效应的基础。
  • 跨模态的通用性。注意力中没有任何东西是专属于词的。喂给它图像块或音频块,同一套机制照样适用,这就是为什么如今一个架构同时支撑文本、视觉和多模态模型。

持久的总结:transformer 是一个深层堆叠,其中每个位置都能关注其他每个位置,相关性从数据中学出。这一个思想修复了长程记忆,解锁了 GPU 规模的训练,并且是 LLM 既如此强大、又如此对"你在它上下文里放什么、放在哪里"敏感的结构性原因。