输入“/”快速插入内容

LLM(廿四):Transformer 的结构改进与替代方案

2024年8月21日修改
作者:紫气东来
自从 Transformer 结构被提出以来,以 BERT 为代表的 Encoder 模型,以 GPT 为代表的 Decoder 模型,以 ViT 为代表的 CV 模型,都烜赫一时。时至今日,几乎所有的 LLM 也都是 Transformer 结构,尽管不时也会有新的结构被提出来,但 Transformer 的江湖地位仍然无可撼动。那么本篇将从 Transformer 结构出发,将主要围绕以下问题展开思考和讨论:
Transformer 结构为什么有效,其结构中的要点和核心在哪?
Transformer 与之前的机器学习算法和模型有何联系,如何从其他角度认识 Transformer ?
Transformer 结构的训练和推理效率如何,如何平衡效果和效率?
是否存在 Transformer 之外的新结构可以以更低的成本,达到同等或更高的效果?
希望通过以上问题的思考和讨论,能够帮助我们更好地使用Transformer、理解Transformer、优化Transformer和改进Transformer。
一、再谈 Transformer ,理解不可能三角
1.1 Transformer 结构再认识
本篇的主要内容是围绕 Transformer 的结构展开的,因此深入了解 Transformer 结构及其工作原理是非常必要的。实际上,在笔者之前的文章中已经分析过 Transformer 的结构
及一些针对性的可解释研究方法
为了简明起见,本篇将尽可能不与之前讨论过的内容重复,而将试图从问题的角度出发而进行相关思考与讨论。
简单而言,Transformer 结构及工作原理可以用下图表示,其中图左为 Encoder 结构,图右为 Decoder 结构。
问题一: Encoder 和 Decoder 结构分别适用于什么场景,为什么生成式模型普遍采用 Decoder-only 结构
当前,Transformer 结构中的 Encoder 和 Decoder 结构构成了 3 种主要的模型范式,如下表所示:
结构
特点
常见任务
典型代表
Encoder-only
auto-coding
序列分类,NER,抽取问答,MLM
BERT, RoBERTa, DeBERTa
Decoder-only
auto-regressive
文本生成,CLM
GPT, Llama, PaLM
Encoder-Decoder
sequence-to-sequence
翻译,总结,生成问答
BART, T5, Marian
如果从直观上来解释,Encoder-only 的注意力是双向的,要确定一个 mask 值,需要同时考虑之前和之后的文本信息,因此在问答和填空类的场景比较有效。而人类的语言生成过程具有天然的马尔科夫性,在生成过程中没有下文信息可以参考,因此刚好契合 Decoder-only 结构的 token by token 的生成方式。
除了上述解释外,还有从 低秩角度 来解释的,即在双向注意力中由于 softmax 操作会导致低秩问题,而在单向注意力中,attention 矩阵是满秩的下三角矩阵,因此表达能力更强。另外还有从 scaling law 等角度进行解释的,在次不一一展开。
问题二:attention 机制有什么深刻内涵?
让我们重新回顾一下,attention 的计算过程
这个过程可以简单概括为 3 步:
1.
衡量
之间的相似性,这种相似性对于向量来说就是内积,如下视频所示
2.
查找权重 a。这是通过 SoftMax 完成的。相似性像一个完全连接的层一样连接到权重。
3.
值的加权组合。将 a 的值和 V 对应的值相乘累加,最终输出是所需的结果注意力值。
通过这种方式,建立起了序列间的全局的联系。这里还有一些细节需要补充说明:
来源于相同的 embedding 输入 𝑋 ,经过不同的权重矩阵𝑊𝑄,𝑊𝐾,𝑊𝑉 投影到不同的空间中
𝑑𝑘 作为调节因子,使得内积不至于太大,从而使梯度稳定很多
SoftMax 之后的注意力分数,其分值大小代表了相关性强弱,这种差异在计算梯度时,可以相对均匀地流入多个token位置
由于在计算注意力矩阵时每个 token 都与其他所有 token 交互,因此输入没有时间顺序,这就是输入需要加入 position embedding 的根本原因
计算注意力矩阵的计算复杂度为
,计算的过程需要大量计算资源