神经网络算法 - 一文搞懂模型预训练Pre-training
本文将从预训练的本质、预训练的原理、预训练的应用三个方面,带您一文搞懂模型预训练 Pre-training。
Pre-training预训练
AI 人工智能 = 数据 + 算法 + 算力
AI 人工智能的三要素
数据集: 数据作为 AI 的三驾马车之一,在人工智能技术里是非常重要的。
数据集一般划分为三类:训练集、验证集、测试集。
-
训练集 (Training Set): 用于训练模型,即调整模型的参数以最小化预测错误。
-
验证集 (Validation Set): 用于在训练过程中调整超参数(如学习率、网络结构等),以及进行模型选择(如选择哪一轮迭代的模型作为最终模型)。
-
测试集 (Test Set): 用于在模型训练完成后评估其性能,提供对模型泛化能力的无偏估计。
一个不恰当的比喻来说明3种数据集之间的关系:
-
训练集 (Training Set)**:**学生在课堂上学习的知识。
-
验证集 (Validation Set):课后的练习题帮助学生巩固和纠正学到的知识。
-
测试集 (Test Set):期末考试检验学生的学习效果。
3种训练集的关系
模型训练的本质: 通过不断训练、验证和调优,让模型达到最优的一个过程。
现有的神经网络在进行训练时,一般基于反向传播算法,先对网络中的参数进行随机初始化,再利用随机梯度下降等优化算法不断优化模型参数。
-
参数初始化:神经网络的参数(包括权重和偏置)在训练开始前会被随机初始化。
-
前向传播:在训练过程中,输入数据通过神经网络进行前向传播,计算出模型的输出。这个过程涉及将输入数据与每一层的权重和偏置进行线性组合,然后应用激活函数来引入非线性。
-
计算损失:在得到模型的输出后,会计算输出与真实标签之间的损失(或误差)。损失函数的选择取决于具体的任务,例如均方误差损失函数常用于回归任务,而交叉熵损失函数常用于分类任务。
-
反向传播:接下来,利用反向传播算法来计算损失函数相对于模型参数的梯度。这个过程涉及从输出层开始,逐层计算损失对参数的偏导数,并将这些梯度信息从输出层传播回输入层。
-
参数更新:得到梯度后,使用优化算法(如随机梯度下降SGD、Adam、RMSprop等)来更新模型的参数。优化算法根据计算出的梯度来调整模型参数,以最小化损失函数。
-
迭代训练:上述步骤(从前向传播到参数更新)会反复进行,直到模型在验证集上的性能达到满意的水平,或者达到预设的训练轮数(epochs)。
模型训练过程
为什么需要预训练?
预训练的核心思想是让模型学习到数据中的通用特征和结构,从而提高其泛化能力和适应性。主要是为了解决以下问题:
-
数据稀缺性:在现实世界的应用中,收集并标注大量数据往往是一项既耗时又昂贵的任务。 特别是在某些专业领域,如医学图像识别或特定领域的文本分类,标记数据的获取更是困难重重。预训练技术使得模型能够从未标记的大规模数据中学习通用特征,从而减少对标记数据的依赖。 这使得在有限的数据集上也能训练出性能良好的模型。
-
先验知识问题:在深度学习中,模型通常从随机初始化的参数开始学习。然而,对于许多任务来说,具备一些基本的先验知识或常识会更有帮助。预训练模型通过在大规模数据集上进行训练,已经学习到了许多有用的先验知识,如语言的语法规则、视觉的底层特征等。 这些先验知识为模型在新任务上的学习提供了有力的支撑。
-
迁移学习问题:迁移学习是指将一个任务上学到的知识迁移到另一个相关任务上的过程。预训练模型在大量数据上学习了通用特征,这些特征在许多任务之间都是共享的。 因此,通过微调预训练模型,可以将其快速适应到新的任务上,从而实现知识的迁移。这种迁移学习方式不仅提高了模型在新任务上的性能,还大大缩短了训练时间。
模型预训练的本质:利用大量无标签或弱标签的数据,通过某种算法模型进行训练,得到一个初步具备通用知识或能力的模型。
模型预训练
二、预训练的原理
预训练的技术: 预训练是语言模型学习的初始阶段。在预训练期间,模型会接触大量未标记的文本数据,例如书籍、文章和网站。目标是捕获文本语料库中存在的底层模式、结构和语义知识。
-
无监督学习: 预训练通常是一个无监督学习过程,模型在没有明确指导或标签的情况下从未标记的文本数据中学习。
-
屏蔽语言建模: 模型经过训练可以预测句子中缺失或屏蔽的单词、学习上下文关系并捕获语言模式。
-
Transformer 架构: 预训练通常采用基于 Transformer 的架构,该架构擅长捕获远程依赖关系和上下文信息。
预训练的原理: 在Transformer作为特征抽取器基础上,选定合适的模型结构,通过某种自监督学习任务,逼迫Transformer从大量无标注的自由文本中学习语言知识。这些语言知识以模型参数的方式,存储在Transformer结构中,以供下游任务使用。
预训练的原理
预训练的架构: 大语言模型LLM预训练采用了 Transformer 模型的解码器部分,由于没有编码器部分,大语言模型去掉了中间的与编码器交互的多头交叉注意力层。
如下图所示,左边是 Transformer 模型的解码器,右边是大语言模型的预训练架构。
预训练的架构
三、预训练的应用
GPT预训练:GPT模型预训练过程使用了大量的无监督数据,这些数据可以来自互联网上的各种文本资源,如网页、书籍、新闻等。
预训练过程中使用了Transformer架构,它能够处理长序列数据并学习到语言的上下文信息。 通过在这些数据上进行训练,GPT能够学习到语言的内在规律和结构,从而生成高质量的文本。
GPT预训练
预训练的方式: 主要是基于自回归预测,即模型会根据当前的上下文信息预测下一个token。这种方式使得GPT能够生成连贯的文本序列,并且在生成过程中逐步构建完整的句子或段落。
GPT预训练的方式
GPT预训练的目标是最大化预测下一个词的概率,从而学习到词与词之间的依赖关系。
预测下一个词
BERT预训练: BERT模型会利用大规模的文本数据进行预训练,这些文本数据也来自互联网上的各种资源,如新闻、维基百科等。预训练过程中同样使用了Transformer架构。*
BERT预训练
预训练的方式: 在预训练阶段,没有使用传统的从左到右或从右到左的语言模型来预训练BERT。而是采用了两个无监督任务来学习语言的内在规律:掩码语言模型(MLM)和下一步预测(NSP)。
BERT预训练的方式
掩码语言模型(MLM): MLM任务要求模型预测输入序列中被随机遮盖的词元,这有助于模型学习词汇的上下文表示。
掩码语言模型(MLM)
下一句预测(NSP): NSP任务则要求模型判断两个句子是否连续,这有助于模型理解句子间的关系,并学习句子级别的表示。
下一句预测(NSP)
如何学习AI大模型?
大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业
?”“谁的饭碗又将不保了?
”等问题热议不断。
不如成为「掌握AI工具的技术人
」,毕竟AI时代,谁先尝试,谁就能占得先机!
但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高
针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份 LLM大模型资料
分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程
等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓
👉[CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)]()👈
学习路线
第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集
👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓