リポジトリ全体のコーディング作業を一気に自動編集する生成AI「CodePlan」 米Microsoftが開発:Innovative Tech
Microsoft Researchに所属する研究者らは、単なる一部のコード編集にとどまらず、リポジトリ全体のコーディング作業を計画的に自動編集するための大規模言語モデルを使用したフレームワークを提案する研究報告を発表した。
Innovative Tech:
このコーナーでは、2014年から先端テクノロジーの研究を論文単位で記事にしているWebメディア「Seamless」(シームレス)を主宰する山下裕毅氏が執筆。新規性の高い科学論文を山下氏がピックアップし、解説する。
Twitter: @shiropen2
Microsoft Researchに所属する研究者らが発表した論文「CodePlan: Repository-level Coding using LLMs and Planning」は、単なる一部のコード編集にとどまらず、リポジトリ全体のコーディング作業を計画的に自動編集するための大規模言語モデル(LLM)を使用したフレームワークを提案する研究報告である。
近年、LLMによるプログラミングの自動化が進展を見せている。「Amazon Code Whisperer」「GitHub Copilot」「Replit」などのツールは、自然言語の意図やコードの文脈を元にコードの補完や、自然言語の指示に基づく編集を行うために広く使用されている。
しかし、これらのプログラミング補助ツールは、小規模なコーディング問題のサポートに特化しており、リポジトリ全体の変更には対応が難しいのが現状である。なぜなら、リポジトリ内のコードは相互に関連しているため、全体を一気に考慮するのは困難だからである。
例として、特定のライブラリの新バージョンがリリースされ、APIの仕様が変更された場合、そのライブラリを使用しているプロジェクト全体での変更が必須となる。これは、単に1つの関数やメソッドを変更するだけではなく、ライブラリの変更に影響を受ける全てのコード部分を確認し、適切に更新する作業が求められる。
この問題を解決する新たなフレームワークとして「CodePlan」を提案する。CodePlanは複数のステップから成る計画を作成し、その計画に基づいてコードの編集を行う。
リポジトリ全体のコードを調査し、どの部分が他の部分にどのような影響を与えるかを分析する。その情報に基づき、どの部分をどの順序で修正すべきかの「計画」を策定。その計画に従い、コードの各部分を順に修正していく。
具体的には、グラフ構造とLLMを組み合わせて実現している。この文脈の「グラフ構造」とは、棒グラフや円グラフのようなデータの視覚化とは異なり、対象をノード(頂点)とエッジ(辺)で表現したデータ構造のことを指す。
このグラフでは、ノードはLLMが実施すべき特定のコード編集を示しており、エッジはある編集の完了後に次に行うべき編集の関連性や順序を示している。
このようなグラフ構造を用いることで、CodePlanは編集作業の流れや依存関係を効率的に追跡・管理できる。このグラフは動的に更新されるため、CodePlanはコード編集をリアルタイムで監視し、必要に応じてグラフを更新して、新たな編集のタスクや関係性を追加できる。
全てのステップが完了した後、変更されたリポジトリが正しいかどうかを専門のツールで検証する。問題が検出された場合、その情報を基に計画を見直し、作業を継続する。
「gpt-4-32kモデル」を活用して、C#のパッケージ移行とPythonの時系列に基づくコード編集という2つのリポジトリレベルのコーディングタスクを試験した。1つ目のタスクは、C#で書かれたソフトウェアリポジトリで特定のパッケージやライブラリを新しいバージョンや別のものに変更する場合を指す。2つ目のタスクは、Pythonのリポジトリで過去のコード変更履歴を参照してコード編集を行う場合を指す。
実験結果から、CodePlanは期待される結果や正確な編集結果と高い一致性を示した。これは、CodePlanがコード編集タスクを高精度で行えることを示唆している。さらに、テスト対象となった6つのリポジトリのうち、CodePlanを使用した5つのリポジトリが正当性の検証をクリアした。これは、CodePlanによる編集後のコードがエラーなく正確に動作することを意味する。
Source and Image Credits: Ramakrishna Bairi, Atharv Sonwane, Aditya Kanade, Vageesh D C, Arun Iyer, Suresh Parthasarathy, Sriram Rajamani, B. Ashok, Shashank Shet. CodePlan: Repository-level Coding using LLMs and Planning
関連記事
- BingチャットとBing Creatorに無料の「DALL・E 3」降臨
Microsoftは無料のBingチャットとBing CreatorでOpenAIの「DALL・E 3」を使えるようにした。DALL・E 3は文章から画像を生成するAIで、有料の「ChatGPT Plus」と「ChatGPT Enterprise」でも10月中に利用可能になる見込みだ - 米Microsoft、“ChatGPTの目と耳実装”の影で画像対応の生成AI「DeepSpeed-VisualChat」開発
Microsoftに所属する研究者らは、複数枚の画像とテキストを処理できる大規模言語モデル(LLM)を提案した研究報告を発表した。DeepSpeed-VisualChatは最大70Bパラメータの言語モデルのサイズにおいて優れた拡張性を示した。 - コード専用生成AI「WizardCoder」、米Microsoftが公開 ベースはCode Llama、高い精度を達成
米Microsoftなどに所属する研究者らは、米Metaが最近リリースしたCode LLM(コーディング専用大規模言語モデル)「Code Llama」をベースにしたコード専用生成AI「WizardCoder」を発表した。 - OpenAI、企業向け「ChatGPT Enterprise」提供開始 高速GPT-4でプライバシーも安全
OpenAIはMicrosoftの「Bing Chat Enterprise」と競合する企業向けAIチャットサービス「ChatGPT Enterprise」の提供を開始した。高速なGPT-4を利用でき、プロンプトやデータがトレーニングに使われることはない。 - Meta、コーディング用生成AIモデル「Code Llama」リリース
Metaは、大規模言語モデル「Llama 2」上に構築した生成AIコーディングツール「Code Llama」をリリースした。Llama 2と同じコミュニティライセンスで、無料で研究および商用利用できる。
関連リンク
Copyright © ITmedia, Inc. All Rights Reserved.