训练原理与环节 从做菜的角度来更笼统的了解什么是大模型的参数 以及为什么要训练

在前面的​ ​大模型参数的文章​ ​中讲了什么是大模型的参数,以及大模型为什么要训练;

不过那个讲的比拟笼统,这里就用一个更笼统的例子来解释一下大模型的参数究竟是什么,以及训练的原理。

01、大模型和厨师

从咱们经常使用者的角度来说,大模型就是一个黑盒,它须要输入,而后给出一个输入。

如下图就是大模型的黑盒模型:

而从咱们经常使用过去看,基本上就是一个聊天框,而后咱们输入文字/图片/视频等,而后大模型给咱们一个输入。

而这种形式和咱们去饭店吃饭一样,咱们到饭店之后点菜,而后厨师就会把咱们的菜做好,而厨房对咱们来说也是一个黑盒。

大模型那么多参数是干什么的呢?厨师又是怎样做菜的呢?

假设把没有训练过的大模型比作一个新西方烹饪学校的在校生;那么刚开局这个在校生并不会做菜,假设你让他做菜,那么他只能依据自己的觉得乌七八糟的一通操作。

这个就是初始化的大模型,它只管可以输入结果,但它输入的结果乌七八糟。

所以在校生须要去学习怎样做菜;不论会不会做饭的人应该都知道,炒菜须要控制火候与调料,不同的菜须要不同的火候和调料。

火候有大火小火中火,调料有必定的葱姜蒜,还有盐,辣椒,鸡精,麻辣虾,油等等。

做菜的时刻,不同的菜须要不同的搭配,而且须要不同的火候和调料;比如,西红柿炒蛋须要有西红柿和鸡蛋,而后调料须要有盐,也可以放葱姜蒜;

而假设做辣椒炒肉,那么就须要有肉和辣椒,而后口味重的人就可以多放一点辣椒和盐,口味油腻的人就可以少放一点。

对比到大模型也是如此,厨师做菜的资料,调料与火候是厨师的参数;而大模型也有自己的参数,比如权重,偏置,卷机网络的卷积核,嵌入矩阵,损失函数参数,激活值,参数梯度,训练轮次等。

从技术等角度来说,大模型的参数就是大模型的一些变量,之所以是变量是由于这些参数的值并不是固定的,而是可以变动的;

就像做菜一样,盐可以多放一点,也可以少放一点;并不是每次必定放多少盐。

02、做菜与大模型的训练

专业的厨师学习做菜时,会测试不同的菜品放不同含量的调料会有什么样的成果,比如放一克盐和放十克盐,放葱姜蒜和不放葱姜蒜在口味上的区别。

而后通过很屡次的测试之后,厨师就知道做什么菜须要放多少盐,放多少辣椒,而后口味会是什么样。

而大模型的训练也是如此,大模型是基于神经网络的架构而开发的;而一个大模型有很多神经网络层,每一层又有很多的神经元节点;

那么,不同的神经元节点的权重和偏置,会对其它神经元以及神经层会发生什么样的影响及成果?

不同神经网络的架构的参数又会有什么样的影响?比如卷积神经网络的卷积层的个数,多一层和少一层的区别?假设是循环神经网络呢?

而这些疑问都是须要通过少量的数据训练,而后给大模型找到一个最优的参数值。

而详细怎样训练呢?

比如第一次性训练,一切神经元的权重都是1,而后生成了一个结果;这就相似于第一次性做菜,一切的调料都放1克,而后做出之后尝尝好不好吃。

而由于神经网络是有层的,这样数据在一层一层神经网络之间的传递就叫做正向流传。

当用1克调料把“菜”做进去之后,尝了一下发现盐放少了;这时第二次做菜的时刻,就可以把盐多放一点,比如放四克或五克。

而大模型毕竟不是人,所以须要有一个方法来测试它做的“菜”能否合格,而这个物品就是损失差,损失差越大,说明输入成果越差,“菜”做的越差。

而详细的损失差怎样计算,不同的大模型和架构有不同的方法,比如交叉熵损失。

而这时,就须要通知大模型做的“菜”不好吃,这个通知的环节就叫做反向流传。

厨师知道菜做的不好吃的时刻,就可以间接调整下次放调料的数量和种类;而大模型也有这种相似的配置,这个配置就是提升器,提升器的配置就是去调整大模型的参数,下次把“盐”放多一点,“辣椒”放少一点。

最小二乘法损失函数

而这个盐和辣椒就是大模型中的权重,偏置,损失函数参数等参数。

而训练次数就是厨师锻炼做菜的次数,或者是十次,也或者是一百次,一千次。

所以说,厨师训练是始终的调整其调料的数量和含量;大模型的训练实质上也是在始终的去调整它的参数。

等厨师所有学会之后,还会找一个专业的教员去评价他做的菜;而在大模型外面,这个就是大模型的评价函数,去测试其成果。

当然,大模型并不是参数和训练次数越多越好,最关键的是适合。

这就是大模型的参数以及训练的环节及原理。

原文链接:​ ​​ ​

您可能还会对下面的文章感兴趣: