軟件維護是軟件開發生命週期不可或缺的一部分,開發人員經常重新訪問現有代碼庫以修復錯誤,實現新功能並優化性能。在此階段的一個關鍵任務是代碼本地化,指出必須修改的代碼庫中的特定位置。現代軟件項目的規模和復雜性的提高,此過程已獲得重要意義。對自動化和AI驅動工具的日益增長的依賴已導致將大型語言模型(LLMS)集成到支持諸如錯誤檢測,代碼搜索和建議之類的任務中。但是,儘管LLM在語言任務中的發展進步,但使這些模型能夠理解複雜代碼庫的語義和結構仍然是研究人員努力克服的技術挑戰。
談到問題時,軟件維護中最持久的問題之一是準確識別需要根據用戶報告的問題或功能請求更改的代碼庫的相關部分。通常,以自然語言發出描述提及症狀,而不是代碼中的實際根本原因。這種斷開連接使開發人員和自動化工具很難將描述與需要更新的確切代碼元素鏈接。此外,傳統方法與復雜的代碼依賴性相加,尤其是當相關代碼跨越多個文件或需要層次推理時。代碼定位差會導致效率低下的錯誤分辨率,不完整的補丁和更長的開發週期。
代碼本地化的先前方法主要取決於密集的檢索模型或基於代理的方法。密集的檢索需要將整個代碼庫嵌入可搜索的向量空間中,這很難維護和更新大型存儲庫。當問題描述缺乏直接引用相關代碼時,這些系統通常會表現不佳。另一方面,最近的一些方法使用基於代理的模型來模擬對代碼庫的類似人類探索。但是,他們通常依靠目錄遍歷目錄,缺乏對諸如繼承或功能調用之類的更深層語義聯繫的理解。這限制了他們處理未明確鏈接的代碼元素之間複雜關係的能力。
耶魯大學,南加州大學,斯坦福大學的研究人員組成的研究人員以及所有手AI開發了Locent,這是一個以圖形指導的代理框架來改變代碼本地化。 Locatent不取決於詞彙匹配或靜態嵌入,而是將整個代碼庫轉換為有向的異質圖。這些圖包括有關目錄,文件,類,功能以及邊緣的節點,以捕獲函數調用,文件導入和類繼承等關係。這種結構使代理可以跨多個代碼抽象進行推理。然後,系統應用諸如搜索性,遍歷和檢索詞之類的工具,以允許LLMS逐步探索系統。稀疏層次索引的使用可確保快速訪問實體,並且圖設計支持多跳遍歷,這對於在代碼庫的遙遠部分查找連接至關重要。
Locagent在幾秒鐘內執行索引,並支持實時使用量,使其對開發人員和組織具有實用性。研究人員在一組策劃的成功定位軌跡上微調了兩個開源模型QWEN2.5-7B和QWEN2.5-32B。這些模型在標準基準測試上表現出色。例如,在SWE-Bench-Lite數據集上,Locatent使用QWEN2.5-32B實現了92.7%的文件級準確性,而Claude-3.5則達到86.13%,而其他模型的得分較低。在新介紹的LOC基礎數據集上,該數據集包含在錯誤報告(282),功能請求(203),安全問題(31)和績效問題(144)的660個示例中,Locagent再次顯示出競爭性的結果,在文件級別上獲得了84.59%的ACC@5和87.06%ACC@10。即使是較小的QWEN2.5-7B型號也提供了靠近高成本專有型號的性能,而每個例子僅花費0.05美元,與Claude-3.5的0.66美元成本形成鮮明對比。
核心機制依賴於詳細的基於圖的索引過程。每個節點(無論是代表類還是功能)都是由完全合格的名稱唯一識別的,並使用BM25進行索引進行靈活的關鍵字搜索。該模型使代理能夠模擬一個推理鏈,該推理鏈從提取與問題相關的關鍵字開始,通過圖形遍歷進行,並以特定節點的代碼檢索結論。這些動作是根據基於多個迭代預測一致性的置信度估計方法對這些動作進行評分的。值得注意的是,當研究人員禁用TraverseGraph或Searchentity等工具時,性能下降了多達18%,突出了它們的重要性。此外,多跳躍推理至關重要。將遍歷啤酒花固定到一個導致功能級別的準確度從71.53%下降到66.79%。
當應用於GitHub發行解決方案等下游任務時,Locagent通過微調QWEN2.5-32B模型將發行率(通過@10)從基線無代理系統中的33.58%提高到37.59%。該框架的模塊化和開源性質使其成為尋求內部替代商業LLM的組織的引人注目的解決方案。 Loc-Bench的引入及其更廣泛的維護任務表示,可確保公平的評估,而不會受到培訓前數據的污染。
關於LocaTent的研究的一些關鍵要點包括以下內容:
- Locatent將代碼庫轉換為多層代碼推理的異質圖。
- 使用QWEN2.5-32B,它在SWE-Bench-Lite上最多達到了92.7%的文件級準確性。
- 與專有模型相比,代碼本地化成本降低了約86%。引入了Loc-Bench數據集,其中有660個示例:282個錯誤,203個功能,31個安全性,144個性能。
- 微調模型(QWEN2.5-7B,QWEN2.5-32B)與Claude-3.5相當。
- 諸如TraverseGraph和搜索範圍之類的工具被證明是必不可少的,在禁用時精確降低了。
- 通過提高GITHUB發出解決率,證明了現實世界的實用程序。
- 它為專有LLM解決方案提供了可擴展,成本效益且有效的替代方案。
查看 紙和github頁面。 這項研究的所有信用都歸該項目的研究人員。另外,請隨時關注我們 嘰嘰喳喳 而且不要忘記加入我們的 85k+ ml子雷迪特。

Asif Razzaq是Marktechpost Media Inc.的首席執行官。作為一位有遠見的企業家和工程師,ASIF致力於利用人工智能的潛力來實現社會利益。他最近的努力是推出了人工智能媒體平台Marktechpost,該平台的深入覆蓋了機器學習和深度學習新聞,既在技術上都可以聽起來,既可以通過技術上的聲音,又可以被廣泛的受眾理解。該平台每月有超過200萬個觀點,說明了其在受眾中的受歡迎程度。