Microsoft⁠GraphRAG 1.0をリリース ―セットアップやCUIを改善し処理効率もアップ

Microsoftは2024年12月16日、複雑な情報を処理できるよう強化拡張されたRAG「GraphRAG」の正式版GraphRAG 1.0のリリースをアナウンスした。

GraphRAGはRAG(Retrieval-Augmented Generation:検索拡張生成)をより効率よく処理できるようにする技術。LLMを使用して検索、取得したデータセットから「ナレッジ グラフ」を作成し、これを元に複雑な情報を分析してRAGのナレッジベース検索・応答のパフォーマンスを大幅に向上させることができる。2024年7月にプレリリース版が公開され、その後のコアチームとコミュニティコントリビューターによる多数の修正と改善を経て1.0のリリースに至った。

プレリリースからの主な改善点は以下の通り。

initコマンドによる簡単セットアップ
GraphRAGの当初の構成は環境変数を使用して行われ、利用可能なオプションが多数あるためセットアップが非常に難しかった。1.0ではgraphrag initコマンドにより、必要な構成設定を含む.envファイルとsettings.yamlファイルが、指定されたディレクトリに作成される。合わせてGraphRAGで使用されるデフォルトのLLMプロンプトも出力される。
新コマンドラインインターフェース
コマンドラインインターフェース(CLI)が一新され、使いやすさと機能が拡張された。元のCLIは、サンプルデータセットでGraphRAGを試すためのスターターデモとしての使用を想定していたが、ほとんどのユーザーがこれを使ってGraphRAGを操作しようと考えていることがわかった。そのため、Pythonの型ヒントをベースにしたTyperを採用し、インラインドキュメントを充実させた使いやすいものとした。また機能強化により、CLIの起動時間が平均148秒から2秒に短縮された。
統合されたAPIレイヤー
元のCLIには、基本的なインデックス作成やクエリコマンドをインスタンス化して実行するために必要なすべてのコードが含まれていたが、これらを分離しスタンドアロンAPIレイヤーとした。パイプラインやクエリクラスのカスタマイズを深く行わずに、GraphRAG機能を独自アプリケーションに統合したい開発者にとっての主なエントリポイントとなることを目的としている。新CLIなどもこのAPIレイヤーの上に構築されており、APIの操作例としても機能している。
データモデルを簡素化
データモデルを見直し、明確さと一貫性を追加し、冗長であったり使われていないフィールドを削除し、ストレージスペースを改善し、データモデルを簡素化するための修正が組み込まれた。以前は、出力が標準化されておらず、関連する出力が重要でない中間出力ファイルと混同される可能性があったが、GraphRAG 1.0では簡単に読み取り追跡できる関連出力のみが含まれる。
ベクターストアの合理化
元のデータモデルでは、データの取り込みとインデックス作成後にすべての埋め込みをparquet出力ファイル内に保存していた。GraphRAGパイプラインを更新してインデックス作成中にデフォルトのベクターストアを作成するようにしたため、出力ファイルをディスクから読み取るときに膨大なベクターをロードする必要がなくなり、クエリごとに読み取り時間とメモリが節約される。これにより出力parquetディスクが80%節約となり、ベクターストアの埋め込みを含む合計ディスク領域が43%削減されたとのこと。
よりフラットでクリアなコード構造
コードベースを簡素化して、保守しやすく、サードパーティユーザーにとってもより使いやすいものになった。ほとんど使われていないDataShaperエンジンが提供する宣言型構成などを整理し、ワークフローのセットを少なくまとめた。これにより未使用の出力成果物やデータの重複、ディスクI/Oが減り、パイプラインのメモリ内フットプリントも削減され、GraphRAGを使用して大規模なデータセットのインデックス作成と分析を行えるようにった。
インクリメンタルな取り込み
これまで進化するデータセットでは、知識モデルを再生成するために、新情報取得のたびに完全な再インデックス作成が必要だった。GraphRAG 1.0では、既存のインデックスと新しく追加されたコンテンツ間の差分を計算し、更新をインテリジェントにマージして再インデックス作成を最小限に抑える新しいupdateコマンドがCLIに用意された。

これらの更新は広範囲にわたっているため、GraphRAG 1.0には下位互換性がない。以前のGraphRAGを使用して既存のインデックスがある場合は、GraphRAG 1.0の移行に伴い大きな変更がいくつか必要となる。移行の際にコミュニティをサポートするために、GitHubリポジトリに移行ガイドが用意されており、詳細情報が順次掲載される。

GraphRAG 1.0は、GitHubで公開されているほか、PyPIにも公開されている。使用するにはGetting Startedガイドを参照。

おすすめ記事

記事・ニュース一覧