論文の概要: Refactoring to Pythonic Idioms: A Hybrid Knowledge-Driven Approach Leveraging Large Language Models
- arxiv url: http://arxiv.org/abs/2406.03660v1
- Date: Thu, 6 Jun 2024 00:22:46 GMT
- ステータス: 処理完了
- システム内更新日: 2024-06-07 18:55:13.480800
- Title: Refactoring to Pythonic Idioms: A Hybrid Knowledge-Driven Approach Leveraging Large Language Models
- Title(参考訳): Pythonic Idiomsへのリファクタリング - 大規模言語モデルを活用したハイブリッドな知識駆動アプローチ
- Authors: Zejun Zhang, Zhenchang Xing, Xiaoxue Ren, Qinghua Lu, Xiwei Xu,
- Abstract要約: 多くのPythonユーザは、Pythonのイディオムを使うのが難しいと感じている。
規則の決定とLLMの適応性に動機付けられ,我々はハイブリッドアプローチを提案する。
- 参考スコア(独自算出の注目度): 23.181371435793494
- License: http://creativecommons.org/licenses/by/4.0/
- Abstract: Pythonic idioms are highly valued and widely used in the Python programming community. However, many Python users find it challenging to use Pythonic idioms. Adopting a rule-based approach or LLM-only approach is not sufficient to overcome three persistent challenges of code idiomatization including code miss, wrong detection and wrong refactoring. Motivated by the determinism of rules and adaptability of LLMs, we propose a hybrid approach consisting of three modules. We not only write prompts to instruct LLMs to complete tasks, but we also invoke Analytic Rule Interfaces (ARIs) to accomplish tasks. The ARIs are Python code generated by prompting LLMs to generate code. We first construct a knowledge module with three elements including ASTscenario, ASTcomponent and Condition, and prompt LLMs to generate Python code for incorporation into an ARI library for subsequent use. After that, for any syntax-error-free Python code, we invoke ARIs from the ARI library to extract ASTcomponent from the ASTscenario, and then filter out ASTcomponent that does not meet the condition. Finally, we design prompts to instruct LLMs to abstract and idiomatize code, and then invoke ARIs from the ARI library to rewrite non-idiomatic code into the idiomatic code. Next, we conduct a comprehensive evaluation of our approach, RIdiom, and Prompt-LLM on nine established Pythonic idioms in RIdiom. Our approach exhibits superior accuracy, F1-score, and recall, while maintaining precision levels comparable to RIdiom, all of which consistently exceed or come close to 90% for each metric of each idiom. Lastly, we extend our evaluation to encompass four new Pythonic idioms. Our approach consistently outperforms Prompt-LLM, achieving metrics with values consistently exceeding 90% for accuracy, F1-score, precision, and recall.
- Abstract(参考訳): Pythonのイディオムは高く評価されており、Pythonプログラミングコミュニティで広く使われている。
しかし、多くのPythonユーザはPythonのイディオムを使うのが難しいと感じている。
ルールベースのアプローチやLLMのみのアプローチを採用するだけでは、コードミス、間違った検出、誤ったリファクタリングを含む、コードの慣用化に関する3つの難題を克服するには不十分だ。
3つのモジュールからなるハイブリッドアプローチを提案する。
LLMにタスクを完了するように指示するプロンプトを書くだけでなく、タスクを達成するためにARI(Analytic Rule Interfaces)を呼び出す。
ARIはLLMにコードを生成するよう促したPythonコードである。
まず,ASTscenario,ASTcomponent,Conditionの3要素からなるナレッジモジュールを構築し,LLMにARIライブラリに組み込むPythonコードを生成するように促した。
その後、構文エラーのないPythonコードに対して、ARIライブラリからARIを呼び出し、ASTscenarioからASTcomponentを抽出し、条件を満たしないASTcomponentをフィルタリングします。
最後に、ALIライブラリからALIを呼び出し、非慣用的なコードをイディオマティックコードに書き直すようにLCMに指示するプロンプトを設計する。
次に, RIdiom と Prompt-LLM のアプローチを, RIdiom で確立された Python のイディオム9つに対して総合的に評価する。
提案手法は精度,F1スコア,リコールに優れ,精度はリディオムに匹敵する。
最後に、評価を4つの新しいPythonイディオムに拡張する。
提案手法はPrompt-LLMを常に上回り,精度,F1スコア,精度,リコールの90%を超えている。
関連論文リスト
- InverseCoder: Unleashing the Power of Instruction-Tuned Code LLMs with Inverse-Instruct [43.7550233177368]
本稿では,逆ではなくコードスニペットからの命令を要約したINVERSE-INSTRUCTを提案する。
InverseCoder というコード LLM のシリーズを提示する。これは、広範囲のベンチマークにおいて、元のコード LLM のパフォーマンスを上回ります。
論文 参考訳(メタデータ) (2024-07-08T08:00:05Z) - AI Coders Are Among Us: Rethinking Programming Language Grammar Towards Efficient Code Generation [14.831115535710692]
私たちはSimple Python(SimPy)という,Pythonの最初のAI指向文法を実装しました。
オリジナルのPythonと比較して、SimPyはトークン使用量を13.5%削減し、CodeLlamaとGPT-4は10.4%削減した。
論文 参考訳(メタデータ) (2024-04-25T04:46:02Z) - Executable Code Actions Elicit Better LLM Agents [76.95566120678787]
この研究は、Pythonコードを使用して、Large Language Model(LLM)エージェントのアクションを統一されたアクション空間(CodeAct)に統合することを提案する。
Pythonインタプリタと統合されたCodeActは、コードアクションを実行し、事前アクションを動的に修正したり、マルチターンインタラクションを通じて新しい観察に新しいアクションを発行することができる。
CodeActのパフォーマンス向上は、解釈可能なコードを実行し、自然言語を使ってユーザとコラボレーションすることで、環境と対話するオープンソースのLLMエージェントを構築する動機となります。
論文 参考訳(メタデータ) (2024-02-01T21:38:58Z) - If LLM Is the Wizard, Then Code Is the Wand: A Survey on How Code
Empowers Large Language Models to Serve as Intelligent Agents [81.60906807941188]
大型言語モデル(LLM)は、自然言語と形式言語(コード)の組み合わせに基づいて訓練される
コードは、標準構文、論理一貫性、抽象化、モジュール性を備えた高レベルの目標を実行可能なステップに変換する。
論文 参考訳(メタデータ) (2024-01-01T16:51:20Z) - The Ups and Downs of Large Language Model Inference with Vocabulary Trimming by Language Heuristics [74.99898531299148]
本研究は,興味のある言語への埋め込みエントリを制限し,時間と記憶効率を高めることによる語彙トリミング(VT)について検討する。
Unicodeベースのスクリプトフィルタリングとコーパスベースの選択という2つの言語を異なる言語ファミリやサイズに適用する。
その結果、VTは小型モデルのメモリ使用量を50%近く削減し、生成速度が25%向上した。
論文 参考訳(メタデータ) (2023-11-16T09:35:50Z) - LPML: LLM-Prompting Markup Language for Mathematical Reasoning [8.995617701116142]
外部ツール(Python REPL)とChain-of-Thought(CoT)メソッドを統合する新しいフレームワークを提案する。
提案手法は,ゼロショットプロンプトのみを用いて,LLMがマークアップ言語を記述し,高度な数学的推論を行うことを可能にする。
論文 参考訳(メタデータ) (2023-09-21T02:46:20Z) - Large Language Models are Strong Zero-Shot Retriever [89.16756291653371]
ゼロショットシナリオにおける大規模検索に大規模言語モデル(LLM)を適用するための簡単な手法を提案する。
我々の手法であるRetriever(LameR)は,LLM以外のニューラルモデルに基づいて構築された言語モデルである。
論文 参考訳(メタデータ) (2023-04-27T14:45:55Z) - LEVER: Learning to Verify Language-to-Code Generation with Execution [64.36459105535]
本稿では,プログラムの実行結果の検証を学習することで,言語からコードへの生成を改善するシンプルな手法であるLEVERを提案する。
具体的には、LLMからサンプリングされたプログラムが、自然言語入力、プログラム自体とその実行結果に基づいて正しいか否かを判定するために、検証者を訓練する。
LEVER はベースコード LLMs (4.6% から 10.9% まで) を継続的に改善し、それらすべてに対して新しい最先端の結果を得る。
論文 参考訳(メタデータ) (2023-02-16T18:23:22Z) - PAL: Program-aided Language Models [112.94785609781503]
自然言語問題を理解するために,プログラム支援言語モデル(PaL)を提案する。
PaLはソリューションステップをPythonインタプリタのようなプログラムランタイムにオフロードする。
私たちは12のベンチマークで新しい最先端の結果を設定しました。
論文 参考訳(メタデータ) (2022-11-18T18:56:13Z) - GAP-Gen: Guided Automatic Python Code Generation [3.574838772430975]
本稿では,Pythonの構文的制約と意味的制約に基づくガイド付き自動Pythonコード生成手法を提案する。
GAP-Genは、Code-to-Docstringデータセットを使用して、トランスフォーマーベースの言語モデルT5とCodeT5を微調整する。
実験の結果,GAP-GenはPythonの自動コード生成タスクにおいて,従来の作業よりも優れた結果が得られることがわかった。
論文 参考訳(メタデータ) (2022-01-19T06:32:47Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。