第1课我们知道了:AI的本质就是预测下一个词。
但一个自然的问题是:它凭什么预测得那么准?为什么输入"我喜欢吃四川",它知道接"火锅"而不是"省"?
答案就是本课要讲的:Transformer和注意力机制——它们让AI能真正"读懂"你在说什么。
回顾第1课的例子:你输入"我喜欢吃四川",AI一个字一个字输出"火锅,尤其是麻辣锅底……"
但这背后实际经历了什么?下面这张图展示了AI生成回答的完整流程:
看起来有点复杂?别担心,我们用"我喜欢吃四川"这个例子来走一遍:
看起来有7步,但本质上就是三件事:
读懂你的话(步骤1-2) → 预测下一个词(步骤3-6) → 循环生成(步骤7)
↑ 本课重点 ↑ 第1课已讲 ↑ 第1课已讲
第1课讲了预测和循环生成。本课补上最关键的第一件事:AI是怎么"读懂"你的话的?
如果AI读不懂你在说什么,预测就是乱猜。读懂了,预测才能精准。接下来的三节,我们会逐一展开。
在2.1的全景图中,步骤1-2是整个流程的起点:编码器"读懂"你的话。这个编码器,就是Transformer架构的核心部分。
在Transformer出现之前,AI用RNN(循环神经网络)处理文字。RNN逐字处理,一个字处理完才能处理下一个:
处理"我" → 处理"喜" → 处理"欢" → 处理"吃" → 处理"苹" → 处理"果"...
这带来了三个严重问题:
你玩过传话游戏吗?10个人排成一排,第一个人说一句话逐个传下去,最后一个人听到的往往面目全非。RNN就有这个问题——信息在传递过程中不断衰减。
Transformer的解决方案:不用排队传话了,所有人同时开一个电话会议,每个人都能直接听到其他所有人说的话。不管谁说了什么,所有人都能第一时间接收到完整信息。
| 对比维度 | RNN(旧方法) | Transformer(新方法) |
|---|---|---|
| 处理方式 | 串行,一个字一个字处理 | 并行,所有字同时处理 |
| 长距离关系 | 信息逐步传递,会衰减 | 任意两个词直接连接,不会衰减 |
| 训练速度 | 基准 | 快10倍以上 |
| 规模效应 | 难以扩大规模 | 越大越强,效果提升明显 |
用你日常能感受到的话来说:
正是因为这些优势,Transformer在发表后迅速取代了RNN,成为整个AI领域的标准架构。
"我们提出了一种新的简单网络架构——Transformer,完全基于注意力机制,完全摒弃了循环和卷积。"
—— Vaswani et al., Attention is All You Need
注意力机制本质上就是在计算词与词之间的相关程度。相关程度越高的词,AI就越"注意"它,用它来帮助理解当前这个词。
还记得第1课的例子吗?当你输入"我喜欢吃四川",AI预测出下一个字最可能是"火"(火锅60%),而不是"省"(四川省)或"话"(四川话)。AI是怎么做到这个判断的?靠的就是注意力机制——它在算这句话里每个词和其他词之间有多大关系。
具体来说,当AI读到"四川",准备预测下一个字的时候,它会把"四川"和前面每一个词都做一次比较,算出一个"相关程度"的分数:
因为"吃"拿到了最高的相关性分数,AI就理解到——"四川"出现在"吃"的语境中,所以接下来应该预测食物(火锅、担担面、冒菜),而不是地理(省份、盆地)或文化(方言、川剧)。
然后AI把这些分数转化成百分比(所有百分比加起来刚好等于100%),用来决定在理解每个词的时候,应该把多少注意力分配给其他词。
所以,所谓"注意力",说白了就是:算出每个词和其他词的相关程度,相关程度越高,就越"注意"它。
下面这张经典图展示了注意力机制的效果。当AI处理句子"The animal didn't cross the street because it was too tired"时,注意力机制让"it"重点关注"animal"这个词——线条越粗,代表关注度越高:
你参加一个嘈杂的派对,几十个人同时说话,声音混成一片。但当有人在远处喊你的名字时,你立刻就能从嘈杂中听出来——即使周围的噪音比那个声音大得多。
这就是人类的"注意力"能力:在众多信息中,自动聚焦于和自己最相关的部分。AI的注意力机制模仿的正是这种能力——面对一句话里的所有词,它能自动判断哪些词对理解当前这个词最重要,然后把注意力集中到那些词上。
"当模型处理'it'这个词时,注意力机制让它能把'it'和'animal'关联起来。"
—— Jay Alammar, The Illustrated Transformer
"注意力机制让模型能够查看输入序列中的其他位置,寻找能帮助更好理解当前词的线索。"
—— 3Blue1Brown, Attention in Transformers
现在我们知道了:步骤1-2编码器"读懂"你的话(靠Transformer和注意力机制),步骤5-6把理解转化成预测结果。但这两步是怎么连起来的?算出词和词的关系之后,怎么就能预测得准了?
答案要回到第1课的核心结论:大语言模型的本质就是"预测下一个词"。而注意力机制算出来的关系,直接决定了这个预测准不准。
输入:"我喜欢吃四川___" 第1步:注意力机制算关系 → "四川"和"吃"关系最大,和"我"关系最小 第2步:用这个关系重新理解"四川" → 在这句话里,"四川"不再只是一个地名 → 它被"吃"这个词"染上了美食的色彩" → 变成了"一种美食风味"的含义 第3步:拿着这个新含义去预测下一个词 → 火锅 60%、担担面 15%、冒菜 8%... → 而不是"省 30%、话 25%、盆地 20%" 第4步:输出 → "火锅"
如果没有注意力机制,模型看到"四川"就只知道这是个地名——后面接"火锅"、"省"、"话"、"盆地"可能概率都差不多,预测就像在乱猜。
有了注意力机制,模型知道"这里在聊吃的",预测一下子就精准了。
同样的道理,当你把同一个词放在不同的句子里,注意力机制会根据不同的上下文给出不同的理解:
| 输入 | 注意力发现的关键关系 | "四川"被理解为 | 预测结果 |
|---|---|---|---|
| 我喜欢吃四川___ | "四川"↔"吃" | 美食风味 | 火锅、担担面 |
| 我来自四川___ | "四川"↔"来自" | 地理位置 | 成都、农村 |
| 我在学四川___ | "四川"↔"学" | 地方文化 | 话、方言 |
每个词从固定的含义(static:字典里的解释)变成了随上下文变化的含义(contextual:在这句话里的具体意思)——这就是注意力机制最终实现的效果。
把第1课和第2课串起来:
第1课:AI在干什么?→ 预测下一个词
第2课:AI凭什么预测得准?→ 注意力机制帮它理解了上下文中词与词的关系,让它真正"读懂"了你在说什么
预测得越准,输出的内容就越像"懂你在说什么"——这就是我们感受到的AI"智能"的来源。
| 概念 | 一句话总结 |
|---|---|
| 全景图 | AI处理你的输入分三步:读懂你的话 → 预测下一个词 → 逐字输出,本课讲的是第一步 |
| Transformer | 让AI能"同时看完整句话"的架构,解决了旧方法逐字处理导致的遗忘和速度问题 |
| 注意力机制 | 计算词与词之间的相关程度,让AI理解每个词在当前上下文中的真正含义 |
| 从读懂到说对 | 注意力帮AI读懂上下文 → 预测更精准 → 输出更像"懂你" → 这就是"智能"的来源 |
本章的核心认知:Transformer和注意力机制让AI学会了在众多信息中找出最重要的那些,从而真正"读懂"你在说什么。读懂了,才能预测得准;预测得准,才能输出像"懂你"的回答。
语境理解:为什么"苹果"在"我吃苹果"和"苹果股价大涨"里意思不同?如果你是AI的注意力机制,你会关注哪些词来做判断?
代词指代:句子"小明把作业给了小红,因为她需要抄。"——"她"指的是谁?如果改成"因为他写得太好了","他"指的又是谁?想想AI是怎么通过上下文中的其他词来判断的——哪些词的相关性会更高?
如果想更直观地了解注意力机制的工作效果: