大模型學(xué)好編程,常識邏輯能力一起提升!網(wǎng)友:GPT-4更強的關(guān)鍵所在?
本文經(jīng)AI新媒體量子位(公眾號ID:QbitAI)授權(quán)轉(zhuǎn)載,轉(zhuǎn)載請聯(lián)系出處。
大模型代碼能力強,順便還能提升其他能力?
最近CMU的一項研究突然在網(wǎng)上火了起來。

因為它提出了一個結(jié)論,模型掌握好代碼能力后,在一些非代碼任務(wù)上也能表現(xiàn)出色。
類比于:學(xué)好數(shù)理化走遍天下都不怕的感覺。
這一下子把網(wǎng)友們的腦洞給打開了。
難道說GPT-4比GPT-3.5強的關(guān)鍵原因,就在這里?

有人提問:這是否意味著掌握復(fù)雜編程,就能獲得更高的推理水平?

還有人好奇,是不是說學(xué)編程有助于提升邏輯能力,真的有道理。
想要解釋這些疑問,還要來看研究本身。
這篇論文首次發(fā)表于ChatGPT(GPT-3.5)面世以前,它提出了一種方法,驗證了代碼語言大模型,在完成結(jié)構(gòu)性常識推理上非常擅長。
甚至比一些通用大模型專門微調(diào)過的效果好,碾壓GPT-3、T5。
之所以又被人們熱議起來,或許是因為這項研究中的一些觀點為解釋ChatGPT、GPT-4的能力涌現(xiàn),提供了一些啟發(fā)。
該論文被EMNLP 2022接收,相關(guān)數(shù)據(jù)和代碼已上傳至GitHub。

學(xué)學(xué)編程就能提升邏輯
該研究主要提出四方面工作:
1、代碼語言模型比自然語言模型能更好處理結(jié)構(gòu)化常識推理任務(wù)。
2、提出一種利用代碼語言模型進行結(jié)構(gòu)常識推理的方法:CoCoGEN。
3、在3個結(jié)構(gòu)化常識推理任務(wù)上評估,證明CoCoGEN能優(yōu)于微調(diào)/少樣本測試下的自然語言大模型。
4、進行消融試驗,測試數(shù)據(jù)格式、模型大小和少樣本示例數(shù)量的影響。

大語言模型在挑戰(zhàn)摘要、翻譯、生成、問答等方面都有了不錯的表現(xiàn),目前還存在的一個挑戰(zhàn)是如何進行結(jié)構(gòu)化常識推理。
具體任務(wù)包括生成事件圖、推理圖、腳本、論證解釋等。
和傳統(tǒng)的常識推理任務(wù)不同,結(jié)構(gòu)化常識需要根據(jù)自然語言輸入,生成結(jié)構(gòu)化輸出。
這要求模型需要既理解語言內(nèi)容,還能預(yù)測和生成復(fù)雜的結(jié)構(gòu)。
而為了避免跨模態(tài)的復(fù)雜問題,現(xiàn)有的結(jié)構(gòu)化常識生成模型都會修改問題的輸出格式,比如將圖形“扁平化”為節(jié)點對的列表(下圖d),或者轉(zhuǎn)換為DOT這類規(guī)范語言(下圖c)。

但是大語言模型在處理這些輸出時依舊存在困難,因為這些序列化的結(jié)構(gòu)輸出和大部分預(yù)訓(xùn)練數(shù)據(jù)存在很大差異。
而且在自然語言中,語義相關(guān)的詞一般都離得很近,但是在結(jié)構(gòu)化表達中它們可能離得很遠。
這就導(dǎo)致大語言模型可能無法很好理解拓撲結(jié)構(gòu),所以想要模型完成這類任務(wù)還要進行特定訓(xùn)練。
與此同時,大語言模型在代碼方面的能力越來越突出,代碼也是一種結(jié)構(gòu)化數(shù)據(jù)。
所以研究人員就想到,與其進行額外微調(diào),為什么不利用代碼能力來搞定結(jié)構(gòu)化常識推理。
如下圖b就是利用該方法的結(jié)果:

研究人員將該方法命名為Code for Commonsenses Generation(常識生成代碼)模型,簡稱為CoCoGEN。

CoCoGEN使用一個由k(5-10)個Python類組成的提示。
在推理過程中,測試輸入被轉(zhuǎn)換為一個部分類,如上所示,附加到提示中,并由代碼生成模型(如CodeX)完成。
研究人員使用CodeX發(fā)現(xiàn)它在生成代碼上表現(xiàn)很好,總是能輕松轉(zhuǎn)換成圖形。
然后,研究人員進行了三項任務(wù)測試:
- 腳本生成
- 實體狀態(tài)跟蹤
- 解釋圖生成
在腳本生成任務(wù)中,T5模型進行了微調(diào),CURIE(text-curie-001)和DAVINCI(text-davinci-002)使用了15個示例進行少樣本測試。
(CURIE和DAVINCI是基于GPT-3的兩個模型)
結(jié)果顯示,CoCoGEN的表現(xiàn)結(jié)果最好。

在以精確度(Precision)、召回率(Recall)和F1值作為評估指標(biāo)時,同樣是使用15個樣本訓(xùn)練后,CoCoGEN的效果優(yōu)于其他模型,并且優(yōu)于在100個樣本上微調(diào)過的T5模型。

另外兩項任務(wù)中,CoCoGEN的表現(xiàn)也都優(yōu)于其他模型。
同時該方法也驗證了其他大模型在使用代碼提示后,表現(xiàn)也會更好。

換言之,在讓大模型精通編程后,它的結(jié)構(gòu)常識能力就會提升。
網(wǎng)友銳評:這不就是野生版柯里-霍華德同構(gòu)嘛?

據(jù)了解柯里-霍華德同構(gòu)建立了邏輯和類型理論之間的關(guān)聯(lián),現(xiàn)實了推理系統(tǒng)和程序語言之間的相似性。
看來,推理可以等于證明,再等于編程了。
GPT-3也能涌現(xiàn)類似能力
與此同時,有人也發(fā)現(xiàn)了一個半年前的帖子,其中提出了一個觀點和這項研究由類似之處:
大模型具有復(fù)雜推理能力的思維鏈,可能同樣得益于代碼訓(xùn)練。

這個帖子中列舉了幾個例子。
最初的GPT-3沒有用代碼訓(xùn)練,它并不具有思維鏈能力(chain-of-thought,CoT)。
text-davincic-001雖然指令調(diào)優(yōu)了,但是執(zhí)行CoT的效果也不理想。
PaLM的訓(xùn)練數(shù)據(jù)中有5%是代碼,就能具備CoT了。
Copilot(據(jù)說是12B版本),也能做到CoT。
……
這種相關(guān)性的確非常有趣。
還有人覺得用代碼訓(xùn)練大模型的好處可能有更多,比如語言模型預(yù)測下一個token往往是非常局部的,但是代碼方面通常要求能更加“遠距離”一些,比如完成一個括號閉合的操作。
你怎么看?
論文地址:https://arxiv.org/abs/2210.07128
GitHub地址:
https://github.com/madaan/


































