最近正好有空,打算抽时间复盘总结一下这些年零零散散学习的AI知识.
下面是目录
零基础认识大语言模型(LLM)工作原理目录 - GuZhenYin - 博客园
如果说上一章介绍的是:
模型吃进去什么。
那么这一章介绍的就是:
模型的大脑到底是如何工作的。
第三章 Transformer 到底是怎么工作的
很多介绍 Transformer 的文章,一开始就是下面这张公式:

看到这里,绝大多数兄弟已经放弃了。
事实上,即使不知道任何数学公式,也完全可以理解 Transformer 的核心思想。
这一章,我们不用矩阵、向量运算这些复杂公式来表述,而是用一个现实例子,说明模型到底是如何"思考"一段文字的。
3.1 从一句话开始
假设我们给模型输入一句话:
小明昨天去北京出差,今天他回来了。
然后问:
"他"是谁?
对于我们人类来说,答案非常简单。
当然是:
小明。
但是,如果你仔细思考,会发现句子里面其实并没有写:
他 = 小明。
我们的大脑为什么能够知道?
因为我们会自动回忆前面的内容。
发现:
小明
和
他
关系最紧密。
于是理解了"他"就是小明。
Transformer 做的事情,其实非常类似。
它也会**回头看,**不过它不是只看一个词。
而是看前面的所有 Token。
3.2 Transformer 为什么叫 Transformer?
很多人第一次看到:Transformer。
都会问,为什么叫Transformer?
是不是它的直译--变形金刚?(哈哈哈 开个玩笑..)
其实Transformer 的中文一般翻译为:
转换器。
为什么叫转换器?
因为它不断地把一串 Token,逐渐转换成越来越丰富的语义表示。
举个例子,刚开始,模型看到:苹果
它只知道这是一个 Token。
经过第一层它开始知道这是:水果。
再经过几层。
它知道这里说的是:苹果公司。
继续经过几层。
它发现上下文出现:
iPhone
Mac
Apple Store
于是最终理解这里的苹果,不是水果。
而是:Apple 公司。
注意,这里Token 没变,变化的是模型内部对它的理解。
所以Transformer真正转换的不是文字。
而是,每一个 Token 的语义表示。
那么Transformer是怎么转换token的语义的呢?
下面我们分步骤讲.
3.3 第一步:Embedding
上一节,我们提到:
苹果
↓
Token ID
↓
31582
这里很多人会问模型直接处理31582不行吗?
答案是不行。
为什么?
因为31582只是编号,这种编号太短,可存储内容太少,表示的语义也有限。
而且编号之间没有任何关系。
例如:
苹果
31582
香蕉
712
北京
89231
从数字来看,31582和712没有任何联系。
但是,我们人类知道苹果和香蕉都属于水果。
它们应该更接近。
因此,模型需要把Token ID变成一种新的表示。
它就是:Embedding(词向量)。
可以把它理解成:
模型给每一个 Token 建立的一张"身份证"。
不过这张身份证不是姓名,住址,出生年月这些。
而是一大串数字.例如:
苹果
↓
[0.13,
-0.42,
0.78,
......]
在大模型里面,可能一个token有几千维这些数字。
共同描述:苹果这个词在语言世界里的位置。
3.4 为什么叫"向量空间"?
很多文章都会说:
Token 被映射到高维向量空间。
听起来特别抽象,其实你可以想象成一张地图。(当然 地图最多也就三维空间)
地图上每一个 Token都有自己的坐标。
例如:

当然,真正的大模型完全不是二维。
而是几千维。
但是,原理一样,距离越近说明语义越接近。
例如模型可能发现:
北京
上海
广州
在向量空间中距离很近。
因为它们都是城市。
而:
Redis
MySQL
Kafka
也很近。
因为它们作为技术中间件经常出现在同样的上下文。
注意:模型并没有人告诉它,Redis 是数据库。
它只是统计发现Redis、Kafka、MySQL、Spring Boot经常一起出现。
于是通过大量的训练和计算,慢慢的这些 Token就在空间里面越来越近。
3.5 Transformer 最重要的一步--Attention(注意力机制)
到了这里,模型已经拥有了每一个 Token 的Embedding。
接下来,神奇的事情发生了。
Transformer 会问:
当前我要预测下一个 Token 时,前面的哪些 Token 最重要?
例如:
小明
昨天
去了
北京
今天
他回来了。
他是谁?
准备开始预测:
后面一句Transformer 会按token依次计算:
"小明"
重要吗?
★★★★★
"昨天"
重要吗?
★★
"北京"
重要吗?
★★★
"今天"
重要吗?
★★
最终模型发现和"他"关系最大的。其实是:小明。
于是模型就知道"他"大概率指的是小明。
这一步。就是Transformer 最伟大的发明:
Attention(注意力机制)。
很多人认为Attention就是让模型注意重点。
其实更准确一点说Attention 做的是:
计算每一个 Token 对当前 Token 的影响程度。
后面一节,我们将专门讲解 Attention 是如何工作的,以及为什么它彻底改变了自然语言处理的发展方向。
本章小结(第一部分)
这一部分,我们讲了三个关键概念:
- Transformer 并不是直接处理文字,而是处理 Token 的语义表示。
- Embedding 不是普通编号,而是让语义相近的 Token 在高维空间中彼此靠近。
- Transformer 的核心思想不是死记硬背,而是在生成每一个 Token 时,动态决定应该重点关注前文中的哪些 Token。
说明
这里特意没有讲 Q、K、V,也没讲任何矩阵公式。
因为我们要先理解 Transformer 为什么需要 Embedding、为什么需要 Attention,再去学习它们是如何实现的。
下一章我们开始学习Transformer 的核心模块之一 Attention ,我们会讲到 Q(Query)、K(Key)、V(Value),那时它们就不会再是三个生硬的字母参数,而是三个非常容易理解的角色。