arXiv論文メモ
新着一覧
cs.SE · 査読状況未確認

ローカル言語モデルでバグ修正コミットを識別する

Labelling Bug-Fixing Commits with Local Open-Weight Language Models

Philip König, Georg Goldenits, Caroline König, Sebastian Raubitzek, Fabian Obermann, Dennis Toth, David Schmidt, Edgar Weippl, Kevin Mallinger

この論文をやさしく読む

ひとことで言うと

コード変更の説明と差分をローカルの言語モデルに読ませ、その変更がバグ修正かどうかを分類する研究です。単語の有無だけで判断する方法との違いを調べています。

何に役立つ?

欠陥予測の学習データを、各プロジェクトの新しい履歴から作る際に役立ちます。ローカル実行なので非公開コードを対象にすることも想定され、ラベル生成の仕組みとコーパスを公開しています。

この研究の面白いところ

モデルを大きくすれば常に良くなるわけではない点と、評価データにバグ修正でない変更が必要な点を示しています。修正を多く拾えることと、誤って修正と判定しないことを分けて考えています。

どこまで分かった?

自動で作ったコーパスは準正解データとして位置付けられ、人手による完全な正解とはされていません。要旨には各モデルの適合率や費用の具体値はなく、負例のないデータで適合率を比較できないという制約が明示されています。

v1のアブストラクトに基づくAI解説。日本語訳とは別に、用途の解釈を含みます。

アブストラクトの日本語訳

欠陥予測では、どのコミットがバグを修正したかを知る必要があるが、その情報を表すラベルは、いずれもノイズを持ち込む経路で作られている。再利用されるベンチマークには記録されたデータ品質の問題があり、課題管理システムとのリンクには偏りがあるうえ、元の報告もしばしば誤った種別に分類されている。また、コミットメッセージのキーワード照合は粗いヒューリスティックである。 本論文では、ローカルで動く重み公開型の言語モデルを使い、コミットの内容だけからバグ修正のラベルを付けられるかを調べる。この方法は、処理の再現性を保ち、コーパス規模でも低コストで、非公開コードにも利用でき、課題管理システムに依存しない。Java、Python、JavaScriptにまたがる、手作業で検証・整備されたバグ修正のデータセットを用い、キーワードによる基準手法と、規模の異なる複数の重み公開モデルを比較する。各モデルにはコミットメッセージとコード差分を与える。 手作業で検証したコーパスでは、キーワードによる基準手法が検出できる修正は半数未満だった一方、重み公開モデルは大多数を検出し、リポジトリごとに統計的に有意な差で基準手法を上回った。また、大きなモデルが小さなモデルを一貫して上回るわけではなかった。さらに、負例のない評価コーパスでは、この種の分類器を適合率も考慮して比較できないことを示す。ラベル付けパイプラインと、推奨構成で作成したラベル付きの多言語コーパスを公開し、最新かつプロジェクト固有のデータセットを構築するための、再現可能な準正解データ資源として提供する。

v1の要旨から自動生成。本文の精読・人による確認は未実施。

初稿
2026-09-18(UTC)
最新改訂
2026-09-18 · v1
査読・掲載
査読状況未確認
arXivで読むPDF

更新履歴

取得できた版を表示。版の更新は査読済みを意味しません。過去版の本文差分は未解析です。

原文の要旨

Defect prediction depends on knowing which commits fix bugs, yet the labels that encode this are produced by routes that each introduce noise. Reused benchmarks carry documented data-quality problems, issue-tracker links are biased and the underlying reports are frequently mistyped, and matching keywords in commit messages is a coarse heuristic. This paper examines whether commits can be labelled as bug fixes from their content alone, using open-weight language models that run locally and therefore keep the process reproducible, inexpensive at corpus scale, usable on proprietary code, and independent of any issue tracker. Against datasets of manually validated and curated bug fixes spanning Java, Python, and JavaScript, we compare a keyword baseline with a set of open-weight models of varying size, prompting each with the commit message and the code diff. On the manually validated corpus the keyword baseline recovers fewer than half of the fixes, whereas the open-weight models recover the large majority and outperform it repository by repository with statistical significance, and larger models do not consistently outperform smaller ones. We further show that evaluation corpora without negative examples cannot support a precision-aware comparison of such classifiers. We release the labelling pipeline together with a labelled, multi-language corpus produced by the recommended configuration, as a reproducible silver-standard resource for building current, project-specific datasets.

著者のコメント

19 pages, 6 figures

arXiv ID: 2609.21616 / 要約の誤りについて