登頂開(kāi)源AI軟件工程師榜首,UIUC無(wú)Agent方案輕松解決SWE-bench真實(shí)編程問(wèn)題
這篇論文的作者均來(lái)自伊利諾伊大學(xué)香檳分校(UIUC)張令明老師團(tuán)隊(duì),包括:Steven Xia,四年級(jí)博士生,研究方向是基于 AI 大模型的自動(dòng)代碼修復(fù);鄧茵琳,四年級(jí)博士生,研究方向是基于 AI 大模型的代碼生成;Soren Dunn,科研實(shí)習(xí)生,目前為 UIUC 大三學(xué)生。張令明老師現(xiàn)任 UIUC 計(jì)算機(jī)系副教授,主要從事軟件工程、機(jī)器學(xué)習(xí)、代碼大模型的相關(guān)研究。
更多詳細(xì)信息請(qǐng)見(jiàn)張老師的個(gè)人主頁(yè):https://lingming.cs.illinois.edu/
自從 Devin(首個(gè)全自動(dòng) AI 軟件工程師)提出以來(lái),針對(duì)軟件工程的 AI Agent 的設(shè)計(jì)成為研究的焦點(diǎn),越來(lái)越多基于 Agent 的 AI 自動(dòng)軟件工程師被提出,并在 SWE-bench 數(shù)據(jù)集上取得了不俗的表現(xiàn)、自動(dòng)修復(fù)了許多真實(shí)的 GitHub issue。
然而,復(fù)雜的 Agent 系統(tǒng)會(huì)帶來(lái)額外的開(kāi)銷和不確定性,我們真的需要使用如此復(fù)雜的 Agent 來(lái)解決 GitHub issue 嗎?不依賴 Agent 的解決方案能接近它們的性能嗎?
從這兩個(gè)問(wèn)題出發(fā),伊利諾伊大學(xué)香檳分校(UIUC)張令明老師團(tuán)隊(duì)提出了 OpenAutoCoder-Agentless,一個(gè)簡(jiǎn)單高效并且完全開(kāi)源的無(wú) Agent 方案,僅需 $0.34 就能解決一個(gè)真實(shí)的 GitHub issue。Agentless 在短短幾天內(nèi)在 GitHub 上已經(jīng)吸引了超過(guò) 300 GitHub Star,并登上了 DAIR.AI 每周最熱 ML 論文榜單前三。
- 論文:AGENTLESS : Demystifying LLM-based Software Engineering Agents
- 論文地址:https://huggingface.co/papers/2407.01489
- 開(kāi)源代碼:https://github.com/OpenAutoCoder/Agentless
AWS 研究科學(xué)家 Leo Boytsov 表示:“Agentless 框架表現(xiàn)優(yōu)異,超過(guò)所有開(kāi)源 Agent 解決方案,幾乎達(dá)到 SWE Bench Lite 最高水平(27%)。而且,它以顯著更低的成本擊敗了所有開(kāi)源方案。該框架采用分層查詢方法(通過(guò)向 LLM 提問(wèn)來(lái)查找文件、類、函數(shù)等)以確定補(bǔ)丁位置。雖然利用 LLM,但不允許 LLM 做出規(guī)劃決策。”
Agentless 是一種自動(dòng)解決軟件開(kāi)發(fā)問(wèn)題的方法,它使用簡(jiǎn)單的兩階段方法進(jìn)行定位和修復(fù),以修復(fù)代碼庫(kù)中的 bug。在定位階段,Agentless 以分層方式來(lái)逐步縮小到可疑的文件、類 / 函數(shù)和具體的編輯位置。對(duì)于修復(fù),它使用簡(jiǎn)單的 diff 格式(參考自開(kāi)源工具 Aider)來(lái)生成多個(gè)候選補(bǔ)丁,并對(duì)其進(jìn)行過(guò)濾和排序。
研究者將 Agentless 與現(xiàn)有的 AI Software Agent 進(jìn)行了比較,其中包括最先進(jìn)的開(kāi)源和商業(yè) / 閉源項(xiàng)目。令人驚訝的是,Agentless 可以以更低的成本超越所有現(xiàn)有的開(kāi)源 Software Agent!Agentless 解決了 27.33% 的問(wèn)題,是開(kāi)源方案中最高的,并且解決每個(gè)問(wèn)題平均僅需 $0.29,在所有問(wèn)題上(包括能解決和未解決的)平均只需要約 $0.34。
不僅如此,Agentless 還有改進(jìn)的潛力。在考慮所有生成的補(bǔ)丁時(shí),Agentless 可以解決 41% 的問(wèn)題,這個(gè)上限表明補(bǔ)丁排序和選擇階段有顯著的改進(jìn)空間。此外,Agentless 能夠解決一些即使是最好的商業(yè)工具(Alibaba Lingma Agent)也無(wú)法解決的獨(dú)特問(wèn)題,這表明它可以作為現(xiàn)有工具的補(bǔ)充。
對(duì) SWE-bench Lite 數(shù)據(jù)集的分析
研究者還對(duì) SWE-bench Lite 數(shù)據(jù)集進(jìn)行了人工檢查和詳細(xì)分析。
研究發(fā)現(xiàn),SWE-bench Lite 數(shù)據(jù)集中,有 4.3% 的問(wèn)題在問(wèn)題描述中直接給出了完整的答案,也就是正確的修復(fù)補(bǔ)丁。而另外 10% 的問(wèn)題描述了正確解決方案的確切步驟。這表明,SWE-bench Lite 中的某些問(wèn)題可能更容易解決。
此外,研究團(tuán)隊(duì)觀察到有 4.3% 的問(wèn)題在問(wèn)題描述中包含了用戶提議的解決方案或者步驟,但這些方案與開(kāi)發(fā)人員的真實(shí)補(bǔ)丁并不一致。這進(jìn)一步揭示了該基準(zhǔn)測(cè)試的潛在問(wèn)題,因?yàn)檫@些誤導(dǎo)性解決方案可能導(dǎo)致 AI 工具僅通過(guò)遵循問(wèn)題描述來(lái)生成不正確的解決方案。
在問(wèn)題描述質(zhì)量方面,研究者觀察到,雖然 SWE-bench Lite 中大部分的任務(wù)都包含了足夠的信息,并且許多任務(wù)還提供了失敗示例來(lái)復(fù)現(xiàn)錯(cuò)誤,但是仍有 9.3% 的問(wèn)題沒(méi)有包含足夠的信息。例如需要實(shí)現(xiàn)一個(gè)新的函數(shù)或者添加一個(gè)錯(cuò)誤信息,但是特定的函數(shù)名或者特定的錯(cuò)誤信息字符串并沒(méi)有在問(wèn)題描述中給出。這意味著即使正確實(shí)現(xiàn)了底層功能,如果函數(shù)名或錯(cuò)誤信息字符串不完全匹配,測(cè)試也會(huì)失敗。
普林斯頓大學(xué)的研究人員,同時(shí)也是 SWE-Bench 的作者之一,Ofir Press 確認(rèn)了他們的發(fā)現(xiàn):“Agentless 對(duì) SWE-bench Lite 進(jìn)行了不錯(cuò)的手動(dòng)分析。他們認(rèn)為 Lite 上的理論最高得分可能是 90.7%。我覺(jué)得實(shí)際的上限可能會(huì)更低(大約 80%)。一些問(wèn)題的信息不足,另一些問(wèn)題的測(cè)試過(guò)于嚴(yán)格?!?/span>
SWE-bench Lite-S:經(jīng)過(guò)過(guò)濾的嚴(yán)格問(wèn)題子集
針對(duì)這些問(wèn)題,研究者提出了一個(gè)嚴(yán)格的問(wèn)題子集 SWE-bench Lite-S(包含 252 個(gè)問(wèn)題)。具體來(lái)說(shuō),從 SWE-bench Lite(包含 300 個(gè)問(wèn)題)中排除了那些在問(wèn)題描述中包含確切補(bǔ)丁、誤導(dǎo)性解決方案或未提供足夠信息的問(wèn)題。這樣可以去除不合理的問(wèn)題,并使基準(zhǔn)測(cè)試的難度水平標(biāo)準(zhǔn)化。與原始的 SWE-bench Lite 相比,過(guò)濾后的基準(zhǔn)測(cè)試更準(zhǔn)確地反映了自動(dòng)軟件開(kāi)發(fā)工具的真實(shí)能力。
結(jié)語(yǔ)
盡管基于 Agent 的軟件開(kāi)發(fā)非常有前景,作者們認(rèn)為技術(shù)和研究社區(qū)是時(shí)候停下來(lái)思考其關(guān)鍵設(shè)計(jì)與評(píng)估方法,而不是急于發(fā)布更多的 Agent。研究者希望 Agentless 可以幫助重置未來(lái)軟件工程 Agent 的基線和方向。