核心概念
LLMを使用したゼロショットでのプロンプトエンジニアリングにより、パフォーマンスバグを効率的に修正できる。
摘要
本論文は、パフォーマンスバグの修正に取り組む新しいアプローチ「Retrieval-Augmented Prompt Generation (RAPGen)」を提案している。RAPGenは、コードスニペットに含まれるパフォーマンス問題を特定し、過去のパフォーマンス修正の知識ベースから適切なプロンプト命令を検索して、LLMにゼロショットで入力することで、修正案を生成する。
具体的には以下の手順で動作する:
- 過去のパフォーマンス修正コミットから、API使用パターンとその修正方法を抽出し、知識ベースを構築する。
- 入力されたコードスニペットに含まれる問題のある行を特定し、知識ベースから関連する修正命令を検索する。
- 問題のある行、修正命令、メソッド署名を組み合わせてプロンプトを構築し、LLMに入力する。
- LLMが生成した修正案を出力する。
評価の結果、RAPGenは既存手法と比べて優れた性能を示し、開発者の修正と同等以上の修正案を約60%の事例で生成できることが分かった。さらに、実際のサービスコードベースでの適用評価でも、開発者に受け入れられた修正案を生成できることを確認した。
本手法は、パフォーマンスバグ修正に特化したプロンプトエンジニアリングアプローチであり、ルールベースの分析器を必要とせず、幅広いバグに対応できる点が特徴である。また、ファインチューニングを必要とせずにLLMの能力を活用できるため、コストが低く抑えられる。
統計資料
パフォーマンスバグは、機能的なバグと比べて検出が難しく、修正も困難である。
パフォーマンスバグは、大きな入力や特定の実行構成で発生することが多く、長期間見逃されがちである。
既存のパフォーマンスバグ修正手法は、特定の種類のバグにしか対応できず、ルールベースのため保守コストが高い。
引述
「パフォーマンスバグは、機能的なバグと比べて検出が難しく、修正も困難である。」
「パフォーマンスバグは、大きな入力や特定の実行構成で発生することが多く、長期間見逃されがちである。」
「既存のパフォーマンスバグ修正手法は、特定の種類のバグにしか対応できず、ルールベースのため保守コストが高い。」