今天小編分享的科學經驗:大模型學好編程,常識邏輯能力一起提升!網友:GPT-4更強的關鍵所在?,歡迎閱讀。
大模型代碼能力強,順便還能提升其他能力?
最近 CMU 的一項研究突然在網上火了起來。
因為它提出了一個結論,模型掌握好代碼能力後,在一些非代碼任務上也能表現出色。
類比于:學好數理化走遍天下都不怕的感覺。
這一下子把網友們的腦洞給打開了。
難道說 GPT-4 比 GPT-3.5 強的關鍵原因,就在這裡?
有人提問:這是否意味着掌握復雜編程,就能獲得更高的推理水平?
還有人好奇,是不是說學編程有助于提升邏輯能力,真的有道理。
想要解釋這些疑問,還要來看研究本身。
這篇論文首次發表于 ChatGPT(GPT-3.5)面世以前,它提出了一種方法,驗證了代碼語言大模型,在完成結構性常識推理上非常擅長。
甚至比一些通用大模型專門微調過的效果好,碾壓 GPT-3、T5。
之所以又被人們熱議起來,或許是因為這項研究中的一些觀點為解釋 ChatGPT、GPT-4 的能力湧現,提供了一些啟發。
該論文被 EMNLP 2022 接收,相關數據和代碼已上傳至 GitHub。
學學編程就能提升邏輯
該研究主要提出四方面工作:
1、代碼語言模型比自然語言模型能更好處理結構化常識推理任務。
2、提出一種利用代碼語言模型進行結構常識推理的方法:CoCoGEN。
3、在 3 個結構化常識推理任務上評估,證明 CoCoGEN 能優于微調 / 少樣本測試下的自然語言大模型。
4、進行消融試驗,測試數據格式、模型大小和少樣本示例數量的影響。
大語言模型在挑戰摘要、翻譯、生成、問答等方面都有了不錯的表現,目前還存在的一個挑戰是如何進行結構化常識推理。
具體任務包括生成事件圖、推理圖、腳本、論證解釋等。
和傳統的常識推理任務不同,結構化常識需要根據自然語言輸入,生成結構化輸出。
這要求模型需要既理解語言内容,還能預測和生成復雜的結構。
而為了避免跨模态的復雜問題,現有的結構化常識生成模型都會修改問題的輸出格式,比如将圖形 " 扁平化 " 為節點對的列表(下圖 d),或者轉換為 DOT 這類規範語言(下圖 c)。
但是大語言模型在處理這些輸出時依舊存在困難,因為這些序列化的結構輸出和大部分預訓練數據存在很大差異。
而且在自然語言中,語義相關的詞一般都離得很近,但是在結構化表達中它們可能離得很遠。
這就導致大語言模型可能無法很好理解拓撲結構,所以想要模型完成這類任務還要進行特定訓練。
與此同時,大語言模型在代碼方面的能力越來越突出,代碼也是一種結構化數據。
所以研究人員就想到,與其進行額外微調,為什麼不利用代碼能力來搞定結構化常識推理。
如下圖 b 就是利用該方法的結果:
研究人員将該方法命名為 Code for Commonsenses Generation(常識生成代碼)模型,簡稱為 CoCoGEN。
CoCoGEN 使用一個由 k(5-10)個 Python 類組成的提示。
在推理過程中,測試輸入被轉換為一個部分類,如上所示,附加到提示中,并由代碼生成模型(如 CodeX)完成。
研究人員使用 CodeX 發現它在生成代碼上表現很好,總是能輕松轉換成圖形。
然後,研究人員進行了三項任務測試:
腳本生成
實體狀态跟蹤
解釋圖生成
在腳本生成任務中,T5 模型進行了微調,CURIE(text-curie-001)和 DAVINCI(text-davinci-002)使用了 15 個示例進行少樣本測試。
(CURIE 和 DAVINCI 是基于 GPT-3 的兩個模型)
結果顯示,CoCoGEN 的表現結果最好。
在以精确度(Precision)、召回率(Recall)和 F1 值作為評估指标時,同樣是使用 15 個樣本訓練後,CoCoGEN 的效果優于其他模型,并且優于在 100 個樣本上微調過的 T5 模型。
另外兩項任務中,CoCoGEN 的表現也都優于其他模型。
同時該方法也驗證了其他大模型在使用代碼提示後,表現也會更好。
換言之,在讓大模型精通編程後,它的結構常識能力就會提升。
網友銳評:這不就是野生版柯裡 - 霍華德同構嘛?
據了解柯裡 - 霍華德同構建立了邏輯和類型理論之間的關聯,現實了推理系統和程式語言之間的相似性。
看來,推理可以等于證明,再等于編程了。
GPT-3 也能湧現類似能力
與此同時,有人也發現了一個半年前的帖子,其中提出了一個觀點和這項研究由類似之處:
大模型具有復雜推理能力的思維鏈,可能同樣得益于代碼訓練。
這個帖子中列舉了幾個例子。
最初的 GPT-3 沒有用代碼訓練,它并不具有思維鏈能力(chain-of-thought,CoT)。
text-davincic-001 雖然指令調優了,但是執行 CoT 的效果也不理想。
PaLM 的訓練數據中有 5% 是代碼,就能具備 CoT 了。
Copilot(據說是 12B 版本),也能做到 CoT。
……
這種相關性的确非常有趣。
還有人覺得用代碼訓練大模型的好處可能有更多,比如語言模型預測下一個 token 往往是非常局部的,但是代碼方面通常要求能更加 " 遠距離 " 一些,比如完成一個括号閉合的操作。
你怎麼看?
論文地址:
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