はじめに
この記事はディップ Advent Calendar 2023の19日目の投稿です。
「生成AI」という言葉を聞かない日はないくらい有名になりましたね。
GitHub Copilotを使ってコードを書いているのですが、少し工夫するだけで期待通りのコードを提案してくれるので、ググりに行く回数が明らかに減りました。
(リモートワークで仕事をしているので、隣の席の人と会話しながらコードを書いているみたいな感覚になれるのも、かなりうれしいポイントですw)
Copilotを重宝している筆者なのですが、たまに「複数ファイルのコードを一気に生成してくれたらな」と思ってしまうときがあります。
今回は、そんな願いを叶えてくれるかもしれない、「CodePlan: Repository-level Coding using LLMs and Planning」という論文を読んでみました。
少し長い論文だったので、概要のみを紹介します。
CodePlan
概要
CodePlanとは、Microsoft Researchの研究者たちが発表した、LLMを利用してリポジトリレベルのコーディング作業を解決するフレームワークです。
GitHub CopilotやAmazon Code Whispererなどは、周囲のコードのコンテキストからコードを編集を行えますが、適用範囲は行やメソッドなどの小さな範囲です。
CodePlanでは、新しいバージョンへの対応タスクのような、リポジトリ内の複数のファイルに渡る段階的な編集作業を行うことができます。
手法
CodePlanでは、グラフ理論とLLMを組み合わせた手法を用いているようです。
厳密には違いますが、ざっくりしたイメージだと、以下のサイクルを回して、大きな編集タスクを達成するという仕組みです。
- LLMによるノード(小さな編集タスク)の実行
- 依存関係と影響範囲の分析
- 編集プランの修正
展望
今後の展望としては、機能強化、影響分析のさらなるカスタマイズなど挙げられていました。
現時点ではC#とPythonのみの実験なので、他の言語やフレームワークなどへの適用はこれからのようです。
さいごに
今回、ざっくりと手法をまとめてみて、人間も近しい思考方法で大きなタスクを解決しているなと感じました。
2023年12月時点では、フレームワークを提案した論文のみなのですが、ぜひ製品化してほしいですね。
Microsoft Researchの研究者たちによる論文なので、GitHubやVSCodeなどとの連携が期待できそうです。
誤って理解しているところがあるかもしれません。
そのような箇所を見つけたら、教えていただけると幸いです。