返回博客列表

Transformer 架构:大模型是怎么理解你说的话的

HUTAO667
AI 深度学习 Transformer

说白了,Transformer 就是让每个词都能"看到"其他词,然后决定哪些词更重要。这篇文章用最直白的方式解释 Transformer 的工作原理。

我最近在研究大模型的时候,一直在想一个问题:当我给 ChatGPT 发一段很长的话,它是怎么理解这段话的?后来发现,这背后的核心技术就是 Transformer。

说白了,Transformer 就是让每个词都能”看到”其他词,然后决定哪些词更重要。听起来简单,但实现起来挺巧妙的。

前提:词向量

在讲 Transformer 之前,得先说说词向量。

当你给大模型发送一段话时,这段话会被拆分成很多个词,每个词都会被转换成一个高维向量。这个向量里存储了三种信息:

  • 值(这个词本身的含义)
  • 位置(这个词在句子里的位置)
  • 语义权重(这个词和其他词的关系)

这就是词向量。有了词向量,Transformer 才能开始工作。

Transformer 的核心:QKV 机制

Transformer 提供了三个矩阵:Wq、Wk、Wv

每个词向量分别和这三个矩阵相乘,就得到了三个新的向量:

  • Q(Query):查询向量,代表”我想找什么”
  • K(Key):键向量,代表”我是什么”
  • V(Value):值向量,代表”我的内容是什么”

有了 Q、K、V,接下来就是四个步骤。

Step 1:打分

每个词用自己的 Q 去乘一遍其他词的 K(包括自己),也就是做点积。

这样每个词和其他词都会得到一个分数,代表了这个词和其他词的相关性。分数越高,相关性越高。

比如:[10, 5, 2]

Step 2:归一化

问题来了:这些分数太大了,会导致梯度不稳定。

为什么?因为后面要用 softmax 公式进行归一化,而 softmax 里用的是 e^x。当 x 的值越大或越小,就会导致某些词的权重变成 0。

比如:

  • e^10 = 22026
  • e^2 = 7.4

这样就会导致分数大的词权重无限大,分数小的词权重无限小。

所以要给分数除以一个缩放因子:√dk(dk 是 K 向量的维度)。

这样概率大的词还是大,但其他词的概率也得到了平等对待。

缩放之后,再用 softmax 进行概率处理。

Step 3:加权融合

这一步就是将每个词计算出的权重乘以它自己的 V 向量,然后把结果相加。

最终得到的就是以这个词自己的视角所携带的上下文信息的词向量。

Step 4:回答

大模型会做这几件事情:

  1. 多头注意力:大模型其实会同时进行好几组 QKV,进行比较分析。这样可以从不同角度理解同一个词。

  2. FFN(前馈神经网络):将 Step 3 计算出的结果放进 FFN 的输入层,进行前向传播和反向传播的不断学习。经过反复训练调整 w 和 b 的参数,最终用户看到的回答就是经过训练后的回答。

我的理解

Transformer 的核心就是让每个词都能”看到”其他词,然后通过 QKV 机制计算出哪些词更重要。

这个机制的巧妙之处在于:

  • 每个词都有自己的视角(Q)
  • 每个词都能被其他词看到(K)
  • 每个词都有自己的内容(V)

通过这三个向量的计算,每个词就能知道自己应该关注哪些词,从而理解整个句子的意思。

这就是 Transformer 的核心原理。


参考资料