論文の概要: An Empirical Study on the Potential of LLMs in Automated Software Refactoring
- arxiv url: http://arxiv.org/abs/2411.04444v1
- Date: Thu, 07 Nov 2024 05:35:55 GMT
- ステータス: 翻訳完了
- システム内更新日: 2024-11-08 19:39:42.502199
- Title: An Empirical Study on the Potential of LLMs in Automated Software Refactoring
- Title(参考訳): 自動ソフトウェアリファクタリングにおけるLCMの可能性に関する実証的研究
- Authors: Bo Liu, Yanjie Jiang, Yuxia Zhang, Nan Niu, Guangjie Li, Hui Liu,
- Abstract要約: 自動ソフトウェアにおける大規模言語モデル(LLM)の可能性について検討する。
私たちは、ChatGPTが提案した176のソリューションのうち13と、Geminiが提案した137のソリューションのうち9が、ソースコードの機能を変更したり、構文エラーを導入したりすることを安全でないことに気付きました。
- 参考スコア(独自算出の注目度): 9.157968996300417
- License:
- Abstract: Recent advances in large language models (LLMs), make it potentially feasible to automatically refactor source code with LLMs. However, it remains unclear how well LLMs perform compared to human experts in conducting refactorings automatically and accurately. To fill this gap, in this paper, we conduct an empirical study to investigate the potential of LLMs in automated software refactoring, focusing on the identification of refactoring opportunities and the recommendation of refactoring solutions. We first construct a high-quality refactoring dataset comprising 180 real-world refactorings from 20 projects, and conduct the empirical study on the dataset. With the to-be-refactored Java documents as input, ChatGPT and Gemini identified only 28 and 7 respectively out of the 180 refactoring opportunities. However, explaining the expected refactoring subcategories and narrowing the search space in the prompts substantially increased the success rate of ChatGPT from 15.6% to 86.7%. Concerning the recommendation of refactoring solutions, ChatGPT recommended 176 refactoring solutions for the 180 refactorings, and 63.6% of the recommended solutions were comparable to (even better than) those constructed by human experts. However, 13 out of the 176 solutions suggested by ChatGPT and 9 out of the 137 solutions suggested by Gemini were unsafe in that they either changed the functionality of the source code or introduced syntax errors, which indicate the risk of LLM-based refactoring. To this end, we propose a detect-and-reapply tactic, called RefactoringMirror, to avoid such unsafe refactorings. By reapplying the identified refactorings to the original code using thoroughly tested refactoring engines, we can effectively mitigate the risks associated with LLM-based automated refactoring while still leveraging LLM's intelligence to obtain valuable refactoring recommendations.
- Abstract(参考訳): 大規模言語モデル(LLM)の最近の進歩により、LLMでソースコードを自動的にリファクタリングすることが可能になる。
しかし、リファクタリングを自動的かつ正確に実施する上で、LLMが人間専門家と比較してどれだけうまく機能するかは定かではない。
このギャップを埋めるために、本論文では、リファクタリングの機会の同定とリファクタリングソリューションの推奨に焦点をあて、自動リファクタリングにおけるLLMの可能性について、実証的研究を行う。
まず,20のプロジェクトから180個の実世界のリファクタリングからなる高品質なリファクタリングデータセットを構築し,そのデータセットに関する実証的研究を行った。
リファクタリング済みのJavaドキュメントを入力として、ChatGPTとGeminiは180のリファクタリングの機会のうち、それぞれ28と7だけを特定しました。
しかし、予想されるリファクタリングのサブカテゴリを説明し、プロンプトで検索スペースを狭めることで、ChatGPTの成功率は15.6%から86.7%へと大幅に向上した。
リファクタリングソリューションの推奨に関して、ChatGPTは180のリファクタリングに対して176のリファクタリングソリューションを推奨し、推奨されたソリューションの63.6%は、人間の専門家が構築したソリューションに匹敵する(さらに良い)ものだった。
しかし、ChatGPTが提案した176のソリューションのうち13と、Geminiが提案した137のソリューションのうち9は、ソースコードの機能を変更したり、LLMベースのリファクタリングのリスクを示す構文エラーを導入したりして、安全ではない。
この目的のために、このような安全でないリファクタリングを避けるために、RefactoringMirrorと呼ばれる検出および適用可能な戦術を提案する。
完全にテストされたリファクタリングエンジンを使用して、特定されたリファクタリングを元のコードに再適用することにより、LLMのインテリジェンスを活用しながら、LLMベースの自動リファクタリングに関連するリスクを効果的に軽減し、貴重なリファクタリングレコメンデーションを得ることができます。
関連論文リスト
- Grounding by Trying: LLMs with Reinforcement Learning-Enhanced Retrieval [55.63711219190506]
大きな言語モデル(LLM)は、しばしば適切な検索クエリのポーズに苦労する。
私たちは$underlineLe$arningを$underlineRe$trieveに$underlineT$rying (LeReT)を導入します。
LeReTは、絶対精度を最大29%向上し、下流ジェネレータの評価を17%向上させることができる。
論文 参考訳(メタデータ) (2024-10-30T17:02:54Z) - Context-Enhanced LLM-Based Framework for Automatic Test Refactoring [10.847400457238423]
テストの臭いは、設計プラクティスの貧弱さとドメイン知識の不足から生じます。
我々は,Javaプロジェクトにおける自動テストのための文脈拡張型LLMベースのフレームワークUTRefactorを提案する。
6つのオープンソースのJavaプロジェクトから879のテストに対してUTRefactorを評価し、テストの匂いを2,375から265に減らし、89%の削減を実現した。
論文 参考訳(メタデータ) (2024-09-25T08:42:29Z) - FactorLLM: Factorizing Knowledge via Mixture of Experts for Large Language Models [50.331708897857574]
本稿では,高度に訓練された高密度FFNを余分なサブネットワークに分解する新しいアプローチであるFacterLLMを紹介する。
FactorLLMは、最大85%のモデル性能を確保しながら、推論速度を30%以上増加させながら、ソースモデルに匹敵するパフォーマンスを達成する。
論文 参考訳(メタデータ) (2024-08-15T16:45:16Z) - In Search of Metrics to Guide Developer-Based Refactoring Recommendations [13.063733696956678]
モチベーションは、外部の振る舞いを損なうことなく、ソースコードの品質を改善するための確立されたアプローチである。
本研究では,開発者の運用意欲を調査する指標に関する実証的研究を提案する。
実行すべき開発者のモチベーションを把握する上で、製品とプロセスのメトリクスの価値を定量化します。
論文 参考訳(メタデータ) (2024-07-25T16:32:35Z) - Exploring Automatic Cryptographic API Misuse Detection in the Era of LLMs [60.32717556756674]
本稿では,暗号誤用の検出において,大規模言語モデルを評価するための体系的評価フレームワークを提案する。
11,940個のLCM生成レポートを詳細に分析したところ、LSMに固有の不安定性は、報告の半数以上が偽陽性になる可能性があることがわかった。
最適化されたアプローチは、従来の手法を超え、確立されたベンチマークでこれまで知られていなかった誤用を明らかにすることで、90%近い顕著な検出率を達成する。
論文 参考訳(メタデータ) (2024-07-23T15:31:26Z) - 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) - Together We Go Further: LLMs and IDE Static Analysis for Extract Method Refactoring [9.882903340467815]
単一のメソッドに複数の責任をカプセル化する長いメソッドはメンテナンスが難しい。
大規模言語モデル(LLM)は、大規模なコードコーパスで訓練されている。
LLMは非常に効果的であるが、信頼できない。最大76.3%は幻覚である。
論文 参考訳(メタデータ) (2024-01-27T05:01:03Z) - Reinforced Self-Training (ReST) for Language Modeling [56.75447441157628]
人間からのフィードバック(RLHF)からの強化学習は、人間の好みに合わせることで、大きな言語モデル(LLM)の出力の品質を向上させることができる。
強化自己学習(Reinforced Self-Training, ReST)と呼ばれる, バッチ強化学習(RL)の成長にインスパイアされたLLMを人間の好みに合わせるための簡単なアルゴリズムを提案する。
この結果から,ReSTは自動測定値と機械翻訳ベンチマークの人的評価によって,計算とサンプル効率で翻訳品質を大幅に向上させることができることがわかった。
論文 参考訳(メタデータ) (2023-08-17T14:12:48Z) - RefBERT: A Two-Stage Pre-trained Framework for Automatic Rename
Refactoring [57.8069006460087]
本研究では,他のリネーム活動よりも難易度の高い変数名の自動改名について検討する。
変数名に対する名前変更のための2段階事前訓練フレームワークであるRefBERTを提案する。
RefBERTの変数名は既存の手法よりも正確で有意義であることを示す。
論文 参考訳(メタデータ) (2023-05-28T12:29:39Z) - Do code refactorings influence the merge effort? [80.1936417993664]
複数のコントリビュータがソースコードを並行して変更して,新機能の実装やバグの修正,既存のコードの変更などを行っている。
これらの同時変更は、ソースコードの同じバージョンにマージする必要がある。
研究によると、すべてのマージの試みの10~20%が衝突を起こしており、これはプロセスを完了するために手動開発者の介入を必要とする。
論文 参考訳(メタデータ) (2023-05-10T13:24:59Z) - How We Refactor and How We Document it? On the Use of Supervised Machine
Learning Algorithms to Classify Refactoring Documentation [25.626914797750487]
リファクタリングは、外部の振る舞いを変えることなく、システムの設計を改善する技術である。
この研究はコミットを、従来のBugFixやFunctionalのカテゴリとともに、内部QA、外部QA、Code Smell Resolutionの3つのカテゴリに分類する。
分類結果をよりよく理解するために、私たちはコミットメッセージを分析して、開発者が定期的に臭いを説明するために使用するパターンを抽出しました。
論文 参考訳(メタデータ) (2020-10-26T20:33:17Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。