本研究は、大規模言語モデルを用いたクラスレベルのコード生成に取り組んでいる。従来の研究では、関数やステートメントレベルのコード生成に焦点が当てられてきたが、クラスレベルのコード生成には、実世界のソフトウェア開発環境における複雑な依存関係や相互作用が考慮されていない。
本研究では、RepoClassBenchと呼ばれる新しいベンチマークを提案している。このベンチマークには、Javaとpythonのリポジトリから収集された130個のクラスと97個のクラスが含まれており、それぞれのクラスがリポジトリ内の他のコンポーネントに依存している。また、各クラスには対応するテストケースも用意されている。
この新しいベンチマークを用いて、既存の手法の性能を評価した結果、大きな課題があることが明らかになった。そこで本研究では、Retrieve-Repotools-Reflect (RRR)と呼ばれる新しい手法を提案している。RRRは、リポジトリツールを活用してリポジトリコンテキストを効果的に取得・活用し、イテレーティブに推論を行うことで、従来手法を大幅に改善している。
具体的には、RRRは以下のような流れで動作する:
この一連のプロセスを繰り返し行うことで、最終的に全てのテストケースを通過するクラスコードを生成することができる。
実験の結果、RRRは従来手法と比べて大幅な性能向上を示した。特に、類似コードの検索だけでは不十分であり、リポジトリ内の依存関係を理解することが重要であることが明らかになった。また、テストフィードバックの活用や、リポジトリツールの活用が、RRRの高い性能につながっていることが示された。
本研究の成果は、大規模言語モデルによるクラスレベルのコード生成における課題を明らかにし、その解決に向けた新しい手法を提案したものである。今後、より実用的なコード生成技術の開発につながることが期待される。
Başka Bir Dile
kaynak içeriğinden
arxiv.org
Önemli Bilgiler Şuradan Elde Edildi
by Ajinkya Desh... : arxiv.org 05-06-2024
https://arxiv.org/pdf/2405.01573.pdfDaha Derin Sorular