【花師小哲】當(dāng)代煉金術(shù)(神經(jīng)網(wǎng)絡(luò))前沿(22)——強(qiáng)化學(xué)習(xí)蒸餾到transformer
好幾天沒法專欄了,主要是最近確實(shí)沒有什么太讓人眼前一亮的論文。還是矮子里拔高個(gè)吧,先講這篇吧。主要是能順帶介紹一些東西。


0.這篇文章做了什么
簡單來說,這篇文章將一個(gè)強(qiáng)化學(xué)習(xí)策略網(wǎng)絡(luò)蒸餾成了一個(gè)transformer模型。
搞AI的人應(yīng)該比較好理解,不過還是要介紹一些基本名詞的。

1.強(qiáng)化學(xué)習(xí)RL
不知道大家有沒有有意無意中看過一些AI的好玩的文章,說在游戲中應(yīng)用強(qiáng)化學(xué)習(xí)出現(xiàn)了很多離譜的事情,例如在賽艇比賽中反復(fù)繞圈碰一個(gè)點(diǎn)來增加分?jǐn)?shù)而不考慮沖向重點(diǎn);在養(yǎng)成游戲中讓模擬生物生育后做煲仔飯(因?yàn)樵谀莻€(gè)游戲中生育不耗能量而進(jìn)食能獲得能量和分?jǐn)?shù))。其實(shí)背后都是強(qiáng)化學(xué)習(xí)。強(qiáng)化學(xué)習(xí)的最常見應(yīng)用就是在游戲中了,或者說,強(qiáng)化學(xué)習(xí)主要是來做決策的,其核心可以看做是一個(gè)策略網(wǎng)絡(luò)(注:一開始的強(qiáng)化學(xué)習(xí),做決策的并不是神經(jīng)網(wǎng)絡(luò),只不過目前大部分研究都用神經(jīng)網(wǎng)絡(luò)了)。
不過,強(qiáng)化學(xué)習(xí)真正地目的其實(shí)是從環(huán)境中學(xué)習(xí),或者來處理一些監(jiān)督學(xué)習(xí)搞不定的事情(非嚴(yán)謹(jǐn)說法,但應(yīng)該更好理解)。我們知道,神經(jīng)網(wǎng)絡(luò)需要一個(gè)損失函數(shù)來評(píng)估網(wǎng)絡(luò)的性能好壞,有了損失函數(shù),我們才有辦法去反向修改網(wǎng)絡(luò)權(quán)重。但是有時(shí)候我們沒法直接定義或者很難定義這么一個(gè)函數(shù),例如一幅畫到底畫的好不好看。這時(shí)候我們就需要另外某種東西來告訴我們一個(gè)數(shù)值,這個(gè)東西可以是另一個(gè)AI程序,可以是傳感器獲取的環(huán)境數(shù)值,也可以是人類的反饋。
沒錯(cuò),ChatGPT之所以那么強(qiáng)就是因?yàn)樗菑娜祟惙答佒羞M(jìn)行強(qiáng)化學(xué)習(xí)(即RLHF)的,所以它的語言能力和人類相似,讓我們和它對(duì)話感覺比其他很多產(chǎn)品更舒服。
雖然其實(shí)強(qiáng)化學(xué)習(xí)還有很多值得研究的話題,但確實(shí)在很多領(lǐng)域都展現(xiàn)出了其強(qiáng)大的能力,AlphaGO、ChatGPT,造成如此轟動(dòng)的AI都離不開強(qiáng)化學(xué)習(xí)。

2.離線強(qiáng)化學(xué)習(xí)
機(jī)器學(xué)習(xí)是分為離線(offline)和在線(online)的。在監(jiān)督學(xué)習(xí)中常見的是離線的,在線是一個(gè)攻克方向,再強(qiáng)化學(xué)習(xí)這里差不多是反過來的。
稍微解釋一下,離線是說我們的數(shù)據(jù)是一開始全部在本地的,我們可以任意訪問和處理這些數(shù)據(jù);而在線是說我們是要從別的地方一個(gè)個(gè)獲得數(shù)據(jù)的,通常在流媒體里,例如我要在監(jiān)控?cái)z像頭上裝人物檢測AI,數(shù)據(jù)只能是實(shí)時(shí)產(chǎn)生的而且你還要在足夠短的時(shí)間內(nèi)進(jìn)行分析。
而強(qiáng)化學(xué)習(xí)天生是要和環(huán)境打交道的,所以經(jīng)典的強(qiáng)化學(xué)習(xí)算法都是在線的?,F(xiàn)今離線強(qiáng)化學(xué)習(xí)是一個(gè)重要研究方向。
一般的離線算法其實(shí)就是在線訓(xùn)練好策略網(wǎng)絡(luò)后再把這個(gè)策略網(wǎng)絡(luò)換成一個(gè)不需要交互的新網(wǎng)絡(luò)(當(dāng)然也有別的做法),或者說,把一個(gè)需要與環(huán)境交互的策略網(wǎng)絡(luò)編程某種更通用的決策器。本文就是采取類似的做法的。

3.知識(shí)蒸餾
蒸餾也是AI近期研究比較火的一個(gè)領(lǐng)域,仍然是因?yàn)槟P鸵?guī)模增大的鍋。
模型越大,推理或預(yù)測的速度越慢;模型太大,也占用很多存儲(chǔ)空間。換句話說,有時(shí)候我們是完全用不到那么大的模型的。蒸餾即是說我們用現(xiàn)有的強(qiáng)大的大型神經(jīng)網(wǎng)絡(luò)去訓(xùn)練一個(gè)更小體量的神經(jīng)網(wǎng)絡(luò),或者說用教師網(wǎng)絡(luò)去訓(xùn)練一個(gè)學(xué)生網(wǎng)絡(luò)。學(xué)生的主要目的是從教師網(wǎng)絡(luò)中學(xué)到“經(jīng)驗(yàn)”或擬合某種結(jié)構(gòu)。
一般來說,其實(shí)是運(yùn)行教師網(wǎng)絡(luò)獲得輸入輸出對(duì)來訓(xùn)練學(xué)生網(wǎng)絡(luò)的,這樣做是完全不用擔(dān)心數(shù)據(jù)量不夠的問題的。
如果蒸餾方法選的好的話,小模型在一個(gè)特定領(lǐng)域的性能可能比大模型還要好。
當(dāng)然,不是說某種網(wǎng)絡(luò)只能蒸餾成一個(gè)小號(hào)的自己,教師網(wǎng)絡(luò)和學(xué)生網(wǎng)絡(luò)可以是完全不同結(jié)構(gòu)的網(wǎng)絡(luò)的。例如有人把神經(jīng)網(wǎng)絡(luò)蒸餾成一種類似于決策樹的結(jié)構(gòu)。
本篇論文也是做了這樣的蒸餾。

4.本篇論文的方法
經(jīng)過上面的說明這篇文章其實(shí)也就差不多了。
本篇論文其實(shí)是借鑒了語言模型里的ICL(上下文學(xué)習(xí))方法。語言模型可以根據(jù)上下文來給出不同的回答,這個(gè)過程是沒有梯度傳播的,或者說模型的參數(shù)本身是不會(huì)變的。

于是作者就將強(qiáng)化學(xué)習(xí)的策略網(wǎng)絡(luò)蒸餾成一個(gè)類似于語言模型的transformer網(wǎng)絡(luò),主要是根據(jù)歷史信息來做決策。既然是上下文學(xué)習(xí),說明這個(gè)策略已經(jīng)具有一定的通用性了。
總體來說,這個(gè)研究還是有點(diǎn)意思的。