赞
踩
本文主要讨论大语言模型的模型架构选择,主要围绕Transformers模型、详细配置、主流架构、长上下文模型与创新型模型开始讨论。下表列举了一些典型的大语言模型的详细配置,L表示层数、N表示注意力头数、H表示隐藏状态的大小。
当前主流的大模型都是基于Transformer模型架构设计的,Transformer的主要架构主要由多层多头注意力模块堆叠而成。原始的Transformer由编码器和解码器两个模块构成,而这两个模块也可以单独拿来使用。例如基于编码器的BERT模型和基于解码器的GPT模型。与早期的BERT模型相比,大语言模型拥有更长的向量维度、更深的模型层数,进而包含大量的模型参数,并主要使用解码器的架构,而对于Transformers本身的结构预配置改变并不大。本节主要介绍Transformer的基本构成以及编码器和解码器模块。
在Transformer模块中,输入的词元首先经过一个嵌入模块转化成词向量序列。具体来说,为了捕获词汇本身的语义信息,每个词元在输入嵌入模块被映射成为一个可学习的,具有固定维度的词向量(词元分割在上一节讲过)。由于Transformer编码器无法识别序列的位置信息,因此引入位置编码来提供位置信息,然后每个词元的嵌入与位置编码直接相加,生成了最终的嵌入序列,并被传入到后续层中。通过这种建模方法,Transformer模型可以利用位置编码建模不同词元的位置信息,但是这种位置编码仅有位置唯一决定,因此称为绝对位置编码,公式如下:
这种方法只能局限于建模训练样本中出现的位置,无法建模训练数据中未出现的位置。因此限制了他们处理长文本的能力。主要原因在于其固定编码的方式和模型参数的限制。首先,Transformer使用的正弦和余弦位置编码是基于固定的数学函数生成的,这些函数只能在一定范围内提供有效的位置信息。一旦文本长度超出了训练时的范围,新的位置编码虽然可以继续生成,但这些编码在训练过程中并未见过,因此模型无法有效地学习和理解这些位置。
此外,训练时为了控制计算复杂度和内存使用,输入序列的最大长度是有限的。模型在这种长度下进行训练时,只能学到这个范围内的位置信息,对于超过这个长度的文本,模型没有见过相应的位置编码,因此无法处理得当。位置编码被直接加到词嵌入上,模型参数的训练依赖于这些位置编码。如果在训练数据中没有出现过的长位置,其对应的编码没有参与过训练,导致模型对这些位置的处理能力较差。
另外,正弦和余弦位置编码具有周期性,随着位置数值的增加,不同位置之间的编码可能变得越来越相似,导致模型在处理非常长的文本时难以区分不同位置的信息。这种限制在文本长度远超训练时的最大长度情况下尤为明显。
后续会讨论不同位置编码方式以及长文本的建模能力的改进。
多头注意力机制是Transformer模型中的核心组件,相比于循环神经网络与卷积神经网络,多头注意力机制可以完成任意词元之间的交互关系的建模。作为对比,循环神经网络迭代的利用前一个时刻的状态更新当前时刻的状态,因此在序列长度很长的时候,常常会出现梯度爆炸与消失的问题。而在卷积神经网络中,只有位于同一个卷积核下的次元可以进行直接交互,通过堆叠层数来完成远距离的词元交互。
多头注意力机制由多个自注意力机制构成。每个字注意力模块中,对于每个输入序列,首先经过词嵌入矩阵将词元转化为固定维度的向量表示(在训练早期这些向量是随机初始化的),其后,将其映射为相应的的查询(Query,
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。