0. 引言

本文含AI辅助创作内容
AI从2022年得到了重要突破,ChatGPT-3横空出世。
一开始说文科要完蛋了,我不语。AI绘画出来了,艺术生要完蛋了,我不语。现在AI大力发展编程能力,我要完蛋了...
面对越来越多的公司要求学习使用AI,又或者坚守100%手敲代码的大厂提高入职门槛,到底怎么才能用好?
要说起AI是如何实现的,不得不看向其底层的核心实现——Transformer
Transformer到底是什么?一种算法?一种架构?还是一种模型?
经常听Transformer是黑盒模型,黑的部分到底在哪里?
1. Transformer是一个非常高效的“食堂厨师”
- 先来看看老不死的 RNN(循环神经网络) 厨师是怎么做的:
他做菜的方法很 死板,必须按顺序来。
先看到订单的第一个字“我”,处理完;
然后第二个字 “爱”,他得记着刚才的 “我”,再把 “爱” 加进去;
然后第三个字 “你”,他得记着前面所有的 “我爱你”,才能做出这道菜。
这个过程是 串行 的,而且一旦句子很长,他可能早就忘了最开始的“我”是什么味道了。
- 接下来有请 Transformer厨师:
这位厨师非常聪明,而且可以一心多用。
当一盘写着 “我爱你” 的订单(句子)递进来时,他不会一个字一个字地看。
他“唰”地一下,把“我”、“爱”、“你”这三个字同时摆在案板上,一眼就看全了整句话。(并行处理)
为了理解“爱”是什么意思,他会同时看向“我”和“你”。
他发现 “我” 和 “你” 都和 “爱” 关系密切,于是他明白了,哦,这是 “我”“爱”“你”,是一种情感连接。
这个“环顾四周、建立联系”的动作,就是自注意力机制。
他知道在一句话里,谁和谁的关系更近。
他不仅看情感联系,还同时看词性、看语法。
就好像他同时有几个分身,一个负责看 “谁爱谁” (主谓宾),一个负责看 “爱得有多深” (情感程度),一个负责看标点符号。
最后他把这几个分身看到的信息汇总在一起,就对 “爱” 这个字有了非常全面的理解。
这就是多头注意力。
因为他是同时看到所有字的,所以他必须给每个字贴个标签。
“1号:我,2号:爱,3号:你”
不然他可能会以为这句话是“你爱我”。这个标签就是位置编码。
所以,Transformer就是一个可以并行处理信息,并且能在一句话里智能地找出所有词语之间关系的高效厨师。
2. 算法、架构、还是模型?
这三个概念是包含关系,只是层次不同。其中:
- 算法 是 步骤,是解决问题的具体方法。
- 架构 是 蓝图,是算法的骨架和设计。
- 模型 是 成品,是填满了参数的具体实例。
Transformer到底是什么?
首先,它是一种“架构”,这是最准确的定义,Transformer是一份设计蓝图。
它规定了信息应该怎么流动(自注意力机制),数据应该是什么形状(编码器-解码器结构),以及有哪些组件(多头注意力、残差连接、层归一化等)。
因此,基于这个架构,可以产生各种“模型”。
就像按照一张 “别墅设计图” (架构),可以盖出 北京别墅、上海别墅(不同模型)。
我们平时说的 GPT、BERT、T5 这些如雷贯耳的名字,都是基于Transformer架构训练出来的具体模型。
它们用了同一张蓝图,但因为训练数据和目标不同,所以功能也不同。
GPT擅长生成文字,BERT擅长理解文字,而T5是“全能选手”,它把一切任务都当成“文本到文本”的转换。(但为什么不是主流呢= ̄ω ̄=)
而 “自注意力机制” 是它的核心“算法”。
在Transformer这个架构里,核心的计算方法,也就是那个让模型知道 “我” 和 “爱” 关系更近的步骤,就是自注意力算法。
3. Transformer是不是黑盒模型?不可窥探的是哪个部分?
既是,也不是。 这取决于我们从哪个层面看。
- 从输入输出的逻辑看,它不是黑盒。
我们知道它每一步在做什么:
输入一句话 -> 切成词元 -> 加上位置信息 -> 计算自注意力 -> 前馈网络 -> 输出概率分布
这个流程是完全透明、可描述的。
从这个角度说,它是 “白盒”。
- 从内部决策的原因看,它是黑盒。
虽然我们知道它执行的每一个数学运算,但我们无法简单地理解它为什么得出那个结论。
这才是真正意义上的“黑盒”问题。
其中,最不可窥探的部分是:参数中存储的“知识”和“模式”。
我们可以用一个比喻来理解:
想象一个Transformer模型是一个巨大的、由几千亿个旋钮(参数,即权重)组成的超级复杂机器。
- 我们可以窥探的部分
结构:我们可以看它的设计图纸,知道这个旋钮连接到哪个齿轮,那个齿轮又连接到哪个管道
数据流:我们可以监控当输入“苹果”时,哪个管道里的水流变大了(注意力权重)。我们可以看到哪些旋钮被激活了,我们可以画出热力图,看到模型在处理这个词时,关注了句子里的哪些其他词。
- 不可窥探的部分
问题在于,这个机器里有几千亿个旋钮。
经过训练后,每个旋钮都被调整到了一个特定的角度。
我们虽然知道这个旋钮的数值是0.123,那个是-0.456,但我们无法理解这个0.123代表什么。
它代表“苹果”的颜色?还是代表“苹果”的口感?还是代表它和“吃”的关系?
它是这成千上万个旋钮的某种复杂组合,共同形成了对“苹果”这个概念的分布式表示。
这种表示是高度抽象和非线性的,已经远远超出了人类语言可以简单描述的范围。
所以,我们可以清晰地看到Transformer的骨架(架构)和血液流动(注意力权重),但我们无法理解它的大脑(几百亿个参数)里,每一个神经元(参数组合)到底在想什么。
正如我们人类自己也没搞明白自己的大脑。
这种“知识”是如何被编码和存储的,是当前深度学习研究中最大的“黑盒”之一。
相关文章:
发表回复