広告

見ることは支配することではない:コード生成のためにLLMにプライベートライブラリを使わせる学習

arXiv cs.CL / 2026/3/30

💬 オピニオンIdeas & Deep AnalysisModels & Research

要点

  • 本論文は、検索して取得したプライベートライブラリのAPIドキュメントをLLMのコンテキストに単に注入するだけでは、コード生成中のプライベートライブラリAPI呼び出しを確実に行うには不十分であることを示している。
  • PriCoderを提案し、自動的にグラフとしてモデル化した学習データを合成し、Progressive Graph Evolution(漸進的グラフ進化)およびMultidimensional Graph Pruning(多次元グラフ剪定)によって洗練することで、プライベートライブラリAPIの利用にLLMを学習させる。
  • 著者らは、新たに構築したベンチマークを用いて、最近リリースされ以前はモデルにとって未知だったライブラリを対象に、3つの主要なLLMでPriCoderを評価する。
  • 結果は、PriCoderがプライベートライブラリ志向のコード生成において大幅な改善(しばしばpass@1で20%超)をもたらしつつ、汎用的なコード生成の性能への影響は最小限であることを示している。
  • PriCoderのコードとベンチマークは公開されており、さらなる研究と再現性を支援する。

Abstract

大規模言語モデル(LLM)はコード生成に対して強い可能性を示している一方で、目標がプライベートライブラリのAPIを用いてコードを生成することにある「プライベートライブラリ志向のコード生成」では依然として制約があります。既存のアプローチの多くは、プライベートライブラリのAPIドキュメントを取得し、推論時に関連する知識を文脈へ注入することに主に依存しています。しかし、私たちの研究はこれでは不十分であることを示しています。必要な知識が正確に与えられていたとしても、LLMはプライベートライブラリのAPIを効果的に呼び出すことに依然として苦労します。 この制約に対処するために、私たちはPriCoderというアプローチを提案します。PriCoderは、自動的に合成されたデータを通じて、LLMにプライベートライブラリAPIの呼び出し方を教えます。具体的には、PriCoderはプライベートライブラリデータの合成をグラフの構築としてモデル化し、2つのグラフ演算子を交互に適用します。(1)Progressive Graph Evolution(段階的グラフ進化)で、基本となるデータからより多様な学習サンプルを段階的に合成することでデータの多様性を高め、(2)Multidimensional Graph Pruning(多次元グラフ枝刈り)で、厳密なフィルタリングのパイプラインによってデータ品質を高めます。厳密な評価を支えるために、最近リリースされた、テスト対象モデルにとって馴染みのないライブラリに基づいて2つの新しいベンチマークを構築します。3つの主要なLLMで行った実験では、PriCoderがプライベートライブラリ志向のコード生成を大幅に改善し、多くの設定でpass@1が20%超の向上をもたらす一方で、汎用的なコード生成能力への影響はごくわずかでした。私たちのコードとベンチマークはhttps://github.com/eniacode/PriCoder で公開されています。

広告