論文の概要: Refactoring Programs Using Large Language Models with Few-Shot Examples
- arxiv url: http://arxiv.org/abs/2311.11690v1
- Date: Mon, 20 Nov 2023 11:43:45 GMT
- ステータス: 処理完了
- システム内更新日: 2023-11-21 19:03:33.276003
- Title: Refactoring Programs Using Large Language Models with Few-Shot Examples
- Title(参考訳): 少数ショット例による大規模言語モデルを用いたリファクタリングプログラム
- Authors: Atsushi Shirafuji, Yusuke Oda, Jun Suzuki, Makoto Morishita, Yutaka
Watanobe
- Abstract要約: ユーザ記述型Pythonプログラムのより複雑なバージョンを提案するために,大規模言語モデル (LLM) である GPT-3.5 を用いることを実演する。
95.68%のプログラムは、それぞれ10の候補を発生させ、結果として平均的なサイクロマティックな複雑さが17.35%減少することを示した。
- 参考スコア(独自算出の注目度): 20.48175387745551
- License: http://creativecommons.org/licenses/by/4.0/
- Abstract: A less complex and more straightforward program is a crucial factor that
enhances its maintainability and makes writing secure and bug-free programs
easier. However, due to its heavy workload and the risks of breaking the
working programs, programmers are reluctant to do code refactoring, and thus,
it also causes the loss of potential learning experiences. To mitigate this, we
demonstrate the application of using a large language model (LLM), GPT-3.5, to
suggest less complex versions of the user-written Python program, aiming to
encourage users to learn how to write better programs. We propose a method to
leverage the prompting with few-shot examples of the LLM by selecting the
best-suited code refactoring examples for each target programming problem based
on the prior evaluation of prompting with the one-shot example. The
quantitative evaluation shows that 95.68% of programs can be refactored by
generating 10 candidates each, resulting in a 17.35% reduction in the average
cyclomatic complexity and a 25.84% decrease in the average number of lines
after filtering only generated programs that are semantically correct.
Furthermore, the qualitative evaluation shows outstanding capability in code
formatting, while unnecessary behaviors such as deleting or translating
comments are also observed.
- Abstract(参考訳): より複雑で簡単なプログラムは保守性を高め、セキュアでバグのないプログラムを書くのが容易になる重要な要素である。
しかし、その作業負荷と作業プログラムを壊すリスクのため、プログラマはコードのリファクタリングに消極的であり、それによって潜在的な学習経験が失われる。
これを軽減するために,ユーザによるPythonプログラムのより複雑なバージョンを提案するために,大規模言語モデル (LLM) である GPT-3.5 を用いることを実証した。
提案手法は, 単発例を用いたプロンプトの事前評価に基づいて, 対象プログラミング問題毎に最適なコードリファクタリング例を選択することで, 数発例によるプロンプトの活用手法を提案する。
定量的評価の結果、プログラムの95.68%は、それぞれ10個の候補を生成してリファクタリングでき、その結果、平均的な循環的複雑度が17.35%減少し、意味的に正しい生成したプログラムのみをフィルタリングした後の平均行数が25.84%減少した。
さらに、定性評価はコードフォーマッティングにおいて優れた能力を示し、削除やコメントの翻訳といった不要な動作も観察される。
関連論文リスト
- NExT: Teaching Large Language Models to Reason about Code Execution [50.93581376646064]
大規模言語モデル(LLM)のコードは通常、プログラムの表面テキスト形式に基づいて訓練される。
NExTは,プログラムの実行トレースを検査し,実行時の動作を判断する手法である。
論文 参考訳(メタデータ) (2024-04-23T01:46:32Z) - Peer-aided Repairer: Empowering Large Language Models to Repair Advanced Student Assignments [26.236420215606238]
我々は,大規模言語モデルを利用したPaRというフレームワークを開発した。
PaRは、ピアソリューション選択、マルチソースプロンプト生成、プログラム修復の3段階で動作する。
Defects4DSと他のよく検証されたTHEPデータセットの評価は、PaRが新しい最先端のパフォーマンスを達成することを明らかにしている。
論文 参考訳(メタデータ) (2024-04-02T09:12:21Z) - ReGAL: Refactoring Programs to Discover Generalizable Abstractions [59.05769810380928]
Generalizable Abstraction Learning (ReGAL)は、再利用可能な関数のライブラリをコード化して学習する手法である。
ReGALによって発見された共有関数ライブラリは、プログラムが様々な領域で容易に予測できることを示している。
CodeLlama-13Bでは、ReGALはLOGOで11.5%、日付理解で26.1%、TextCraftで8.1%という絶対精度が向上し、3つのドメインのうち2つでGPT-3.5を上回った。
論文 参考訳(メタデータ) (2024-01-29T18:45:30Z) - Moving beyond Deletions: Program Simplification via Diverse Program
Transformations [11.038120567076772]
開発者は手動でプログラムを単純化する(この論文では開発者によるプログラムの単純化として知られている)。
手作業の労力を減らすために、ルールベースのアプローチ(例えば、削除に基づくアプローチ)は、開発者によるプログラムの単純化を自動化するために潜在的に適用できる。
単純化されたプログラムを自動生成するツールであるSimpT5を提案する。
評価の結果,SimpT5は開発者によるプログラムの単純化の自動化において,従来の手法よりも効果的であることが示唆された。
論文 参考訳(メタデータ) (2024-01-26T22:59:43Z) - LPR: Large Language Models-Aided Program Reduction [9.772279651428406]
本稿では,LLMを用いて複数の言語に対して言語固有のプログラム還元を行う最初の手法であるLPRを提案する。
有効性のために、LPRは、C、Rust、JavaScriptのベンチマークで24.93%、4.47%、11.71%の小さなプログラムを生成することでVulcanを上回っている。
論文 参考訳(メタデータ) (2023-12-20T14:43:36Z) - Coder Reviewer Reranking for Code Generation [56.80381384717]
本稿では,コード言語モデルから多様なプログラムを抽出し,モデル確率で再ランク付けする手法として,Coder-Reviewerの再ランク付けを提案する。
実験の結果、Coder-Reviewerのリランクは、Coderモデルのみのリランクよりも一貫性と大幅な改善をもたらすことが示された。
Coder-Reviewerのリランクは、プロンプトによって実装が容易で、異なるプログラミング言語に一般化でき、既定のハイパーパラメータとうまく機能する。
論文 参考訳(メタデータ) (2022-11-29T18:56:33Z) - Fault-Aware Neural Code Rankers [64.41888054066861]
サンプルプログラムの正しさを予測できる故障認識型ニューラルネットワークローダを提案する。
我々のフォールト・アウェア・ローダは、様々なコード生成モデルのpass@1精度を大幅に向上させることができる。
論文 参考訳(メタデータ) (2022-06-04T22:01:05Z) - Learning from Self-Sampled Correct and Partially-Correct Programs [96.66452896657991]
そこで本研究では,モデルが学習中にサンプリングを行い,自己サンプリングされた完全正当プログラムと部分正当プログラムの両方から学習することを提案する。
自己サンプリング型プログラムと部分修正型プログラムを併用することで,学習とサンプリングプロセスのガイドに役立てることができることを示す。
提案手法は,MLEを用いた単一の参照プログラムからの学習と比較して,パス@kの性能を3.1%から12.3%向上させる。
論文 参考訳(メタデータ) (2022-05-28T03:31:07Z) - Natural Language to Code Translation with Execution [82.52142893010563]
実行結果-プログラム選択のための最小ベイズリスク復号化。
そこで本研究では,自然言語からコードへのタスクにおいて,事前訓練されたコードモデルの性能を向上することを示す。
論文 参考訳(メタデータ) (2022-04-25T06:06:08Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。