所有語言
分享
文章來源:新智元
亞利桑那州立大學教授揭秘代碼生成質量高的原因:語言模型是一個近似檢索器,GitHub代碼質量高,而文本數據中價值觀衝突太多,僅此而已!
自從ChatGPT發布后,各種基於大模型的產品也快速融入了普通人的生活中,但即便非AI從業者在使用過幾次后也可以發現,大模型經常會胡編亂造,生成錯誤的事實。
不過對於程序員來說,把GPT-4等大模型當作「代碼輔助生成工具」來用的效果明顯要比「事實檢索工具」要好用很多,因為代碼生成往往會涉及到複雜的邏輯分析等,所以也有人將這種推理(廣義規劃)能力歸因於大型語言模型(LLM)的湧現。
學術界也一直在就「LLM能否推理」這個問題爭論不休。
最近,計算機科學家、亞利桑那州立大學教授Subbarao Kambhampati(Rao)以「LLM真的能推理和規劃嗎?」(Can LLMs Really Reason & Plan?)為題,全面總結了語言模型在推理和規劃方面的研究成果,其中也談到了LLM的代碼生成與推理能力的關聯。
視頻鏈接:https://www.youtube.com/watch?v=uTXXYi75QCU
PPT鏈接:https://www.dropbox.com/scl/fi/g3qm2zevcfkp73wik2bz2/SCAI-AI-Day-talk-Final-as-given.pdf
一句話總結:LLM的代碼生成質量比英語(自然語言)生成質量更高,只能說明「在GitHub上進行近似檢索」要比「通用Web上檢索」更容易,而不能反映出任何潛在的推理能力。
造成這種差異的原因主要有兩個:
1. 用於LLM訓練的代碼數據質量要比文本質量更高
2. 形式語言中「語法和語義的距離」比高度靈活的自然語言要低
圖靈獎得主Yann LeCun也表示贊同:自回歸LLM對編碼非常有幫助,即便LLM真的不具備規劃能力。
Rao教授是AAAI的主席,IJCAI的理事,以及Partnership on AI的創始董事會成員;他的主要研究方向為:
1. 面向人類的AI系統(Human-Aware AI Systems):可解釋的人工智能交互。人工智能系統的規劃和決策。人機組隊。主動決策支持。可學習的規劃模型和Model Lite規劃。可解釋的行為和解釋。人為因素評估。
2. 自動規劃(Automated Planning,AI):度量、時間、部分可訪問和隨機世界中的規劃合成、啟髮式方法。規劃的多目標優化。用富有表現力的動作推理。行程安排。加快學習以幫助規劃者。約束滿足與運籌學技術。規劃在自動化製造和空間自主方面的應用。
3. 社交媒體分析與信息整合(Social Media Analysis & Information Integration):社交媒體平台上的人類行為分析。信息集成中用於查詢優化和執行的自適應技術。源發現和源元數據學習。
已故的計算機科學家Drew McDermott曾經說過,規劃只是一種語言的自動編程,每個原語都對應於可執行的操作(planning is just automatic programming on a language with primitives corresponding to executable actions)。
也就是說,廣義上的規劃可以寫成程序,如果GPT-4或其他大模型可以正確地生成代碼,那也就證明了LLM具有規劃能力。
比如說去年5月,英偉達、加州理工等研究團隊合作開發出了Voyager(旅行者)智能體,也是Minecraft(《我的世界》遊戲)中首個基於LLM的具身、終身學習智能體(embodied lifelong learning agent),可以不斷探索世界,獲得各種技能,並在沒有人為干預的情況下進行新的發現。
論文鏈接:https://arxiv.org/abs/2305.16291
Voyager的核心思想就是讓LLM輸出代碼來執行任務,並且在模擬器中運行,包含三個關鍵組件:最大化探索(exploration)的自動課程(curriculum );用於存儲和檢索複雜行為的可執行代碼的不斷增長的技能庫;新的迭代提示機制,包含環境反饋、執行錯誤和自我驗證以改進程序。
Voyager通過黑盒查詢與GPT-4進行交互,從而無需對模型參數進行微調。
雖然還有其他類似Voyager的工作可以利用LLM以代碼生成的方式完成規劃,但這也並不能證明LLM就具有規劃能力。
從原理上說,LLM本質上是一個近似檢索器(approximate retrieval),能否成功規劃取決於訓練數據的質量。
在自然語言生成上,LLM需要吞噬海量數據,其中很多數據在事實基礎或是價值體繫上都存在很大分歧,比如地平論者和疫苗反對者也有自己的一套理論,可以寫出令人信服的文章。
而在代碼生成上,訓練數據主要來自GitHub上的開源代碼,其中大部分都是「有效數據」,而且軟件工程師的價值體系對代碼的質量影響微乎其微,這也可以解釋為什麼代碼生成的質量要比文本補全的質量更高。
儘管如此,但代碼生成的本質上仍然是近似檢索,其正確性無法保證,所以在使用GitHub Copilot等輔助工具時,經常可以看到有人抱怨花了太長時間在生成代碼的調試上,生成的代碼往往看似運行良好,但背地里蘊藏bug
代碼看起來能正常運行的部分原因可以歸結為兩個原因:
1. 系統中存在一個輔助工具(增量解釋器),可以標記處明顯的執行異常,可以讓人類程序員在調試過程中注意到;
2. 語法上正確的代碼段在語義上也可能是正確的,雖然無法完全保證,但語法正確是可執行的先決條件(對於自然語言來說也是如此)。
在少數情況下,例如上面提到的Voyager模型,其開發者聲稱:生成的代碼質量已經足夠好,可以直接在世界上運行,但仔細閱讀就會發現,這種效果主要依賴於世界對規劃模糊性的寬容。
某些論文中也會採用「LLM自我驗證」(self-verify,self-critique自我批評)的方式,即在運行代碼之前在目標場景中嘗試執行驗證一次,但同樣,沒有理由相信LLM具有自我驗證的能力。
下面兩篇論文就對模型的驗證能力產生質疑。
論文鏈接:https://arxiv.org/abs/2310.12397
這篇論文系統地研究LLMs的迭代提示的有效性在圖着色(Graph Coloring)的背景下(一個典型的NP完全推理問題),涉及到命題可滿足性以及實際問題,如調度和分配;文中提出了一個原則性的實證研究GPT4在解決圖着色實例或驗證候選着色的正確性的性能。
在迭代模式中,研究人員要求模型來驗證自己的答案,並用外部正確的推理機來驗證所提出的解決方案。
結果發現:
1. LLMs在解決圖着色實例方面很差;
2. 在驗證解決方案方面並沒有更好的表現-因此在迭代模式下,LLMs批評LLM生成的解決方案無效;
3. 批評的正確性和內容(LLMs本身和外部求解器)似乎在很大程度上與迭代提示的性能無關。
第二篇論文研究了大模型能否通過自我批評來改進規劃。
論文鏈接:https://arxiv.org/abs/2310.08118
這篇論文的研究結果表明,自我批評似乎會降低規劃生成性能,在使用GPT-4的情況下,無論是外部驗證器還是自我驗證器都在該系統中產生了非常多的誤報,損害了系統的可靠性。
並且反饋信號為二元(正確、錯誤)和詳細信息對規劃生成的影響都很小,即LLM在自我批評、迭代規劃任務框架下的有效性值得懷疑。
參考資料:
https://twitter.com/rao2z/status/1744032545174675530