從做菜的角度來(lái)更形象的理解什么是大模型的參數(shù),訓(xùn)練原理與過(guò)程,以及為什么要訓(xùn)練? 原創(chuàng)
在前面的??大模型參數(shù)的文章??中講了什么是大模型的參數(shù),以及大模型為什么要訓(xùn)練;
不過(guò)那個(gè)講的比較抽象,這里就用一個(gè)更形象的例子來(lái)解釋一下大模型的參數(shù)到底是什么,以及訓(xùn)練的原理。
01、大模型和廚師
從我們使用者的角度來(lái)說(shuō),大模型就是一個(gè)黑盒,它需要輸入,然后給出一個(gè)輸出。
如下圖就是大模型的黑盒模型:
而從我們使用上來(lái)看,基本上就是一個(gè)聊天框,然后我們輸入文字/圖片/視頻等,然后大模型給我們一個(gè)輸出。
而這種模式和我們?nèi)ワ埖瓿燥堃粯?,我們到飯店之后點(diǎn)菜,然后廚師就會(huì)把我們的菜做好,而廚房對(duì)我們來(lái)說(shuō)也是一個(gè)黑盒。
大模型那么多參數(shù)是干什么的呢?廚師又是怎么做菜的呢?
如果把沒(méi)有訓(xùn)練過(guò)的大模型比作一個(gè)新東方烹飪學(xué)校的學(xué)生;那么剛開(kāi)始這個(gè)學(xué)生并不會(huì)做菜,如果你讓他做菜,那么他只能根據(jù)自己的感覺(jué)亂七八糟的一通操作。
這個(gè)就是初始化的大模型,它雖然可以輸出結(jié)果,但它輸出的結(jié)果亂七八糟。
所以學(xué)生需要去學(xué)習(xí)怎么做菜;不論會(huì)不會(huì)做飯的人應(yīng)該都知道,炒菜需要控制火候與調(diào)料,不同的菜需要不同的火候和調(diào)料。
火候有大火小火中火,調(diào)料有必須的蔥姜蒜,還有鹽,辣椒,雞精,麻辣蝦,油等等。
做菜的時(shí)候,不同的菜需要不同的搭配,而且需要不同的火候和調(diào)料;比如,西紅柿炒蛋需要有西紅柿和雞蛋,然后調(diào)料需要有鹽,也可以放蔥姜蒜;
而如果做辣椒炒肉,那么就需要有肉和辣椒,然后口味重的人就可以多放一點(diǎn)辣椒和鹽,口味清淡的人就可以少放一點(diǎn)。
對(duì)比到大模型也是如此,廚師做菜的材料,調(diào)料與火候是廚師的參數(shù);而大模型也有自己的參數(shù),比如權(quán)重,偏置,卷機(jī)網(wǎng)絡(luò)的卷積核,嵌入矩陣,損失函數(shù)參數(shù),激活值,參數(shù)梯度,訓(xùn)練輪次等。
從技術(shù)等角度來(lái)說(shuō),大模型的參數(shù)就是大模型的一些變量,之所以是變量是因?yàn)檫@些參數(shù)的值并不是固定的,而是可以變化的;
就像做菜一樣,鹽可以多放一點(diǎn),也可以少放一點(diǎn);并不是每次必須放多少鹽。
02、做菜與大模型的訓(xùn)練
專業(yè)的廚師學(xué)習(xí)做菜時(shí),會(huì)測(cè)試不同的菜品放不同含量的調(diào)料會(huì)有什么樣的效果,比如放一克鹽和放十克鹽,放蔥姜蒜和不放蔥姜蒜在口味上的區(qū)別。
然后經(jīng)過(guò)很多次的測(cè)試之后,廚師就知道做什么菜需要放多少鹽,放多少辣椒,然后口味會(huì)是什么樣。
而大模型的訓(xùn)練也是如此,大模型是基于神經(jīng)網(wǎng)絡(luò)的架構(gòu)而開(kāi)發(fā)的;而一個(gè)大模型有很多神經(jīng)網(wǎng)絡(luò)層,每一層又有很多的神經(jīng)元節(jié)點(diǎn);
那么,不同的神經(jīng)元節(jié)點(diǎn)的權(quán)重和偏置,會(huì)對(duì)其它神經(jīng)元以及神經(jīng)層會(huì)產(chǎn)生什么樣的影響及效果?
不同神經(jīng)網(wǎng)絡(luò)的架構(gòu)的參數(shù)又會(huì)有什么樣的影響?比如卷積神經(jīng)網(wǎng)絡(luò)的卷積層的個(gè)數(shù),多一層和少一層的區(qū)別?如果是循環(huán)神經(jīng)網(wǎng)絡(luò)呢?
而這些問(wèn)題都是需要經(jīng)過(guò)大量的數(shù)據(jù)訓(xùn)練,然后給大模型找到一個(gè)最優(yōu)的參數(shù)值。
而具體怎么訓(xùn)練呢?
比如第一次訓(xùn)練,所有神經(jīng)元的權(quán)重都是1,然后生成了一個(gè)結(jié)果;這就類似于第一次做菜,所有的調(diào)料都放1克,然后做出之后嘗嘗好不好吃。
而因?yàn)樯窠?jīng)網(wǎng)絡(luò)是有層的,這樣數(shù)據(jù)在一層一層神經(jīng)網(wǎng)絡(luò)之間的傳遞就叫做正向傳播。
當(dāng)用1克調(diào)料把“菜”做出來(lái)之后,嘗了一下發(fā)現(xiàn)鹽放少了;這時(shí)第二次做菜的時(shí)候,就可以把鹽多放一點(diǎn),比如放四克或五克。
而大模型畢竟不是人,所以需要有一個(gè)方法來(lái)測(cè)試它做的“菜”是否合格,而這個(gè)東西就是損失差,損失差越大,說(shuō)明輸出效果越差,“菜”做的越差。
而具體的損失差怎么計(jì)算,不同的大模型和架構(gòu)有不同的方法,比如交叉熵?fù)p失。
而這時(shí),就需要告訴大模型做的“菜”不好吃,這個(gè)告訴的過(guò)程就叫做反向傳播。
廚師知道菜做的不好吃的時(shí)候,就可以直接調(diào)整下次放調(diào)料的數(shù)量和種類;而大模型也有這種類似的功能,這個(gè)功能就是優(yōu)化器,優(yōu)化器的功能就是去調(diào)整大模型的參數(shù),下次把“鹽”放多一點(diǎn),“辣椒”放少一點(diǎn)。
最小二乘法損失函數(shù)
而這個(gè)鹽和辣椒就是大模型中的權(quán)重,偏置,損失函數(shù)參數(shù)等參數(shù)。
而訓(xùn)練次數(shù)就是廚師鍛煉做菜的次數(shù),可能是十次,也可能是一百次,一千次。
所以說(shuō),廚師訓(xùn)練是不斷的調(diào)整其調(diào)料的數(shù)量和含量;大模型的訓(xùn)練本質(zhì)上也是在不斷的去調(diào)整它的參數(shù)。
等廚師全部學(xué)會(huì)之后,還會(huì)找一個(gè)專業(yè)的老師去評(píng)價(jià)他做的菜;而在大模型里面,這個(gè)就是大模型的評(píng)估函數(shù),去測(cè)試其效果。
當(dāng)然,大模型并不是參數(shù)和訓(xùn)練次數(shù)越多越好,最重要的是合適。
這就是大模型的參數(shù)以及訓(xùn)練的過(guò)程及原理。
本文轉(zhuǎn)載自公眾號(hào)AI探索時(shí)代 作者:DFires
原文鏈接:??https://mp.weixin.qq.com/s/oZEmLJBoCaHlkyA-6j1ZTw??
