大模型的基石——Transformer框架
2023-04-03杨磊
杨磊
编者按:随着ChatGPT的横空出世,全世界的AI热情再度被激活。ChatGPT表现出的超强的语言生成、理解和知识推理能力都得益于自然语言处理的发展。ChatGPT的基础模型采用Transformer框架,它是一种基于自注意力机制的深度神经网络模型,可以高效并行处理序列数据。因此,我们将分两期来探讨Transformer框架,本期将介绍Transformer的发展历史、基本原理和未来展望,希望能给大家带来启发。
Transformer的发展历史可以追溯到2017年,谷歌公司的研究人员在发表的论文Attention Is All You Need中首次介绍了Transformer,并将其应用于机器翻译任务。这篇论文引起了广泛关注,因为它不仅在机器翻译任务中表现出色,而且还提供了一种新的思路来处理序列数据。在此之后,许多研究人员开始探索如何改进和扩展Transformer框架。例如,有些人提出了基于Transformer的语言模型,以生成自然语言文本。还有人提出了BERT(Bidirectional Encoder Representations from Transformers)模型,它使用Transformer编码器来预训练深度双向表示,从而在多个自然语言处理任务中取得了最先进的结果。ChatGPT是一个基于Transformer框架的对话生成系统,它可以生成自然流畅的对话,并且已经在许多任务中取得了最先进的结果。具体来说,ChatGPT使用了一个预训练的Transformer框架,该模型已经在大规模语料库上进行了训练,并学习了自然语言的结构和语义信息。在生成对话时,ChatGPT会将用户输入作为输入序列,并使用Transformer框架来生成下一句话。这个过程可以不断重复,直到生成满意的对话才结束。与传统的基于规则或模板的对话系统相比,ChatGPT可以更好地处理复杂的对话场景,并且可以根据上下文生成自然流畅的回复。此外,由于Transformer可以并行计算,所以ChatGPT可以实现快速响应,并且可以处理大量的对话请求。
从卷积神经网络(CNN)到Transformer的发展历程
卷积神经网络是研究人员模仿人类视皮层中感受野的生理机制开发的一类前馈神经网络。相比于全连接前馈神经网络,CNN利用网络内部的卷积核对输入信息进行卷积操作,提取出输入信息的局部特征,再由这些局部特征推断出输入信息的整体特征,进而完成分类任务。由于卷积神经网络擅长处理具有空间结构特征的图像数据,并最先在图像识别领域取得很好的识别效果,随后研究人员尝试將CNN网络用于环境声音分类领域,开启了卷积神经网络在自然语言处理、声音识别等方面的研究工作,CNN因其独特的卷积结构在模式识别、特征处理等方面取得显著效果,获得研究人员的广泛关注,并成为该领域的一个研究热点。如图1所示,CNN网络通常由输入层、卷积层、激活函数、池化层、全连接层和输出层组成,其中a、b、c、d代表网络中相应模块的层数。
由于CNN按输入层-中间层-输出层的顺序依次传递信息,前一层的神经元只能将信息传递给后一层神经元,各层内部的神经元之间及神经元本身不会建立信息反馈,所以前馈神经网络只能处理当前时刻的输入信息,无法和过去一段时间内的信息相联系,非常不适合处理时序数据。循环神经网络(RNN)通过在隐藏层增置一个内部状态,使得神经元的输出信息在向下一层网络传递的同时,也可以反馈给其本身,从而形成一个具有环路的信息传递路径,它的参数学习采用随时间反向传播算法。如图2所示,其中为一给定输入序列,为隐藏层的神经元的输出状态。
随着序列长度的增加,RNN网络的计算量会呈级数增长,由于它在训练中存在梯度爆炸和消失问题,这导致网络在对当前时刻的片段信息进行判断时会忽略以往较长时刻的片段信息。为有效改善这一问题,长短时记忆网络(LSTM)在RNN结构的基础上,将一类门控机制的内部状态参数引入隐藏层,通过该变量选择性地加入当前时刻的新信息和遗忘一些以往积累的旧信息,从而达到有效控制信息积累的目的。与CNN网络相比,循环神经网络更符合生物神经网络的特点,它可以有效地挖掘时间序列中隐含的时间结构特征,在处理视频、音频、文本等序列化结构数据方面获得很好的表现,成为目前非常流行的一类深度学习算法。
深度学习中的注意力机制与生物的选择性视觉机能类似,它能从大量的输入信息中关注到少量的重要信息忽略非重要信息。注意力机制在计算能力有限的情况下可以有效地解决系统计算资源分配的瓶颈,提高计算机系统的运算效率。相比于RNN和CNN,Transformer利用自注意力机制可以更好地捕捉长距离依赖关系,并且可以并行计算,因此在许多自然语言处理任务中表现出色。自注意力机制是一种用于对序列数据进行加权的机制,它可以在不同位置上对输入进行加权,从而更好地捕捉序列中的相关信息。在自注意力机制中,每个单词的向量表示都会考虑到其他单词的向量表示,并且每个单词的权重是通过计算该单词与其他单词的相似度得出的。Transformer使用了多头注意力机制来进一步改进自注意力机制。多头注意力机制允许模型在不同的“头”上执行多个自注意力操作,从而可以同时学习多个不同的表示。具体来说,多头注意力机制将输入向量拆分为多个向量,然后在每个向量上执行自注意力操作。最后,这些向量被连接起来并通过一个线性变换来生成最终的输出。
简述Transformer的工作原理
Transformer是一种用于序列到序列(Sequence-to-Sequence)任务的神经网络模型,如机器翻译、语音识别和生成对话等。它是第一个完全依赖于自注意力机制来计算其输入和输出的表示的转换模型。
1.Transformer的模型架构
序列到序列模型采用的是编码器-解码器结构,在每一个步长里,模型利用前一个步长中生成的向量和该步长的输入,生成输出符号。Transformer架构如图3所示,编码器-解码器结构采用堆叠的多头注意力机制加全连接层,图3中左边的是编码器结构,右边的是解码器结构。
图3中编码器由6个相同的块结构堆叠而成(N=6),每个块结构进一步分成两个子层,即一个多头的自注意力机制和一个前馈网络全连接层,在块中的每一个子层之后,增加一个归一化层(Add&Norm),每个子层的输出均为归一化的LayerNorm,包括词嵌入层,模块中所有子层的输出的维數均为512。解码器也由6个相同的块结构堆叠而成(N=6),每个块结构在编码器两个子层的基础之上,增加了第三个子层,即增加了一个多头自注意力子层。与编码器类似,在块中的每一个子层之后,增加一个归一化层(Add&Norm)。在解码器端,对解码器堆栈中的自注意力子层进行了修改,以防止位置编码和后续位置编码相关,通过这种掩蔽,确保了对位置i的预测只能依赖于小于i的位置的已知输出。
2.多头注意力机制
Transformer模型通过查询-键-值的模式使用多头注意力,如图4所示。假设输入序列,输出序列,首先将输入序列X线性变换到三个不同空间,生成相应的查询矩阵Q、键矩阵K和值矩阵V,变换过程如下:
其中,、和分别为线性变换的参数矩阵,其作用是将Q、K、V矩阵分别投影到第i个维度上,、和分别为查询向量q、键向量k和值向量v的维度,为计算方便,一般设 。
其次,将每一位置的查询向量和图4的计算方式得到输出向量,输出向量代表多头注意力。
输出向量进一步表示为:
将输出向量带入softmax函数,则有:
最终结果为:
其中,为评分函数,代表输出和输入序列的位置,表示第t个输出关注到第i个值向量的权重。
然后使用放缩因子调整评分函数的数值,使其不至过大,保证梯度下降过程的稳定收敛。输出序列H数学表达如下:
最后将输出序列H经过一定的线性变化得到代表整个输入序列的注意力值。
其中,为可学习的参数矩阵。相比于传统的注意力机制,多头注意力可降低维度将原始的注意力层进行集成,模型可以关注到来自不同子空间下的不同位置上的信息。子空间的划分使其表示能力更强,如图5所示。每一个子空间的维度都变小了,所有最后使用的参数总数并没有显著增加。
3.位置编码
由于Transformer模型中既没有递归,也没有卷积,如果需要获得输入序列精准的位置信息,必须插入位置编码。位置编码精准地描述了输入序列中各个单词的绝对和相对位置信息,即在编码器-解码器的底部输入嵌入中注入“位置编码”,位置编码和输入嵌入有相同的维度,所以二者可以实现相加运算,位置编码方式可以有多种,在Transformer模型中采用的是频率不同的三角函数:
其中,pos代表在输入序列中每一帧的实际位置,t为输入序列的第t个维度,是每一帧向量的特征维度。对于位置相同维度不同的特征,正余弦函数可以用不同频率表示;对于维度相同而位置不同的特征,正余弦函数则可以用不同相位表达。通过正余弦函数编码位置信息,可使同一序列上任一位置的编码信息由其他位置的编码信息线性表示,如上页图6所示。
Transformer的未来展望
未来,Transformer模型的发展趋势可能会包括以下方面:
一是更好的表征方法。随着计算能力的提高和数据集的增加,未来Transformer模型可能会变得更大更复杂。目前已经有许多种不同的预训练方法,但是还有很大的改进空间。未来可能会出现更好的预训练方法,可以更好地利用大规模数据集进行模型训练。大模型可以从更多的训练数据中受益,而小模型可以快速稳定,但无法从更多的训练样本中受益。因此,大规模模型可以进一步提高其表征学习能力。
二是更广泛的应用场景。目前,Transformer主要应用于自然语言处理领域,但未来可能会扩展到其他领域,如计算机视觉。视觉Transformer网络作为一种新的视觉特征学习网络,在连接范围、权重动态性以及位置表示能力等方面与CNN网络差异较大。其远距离建模能力和动态的响应特质使之具备了更为强大的特征学习能力,但同时也带来了严重的数据依赖和算力资源依赖等问题。对视觉Transformer的效率和能力的研究仍将是未来的主要研究方向之一。此外,Transformer模型为多模态数据特征学习和多任务处理提供了一种统一的解决思路,基于Transformer的视觉模型有望实现更好的信息融合和任务融合。
三是更好的可视化和可解释性。目前,可视化和可解释Transformer仍然是一个未解决的问题,需要获得空间精确的激活特定可视化的方法。随着这方面研究的进展,我们可以更好地理解Transformer模型,也可以诊断决策过程中的错误行为和偏见。它还可以促进新颖架构的设计,使我们能够避免偏见,使得Transformer模型更容易被理解和使用。