本文是专栏《从零看懂大模型》第 2 篇。回到目录与导读。上一篇:一切都是"预测下一个词"。
上一篇我们说,大模型的本事是"预测下一个词"。但要猜得准,它得先读懂前面那句话。这一篇讲的就是它"读懂"的秘密武器:Transformer 架构,以及它的心脏——注意力机制(Attention)。
几乎今天所有主流大模型(GPT、Claude、DeepSeek、Llama……)底层都是 Transformer。名字听着高深,核心思想其实很好懂。
先看它解决了什么老问题
在 Transformer 出现之前(2017 年之前),机器读句子是一个词一个词顺着读的,像用一根手指指着字念。这有两个大毛病:
- 读得慢:必须按顺序来,没法并行;
- 记性差:读到句子后半段,前半段容易忘。"那只在院子里追蝴蝶追了一下午的猫,它累了"——读到"它"的时候,早忘了"它"指的是那只猫。
Transformer 的破局办法很干脆:别一个个顺着读了,把整句话摊开,一次全看,然后让每个词自己去找它该关注谁。
注意力:让每个词"看向"它该看的词
这就是注意力机制。名字很形象——它做的事,就是模拟人读句子时的"注意力分配"。
还是那句话:
"那只在院子里追蝴蝶的猫,它累了。"
我们人类读到"它"时,注意力会自动飘回到"猫"身上,因为我们知道"它 = 那只猫"。注意力机制让模型也能干这件事:处理"它"这个词时,模型会给句子里每个词打一个**"关注度"分数**——
处理"它"这个词时,它对各个词的关注度:
猫 ████████████ 高
追 ██ 低
蝴蝶 █ 低
院子 █ 低
累 ███ 中
于是"它"这个词的含义里,就融进了大量"猫"的信息。模型因此"知道"了它俩是一回事。每个词都这样,向全句所有词分配注意力、吸收相关信息——读完一遍,每个词都变成了"结合了上下文的自己"。
它怎么算"该关注谁":查询、钥匙、内容
想再往里看一层,可以用一个**"找资料"的比喻**。每个词都会生成三样东西:
| 名字 | 大白话 | 类比 |
|---|---|---|
| Query(查询) | 我在找什么信息 | 你手里的搜索关键词 |
| Key(钥匙) | 我能提供什么信息 | 每本书的标题标签 |
| Value(内容) | 我实际的信息内容 | 书里的正文 |
计算注意力时,模型拿"它"的 Query(我要找我指代的对象)去和每个词的 Key 比对:跟"猫"的 Key 一拍即合,分数就高;跟"院子"的 Key 对不上,分数就低。分数高的词,它的 **Value(内容)**就被更多地吸收进来。
一句话:Query 是"我想要啥",Key 是"我有啥",Value 是"具体内容"。谁的 Key 最配我的 Query,我就多吸收谁的 Value。
这套"查询—钥匙—内容"的匹配,就是注意力的全部机密。它还会多组并行地做(叫"多头注意力"),好比同时派几拨人从不同角度找线索:一拨盯语法,一拨盯指代,一拨盯情绪……最后汇总。
把积木叠起来,就是大模型
单层注意力能让每个词吸收一轮上下文。Transformer 把这样的层叠很多很多层(大模型往往几十上百层),每一层都在前一层的理解之上再加深一点:
输入: 那 只 猫 … 它 累 了
│
▼ 第 1 层注意力:认出"它=猫"这类近距离关系
▼ 第 2 层注意力:串起"追蝴蝶一下午"→"所以累"
▼ ……更多层:逻辑、语气、言外之意……
│
▼
输出: 对整句话的深层理解 → 拿去预测下一个词
层层加深之后,模型对这句话的"理解"已经相当立体,最后再用第 1 篇说的方式,预测下一个词。
顺带解释一个你常听到的词
"上下文窗口"(context window)——你可能在用 AI 时见过"支持 20 万 token 上下文"这种说法。它指的就是:模型一次能同时'摊开来看'的 token 上限。
为什么有上限?因为注意力要让每个词都和其他所有词两两比对,句子越长,计算量涨得越快(大致是平方级)。所以上下文不是免费的、也不是无限的——这个短板我们在第 5 篇还会细说。
小结
- Transformer 让模型从"一个词一个词顺着读"升级成"整句摊开、一次全看"。
- 它的心脏是注意力机制:每个词向全句所有词分配"关注度",吸收相关信息,从而带上了上下文。
- 底层靠 Query / Key / Value(我想要啥 / 我有啥 / 具体内容)的匹配来决定关注谁。
- 把注意力层叠很多层,理解层层加深,最终喂给"预测下一个词"。
- "上下文窗口"就是模型一次能摊开看的 token 上限,长度受计算量限制。
架构讲完了,但一个刚搭好的空模型什么都不会。下一篇我们讲它是怎么从"空白"被训练成"博学又懂事"的——预训练、微调、对齐这三步。