論文の概要: LLM-Based Repair of Static Nullability Errors
- arxiv url: http://arxiv.org/abs/2507.20674v1
- Date: Mon, 28 Jul 2025 09:55:04 GMT
- ステータス: 翻訳完了
- システム内更新日: 2025-07-29 16:23:58.072392
- Title: LLM-Based Repair of Static Nullability Errors
- Title(参考訳): LLMによる静的Nullabilityエラーの修復
- Authors: Nima Karimipour, Michael Pradel, Martin Kellogg, Manu Sridharan,
- Abstract要約: 我々は、nullability Checkerからnullabilityエラーを解決するための構造化ワークフローにLLMを統合するシステムであるNullRepairを提案する。
NullRepairは、最先端のアノテーション推論技術を適用した後に残るエラーの平均72%を解決している。
NullRepair は、ナリープロップされた LLM とは異なり、プログラムのセマンティクスもほとんど保存している。
- 参考スコア(独自算出の注目度): 14.857404348789201
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Modern Java projects increasingly adopt static analysis tools that prevent null-pointer exceptions by treating nullness as a type property. However, integrating such tools into large, existing codebases remains a significant challenge. While annotation inference can eliminate many errors automatically, a subset of residual errors -- typically a mix of real bugs and false positives -- often persist and can only be resolved via code changes. Manually addressing these errors is tedious and error-prone. Large language models (LLMs) offer a promising path toward automating these repairs, but naively-prompted LLMs often generate incorrect, contextually-inappropriate edits. Resolving a nullability error demands a deep understanding of how a symbol is used across the codebase, often spanning methods, classes, and packages. We present NullRepair, a system that integrates LLMs into a structured workflow for resolving the errors from a nullability checker. NullRepair's decision process follows a flowchart derived from manual analysis of 200 real-world errors. It leverages static analysis to identify safe and unsafe usage regions of symbols, using error-free usage examples to contextualize model prompts. Patches are generated through an iterative interaction with the LLM that incorporates project-wide context and decision logic. Our evaluation on 12 real-world Java projects shows that NullRepair resolves an average of 72% of the errors that remain after applying a state-of-the-art annotation inference technique. Unlike a naively-prompted LLM, NullRepair also largely preserves program semantics, with all unit tests passing in 10/12 projects after applying every edit proposed by NullRepair, and 98% or more tests passing in the remaining two projects.
- Abstract(参考訳): 最新のJavaプロジェクトは、nullnessを型プロパティとして扱うことでnull-pointer例外を防止する静的解析ツールをますます採用している。
しかし、そのようなツールを大規模な既存のコードベースに統合することは、依然として大きな課題である。
アノテーション推論は自動的に多くのエラーを排除できるが、残留するエラーのサブセット(通常、実際のバグと偽陽性の混合)は、しばしば持続し、コードの変更によってのみ解決される。
これらのエラーに手動で対処するのは面倒で、エラーを起こしやすい。
大規模な言語モデル(LLM)は、これらの修復を自動化するための有望な経路を提供するが、鼻のプロンプトによって、しばしば不正確で文脈的に不適切な編集を生成する。
null許容エラーを解決するには、しばしばメソッド、クラス、パッケージにまたがるコードベースでシンボルがどのように使用されるか、深く理解する必要がある。
我々は、nullability Checkerからエラーを解決するための構造化ワークフローにLLMを統合するシステムであるNullRepairを提案する。
NullRepairの決定プロセスは、200の現実世界のエラーを手動で解析したフローチャートに従っている。
静的解析を利用してシンボルの安全で安全でない使用領域を特定し、エラーのない使用例を使ってモデルプロンプトのコンテキスト化を行う。
パッチは、プロジェクト全体のコンテキストと決定ロジックを含むLCMとの反復的な相互作用によって生成される。
12の実世界のJavaプロジェクトに対する評価は、NullRepairが、最先端のアノテーション推論技術を適用した後に残るエラーの平均72%を解決していることを示している。
NullRepairが提案したすべての編集を適用した後、すべてのユニットテストが10/12プロジェクトを通過し、残りの2つのプロジェクトで98%以上のテストがパスする。
関連論文リスト
- CompassVerifier: A Unified and Robust Verifier for LLMs Evaluation and Outcome Reward [50.97588334916863]
評価と結果報酬のための正確で堅牢な軽量検証モデルであるCompassVerifierを開発した。
数学、知識、多種多様な推論タスクにまたがる多分野の能力を示し、様々な答えの型を処理する能力を示す。
我々は,複数のデータソースから収集したモデル出力からなるVerifierBenchベンチマークを導入し,メタエラーパターンを手動で解析してCompassVerifierを強化する。
論文 参考訳(メタデータ) (2025-08-05T17:55:24Z) - Repairing vulnerabilities without invisible hands. A differentiated replication study on LLMs [5.10123605644148]
自動脆弱性修復(AVR: Automated Vulnerability repair)は、プログラム修復の急激な分岐である。
近年の研究では、大きな言語モデル(LLM)が従来の手法より優れていることが示されている。
論文 参考訳(メタデータ) (2025-07-28T16:39:16Z) - Do AI models help produce verified bug fixes? [62.985237003585674]
大規模言語モデルは、ソフトウェアバグの修正に使用される。
本稿では,プログラマが大規模言語モデルを用いて,自身のスキルを補完する方法について検討する。
その結果は、プログラムバグに対する保証された修正を提供するAIとLLMの適切な役割への第一歩となる。
論文 参考訳(メタデータ) (2025-07-21T17:30:16Z) - Specification-Guided Repair of Arithmetic Errors in Dafny Programs using LLMs [84.30534714651093]
本稿では,検証を意識したプログラミング言語であるDafnyに対して,革新的なAPRツールを提案する。
プログラム内の各ステートメントの状態を決定するために、Hoare Logicの使用を含む一連のステップを通じて、障害をローカライズします。
実世界のDafnyプログラムのベンチマークであるDafnyBenchを用いて,我々のアプローチを評価する。
論文 参考訳(メタデータ) (2025-07-04T15:36:12Z) - Empirical Evaluation of Generalizable Automated Program Repair with Large Language Models [4.757323827658957]
自動プログラム修正は、開発者がソフトウェアをメンテナンスするのを助けるバグ修正を提案する。
近年の研究では、LLMを修復に利用できることが示されている。
オープンモデル (Llama 3.3, Qwen 2.5 Coder, DeepSeek R1 (dist.) など) やクローズドモデル (o3-mini, GPT-4o, Claude 3.7 Sonnet, Gemini 2.0 Flash など) を含む,最新の13モデルの多種多様なセットを評価した。
論文 参考訳(メタデータ) (2025-06-03T18:15:14Z) - Eliminating Hallucination-Induced Errors in LLM Code Generation with Functional Clustering [0.0]
機能的クラスタリング(Functional Clustering, ブラックボックスラッパー)は, 覚醒によるほとんどすべてのエラーを排除し, 調整可能な信頼スコアを提供する。
我々の検証は、解決可能なタスクのベースラインパス@1を保存するが、返却された回答のエラー率を65%から2%に下げる。
このメソッドはサンプリングとサンドボックスの実行のみを必要とするため、クローズドソースAPIや将来のモデルには適用されない。
論文 参考訳(メタデータ) (2025-05-16T18:19:38Z) - Everything You Wanted to Know About LLM-based Vulnerability Detection But Were Afraid to Ask [30.819697001992154]
大規模言語モデルは、自動脆弱性検出のための有望なツールである。
LLMは現実世界の脆弱性を検出するのに本当に効果的か?
本稿では, LLM は (i) 信頼できないこと, (ii) コードパッチに敏感であること, (iii) モデルスケールにまたがる性能評価の3つを, 広く支持されているコミュニティの信念に異議を唱える。
論文 参考訳(メタデータ) (2025-04-18T05:32:47Z) - Subtle Errors in Reasoning: Preference Learning via Error-injected Self-editing [59.405145971637204]
eRror-Injected Self-Editing (RISE) と呼ばれる新しい好み学習フレームワークを提案する。
RISEは、事前定義された微妙なエラーをピボットトークンに注入する。
RISEの有効性を検証する実験では、Qwen2-7B-Instructでの優先学習により、GSM8Kでは3.0%、MATHでは7.9%が顕著に改善され、トレーニングサンプルは4.5Kに留まった。
論文 参考訳(メタデータ) (2024-10-09T07:43:38Z) - SORRY-Bench: Systematically Evaluating Large Language Model Safety Refusal [64.9938658716425]
SORRY-Benchは、安全でないユーザ要求を認識し拒否する大規模言語モデル(LLM)能力を評価するためのベンチマークである。
まず、既存の手法では、安全でないトピックの粗い分類を使い、いくつかのきめ細かいトピックを過剰に表現している。
第二に、プロンプトの言語的特徴とフォーマッティングは、様々な言語、方言など、多くの評価において暗黙的にのみ考慮されているように、しばしば見過ごされる。
論文 参考訳(メタデータ) (2024-06-20T17:56:07Z) - Aligning the Objective of LLM-based Program Repair [14.935596175148586]
本稿では,大規模言語モデル (LLM) をプログラム修復に適用するための新しいアプローチについて検討する。
我々の中核的な洞察は、LLMのAPR能力は、単にトレーニング目標に出力を合わせるだけで大幅に改善できるということです。
この知見に基づいて、我々はAPRの直接的なプロンプトフレームワークであるD4Cを設計した。
論文 参考訳(メタデータ) (2024-04-13T02:36:40Z) - GenAudit: Fixing Factual Errors in Language Model Outputs with Evidence [64.95492752484171]
GenAudit - 文書基底タスクの事実チェック LLM 応答を支援するためのツール。
GenAuditは、レファレンス文書でサポートされていないクレームを修正したり削除したりすることでLCMレスポンスを編集することを提案し、また、サポートしているように見える事実の参照から証拠を提示する。
GenAuditは、さまざまなドメインから文書を要約する際に、8つの異なるLCM出力でエラーを検出することができる。
論文 参考訳(メタデータ) (2024-02-19T21:45:55Z) - Understanding and Mitigating Classification Errors Through Interpretable
Token Patterns [58.91023283103762]
容易に解釈可能な用語でエラーを特徴付けることは、分類器が体系的なエラーを起こす傾向にあるかどうかを洞察する。
正しい予測と誤予測を区別するトークンのパターンを発見することを提案する。
提案手法であるPremiseが実際によく動作することを示す。
論文 参考訳(メタデータ) (2023-11-18T00:24:26Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。