BLAZE: Cross-Language and Cross-Project Bug Localization via Dynamic Chunking and Hard Example Learning

要約

ソフトウェアのバグを特定して解決するには、開発者は多大な労力を費やす必要があり、多くの場合、開発時間の約 3 分の 1 が費やされます。
バグの位置特定、つまり変更が必要なソース コード ファイルを正確に特定するプロセスは、この労力を軽減するために重要です。
既存のバグ ローカリゼーション ツールは、通常、深層学習技術に依存しており、プロジェクト間の適用性と多言語環境での有効性において限界に直面しています。
Large Language Model (LLM) による最近の進歩により、バグのローカリゼーションのための詳細な表現が提供されます。
ただし、コンテキスト ウィンドウとマッピングの精度が限られているという課題に直面します。
これらの問題に対処するために、動的チャンキングとハード サンプル学習を採用するアプローチである BLAZE を提案します。
まず、BLAZE はソース コードを動的にセグメント化して、連続性の損失を最小限に抑えます。
次に、BLAZE は、プロジェクト間および言語間でのバグのローカリゼーションを強化するために、困難なバグ ケースを使用して GPT ベースのモデルを微調整します。
BLAZE の機能をサポートするために、5 つの異なるプログラミング言語 (Java、C++、Python、Go、JavaScript) にわたる 29 の大規模で活発なオープンソース プロジェクトからの 26,321 個のバグで構成される BEETLEBOX データセットを作成しました。
3 つのベンチマーク データセット BEETLEBOX、SWE-Bench、Ye et al での BLAZE の評価。
6 つの最先端のベースラインと比較して大幅な改善が実証されています。
具体的には、BLAZE は、トップ 1 精度で最大 120%、平均平均精度 (MAP) で 144%、平均相互ランク (MRR) で 100% の向上を達成します。
広範なアブレーション研究により、当社のパイプライン コンポーネントが全体的なパフォーマンス向上に貢献していることが確認されています。

要約(オリジナル)

Software bugs require developers to exert significant effort to identify and resolve them, often consuming about one-third of their time. Bug localization, the process of pinpointing the exact source code files that need modification, is crucial in reducing this effort. Existing bug localization tools, typically reliant on deep learning techniques, face limitations in cross-project applicability and effectiveness in multi-language environments. Recent advancements with Large Language Models (LLMs) offer detailed representations for bug localization. However, they encounter challenges with limited context windows and mapping accuracy. To address these issues, we propose BLAZE, an approach that employs dynamic chunking and hard example learning. First, BLAZE dynamically segments source code to minimize continuity loss. Then, BLAZE fine-tunes a GPT-based model using challenging bug cases, in order to enhance cross-project and cross-language bug localization. To support the capability of BLAZE, we create the BEETLEBOX dataset, which comprises 26,321 bugs from 29 large and thriving open-source projects across five different programming languages (Java, C++, Python, Go, and JavaScript). Our evaluations of BLAZE on three benchmark datasets BEETLEBOX, SWE-Bench, and Ye et al. demonstrate substantial improvements compared to six state-of-the-art baselines. Specifically, BLAZE achieves up to an increase of 120% in Top 1 accuracy, 144% in Mean Average Precision (MAP), and 100% in Mean Reciprocal Rank (MRR). An extensive ablation study confirms the contributions of our pipeline components to the overall performance enhancement.

arxiv情報

著者 Partha Chakraborty,Mahmoud Alfadel,Meiyappan Nagappan
発行日 2024-08-19 13:59:30+00:00
arxivサイト arxiv_id(pdf)

提供元, 利用サービス

arxiv.jp, Google

カテゴリー: cs.IR, cs.LG, cs.SE パーマリンク