論文の概要: 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%を超えている。
関連論文リスト
- Crystal: Illuminating LLM Abilities on Language and Code [58.5467653736537]
本稿では,自然言語と符号化機能の統合性を高めるための事前学習戦略を提案する。
結果のモデルであるCrystalは、両方のドメインで顕著な能力を示します。
論文 参考訳(メタデータ) (2024-11-06T10:28:46Z) - Unraveling the Potential of Large Language Models in Code Translation: How Far Are We? [4.616570111453259]
大規模言語モデル(LLM)は様々なタスクにおいて最先端のパフォーマンスを示すが、コード翻訳には苦労する。
コード翻訳タスクにおけるLLMの能力と能力を利用するための大規模な実証的研究を行う。
提案手法は,(1)ソースと対象言語間の中間言語を選択する中間翻訳と,(2)自己生成並列データ上でLPMを微調整する自己学習である。
論文 参考訳(メタデータ) (2024-10-13T12:20:12Z) - CRUXEval-X: A Benchmark for Multilingual Code Reasoning, Understanding and Execution [50.7413285637879]
CRUXEVAL-Xコード推論ベンチマークには19のプログラミング言語が含まれている。
各言語に対して少なくとも600人の被験者で構成され、合計19Kのコンテンツ一貫性テストがある。
Pythonでのみトレーニングされたモデルでさえ、他の言語で34.4%のPass@1を達成することができる。
論文 参考訳(メタデータ) (2024-08-23T11:43:00Z) - InverseCoder: Unleashing the Power of Instruction-Tuned Code LLMs with Inverse-Instruct [43.7550233177368]
本稿では,逆ではなくコードスニペットからの命令を要約したINVERSE-INSTRUCTを提案する。
InverseCoder というコード LLM のシリーズを提示する。これは、広範囲のベンチマークにおいて、元のコード LLM のパフォーマンスを上回ります。
論文 参考訳(メタデータ) (2024-07-08T08:00:05Z) - PromptReps: Prompting Large Language Models to Generate Dense and Sparse Representations for Zero-Shot Document Retrieval [76.50690734636477]
本稿では,PmptRepsを提案する。このPmptRepsは,トレーニングを必要とせず,コーパス全体から検索できる機能である。
検索システムは、高密度テキスト埋め込みとスパースバッグ・オブ・ワード表現の両方を利用する。
論文 参考訳(メタデータ) (2024-04-29T04:51:30Z) - 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) - 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) - 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)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。