基本介紹
- 發表時間:2025年12月
- 開發者:北京大學研究團隊
- 開源狀態:已開源
- 性能提升:平均召回率提高19.49%
平均精確度提高11.89% - 技術特點:因果推理定位問題
- 程式語言:Python
Java
研發背景,技術原理,工作流程,實驗驗證,研究意義,
研發背景
GraphLocator系統是由北京大學高可信軟體技術教育部重點實驗室劉偉領導的研究團隊開發的,位元組跳動的彭超和高鵬飛等研究人員也參與了這項研究。相關研究成果於2025年12月以arXiv預印本論文形式發表,編號為2512.22469v1。
技術原理
GraphLocator系統的核心創新在於系統性地引入因果推理概念,為每個軟體問題構建詳細的因果地圖。該系統由代碼依賴結構圖和因果問題圖兩個相互配合的圖譜系統組成,其中代碼依賴結構圖採用分層設計詳細記錄軟體組件的位置、類型和相互關係,因果問題圖通過節點和連線記錄子問題及其因果關係。整個診斷過程分為症狀點定位和動態因果發現兩個緊密配合的階段。
工作流程
GraphLocator系統的問題定位工作流程主要分為兩個緊密配合的階段。第一階段為“症狀點定位”,系統使用配備三種診斷工具(頂點搜尋、邊緣搜尋和完成信號)的“搜尋代理”,在代碼庫中快速定位與症狀對應的代碼位置。
第二階段為“動態因果發現”,系統使用“因果分析代理”採用優先權驅動的策略進行因果推理,動態更新因果問題圖,以追溯問題的根本原因和影響範圍。
實驗驗證
GraphLocator系統在三個大型軟體項目數據集上進行了驗證,包括SWE-bench Lite、LocBench和Multi-SWE-benchJava,涵蓋了Python和Java兩種程式語言,共包含987個真實的軟體問題案例。
在與四種基準方法的比較中,GraphLocator在函式級別的精確定位任務中取得了最佳表現,平均召回率提高了19.49%,精確率提高了11.89%。該系統在處理症狀與病因分離的問題以及一對多複雜問題時表現尤為出色。
研究團隊還進行了成本效益分析和消融實驗,驗證了系統各組件的必要性。實驗表明,使用GraphLocator生成的因果問題圖能使後續問題修復的成功率提高28.74%。
