通俗易懂的解释Transformer
“小丽在厨房做饭,她不小心切到了手指。”
作为人类,你一眼就明白:后面的“她”指的是小丽,“切到手指”和“做饭”这个场景有关。你的大脑自动把句子里的每个词联系起来,特别关注那些有关系的词。
现在,如果教一个计算机读懂这句话,老方法和Transformer的方法完全不同。
老方法(RNN,循环神经网络):像“一个字一个字地读”
-
计算机只能从左往右,一个字一个字地读。
-
读完“小丽”,记下:嗯,小丽是个人。
-
读完“在厨房做饭”,记下:她在做事。
-
读到“她”时,它要回忆:“前面出现的‘小丽’是个女名,所以‘她’应该就是小丽。” —— 如果句子很长,前面的词早就被“忘”了,容易弄错。
缺点:
-
慢(必须排队,不能同时处理所有词)
-
容易“记不住”前面的内容,尤其长句子。
新方法(Transformer):像“把整句话同时摊在桌上,眼睛随意扫”
Transformer 一次性看到整句话里所有的词:小丽、在、厨房、做饭、她、不小心、切到了、手指。
然后它做了一个神奇的操作:给每一对词计算“关联分数”。
-
“她”和“小丽” → 分数极高 ✅
-
“切到了”和“手指” → 分数极高 ✅
-
“切到了”和“厨房” → 有点关系,但分数低一些
这样一来,模型不需要“回忆”,因为它同时看着所有词。每个词都知道其他词和它的关系有多重要。这就是 自注意力(自己注意自己句子里的所有词)。
一个更直观的比喻:读一本书
-
老方法:蒙上你的眼睛,只给你一个小窗口,每次只能看到1个字。你必须从左到右移动窗口,还要靠记忆把前后意思串起来。很累,容易忘。
-
Transformer:给你整页书,你的眼睛可以立刻扫视任何位置。你一眼就能看出“他”指的是前文哪个“小明”。还能同时看出多个关系:谁在做什么、什么和什么搭配。
那“多头注意力”是什么?
还是上面那句话:有多个“侦探”同时在看这句话。
-
侦探A专门找指代关系(“她” → “小丽”)
-
侦探B专门找动作-对象(“切到了” → “手指”)
-
侦探C专门找地点(“在厨房” → “做饭”)
最后把所有侦探找到的信息合在一起,模型的理解就非常全面、立体。这就是“多头”(多个注意力头)。
“位置编码”是什么?
Transformer 一下子看所有词,但它怎么知道“小丽在厨房”和“厨房在小丽”不是同一个意思?
它会给每个词加一个位置标记:第1个词、第2个词、第3个词……像座次表。模型既能看全貌,又知道顺序。
为什么 Transformer 这么厉害?
-
快:因为它可以同时处理所有词,而不是像排队一样一个字一个字处理。适合用GPU/TPU并行计算。
-
看得远:即使句子很长,它也能直接连接第一个词和最后一个词,不会遗忘。
-
效果好:翻译、问答、写文章、对话机器人的质量都因此飞跃。
你现在正在体验它
所有热门的AI(ChatGPT、文心一言、通义千问、等等)都是基于Transformer(或其变体)训练的。你能和AI流畅对话,它能理解你一大段话中的“它”指代什么,背后都是Transformer的功劳。

浙公网安备 33010602011771号