Microsoftは2024年12月16日、複雑な情報を処理できるよう強化拡張されたRAG
GraphRAGはRAG
プレリリースからの主な改善点は以下の通り。
- 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.
GraphRAG 1.