研究指出:AI尚未準備好取代人類程序員進行調試
儘管在軟件開發領域,AI的應用已經相當廣泛,從「感覺」編碼到GitHub Copilot,再到一些初創企業利用大型語言模型(LLMs)快速開發應用,AI已經深深融入這個行業。然而,那些宣稱AI代理即將取代大多數程序員的人,可能需要調整他們的期望,因為目前的模型在調試方面表現不佳,而調試卻佔據了開發者大部分的時間。
微軟研究院最近開發了一個名為debug-gym的新工具,用來測試和改進AI模型在調試軟件方面的能力。這個debug-gym(可在GitHub上找到,並在一篇博客文章中詳細介紹)是一個環境,讓AI模型可以嘗試調試任何現有的代碼庫,並提供過去這些模型未曾接觸過的調試工具。微軟的研究發現,若不採用這種方法,模型在調試任務上的表現會非常糟糕,而採用這種方法後,雖然表現有所改善,但仍遠不及經驗豐富的人類開發者。
微軟的研究者如此描述debug-gym:
Debug-gym擴展了代理的行動和觀察空間,通過工具使用的反饋,能夠設置斷點、導航代碼、打印變量值以及創建測試函數。代理可以與工具互動,調查代碼或在有信心的情況下重寫代碼。我們相信,使用適當工具的互動調試能夠使編碼代理更好地應對現實世界的軟件工程任務,這對於基於LLM的代理研究至關重要。由具有調試能力的編碼代理提出的修復建議,經人類程序員批准後,將依據相關代碼庫、程序執行和文檔的上下文,而非僅僅依賴於基於之前訓練數據的猜測。
下圖展示了使用debug-gym進行測試的結果。使用調試工具的代理表現遠超那些不使用工具的代理,但其成功率仍然不夠高。微軟研究的圖片顯示,雖然這種方法比依賴模型的傳統用法要成功得多,但即使在最佳情況下也只有48.4%的成功率,顯然還未準備好投入實際應用。這些限制可能是因為模型尚未完全理解如何最佳使用這些工具,以及目前的訓練數據並不針對這一用例進行調整。
該博客文章指出:「我們認為這是因為目前LLM訓練語料庫中,代表序列決策行為(例如調試痕跡)的數據稀缺。然而,顯著的性能提升……證明這是一個有前景的研究方向。」
報告指出,這只是研究工作的開始,下一步是「微調一個專門收集必要信息以解決錯誤的信息尋求模型」。如果模型較大,為了節省推斷成本,最好的做法可能是「構建一個較小的信息尋求模型,以向較大模型提供相關信息」。
這並不是首次出現這類結果,表明關於AI代理直接取代開發者的雄心勃勃的想法與現實差距甚遠。已有多項研究顯示,即使AI工具有時能創建出對用戶來說似乎合適的應用,但這些模型往往會生成充滿錯誤和安全漏洞的代碼,而它們通常無法自行修復這些問題。
這是一個朝向AI編碼代理的早期步驟,但大多數研究人員一致認為,最可能的結果是,代理能夠為人類開發者節省大量時間,而不是完全取代他們的工作。
在這篇文章中,我們可以看到AI在調試領域的潛力和限制,這不僅顯示出技術的進步,也揭示了人類在軟件開發過程中的不可替代性。未來的發展可能會集中在如何更好地結合AI工具與人類智慧,以提高開發效率,這樣的合作模式或許才是最理想的方向。
以上文章由特價GPT API KEY所翻譯及撰寫。而圖片則由FLUX根據內容自動生成。