金磊 夢晨 發(fā)自 凹非寺 量子位 | 公眾號(hào) QbitAI搞事情! AI“看”了一眼GitHub上人類都是怎么提交更新(commit)的,然后就模仿人類程序員修改代碼…… 最終,這個(gè)AI還成功“調(diào)教”出了個(gè)智能體機(jī)器人: 
沒開玩笑,這種細(xì)思極恐的事情,在OpenAI最新發(fā)布的一項(xiàng)研究中,就真真的發(fā)生了…… 
原本呢,研究人員要解決的是一個(gè)遺傳程序設(shè)計(jì)(GP)問題——讓一個(gè)智能體機(jī)器人學(xué)會(huì)移動(dòng)。 (GP是演化計(jì)算中的一個(gè)特殊領(lǐng)域,它主要針對自動(dòng)構(gòu)建程序去獨(dú)立解決問題。) 但OpenAI劍走偏鋒,把自家的大規(guī)模語言模型(LLM)放了進(jìn)來,結(jié)果就是一個(gè)大大的“萬萬沒想到”。 以前在智能體演進(jìn)的過程中,人類研究員是需要參與進(jìn)來做一些細(xì)節(jié)調(diào)整、確定演進(jìn)方向等工作,讓智能體往好的方向發(fā)展。 現(xiàn)在好了,這些活兒都讓大模型給包攬了,自己學(xué)、自己寫代碼、自己去“調(diào)教”: 
這事一經(jīng)論文一作Joel Lehman在網(wǎng)絡(luò)曝光,瞬間引發(fā)了網(wǎng)友們的大量關(guān)注: 
一位程序員網(wǎng)友在看完后直呼“跟不上(技術(shù))發(fā)展的步伐”了: 
甚至OpenAI自己都在研究中說: 彌合了進(jìn)化算法在人類思想水平運(yùn)行的鴻溝。
那么這件“魔幻”的事情,AI到底是怎么辦到的? 看一眼GitHub,AI自己動(dòng)手敲代碼在虛擬環(huán)境中設(shè)計(jì)可移動(dòng)的機(jī)器人,是遺傳算法研究中很火的一個(gè)項(xiàng)目。 特別是Sodarace競賽因?yàn)樾枰挠?jì)算量少,過程方便可視化很受歡迎。 
規(guī)則很簡單,由“關(guān)節(jié)”和“肌肉”組成的機(jī)器人在各種地形上賽跑。 OpenAI還特意把整個(gè)競賽程序從專用的遺傳編碼改寫成了Python版本,為了展示新方法對現(xiàn)代編程語言的通用性。 比如這樣一段Python代碼,就可以作為初始種子機(jī)器人。 
定義好一個(gè)正方形的四個(gè)頂點(diǎn)關(guān)節(jié)、終點(diǎn)關(guān)節(jié),相互之間都用“肌肉”連接好后,結(jié)果如下。 
不過這樣方方正正的結(jié)構(gòu)一動(dòng)都不能動(dòng),接下來就需要靠遺傳算法對代碼做修改。 研究團(tuán)隊(duì)認(rèn)為,用傳統(tǒng)遺傳算法修改代碼VS人類程序員自己動(dòng)手,在效率上還有兩點(diǎn)差距: 一個(gè)是軟件越來越復(fù)雜,人類可以搞模塊化的代碼復(fù)用來應(yīng)對,而目前最先進(jìn)的遺傳算法也無法在人類使用的編程語言上做到這一點(diǎn)。 另一個(gè)是幾乎所有遺傳算法靠的都是隨機(jī)突變(mutation),而人類程序員每一次修改代碼都帶有目的,或者是增加功能、或者是改進(jìn)效率、又或者是修復(fù)bug。 那么有沒有辦法讓AI學(xué)習(xí)到人類是如何修改代碼的呢? 還真有,所需的訓(xùn)練數(shù)據(jù)都存在GitHub上。 優(yōu)秀的程序員每次提交代碼都會(huì)寫好commit描述,說清楚這一次提交修改了什么內(nèi)容。 
commit描述配合上提交前后代碼對比的diff數(shù)據(jù),就是AI絕佳的學(xué)習(xí)材料。 
研究人員篩選出一些描述意圖明確、修改的代碼量不大的提交數(shù)據(jù)來訓(xùn)練一個(gè)GPT-3架構(gòu)的AI模型。 相當(dāng)于讓AI向人類程序員學(xué)習(xí)了如何有目的的修改一段代碼。 這篇論文所用的模型也不需要完全版GPT-3的1750億參數(shù)那么大,最高7.5億參數(shù)就足以。 
由此得到了基礎(chǔ)的AI模型,將在遺傳算法中扮演變異算子的角色。 接下來讓AI自己設(shè)計(jì)新機(jī)器人的流程總共分三步。 
第一步,先用經(jīng)典的MAP-Elites算法生成一組初始機(jī)器人。 
這是一種QD(質(zhì)量多樣性)算法,可以保證機(jī)器人行為不同且質(zhì)量都很高。 
第二步,用第一步產(chǎn)生的初始數(shù)據(jù)做預(yù)訓(xùn)練,讓AI先學(xué)會(huì)設(shè)計(jì)出訓(xùn)練數(shù)據(jù)分布內(nèi)的機(jī)器人。 也就是開頭處那張?jiān)诰W(wǎng)上驚艷了眾人的動(dòng)圖,展示了AI如何一步步把無法移動(dòng)的“方塊”改造成雙腿交替彈跳移動(dòng)機(jī)器人。 
第三步,再結(jié)合上強(qiáng)化學(xué)習(xí)算法做微調(diào),讓AI能根據(jù)不同地形條件生成能適應(yīng)環(huán)境的機(jī)器人。 

最終,研究人員選取了從最初的三個(gè)種子進(jìn)化而來的機(jī)器人做效果展示。 可以看出它們的結(jié)構(gòu)和移動(dòng)方式都完全不同。 
網(wǎng)友驚呼“思路清奇”這項(xiàng)研究一經(jīng)公布,可謂是一石激起千層浪。 許多網(wǎng)友都驚嘆于這種“大模型+演進(jìn)算法”結(jié)合的新奇方式: 
做過與之相關(guān)工作的研究人員也表示,從未想過能用大模型以diffs的形式來學(xué)習(xí)突變: 
而除了對研究形式和本身的討論之外,也有網(wǎng)友配上了這樣圖: 
Emmm……是有點(diǎn)那種味了。 團(tuán)隊(duì)介紹這項(xiàng)研究的團(tuán)隊(duì)成員均來自O(shè)penAI。 論文一作是Joel Lehman,是一位機(jī)器學(xué)習(xí)科學(xué)家。其聚焦的領(lǐng)域包括人工智能安全、強(qiáng)化學(xué)習(xí)和開放式搜索算法。 
與此同時(shí),Joel Lehman此前基于對人工智能發(fā)展的思考合寫過一本科學(xué)讀物《為什么偉大不能被計(jì)劃出來:客觀的秘密》: 
而對于這項(xiàng)研究的下一步,Joel Lehman本人表示: 還有一個(gè)重要問題,就是模型能夠多大程度上應(yīng)用到其它環(huán)境中。 GP中的突變功效現(xiàn)在可以通過ELM大幅提高,這將激發(fā)出一系列廣泛的新應(yīng)用和研究方向。
那么這項(xiàng)研究是否也對你產(chǎn)生了新的啟發(fā)呢? 歡迎在評(píng)論區(qū)留言討論~ 參考鏈接: [1]https:///abs/2206.08896 [2]https://twitter.com/joelbot3000/status/1538770905119150080?s=21&t=l8AASYjgC6RAEEimcQaFog
|