“大模型的本质是机器学习,机器学习的本质就是一种数学模型。”
我们经常能听到这样的说法,某某大模型有多少参数,某某大模型参数量又提升了,这里所说的参数到底是什么?
我们知道大模型是训练出来的,那么哪些训练数据都跑哪去了,大模型训练的过程中都干了什么? 为什么大模型需要训练?
01、大模型的参数到底是什么?
我们知道大模型的发展从刚开始的几百个参数,到现在的上千亿个参数,比如GPT-3就有一千七百多亿个参数。
而随着参数数量的提升,大模型的功能也变得越来越强大,特别是现在GPT-4o的出现,大模型已经可以和人类进行正常的语音和视频交流。
但很多人都不知道这个参数到底是个什么东西?
首先,我们要明白一件事,不要把训练数据当作参数;训练数据是训练数据,参数是参数。
大模型是基于机器学习模型,通过大量数据训练出来的模型,所以叫做大模型。
而现在主流的大模型都是基于神经网络模型构建的模型,不论是基于卷积神经网络(CNN),还是循环神经网络(RNN),亦或者是Transformer神经网络等。
但神经网络模型只是机器学习模型中的一个分类,其它还包括支持向量机,决策树,回归模型等。
而这里说的大模型的参数,是基于神经网络模型而构建的参数。我们知道,神经网络模型有很多层,每一层都有很多个神经元,而每一层又需要进行连接;
这就是大模型参数的由来,比如权重与偏置,就是每个神经元都有的参数。
一般情况下,大模型的参数是在网络架构时就设定好的,参数数量一般不会发生变化;但也有例外情况,比如动态神经网络就会对参数数量进行动态调整。
02、大模型训练的具体过程?
我们都知道,训练大模型需要准备大量的数据,然后对模型进行训练。那么这个训练的过程到底是干了什么,哪些训练数据的作用是什么?
其实说白了,大模型训练的本质就是调整参数。
在前面我们说了,大模型有很多个参数,现在的大模型基本上参数都是以亿为单位;当然,参数的数量根据大模型的架构而有所不同。
训练的过程其实就是把训练数据输入到大模型中,然后模型根据这些数据对参数进行调整的过程,以求达到一个最优解。
如果把神经网络看作一个黑盒,那么我们输入数据,经过神经网络这个黑盒处理之后,再输出我们的数据。
如下图所示,就是一个简单的神经网络模型图:
神经网络单层模型
类似于人体有无数个神经元组成,而从数学理论来说,更多的神经元与更复杂的神经网络架构,就能够进行更加复杂的数据处理。
所以,就有了多层的神经网络架构,如下图所示,神经网络由多个神经层组成。如GPT-3就有96层。
多层神经网络
这就是神经网络的模型架构。
训练开始时,需要把训练数据输入到模型中,具体的输入方式这里暂不讨论,我们只需要知道训练数据需要输入到神经网络中即可。
因为模型有多个神经层,所以训练数据从输入层进入大模型之后;需要在模型的多个神经层之间进行流转,而这个过程术语叫做正向传播。
数据从输入层,一层一层的传播到输出层,然后输出结果;但由于大模型刚开始就像一个小学生,所以它输出的结果往往不尽人意。
所以,为了解决这个问题,大模型的输出结果需要跟实际结果进行匹配,术语叫做计算损失差,损失差越大说明输出结果越差。
而有了损失差,说明当前的模型是有问题的;所以就需要对模型进行调整,这就是所谓的反向传播。
意思就是,模型把输出的结果再次输入到模型中,然后模型根据这个结果,使用某种算法对模型中的参数进行调整,比如不同神经元的权重等。
而调整参数的这个东西叫做优化器。
模型训练流程
然后,模型根据这个原理,使用训练数据一次一次的输入,然后一次一次的对参数进行调整。最后达到一个最优解,也就是训练好的大模型。
这也是为什么大模型要经过很多轮的训练,才能达到比较满意的效果。
当然,大模型的神经层并不是越多越好,训练数据也不是越多越好,有时候更多的参数和训练数据训练出来的结果,可能还没有少一点的效果好。
而这也有专门的评估函数对训练结果进行评估。
以上就是大模型训练的原理。
原文链接: