← 懂一点

Transformer 与注意力——模型是怎么“读懂”上下文的

2026-07-15

本文是专栏《从零看懂大模型》第 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 篇还会细说。

小结

架构讲完了,但一个刚搭好的空模型什么都不会。下一篇我们讲它是怎么从"空白"被训练成"博学又懂事"的——预训练、微调、对齐这三步。

继续阅读:大模型是怎么练成的——预训练、微调、对齐三部曲