大模型代碼能力強(qiáng),順便還能提升其他能力?
最近 CMU 的一項(xiàng)研究突然在網(wǎng)上火了起來。
因?yàn)樗岢隽艘粋€(gè)結(jié)論,模型掌握好代碼能力后,在一些非代碼任務(wù)上也能表現(xiàn)出色。
類比于:學(xué)好數(shù)理化走遍天下都不怕的感覺。
這一下子把網(wǎng)友們的腦洞給打開了。
難道說 GPT-4 比 GPT-3.5 強(qiáng)的關(guān)鍵原因,就在這里?
有人提問:這是否意味著掌握復(fù)雜編程,就能獲得更高的推理水平?
還有人好奇,是不是說學(xué)編程有助于提升邏輯能力,真的有道理。
想要解釋這些疑問,還要來看研究本身。
這篇論文首次發(fā)表于 ChatGPT(GPT-3.5)面世以前,它提出了一種方法,驗(yàn)證了代碼語言大模型,在完成結(jié)構(gòu)性常識推理上非常擅長。
甚至比一些通用大模型專門微調(diào)過的效果好,碾壓 GPT-3、T5。
之所以又被人們熱議起來,或許是因?yàn)檫@項(xiàng)研究中的一些觀點(diǎn)為解釋 ChatGPT、GPT-4 的能力涌現(xiàn),提供了一些啟發(fā)。
該論文被 EMNLP 2022 接收,相關(guān)數(shù)據(jù)和代碼已上傳至 GitHub。
學(xué)學(xué)編程就能提升邏輯
該研究主要提出四方面工作:
1、代碼語言模型比自然語言模型能更好處理結(jié)構(gòu)化常識推理任務(wù)。
2、提出一種利用代碼語言模型進(jìn)行結(jié)構(gòu)常識推理的方法:CoCoGEN。
3、在 3 個(gè)結(jié)構(gòu)化常識推理任務(wù)上評估,證明 CoCoGEN 能優(yōu)于微調(diào) / 少樣本測試下的自然語言大模型。
4、進(jìn)行消融試驗(yàn),測試數(shù)據(jù)格式、模型大小和少樣本示例數(shù)量的影響。
大語言模型在挑戰(zhàn)摘要、翻譯、生成、問答等方面都有了不錯的表現(xiàn),目前還存在的一個(gè)挑戰(zhàn)是如何進(jì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é)點(diǎn)對的列表(下圖 d),或者轉(zhuǎn)換為 DOT 這類規(guī)范語言(下圖 c)。
但是大語言模型在處理這些輸出時(shí)依舊存在困難,因?yàn)檫@些序列化的結(jié)構(gòu)輸出和大部分預(yù)訓(xùn)練數(shù)據(jù)存在很大差異。
而且在自然語言中,語義相關(guān)的詞一般都離得很近,但是在結(jié)構(gòu)化表達(dá)中它們可能離得很遠(yuǎn)。
這就導(dǎo)致大語言模型可能無法很好理解拓?fù)浣Y(jié)構(gòu),所以想要模型完成這類任務(wù)還要進(jìn)行特定訓(xùn)練。
與此同時(shí),大語言模型在代碼方面的能力越來越突出,代碼也是一種結(jié)構(gòu)化數(shù)據(jù)。
所以研究人員就想到,與其進(jìn)行額外微調(diào),為什么不利用代碼能力來搞定結(jié)構(gòu)化常識推理。
如下圖 b 就是利用該方法的結(jié)果:
研究人員將該方法命名為 Code for Commonsenses Generation(常識生成代碼)模型,簡稱為 CoCoGEN。
CoCoGEN 使用一個(gè)由 k(5-10)個(gè) Python 類組成的提示。
在推理過程中,測試輸入被轉(zhuǎn)換為一個(gè)部分類,如上所示,附加到提示中,并由代碼生成模型(如 CodeX)完成。
研究人員使用 CodeX 發(fā)現(xiàn)它在生成代碼上表現(xiàn)很好,總是能輕松轉(zhuǎn)換成圖形。
然后,研究人員進(jìn)行了三項(xiàng)任務(wù)測試:
腳本生成
實(shí)體狀態(tài)跟蹤
解釋圖生成
在腳本生成任務(wù)中,T5 模型進(jìn)行了微調(diào),CURIE(text-curie-001)和 DAVINCI(text-davinci-002)使用了 15 個(gè)示例進(jìn)行少樣本測試。
(CURIE 和 DAVINCI 是基于 GPT-3 的兩個(gè)模型)
結(jié)果顯示,CoCoGEN 的表現(xiàn)結(jié)果最好。
在以精確度(Precision)、召回率(Recall)和 F1 值作為評估指標(biāo)時(shí),同樣是使用 15 個(gè)樣本訓(xùn)練后,CoCoGEN 的效果優(yōu)于其他模型,并且優(yōu)于在 100 個(gè)樣本上微調(diào)過的 T5 模型。
另外兩項(xiàng)任務(wù)中,CoCoGEN 的表現(xiàn)也都優(yōu)于其他模型。
同時(shí)該方法也驗(yàn)證了其他大模型在使用代碼提示后,表現(xiàn)也會更好。
換言之,在讓大模型精通編程后,它的結(jié)構(gòu)常識能力就會提升。
網(wǎng)友銳評:這不就是野生版柯里-霍華德同構(gòu)嘛?
據(jù)了解柯里-霍華德同構(gòu)建立了邏輯和類型理論之間的關(guān)聯(lián),現(xiàn)實(shí)了推理系統(tǒng)和程序語言之間的相似性。
看來,推理可以等于證明,再等于編程了。
GPT-3 也能涌現(xiàn)類似能力
與此同時(shí),有人也發(fā)現(xiàn)了一個(gè)半年前的帖子,其中提出了一個(gè)觀點(diǎn)和這項(xiàng)研究由類似之處:
大模型具有復(fù)雜推理能力的思維鏈,可能同樣得益于代碼訓(xùn)練。
這個(gè)帖子中列舉了幾個(gè)例子。
最初的 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ù)測下一個(gè) token 往往是非常局部的,但是代碼方面通常要求能更加“遠(yuǎn)距離”一些,比如完成一個(gè)括號閉合的操作。
你怎么看?
論文地址:
https://arxiv.org/abs/2210.07128
GitHub 地址:
https://github.com/madaan/
參考鏈接:
https://yaofu.notion.site/How-does-GPT-Obtain-its-Ability-Tracing-Emergent-Abilities-of-Language-Models-to-their-Sources-b9a57ac0fcf74f30a1ab9e3e36fa1dc1
本文來自微信公眾號:量子位 (ID:QbitAI),作者:明敏
廣告聲明:文內(nèi)含有的對外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時(shí)間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。