論文の概要: When LLMs Meet API Documentation: Can Retrieval Augmentation Aid Code Generation Just as It Helps Developers?
- arxiv url: http://arxiv.org/abs/2503.15231v1
- Date: Wed, 19 Mar 2025 14:08:47 GMT
- ステータス: 翻訳完了
- システム内更新日: 2025-03-20 15:24:48.341281
- Title: When LLMs Meet API Documentation: Can Retrieval Augmentation Aid Code Generation Just as It Helps Developers?
- Title(参考訳): LLMがAPIドキュメンテーションと出会う時: 開発者の助けになるようにコード生成を支援することができるか?
- Authors: Jingyi Chen, Songqiang Chen, Jialun Cao, Jiasi Shen, Shing-Chi Cheung,
- Abstract要約: Retrieval-augmented Generation (RAG) は、学習前の知識を超えて、大規模言語モデルの能力(LLM)を拡大する能力を示している。
検索と生成のための新たな知識として,あまり一般的でないAPIライブラリのドキュメンテーションを使用することの有効性に影響を与える要因について検討する。
- 参考スコア(独自算出の注目度): 10.204379646375182
- License:
- Abstract: Retrieval-augmented generation (RAG) has increasingly shown its power in extending large language models' (LLMs') capability beyond their pre-trained knowledge. Existing works have shown that RAG can help with software development tasks such as code generation, code update, and test generation. Yet, the effectiveness of adapting LLMs to fast-evolving or less common API libraries using RAG remains unknown. To bridge this gap, we take an initial step to study this unexplored yet practical setting - when developers code with a less common library, they often refer to its API documentation; likewise, when LLMs are allowed to look up API documentation via RAG, to what extent can LLMs be advanced? To mimic such a setting, we select four less common open-source Python libraries with a total of 1017 eligible APIs. We study the factors that affect the effectiveness of using the documentation of less common API libraries as additional knowledge for retrieval and generation. Our intensive study yields interesting findings: (1) RAG helps improve LLMs' performance by 83%-220%. (2) Example code contributes the most to advance LLMs, instead of the descriptive texts and parameter lists in the API documentation. (3) LLMs could sometimes tolerate mild noises (typos in description or incorrect parameters) by referencing their pre-trained knowledge or document context. Finally, we suggest that developers pay more attention to the quality and diversity of the code examples in the API documentation. The study sheds light on future low-code software development workflows.
- Abstract(参考訳): Retrieval-augmented Generation (RAG) は、学習前の知識を超えて、大規模言語モデルの能力(LLM)を拡大する能力を示している。
既存の研究によると、RAGはコード生成、コード更新、テスト生成といったソフトウェア開発タスクに役立つ。
しかし、RAGを使用した高速進化またはあまり一般的でないAPIライブラリにLLMを適用する効果は、まだ不明である。
このギャップを埋めるために、私たちはこの未調査の実践的な状況を研究するために、最初の一歩を踏み出した – 開発者があまり一般的でないライブラリでコーディングする場合、しばしばAPIドキュメントを参照します。
このような設定を模倣するために、合計1017のAPIを持つ4つのあまり一般的でないオープンソースPythonライブラリを選択します。
検索と生成のための新たな知識として,あまり一般的でないAPIライブラリのドキュメンテーションを使用することの有効性に影響を与える要因について検討する。
1)RAGはLLMの性能を83%-220%向上させる。
2) 例コードは、APIドキュメントにある記述的なテキストやパラメータリストの代わりに、先進的なLCMに最も貢献します。
(3) LLMは、事前学習した知識や文書のコンテキストを参照することで、軽度のノイズ(説明や誤ったパラメータのチポ)を許容することがある。
最後に、開発者はAPIドキュメントのコード例の品質と多様性にもっと注意を払うことを提案します。
この研究は、将来のローコードソフトウェア開発ワークフローに光を当てている。
関連論文リスト
- Your Fix Is My Exploit: Enabling Comprehensive DL Library API Fuzzing with Large Language Models [49.214291813478695]
AIアプリケーションで広く使用されているディープラーニング(DL)ライブラリは、オーバーフローやバッファフリーエラーなどの脆弱性を含むことが多い。
従来のファジィングはDLライブラリの複雑さとAPIの多様性に悩まされている。
DLライブラリのためのLLM駆動ファジィ手法であるDFUZZを提案する。
論文 参考訳(メタデータ) (2025-01-08T07:07:22Z) - ExploraCoder: Advancing code generation for multiple unseen APIs via planning and chained exploration [70.26807758443675]
ExploraCoderはトレーニング不要のフレームワークで、大規模な言語モデルにコードソリューションで見えないAPIを呼び出す権限を与える。
ExploraCoderは,事前のAPI知識を欠いたモデルのパフォーマンスを著しく向上させ,NAGアプローチの11.24%,pass@10の事前トレーニングメソッドの14.07%を絶対的に向上させることを示す。
論文 参考訳(メタデータ) (2024-12-06T19:00:15Z) - A Comprehensive Framework for Evaluating API-oriented Code Generation in Large Language Models [14.665460257371164]
GitHub CopilotやChatGPTのような大規模言語モデル(LLM)は、コード生成の強力なツールとして登場した。
API指向コード生成におけるLLMの機能を評価するために設計されたフレームワークであるAutoAPIEvalを提案する。
論文 参考訳(メタデータ) (2024-09-23T17:22:09Z) - CodeUpdateArena: Benchmarking Knowledge Editing on API Updates [77.81663273436375]
コードドメインの知識編集のためのベンチマークであるCodeUpdateArenaを提示する。
私たちのベンチマークのインスタンスは、プログラム合成例と組み合わせた合成API関数のアップデートで構成されています。
ベンチマークでは、7つのPythonパッケージから54の関数へ、さまざまなタイプの更新をカバーしています。
論文 参考訳(メタデータ) (2024-07-08T17:55:04Z) - LLMs Meet Library Evolution: Evaluating Deprecated API Usage in LLM-based Code Completion [13.633501449498402]
APIの使用を分解することは、大規模言語モデル(LLM)ベースのコード補完の問題である。
この研究には、7つの高度なLLM、人気のあるPythonライブラリの145のAPIマッピング、28125の補完プロンプトが含まれていた。
本稿では,REPLACEAPIとINSERTPROMPTの2つの軽量固定手法を提案する。
論文 参考訳(メタデータ) (2024-06-14T08:44:10Z) - VersiCode: Towards Version-controllable Code Generation [58.82709231906735]
大規模言語モデル(LLM)は、コード生成において大きな進歩を遂げていますが、既存の研究は、ソフトウェア開発の動的な性質を説明できません。
バージョン別コード補完(VSCC)とバージョン別コードマイグレーション(VACM)の2つの新しいタスクを提案する。
VersiCodeについて広範な評価を行い、バージョン管理可能なコード生成が確かに重要な課題であることを示した。
論文 参考訳(メタデータ) (2024-06-11T16:15:06Z) - Compositional API Recommendation for Library-Oriented Code Generation [23.355509276291198]
我々は、粗粒度要求のためのAPIを推奨するために、"diide-and-conquer"戦略を採用するCAPIRを提案する。
RAPID(Documentationに基づく推奨API)とLOCG(Library-Oriented Code Generation)の2つの挑戦的なベンチマークを提示する。
これらのベンチマーク実験の結果,既存のベースラインと比較してCAPIRの有効性が示された。
論文 参考訳(メタデータ) (2024-02-29T18:27:27Z) - Evaluating In-Context Learning of Libraries for Code Generation [35.57902679044737]
大規模言語モデル(LLM)は高いレベルのコード生成と理解能力を示す。
近年の研究では、大規模プロプライエタリなLLMがデモから新しいライブラリの使用法を学習できることが示されている。
論文 参考訳(メタデータ) (2023-11-16T07:37:25Z) - LLatrieval: LLM-Verified Retrieval for Verifiable Generation [67.93134176912477]
検証可能な生成は、大きな言語モデル(LLM)がドキュメントをサポートするテキストを生成することを目的としている。
本稿では,LLatrieval (Large Language Model Verified Retrieval)を提案する。
実験により、LLatrievalは幅広いベースラインを著しく上回り、最先端の結果が得られることが示された。
論文 参考訳(メタデータ) (2023-11-14T01:38:02Z) - Private-Library-Oriented Code Generation with Large Language Models [52.73999698194344]
本稿では,大規模言語モデル(LLM)をプライベートライブラリのコード生成に活用することに焦点を当てる。
プログラマがプライベートコードを書く過程をエミュレートする新しいフレームワークを提案する。
TorchDataEval、TorchDataComplexEval、MonkeyEval、BeatNumEvalの4つのプライベートライブラリベンチマークを作成しました。
論文 参考訳(メタデータ) (2023-07-28T07:43:13Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。