【技术总结】一文读懂Transformer
- 0. 前言
- 1. 从词袋模型到 Transformer
- 2. Transformer 架构
- 2.1 关键思想
- 2.2 计算注意力
- 2.3 编码器-解码器架构
- 2.4 Transformer 架构
- 2.5 模型训练
- 3. Transformer 类别
- 3.1 解码器(自回归)模型
- 3.2 编码器(自编码)模型
- 3.3 编码器-解码器模型
- 4. 经典注意力机制
- 4.1 稀疏注意力
- 4.2 LSH 注意力
- 4.3 局部注意力
- 5. 预训练任务
- 6. 多模态模型
- 7. Transformer 模型发展展望
- 7.1 模型记忆与查询工具之间的权衡
- 7.2 模型的安全性与稳定性
- 7.3 将 Transformer 模型视为通用智能体的核心组成
- 小结
0. 前言
自 2017
年论文《Attention Is All You Need
》发布后,Transformer
迅速引起了自然语言处理 (Natural Language Processing
, NLP
) 的广泛关注,基于 Transformer
的模型使用注意力机制来识别输入序列(如句子)中词元 (token
) 之间的复杂关系。Transformer
摒弃了传统的循环神经网络 (Recurrent Neural Network, RNN
) 和长短时记忆网络 (Long Short Term Memory
, LSTM
),转而依靠自注意力机制 (Self-Attention
) 来处理输入序列,从而显著提高了效率和效果。基于 Transformer
的架构在 NLP
及其它领域中应用广泛,能够解决各种任务,例如:机器翻译、文本摘要、文本生成、实体识别、问答系统、文本分类、语言建模和阅读理解等。
Transformer
已经成为如 BERT
、T5
和 GPT
等前沿模型的基础构建块,涵盖了从计算机视觉到语音识别、翻译或蛋白质和编码序列等领域。注意力机制还被应用于强化学习,例如,在 DeepMind
的 AlphaStar
中,将玩家和对手的 StarCraft
游戏单位的状态通过自注意力机制处理。因此,斯坦福大学引入了基础模型 (foundation model
),以定义基于大型预训练 Transformer
的大语言模型 (Large Language Model
, LLM
)。本文将回顾 Transformer
技术的发展历程、核心思想和研究进展等,探讨其在各个领域的应用创新,并展望未来可能的发展方向。
1. 从词袋模型到 Transformer
自然语言处理 (Natural Language Processing
, NLP
) 在过去数年间发生了突破性进展,近年来,NLP
的发展主要以 Transformer
架构为基础。Transformer
架构是从各种基于神经网络的 NLP
方法演变成了一种基于注意力的编码器-解码器架构,并且仍在不断发展。
多年来,传统的 NLP
方法如 n-gram
语言模型、基于 TF-IDF
(Term Frequency-Inverse Document Frequency
) 的模型、BM25
信息检索模型和独热编码的文档-词矩阵用于解决一系列 NLP
任务,包括序列分类、语言生成和机器翻译。然而,这些传统方法存在多种局限性,难以处理稀疏数据、稀有单词和长期依赖关系等。为了解决这些问题,提出了基于深度学习的方法,如循环神经网络 (Recurrent Neural Network
, RNN
)、卷积神经网络 (Convolutional Neural Network
, CNN
) 和前馈神经网络 (Feed-forward Neural Network
, FFNN
),以及若干变体。
随着语料库规模的增加,TF-IDF
模型的维度会迅速增加,导致维度灾难问题。2013
年,word2vec
(由两层 FFNN
组成的词编码模型)通过生成紧凑且密集的词向量(即词嵌入)解决了维度灾难问题。word2vec
模型通过将无监督文本数据转化为有监督数据(自监督学习),即通过使用邻近的上下文词来预测目标词,能够快速且高效的创建静态词嵌入。而 GloVe
模型则认为,基于计数的模型在某些情况下优于神经网络模型,利用语料库的全局和局部统计信息,通过基于词与词之间的共现统计信息来学习词嵌入。
词嵌入在一些句法和语义任务中非常有效,如下图所示,图中展示了嵌入向量之间的距离如何用于基于向量的推理。例如,可以从 “Man
” 和 “Woman
” 之间的距离来推断出泛化的性别关系,即语义关系 (semantic relation
)。然后,可以通过将演员 “Actor
” 一词的向量与前述的距离量相加,得到女演员 “Actress
” 的向量。同样,还可以学习到句法关系 (syntactic relation
),比如单词的复数形式,例如给定 “Actor
”、“Actors
” 和 “Actress
” 的向量,可以估算出 “Actresses
” 的向量。
词嵌入逐渐成为深度学习模型的基本组成部分,使用 RNN
和 CNN
架构作为序列到序列 (seq2seq
) 问题中的编码器和解码器,其中每个词元 (token
) 通过嵌入表示。早期模型面临的主要挑战是多义词(具有多个含义的词),由于每个词都具有一个固定的表示,因此词的多义性被忽略,这对句子语义而言是一个严重的问题。
神经网络模型,如通用语言模型微调 (Universal Language Model Fine-tuning
, ULMFiT
) 和基于语言模型的词嵌入 (Embeddings from Language Model
, ELMo
),能够编码句子级别的信息,并缓解了多义词问题,这不同于静态的词嵌入,而属于一个新概念——上下文词嵌入 (contextual word embedding
)。
ULMFiT
和 ELMo
方法基于长短时记忆网络 (Long Short Term Memory
, LSTM
)网络,是 RNN
的一种变体。它们还利用了预训练和微调的概念,这种方法通过使用在一般任务和通用文本数据集上预训练的模型,并在目标任务上进行监督微调,实现了迁移学习 (Transfer Learning
, TL
),这是迁移学习首次应用于 NLP
领域。
与此同时,注意力机制在 NLP
领域产生了深远影响,并在序列到序列问题中取得了巨大成功。早期的方法会将从整个输入序列获得的最后状态(称为上下文向量或思维向量)传递给输出序列,而不进行关联,得益于注意力机制,输入的某些部分可以与输出的某些部分关联起来。
2017
年,提出了基于 Transformer
的编码器-解码器模型,因其创新性地使用注意力机制而取得成功。该模型基于 FFNN
,摒弃了 RNN
的循环结构,仅使用注意力机制,克服了其他方法所面临的许多困难,并成为一种新的范式。
2. Transformer 架构
尽管经典的 Transformer
架构与循环神经网络 (Recurrent Neural Network
, RNN
) 的架构不同,但它起源于 RNN
的一些关键思想。目前,Transformer
几乎代表了与文本和任何可以表示为序列的数据相关的深度学习架构的研究方向。Transformer
最初在 2017
年的论文《Attention Is All You Need
》中提出,原始的 Transformer
架构是编码器-解码器架构的一种变体,其中递归层被(自)注意力层所替代。
在 Transformer
架构之前,注意力机制已与 RNN
模型结合使用。注意力机制在 2014
年由 Bahdanau
等人首次提出,并在 2015
年由 Luong
等人应用于机器翻译任务,此后还出现了与其他类型模型结合的多种注意力机制应用。
2.1 关键思想
Transformer
模型的创新基于以下四个关键思想:
- 位置编码 (
Positional encoding
) - 注意力机制 (
Attention
) - 自注意力机制 (
Self-attention
) - 多头(自)注意力机制 (
Multi-head (self-)attention
)
2.1.1 位置编码
RNN
通过顺序处理单词来保持单词的顺序。这种方法的优点是简单,但其缺点之一是使得并行化变得困难,如果希望有效地利用高度并行的架构,就需要一种替代的顺序表示方式。
Transformer
使用一种简单的顺序表示方法,称为位置编码,这种方法将每个单词与表示其在文本中位置的数字相关联起来:
[("Transformers", 1), ("took", 2), ("NLP", 3), ("by", 4), ("storm", 5)]
通过添加位置信息,Transformer
可以学习每个词元 (token
) 位置的重要性。在原始 Transformer
中引入(绝对)位置编码后,还出现了其他变体,如相对位置编码以及旋转位置编码等。
2.1.2 注意力机制
Transformer
的另一个关键组成部分是注意力机制,注意力机制最早在 2014
年由 Bahdanau
等人引入。为了深入理解,我们考虑以下例子:
The agreement on the European Economic Area was signed in August 1992.
翻译为法语:
L’accord sur la zone économique européenne a été signé en août 1992.
上世纪 80
年代初,机器翻译基于逐字翻译,这种方法性能非常有限,因为文本结构在源语言和目标语言之间可能会发生许多变化。例如,在法语翻译中,一些单词的顺序可能会不同:在英语中,形容词通常位于名词之前,比如 European Economic Area
,而在法语中,形容词可以位于名词之后,la zone économique européenne
。此外,与英语不同,法语有性别词汇。例如,形容词 économique
和 européenne
必须使用女性形式,因为它们属于女性名词 la zone
。
注意力机制的关键思想是构建文本模型时,在将单词翻译成输出语言时“关注
”源句子中的每一个单词。在原始 Transformer
论文中,作者指出这种方法的时间复杂度是平方级的,但在翻译准确性方面获得的提升相当可观。为了降低时间复杂度,Choromanski
等人提出了 Fast Attention Via positive Orthogonal Random
(FAVOR+
) 特征。回顾原始 Transformer
论文中的例子:
使用注意力机制,神经网络可以学习每个源语言英文单词与每个目标语言法文单词之间的热力图,这些关系不仅仅存在于对角线上,还可能遍布整个矩阵。例如,当模型输出法语单词 européenne
时,它会特别关注输入单词 European
和 Economic
(在图中,对应于对角线和相邻单元格)。使用注意力机制能够在没有监督的情况下学习对齐并关注输入元素,将输入的英语句子翻译成法语。当然,训练集越大,基于注意力的模型可以学习到的相关性越多。
简而言之,注意力机制可以访问所有先前的单词,并根据学习到的相关性度量加以权衡。这样,注意力可以提供关于目标句子中远距离词元的相关信息。
2.1.3 自注意力
原始 Transformer
的第三个关键思想是在源语言同一句话中使用注意力,自注意力。通过这种机制,神经网络可以学习每个输入序列(如句子)中所有元素(如单词)之间的关系,而不考虑它们的位置,然后再专注于具体任务(如机器翻译)。观察以下示例:
“Server, can I have the check?”
“Looks like I just crashed the server.”
单词 server
在以上两个句子中有着不同的含义,而自注意力能够在考虑周围单词的上下文时理解每个单词。需要注意的是,注意力机制可以访问所有先前的单词,并根据学到的相关性度量对它们进行加权,自注意力提供了关于源句子中远距离词元的相关信息。
2.1.4 多头(自)注意力
原始 Transformer
执行了多次(自)注意力操作,一组权重矩阵就是一个注意力头。当有多组这样的权重矩阵集合时,就形成了多个注意力头。多头(自)注意力层通常具有几个并行的(自)注意力层。值得注意的是,引入多个头使我们能够定义哪些单词彼此“相关
”。此外,这些相关性可以通过硬件加速器并行计算,从而加快计算速度。
2.2 计算注意力
在原始 Transformer
中,自注意力函数是通过缩放点积单元计算的,称为缩放点积注意力 (Scaled Dot-Product Attention
),两个向量之间的点积可以很好地反映出这两个向量的“接近
”程度。
每个输入的词元序列(例如句子)嵌入传入 Transformer
(编码器或解码器)后,生成注意力权重,这些权重在每个序列元素(如单词)之间同时计算。输出结果是为每个词元生成的嵌入,包含词元本身以及所有相关词元,按照其相对注意力权重进行加权。
注意力层将输入向量转换为查询 (Query
)、键 (Key
) 和值 (Value
) 矩阵,然后将它们拆分为多个注意力头(因此称为多头注意力):
- 查询可以理解为正在计算注意力函数的词
- 键和值是所关注的词
点积反映了词之间的相似度。如果两个词向量的对齐结果更高,则注意力分数将更高。Tansformer
以如下方式学习权重,如果句子中的两个词彼此相关,则它们的词向量就会对齐。
每个注意力层学习三个权重矩阵:
- 查询权重 W Q W_Q WQ
- 键权重 W K W_K WK
- 值权重 W V W_V WV
对于每个单词 i i i,计算输入词嵌入 x i x_i xi ,得到:
- 查询向量 q i = x i W Q q_i = x_i W_Q qi=xiWQ
- 键向量 k i = x i W K k_i = x_i W_K ki=xiWK
- 值向量 v i = x i W V v_i = x_i W_V vi=xiWV
给定查询向量和对应的键向量,注意力权重计算如下:
a i , j = q i ⋅ k j a_{i,j}=q_i\cdot k_j ai,j=qi⋅kj
其中: a i , j a_{i,j} ai,j 是从词 i i i 到词 j j j 的注意力;点积 ⋅ \cdot ⋅ (dot-product
) 是查询与键的点积,反映向量的“接近”程度。
词 i i i 的注意力是所有词的值向量的加权和,权重由 a i , j a_{i,j} ai,j 决定,即词 i i i 到词 j j j$ 的注意力。
为了在训练过程中稳定梯度,注意力权重会被键向量维度的平方根 d k \sqrt {d_k} dk 进行除法处理。然后,将结果通过 softmax
函数进行归一化。需要注意的是,词 i i i 到词 j j j 的注意力函数与词 j j j 到词 i i i 的注意力函数值并不相同。
现代深度学习加速器在处理矩阵计算时表现良好,因此可以使用大矩阵来计算所有词的注意力。将 q i q_i qi、 k i k_i ki、 v i v_i vi (其中 i i i 是第 i i i 行)定义为矩阵 Q Q Q、 K K K、 V V V,可以将注意力函数总结为一个注意力矩阵:
A t t e n t i o n ( Q , K , V ) = s o f t m a x ( Q K T d k ) V Attention(Q,K,V)=softmax(\frac {QK^T}{\sqrt {d_k}})V Attention(Q,K,V)=softmax(dkQKT)V
2.3 编码器-解码器架构
类似于 seq2seq 模型,原始 Transformer
模型也使用了编码器-解码器架构:
- 编码器接收输入(源)序列的嵌入,并将其转换为一个新的固定长度的嵌入向量
- 解码器接收来自编码器的嵌入向量,并将其转换为输出嵌入序列
- 编码器和解码器都由多个堆叠的网络层组成,每个编码器和解码器层都使用注意力机制
自 Transformer
架构引入以来,变体网络可以只使用编码器或解码器组件,或两者同时使用。
同时,基于 Transformer
的网络会重用其他现有的机器学习方法,如残差和归一化。
2.4 Transformer 架构
我们已经了解了 Transformer
的一些关键概念,接下来我们深入探讨 Transformer
架构。需要注意的是,基于 Transformer
的模型通常通过利用各种注意力机制来构建,而不是使用循环神经网络 (Recurrent Neural Network
, RNN
),这是因为注意力机制本身能够替代并超越带有注意力的 RNN
编码器-解码器模型。下图对比了具有注意力机制的 seq2seq
网络与 Transformer
网络。
Transformer
与具有注意力机制的 seq2seq
模型具有以下相似性:
- 都处理源(输入)和目标(输出)序列
- 都使用编码器-解码器架构
- 编码器最后一个模块的输出用作上下文向量,以计算解码器中的注意力函数
- 目标(输出)序列的嵌入被输入到全连接模块中,全连接块将输出嵌入转换为最终的整数序列
两种架构的不同之处在于:
seq2seq
网络在编码器中使用循环层和注意力层,而在解码器中使用循环层;Transformer
用Transformer
块(N
个相同的层堆叠)替代了这些层- 在编码器中,
Transformer
块由一系列子层组成:一个多头(自)注意力层和一个逐位置前馈层 (position-wise feedforward layer
),这两个层都使用残差连接和归一化层 - 在解码器中,
Transformer
块包含一种带有掩码的多头(自)注意力层(掩码多头自注意力层),以及一个类似于编码器中的前馈层(同样具有残差连接和归一化层),掩码可以防止位置对未来的关注,此外,解码器中的第二个多头(自)注意力层计算对编码器Transformer
块输出的注意力
- 在编码器中,
- 在带有注意力机制的
seq2seq
网络中,编码器状态会传递到第一个循环层时间步中;在Transformer
中,编码器的状态被传递给解码器中的每一个Transformer
块,这使得Transformer
网络能够在时间步之间并行计算,不像seq2seq
网络那样存在时间依赖性 - 为了并行计算,
Transformer
添加了一个编码层,以提供位置信息区分Transformer
网络序列中每个元素的位置(位置编码层),这样,编码器将输入序列的位置信息和嵌入作为输入,从而能够考虑位置信息
接下来,逐步介绍数据在 Transformer
网络中的流动过程:
-
数据预处理,将输入和输出分词化并转换为嵌入
-
接下来,将位置编码应用于输入和输出嵌入,以获得关于序列中词元相对位置的信息。在编码器部分:
- 编码器包含一个嵌入层和一个位置编码层,随后是
6
个相同的Transformer
块,每个编码器中的Transformer
块由一个多头(自)注意力层和一个逐位置前馈层组成
自注意力是关注同一序列中某些部分的过程,处理一个句子时,我们可能希望知道哪些单词与当前单词最为相关
- 多头注意力层由多个(本节中为
8
个)并行的自注意力层组成。自注意力通过从输入嵌入构建三个向量 Q Q Q (查询)、 K K K (键)和 V V V (值)来实现,这些向量是通过将输入嵌入与三个可训练的权重矩阵 W Q W_Q WQ、 W K W_K WK 和 W V W_V WV 相乘创建的。输出向量 Z 是通过在每个自注意力层中使用以下公式结合 K K K、 Q Q Q 和 V V V 创建的,其中 d K d_K dK 表示 K K K、 Q Q Q 和 V V V 向量的维度(本节中为64
):
z = s o f t m a x ( Q K T d k ) V z=softmax(\frac {QK^T}{\sqrt {d_k}})V z=softmax(dkQKT)V - 多头注意力层会为 Z 创建多个值(基于每个自注意力层中的多个可训练权重矩阵 W Q W_Q WQ、 W K W_K WK 和 W V W_V WV),然后将这些值连接起来,作为逐位置前馈层的输入
- 逐位置前馈层的输入由序列中不同元素(如句子中的单词)的嵌入组成,这些嵌入通过多头注意力层中的自注意力进行处理。每个词元在内部由一个固定长度的嵌入向量表示(在本节中为
512
),每个向量并行通过前馈层处理。前馈网络的输出作为下一个Transformer
块中的多头注意力层的输入。在编码器的最后一个Transformer
块中,输出是传递给解码器的上下文向量 - 多头注意力层和逐位置前馈层不仅将前一层的信号传递给下一层,还将其输入的残差信号传递给输出。输出和残差输入经过一个层归一化
- 由于编码器中整个序列是并行处理的,各个元素的位置相关信息会丢失。为弥补这一点,输入嵌入通过位置编码处理,位置编码实现为无学习参数的正弦函数,位置编码会加到输入嵌入上
- 编码器包含一个嵌入层和一个位置编码层,随后是
-
接下来,了解数据在解码器中的流动过程:
- 编码器的输出生成一对注意力向量 K K K 和 V V V,这些向量并行地传送到解码器中的所有
Transformer
块。解码器中的Transformer
块类似于编码器中的Transformer
块,不同之处在于它具有一个额外的多头注意力层,用于处理来自编码器的注意力向量。这个额外的多头注意力层的工作方式与编码器中的层类似,但它结合了来自下层的 Q Q Q 向量和来自编码器状态的 K K K 和 V V V 向量 - 与
seq2seq
网络类似,输出序列一次生成一个词元,使用来自前一时间步的输入。与编码器的输入类似,解码器的输入也会用位置编码进行处理。不同于编码器,解码器中的自注意力过程只能关注先前时间点的词元,这是通过屏蔽未来时间步的词元实现的 - 解码器中最后一个
Transformer
块的输出是一个低维嵌入序列(本节中为512
)。这个嵌入序列会传递到全连接层,转换成目标词汇表中的概率分布序列,据此可以通过贪心算法或更复杂的技术(如束搜索)生成最可能的单词
- 编码器的输出生成一对注意力向量 K K K 和 V V V,这些向量并行地传送到解码器中的所有
Tranformer
整体架构如下图所示:
2.5 模型训练
Transformer
通常通过半监督学习进行训练,分为以下两个步骤:
- 首先是无监督的预训练,通常在一个非常大的语料库上进行
- 然后是在一个较小的标注数据集上进行有监督的微调
无论是预训练还是微调,都可能需要大量的资源,特别是,考虑到大语言模型 (large language model
, LLM
) 参数数量的不断增加,这种情况更为明显。
第二个步骤中的标注数据集通常规模较小,这也称为少样本学习 (few-shot learning
),指的是在样本数量有限的情况下进行预测。
3. Transformer 类别
3.1 解码器(自回归)模型
一个典型的例子是 GPT
(Generative Pre-Trained
) 模型,自回归模型仅使用原始 Transformer
模型的解码器,其注意力头只能看到文本中之前的内容,而无法看到之后的内容,并在完整句子上使用掩码机制。自回归模型通过观察所有先前的词元来推测下一个词元。通常,自回归模型用于文本生成任务。其他经典的自回归模型包括 GPT-2
、Transformer-XL
、Reformer
和 XLNet
。
3.2 编码器(自编码)模型
一个典型的例子是 BERT
(Bidirectional Encoder Representations from Transformers
),自编码器对应于原始 Transformer
模型中的编码器,能够访问完整的输入词元。自编码模型通过掩码/更改输入词元,然后尝试重建原始句子来进行预训练。通常,这些模型建立了完整句子的双向表示。需要注意的是,自编码器和自回归模型之间唯一的区别在于预训练阶段,因此相同的架构可以以两种方式使用。自编码器可以用于自然语言生成,以及分类和其它 NLP
任务。除了 BERT
,其他经典的自编码模型包括 ALBERT
、RoBERTa
和 ELECTRA
。
3.3 编码器-解码器模型
典型的例子包括 T5
(Text-to-Text Transfer Transformer
)、多任务统一模型 (Multitask Unified Model
, MUM
) 和原始 Transformer
。编码器-解码器模型使用原始 Transformer
架构中的编码器和解码器,可以微调用于多种任务,如翻译、摘要和问答等。
4. 经典注意力机制
注意力机制有多种类型,例如自注意力、局部/硬注意力和全局/软注意力等。接下来,我们重点介绍一些经典注意力机制。
4.1 稀疏注意力
原始 Transformer
论文中的(缩放)点积注意力通常是在一个完整的平方矩阵 ( O ( L 2 ) O(L^2) O(L2)) 上计算,其中 L L L 是最大考虑的序列长度。BigBird Transformer
引入了稀疏注意力的思想,通过利用稀疏矩阵来实现。
4.2 LSH 注意力
Reformer
引入了通过哈希减少注意力机制复杂度的思想,称之为局部敏感哈希 (locality-sensitive hashing
, LSH
) 注意力。该方法基于在计算 $softmax(QKT) 时仅使用最大元素的思想,换句话说,对于每个查询 q ∈ Q q\in Q q∈Q,仅计算与 q q q 接近的键 k ∈ K k\in K k∈K。为了计算接近度,根据局部敏感哈希技术计算多个哈希函数。
4.3 局部注意力
一些 Transformer
采用了仅使用局部上下文窗口的思想(例如,右侧几个词元和左侧几个词元)。核心思想在于,使用较少的参数可以考虑更长的序列,但注意力的范围有限。因此,局部注意力的受欢迎程度较低。
5. 预训练任务
预训练任务可以分成以下类别:
- 语言建模 (
Language Modeling
,LM
):对于单向语言模型,任务是预测下一个词元。对于双向语言模型,任务是预测前后词元 - 掩码语言建模 (
Masked Language Modeling
,MLM
):关键思想是将输入句子中的某些词元进行掩码处理,模型在给定非掩码词元的情况下训练以预测被掩码的词元 - 排列语言建模 (
Permuted Language Modeling
,PLM
):与语言建模类似,但对输入序列进行随机排列。然后选择一部分词元作为目标,模型训练预测这些目标 - 去噪自编码器 (
Denoising Autoencoder
,DAE
):输入数据集中部分数据被破坏。例如,随机抽取输入词元并用特殊的[MASK]
元素替换它们,或者随机删除输入词元,或者随机打乱句子的顺序。模型的任务是恢复未被破坏的原始输入 - 对比学习 (
Contrastive Learning
,CTL
):通过假设某些观察到的文本对比随机采样的文本对更具语义相似性,为文本对学习评分函数,常用方法包括:- 深度信息最大化 (
Deep InfoMax
,DIM
):最大化输入图像表示与同一图像的各种局部区域之间的互信息 - 替换词元检测 (
Replaced Token Detection
,RTD
):预测给定上下文的输入词元是否被替换 - 下一句子预测 (
Next Sentence Prediction
,NSP
):模型训练用于区分两个输入句子在训练语料库中是否是连续的 - 句子顺序预测 (
Sentence Order Prediction
,SOP
):与NSP
的思想相同,但增加了附加信号:两个连续的句子作为正样本,而两个顺序颠倒的句子作为负样本
- 深度信息最大化 (
6. 多模态模型
多模态学习在人工智能中是指数据涉及多个模态,而不是仅仅依赖单一模态(如仅图像、仅文本等)。例如,输入或输出包含图像和文本两种信息,或者跨模态问题,其输入和输出的模态不同。
在深入探讨使用 Transformer
的多模态学习之前,首先有必要介绍它们如何用于图像。Transformer
接收的输入是一个序列,但与文本不同,图像并不是一维序列,一种方法是将图像转换为多个图块 (patch
)。每个图块会被线性映射为一个向量,并应用位置编码。下图展示了视觉 Transformer
(Vision Transformer
, ViT
) 的架构及其工作原理:
可以应用分类头来处理图像分类等任务,同时,这种方法也可以用于其它输入类型的应用。
单独使用 Transformer
处理图像或文本可以创建一个能够理解文本或图像的模型。但如果我们希望拥有一个能够同时理解文本和图像,并且在它们之间建立联系的模型,那么就需要在训练过程中加入约束。对比语言-图像预训练 (Contrastive Language-Image Pre-training
, CLIP
) 是一个能够理解图像和文本的模型,可以用于语义搜索,其中输入可以是文本/图像,输出也可以是文本/图像。下图展示了 CLIP
模型如何通过使用双编码器进行训练:
从 CLIP
架构中可以明显看出,它对于文本和图像模态的零样本预测非常有用。DALL-E
和基于扩散的模型(如 Stable Diffusion
)也属于多模态模型。Stable Diffusion
的工作流程如下图所示:
多模态学习不仅能够使用不同的模态来处理始终与图像-文本相关的任务,还可以与其他模态结合使用,如语音、数值数据和图数据等。
7. Transformer 模型发展展望
7.1 模型记忆与查询工具之间的权衡
当前大模型可以通过访问互联网或其它外部工具,使得模型能够在实时获取和应用最新数据、执行复杂的推理任务以及与多种工具和服务交互时更为高效,但也因此面临着将信息存储在模型权重中和利用外部工具间的抉择。某些情况下显然需要外部工具,例如计算 202 4 2025 2024^{2025} 20242025 ,但也有许多常识性的信息无需借助外部工具,如江苏的省会是南京,唐朝的开国皇帝是李渊。Transformer
模型是否可以足够灵活,以决定何时使用外部工具,以及是否可以将使用外部工具的权衡集成到损失函数中,让 Transformer
模型学会如何做出决策,将是进一步研究的重点问题。
7.2 模型的安全性与稳定性
随着 Transformer
模型在实际生产环境中的广泛应用,如何保障其安全性、稳定性,以及抵抗对抗性攻击 (adversarial attacks
) 将成为一个重要方向,需要开发出更加鲁棒和稳定的 Transformer
架构,以防止潜在的安全威胁。
7.3 将 Transformer 模型视为通用智能体的核心组成
通用智能体能够以自然语言进行推理并与外部工具互动,例如,Wang
等人使用 Transformer
模型作为一个集中规划器,用来生成解决 Minecraft
游戏任务的目标序列。通过反馈循环和对子目标执行的中间检查,Transformer
模型能够解释目标执行者的错误并优化其原始计划。但基于 Transformer
模型的控制器并非通用智能体的唯一可行方法,在对 Diplomacy
游戏的研究中,考虑到该游戏复杂的规划和推理动态,采用了通过自我对弈和强化学习训练的临时规划模型,其中 Transformer
模型用来与其他玩家互动,因此作为一个外部通信模块,基于当前游戏状态进行交流。Transformer
模型将在下一代强大交互式系统中发挥核心作用,作为模块化系统的集中式控制器,或作为需要与协调器互动的模块。
小结
Transformer
不仅推动了 NLP
的快速发展,也成为了许多先进模型的基础。以 GPT
、BERT
、T5
等为代表的大语言模型,均基于 Transformer
架构。此外,Transformer
还被成功应用于计算机视觉领域、推荐系统等领域,为深度学习带来了前所未有的效率与表现。随着研究的深入,Transformer
架构正在不断优化和拓展,不仅提升了模型的性能,也让人工智能技术更贴近实际应用。