随课讲义12 节 · 约 55 分钟

第四讲(上)· 大语言模型原理

从一个简单到荒谬的目标,到 Transformer 的心脏

看这一讲的幻灯片 →第四讲的课堂幻灯片一套 45 页,前 32 页对应本篇。

第 1 节 · 2 分钟导读

📖 关于本讲的阅读提示

亲爱的老师:

我们来到了整门课的心脏

您每天在用的豆包、Kimi、DeepSeek、ChatGPT、Claude——它们都有一个共同的灵魂:Transformer 架构。2017 年,几位研究者发表了一篇论文叫《Attention is All You Need》(「你只需要注意力」),从此 AI 世界变了天。

本讲要把这颗心脏拆开给您看

这不是一件容易的事——Transformer 的原始论文里布满了数学符号和矩阵运算,硕博士生读它都要皱眉头。但我们会用老师能看懂的语言,把这些东西讲透。


🎯 本讲的阅读规则(延续前两讲)

主干文字是完整的讲解。 您只读主干,也能掌握 80% 的内容。

每个关键概念都配有「📐 数学视角(可跳过)」 小框。里面放公式、矩阵运算、技术细节。

  • 喜欢数学、想精确理解:读它。
  • 只想理解思想、能和学生讲得出来:跳过它,继续主干。

本讲上(本章)重在原理与直觉,第四讲中和下会逐步过渡到应用与实战


本讲(上)的章节地图

一、开场:您每天在用,但可能从未真正理解的东西
二、什么是语言模型:从 N-gram 到 LLM 的 70 年
三、Token:大语言模型眼中的「字」
四、Embedding:从文字到向量——模型的「GPS 坐标系」
五、「预测下一个词」:看似简单的目标,为何能统摄一切
六、Transformer 登场:2017 年的那场革命
七、Attention 机制:Transformer 的心脏(本讲核心)
八、Transformer 完整架构:把拼图拼起来
九、从一个 token 到一段回答:完整推理流程走一遍
十、本讲小结 + 第四讲中下的预告

每一节既有白话讲解,也有可选的数学视角。读完这一讲,您会从「用 LLM」升级到「理解 LLM」。

好,我们开始。


第 2 节 · 2 分钟开场:您每天在用,但可能从未真正理解的东西

请各位老师想一想:当您在豆包里输入一句话,几秒后得到一段回答——

这几秒里到底发生了什么?


我们来做一个思想实验。打开豆包(或者 Kimi、DeepSeek 任选一个),输入这样一句话:

「请给我三年级的学生讲解一下什么是光合作用,要像讲故事一样生动。」

几秒后,AI 给出了一段流畅、准确、富有童趣的解释。

这件事本身,在人类历史上是前所未有的。

  • 它没有查任何百科全书
  • 它不是从预先写好的答案库里挑一条
  • 它甚至不是「先理解你的意思,再组织答案」这种我们本能以为的过程

它在做的事情,用一句话概括就是——

🔥 它根据您输入的文字,不断地预测「下一个最合适的词是什么」,一个词接一个词地吐出来,直到它觉得该停了。

就这么简单。就这么荒谬。

就是这么一个简单到荒谬的目标——「预测下一个词」——驱动了 2020 年代以来全球 AI 的所有革命。


🤔 一个反直觉的真相

在 ChatGPT 横空出世之前(2022 年 11 月),绝大多数 AI 研究者都不相信「只训练预测下一个词」能做出真正有用的东西

他们认为 AI 需要有: - 明确的知识库 - 精心设计的推理模块 - 专门的语义理解模块 - 针对每个任务的定制算法

结果呢?所有这些精心设计,都被「一个只会猜下一个词的巨型神经网络」打败了。

这是 AI 历史上最深刻的一次范式转变。它告诉我们一件震撼的事:

💡 当规模足够大、数据足够多,「会猜下一个词」就等价于「会推理、会创造、会对话、会编程、会讲笑话」。

本讲要解决的核心问题是:这怎么可能?

要回答这个问题,我们得一层一层拆开看。从最底层的「什么是语言模型」开始——


第 3 节 · 6 分钟什么是语言模型:从 N-gram 到 LLM 的 70 年

语言模型(Language Model, LM)不是 2020 年代才有的新东西。它已经悄悄发展了 70 多年

理解这段历史,能让您看清:LLM 不是凭空出现的魔法,而是一条长期演化的河流的自然结果。


2.1 什么是「语言模型」?一句话定义

📖 语言模型:一个能根据前文预测下一个词概率的数学模型。

就这么简单。

比如,给一个语言模型输入:

「明天天气很__」

一个好的语言模型会输出:

「好」:     概率 30%
「热」:     概率 20%
「冷」:     概率 15%
「晴朗」:   概率 10%
「糟糕」:   概率 8%
......

它给出的不是一个确定答案,而是所有可能词的概率分布


这个任务为什么重要?

因为一旦你能准确预测下一个词,你几乎就能做任何语言任务

  • 翻译:给定「Hello, how are __」,预测「you」→ 整句翻译实际是不断预测下一个词
  • 写作:「春天来了,校园里__」——不断续写
  • 问答:「问:为什么天空是蓝色的?答:__」——答案是一连串预测
  • 总结:「原文:...... 摘要:__」——预测摘要的每个词

语言模型 = 一个通用的语言任务求解器。这是个极其深刻的洞察。


2.2 第一代:N-gram 语言模型(1950s - 2000s)

最早的语言模型叫做 N-gram——它的想法朴素到让人发笑:

🧱 要预测下一个词?看看前 N-1 个词是什么,然后查一下历史统计——这 N-1 个词后面最常跟什么词,就猜那个。

比如一个 3-gram 模型(N=3,叫 trigram): - 您输入「我 爱 __」 - 模型去查训练数据里所有「我 爱」后面跟的词: - 「你」出现 10,000 次 - 「中国」出现 5,000 次 - 「学习」出现 3,000 次 - …… - 模型输出:最可能是「你」

就这么简单。就是概率统计


N-gram 的两个致命弱点

❶ 它「记不住」远处

一个 3-gram 模型只能看前 2 个词。对于这句话:

「张老师今天给我们讲了一节非常有趣的关于物理的课,他的讲解清晰生动,让人觉得__

您需要「物理」这个词来判断后面可能是「物理世界很奇妙」。但 3-gram 只看得到「让人觉得」这 2 个词——它完全不知道前文在讲物理

❷ 它「不理解」相似性

N-gram 把每个词当独立符号处理。它不知道「老师」和「教师」其实意思相近。训练时如果只见过「老师讲课」没见过「教师讲课」,它就对后者毫无把握。


这两个弱点,困扰了语言模型半个世纪


2.3 第二代:神经网络语言模型(2003 - 2012)

2003 年,深度学习的先驱之一 Yoshua Bengio(后来的图灵奖得主)发表了一篇论文——

📜 《A Neural Probabilistic Language Model》(2003)

他做了一件改变历史的事:把词变成向量(Embedding),让神经网络处理。

这一招解决了 N-gram 的第二个弱点——相似的词会学到相似的向量,模型第一次「知道」老师和教师是一回事。

但受限于当时的算力,这种神经网络语言模型还没能完全取代 N-gram。


2.4 第三代:RNN/LSTM 时代(2012 - 2017)

随着深度学习在 2012 年爆发(上一讲讲过),循环神经网络(RNN)长短期记忆网络(LSTM) 开始统治语言任务。

RNN 的核心思想是:用一个「状态」记住前文

输入:  张  老师  今天  讲  了  物理  ,  让人  觉得  __
        ↓   ↓    ↓    ↓   ↓   ↓    ↓   ↓    ↓
状态:  [h1][h2] [h3] [h4][h5][h6] [h7][h8] [h9]
                                              ↓
                                          预测下一个词

每读一个词,就更新一下状态(一个向量)。这个状态理论上包含了「前文的所有信息」。

比 N-gram 强多了——理论上能记住任意长的前文。


但 RNN 有它自己的毛病

❶ 实际上记不住太远的内容 尽管理论上可以,但训练 RNN 时信号会「衰减」,它对几十个词之前的内容就基本忘记了(上一讲的「梯度消失」问题)。

❷ 计算必须一个词接一个词 状态 h5 要等 h4 算完才能算——无法并行。这在 GPU 时代是个致命伤。

这两个毛病压了 RNN 家族整整 5 年,直到——


2.5 第四代:Transformer 时代(2017 至今)

2017 年 6 月,Google 的几位研究者发表了一篇永载史册的论文:

📜 《Attention is All You Need》 Vaswani 等人 · NeurIPS 2017 引用数:至 2026 年 4 月超过 18 万次(史上被引用最多的 AI 论文之一)

这篇论文提出了一个全新的架构——Transformer

Transformer 同时解决了 RNN 的两个毛病: - ✅ 能「看到」任意远的前文(通过 Attention 机制) - ✅ 能高度并行计算(所有位置同时算,GPU 利用率拉满)

从此,语言模型进入Transformer 时代。所有现代大语言模型——

家族 代表模型 发布时间
GPT 系列 GPT-1/2/3/4/5 2018 - 2025
Claude 系列 Claude 1/2/3/4 2022 - 2026
Gemini 系列 Gemini 1/2/3 2023 - 2026
DeepSeek 系列 DeepSeek V1/V2/V3/V4 2023 - 2026
Qwen 通义千问 Qwen 1/2/3 2023 - 2026
LLaMA 系列 LLaMA 1/2/3/4 2023 - 2025

——无一例外,全部基于 Transformer

这就是为什么 Transformer 被称为 「2010 年代 AI 领域最重要的单一发明」

本讲的后半部分就是要搞懂:Transformer 到底是什么?它为什么这么强?

但要理解 Transformer,我们得先打通它消化文字的前几个环节——Token 和 Embedding


2.6 语言模型 70 年演化总览

1950s ─── 1990s ─── 2003 ─── 2012 ─── 2017 ─── 2022 ─── 2026
  N-gram                                        ChatGPT
  ┌────────────────┐                            发布     GPT-5.4
  │ 统计语言模型    │                                    Claude 4.7
  │ 只看前 N 个词   │                                    DeepSeek V4
  └────────────────┘
                    ┌────────────────┐
                    │ 神经语言模型    │
                    │ 引入 Embedding  │
                    └────────────────┘
                                     ┌──────────────────────┐
                                     │ RNN / LSTM 时代       │
                                     │ 用状态记住前文        │
                                     └──────────────────────┘
                                                      ┌──────────────────────────┐
                                                      │ Transformer 时代          │
                                                      │ 「Attention is All You   │
                                                      │  Need」2017              │
                                                      │ 统一所有现代 LLM         │
                                                      └──────────────────────────┘

📐 数学视角(可跳过)

语言模型的数学定义:

给定一段文字 $w_1, w_2, \ldots, w_n$(每个 $w_i$ 是一个词/token),语言模型要建模这段文字的联合概率

$$P(w_1, w_2, \ldots, w_n)$$

根据链式法则,这个联合概率可以拆成连乘:

$$P(w_1, w_2, \ldots, w_n) = \prod_{i=1}^{n} P(w_i | w_1, w_2, \ldots, w_{i-1})$$

这就是「不断预测下一个词」 的数学本质。每一项 $P(w_i | w_1, \ldots, w_{i-1})$ 是「给定前文,预测第 $i$ 个词」的条件概率。

N-gram 模型的简化:假设下一个词只依赖前 $N-1$ 个词:

$$P(w_i | w_1, \ldots, w_{i-1}) \approx P(w_i | w_{i-N+1}, \ldots, w_{i-1})$$

神经语言模型:用一个神经网络 $f_\theta$ 直接建模这个条件概率:

$$P(w_i | w_1, \ldots, w_{i-1}) = f_\theta(w_1, \ldots, w_{i-1})$$

训练目标是最大化训练数据上每段文本的概率(等价于最小化负对数似然):

$$\mathcal{L}(\theta) = -\frac{1}{N} \sum_{i=1}^{N} \log P(w_i | w_1, \ldots, w_{i-1}; \theta)$$

所有 LLM 的预训练损失函数,本质上就是这个。


第 4 节 · 8 分钟Token:大语言模型眼中的「字」

在深入 Transformer 之前,我们需要先搞懂一个基础但极其关键的概念——Token

很多老师用了大半年 AI,可能都没搞清楚 Token 到底是什么。这一节我们把它彻底讲透。


3.1 一个灵魂提问:ChatGPT 认识「字」吗?

答案可能让您意外——不认识。

ChatGPT 不直接处理汉字,也不直接处理英文字母。它处理的最小单位叫 Token(令牌 / 标记)

您输入的每一段文字,进入模型之前都会经过一个叫 Tokenizer(分词器) 的处理。它把您的文字切碎成一块一块的 Token


3.2 Token 到底长什么样?

让我们看几个真实的例子:

例子 1:英文

输入:"Artificial intelligence is amazing."

切分后可能是:

["Artificial", " intelligence", " is", " amazing", "."]

5 个 Token

例子 2:英文(更复杂的词)

输入:"unbelievable"

切分后可能是:

["un", "believable"]   或者   ["un", "believ", "able"]

2-3 个 Token。英文的长单词往往会被拆成多个 Sub-word(子词)

例子 3:中文

输入:"人工智能正在改变教育"

不同模型的切分不太一样。常见切法:

GPT 系列(早期):   ["人", "工", "智", "能", "正", "在", "改", "变", "教", "育"]   → 每个字 1 个 token
DeepSeek / Qwen:   ["人工", "智能", "正在", "改变", "教育"]                          → 按词切

例子 4:代码

输入:print("Hello")

切分后:

["print", "(", "\"", "Hello", "\"", ")"]

例子 5:Emoji

输入:"今天心情🌞"

切分后:

["今天", "心情", "🌞"]   —— emoji 也是一个 token(但有时会被拆成多个字节 token)

3.3 一个直观换算表:帮老师建立数量感

内容 大致对应 Token 数
1 个英文单词 1 - 1.5 个
1 个中文字 1 - 2 个
1 句英文(~20 词) 约 25 个
1 段中文(~100 字) 约 150 个
1 篇短文(~500 字) 约 750 个
1 万字的中文文档 约 1.5 万个
1 本 30 万字的小说 约 45 万个

记住这个口诀

📌 「1 个中文字 ≈ 1.5 个 token;1 个英文词 ≈ 1.3 个 token」

这个估算以后会经常用到——无论是理解「上下文窗口」(下面会讲),还是计算 API 费用。


3.4 Token 是怎么被切分的?——BPE 算法

Tokenizer 的切分规则,不是写死的规则,而是从大量数据中学出来的。

最主流的分词算法叫 BPE(Byte Pair Encoding,字节对编码)。它的工作原理可以用一个故事讲清楚:


假设您要教一个外星人读英文,您有一堆英文书作为教材

第 0 步:先把所有书拆成单个字符:

['A', 'r', 't', 'i', 'f', 'i', 'c', 'i', 'a', 'l', ' ', 'i', 'n', ...]

第 1 步:数一数哪两个字符组合最常一起出现。比如「e」和「r」组合成「er」出现了 100 万次。把「er」合并成一个新 token:

['A', 'r', 't', 'i', 'f', 'i', 'c', 'i', 'a', 'l', ' ', 'i', 'n', ..., 'er', ...]

第 2 步:继续找。可能「th」出现 80 万次,也合并:

['A', 'r', 't', 'i', 'f', 'i', 'c', 'i', 'a', 'l', ..., 'er', 'th', ...]

…继续做几万次合并,直到得到一个大约 5 万到 10 万 Token 的词表

这就是一个 Tokenizer——一个从字符开始、逐步合并常见组合得到的词表。


BPE 的妙处: - 常见词不会被切:「the」「is」这种高频词本身就是一个 token - 罕见词会被切成子词:「unbelievability」会被切成 [「un」, 「believ」, 「abil」, 「ity」] 这种子词 - 任何字符串都能编码:哪怕是从没见过的新词或 emoji,也能拆到字符级别,至少不会失败


📐 数学视角(可跳过)

BPE 算法的核心是一个频率合并循环

  1. 初始化词表 $V$ 为所有单个字符
  2. 在语料库 $\mathcal{C}$ 中统计相邻 token 对 $(a, b)$ 的出现频率 $\text{freq}(a, b)$
  3. 选出频率最高的对 $(a^, b^) = \arg\max_{(a,b)} \text{freq}(a, b)$
  4. 将 $a^ b^$(拼接后的新 token)加入词表 $V$,并在语料中把所有 $(a^, b^)$ 替换为新 token
  5. 重复第 2-4 步,直到词表大小达到预设值 $|V| = K$(通常 32K ~ 128K)

对于一个训练好的 BPE tokenizer,给定任意输入字符串,编码为 token 序列的过程是贪心匹配:从左到右尽量匹配词表中最长的 token。

GPT-3.5/4 用的是 tiktoken(OpenAI 的实现),Qwen 用的是修改过的 BPE,DeepSeek 用 sentencepiece——都是 BPE 家族。


3.5 为什么 Token 是一切的起点?

您必须理解 Token,因为 LLM 的三件关键大事都和它有关——


❶ 「上下文窗口」是用 Token 度量的

您一定听过「Claude 有 200 万 token 上下文」、「DeepSeek 128K 上下文」这些说法。它们在说什么?

上下文窗口(Context Window):模型一次最多能『看到』多少 token

让我们看看 2026 年 4 月的主流模型:

模型 上下文窗口 相当于多少中文字 相当于什么
GPT-3.5(2022) 4K token 约 3,000 字 一篇短作文
GPT-4(2023) 128K token 约 10 万字 一本薄书
Claude 3.5(2024) 200K token 约 15 万字 一本普通小说
Gemini 1.5 / 2(2024) 1M - 2M token 约 150 万字 好几本小说
Claude Opus 4.7(2026) 200K token 约 15 万字
Gemini 3 Pro(2026) 2M token 约 150 万字
Kimi K2(2026) 2M token 约 150 万字

超过这个范围的文字,模型根本看不见——您给它一本 50 万字的书要它「通读后总结」,如果上下文只有 10 万字,它最多能看前 1/5。


❷ 模型的输出是「一个 token 一个 token」吐出来的

当您看到 AI 的回答在屏幕上一个字一个字地蹦出来——

那不是打字动画效果。那就是模型真实的工作方式。

模型每次只生成一个 token,然后把这个 token 添到已有输出的末尾,再以这个新的更长的序列为输入,预测下一个 token

Step 1:  输入:「请解释光合作用」           →  模型输出: 「光」
Step 2:  输入:「请解释光合作用 光」         →  模型输出: 「合」
Step 3:  输入:「请解释光合作用 光合」       →  模型输出: 「作」
Step 4:  输入:「请解释光合作用 光合作」     →  模型输出: 「用」
Step 5:  输入:「请解释光合作用 光合作用」   →  模型输出: 「是」
......                                      →  直到输出「终止 token」

这叫 自回归生成(Autoregressive Generation)

一个深远的含义:模型生成第 $n$ 个 token 时,前面 $n-1$ 个 token 都得重新跑一遍(某种程度上)。这就是为什么生成长文本又慢又贵。


❸ API 费用是按 Token 算的

如果您通过 API 调用模型(比如自己搭应用、或让 Claude 帮您写代码分析 Excel),费用按「输入 token 数 + 输出 token 数」计算

2026 年 4 月的参考价格(粗略):

模型 输入(/M token) 输出(/M token)
GPT-5.4 $3.00 $15.00
Claude Opus 4.7 $15.00 $75.00
Claude Sonnet 4.6 $3.00 $15.00
DeepSeek V4 $0.30 $0.80
Qwen3 Max $1.50 $6.00

M = Million(百万)。也就是说,给 Claude Opus 4.7 发 100 万 token(相当于 7 本书)要 15 美元。输出 100 万 token 要 75 美元。

为什么输出比输入贵 5 倍? 因为输出是一个一个算出来的,每个 token 都要跑整个模型;而输入只要跑一次就行。输出的计算量是输入的几倍。


3.6 Token 带来的几个「你以为但其实不是」

理解了 Token,您会发现很多 AI 的奇怪行为有了解释:

❓ 为什么 AI 有时候数不对字数?

比如您让 AI「写一段恰好 100 字的话」,它经常做不到。

原因:模型看到的是 token,不是字。它不知道「每个 token 对应几个字」——中文 token 可能对应 1 个字也可能 2 个字,它没法精确数字。

❓ 为什么 AI 有时搞不清楚字母顺序?

问 AI「strawberry 里有几个 r?」,早期模型经常答错。

原因:在模型眼里,「strawberry」 是一个(或几个)token,不是一串字母。它看不到「里面有几个 r」——就像您看不到一个 JPEG 文件里有几个字节「5F」一样。

(到 2025 年后的模型已经好多了,因为训练时专门加了「字符级任务」。)

❓ 为什么同一句话用不同语言讲,AI 速度和成本不同?

同样意思的话: - 英文 30 词 ≈ 40 token - 中文 50 字 ≈ 75 token - 日文同样内容 ≈ 100+ token

所以同一件事用日文问 AI 会比英文贵一倍多。这是 token 带来的「语言不平等」。


好——Token 讲完了。现在我们知道模型把文字切成了一块一块的 Token。

下一个问题是:这些 Token 进入神经网络之后,长什么样?

这就引出了下一节——Embedding(嵌入):模型把 token 变成「坐标」的魔法。


第 5 节 · 7 分钟Embedding:从文字到向量——模型的「GPS 坐标系」

这一节要解答一个核心问题:神经网络只能处理数字。文字怎么变成数字?

答案就是 Embedding(嵌入)。这是 NLP 领域过去 20 年里最美妙的一个发明


4.1 最朴素的想法:给每个词编号

最简单的思路:每个词分配一个编号

老师 → 1
学生 → 2
书本 → 3
苹果 → 4
......
中国 → 8172

这叫独热编码(One-hot Encoding)

问题很明显:这种编号毫无意义。「老师」(1)和「学生」(2)的编号挨着,但不代表它们「更接近」。「老师」(1)和「中国」(8172)编号差得很远,但也不代表它们「更远」。

编号只是标识符,不包含语义信息。

神经网络拿到这种编号,完全不知道怎么处理。


4.2 革命性的想法:用向量表示词

2003 年 Bengio 的论文,提出了一个革命性的想法——

💡 不给每个词一个编号,而给每个词一个『向量』(一串数字)。让这些数字本身表达词的意义。

什么意思?举个例子。假设我们用一个 4 维向量来表示词:

老师  →  [0.23, 0.87, 0.12, -0.45]
学生  →  [0.21, 0.85, -0.30, 0.12]
书本  →  [-0.11, 0.76, 0.52, 0.23]
苹果  →  [0.51, -0.12, 0.91, 0.34]
桃子  →  [0.49, -0.14, 0.88, 0.32]

注意看: - 「老师」和「学生」的前两个数字很像(都是教育场景词) - 「苹果」和「桃子」的向量非常接近(都是水果) - 「老师」和「苹果」则差得很远

这个向量,就是 Embedding(嵌入向量、词向量、词嵌入)


4.3 「词 = 向量」的几何直觉

把每个词理解成多维空间里的一个点——这是理解 Embedding 的最好方式。

想象一个二维平面(实际是几千维,但我们先简化):

         ↑  语义维度 A(「与教育相关」)
         │
  老师 ●                                        
         │   ● 学生                              
         │                                      
  教师 ● │                                      
         │      ● 课本   ● 作业                   
         │                                      
  ───────┼──────────────────────────────→ 语义维度 B
         │                                      
         │           ● 苹果  ● 桃子              
         │              ● 水果                    
         │                                      
         │     ● 中国  ● 美国                     
         │          ● 国家                        
         │                                      
         ↓

在这个空间里: - 相近的词,距离近:「老师」「教师」几乎重合;「苹果」「桃子」紧挨着 - 话题组成团簇:「教育类」「水果类」「国家类」分别聚成不同的区域 - 距离有意义:「老师到学生」的距离 ≈ 「父亲到儿子」的距离,因为都是「上下位关系」

这就像给每个词一个『语义 GPS 坐标』——坐标本身承载了意义。


4.4 一个著名的惊人发现:词向量的「加减法」

2013 年,Google 的 Tomas Mikolov 团队发表了 Word2Vec 论文,揭示了一个令人震惊的现象——词向量之间可以做加减法,而且结果有意义!

经典例子

$$\text{vec}(\text{国王}) - \text{vec}(\text{男人}) + \text{vec}(\text{女人}) \approx \text{vec}(\text{王后})$$

读出来:「国王 减 男人 加 女人 ≈ 王后」

这不是巧合。其他例子还有:

$$\text{vec}(\text{巴黎}) - \text{vec}(\text{法国}) + \text{vec}(\text{日本}) \approx \text{vec}(\text{东京})$$

$$\text{vec}(\text{走}) - \text{vec}(\text{走过了}) + \text{vec}(\text{跑过了}) \approx \text{vec}(\text{跑})$$

这说明什么?

说明词向量空间不是乱排的。它把「性别」「首都关系」「时态」 等语义关系,编码成了向量空间里的方向

「性别方向」 从男到女是一个特定的向量方向; 「首都方向」 从国家到首都是另一个方向; 「时态方向」 从现在到过去又是一个方向; ……

词向量空间是一个『语义被几何化』的神奇世界。 这是 NLP 领域最美丽的发现之一


4.5 现代 LLM 的 Embedding

现代大模型里,每个 token 的 Embedding 维度极高

模型 Embedding 维度
早期 Word2Vec(2013) 300
GPT-2(2019) 768 / 1024 / 1600
GPT-3(2020) 12,288
GPT-4 / Claude 估计 8,192 或更高(未公开)

12,288 维意味着什么?

每个 token 都是一个12,288 个数字组成的向量。每一维都代表某种「细微的语义倾向」——但具体是什么,连研究者自己也说不清(这就是深度学习的「黑箱」)。

但它 work。而且 work 得非常好。


4.6 Embedding 是学出来的,不是规定的

这是非常关键的一点——

Embedding 不是人类手工编写的。它是神经网络在训练过程中,自己学出来的

训练初始时,每个 token 的向量是随机数字。经过几万亿次训练之后,这些向量自己找到了自己该在的位置——相似的词自发地聚到一起,各种语义关系自发地被编码成方向。

这就是深度学习的魔法——给模型一个简单的任务(预测下一个词),让它自己在海量数据上练,结果: - 词向量自发变成了『语义地图』 - 语法关系自发变成了『几何方向』 - 世界知识自发被编码进参数

不是人类设计了这一切——是数据和训练过程『涌现』出了这一切

这种「涌现」现象,我们会在第四讲「中」里详细讲。


4.7 Embedding 的实用意义

对老师来说,Embedding 这个概念直接解释了好多现实现象——

❓ 为什么 AI 能听懂「同义词表达」?

您问「小学班主任需要具备哪些素质?」和「低年级主班老师应该有什么能力?」——意思相近的问题,AI 给出的回答也很相似。

原因:「班主任」和「主班老师」、「素质」和「能力」在 Embedding 空间里挨得很近。模型看到的不是表面字串的差异,而是向量的接近

❓ 为什么 AI 能「跨语言」理解?

多语言大模型能听懂中英文夹杂的问题。

原因:在训练过程中,「老师」和「teacher」学到了几乎相同的向量——因为它们在相似的上下文里出现。模型不分语言,只看向量。

❓ 为什么 Embedding 本身就是个有用的工具?

很多教育 AI 产品的底层用了 Embedding: - 题目相似度:两道题的向量距离近 → 可能考同一个知识点 - 作文相似度:两篇作文向量相近 → 可能有抄袭嫌疑(虽然这个用得要慎重) - 智能检索:您搜「如何激发学生兴趣」,系统把问题转成向量,去向量库里找最近的文档

这就是 RAG(检索增强生成) 的基础——第四讲「下」里会讲。


📐 数学视角(可跳过)

Embedding 查表:设词表大小为 $V$,嵌入维度为 $d$。嵌入层本质是一个矩阵 $\mathbf{E} \in \mathbb{R}^{V \times d}$。

给定 token $t$(其编号是 $i$),它的嵌入向量为矩阵的第 $i$ 行:

$$\text{Embedding}(t) = \mathbf{E}_i \in \mathbb{R}^d$$

整个过程本质上是一次查表

余弦相似度(Cosine Similarity) 是衡量两个 embedding 语义相近程度的最常用指标:

$$\text{sim}(\mathbf{u}, \mathbf{v}) = \frac{\mathbf{u} \cdot \mathbf{v}}{|\mathbf{u}| \cdot |\mathbf{v}|}$$

取值范围是 $[-1, 1]$: - 接近 1:两个向量方向高度一致 → 语义非常接近 - 接近 0:两个向量垂直 → 语义几乎无关 - 接近 -1:两个向量方向相反 → 语义对立

Word2Vec 的训练目标(Skip-gram):给定中心词 $w_t$,预测其上下文窗口内的词 $w_{t+j}$:

$$\mathcal{L} = -\frac{1}{T} \sum_{t=1}^{T} \sum_{-c \le j \le c, j \ne 0} \log P(w_{t+j} | w_t)$$

其中 $P(w_O | w_I) = \frac{\exp(\mathbf{v}{w_O}^\top \mathbf{v}})}{\sum_{w=1}^{V} \exp(\mathbf{vw^\top \mathbf{v}$})

训练完成后,嵌入矩阵 $\mathbf{E}$ 的行就是词向量——这就是 Word2Vec 的本质。


第 6 节 · 4 分钟「预测下一个词」:看似简单的目标,为何能统摄一切

这是本讲的第一个思想高潮

在深入 Transformer 的技术细节之前,我们必须先搞懂一个哲学层面的问题:

🤔 为什么『预测下一个词』这么简单的目标,能让 LLM 学会写代码、做数学题、讲笑话、医学诊断?


5.1 简单任务还是深刻任务?

先看一个对比。

简单任务的例子

「太阳从__升起」

稍微懂点常识的系统都能预测「东方」或「东边」。

深刻任务的例子

「小张今年 28 岁,他的姐姐比他大 3 岁。三年前,他姐姐 __ 岁。」

要预测「28」这个 token,模型需要做什么?

  • 理解「小张 28 岁」和「姐姐比他大 3 岁」的语义
  • 推理出姐姐现在 31 岁
  • 理解「三年前」是减法操作
  • 计算 31 - 3 = 28
  • 把结果转换回 token 「28」

看,一个简单的「预测下一个词」任务,把模型逼成了一个推理引擎!


5.2 再升一级:深刻任务无处不在

如果模型想在所有文本上准确预测下一个词,它不得不学会:

  • 数学:文本里有大量数学问题,要预测答案就要会算
  • 科学:预测科学文档里的下一个词,要懂物理化学生物
  • 代码:预测代码里的下一行,要理解编程逻辑
  • 翻译:「英译中:I love you. → 我__」要预测「爱」就得会翻译
  • 总结:「摘要:这篇文章讲了__」要准确预测就得会概括
  • 对话:「问:怎么做红烧肉?答:__」要合理答就得懂做菜

每一种『认知能力』,都藏在『预测下一个词』的任务里

当您训练模型在几万亿个 token 上不停做这件事——它被迫发展出所有这些能力,作为预测下一个词的「中间副产品」。


5.3 一个震撼的比喻:压缩即理解

OpenAI 的首席科学家 Ilya Sutskever(ChatGPT 的关键缔造者之一)曾说

🗣️ 「The compression of knowledge is really what the models are doing.」 (模型真正在做的事情,是知识的压缩。)

怎么理解?

想象一下:如果我给您互联网上的所有文本(几百 TB),让您「记住它、用它」——您会怎么做?

  • 逐字记是不可能的(您的大脑记不住这么多)
  • 更聪明的办法是:找到文本背后的『规律、模式、知识』,用这些规律能重新生成文本

LLM 的训练,本质上就是这个过程——

  • 它有几千亿参数可以用来「存信息」
  • 它被要求准确预测几万亿 token 的下一个词
  • 要做好这件事,它必须把语料里的知识『压缩』进参数

一个能精准预测下一个词的模型,内部必然浓缩了生成这些文本所需的全部知识

这就是「压缩即理解」 的深意——压缩到极致,就是理解。


5.4 但「理解」是真的吗?—— 争论

这里有一个哲学层面的争论,不同专家立场很不同:

乐观派(Ilya Sutskever、Dario Amodei 等):

LLM 已经开始展现出真正的理解和推理能力。它不只是「拼合」模式,它有了某种意义上的「世界模型」。

保守派(Gary Marcus、Yann LeCun 等):

LLM 只是「惊人地复杂的鹦鹉」。它不真正理解,只是在模仿。它不懂因果、不懂物理、一遇到训练数据分布之外的事就崩溃。

这个争论目前没有定论。但两派都同意一件事:

💡 『预测下一个词』这个训练目标,确实让模型学会了远超任何人预料的能力。

这件事本身就值得我们深思。


5.5 对老师的启发

LLM 这个例子给教育工作者一个深刻启发

  • 最强的学习,不是记忆,而是被迫的预测
  • 被迫不断地『猜下一步』,就能学会底层的规律
  • 任务越简单、练习量越大,反而越能涌现出复杂能力

这和教孩子的道理是一样的

  • 让孩子不停做题,把「预测正确答案」这件事练到极致——他就学到了规律
  • 让孩子不停读书,把「猜作者下一个会说什么」练到极致——他就培养了语感
  • 让孩子不停写作,把「选下一个合适的词」练到极致——他就发展了表达力

LLM 的训练原理,恰好印证了『熟能生巧』这个老道理——不是机械重复,而是「高频预测」练出的深度模式识别。


第 7 节 · 3 分钟Transformer 登场:2017 年的那场革命

现在终于到了本讲的核心——Transformer 架构

前面铺垫这么多,是为了让您真正理解:当研究者们在 2017 年提出 Transformer 时,他们到底解决了什么问题,为什么这事儿如此重要。


6.1 故事的起点:一个翻译任务的痛点

2016 年前后,Google 的研究者们在做机器翻译

翻译是 NLP 最难的任务之一——你要「真正理解」原文,然后「完整表达」到目标语言

当时的主流架构是 Seq2Seq + RNN + Attention

英文:  I  love  AI                        ────→ RNN 编码器 ──→ [隐藏状态]
                                                                    │
                                                                    ▼
中文:  我  爱  AI                         ←──── RNN 解码器 ←── [条件生成]

这套架构能工作,但有两个让人抓狂的毛病:

❶ 序列计算,无法并行

RNN 要求一个 token 一个 token 地算。要翻译一个 100 词的句子,必须按顺序算 100 步——后面的步骤必须等前面的步骤算完。

在 GPU 时代,这是一种浪费。GPU 本来擅长同时做几千个计算,RNN 却让它像单线程的 CPU 一样工作。

❷ 远距离依赖丢失

对这个英文句子:

「The animal didn't cross the street because it was too tired.」

代词 「it」 指的是前面的 「animal」 还是 「street」?人类一看就知道——animal 才会累。

但 RNN 要从「animal」的信号经过 7-8 步才能传到「it」,中间信号逐步衰减,模型很难做出正确判断。


6.2 一个大胆的想法:扔掉 RNN

2017 年 6 月,Vaswani 等 8 位 Google 研究者发表了那篇改变历史的论文:

📜 《Attention is All You Need》 (你只需要注意力) Vaswani, Shazeer, Parmar, Uszkoreit, Jones, Gomez, Kaiser, Polosukhin

标题就是论文的核心观点——

💡 「我们不需要 RNN 的循环,不需要 CNN 的卷积。只需要一种叫 Attention(注意力)的机制,就能做出最好的序列模型。」

这是一个极其大胆的主张。在当时看来,抛弃 RNN 就像抛弃了 NLP 的根基一样。

但事实证明——他们是对的


6.3 Transformer 解决了什么?

Transformer 的核心创新,是用 Attention 机制替代 RNN 的循环,带来了两个决定性的改进:

❶ 并行计算

Transformer 不按顺序处理 token。它让所有 token 同时进入网络,同时被处理

这解锁了 GPU 的全部威力——训练速度相比 RNN 提升几十倍

❷ 任意位置直接交互

Transformer 的 Attention 机制让每个 token 直接看到所有其他 token(不管它们之间距离多远)。

这意味着: - 「it」可以直接和「animal」对话,不需要经过中间 7-8 个词 - 「远距离依赖」问题迎刃而解

这两个改进,让 Transformer 在翻译任务上的表现立刻超越了 RNN,而且训练成本更低。


6.4 这一切,是从一个精妙到让人拍案叫绝的机制开始的

接下来的一节,我们就要深入这个机制——Attention

Transformer 里的所有魔法,都是围绕 Attention 展开的。理解了 Attention,您就理解了 Transformer 的灵魂;理解了 Transformer,您就理解了 2026 年所有大语言模型的底层。

深呼吸一下,我们进入本讲的顶点——


第 8 节 · 8 分钟Attention 机制:Transformer 的心脏 🌟

Attention(注意力)是本讲最重要的概念。如果您这一讲只记住一件事,请记住它。


7.1 先讲一个直觉:人类是怎么读句子的?

请读下面这句话:

昨天我在学校食堂吃午饭时遇到了老同学李华,告诉我他已经从上海回到了深圳工作,让我非常意外,因为他以前一直说很喜欢上海的生活。」

您在读这句话时,大脑不是平均地对待每个字。您的注意力实际上是这样分布的:

  • 读到「」时,大脑自动回去看「李华」—— 啊,「他」 指李华
  • 读到「」时,大脑自动回去看「他已经从上海回到了深圳工作」—— 啊,「这」 指这件事
  • 读到「因为」时,大脑自动关注前面那个「这」的内容 —— 这是因果关系

读每一个字时,您的注意力会自动『跳回去』关注最相关的前文

Attention 机制,就是让神经网络也能做到这件事——动态地、有选择地『关注』前文中最相关的部分。


7.2 用一个教学场景来打比方

想象您是一位语文老师,正在改一份古诗鉴赏卷。

学生写了 10 行答案,其中某一行写:

「这首诗表达的是作者对故乡的思念。」

您要判断「这首诗」指的是什么。您会怎么做?

您会回到卷子最上面,去看题干——「下列作品中哪首是……」——哦,题干里指明的是李白的《静夜思》。

这个「回到卷子上面去找最相关内容」的动作,就是Attention


7.3 Attention 的核心工作方式

好,我们把这件事正式化。

对模型来说,当它要处理某个 token(比如要理解「他」这个字)时,它会做以下步骤:

❶ 生成三种向量

对每个 token,模型计算三个向量:

向量 名字 角色
Q Query(查询) 「我现在在找什么?」
K Key(键) 「我有什么可被关注的?」
V Value(值) 「如果你关注我,我给你什么信息?」

这三个向量都是从 token 自己的 Embedding 通过不同的线性变换得到的。


❷ 计算「每个其他 token 跟我多相关」

当前 token 拿着自己的 Q,去和前面所有 token 的 K 做比较。

相关度的计算方法是:点积。 - Q 和某个 K 越相似(点积越大)→ 这个 token 越值得关注 - Q 和某个 K 越不相似(点积越小)→ 这个 token 不用关注

比如「他」这个 token 去和前面所有 token 比:

他的 Q · 「李华」的 K  = 8.5    (高相关)
他的 Q · 「我」的 K    = 2.1    (低相关)
他的 Q · 「昨天」的 K  = 0.3    (几乎无关)
他的 Q · 「食堂」的 K  = 1.0    (稍相关)
...

❸ 转换成「注意力权重」

把这些相关度通过 Softmax 函数转换成概率(总和 = 1):

「李华」:  0.72   ← 关注最多
「我」:    0.15
「食堂」:  0.07
「昨天」:  0.03
...
(加起来 = 1)

这就是「注意力分配」——「他」把 72% 的注意力给了「李华」,15% 给了「我」……


❹ 用注意力权重加权汇总信息

把每个 token 的 V 向量按照注意力权重加权求和:

$$\text{「他」的新表达} = 0.72 \times V_{\text{李华}} + 0.15 \times V_{\text{我}} + 0.07 \times V_{\text{食堂}} + \cdots$$

这就得到了「他」在这个句子里的『完整语义表达』——它包含了「李华」的信息(占 72%)、「我」的信息(占 15%)……


7.4 用一个抽象比喻把整个过程串起来

想象一个图书馆场景

  • 您(当前 token)拿着一张需求清单(Q)——「我想找一本关于古诗的书」
  • 图书馆里每本书都贴着一张标签卡(K)——「唐诗全集」、「高数习题集」、「三国演义」……
  • 每本书里有具体内容(V)——书里的文字

您的做法: 1. 把您的需求清单(Q)和每本书的标签(K)对照 2. 找出标签最匹配的书(注意力最高) 3. 按匹配程度「借阅」每本书的内容(V),混合成您需要的知识

这就是 Attention 的本质: - Q 问「我要什么」 - K 答「我有什么」 - V 是实际内容


7.5 为什么叫「自注意力」(Self-Attention)?

Transformer 里的 Attention 有一个特殊的名字——Self-Attention(自注意力)

「自」的意思是Q、K、V 都来自同一个句子内部

不是「模型关注外部信息」,而是「一句话里的每个词互相关注」。

想象这幅画面

句子:  昨天  我  在  食堂  遇到  李华  ,  他  告诉  我  ......

「他」要理解自己的含义时,向前面所有词「投票」:
    昨天 ──┐
    我   ─┐├─→ 汇总投票后:
    在   ┘│         「李华」得 72%
    食堂 ─┘         「我」得 15%
    遇到 ─┘         「食堂」得 7%
    李华 ─┘          ......
                    ↓
                 「他」= 主要指「李华」(72%)的向量

每个词都这样做一遍。这样一次 Self-Attention,整个句子里的所有语义关系都被捕捉到了。


7.6 一个细节:「位置」怎么办?

细心的读者可能发现——

Attention 只关心 token 的「内容」,不关心它们的「位置」。

但「我打了你」和「你打了我」意思完全不同啊!位置怎么办?

答案:Transformer 给每个位置都加了一个位置编码(Positional Encoding)

这个编码是一个向量,加到 token 的 Embedding 上。不同位置的编码不同,模型就能知道: - 「这个 token 在第 1 个位置」 - 「那个 token 在第 7 个位置」

早期 Transformer 用固定的正弦函数生成位置编码;现代 LLM(如 Claude、GPT-4)用可学习的位置编码旋转位置编码(RoPE)等更先进的方式。


7.7 多头注意力:让模型同时看多种关系

实际的 Transformer 不只做一次 Attention,而是并行做好几个——这叫多头注意力(Multi-Head Attention)

为什么要多头?

因为同一句话里可能有多种关系需要同时关注: - 语法关系(主语-谓语-宾语) - 指代关系(「他」指谁) - 情感关系(哪个词带情绪) - 逻辑关系(因果、转折) - ......

一个注意力头,可能只能捕捉一种关系

多头注意力 = 让 $h$ 个(通常 8、16、32、64 个)注意力头并行工作,每个头关注不同的方面。最后把它们的结果拼接起来。

句子:昨天在食堂遇到李华,他说他从上海回来了

头 1:关注主谓宾(我 → 遇到 → 李华)
头 2:关注指代(他 → 李华)
头 3:关注地理(上海、食堂、……)
头 4:关注时间(昨天、……)
......

最后:把 16 个头的结果拼起来 → 一个包含多种语义视角的综合表达

多头注意力的威力一个句子被多角度『扫描』了一次,每个 token 的表达都极其丰富。


7.8 一句话总结 Attention

如果您合上书只能记一件事:

🌟 Attention = 让句子里每个词『动态地』关注其他所有词,按相关度加权汇总信息。

它的伟大在于两点: 1. 每个词可以看到所有其他词(不管多远),无信息衰减 2. 关注的程度是『学出来的』(不是人设定的),模型自己决定该看什么

这两点合起来,就是 Transformer 超越 RNN 的全部秘密。


📐 数学视角(可跳过)

Scaled Dot-Product Attention 的标准公式:

$$\text{Attention}(\mathbf{Q}, \mathbf{K}, \mathbf{V}) = \text{softmax}\left(\frac{\mathbf{Q} \mathbf{K}^\top}{\sqrt{d_k}}\right) \mathbf{V}$$

其中: - $\mathbf{Q} \in \mathbb{R}^{n \times d_k}$:所有 token 的 Query 向量矩阵($n$ 是序列长度) - $\mathbf{K} \in \mathbb{R}^{n \times d_k}$:所有 token 的 Key 向量矩阵 - $\mathbf{V} \in \mathbb{R}^{n \times d_v}$:所有 token 的 Value 向量矩阵 - $d_k$:Key 向量的维度 - $\sqrt{d_k}$:缩放因子,防止点积值太大导致 softmax 梯度消失

分解看: 1. $\mathbf{Q} \mathbf{K}^\top$:计算所有 (Q, K) 对的点积,得到 $n \times n$ 的矩阵。第 $(i, j)$ 项是「第 $i$ 个 token 对第 $j$ 个 token 的相关度」 2. $\div \sqrt{d_k}$:缩放 3. $\text{softmax}(\cdot)$:按行归一化,每行变成一个概率分布 4. $\times \mathbf{V}$:用这个权重矩阵去加权汇总所有 token 的 Value

结果是 $n \times d_v$ 的矩阵——每个 token 的新表达。

多头注意力: $$\text{MultiHead}(\mathbf{Q}, \mathbf{K}, \mathbf{V}) = \text{Concat}(\text{head}_1, \ldots, \text{head}_h) \mathbf{W}^O$$

其中 $\text{head}_i = \text{Attention}(\mathbf{Q}\mathbf{W}_i^Q, \mathbf{K}\mathbf{W}_i^K, \mathbf{V}\mathbf{W}_i^V)$。

$\mathbf{W}_i^Q, \mathbf{W}_i^K, \mathbf{W}_i^V, \mathbf{W}^O$ 都是可学习的权重矩阵。


第 9 节 · 6 分钟Transformer 完整架构:把拼图拼起来

Attention 是 Transformer 的心脏。但 Transformer 不只有 Attention——它还有几个重要的配件。这一节把整个架构拼起来看。


8.1 一个 Transformer Block 的内部

Transformer 的基本单元Transformer Block(或叫 Layer)。一个 Block 由以下组件按顺序连起来:

    输入                                      
     │                                        
     ▼                                        
┌────────────────────────┐                   
│ 多头自注意力             │  ← 上一节讲的主角
│ (Multi-Head Attention)  │                   
└────────────────────────┘                   
     │                                        
     ▼                                        
┌────────────────────────┐                   
│ 残差连接 + 层归一化       │  ← 加上原输入 & 标准化
│ (Add & LayerNorm)       │                   
└────────────────────────┘                   
     │                                        
     ▼                                        
┌────────────────────────┐                   
│ 前馈网络                 │  ← 做一层非线性加工
│ (FFN / MLP)             │                   
└────────────────────────┘                   
     │                                        
     ▼                                        
┌────────────────────────┐                   
│ 残差连接 + 层归一化       │                   
│ (Add & LayerNorm)       │                   
└────────────────────────┘                   
     │                                        
     ▼                                        
   输出                                        

让我们逐个配件讲:


8.2 配件一:前馈网络(FFN / MLP)

Attention 让 token 之间互相交流。那每个 token 自己内部的信息如何加工

答案是 前馈网络(Feed-Forward Network, FFN),也叫 MLP(Multi-Layer Perceptron)。

它做的事: - 接受一个 token 的向量 - 通过两层全连接网络(中间有一个 ReLU 激活函数) - 输出一个新向量

作用:给每个 token 的向量做一次深加工——把 Attention 汇总来的信息进一步提炼。


一个有趣的数字

现代 Transformer 里,FFN 的参数占了整个模型参数的 2/3 以上

为什么?因为 FFN 里有两个很宽的全连接层——通常中间维度是 Embedding 维度的 4 倍。所以大部分的「记忆」都存储在 FFN 里

研究者发现:当你让 LLM「回答一个事实问题」(如「珠穆朗玛峰有多高?」)时,答案很大程度上藏在 FFN 的参数里。


8.3 配件二:残差连接(Residual Connection)

残差连接的做法简单到不敢相信:

每个子层的输入,直接「绕过」该子层,加到它的输出上。

输入 ──┬─→ 子层处理 ──→ 子层输出
       │                  │
       └─────── + ────────┘
                │
                ▼
              最终输出

也就是说:最终输出 = 子层输出 + 原始输入


为什么要这么做?

理由一:防止信息丢失

在深度网络里,经过很多层处理之后,原始信息很容易被「污染」。残差连接保证了原始信息有一条直通道,不会被完全改写。

理由二:让梯度能传到深层

上一讲讲过「梯度消失」——深度网络训练时,前几层的参数几乎收不到有效的梯度信号。

残差连接相当于给梯度开了一条高速公路。没有残差连接,超过 20 层的网络都训不起来;有了它,1000 层的网络都能训练。

残差连接是 2015 年 ResNet 的发明,后被 Transformer 吸收——它是深度学习能「深」起来的关键发明之一


8.4 配件三:层归一化(LayerNorm)

层归一化(Layer Normalization) 的作用是让数值保持在合理范围

在深度网络中,数值一层层传递时会越来越大或越来越小,导致训练不稳定。

LayerNorm 的做法: - 对每个 token 的向量,计算均值和方差 - 把向量减去均值、除以标准差,重新标准化

这确保了每层的输入都在类似的数值范围内,训练过程稳定。

2026 年的新进展:现代模型(Llama、Qwen、DeepSeek)普遍用 RMSNorm(Root Mean Square Normalization),比 LayerNorm 更简单、更高效,效果类似。


8.5 一整个 Transformer:多个 Block 层叠

一个 Transformer Block 已经很强大了——它能让所有 token 互相交流,做一层深度加工。

但 Transformer 的真正威力来自『层叠多个 Block』

输入文字 → [Embedding + 位置编码]
         ↓
     ┌──────────────┐
     │ Transformer  │ ← 第 1 层
     │   Block 1    │
     └──────────────┘
         ↓
     ┌──────────────┐
     │ Transformer  │ ← 第 2 层
     │   Block 2    │
     └──────────────┘
         ↓
         ......
         ↓
     ┌──────────────┐
     │ Transformer  │ ← 第 N 层
     │   Block N    │
     └──────────────┘
         ↓
     [输出:预测下一个 token 的概率分布]

各家模型的层数(Block 数)

模型 Block 数量
原始 Transformer 论文(2017) 6
BERT-Base 12
GPT-2 Small 12
GPT-2 XL 48
GPT-3 96
LLaMA-3 70B 80
DeepSeek V3 61
Claude Opus 4.7(推测) 100+(未公开)

每一层都在前一层的基础上做更进一步的抽象处理——这就是上一讲讲的「逐层抽象」在 LLM 里的体现。


8.6 三种 Transformer 架构:Encoder、Decoder、Encoder-Decoder

Transformer 原始论文里,实际上有两种角色的 Block:Encoder(编码器)Decoder(解码器)

随着历史发展,Transformer 分化出了三大类:


类型一:Encoder-Only(只用编码器)

代表:BERT(2018)

用途理解任务——情感分析、文本分类、命名实体识别

特点:每个 token 能同时看到前文和后文(双向注意力)。适合做「阅读理解」类任务。

输入:  今天  天气  真  好   
         ↕     ↕    ↕   ↕    ← 每个 token 看所有其他 token
        (双向)
         ↓
     [分类结果:情感 = 积极]

类型二:Decoder-Only(只用解码器)

代表:GPT 系列、Claude、DeepSeek、Qwen、LLaMA —— 所有现代大语言模型!

用途生成任务——对话、写作、翻译、代码生成

特点:每个 token 只能看到前面的 token(单向注意力,也叫「因果注意力 Causal Attention」)。这保证了「预测下一个词」的合理性——生成第 5 个词时,不能「偷看」第 6 个词(它还没生成呢)。

输入:  今天  天气  真  __
         │     │    │
         ↓     ↓    ↓
       (只能看左边)
         ↓
     [预测下一个词:好 / 热 / 冷 / ...]

2026 年的主流大模型 99% 都是 Decoder-Only 架构


类型三:Encoder-Decoder(编解码架构)

代表:原始 Transformer(2017)、T5、早期翻译模型

用途翻译摘要——有明显的「输入 → 输出」结构

特点:Encoder 处理输入,Decoder 根据 Encoder 的输出生成目标。

英文输入 → [Encoder] → 向量表达 ─┐
                                 │
                                 ▼
中文输出 ← [Decoder] ← ← ← ← ← ──┘

现在这种架构用得较少——因为发现 Decoder-Only 做所有任务都很好。


8.7 关于 Decoder-Only 为什么赢了的思考

为什么现代 LLM 都选择了 Decoder-Only(GPT 式)架构,而不是 Encoder-Only(BERT 式)或 Encoder-Decoder(T5 式)?

几个关键原因:

❶ 预训练目标更通用

Decoder-Only 的训练目标是「预测下一个词」——这件事任何文本都能拿来训练,门槛极低。

BERT 需要做「完形填空」(遮住一个词让模型猜),对训练数据的构造有要求。

❷ 任务统一

前面讲过——「预测下一个词」就能做所有任务:翻译、总结、问答、分类……都可以转换成「给定前文,预测后文」的形式。

Encoder-Only 擅长理解但不会生成,用途有限。

❸ 模型规模扩展简单

Decoder-Only 架构扩大规模(从 1 亿参数到 1 万亿参数)时性能持续提升。BERT 扩大规模的回报递减。


8.8 回到最开头的疑问——ChatGPT 工作流程鸟瞰

现在您有了足够的知识,可以理解ChatGPT/Claude 回答您时到底在做什么——

您输入:「请给我讲一个关于勇气的故事」
                │
                ▼
  ┌─────────────────────┐
  │ Tokenizer 切分成 token │
  └─────────────────────┘
                │
                ▼
  ┌─────────────────────┐
  │ Embedding 转换成向量   │
  └─────────────────────┘
                │
                ▼
  ┌─────────────────────┐
  │ 加位置编码              │
  └─────────────────────┘
                │
                ▼
  ┌──────────────────────────────┐
  │                               │
  │    Transformer Block 1        │ ← 多头注意力 + FFN
  │                               │
  ├──────────────────────────────┤
  │                               │
  │    Transformer Block 2        │
  │                               │
  ├──────────────────────────────┤
  │          ......                │
  ├──────────────────────────────┤
  │                               │
  │    Transformer Block 96       │
  │                               │
  └──────────────────────────────┘
                │
                ▼
  ┌─────────────────────┐
  │ 输出:下一个 token      │
  │ 的概率分布             │
  └─────────────────────┘
                │
                ▼
     采样一个 token:「在」
                │
                ▼
     把「在」加到输入后面
                │
                ▼
     重新跑整个流程 → 预测下一个
                │
                ▼
     「从」 → 「前」 → 「,」 → 「有」 →
     「一个」→「小」→「男孩」→……
                │
                ▼
     直到生成「终止 token」→ 结束

这就是 ChatGPT 回答您的完整过程。每一步都是您现在理解的 Transformer。


第 10 节 · 4 分钟从一个 Token 到一段回答:完整推理流程

上一节我们从宏观上看了 ChatGPT 的工作流程。这一节再深入一些,讲解几个实用细节——让您彻底懂 LLM 生成文字时发生了什么。


9.1 采样策略:模型怎么「选出」下一个词?

模型最后一层的输出,是所有 token 的概率分布

比如在生成了「今天天气真」之后,模型输出:

好       : 30%
热       : 20%
冷       : 15%
晴朗      : 10%
糟糕      :  8%
......其他上万个 token 都有微小概率

接下来要『选一个』token。但怎么选?有几种常见策略——


策略一:贪心(Greedy)——选概率最高的

永远选最可能的那个词(这里是「好」)。

优点:简单、确定 缺点容易重复、无趣——因为输出完全由输入决定,没有多样性


策略二:采样(Sampling)——按概率抽签

按照概率分布抽样:70% 概率选「好」,20% 概率选「热」,…

优点:多样、有创意 缺点:偶尔会选到很奇怪的低概率词


策略三:Top-K 采样

只在概率最高的 K 个 token 里抽签(比如 K=50)。


策略四:Top-P 采样(Nucleus Sampling)

更聪明的版本——只在累积概率达到 P(如 P=0.9)的那些 token 里抽签。

  • 当模型非常确定时(最高概率 95%),只从这 1 个 token 里选
  • 当模型不确定时(分布很平),从很多 token 里选

这是现在 LLM 最常用的采样策略


9.2 温度参数:控制「创造力」的旋钮

温度(Temperature) 是一个控制采样「随机性」的参数。

Temperature = 0.0   →  贪心(完全确定)
Temperature = 0.7   →  平衡(常用默认值)
Temperature = 1.0   →  自然分布
Temperature = 1.5   →  高随机(创造性)
Temperature = 2.0+  →  非常随机(常常乱码)

技术上:温度调整的是 softmax 的「锋锐度」—— - 温度低:概率分布变尖锐(最可能的词更可能被选) - 温度高:概率分布变平坦(所有词机会趋同)

实用建议

任务类型 推荐温度
事实问答、代码、翻译 0.0 - 0.3
日常对话、解释概念 0.5 - 0.7
创意写作、故事、头脑风暴 0.8 - 1.2

下次您用 AI 时,如果它答得太死板,可以告诉它「多一些创造性」(隐性提高温度);如果它答得太跳脱,可以要求「更严谨」(隐性降低温度)。


9.3 终止:模型怎么知道「该停了」?

LLM 的词表里有一个特殊的 token:终止符(EOS, End of Sequence)

模型在训练时学到:「一段合理的回答应该在这个 EOS 处结束」。

生成时: - 如果模型预测下一个 token 是 EOS → 停止生成 - 或者达到了预设的最大长度 → 强制停止

所以 AI 的回答长度,是由模型自己决定的——它觉得「说完了」就停。

有时您看到 AI 的回答被切断——那往往是触发了「最大长度限制」(为了控制成本)。这时您可以说「继续」,让它从上次断点接着说。


9.4 KV Cache:生成长文本的优化

前面讲过,生成一段长回答时,每生成一个 token 都要重新跑整个模型。这听起来计算量爆炸。

优化技巧叫 KV Cache——把前面已经算过的 Key(K)和 Value(V)缓存起来,下次算新 token 时直接用,不再重复。

这让 LLM 的推理速度提升了几十倍。所有现代 LLM 都在用。

KV Cache 的大小跟上下文长度成正比——这就是为什么上下文越长,推理越慢、显存占用越大。Claude Opus 4.7 处理 200K token 的上下文时,KV Cache 可能占用十几 GB 显存。


9.5 一个完整的回答生成实例

把所有概念串起来,看看 ChatGPT 给您写一首小诗的完整过程——

您输入:「请写一首关于秋天的小诗」

第 1 步:Tokenize → [「请」、「写」、「一」、「首」、……]

第 2 步:每个 token → Embedding + 位置编码

第 3 步:经过 N 层 Transformer Block → 输出下一个 token 的概率分布

第 4 步:按 Top-P 采样(温度 0.8)→ 选出「秋」

第 5 步:把「秋」加到输入末尾,KV Cache 复用前文计算 → 下一个 token

第 6-N 步:不断循环,生成「风」、「吹」、「落」、「叶」、「,」、换行、……

第 N+1 步:模型生成 EOS token → 停止

最终输出

秋风吹落叶,
层林染丹青。
一夜凉如水,
星河入梦深。

整个过程:几千次 Transformer 前向计算,几百亿次浮点运算,只为生成这 20 多个字。

但您只感觉——「几秒钟,AI 就写完了一首诗」。


第 11 节 · 4 分钟本讲小结 + 第四讲中下的预告

我们一起走过了大语言模型最底层的机械——从一段文字进入模型,到一段回答从模型里出来。

让我们把本讲的核心概念浓缩成一张表:


10.1 本讲核心概念总结表

核心概念 一句话记忆
语言模型 能根据前文预测下一个词概率的数学模型
N-gram 最早的语言模型,统计「某 N 个词后最常跟什么」——有局限
Transformer 2017 年登场,用 Attention 替代 RNN,开启大模型时代
Token 模型处理的最小单位,不是字也不是词,是「子词」片段
Tokenizer(BPE) 把文字切分成 token 的工具,用频率合并学出来
上下文窗口 模型一次能看到的最大 token 数量
Embedding 把 token 变成高维向量,语义近的向量距离近
词向量加减法 词向量空间把语义关系编码成方向(如「性别方向」)
预测下一个词 LLM 的训练目标;简单却能统摄一切任务
压缩即理解 LLM 训练本质是把语料知识压缩进参数
Attention 让每个 token 动态关注前文所有 token,按相关度加权
Q/K/V Attention 的三要素:查询/键/值;QK 点积得相关度
Self-Attention Q、K、V 都来自同一句话内部
Multi-Head Attention 多头并行,同时捕捉多种语义关系
Position Encoding 让模型知道 token 的位置信息(Attention 本身不看位置)
FFN / MLP Transformer 里对每个 token 的深加工,占参数的 2/3
残差连接 绕过子层,保留原信息,让梯度能传到深层
LayerNorm / RMSNorm 标准化数值,训练稳定
Decoder-Only 现代 LLM 的主流架构——只能看前文,预测下一个词
采样策略 Top-P、温度等,决定模型怎么「选」下一个词
KV Cache 缓存前面算过的 K 和 V,加速长文本生成

10.2 对第四讲(中)的预告

本讲回答了「LLM 的机械结构是什么」。

但还有一个大问题没回答:一个 Transformer 架构是怎么从「什么都不会」被训练成「无所不能」的 ChatGPT 的?

第四讲(中) 的主题就是训练 + 对齐 + 涌现——

  • 预训练:在几万亿 token 的互联网文本上,让模型学会「世界知识」
  • 监督微调(SFT):让模型学会「好好说话」
  • 对齐(RLHF / DPO):让模型学会「成为一个有用、无害、诚实的助手」
  • 推理模型:o1 / DeepSeek-R1 / Claude Thinking Mode 为什么慢,为什么强
  • 涌现能力:规模为什么产生质变——当模型够大时能力「突然冒出」
  • MoE 混合专家:DeepSeek 用它把训练成本打到地板
  • 幻觉的深层原因与如何对付

10.3 对第四讲(下)的预告

第四讲(下)最面向老师实战的一讲——

  • 2026 年模型格局:GPT-5.4、Claude Opus 4.7、Gemini 3 Pro、DeepSeek V4 深度对比
  • Prompt 工程进阶:从「会用」到「会调教」
  • 评测榜单读法:MMLU、HumanEval、SWE-Bench 这些分数到底在说什么
  • 开源 vs 闭源:这场博弈对老师意味着什么
  • AI 安全与对齐的前沿:宪法 AI、可解释性研究
  • AI 生成内容检测:学生用 AI 写作业能检测出来吗?
  • 教师 LLM 实战清单:2026 年老师最实用的 30 个用法

10.4 本讲(上)的三个关键 takeaway

如果您离开这一讲时只能记住三件事,请记这三件——

🌟 ❶ LLM 干的就是「预测下一个词」——但这件「简单」的事,当规模足够大时就涌现出了所有复杂能力。

🌟 ❷ Transformer 的灵魂是 Attention——让每个词动态地『关注』前文最相关的部分,无视距离。

🌟 ❸ 2026 年所有主流大模型,都是 Decoder-Only 架构的 Transformer——它们共享同一个底层 DNA。

您懂了这三件事,就从「使用 LLM 的用户」升级成了「理解 LLM 的教师」


第 12 节 · 2 分钟尾声:思考题与延伸

一段写给老师的话

亲爱的老师——

这是整门课里最硬核的一讲。我写这份讲稿时,在想一件事:20 年后,当您今天的学生回来找您聊天,他们可能是 AI 研究者、AI 工程师、AI 伦理学家——

他们会跟您聊 Attention、聊 Transformer、聊涌现

那时您能聊得上。

这是我最想让您从这一讲里带走的东西——您未来十几年的职业生涯里,将有越来越多的学生去做和 AI 相关的工作。您不必成为专家,但您要能听懂他们在说什么

您已经做到了。走完这一讲,您已经领先 99% 的中小学老师了。

下一讲(第四讲中),我们会继续往前走——看看这个 Transformer 架构,是如何从一个刚出生的婴儿,长成今天无所不能的 ChatGPT 和 Claude 的。那个过程同样精彩。

休息一下,喝杯茶,我们下一讲见。

祝学习愉快。


—— 本讲讲稿将随技术发展和教学反馈持续更新。 —— 课程配套网站将同步提供最新版文字稿、视频回放和实操指南。


附录:重要概念索引(按字母序)

  • Attention 注意力机制:第 7 节
  • Autoregressive 自回归:第 3.5 节
  • BERT:第 8.6 节
  • BPE 字节对编码:第 3.4 节
  • Context Window 上下文窗口:第 3.5 节
  • Cosine Similarity 余弦相似度:第 4 节数学视角
  • Decoder-Only:第 8.6 节
  • Embedding 嵌入:第 4 节
  • Encoder-Decoder:第 8.6 节
  • Encoder-Only:第 8.6 节
  • FFN / MLP:第 8.2 节
  • GPT(Generative Pre-trained Transformer):第 2.5 节
  • KV Cache:第 9.4 节
  • Key 键向量:第 7.3 节
  • LayerNorm 层归一化:第 8.4 节
  • Multi-Head Attention 多头注意力:第 7.7 节
  • N-gram:第 2.2 节
  • Position Encoding 位置编码:第 7.6 节
  • Query 查询向量:第 7.3 节
  • Residual Connection 残差连接:第 8.3 节
  • RMSNorm:第 8.4 节
  • RNN / LSTM:第 2.4 节
  • Self-Attention 自注意力:第 7.5 节
  • Softmax:第 7.3 节
  • Temperature 温度:第 9.2 节
  • Token:第 3 节
  • Tokenizer 分词器:第 3.4 节
  • Top-K / Top-P 采样:第 9.1 节
  • Transformer Block:第 8.1 节
  • Value 值向量:第 7.3 节
  • Word2Vec:第 4.4 节