<article class=“article fmt article-content”><p>随着深度学习技术的一直倒退,语言模型(Language Model,LM)在自然语言解决畛域的利用越来越宽泛。其中,基于Transformer架构的预训练语言模型(Pretrained Language Model,PLM)更是成为了钻研的热点。在泛滥PLM中,基于大规模语料库的预训练语言模型(Large Language Model,LLM)以其弱小的语言生成和理解能力,受到了宽泛的关注。本文将深入探讨LLM的关键技术。<br/>一、 LLM技术</p><ol><li>LLM技术概述<br/> LLM(Large Language Models)是一种基于深度学习的自然语言解决技术,他利用大规模的文本训练,实现弱小语言模型的构建。目前支流的LLM基座都采纳Transformer架构,它由多层自注意力机制和前馈神经网络组成,旨在实现较长输出序列的并行处理。</li><li>LLM技术倒退<br/> 在说到Transformer之前,须要首先讲讲NLP。<br/> NLP(Natural Language Processing)即自然语言解决。NLP次要用于钻研实现人类语言和机器语言之间的无障碍沟通,分为自然语言的了解和自然语言的生成。蕴含词性标注、情感剖析、信息检索、机器翻译、聊天机器人、语音辨认、中文OCR等。<br/> 对NLP而言,输出通常为一句话或者一篇文章。因此其解决难度在于首先内容的长度是不固定的。<br/> 其次,单词或者短语的程序会影响到整个语句的含意,例如“我不齐全懂你的意思”和“我齐全不懂你的意思”含意就千差万别。<br/> 最初,对于中文而言,分词也是十分有难度的,不同的断句往往含意差异很大,因此中文分词往往是自然语言解决第一个要解决的问题。例如“我攒了1千万一须要我就拿进去”,能够有以下的分词。<br/><br/> 能够看到分词不同很容易产生歧义,因此在了解是很多时候不能单词看其中一个片段,须要联合上下文来看。而特色抽取器作为语义特征提取的外围,是否具备长距离特色捕捉能力对于解决 NLP 工作来说是很要害的。<br/> 在自然语言解决中,有三个支流的特征提取器,别离是RNN、CNN和Transformer。<br/> 在以Bert和GPT为代表的LLM呈现之前,NLP畛域风行的技术是深度学习模型。<br/> RNN即循环神经网络(Recurrent Neural Network),它能够对序列数据进行解决和学习。前期引入LSTM(长短期记忆)、GRU(门控循环单元)来改善记忆能力,实现更好的序列解决。RNN广泛应用于语音辨认、机器翻译等畛域。<br/> CNN是卷积神经网络(Convolutional Neural Network),也是一种深度学习模型,能够通过学习从原始图像中提取特色,实现对图像的分类、检测、宰割等工作。广泛应用于图像识别、人脸识别、图像生成、指标检测等。<br/> 2017年Transformer提出,2018基于Transformer的预训练模型GPT1和Bert相继颁布,标记着NLP畛域进入一个簇新的时代。Transformer齐全摒弃了CNN和RNN的架构,齐全基于自注意力机制的神经网络构造,具备弱小的语义特征提取能力,长距离的特色捕捉能力,再加上弱小的并行计算能力,机器翻译、文本生成、语言建模等工作中体现出了优异的性能。至此局部NLP子畛域走向沦亡,而其余NLP子畛域的技术办法和框架日趋对立,特征提取器逐渐归敛于Transformer。<br/><br/>二、 LLM基座-Transformer</li><li>Transformer的模型架构<br/> 2017年Google发表一篇名为《Attention is All You Need》的论文,文中论述了一种基于自注意力机制(self-attention mechanism)的神经网络架构-Transformer,形容了Transformer构造及原理,包含自注意力机制、地位编码、解码器、前馈神经网络等组件。<br/></li></ol><p>1.1 工作流程<br/>Transformer构造是由输入输出、编码器(Encoder)、解码器(Decoder)组成。其中编码器和解码器是Transformer的外围,每个局部由多个档次组成,每个档次由多头自注意力机制和全连贯层组成。</p><pre><code>从输出提醒词到输入,整个流程蕴含以下步骤:</code></pre><ul><li>获取输出的提醒词并进行分词,进行词的向量化。向量由单词的 Embedding和地位编码计算得出。</li><li>将所有的向量矩阵传递到Encoder,并输入所有分词的编码矩阵。如下图。向量的维度通常为512。</li><li>将编码矩阵传递到Decoder进行翻译输入。</li></ul><ol start=“2”><li>注意力机制<br/> 当咱们感知周遭环境时,通常都会来分辨焦点在什么中央,以便聚焦解决更重要的内容。因此,作为神经网络的大模型,在进行单词生成或者内容提取时,也是须要“留神”向量和其余元素之间的关系。<br/> 注意力机制用以形容元素的加权平均值,蕴含3个关键点:<br/><strong>Query:</strong>用以形容在序列中须要寻找或者留神的内容。<br/><strong>Keys:</strong>key是输出元素的特征向量,形容该元素“提供”什么,或者它何时可能很重要。<br/><strong>Values:</strong>value是输出元素的值向量。<br/> 哪些向量是咱们须要的?此时就须要一个评分函数将Query和Keys作为输出,并输入他们的得分,计算加权平均值,用以示意匹配水平。<br/>2.1自注意力机制<br/> 在自注意力(self-attention)中,每个序列元素提供一个key、value和query。对于每个元素,依据其query作用一个注意力神经层,查看所有序列元素键的相似性,并为每个元素返回一个不同的平均值向量。<br/>2.2多头注意力<br/> 序列元素通常须要关注多个不同方面,并且单个加权平均值并不是最佳抉择。这就是提出多头注意力机制的本源,即雷同特色上的多个不同的(查问,键,值)三元组。<br/><br/> 具体来说,给定一个查问、键和值矩阵,咱们将它们转换为h个子查问、子键和子值,而后别离输出给点击注意力模型,最初连贯头部并将它们与最终的权重矩阵组合起来。</li><li>Transformer的组成<br/><br/>3.1 输出<br/> 通常咱们应用LLM时,都是输出提醒词给大模型,大模型依据提醒词生成指定的内容。那么LLM是如何了解输出的提醒词的?<br/> 首先会将文字进行切割分词,将残缺的词组合成令牌(tokens)-—能够编码的根本单位。<br/><br/> 针对于可能呈现多重含意的词,例如key。LLM在预训练时,就须要察看上下文,依据与key的邻近水平应用向量-数值列表的模式示意,这个向量称为词嵌入(embedding)。不同的值能够用以标识不同的场景。<br/><br/> 咱们都分明,一句话中同一个词,呈现的地位不同,可能含意相差很大。因而在Transformer中会给每个词向量增加地位编码(positional encoding)保障含意的精确。<br/>3.2 Encoder<br/> Encoder蕴含6个block,每个Encoder由Multi-Head Attention 和 全连贯神经网络Feed Forward Network形成。解决流程如下:<br/> 将输出的词向量与地位编码相加失去输出向量。<br/> 将输出向量作为自注意力机制的输出,失去注意力矩阵。<br/> 将所有的输出词语进行Embedding,而后将其与维度雷同的地位向量组合(相加)。<br/> 将第一步失去的向量通过self-attention层,失去输入向量。在失去输入向量后,能够看到,在self-attention层后还蕴含着一个残差网络与LayerNorm操作。<br/> 将LayerNorm输入的向量,通过全连贯层,而后再通过一个残差网络以及LayerNorm,便可失去一个Encoder的输入。<br/> Transformer的Encoder是由N=6个雷同的layer组成,layer指的是上图左侧的单元,最右边有个"Nx",这里的x是6,每个layer由两个sub-layer组成,别离是multi-head self-attention mechanism和fully connected feed-forward network。<br/>3.3 Decoder<br/> Decoder也是由6个decoder重叠而成。 decoder由Masked Multi-Head Attention,Multi-Head Attention和全连贯神经网络FNN形成。比Encoder多了一个Masked Multi-Head Attention,其余的构造与encoder雷同,解决流程如下:<br/> 获取输出句子的每一个单词的示意向量X,X由单词的Embedding和单词地位的Embedding相加失去。<br/> 将失去的单词示意向量矩阵传入Decoder中,依据以后翻译过的单词翻译下一个单词。</li><li>Encoder-Decoder、Encoder-Only、Decoder-Only<br/> 在Transformer中,依据 Encoder/Decoder 的路线不同,倒退出三个支流分支:<br/></li><li>Encoder-only(也叫Auto-Encoder),典型代表BER,见图中粉色路线。</li><li>Encoder-decoder,典型代表T5和GLM,见图中绿色路线。</li><li>Decoder-only(也叫Auto-Regressive),典型代表GPT/LLaMa/PaLM,见图中灰色路线。<br/> 这三种构造不同的LLM,往往善于解决不同的工作:<br/><br/>三、 总结<br/> 后面曾经理解了LLM的底层模型,那么三种分支模型那个更有前景?<br/> Encoder-Decoder模型:这种模型可能了解输出并生成相干输入,因而广泛应用于各种工作,如机器翻译、对话零碎等。然而,它也有局限性,例如对于某些生成工作,它可能无奈生成连贯、有创造性的文本。此外,对于简单输出的理解能力无限也是其不足之处。尽管如此,因为其通用性和灵活性,Encoder-Decoder模型的前景依然广大,特地是在须要了解和生成序列数据的工作中。<br/> Encoder-Only模型:这种模型专一于了解和剖析输出信息,并不生成新的内容。它在分类和情感剖析等工作中特地无效。然而,因为其无奈生成新的输入,因而在某些生成工作中无奈应用。在将来的钻研中,能够摸索如何进步Encoder-Only模型在生成工作中的体现,例如通过引入自注意力机制或应用其余生成模型技术。<br/> Decoder-Only模型:这种模型从一系列输出中生成或预测输入,具备弱小的生成能力和灵活性,实用于各种生成型工作。然而,因为其不善于了解简单的输出数据,因而在某些须要了解输出的工作中可能体现不佳。在将来的钻研中,能够摸索如何进步Decoder-Only模型的理解能力,例如通过引入更多的上下文信息或应用其余技术来加强模型的示意能力。<br/> 总结来说,这三种模型各有优缺点,实用于不同的工作。将来的钻研能够摸索如何联合它们的长处,或者摸索新的模型架构和技术,以更好地解决自然语言解决和其余序列数据处理工作。</li></ol></article>