文章讲解了大模型训练中的反向更新过程,包括梯度、梯度下降和学习率等核心概念。反向更新类似"做题-对答案-调整思路"的过程,通过计算损失值和梯度,不断调整模型参数,使预测结果逐渐逼近预期结果。学习率控制参数更新步长,帮助模型收敛到最优解,是模型能够"学习"的关键机制。

前排提示,文末有大模型AGI-CSDN独家资料包哦!

反向更新在干啥?

其实就是我们上学一直做的事情一样,做题–对答案–调整做题思路–再做一次–再对答案,一直反复这个过程,知道把题做对了。

我们学习到了什么?

我们其实学习的是解题思路,大模型也是这样,就像 y = Kx + b,我们已知的是y 和 x,通过反复调整权重 K 和 偏置 b ,最终拟合到了最完美的权重和偏置,大模型最终得到了解题思路。

这个反复迭代的过程分为两个部分:正向传播和反向传播。

正向传播(推理过程):

按自己的思路做题,以y = Kx + b 为例,我们第一轮先带入随机数值(k=2, b =1),再带入问题 x(训练数据问题)和 答案 y(训练数据答案),再通过损失函数(一种计算预测值和样本值差异的公式),得到了当前样本的偏差值。

反向传播(更新过程):

我知道了输入样本X得到的Y 和 模型里存储的参数 Y的偏差,按我们的思路,下一步就是要知道错在哪里,我们需要调整模型权重 K 和 偏置 b,调整的过程就是反向传播,调整的方式叫梯度下降。

反向传播到底更新了啥?

模型里藏着无数个“神经元”(权重参数和偏置),比如:

  • 注意力机制

    这里涉及三个大家熟知的矩阵,Wq Wk Wv,

  • 前馈网络

    主要用于线性变化,捕捉更多语义信息,

  • 损失函数

    损失函数用于计算损失值,也称为loss,用于描述预测结果和预期结果的差异,损失值越小,说明模型的预测结果越准确。损失函数的选取取决于具体的任务,比如对于分类任务,常用的损失函数是交叉熵损失;对于回归任务,常用的损失函数是均方误差损失;对于排序任务,常用的损失函数是列对数损失等。

    反向更新过程,利用梯度下降算法是迭代的执行反向传播过程,去改变模型参数的权重,让这个损失值不断变小,让预测结果不断逼近预期结果。

  • **梯度**梯度(Gradient),梯度是一个向量,既有数值,又有方向,是多变量函数在某一点的偏导数,所描述的是函数沿着参数的哪个方向变化速率最快

    梯度的数值,反映了函数变化速率的剧烈程度:

    绝对值越大,变化的越剧烈;绝对值越小,变化的越平稳;绝对值为零,说明不再变化。

    梯度的方向,反映了函数值的增减性:

    梯度为正,则函数值在该点处于递增状态;梯度为负,则函数值在该点处于递减状态。

    梯度的数学概念就是求导数,求解梯度就是求解导数。当然,更精确一点,对于一元函数来说,梯度就是导数,对于多元函数来说,梯度则是偏导数,反向更新的过程就是利用链式法则,逆向的对模型的权重和偏置求偏导数:

  • 梯度下降

    梯度下降(Gradient Descent)是机器学习中求解最小损失值常用的一种算法,其核心是尽可能保证始终沿着负梯度的方向前进。

其基本原理是:

1)随机选择一个初始点,计算该点的梯度。

  • 2)沿着负梯度方向,也就是沿着局部最“陡峭”的方向,移动一小步,到达新的点。

  • 3)计算新点的梯度,并沿着它的负梯度方向再移动一小步。

  • 4)重复这个过程,一步一步的移动,直到梯度为零,这意味着损失函数不再随着参数发生变化,参数也就不用再调整了。

  • 注:我们在微调或者是在训练过程中,无需过分要求梯度为0,过于追求‌梯度为零‌可能会导致模型‌过度拟合‌,即模型在‌训练数据上表现很好‌,但在‌测试数据上‌的‌泛化能力‌却较差。不能忘记模型训练的根本目的,并不是追求梯度为零,而是应该在‌保证模型泛化能力符合期望的前提下,去寻找‌损失函数‌的‌近似最小值。

  • 损失值计算

    损失值的计算,就是用预测结果矩阵“减去”目标结果矩阵。损失值的本质是用来衡量模型的性能和准确度。如果预测结果和目标结果相同,损失值就是 0,模型性能最好,预测结果非常准确,没有性能和准确度的损失。而训练的目标,就是要让损失值不断减少,逐渐趋近于 0。

    **计算损失值的这个减法并非简单的对两个矩阵进行逐位相减,而是采用了一种叫做“交叉熵损失(Cross-Entropy LOSS)”的算法。**交叉熵损失算法是‌机器学习‌中常用的一种‌损失函数‌,其公式为:

    yi 代表‌目标结果的概率‌值, ��

    pi 代表‌预测结果的概率‌值。

    当‌预测结果与目标结果越接近时,交叉熵损失函数的值‌就越小‌;反之,预测偏差越大,交叉熵损失函数值就越大‌**。**在‌机器学习模型‌中,交叉熵损失函数常与‌梯度下降‌等‌优化算法‌一起使用,通过‌反向传播‌和‌参数更新‌,使‌模型能够更好地进行预测。

  • 模型权重和偏置的更新

    经过反向传播的过程,Transformer 每一层都计算出了自己的梯度,也就是有了参数调整的目标和方向,接下来就是具体的调整过程了,也就是如何实现梯度下降,从而减少模型的损失值。要说明的是,参数权重调整是在梯度的反向传播过程中同步进行的,而不是完成所有层的梯度计算后,再进行每一层参数的调整。分成两个章节,主要是这样更便于从独立知识点的角度来说明。

    梯度下降公式:

    这里引入了一个名词叫做“学习率”的概念。

    **学习率是机器学习中一个非常重要的超参数,用来控制模型参数更新步长的大小。**合适的学习率不仅能够帮助模型参数尽快收敛到最优解,还能避免梯度消失或梯度爆炸等问题。

    目前提出了多种学习率的调整策略,比如固定学习率、动态学习率、指数衰减学习率等,这些策略共同的策略思想都是在不同的训练阶段,采用不同的学习率,来让模型参数收敛的速度和性能达到平衡。

    学习率通常是很小的数字,比如 0.00001。常用的学习率调整方式是 Adam(Adaptive Moment Estimation,自适应学矩估计算法)的算法,属于动态学习率的一种,它会对梯度进行方差和均值计算后形成新的梯度矩阵。

读者福利:倘若大家对大模型感兴趣,那么这套大模型学习资料一定对你有用。

针对0基础小白:

如果你是零基础小白,快速入门大模型是可行的。
大模型学习流程较短,学习内容全面,需要理论与实践结合
学习计划和方向能根据资料进行归纳总结

包括:大模型学习线路汇总、学习阶段,大模型实战案例,大模型学习视频,人工智能、机器学习、大模型书籍PDF。带你从零基础系统性的学好大模型!

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

请添加图片描述

👉AI大模型学习路线汇总👈

大模型学习路线图,整体分为7个大的阶段:(全套教程文末领取哈)

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

👉大模型实战案例👈

光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉大模型视频和PDF合集👈

这里我们能提供零基础学习书籍和视频。作为最快捷也是最有效的方式之一,跟着老师的思路,由浅入深,从理论到实操,其实大模型并不难

在这里插入图片描述

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

👉获取方式:

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐