神经网络算法 – 一文搞懂模型预训练Pre-training

Pre-training预训练

一、预训练的本质

AI 人工智能 = 数据 + 算法 + 算力
AI 人工智能的三要素
数据集:数据作为 AI 的三驾马车之一,在人工智能技术里是非常重要的。
数据集一般划分为三类:训练集、验证集、测试集。
  1. 训练集 (Training Set):用于训练模型,即调整模型的参数以最小化预测错误。
  2. 验证集 (Validation Set):用于在训练过程中调整超参数(如学习率、网络结构等),以及进行模型选择(如选择哪一轮迭代的模型作为最终模型)。
  3. 测试集 (Test Set):用于在模型训练完成后评估其性能,提供对模型泛化能力的无偏估计。
一个不恰当的比喻来说明3种数据集之间的关系:
  1. 训练集 (Training Set)学生在课堂上学习的知识。
  2. 验证集 (Validation Set):课后的练习题帮助学生巩固和纠正学到的知识。
  3. 测试集 (Test Set):期末考试检验学生的学习效果。
3种训练集的关系
模型训练的本质:通过不断训练、验证和调优,让模型达到最优的一个过程。
现有的神经网络在进行训练时,一般基于反向传播算法,先对网络中的参数进行随机初始化,再利用随机梯度下降等优化算法不断优化模型参数。
  1. 参数初始化:神经网络的参数(包括权重和偏置)在训练开始前会被随机初始化。
  2. 前向传播:在训练过程中,输入数据通过神经网络进行前向传播,计算出模型的输出。这个过程涉及将输入数据与每一层的权重和偏置进行线性组合,然后应用激活函数来引入非线性。
  3. 计算损失:在得到模型的输出后,会计算输出与真实标签之间的损失(或误差)。损失函数的选择取决于具体的任务,例如均方误差损失函数常用于回归任务,而交叉熵损失函数常用于分类任务。
  4. 反向传播:接下来,利用反向传播算法来计算损失函数相对于模型参数的梯度。这个过程涉及从输出层开始,逐层计算损失对参数的偏导数,并将这些梯度信息从输出层传播回输入层。
  5. 参数更新:得到梯度后,使用优化算法(如随机梯度下降SGD、Adam、RMSprop等)来更新模型的参数。优化算法根据计算出的梯度来调整模型参数,以最小化损失函数。
  6. 迭代训练:上述步骤(从前向传播到参数更新)会反复进行,直到模型在验证集上的性能达到满意的水平,或者达到预设的训练轮数(epochs)。
模型训练过程
为什么需要预训练?
预训练的核心思想是让模型学习到数据中的通用特征和结构,从而提高其泛化能力和适应性。主要是为了解决以下问题:
  1. 数据稀缺性:在现实世界的应用中,收集并标注大量数据往往是一项既耗时又昂贵的任务。特别是在某些专业领域,如医学图像识别或特定领域的文本分类,标记数据的获取更是困难重重。预训练技术使得模型能够从未标记的大规模数据中学习通用特征,从而减少对标记数据的依赖。这使得在有限的数据集上也能训练出性能良好的模型。
  2. 先验知识问题:在深度学习中,模型通常从随机初始化的参数开始学习。然而,对于许多任务来说,具备一些基本的先验知识或常识会更有帮助。预训练模型通过在大规模数据集上进行训练,已经学习到了许多有用的先验知识,如语言的语法规则、视觉的底层特征等。这些先验知识为模型在新任务上的学习提供了有力的支撑。
  3. 迁移学习问题:迁移学习是指将一个任务上学到的知识迁移到另一个相关任务上的过程。预训练模型在大量数据上学习了通用特征,这些特征在许多任务之间都是共享的。因此,通过微调预训练模型,可以将其快速适应到新的任务上,从而实现知识的迁移。这种迁移学习方式不仅提高了模型在新任务上的性能,还大大缩短了训练时间。
模型预训练的本质:利用大量无标签或弱标签的数据,通过某种算法模型进行训练,得到一个初步具备通用知识或能力的模型。
模型预训练
二、预训练的原理

预训练的技术:预训练是语言模型学习的初始阶段。在预训练期间,模型会接触大量未标记的文本数据,例如书籍、文章和网站。目标是捕获文本语料库中存在的底层模式、结构和语义知识。

  1. 无监督学习:预训练通常是一个无监督学习过程,模型在没有明确指导或标签的情况下从未标记的文本数据中学习。
  2. 屏蔽语言建模:模型经过训练可以预测句子中缺失或屏蔽的单词、学习上下文关系并捕获语言模式。
  3. Transformer 架构:预训练通常采用基于 Transformer 的架构,该架构擅长捕获远程依赖关系和上下文信息。

预训练的原理:在Transformer作为特征抽取器基础上,选定合适的模型结构,通过某种自监督学习任务,逼迫Transformer从大量无标注的自由文本中学习语言知识。这些语言知识以模型参数的方式,存储在Transformer结构中,以供下游任务使用。

预训练的原理

预训练的架构:大语言模型LLM预训练采用了 Transformer 模型的解码器部分,由于没有编码器部分,大语言模型去掉了中间的与编码器交互的多头交叉注意力层。

如下图所示,左边是 Transformer 模型的解码器,右边是大语言模型的预训练架构。

预训练的架构
三、预训练的应用

GPT预训练:GPT模型预训练过程使用了大量的无监督数据,这些数据可以来自互联网上的各种文本资源,如网页、书籍、新闻等。
预训练过程中使用了Transformer架构,它能够处理长序列数据并学习到语言的上下文信息。通过在这些数据上进行训练,GPT能够学习到语言的内在规律和结构,从而生成高质量的文本。
GPT预训练
预训练的方式:主要是基于自回归预测,即模型会根据当前的上下文信息预测下一个token。这种方式使得GPT能够生成连贯的文本序列,并且在生成过程中逐步构建完整的句子或段落。
GPT预训练的方式
GPT预训练的目标是最大化预测下一个词的概率,从而学习到词与词之间的依赖关系。
预测下一个词
详细了解GPT:神经网络算法 – 一文搞懂GPT(Generative Pre-trained Transformer)
BERT预训练:BERT模型会利用大规模的文本数据进行预训练,这些文本数据也来自互联网上的各种资源,如新闻、维基百科等。预训练过程中同样使用了Transformer架构。
BERT预训练
预训练的方式:在预训练阶段,没有使用传统的从左到右或从右到左的语言模型来预训练BERT。而是采用了两个无监督任务来学习语言的内在规律:掩码语言模型(MLM)和下一步预测(NSP)。
BERT预训练的方式
掩码语言模型(MLM):MLM任务要求模型预测输入序列中被随机遮盖的词元,这有助于模型学习词汇的上下文表示。
掩码语言模型(MLM)
下一句预测(NSP):NSP任务则要求模型判断两个句子是否连续,这有助于模型理解句子间的关系,并学习句子级别的表示。
下一句预测(NSP)
来源:架构师带你玩转AI
滚动至顶部