大言语模型的预练习[1]:根本概念原理、神经网络的言语模型、Transformer模型原理详解、Bert模型原理介绍

1.大言语模型的预练习

1.LLM预练习的根本概念

预练习归于搬迁学习的范畴。现有的神经网络在进行练习时,一般依据反向传达(Back Propagation,BP)算法,先对网络中的参数进行随机初始化,再运用随机梯度下降(Stochastic Gradient Descent,SGD)等优化算法不断优化模型参数。而预练习的思维是,模型参数不再是随机初始化的,而是经过一些使命进行预先练习,得到一套模型参数,然后用这套参数对模型进行初始化,再进行练习。

预练习将很多低本钱搜集的练习数据放在一起,经过某种预练习的办法去学习其间的共性,然后将其间的共性 “移植” 到特定使命的模型中,再运用相关特定范畴的少量标示数据进行 “微调”。因而,模型只需求从“共性” 出发,去 “学习” 该特定使命的 “特别” 部分。

例如:让一个彻底不懂英文的人去做英文法律文书的关键词提取的作业会彻底无法进行,或者说他需求十分多的时间去学习,因为他现在根本看不懂英文。可是,假如让一个英语为母语但没触摸过此类作业的人去做这项使命,他或许只需求相对比较短的时间学习怎么去提取法律文书的关键词就能够上手这项使命。在这儿,英文常识就归于 “共性” 的常识,这类常识不必要只经过英文法律文书的相关语料进行学习,而是能够经过很多英文语料,不管是小说、书籍,仍是自媒体,都可所以学习资料的来源。在该例中,让彻底不懂英文的人去完结这样的使命,这就对应了传统的直接练习办法,而彻底不懂英文的人假如在前期体系学习了英文,再让他去做相同的使命,就对应了 “预练习 + 微调” 的思路,体系的学习英文即为 “预练习” 的进程。

大言语模型的预练习是指搭建一个大的神经网络模型并喂入海量的数据以某种办法去练习言语模型。大言语模型预练习的首要特色是练习言语模型所用的数据量够多、模型够大。

1.2 LLM预练习需求

预练习技能被广泛应用于各种机器学习使命,首要是为了处理以下问题:

  • **数据稀缺性:**在许多使命中,标记数据是很贵重的,并且难以获取。例如,在自然言语处理范畴,需求很多的标示数据才干练习模型。经过运用预练习技能,能够运用未标记的数据来练习模型,然后进步模型的功能和泛化才能;
  • **先验常识问题:**许多机器学习使命需求模型具备必定的先验常识和常识,例如自然言语处理中的言语结构和规则。经过运用预练习技能,能够让模型在未标记数据上学习这些常识,然后使其在各种使命上表现更好;
  • **搬迁学习问题:**许多机器学习使命之间存在共性,例如自然言语处理中的语义了解和文本分类等。经过运用预练习技能,能够将模型从一个使命搬迁到另一个使命,然后进步模型在新使命上的功能;
  • **模型可解释性问题:**预练习技能能够协助模型学习抽象的特征,然后进步模型的可解释性。例如,在自然言语处理中,预练习技能能够使模型学习单词和短语的表明,然后进步模型的可解释性。

综上所述,预练习技能能够协助机器学习模型处理数据稀缺性、先验常识和搬迁学习等问题,然后进步模型的功能和可解释性,一起下降练习本钱。

1.3 LLM预练习的根本原理

大言语模型预练习选用了 Transformer 模型的解码器部分,因为没有编码器部分,大言语模型去掉了中心的与编码器交互的多头注意力层。如下图所示,左面是 Transformer 模型的解码器,右边是大言语模型的预练习架构

大语言模型的预训练[1]:基本概念原理、神经网络的语言模型、Transformer模型原理详解、Bert模型原理介绍

1.3.1 办法

大言语模型预练习是经过上文的词来猜测下一个词,归于无监督的预练习。比方,给定一个无监督的语料U={u1​,...,un​},而预练习言语模型是要使得下面式子最大化:

L1​(U)=i​P(ui​∣ui−k​,…,ui−1​;)L1​(U)=i​P(ui​∣ui−k​,…,ui−1​;)

即如下图所示,经过上文,来猜测下一个单词,归于自回归模型,也叫做 AR 模型。

大语言模型的预训练[1]:基本概念原理、神经网络的语言模型、Transformer模型原理详解、Bert模型原理介绍

AR 模型,即指从左往右学习的模型。AR 模型从上文学习,并将上一步的成果作为回归模型的输入,以猜测下一个词。在猜测时,AR 模型只能看到上文的词,而无法知晓下文的词。AR 模型一般用于生成式使命,尤其是长文本的生成才能很强。

在大言语模型的预练习中,还选用了 in-context learning 技能。为了让模型能够了解人类的目的,与人类的思维对齐,会构造类似这样数据:在语句前加上一个使命(task),一起会给出完结该使命的几个示例。例如,向模型输入 “请将中文翻译成英文。你好,Hello,再会,goodbye,出售,”,然后让模型学习下一个输出 “sell”。经过示例的个数又能够分为:

  • few-show learning: 答应输入数条示例和一则使命说明;
  • one-shot learning: 只答应输入一条示例和一则使命说明;
  • zero-shot learning: 不答应输入任何典范,只答应输入一则使命说明。

zero-shot learning 能够表明为:

p(output∣input,task)

经过引进 in-context learning 技能,使得预练习的大言语模型直接拥有完结特定使命的才能。

1.3.2 练习

下面临大言语模型预练习进程中的批量练习、学习率、优化器和练习稳定性等方面进行解说。

  • **批量练习:**关于言语模型的预练习,一般将批量练习的巨细(batch_size)设置为较大的数字来保持练习的稳定性。在最新的大言语模型练习中,选用了动态调整批量练习巨细的办法,终究在练习期间批量练习巨细达到百万规划。成果表明,动态调度批量练习的巨细能够有效地稳定练习进程;
  • **学习率:**大言语模型练习的学习率一般选用预热和衰减的战略。学习率的预热是指模型在开始练习进程的 0.1% 到 0.5% 之间逐渐将学习率进步到最大值。学习率衰减战略在后续练习进程中逐步下降学习率使其达到最大值的 10% 左右或者模型收敛;
  • **优化器:**Adam 优化器和 AdamW 优化器是常用的练习大言语模型的优化办法,它们都是依据低阶自习惯估量矩的一阶梯度优化。优化器的超参数一般设置为:1​=0.92​=0.95以及=10−8
  • **练习稳定性:**在大言语模型的预练习期间,经常会遇到练习不稳定的问题,或许导致模型无法持续练习下去。现在,处理这个问题一般选用的办法有正则化和梯度裁。梯度裁剪的阈值一般设为 1.0,正则化系数为 0.1。可是,跟着大言语模型规划的扩展,模型的丢失函数值更或许会发生骤变,导致模型练习的不稳定性。为了处理大言语模型练习稳定性的问题,练习时在发生丢失函数的骤变后,回溯到上一个保存的模型(checkpoint),并越过这一部分的练习数据持续进行模型的练习。

1.4LLM预练习的首要优势

大言语模型预练习是一种先经过海量数据进行预练习,然后再进行微调的技能,其目的是进步机器学习算法的功能和功率。大模型预练习的优势首要有以下几点:

  • **进步模型的泛化才能:**经过大规划预练习,模型能够学习到更多的数据和常识,然后进步其对未知数据的泛化才能;
  • **减少练习时间和数据量:**预练习能够大幅减少练习时间和数据量,因为预练习的成果能够直接应用到其它使命上,防止了重复练习;
  • **进步算法的功率:**预练习能够使得算法愈加高效,因为预练习的成果能够作为其它使命的初始值,防止从头开端练习的时间和核算资源浪费;
  • **支持多种自然言语处理使命:**预练习能够应用于各种自然言语处理使命,如文本分类、情感分析、机器翻译等,进步了自然言语处理技能的通用性和可拓展性;
  • **进步模型的精度:**大模型预练习能够进步模型的精度和功能,然后使得机器学习算法在各种使命上得到更好的表现。

1.5 预练习后续阶段

大言语模型预练习是指选用很多数据喂入大规划模型去练习言语模型,得到初始化的模型参数。跟着 ChatGPT 的呈现,在完结大言语模型的预练习后,还会选用监督学习、奖赏模型以及强化学习进行进一步的微调,叫做 RLHF。预练习后续阶段首要分为三个进程(如下图所示):

大语言模型的预训练[1]:基本概念原理、神经网络的语言模型、Transformer模型原理详解、Bert模型原理介绍

  • 进程 1:SFT 监督微调,练习监督战略模型。在大言语模型的练习进程中,需求标记者参与监督进程;
  • 进程 2:奖赏模型练习。凭借标记者的人工标示,练习出合意的奖赏模型,为监督战略树立点评规范;
  • 进程 3:PPO 强化学习模型练习,选用近端战略优化进行强化学习。经过监督学习战略生成 PPO 模型,将最优成果用于优化和迭代原有的 PPO 模型参数。

2.神经网络的言语模型常识

2.1 依据神经网络的言语模型

鉴于 n-gram 存在的问题,人们开端尝试用神经网络来树立言语模型,提出了如下图所示的前馈神经网络模型(FFNN Language Model,FFNNLM):

大语言模型的预训练[1]:基本概念原理、神经网络的语言模型、Transformer模型原理详解、Bert模型原理介绍

它经过学习词的散布式表明来处理维度灾难,使得一个词能够运用一个低维向量(称之为 embedding)表明。从全体上看,上述模型归于比较简略而传统的神经网络模型,首要由输入层 – 躲藏层 – 输出层组成,经过前向传达和反向传达来进行练习。

2.1.1 词向量处理

依据神经网络的言语模型的输入层为词向量,词语转化为数字的最简略的办法便是 One-hot(独热编码),简略来说便是假定有一个巨细为 V 的固定排序的词表,里边包括 V 个词,假定第二个词是 “电视”,那么用一个维度为 V 的特征向量表达便是 [0,1,0,0,⋯,0][0,1,0,0,⋯ ,0],即该词语在词表中的方位对应在特征向量中的方位的值为 1,其他方位都为 0。
但 One-hot 编码有一个最大的问题便是数据稀少问题,当词表很大(比方现在有一个含 80000 个词的词表)时,数据稀少会让整个核算量都变得很大,且词语之间的关联联系得不到表达。

词向量(Word Embedding)因而应运而生,它不必 One-hot 的稀少向量来表征这个词,而是用一个低维度的向量来表征这个词,给定一个词表征的矩阵 C,矩阵 C 的维度是 V∗m,即 V 行,m 列。V 是词表的巨细,即每一行代表了词表里的一个词;m 是自己定的词向量的维度,比方说关于一个 80000 个词的词表,One-hot 向量要用 80000 维来表征 “电视” 这个词,而词向量用一个 100 维的向量来表征,m 便是 100。
用 “电视” 的 One-hot 向量 [0,1,0,0,⋯,0][0,1,0,0,⋯,0] 乘上面说的矩阵 C,将得到一个 m 维的向量,即词向量,下图为这个核算进程:

大语言模型的预训练[1]:基本概念原理、神经网络的语言模型、Transformer模型原理详解、Bert模型原理介绍

得到上面单个词向量之后,将 n − 1 个词向量做一个全衔接,即把这 n − 1 个词向量首尾相接地拼起来得到终究的输入 x:

大语言模型的预训练[1]:基本概念原理、神经网络的语言模型、Transformer模型原理详解、Bert模型原理介绍

2.1.2 正向传达

从输入层到躲藏层:词向量 x 作为输入,权重 H 乘以输入加上偏置 d,再加 tanh 函数作激活函数,就得到了躲藏层:tanh(d+Hx)。
从躲藏层到输出层:先核算由躲藏层到输出层未归一化的输出值 y1,这儿是一个简略的线性改动:y1=Utanh(d+Hx)+b1y1 = Utanh(d+Hx)+b1。这儿的 U 是躲藏层到输出层的参数,b1 代表这一部分的偏置项。
从输入层到输出层:从输入层到输出层的直连,也是一个线性变换。这一部分的输出值 y2 能够表明为: y2=Wx+b2y2=Wx+b2。W 和 b2 分别是这一部分的权重和偏置项。
输出层:由上面的两部分输出值能够得到终究的 y:y=y1+y2=b+Wx+Utanh(d+Hx)y = y1+y2 = b+Wx+Utanh(d+Hx)
再将 y 经过一个 softmaxsoftmax 函数做概率归一化,便能得到一个维度为 V 的概率向量。
模型练习的目标是最大化以下似然函数:

大语言模型的预训练[1]:基本概念原理、神经网络的语言模型、Transformer模型原理详解、Bert模型原理介绍

其间=(b,d,W,U,H,C)=(b,d,W,U,H,C),是模型的一切参数,R 是正则化项。
反向传达是依据 loss 值更新参数的进程,这儿不再赘述。

2.1.3 模型点评

神经网络言语模型 (NNLM) 经过构建神经网络的办法来探索和建模自然言语内在的依靠联系。优缺陷如下:

  • 长处:

    1. 词向量是能够自定义维度的,维度并不会因为新扩展词而发生改动,词向量能够很好的依据特征间隔度量词与词之间的相似性;
    2. 好的词向量能够进步模型泛化才能;
    3. 比较于 n-gram,经过词向量的降维,减小了参数空间,减少了核算量。
  • 缺陷:

    1. 参数较多,模型练习时间长;
    2. 可解释性较差。

2.2 循环神经网络概述

关于咱们现已学过的传统神经网络,它们能够完结分类以及标示使命,但传统神经网络处理具有前后遗存联系的数据时,作用就不是十分理想了。这时不只需求依靠当时的输入,还需求结合前一时间或后一时间的输入作为参考。
循环神经网络的首要用途是处理和猜测序列数据。循环神经网络开始便是为了刻画一个序列当时的输出与之前信息的联系。从网络结构上来看,循环神经网络会回忆之前的信息,并运用之前的信息影响后边节点的输出。也便是说,循环神经网络的躲藏层之间的节点是有衔接的,躲藏层的输入不只包括输入层的输出,还包括上一时间躲藏层的输出。

2.2.1 一般循环神经网络

传统的神经网络结构一般分为三层:输入层、躲藏层、输出层。输入层的输入经过加权核算输出到躲藏层,作为躲藏层的输入。躲藏层再对从输入层得到的输入进行加权核算输入到输出层,最终经过激活函数,由输出层输出终究的成果。
循环神经网络的结构与其十分的相似,都是由输入层、躲藏层和输出层构成,最大的区别在于循环神经网络的躲藏层多了一个本身到本身的环形衔接,其结构如下图所示:

大语言模型的预训练[1]:基本概念原理、神经网络的语言模型、Transformer模型原理详解、Bert模型原理介绍

其间,x 表明输入层,s 表明躲藏层的输出,o 表明输出层的值。U 是输入 x 特征与躲藏层神经元全衔接的权重矩阵,V 则是躲藏层与输出层全衔接的权值矩阵。o 的输出由权值矩阵 V 和躲藏层输出 s 决定。s 的输出不只仅由权值矩阵 U 以及输入 x 来决定,还要依靠于新的权值矩阵 W 以及上一次 s 的输出。其间,W 表明上一次躲藏层的输出到这一次躲藏层输入的权值矩阵,该层被称为循环层。

2.2.2 单向循环神经网络

将一般循环神经如下图所示打开便是单向循环神经网络:

大语言模型的预训练[1]:基本概念原理、神经网络的语言模型、Transformer模型原理详解、Bert模型原理介绍

关于单向循环神经网络的结构,你能够了解为网络的输入经过时间进行向后传达。当时躲藏层的输出 st 除了取决于当时的输入层的输入向量 xt 外,还受到上一时间躲藏层的输出向量 st+1 的影响,因而,当时时间躲藏层的输出信息包括了之前时间的信息,表现出对之前信息回忆的才能。能够选用如下公式对单向循环神经网络进行表明:

大语言模型的预训练[1]:基本概念原理、神经网络的语言模型、Transformer模型原理详解、Bert模型原理介绍

其间 otot 表明输出层的成果,g 为输出层的激活函数,V 为输出层的权值矩阵。stst 表明躲藏层的成果,它由当时时间的输入层输入 xtxt 以及上一时间躲藏层输出 st−1st−1 一起决定,U 表明输入层到躲藏层的权值矩阵,W 为上一时间的值 st−1st−1 到这一次输入的权值矩阵,f 为躲藏层的激活函数。循环神经网络的递归数学式如下所示:

大语言模型的预训练[1]:基本概念原理、神经网络的语言模型、Transformer模型原理详解、Bert模型原理介绍

2.2.3 依据循环神经网络的字符级言语模型

接下来,咱们看一下怎么运用循环神经网络来构建言语模型。 设小批量巨细为 1,批量中的文本序列为 “machine”。为了简化后续部分的练习,咱们考虑运用字符级言语模型(character-level language model), 将文本词元化为字符而不是单词。下图演示了怎么经过依据字符级言语建模的循环神经网络,运用当时的和先前的字符猜测下一个字符。

大语言模型的预训练[1]:基本概念原理、神经网络的语言模型、Transformer模型原理详解、Bert模型原理介绍

在练习进程中,对每个时间步的输出层的输出进行 softmax 操作,然后运用穿插熵丢失核算模型输出和标签之间的误差。因为躲藏层中隐状态的循环核算上图中的第 3 个时间步的输出 O3 由文本序列 “m”,“a” 和“c”确认。因为练习数据中这个文本序列的下一个字符是 “h”,因而第 3 个时间步的丢失将取决于下一个字符的概率散布,而下一个字符是依据特征序列“m”,“a”,“c” 和这个时间步的标签 “h” 生成的。

2.2.4 模型点评

RNN 的长处:

  1. 能够回忆上一时间的输入信息。
  2. 处理任意长度的输入。
  3. 模型形状不随输入长度增加改动形状。
  4. 权重随时间共享

RNN 的缺陷:

  1. 核算速度慢。
  2. 难以获取很久以前的信息。
  3. 无法考虑当时状态的任何未来输入。
  4. 在 RNN 中经常遇到梯度消失和爆破现象。

3.Transformer 言语模型完结进程

3.1 Transformer 言语模型简介

 Transformer 模型运用 Self-Attention 结构取代在 NLP 使命中常用的 RNN 网络结构。比较 RNN 网络结构,其最大的长处是能够并行核算。Transformer 的全体模型架构如下图所示:

大语言模型的预训练[1]:基本概念原理、神经网络的语言模型、Transformer模型原理详解、Bert模型原理介绍

Transformer 本质上是一个 Encoder-Decoder 架构。Transformer 的中心部分能够分为两个部分:编码组件和解码组件。如下图所示:

大语言模型的预训练[1]:基本概念原理、神经网络的语言模型、Transformer模型原理详解、Bert模型原理介绍

词向量的输入

大语言模型的预训练[1]:基本概念原理、神经网络的语言模型、Transformer模型原理详解、Bert模型原理介绍

Transformer 输入是一个序列数据,以我喜欢你为例:Encoder 的 inputs 便是 “I LOVE YOU” 分词后的词向量。
输入 inputs embedding 后需求给每个 word 的词向量增加方位编码 positional encoding。

3.1.1 方位编码 positional encoding

一句话中同一个词,假如词语呈现方位不同,意思或许发生翻天覆地的改动,例如:我欠他 100 和 他欠我 100。这两句话的意思一个阴间一个天堂。可见获取词语呈现在语句中的方位信息是一件很重要的事情。可是 Transformer 的是彻底依据 self-Attention,而 self-attention 无法获取词语方位信息,就算打乱一句话中词语的方位,每个词仍是能与其他词之间核算 attention 值,就适当于是一个功能强大的词袋模型,对成果没有任何影响。因而在输入的时分需求给每一个词向量增加方位编码。
positional encoding 获取进程:

大语言模型的预训练[1]:基本概念原理、神经网络的语言模型、Transformer模型原理详解、Bert模型原理介绍

Transformer 运用的是正余弦方位编码。方位编码经过运用不同频率的正弦、余弦函数生成,然后和对应的方位的词向量相加,方位向量维度有必要和词向量的维度一致。进程如上图,PE(positional encoding)核算公式如下:

大语言模型的预训练[1]:基本概念原理、神经网络的语言模型、Transformer模型原理详解、Bert模型原理介绍

pos 表明单词在语句中的绝对方位,pos=0,1,2…,例如:YOU 在 “I LOVE YOU” 中的 pos=2;dmodel 表明词向量的维度,在这儿 dmodel=512;2i 和 2i+1 表明奇偶性,i 表明词向量中的第几维,例如这儿 dmodel=512,故 i=0,1,2…255。

编码组件由多层编码器(Encoder)组成(在此处运用了 6 层编码器)。解码组件也是由相同层数的解码器(Decoder)组成(在此处运用了 6 层)。如下图所示:

大语言模型的预训练[1]:基本概念原理、神经网络的语言模型、Transformer模型原理详解、Bert模型原理介绍

3.1.2 Encoder

编码器层的作用:作为编码器的组成单元,每个编码器层完结一次对输入的特征提取进程,即编码进程。
编码器的作用:编码器用于对输入进行指定的特征提取进程也称为编码,由 N 个编码器层堆叠而成。

每个编码器层由两个子层组成:Self-Attention 层(自注意力层)和 Position-wise Feed Forward Network(前馈网络,缩写为 FFN)如下图所示。每个编码器的结构都是相同的,可是它们运用不同的权重参数。

大语言模型的预训练[1]:基本概念原理、神经网络的语言模型、Transformer模型原理详解、Bert模型原理介绍

编码器的输入会先流入 Self-Attention 层,它能够让编码器在对特定词进行编码时运用输入语句中的其他词的信息(当翻译一个词时,不只只重视当时的词,并且还会重视其他词的信息)。然后 Self-Attention 层的输出会流入前馈网络。
解码器也有编码器中这两层,可是它们之间还有一个注意力层(即 Encoder-Decoder Attention),用来帮解码器重视输入语句的相关部分(类似于 seq2seq 模型中的注意力)。如下图所示:

大语言模型的预训练[1]:基本概念原理、神经网络的语言模型、Transformer模型原理详解、Bert模型原理介绍

3.1.3 多头注意力机制(Multi-head Attention)

经过增加一种多头注意力机制,进一步完善自注意力层。首要,经过 h 个不同的线性变换对 Query、Key 和 Value 进行映射;然后,将不同的 Attention 拼接起来;最终,再进行一次线性变换。根本结构如下图所示:

大语言模型的预训练[1]:基本概念原理、神经网络的语言模型、Transformer模型原理详解、Bert模型原理介绍

每一组注意力用于将输入映射到不同的子表明空间,这使得模型能够在不同子表明空间中重视不同的方位。整个核算进程可表明为:

大语言模型的预训练[1]:基本概念原理、神经网络的语言模型、Transformer模型原理详解、Bert模型原理介绍

在多头注意力下,将输入的 X 乘以 WQ、WK 和 WV 矩阵,然后为每组注意力独自生成不同的 Query、Key 和 Value 矩阵。如下图所示:

大语言模型的预训练[1]:基本概念原理、神经网络的语言模型、Transformer模型原理详解、Bert模型原理介绍

按照上面的办法,运用不同的权重矩阵进行 8 次自注意力核算,得到 8 个不同的 Z 矩阵。接下来将这 8 个矩阵整合为一个矩阵。具体流程如下:

  1. 把 8 个矩阵{Z0,Z1,⋯,Z7}拼接。

  2. 把拼接后的矩阵和一个权重矩阵 WO 相乘。

  3. 得到终究的矩阵 Z,这个矩阵包括了一切注意力头的信息。这个矩阵会输入到 FFN 层。

    大语言模型的预训练[1]:基本概念原理、神经网络的语言模型、Transformer模型原理详解、Bert模型原理介绍

3.1.4 Feed-Forward Networks

全衔接层是一个两层的神经网络,先线性变换,然后 ReLU 非线性,再线性变换。公式如下:

大语言模型的预训练[1]:基本概念原理、神经网络的语言模型、Transformer模型原理详解、Bert模型原理介绍

这儿的 x 便是 Multi-Head Attention 的输出 Z,引用上面的比如,那么 Z 是 (2,64) 维的矩阵,假定 W1 是(64,1024),其间 W2 与 W1 维度相反(1024,64),那么按照上面的公式:
FFN(Z)=(2,64)x(64,1024)x(1024,64)=(2,64),发现维度没有发生改动,这两层网络便是为了将输入的 Z 映射到愈加高维的空间中 (2,64)x(64,1024)=(2,1024),然后经过非线性函数 ReLU 进行筛选,筛选完后再变回本来的维度。然后经过 Add&Normalize,输入下一个 encoder 中,经过 6 个 encoder 后输入到 decoder。

3.1.5 Decoder

Decoder 的输入分为两类:
一种是练习时的输入,一种是猜测时的输入。
练习时的输入:现已对准备好对应的 target 数据。例如翻译使命,Encoder 输入 “I LOVE YOU”,Decoder 输入 “我喜欢你”。
猜测时的输入:一开端输入的是起始符,然后每次输入是上一时间 Transformer 的输出。例如,输入 “”,输出”I”,输入”I”,输出”I LOVE”,输入” 我爱 “,输出”I LOVE YOU”,输入” 我喜欢你 “,输出” 我喜欢你 ” 结束。

解码器层的作用:作为解码器的组成单元,每个解码器层依据给定的输入,向目标方向进行特征提取操作,即解码进程。
解码器的作用:依据编码器的成果以及. 上 – 次猜测的成果,对下一次或许呈现的 “值” 进行特征表明。

3.1.6 Mask(掩码)

Mask 表明掩码,它对某些值进行掩盖,使其在参数更新时不发生作用。Transformer 模型里边触及两种 mask,分别是 Padding Mask 和 Sequence Mask。其间,Padding Mask 在一切的 scaled dot-product attention 里边都需求用到,而 Sequence Mask 只要在 Decoder 的 Self-Attention 里边用到。

Padding Mask: 因为每个批次输入序列长度不一样,所以要对输入序列进行对齐。具体来说,便是给在较短的序列后边填充 0。但因为填充的方位,关于语句无实际意义,attention 机制不应该把注意力放在这些方位上,所以需求进行一些处理。具体做法是,把这些方位的值加上一个十分大的负数 (负无穷),再经过 softmax,这些方位的概率就会接近 0。

Sequence Mask:Sequence Mask 是为了使得 Decoder 不能看见未来的信息。关于一个序列,在 t 时间,解码输出只能依靠于 t 时间之前的输出,而不能依靠 t 之后的输出。因而需求躲藏 t 之后的信息。完结进程为:发生一个上三角矩阵,上三角的值全为 0,将这个矩阵作用在每一个序列上。

3.2 模型点评

  • Transformer 长处:

    1. 长时间依靠性建模:Transformer 模型经过运用自注意力机制(self-attention)能够更好地捕捉长时间依靠联系,这关于处理长文本或具有远间隔依靠性的使命十分重要。

    2. 并行核算:Transformer 模型中的自注意力机制和方位编码能够使输入序列的一切方位一起进行处理,这导致模型能够高效地并行核算,加速练习和推理速度。

    3. 可解释性:相关于传统的循环神经网络(RNN),Transformer 模型在处理序列数据时更具可解释性。因为自注意力机制能够指定每个方位与其他方位的相关性,因而能够更清晰地了解模型对输入的处理进程。

    4. 模块化架构:Transformer 模型以块(block)为根本单元构建,每个块包括多层自注意力机制和前馈神经网络层。这种模块化的架构使得 Transformer 模型易于修正、扩展和调整,研究人员和开发者能够依据需求自由组合和堆叠块。

    5. 多言语支持:Transformer 模型的设计使其能够轻松地习惯不同的言语,无论是练习仍是生成文本。这使得 Transformer 模型在机器翻译和跨言语使命中表现出色。

  • Transformer 缺陷:

    1. 学习本钱高:相关于传统的循环神经网络,Transformer 模型一般需求更大的核算资源和更长的练习时间。这限制了它在资源受限的环境中的应用。

    2. 过拟合危险:Transformer 模型一般具有很多的参数,当练习数据不足时容易发生过拟合。这需求运用正则化技能、更多的数据或其他办法来控制模型的泛化功能。

    3. 序列方位信息建模:尽管 Transformer 模型引进了方位编码来处理序列中的方位信息,但关于极长的序列,方位编码或许不足以精确地捕捉远间隔的依靠联系,这或许影响模型的功能。

    4. 对输入序列长度的灵敏性:Transformer 模型的自注意力机制对输入序列的长度十分灵敏。较长的序列需求更多的核算资源,而较短的序列或许无法充分运用自注意力机制。因而,在设计模型时需求权衡输入序列的长度和核算功率之间的平衡。

4.Bert模型

BERT(Bidirectional Encoder Representations from Transformers)是一个预练习的言语表征模型。它强调了不再像以往一样选用传统的单向言语模型或者把两个单向言语模型进行浅层拼接的办法进行预练习,而是选用新的掩蔽言语模型(masked language model),以致能生成深度双向言语表征。

大语言模型的预训练[1]:基本概念原理、神经网络的语言模型、Transformer模型原理详解、Bert模型原理介绍

BERT 的特征抽取结构为双向的 Transformer,直接运用了 Transformer Encoder Block 结构,如上图所示。

4.1 Bert 词嵌入(Embedding)

Bert 的 Embedding 由三种 Embedding 求和而成,如下图所示:

大语言模型的预训练[1]:基本概念原理、神经网络的语言模型、Transformer模型原理详解、Bert模型原理介绍

  • Token embedding 层是要将各个词转化成固定维度的向量。在 BERT 中,每个词会被转化成 768 维的向量表明。输入文本在送入 token embeddings 层之前要先进行 tokenization 处理。假定输入文本是:“my dog is cute he likes playing”,会将两个特别的 token 会刺进到 tokenization 的成果的最初 ([CLS]) 和结束 ([SEP]) 。这两个 token 为后边的分类使命和划分语句对服务。

  • tokenization 运用的办法是 WordPiece tokenization。这是一个数据驱动式的 tokenization 办法,旨在权衡词典巨细和 oov 词(超出词表外的词)的个数。这种办法把比如中的 “playing” 切分成了 “play” 和“##ing”(此处不具体打开)。运用 WordPiece tokenization 让 BERT 在处理英文文本的时分仅需求存储 30,522 个词,并且很少遇到 oov 的词。

  • 经过处理,上述语句被转化成 “[CLS] my dog is cute [SEP] he likes play ##ing [SEP]”,也便是 11 个 token。这样,比如中的 7 个词的语句就转化成了 11 个 token,然后接着得到了一个(11, 768) 的矩阵或者是(1, 11, 768) 的张量

Segment Embeddings 层用来区别两种语句,预练习除了 LM,还需求做判断两个语句先后顺序的分类使命。

  1. 前一个语句的每个 token 都用 0 表明,后一个语句的每个 token 都用 1 表明。如 “[CLS] my dog is cute [SEP] he likes play ##ing [SEP]” 表明成 “0 0 0 0 0 0 1 1 1 1 1”。假如输入仅仅只要一个语句,那么它的 segment embedding 便是全 0。这也是一个(11, 768) 维的向量。
  2. Position Embeddings 层和 Transformer 的 Position Embeddings 不一样,在 Transformer 中运用的是公式法,在 Bert 中是经过练习得到的。加入 position embeddings 会让 BERT 了解 “I think, therefore I am” 中的第一个 “I”和第二个 “I” 应该有着不同的向量表明。
  3. BERT 能够处理最长 512 个 token 的输入序列。经过让 BERT 在各个方位上学习一个向量表明来讲序列顺序的信息编码进来。这意味着 Position Embeddings layer 实际上便是一个巨细为 (512, 768) 的 lookup 表,表的第一行是代表第一个序列的第一个方位,第二行代表序列的第二个方位,以此类推。因而,假如有这样两个语句 “Hello world” 和“Hi there”,“Hello”和 “Hi” 会由彻底相同的 position embeddings,因为他们都是语句的第一个词。同理,“world”和 “there” 也会有相同的 position embedding。

4.2 预练习使命(Pre-training Task)

第一个使命是选用 MaskLM(掩蔽言语模型)的办法来练习言语模型,通俗地说便是在输入一句话的时分,随机地选一些要猜测的词,然后用一个特别的符号 [MASK] 来替代它们,之后让模型依据所给的标签去学习这些地方该填的词。
第二个使命在双向言语模型的基础上额定增加了一个语句级别的接连性猜测使命,即猜测输入 BERT 的两段文本是否为接连的文本,引进这个使命能够更好地让模型学到接连的文本片段之间的联系。
BERT 运用了 Transformer 的 Encoder 模块,分别用 12 层和 24 层 Transformer Encoder 组装了两套 BERT 模型,分别是:

大语言模型的预训练[1]:基本概念原理、神经网络的语言模型、Transformer模型原理详解、Bert模型原理介绍

其间层的数量 (即,Transformer Encoder 块的数量) 为 L,躲藏层的维度为 H,自注意头的个数为 A。将前馈 / 过滤器 (Transformer Encoder 端的 feed-forward 层) 的维度设置为 4H,即当 H=768 时是 3072;当 H=1024 是 4096 。

4.3 优缺陷

  • 长处:作用好,能够处理 11 项 NLP 使命。Bert 微调下游使命的时分,即便数据集十分小(比方小于 5000 个标示样本),模型功能也有不错的提高。
  • 缺陷:1.BERT 的预练习使命 MLM 使得能够凭借上下文对序列进行编码,但一起也使得其预练习进程与中的数据与微调的数据不匹配,难以习惯生成式使命。 2.BERT 没有考虑猜测 [MASK] 之间的相关性,是对言语模型联合概率的有偏估量。因为最大输入长度的限制,适合语句和阶段级别的使命,不适用于文档级别的使命(如长文本分类)。

5.关键常识点

  1. 大言语模型预练习:1.大言语模型预练习是搬迁学习的一种 2.模型预练习的最首要特色是模型参数不是随机初始化的,而是经过一些使命预练习过的 3.模型预练习能够进步模型的泛化才能 4.模型预练习后只需小量数据才干获得很好的作用

  2. 大言语模型预练习技能能协助处理:1.在许多机器学习使命中缺少先验常识 2.许多NLP使命泛化才能较差 3.标示数据太少等问题

  3. ChatGPT模型的微调包括哪个阶段:练习监督战略模型、练习奖赏模型、选用近端战略优化进行强化学习

  4. 依据神经网络的言语模型首要处理自然言语生成问题

  5. 在前馈神经网络中,为了减小梯度消失的影响,常常选用梯度裁剪的办法是

  6. 依据循环神经网络的言语模型一般具有特色:能够猜测下一个词汇、能够生成接连的文本、能够了解自然言语

  7. 在依据循环神经网络的言语模型中,输入的词嵌入能够经过预练习的词向量、随机初始化的矩阵办法得到

  8. Transformer 是一种依据递归神经网络(Recursive Neural Network)网络结构的模型

  9. transformer 中的 Self-Attention 机制能够完结学习到输入序列中每个方位的重要程度

  10. 在 Transformer 中,Encoder 和 Decoder 的区别在于:Encoder 包括多层 Self-Attention 和 Feed-Forward 层,而 Decoder 包括多层 Self-Attention、Encoder-Decoder Attention 和 Feed-Forward 层

更多优质内容请重视公号:汀丶人工智能;会供给一些相关的资源和优质文章,免费获取阅览。

大语言模型的预训练[1]:基本概念原理、神经网络的语言模型、Transformer模型原理详解、Bert模型原理介绍