Attention Is All You Need(Transformer)

Ashish Vaswani 等 · arXiv 2017 · 整份书单最出名的一篇,今天所有大语言模型的地基

论文名片

i16 论文名片
英文题名Attention Is All You Need
中文常用名《注意力就是你所需要的一切》,更常见的叫法是直接称它为 Transformer
作者与年份Ashish Vaswani 等,arXiv 2017
原文链接https://arxiv.org/abs/1706.03762
一句话概括彻底去掉循环结构,让整句所有词同时互相打分、按分数取信息——这就是今天所有大语言模型的地基。
系列位置i16(第四板块:Transformer 与进阶架构);本站另有 f01 系统视角深度解读页与本页互链

Ilya 为什么选它

在 Ilya 的书单里,这篇是名气最大的一篇,也是整条时间线的分水岭:在它之前,处理句子离不开循环网络——像书单前面那些工作一样,一个词一个词按顺序往前挪;在它之后,主流路线换成了 Transformer。选它的理由很直接:想理解今天的大语言模型为什么造得出来、为什么能一路做大,绕不开这篇论文立下的地基。

它的主张可以压缩成一句话——「注意力全都要」:不再需要循环结构按顺序传话,注意力本身就足以承担句子内部全部的信息交换。论文给出三大好处:训练可以全程并行;任意两个词之间直接相连,长距离依赖不再需要一步步传话;结构统一,可以像积木一样不断堆叠。这三条合在一起,解释了大模型时代的很多「为什么」。

从生活说起

想象一场十个人的圆桌会,要讨论一个方案。老式开会是主持人点名:第一个发完第二个说,每个人只能听到前面人说过的话。轮到第十个人时,前面九个人的发言他只能靠自己「记着」,越靠前的越模糊。循环网络就像这种排队发言:词按顺序进模型,越到后面,早期信息越容易在一次次传递中变淡、走样。

圆桌会换一种开法:所有人同时发言,每个人面前装一排小旋钮,可以自由调节「听每个人多少」。当讨论对象是「苹果很好吃」这句话里的「苹果」时,代表「好吃」的发言人对它最有用,旋钮就拧大一点;代表「天空」的那位没什么用,旋钮就拧小一点。没有主持人按顺序点名,所有人一齐开口,各取所需——这就是 Transformer 里注意力工作的画面,也是「注意力全都要」的生活版本:发言人人有份,听谁、听多少,由每句话自己决定。

核心思想拆解

先看它去掉了什么:循环结构(Recurrence)。老结构像接力赛,信息一棒一棒往下传,传得越远越容易走样;而且第一棒不跑完,第二棒就不能动,训练没法并行。Transformer 把接力赛改成圆桌会:整句所有词同时进模型,互相之间直接建立联系。第 1 个词和第 50 个词之间不再隔着四十九棒,而是第一次打分就拉上一根线。

再看注意力怎么打分。每个词先变成一串数字,叫词向量(Embedding),可以想成这个词的「数字名片」。打分过程是:每个词拿自己的名片去和句中其他词的名片对照,越相关分越高,然后按分数高低「取信息」——分高的多听一点,分低的少听一点。每个词最后得到的,是一份按相关度调配的「全场发言混合版」。

论文真正使用的打分方式叫缩放点积注意力(Scaled Dot-Product Attention)。名字听着吓人,关键动作只有一个:把打出来的分数除以一个与词向量长度相关的数——大约是长度的平方根(比如向量长度 64,就除以 8)。为什么要除?向量一长,打出的分数容易因为数字偏大而「过热」,注意力会过度集中在个别词上。除一下,等于把打分压回温和区间,让注意力分布得从容一些。直觉上记住一句就够:分数除一除,别让打分器上头。

三大好处串起来看。其一,训练全程并行:圆桌会同时开,不用等谁先发言,而现代硬件最擅长的恰恰是「大家一起算」;其二,任意两词直接相连:长句子里隔得很远的两个词第一次就能对上话,长距离依赖从难题变成常规操作;其三,结构统一可堆叠:整套「打分—取信息」是一块标准积木,一层不够摞两层,两层不够摞几十层——后来的大模型正是靠这个可堆叠的统一结构一路长高的。

补充一句:本站还有一篇从系统视角出发的深度解读 f01 Attention Is All You Need,偏工程与全局;本页定位是零基础教学版,两页互为补充,建议搭配阅读。

动手算一算

设某个词的向量长度是 64,除数就取 64 的平方根,也就是 8(因为 8×8=64)。假设它对句中四个词的原始打分是 12、8、24、6。不除的话,24 一家独大,注意力几乎全押在一个词上。除以 8 之后:12÷8=1.5,8÷8=1,24÷8=3,6÷8=0.75。最大的 3 和第二大的 1.5 之间只剩两倍差距,打分整体回到温和区间。

接着算取信息的占比:把四个新分数加起来,3+1.5+1+0.75=6.25。各词占比为 3÷6.25=48%,1.5÷6.25=24%,1÷6.25=16%,0.75÷6.25=12%,合计正好 100%。取信息时,就按这四个百分比去调配四个词的信息——最重要的词占近一半,其余词也都多少在场。(真实的模型在算占比前还会对分数做一次指数式的柔和处理,直觉不变:分高的占比大,且差距更明显。)整套装下来只有比大小、除法、百分比三种算术,全是小学内容。

它改变了什么

这篇论文之后,注意力从「辅助工具」升级为「主角」。更早的注意力(比如 i15 注意力机器翻译)是在循环结构旁边帮忙对齐词与词;它之后,循环结构整体退场,注意力独立撑起整个模型。训练能并行、结构能堆叠,这两条让「把模型做大」从想法变成工程上可执行的事——今天所有大语言模型都长在这块地基上。

系列内相关阅读:想看这篇论文如何逐行落成代码,读 i17 Annotated Transformer;想看系统视角的深度解读,读 f01 深度解读;想对照注意力更早的用法,回到 i15 注意力机器翻译。

术语小词典

i16 术语小词典
术语白话解释
Transformer完全依靠注意力、不用循环结构的模型结构名,也是这篇论文的代称。
注意力机制(Attention)词与词之间互相打分、按分数取信息的方法。
词向量(Embedding)把一个词变成一串数字,作为它的「数字名片」。
缩放点积注意力(Scaled Dot-Product Attention)Transformer 使用的打分方式,特点是打完分除以约「向量长度的平方根」,防止分数过热。
循环结构(Recurrence)一个词一个词按顺序处理的旧结构,是本文的主要去除对象。
并行训练(Parallel Training)所有位置同时计算,不用排队等前一步算完。