feat: add interactive demos for AI history, Auth design, and Git intro
This commit is contained in:
@@ -107,24 +107,95 @@
|
||||
|
||||
---
|
||||
|
||||
## 3.5 插播:到底什么是“模型”?
|
||||
|
||||
在讲具体的架构之前,我们先通俗地理解一下“模型”这个词。
|
||||
|
||||
在 AI 领域,**模型(Model)** 其实就是一个超级复杂的**函数**或者**黑盒子**。
|
||||
|
||||
- **输入**:一堆数字(比如上面的 Token ID)。
|
||||
- **处理**:黑盒子里有亿万个参数(可以理解为亿万个调节旋钮),它们会对输入数据进行疯狂的加减乘除运算。
|
||||
- **输出**:另一堆数字(代表预测结果,比如下一个词的概率)。
|
||||
|
||||
**打个比方:**
|
||||
|
||||
你可以把模型想象成一位**经验丰富的老厨师**:
|
||||
1. **输入(食材)**:你给他牛肉、土豆、番茄。
|
||||
2. **模型(厨师的脑子)**:他根据自己学过的成千上万道菜谱(训练数据),在脑子里快速计算:牛肉切块、土豆去皮、火候控制...
|
||||
3. **输出(菜肴)**:最后端出一盘土豆炖牛腩。
|
||||
|
||||
所谓的**训练(Training)**,就是让这位厨师从学徒做起,让他试错亿万次。做咸了就调一下“盐旋钮”,做淡了就调一下“火候旋钮”,直到他能稳定做出美味的菜肴。
|
||||
|
||||
现在的 LLM,就是一位“读过全人类书本”的超级厨师,只不过他炒的不是菜,而是文字。
|
||||
|
||||
## 4. 进化之路:从 RNN 到 Transformer
|
||||
|
||||
现在我们有了**高效的数据表达**(矩阵),接下来需要一个**高效的机器**(模型)来处理它。
|
||||
有了数据(Token),有了厨师(模型),接下来要看这位厨师是怎么思考的。
|
||||
|
||||
### 4.1 为什么要淘汰 RNN?
|
||||
在 AI 进化史上,主要有两种“思考方式”(架构):**RNN** 和 **Transformer**。
|
||||
|
||||
以前的模型(RNN)像人读书一样,**从左到右**一个字一个字读。
|
||||
### 4.1 以前的笨办法:RNN(传话游戏)
|
||||
|
||||
- **缺点1:慢**。必须读完第1个字才能读第2个,没法并行(浪费了矩阵并行的优势)。
|
||||
- **缺点2:忘**。读到文章最后,可能已经忘了开头讲什么了(长距离遗忘)。
|
||||
早期的模型(RNN,循环神经网络)处理一句话时,就像我们在玩**传话游戏**。
|
||||
|
||||
### 4.2 Transformer 强在哪?
|
||||
**工作方式:**
|
||||
1. 读第 1 个词“我”,记在脑子里,传给第 2 步。
|
||||
2. 读第 2 个词“喜欢”,结合刚才的记忆,更新一下脑子里的信息,再传给第 3 步。
|
||||
3. 读第 3 个词“吃”,再更新记忆...
|
||||
4. ...直到读完最后一个词。
|
||||
|
||||
现在的 LLM 都基于 Transformer 架构,它完美契合了矩阵并行的特性:
|
||||
**这就带来了两个致命缺点:**
|
||||
|
||||
1. **并行阅读**:它可以**一眼看完**整句话,不用一个字一个字读。
|
||||
2. **注意力机制 (Attention)**:它可以让句子里的每一个词,都**直接关注**到其他所有词。
|
||||
- 比如读到“它”这个字时,模型能瞬间注意到前面的“小猫”,从而知道“它”指代的是猫。
|
||||
1. **慢(无法并行)**:必须等上一个人传完话,下一个人才能开始。没法让 100 个人同时干活。
|
||||
2. **忘(长距离遗忘)**:传话传到第 100 个人时,他可能早就忘了第 1 个人说的是“我”还是“你”。这就导致模型写长文章时,容易前言不搭后语。
|
||||
|
||||
### 4.2 现在的天才设计:Transformer(圆桌会议)
|
||||
|
||||
2017 年,Google 提出了一种全新的架构——**Transformer**。它彻底改变了规则,把“传话游戏”变成了**圆桌会议**。
|
||||
|
||||
**工作方式:**
|
||||
Transformer 不再一个接一个地传话,而是让**所有词一次性全部坐上桌**。
|
||||
|
||||
1. **上帝视角(并行计算)**:所有词同时进场,不用排队。大家把自己的信息写在纸上,摊在桌子中间。
|
||||
2. **注意力机制(Attention)**:这是它的杀手锏。每个词都可以**直接**去看桌上其他任何一个词的信息。
|
||||
- 比如读到“它”这个字时,模型不需要回忆前面的传话,而是直接一眼看到前面的“小猫”,瞬间明白“它 = 小猫”。
|
||||
|
||||
**这就完美解决了 RNN 的痛点:**
|
||||
|
||||
* **快**:大家同时看资料,GPU 可以火力全开,效率极高。
|
||||
* **不忘**:不管句子多长,第 1 个词和第 10000 个词的距离都是“一步之遥”,想看谁就看谁。
|
||||
|
||||
> **总结一下**:
|
||||
> * **RNN**:像走迷宫,一步一步摸索,容易迷路。
|
||||
> * **Transformer**:像开上帝视角看地图,终点起点尽收眼底。
|
||||
|
||||
#### 为什么还需要“位置”信息?
|
||||
|
||||
因为 Transformer 是“一锅端”,如果不做特殊处理,它分不清“我爱你”和“你爱我”的区别(词都一样,只是顺序不同)。
|
||||
所以我们会给每个词贴个**号码牌(位置编码)**,告诉模型谁在第 1 位,谁在第 2 位。
|
||||
|
||||
> 小提醒:很多 LLM 是自回归(预测下一个词)的,所以在生成时仍然是一 token 一 token 往外吐;但在**每一步生成**的内部计算里,Transformer 依旧更能利用矩阵并行与缓存优化。
|
||||
|
||||
### 4.3 效率黑科技:KV 缓存 (KV Cache)
|
||||
|
||||
你可能听说过,生成长文本时,越到后面越慢,或者显存占用越大。这通常是因为模型需要“记住”之前生成的所有内容。
|
||||
|
||||
**Transformer 怎么“记笔记”?**
|
||||
|
||||
在 Transformer 的注意力机制中,每个词都会生成 `Key (K)` 和 `Value (V)` 两个向量,用来供后面的词“查询”。
|
||||
|
||||
- 当模型生成第 100 个词时,它需要回头看前 99 个词的 K 和 V。
|
||||
- 如果每次都重新计算前 99 个词的 K 和 V,那就太浪费了!
|
||||
|
||||
**KV Cache 的作用:**
|
||||
|
||||
KV Cache 就像是一个**“增量笔记本”**。
|
||||
|
||||
1. **不重算**:算完第 1 个词的 K 和 V,存起来。
|
||||
2. **只算新**:生成第 2 个词时,只计算第 2 个词的 K 和 V,然后和第 1 个词的 K、V 拼在一起。
|
||||
3. **越存越多**:随着对话进行,这个“笔记本”(显存占用)会越来越厚。
|
||||
|
||||
这就是为什么长文本对话(Long Context)会消耗大量显存的原因——**不是模型变大了,而是笔记(KV Cache)太厚了。**
|
||||
|
||||
<RNNvsTransformer />
|
||||
|
||||
|
||||
Reference in New Issue
Block a user