[論文レビュー] To See is Not to Master: Teaching LLMs to Use Private Libraries for Code Generation
PriCoderはグラフベースのデータ生成プロセスを通じて private-library API の呼び出しをLLMに学習させ、 private-library指向のコード生成を大幅に改善します。未知のライブラリでは影響を最小限に抑えつつ、高品質なトレーニングデータを自動生成します。
Large Language Models (LLMs) have shown strong potential for code generation, yet they remain limited in private-library-oriented code generation, where the goal is to generate code using APIs from private libraries. Existing approaches mainly rely on retrieving private-library API documentation and injecting relevant knowledge into the context at inference time. However, our study shows that this is insufficient: even given accurate required knowledge, LLMs still struggle to invoke private-library APIs effectively. To address this limitation, we propose PriCoder, an approach that teaches LLMs to invoke private-library APIs through automatically synthesized data. Specifically, PriCoder models private-library data synthesis as the construction of a graph, and alternates between two graph operators: (1) Progressive Graph Evolution, which improves data diversity by progressively synthesizing more diverse training samples from basic ones, and (2) Multidimensional Graph Pruning, which improves data quality through a rigorous filtering pipeline. To support rigorous evaluation, we construct two new benchmarks based on recently released libraries that are unfamiliar to the tested models. Experiments on three mainstream LLMs show that PriCoder substantially improves private-library-oriented code generation, yielding gains of over 20% in pass@1 in many settings, while causing negligible impact on general code generation capability. Our code and benchmarks are publicly available at https://github.com/eniacode/PriCoder.
研究の動機と目的
- API知識を提供するだけでは、LLMsによるprivate-library API呼び出しをコード生成タスクで効果的に行うには不十分であることを実証する。
- PriCoderを導入し、private librariesを呼び出すLLMsを訓練するグラフベースのデータ合成フレームワークを提案する。
- PriCoderが未知のライブラリでのprivate-library指向のコード生成を改善し、一般的なコードタスクへの影響を最小限に留めることを示す。
- 評価モデルが未知のライブラリを含む厳密なベンチマークを提供し、private-library機能を評価する。
提案手法
- APIとサンプルノードを含むグラフ構築としてprivate-libraryデータ合成をモデル化する。
- Progressive Graph Evolutionを用いてグラフを拡張し、多様なトレーニングサンプルを生成する。
- Multidimensional Graph Pruningでサンプルの品質を低品質なもの(構文、実行、機能チェック)を除去して削減する。
- 合成データセットに対して最大尤度学習目的でLLMsをファインチューニングする。
- Retrieved API知識をプロンプトに取り込みRetrieval-Augmented Generationと組み合わせる可能性がある。
実験結果
リサーチクエスチョン
- RQ1RQ1: PriCoderは-baselinesと比較してprivate-library指向のコード生成でどの程度性能を発揮するか。
- RQ2RQ2: PriCoderは公開ベンチマークで一般的なコード生成能力を低下させるか。
- RQ3RQ3: PriCoderの各構成要素(Progressive Graph EvolutionとMultidimensional Graph Pruning)の寄与はどれくらいか。
- RQ4RQ4: データ合成のスケールとLLMの選択はPriCoderの有効性にどう影響するか。
主な発見
- PriCoderはprivate-library指向のコード生成を大幅に改善し、多くの設定で3つの主流LLMにおいてpass@1が20%以上向上。
- 新しいベンチマークNdonnxEvalとNumbaEvalでpass@kが30%以上向上する場面が多数見られる。
- 改善は一般的なコード生成能力への影響がほとんどないことと共に現れる(公開ベンチマークで示される)。
- アブレーション研究によりProgressive Graph EvolutionとMultidimensional Graph Pruningの両方が効果のために不可欠であることが確認される。
- 新たなprivate-libraryベンチマークNdonnxEvalとNumbaEvalではPriCoderなしではAPI呼び出しが依然として難しく、アプローチの価値を強調している。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。