【六一禮物?】人工神經(jīng)網(wǎng)絡(luò)模型只能往更大、更深卷?不,我要極簡主義小模型
今天六一,小朋友的節(jié)日。所以我們淺談一個(gè)小模型。

1.前沿——模型參數(shù)變化簡史
ChatGPT出現(xiàn)后,大模型火了起來,畢竟GPT-3可以認(rèn)為就是一個(gè)暴力美學(xué)的產(chǎn)物,1750億的參數(shù)在當(dāng)時(shí)可以說是對(duì)其他很多模型造成了降維打擊。
然后更大的模型也一個(gè)個(gè)冒了出來,和GPT-3直接抗衡的1750億,非要多一點(diǎn)的1760億,然后谷歌搞出PaLM這個(gè)5400的大模型。
在往上就不太好卷了,但谷歌祭出了一個(gè)老方法MoE,硬是讓模型的參數(shù)能夠突破一萬億大關(guān),現(xiàn)在我所知道的最大的模型是一萬八千億參數(shù)。當(dāng)然,大量參數(shù)不是說加就加的,實(shí)際上MoE本身就是稀疏的,一些為了卷參數(shù)量甚至做到極端稀疏,64個(gè)專家就選一個(gè),等價(jià)其實(shí)就是模型參數(shù)/64,其實(shí)也不是特別大。當(dāng)然還有微軟的Deepspeed MoE,又要把MoE價(jià)值榨干。當(dāng)然,除此之外的盤古-Σ模型,由于是改進(jìn)了MoE(可以即插即用“專家”了),我認(rèn)為理論上是可以突破兩萬億參數(shù)的,不過就太奢侈了。
GPT-4的參數(shù)量和模型架構(gòu)是未知的,但我們有理由相信它比GPT-3應(yīng)該是大一些的,MoE有沒有用也不好說,但我個(gè)人覺得不會(huì)比一萬八千億參數(shù)的那個(gè)模型更大,畢竟還是有視覺部分的模型。(以上都是對(duì)比的純粹語言模型參數(shù)量的部分,視覺大模型因?yàn)橐恍┰蛲鶗?huì)小很多)
當(dāng)然,也不是所有研究都在卷模型參數(shù),特別是現(xiàn)在模型參數(shù)已經(jīng)快卷不動(dòng)的時(shí)代,很多人開始卷數(shù)據(jù)集了,包括數(shù)據(jù)量、數(shù)據(jù)質(zhì)量等等。PaLM 2就是這樣的模型,參數(shù)量比PaLM小很多,但是數(shù)據(jù)量上去了。

2. 極簡主義淺模型
然而,華為的一篇論文直接回歸極簡主義:

OK,這篇論文提出了非常簡單但是實(shí)驗(yàn)驗(yàn)證很有效的網(wǎng)絡(luò):VanillaNet。整體架構(gòu):

沒錯(cuò),其中一個(gè)模型就這么6層的卷積神經(jīng)網(wǎng)絡(luò)(CNN),最大的模型也就13層(最小的好像是5層,但是不典型,可能是做對(duì)比用的)。連Transformer都沒有用,了解過CNN的朋友應(yīng)該都能看懂。
之所以最少設(shè)計(jì)六層是因?yàn)檫@是現(xiàn)在主流認(rèn)為的CNN需要有六個(gè)步驟(輸入層+4個(gè)處理層+輸出層)
大當(dāng)然有大的好處,但是也有大的壞處。一個(gè)很經(jīng)典的問題就是梯度消失。我們更新網(wǎng)絡(luò)參數(shù)是從后往前走的,之前很多激活函數(shù)的導(dǎo)數(shù)都是小于1的,鏈?zhǔn)椒▌t一出來就會(huì)導(dǎo)致一些梯度越來越小,前面幾層的參數(shù)就更新不到了。
雖然ReLu函數(shù)的出現(xiàn)一定程度上解決了這個(gè)問題,但ReLu作為一個(gè)非線性函數(shù)仍然存在很多問題,更深的模型往往還有跳層等操作,RNN還有LSTM等一大堆東西來解決梯度消失問題。
而模型比較淺的話就不需要這么復(fù)雜的操作,也更加靈活。

3.怎么保證性能
為了保證性能,論文主要是在訓(xùn)練上做了些處理,包括深度訓(xùn)練和基于級(jí)數(shù)啟發(fā)的激活函數(shù)。這兩種方法還挺復(fù)雜的,這里不展開,其實(shí)簡單來說思想基本上是相同的——疊加。深度訓(xùn)練可以認(rèn)為是同時(shí)訓(xùn)練兩個(gè)卷積層,然后慢慢合并,基于級(jí)數(shù)啟發(fā)的激活函數(shù)就是把很多激活函數(shù)“疊加”在一起(這里說的并不是很嚴(yán)謹(jǐn))
當(dāng)然,不談這些,其實(shí)我們還可以關(guān)注另一件事:

這張圖很大,但是我們只需要看兩列就可以了。黃框代表的列是模型參數(shù)量,紅框代表的事模型深度。哎,是不是發(fā)現(xiàn)了,雖然VanillaNet確實(shí)很淺,但這參數(shù)量也不少啊,甚至可以說很多了。
沒錯(cuò),VanillaNet是一個(gè)淺但是特別寬的模型。從模型架構(gòu)也能看出來,卷積核數(shù)量是隨層數(shù)指數(shù)暴增的,加上“疊加”的訓(xùn)練方法,就造出了這個(gè)超級(jí)寬的模型。(在著名模型BERT的論文中有個(gè)結(jié)論:相似參數(shù)量的情況下,深而淺的模型性能往往比淺而寬的模型強(qiáng)。但是固定死深度的話加寬一般也會(huì)有效)

4.還能更淺?
哎,是不是覺得VanillaNet的秘密就結(jié)束了,然而,竟然有人在github上按照VanillaNet的思路發(fā)布了一個(gè)模型ReduceNet,壓縮到只剩一層。
那個(gè)項(xiàng)目沒有發(fā)布論文,只有一篇文章,這里也不展開了。
這其實(shí)告訴我們,小模型還沒完呢!
前不久看有人說能不能仿照櫛水母的神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)人工神經(jīng)網(wǎng)絡(luò)(因?yàn)闄彼傅纳窠?jīng)網(wǎng)絡(luò)可能是單獨(dú)演化出來的,不是突觸連接型),其實(shí)參照各種小生物做的神經(jīng)網(wǎng)絡(luò)有不少的、也有用光做神經(jīng)網(wǎng)絡(luò)的,不過目前研究都還很初步,畢竟現(xiàn)在這個(gè)神經(jīng)網(wǎng)絡(luò)發(fā)展架構(gòu)也是以性能優(yōu)先而選拔出來的,只能說現(xiàn)在要突破壟斷還沒那么簡單。
最后祝大家六一兒童節(jié)快樂吧!我去加班了(