语言建模作为语言模型(LMs)的基本功能,涉及对单词序列的建模以及预测后续单词的分布。
近年来,研究人员发现,扩大语言模型的规模不仅增强了它们的语言建模能力,而且还产生了处理传统NLP任务之外更复杂任务的新兴能力。
这些扩大规模的语言模型被称为大型语言模型(LLMs)。
主流的LLMs基于Transformer架构设计。
具体来说,一个典型的Transformer架构由多个堆叠的Transformer块组成。
通常,一个Transformer块由一个多头自注意力(MHSA)模块、一个前馈网络(FFN)和一个层归一化(LN)操作组成。
对于每个块,它接收前一个块的输出特征作为输入,并通过每个子模块传递特征以获得输出。
特别地,在第一个块之前,使用分词器将原始输入句子转换为一系列标记,随后的嵌入层用于将标记转换为输入特征。
然后,将额外的位置嵌入添加到输入特征中,以编码每个输入标记的顺序。
Transformer架构的核心概念是自注意力机制,它在MHSA模块中采用。具体来说,表示输入特征为X = [x1, x2, ..., xn],MHSA模块对它们进行线性投影并获得一组查询Q、键K和值V,如公式所示:
其中WQi、WKi和WVi分别是第i个头的投影矩阵。
然后自注意力操作应用于每组(Qi, Ki, Vi)并得到第i个头的特征Zi,如公式所示:
其中dk是查询(键)的维度。
注意,自注意力操作包含矩阵乘法操作,其计算复杂度是对输入长度的二次方。最后,MHSA模块将所有注意力头的特征连接起来,并通过线性投影形成其输出Z,如公式所示:
其中WO是投影矩阵。
可以看到,自注意力机制允许模型识别不同输入部分的重要性,无论距离如何,并且可以捕捉输入句子中的长距离依赖和复杂关系。
Transformer块中的另一个重要模块是FFN。
通常,FFN位于MHSA模块之后,由两个带有非线性激活函数的线性变换层组成。它接收MHSA模块的输出特征X,如公式所示:
其中W1和W2表示两个线性层的权重矩阵,σ(·)表示激活函数。
本文翻译自清华大学最新成果论文:《A Survey on Efficient Inference for Large Language Models 》,https://arxiv.org/pdf/2404.14294。
更多关于大语言模型的介绍,可以查看《Transformer最后一公里》专栏。