搞事情!
AI“看”了一眼GitHub上人類都是怎么提交更新(commit)的,然后就模仿人類程序員修改代碼……
最終,這個AI還成功“調(diào)教”出了個智能體機(jī)器人:
沒開玩笑,這種細(xì)思極恐的事情,在OpenAI最新發(fā)布的一項研究中,就真真的發(fā)生了……
原本呢,研究人員要解決的是一個遺傳程序設(shè)計(GP)問題——讓一個智能體機(jī)器人學(xué)會移動。
(GP是演化計算中的一個特殊領(lǐng)域,它主要針對自動構(gòu)建程序去獨(dú)立解決問題。)
但OpenAI劍走偏鋒,把自家的大規(guī)模語言模型(LLM)放了進(jìn)來,結(jié)果就是一個大大的“萬萬沒想到”。
以前在智能體演進(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到底是怎么辦到的?
在虛擬環(huán)境中設(shè)計可移動的機(jī)器人,是遺傳算法研究中很火的一個項目。
特別是Sodarace競賽因為需要的計算量少,過程方便可視化很受歡迎。
規(guī)則很簡單,由“關(guān)節(jié)”和“肌肉”組成的機(jī)器人在各種地形上賽跑。
OpenAI還特意把整個競賽程序從專用的遺傳編碼改寫成了Python版本,為了展示新方法對現(xiàn)代編程語言的通用性。
比如這樣一段Python代碼,就可以作為初始種子機(jī)器人。
定義好一個正方形的四個頂點(diǎn)關(guān)節(jié)、終點(diǎn)關(guān)節(jié),相互之間都用“肌肉”連接好后,結(jié)果如下。
不過這樣方方正正的結(jié)構(gòu)一動都不能動,接下來就需要靠遺傳算法對代碼做修改。
研究團(tuán)隊認(rèn)為,用傳統(tǒng)遺傳算法修改代碼VS人類程序員自己動手,在效率上還有兩點(diǎn)差距:
一個是軟件越來越復(fù)雜,人類可以搞模塊化的代碼復(fù)用來應(yīng)對,而目前最先進(jìn)的遺傳算法也無法在人類使用的編程語言上做到這一點(diǎn)。
另一個是幾乎所有遺傳算法靠的都是隨機(jī)突變(mutation),而人類程序員每一次修改代碼都帶有目的,或者是增加功能、或者是改進(jìn)效率、又或者是修復(fù)bug。
那么有沒有辦法讓AI學(xué)習(xí)到人類是如何修改代碼的呢?
還真有,所需的訓(xùn)練數(shù)據(jù)都存在GitHub上。
優(yōu)秀的程序員每次提交代碼都會寫好commit描述,說清楚這一次提交修改了什么內(nèi)容。
commit描述配合上提交前后代碼對比的diff數(shù)據(jù),就是AI絕佳的學(xué)習(xí)材料。
研究人員篩選出一些描述意圖明確、修改的代碼量不大的提交數(shù)據(jù)來訓(xùn)練一個GPT-3架構(gòu)的AI模型。
相當(dāng)于讓AI向人類程序員學(xué)習(xí)了如何有目的的修改一段代碼。
這篇論文所用的模型也不需要完全版GPT-3的1750億參數(shù)那么大,最高7.5億參數(shù)就足以。
由此得到了基礎(chǔ)的AI模型,將在遺傳算法中扮演變異算子的角色。
接下來讓AI自己設(shè)計新機(jī)器人的流程總共分三步。
第一步,先用經(jīng)典的MAP-Elites算法生成一組初始機(jī)器人。
這是一種QD(質(zhì)量多樣性)算法,可以保證機(jī)器人行為不同且質(zhì)量都很高。
第二步,用第一步產(chǎn)生的初始數(shù)據(jù)做預(yù)訓(xùn)練,讓AI先學(xué)會設(shè)計出訓(xùn)練數(shù)據(jù)分布內(nèi)的機(jī)器人。
也就是開頭處那張在網(wǎng)上驚艷了眾人的動圖,展示了AI如何一步步把無法移動的“方塊”改造成雙腿交替彈跳移動機(jī)器人。
第三步,再結(jié)合上強(qiáng)化學(xué)習(xí)算法做微調(diào),讓AI能根據(jù)不同地形條件生成能適應(yīng)環(huán)境的機(jī)器人。
最終,研究人員選取了從最初的三個種子進(jìn)化而來的機(jī)器人做效果展示。
可以看出它們的結(jié)構(gòu)和移動方式都完全不同。
這項研究一經(jīng)公布,可謂是一石激起千層浪。
許多網(wǎng)友都驚嘆于這種“大模型+演進(jìn)算法”結(jié)合的新奇方式:
做過與之相關(guān)工作的研究人員也表示,從未想過能用大模型以diffs的形式來學(xué)習(xí)突變:
而除了對研究形式和本身的討論之外,也有網(wǎng)友配上了這樣圖:
Emmm……是有點(diǎn)那種味了。
這項研究的團(tuán)隊成員均來自O(shè)penAI。
論文一作是Joel Lehman,是一位機(jī)器學(xué)習(xí)科學(xué)家。其聚焦的領(lǐng)域包括人工智能安全、強(qiáng)化學(xué)習(xí)和開放式搜索算法。
與此同時,Joel Lehman此前基于對人工智能發(fā)展的思考合寫過一本科學(xué)讀物《為什么偉大不能被計劃出來:客觀的秘密》:
而對于這項研究的下一步,Joel Lehman本人表示:
還有一個重要問題,就是模型能夠多大程度上應(yīng)用到其它環(huán)境中。
GP中的突變功效現(xiàn)在可以通過ELM大幅提高,這將激發(fā)出一系列廣泛的新應(yīng)用和研究方向。
那么這項研究是否也對你產(chǎn)生了新的啟發(fā)呢?
歡迎在評論區(qū)留言討論~
參考鏈接:
[1]https://arxiv.org/abs/2206.08896
[2]https://twitter.com/joelbot3000/status/1538770905119150080?s=21&t=l8AASYjgC6RAEEimcQaFog
— 完 —