Retrieval-augmented code completion for local projects using large language models

要約

大規模言語モデル (LLM) の使用は、ソフトウェア開発者の間でますます普及してきています。
ただし、商用ソリューションや LLM の使用では、プライバシーと計算要件に問題があります。
この作業では、ローカルでの実行とローカル プロジェクトから取得した拡張に適した約 1 億 6,000 万個のパラメータを持つ LLM の使用に焦点を当てています。
私たちは、変換アーキテクチャに基づく 2 つのモデル、生成モデル GPT-2 と検索に適応した RETRO モデルをオープンソース Python ファイル上でトレーニングし、それらを経験的に評価および比較し、ベクトル埋め込みベースの検索の利点を確認します。
さらに、トークンの Jaccard 類似性に基づいてコード スニペットを取得する、インコンテキスト検索拡張生成によりモデルのパフォーマンスが向上します。
私たちは、大規模なモデルでインコンテキスト検索拡張生成を評価し、その単純さにもかかわらず、このアプローチは RETRO アーキテクチャを使用するよりも適していると結論付けました。
コード補完において LLM の可能性を最大限に発揮する上で、適切なトークン化が重要な役割を果たすことを強調します。

要約(オリジナル)

The use of large language models (LLMs) is becoming increasingly widespread among software developers. However, privacy and computational requirements are problematic with commercial solutions and the use of LLMs. In this work, we focus on using LLMs with around 160 million parameters that are suitable for local execution and augmentation with retrieval from local projects. We train two models based on the transformer architecture, the generative model GPT-2 and the retrieval-adapted RETRO model, on open-source Python files, and empirically evaluate and compare them, confirming the benefits of vector embedding based retrieval. Further, we improve our models’ performance with In-context retrieval-augmented generation, which retrieves code snippets based on the Jaccard similarity of tokens. We evaluate In-context retrieval-augmented generation on larger models and conclude that, despite its simplicity, the approach is more suitable than using the RETRO architecture. We highlight the key role of proper tokenization in achieving the full potential of LLMs in code completion.

arxiv情報

著者 Marko Hostnik,Marko Robnik-Šikonja
発行日 2024-08-09 12:26:57+00:00
arxivサイト arxiv_id(pdf)

提供元, 利用サービス

arxiv.jp, Google

カテゴリー: 68T07, 68T50, cs.LG, cs.SE パーマリンク