論文の概要: Together We Go Further: LLMs and IDE Static Analysis for Extract Method Refactoring
- arxiv url: http://arxiv.org/abs/2401.15298v2
- Date: Wed, 24 Apr 2024 19:09:52 GMT
- ステータス: 処理完了
- システム内更新日: 2024-04-26 21:08:18.274450
- Title: Together We Go Further: LLMs and IDE Static Analysis for Extract Method Refactoring
- Title(参考訳): LLMとIDE静的解析による抽出メソッドリファクタリング
- Authors: Dorin Pomian, Abhiram Bellur, Malinda Dilhara, Zarina Kurbatova, Egor Bogomolov, Timofey Bryksin, Danny Dig,
- Abstract要約: 単一のメソッドに複数の責任をカプセル化する長いメソッドはメンテナンスが難しい。
大規模言語モデル(LLM)は、大規模なコードコーパスで訓練されている。
LLMは非常に効果的であるが、信頼できない。最大76.3%は幻覚である。
- 参考スコア(独自算出の注目度): 9.882903340467815
- License: http://creativecommons.org/licenses/by/4.0/
- Abstract: Long methods that encapsulate multiple responsibilities within a single method are challenging to maintain. Choosing which statements to extract into new methods has been the target of many research tools. Despite steady improvements, these tools often fail to generate refactorings that align with developers' preferences and acceptance criteria. Given that Large Language Models (LLMs) have been trained on large code corpora, if we harness their familiarity with the way developers form functions, we could suggest refactorings that developers are likely to accept. In this paper, we advance the science and practice of refactoring by synergistically combining the insights of LLMs with the power of IDEs to perform Extract Method (EM). Our formative study on 1752 EM scenarios revealed that LLMs are very effective for giving expert suggestions, yet they are unreliable: up to 76.3% of the suggestions are hallucinations. We designed a novel approach that removes hallucinations from the candidates suggested by LLMs, then further enhances and ranks suggestions based on static analysis techniques from program slicing, and finally leverages the IDE to execute refactorings correctly. We implemented this approach in an IntelliJ IDEA plugin called EM-Assist. We empirically evaluated EM-Assist on a diverse corpus that replicates 1752 actual refactorings from open-source projects. We found that EM-Assist outperforms previous state of the art tools: EM-Assist suggests the developerperformed refactoring in 53.4% of cases, improving over the recall rate of 39.4% for previous best-in-class tools. Furthermore, we conducted firehouse surveys with 16 industrial developers and suggested refactorings on their recent commits. 81.3% of them agreed with the recommendations provided by EM-Assist.
- Abstract(参考訳): 単一のメソッドに複数の責任をカプセル化する長いメソッドはメンテナンスが難しい。
新しい手法にどの文を抽出するかを選択することが、多くの研究ツールの標的となっている。
着実に改善されているにもかかわらず、これらのツールは、開発者の好みや受け入れ基準に沿ってリファクタリングを生成するのに失敗することが多い。
大きな言語モデル(LLM)が大規模なコードコーパスでトレーニングされていることを考えると、開発者が関数を作る方法に精通しているなら、開発者が受け入れそうなリファクタリングを提案するかもしれません。
本稿では,LLMの知見とIDEのパワーを相乗的に組み合わせて抽出法(EM)を実行することにより,リファクタリングの科学と実践を推し進める。
1752 EMシナリオに関する我々のフォーマティブな研究により、LSMは専門家による提案を行うのに非常に効果的であるが、信頼できないことが判明した。
LLMが提案する候補から幻覚を取り除く新しいアプローチを設計し、プログラムスライシングから静的解析技術に基づいて提案をさらに強化・ランク付けし、最終的にIDEを利用してリファクタリングを正しく実行した。
このアプローチは、EM-Assistと呼ばれるIntelliJ IDEAプラグインで実装しました。
我々は,オープンソースプロジェクトから1752個の実際のリファクタリングを複製する多種多様なコーパス上でEM-Assistを実証的に評価した。
EM-Assistは、53.4%のケースで、開発者によるリファクタリングを推奨し、以前のベストプラクティスツールの39.4%のリコール率よりも改善した。
さらに,16人の産業開発者を対象に,暖炉調査を行い,最近のコミットをリファクタリングすることを提案した。
81.3%がEM-Assistの勧告に賛成した。
関連論文リスト
- Optimizing Knowledge Integration in Retrieval-Augmented Generation with Self-Selection [72.92366526004464]
Retrieval-Augmented Generation (RAG) は、Large Language Models (LLM) がより正確で信頼性の高い応答を生成するのに有効であることが証明されている。
本稿では,自己選択型RAGフレームワークを提案する。このフレームワークでは,内部パラメトリック知識のみで生成されたペアの応答からLLMを選択できる。
論文 参考訳(メタデータ) (2025-02-10T04:29:36Z) - An Empirical Study on the Impact of Code Duplication-aware Refactoring Practices on Quality Metrics [5.516979718589074]
128のオープンソースJavaプロジェクトから、日々の変更で開発者が適用し、ドキュメント化した332のコミットのコーパスを抽出します。
我々は、これらの操作が共通の最先端の設計品質指標に与える影響を実証的に分析する。
論文 参考訳(メタデータ) (2025-02-06T13:34:25Z) - Automated Refactoring of Non-Idiomatic Python Code: A Differentiated Replication with LLMs [54.309127753635366]
本研究は, GPT-4の有効性について検討し, 慣用行動の推奨と示唆について検討した。
この結果から,従来は複雑なコード解析に基づくレコメンデータの実装が求められていた,LCMの課題達成の可能性が浮き彫りになった。
論文 参考訳(メタデータ) (2025-01-28T15:41:54Z) - Generating refactored code accurately using reinforcement learning [3.179831861897336]
そこで本研究では,Javaソースコードの自動抽出を行うために,プログラム言語モデルを微調整・整合化するための強化学習に基づく新しい手法を提案する。
提案手法は,PPO(Proximal Policy Optimization)アルゴリズムを用いて,シーケンス・ツー・シーケンス生成モデルを微調整する。
我々の実験は、我々のアプローチがコードにおける大きな言語モデルの性能を大幅に向上させることを示した。
論文 参考訳(メタデータ) (2024-12-23T23:09:48Z) - An Empirical Study on the Potential of LLMs in Automated Software Refactoring [9.157968996300417]
自動ソフトウェアにおける大規模言語モデル(LLM)の可能性について検討する。
私たちは、ChatGPTが提案した176のソリューションのうち13と、Geminiが提案した137のソリューションのうち9が、ソースコードの機能を変更したり、構文エラーを導入したりすることを安全でないことに気付きました。
論文 参考訳(メタデータ) (2024-11-07T05:35:55Z) - FactorLLM: Factorizing Knowledge via Mixture of Experts for Large Language Models [50.331708897857574]
本稿では,高度に訓練された高密度FFNを余分なサブネットワークに分解する新しいアプローチであるFacterLLMを紹介する。
FactorLLMは、最大85%のモデル性能を確保しながら、推論速度を30%以上増加させながら、ソースモデルに匹敵するパフォーマンスを達成する。
論文 参考訳(メタデータ) (2024-08-15T16:45:16Z) - What's Wrong with Your Code Generated by Large Language Models? An Extensive Study [80.18342600996601]
大規模言語モデル(LLM)は、標準解に比べて短いがより複雑なコードを生成する。
3つのカテゴリと12のサブカテゴリを含む誤ったコードに対するバグの分類を開発し、一般的なバグタイプに対する根本原因を分析する。
そこで本研究では,LLMがバグタイプやコンパイラフィードバックに基づいて生成したコードを批判し,修正することのできる,自己批判を導入した新たな学習自由反復手法を提案する。
論文 参考訳(メタデータ) (2024-07-08T17:27:17Z) - SORRY-Bench: Systematically Evaluating Large Language Model Safety Refusal Behaviors [64.9938658716425]
安全でないユーザリクエストを認識して拒否する、大規模な言語モデル(LLM)の既存の評価は、3つの制限に直面している。
まず、既存の手法では、安全でないトピックの粗い粒度を使い、いくつかのきめ細かいトピックを過剰に表現している。
第二に、プロンプトの言語的特徴とフォーマッティングは、様々な言語、方言など、多くの評価において暗黙的にのみ考慮されているように、しばしば見過ごされる。
第3に、既存の評価は大きなLCMに頼っているため、コストがかかる可能性がある。
論文 参考訳(メタデータ) (2024-06-20T17:56:07Z) - EM-Assist: Safe Automated ExtractMethod Refactoring with LLMs [9.474820853051702]
提案を生成し、その後検証し、拡張し、ランク付けするIntelliJ IDEAプラグインであるEM-Assistを紹介します。
オープンソースプロジェクトで実施された1,752の現実世界の評価では、EM-Assistのリコール率はトップ5の中で53.4%であり、以前のベストインクラスのツールでは39.4%だった。
論文 参考訳(メタデータ) (2024-05-31T00:32:04Z) - DnA-Eval: Enhancing Large Language Model Evaluation through Decomposition and Aggregation [75.81096662788254]
大規模言語モデル(LLM)はスケーラブルで経済的な評価指標である。
これらの評価者がどの程度信頼できるかという問題は、重要な研究課題として浮上している。
本稿では,デコンプリートとアグリゲートを提案し,その評価プロセスを教育実践に基づいて異なる段階に分解する。
論文 参考訳(メタデータ) (2024-05-24T08:12:30Z) - Behind the Intent of Extract Method Refactoring: A Systematic Literature
Review [15.194527511076725]
コードは、ソースコードの理解性と保守性を改善するために不可欠なソフトウェアエンジニアリングプラクティスとして広く認識されている。
Extract Method は、開発者がコード品質を改善するためにしばしばそれを適用するため、適用性の "Swiss Army knife" と見なされている。
近年、いくつかの研究が抽出法を推奨し、実行可能なデータ駆動の洞察の収集、分析、啓示を可能にしている。
論文 参考訳(メタデータ) (2023-12-19T21:09:54Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。