創新AI框架:反向學習提升程式碼生成效能
近年來,大型語言模型(LLMs)如OpenAI的ChatGPT,已在多種語言處理和文字生成任務中展現出卓越的能力。這些模型在程式碼生成方面也展現出潛力,尤其是在多代理系統(multi-agent systems)中部署時。最近,吉林大學和香港科技大學的研究團隊開發了一種名為Cogito的多代理系統,該系統能夠提升基於AI的程式碼生成效率。這項研究成果已發表在arXiv預印本伺服器上,其靈感來自於人類完成複雜任務時所採用的結構化神經生物學過程。
該研究的第一作者李彥龍表示:「在通訊作者王琦教授的指導下,我們決定將研究重點放在LLM-AGENT的程式碼生成任務上。心理學和人類成長過程啟發了我們完成這項研究,結果相當令人振奮。」研究團隊的主要目標是提升LLMs在程式碼生成任務中的表現,為此,他們開發了一種新的系統,該系統反轉了傳統程式碼生成子任務的執行順序。
傳統的程式碼生成流程通常從規劃(即結構化程式碼的整體邏輯)開始,接著是編碼過程,最後是除錯(即修正程式碼中的錯誤)。然而,這項研究團隊開發的新框架反轉了這一順序,從除錯開始,接著生成程式碼,最後進行規劃以進一步最佳化程式碼。李彥龍解釋道:「我們的框架包含一個答案生成過程和一個記憶模組。對於給定的任務,系統中有三個角色:規劃者(Planner)、編碼者(Coder)和除錯者(Debugger),每個角色分別執行其功能以生成答案。負責生成最終答案的角色將在不同群組中依次扮演除錯者、編碼者和規劃者。」
Cogito系統還配備了一個模仿人類大腦海馬體功能的記憶模組。該模組旨在快速檢索過去獲取的資訊,以提升學習過程的效率。簡單來說,Cogito在完成除錯、編碼和規劃階段時累積經驗,並利用這些經驗生成最終的程式碼版本。李彥龍補充道:「這一過程的獨特之處在於使用了經驗累積和反向學習(傳統的學習順序是規劃者、編碼者、除錯者)。這種方法節省了群組之間的溝通成本,並提高了任務的準確性。」
研究團隊在初步實驗中測試了他們提出的多代理系統,結果顯示其在程式碼生成任務中的表現優於現有的基於LLM的模型,並且出錯率更低。未來,該模型可以進一步改進,並在更廣泛的程式碼生成任務中進行測試。李彥龍表示:「我認為我們研究中最值得注意的方面是我們展示的反向學習和成長過程。目前,我們已在HumanEval等程式碼生成任務中驗證了其有效性。未來,我們可能會加入一些強化學習元素,但這還不確定,因為這個領域發展得非常迅速。」