大语言模型的预训练:神经网络的语言模型知识(二)

1. 基于神经网络的语言模型

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

它通过学习词的分布式表示来解决维度灾难,使得一个词能够使用一个低维向量(称之为 embedding)表示。从整体上看,上述模型属于比较简单而传统的神经网络模型,主要由输入层 - 隐藏层 - 输出层组成,经过前向传播和反向传播来进行训练。

1.1 词向量处理

基于神经网络的语言模型的输入层为词向量,词语转化为数字的最简单的形式就是 One-hot(独热编码),简单来说就是假设有一个大小为 V 的固定排序的词表,里边包含 V 个词,假设第二个词是 “电视”,那么用一个维度为 V 的特征向量表达就是 [0,1,0,0,⋯,0][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][0,1,0,0,⋯,0] 乘上面说的矩阵 C,将得到一个 m 维的向量,即词向量,下图为这个计算过程:

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

1.2 正向传播

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

其中θ=(b,d,W,U,H,C)θ=(b,d,W,U,H,C)θ=(b,d,W,U,H,C),是模型的所有参数,R 是正则化项。
反向传播是根据 loss 值更新参数的过程,这里不再赘述。

1.3 模型评价

神经网络语言模型 (NNLM) 通过构建神经网络的方式来探索和建模自然语言内在的依赖关系。优缺点如下:

  • 优点:

    1. 词向量是可以自定义维度的,维度并不会因为新扩展词而发生改变,词向量能够很好的根据特征距离度量词与词之间的相似性;
    2. 好的词向量能够提高模型泛化能力;
    3. 相比于 n-gram,通过词向量的降维,减小了参数空间,减少了计算量。
  • 缺点:

    1. 参数较多,模型训练时间长;
    2. 可解释性较差。
  1. 循环神经网络概述

对于我们已经学过的传统神经网络,它们能够实现分类以及标注任务,但传统神经网络处理具有前后遗存关系的数据时,效果就不是十分理想了。这时不仅需要依赖当前的输入,还需要结合前一时刻或后一时刻的输入作为参考。
循环神经网络的主要用途是处理和预测序列数据。循环神经网络最初就是为了刻画一个序列当前的输出与之前信息的关系。从网络结构上来看,循环神经网络会记忆之前的信息,并利用之前的信息影响后面节点的输出。也就是说,循环神经网络的隐藏层之间的节点是有连接的,隐藏层的输入不仅包含输入层的输出,还包括上一时刻隐藏层的输出。

2.1 一般循环神经网络

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

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

2.2 单向循环神经网络

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

对于单向循环神经网络的结构,你可以理解为网络的输入通过时间进行向后传播。当前隐藏层的输出 st 除了取决于当前的输入层的输入向量 xt 外,还受到上一时刻隐藏层的输出向量 st+1 的影响,因此,当前时刻隐藏层的输出信息包含了之前时刻的信息,表现出对之前信息记忆的能力。可以采用如下公式对单向循环神经网络进行表示:

其中 ototot 表示输出层的结果,g 为输出层的激活函数,V 为输出层的权值矩阵。ststst 表示隐藏层的结果,它由当前时刻的输入层输入 xtxtxt 以及上一时刻隐藏层输出 st−1st−1st−1 共同决定,U 表示输入层到隐藏层的权值矩阵,W 为上一时刻的值 st−1st−1st−1 到这一次输入的权值矩阵,f 为隐藏层的激活函数。循环神经网络的递归数学式如下所示:

2.3 基于循环神经网络的字符级语言模型

接下来,我们看一下如何使用循环神经网络来构建语言模型。 设小批量大小为 1,批量中的文本序列为 “machine”。为了简化后续部分的训练,我们考虑使用字符级语言模型(character-level language model), 将文本词元化为字符而不是单词。下图演示了如何通过基于字符级语言建模的循环神经网络,使用当前的和先前的字符预测下一个字符。

在训练过程中,对每个时间步的输出层的输出进行 softmax 操作,然后利用交叉熵损失计算模型输出和标签之间的误差。由于隐藏层中隐状态的循环计算上图中的第 3 个时间步的输出 O3 由文本序列 “m”,“a” 和“c”确定。由于训练数据中这个文本序列的下一个字符是 “h”,因此第 3 个时间步的损失将取决于下一个字符的概率分布,而下一个字符是基于特征序列“m”,“a”,“c” 和这个时间步的标签 “h” 生成的。

2.4 模型评价

RNN 的优点:

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

RNN 的缺点:

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

最后

学习AI大模型是一个系统的过程,需要从基础开始,逐步深入到更高级的技术。

这里给大家精心整理了一份全面的AI大模型学习资源,包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频,免费分享!

一、大模型全套的学习路线

L1级别:AI大模型时代的华丽登场
L2级别:AI大模型API应用开发工程
L3级别:大模型应用架构进阶实践
L4级别:大模型微调与私有化部署

在这里插入图片描述

达到L4级别也就意味着你具备了在大多数技术岗位上胜任的能力,想要达到顶尖水平,可能还需要更多的专业技能和实战经验。

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

在这里插入图片描述

三、大模型经典PDF书籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

在这里插入图片描述

四、AI大模型商业化落地方案

在这里插入图片描述

作为普通人在大模型时代,需要不断提升自己的技术和认知水平,同时还需要具备责任感和伦理意识,为人工智能的健康发展贡献力量。

有需要全套的AI大模型学习资源的小伙伴,可以微信扫描下方CSDN官方认证二维码,免费领取【保证100%免费

如有侵权,请联系删除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值