講演情報

[A-11-10]RAGを用いたJavaレガシーコードマイグレーション手法の検討

◎△ 古江 倖基1、五反田 正浩2、小比賀 亮仁1、小板 隆浩2 (1. 同志社大、2. 同志社大学大学院)

キーワード:

大規模言語モデル、検索拡張生成、レガシーコードマイグレーション

ソフトウェアのモダナイゼーションにおいて,バージョンアップに伴うコード移行は多大な工数を要する.本研究では,RAGで取得した移行知識をLLMを用いた自動マイグレーションのプロンプトに組み込むことがコード修正および依存関係の特定に与える影響を検証する.提案手法は3ステップで構成される.まず構文解析ツールでASTを構築し,型参照リストRを生成する.次にリストRからパッケージ名を抽出して自然言語クエリを生成し,Oracle移行ガイドとJDKリリースノートをインデックス化したFAISSデータベースから類似度上位3件の移行知識を取得する.最後にGPT-4oが変換コードと依存関係を出力し,依存関係に基づき動的に生成した設定ファイルによりコンパイル検証を行う.評価にはJMigBenchの45件の関数ペア(Java 8から11)を使用し,CSRとCodeBLEUを評価指標とした.RAGなし・依存関係特定のみRAG・本提案手法(両方にRAGを適用)の3条件を比較した結果,CSRは46.7%から68.9%,77.8%へと向上し,RAGの貢献が確認された.一方,本提案手法でCodeBLEUが低下した.RAGありでは変換が促進されるが移行先が正解コードと相違する場合があるためと考えられる.今後は自己修正機構の導入と検索最適化によるトークン効率の改善が課題となる.