Transformer 模型是什么?当今大模型共同的底层架构
Transformer 是一种神经网络架构,由谷歌的 Ashish Vaswani 等八位研究者在 2017 年的论文《Attention Is All You Need》(注意力就是你所需要的一切)中提出。它最初被用于机器翻译,后来成为几乎所有大语言模型的基础,GPT 中的“T”就是 Transformer。这篇论文也成为 21 世纪被引用次数最多的论文之一。
它取代了什么
在 Transformer 出现之前,处理文字等序列数据的主流方法是循环神经网络(RNN)及其改进版本 LSTM。它们按顺序一个词一个词地处理文本,就像人一个字一个字地读书。这带来了两个问题:一是无法并行计算,必须等前一个词处理完才能处理下一个,训练很慢,难以利用 GPU 的并行计算能力;二是对于很长的文本,前面的信息在一步步的传递中容易被遗忘,很难捕捉相隔很远的词之间的关系。
核心:自注意力机制
Transformer 完全抛弃了循环结构,核心是“自注意力”机制:在处理每一个词时,让它直接“看”句子中所有其他的词,计算它和每个词之间的相关程度,再根据相关程度把其他词的信息融合进来。比如在“小猫没有跳上桌子,因为它太累了”这句话中,自注意力机制能让“它”与“小猫”建立起强烈的联系,从而理解“它”指的是小猫。
具体来说,每个词会被转换成三个向量:查询、键和值。用一个词的查询向量去和所有词的键向量计算相似度,得到注意力权重,再用这些权重对所有词的值向量加权求和。Transformer 还使用了“多头注意力”:同时进行多组注意力计算,让模型可以从不同的角度捕捉词与词之间的关系,比如有的关注语法关系,有的关注语义关系。因为自注意力本身不区分词的先后顺序,所以还需要加入位置编码,告诉模型每个词的位置。
整体结构
原始的 Transformer 由编码器和解码器两部分组成:编码器负责理解输入的句子,解码器负责逐词生成输出。每一部分都由多个相同的层堆叠而成,每层包含注意力模块和前馈网络,并使用残差连接和层归一化来帮助训练。后来的模型往往只使用其中的一部分:BERT 只用编码器,擅长理解文本;GPT 系列只用解码器,擅长生成文本,如今的大语言模型大多采用这种只有解码器的结构;T5 则保留了完整的编码器-解码器结构。
深远的影响
Transformer 可以高度并行地训练,能够充分利用大规模的算力和数据,而且模型越大、数据越多,效果越好,这为大模型时代奠定了基础。它的影响也远远超出了文字领域:视觉 Transformer(ViT)把图像切成小块当作“词”来处理;语音识别、蛋白质结构预测(AlphaFold 2)、图像和视频生成(扩散 Transformer)等领域都广泛采用了它。它的主要缺点是注意力的计算量随文本长度的平方增长,处理超长文本的成本很高,为此出现了 FlashAttention 等高效实现,以及状态空间模型等替代方案的探索。