【Amazon Bedrock】
GraphRAGと従来のRAGを使い比べてみた

はじめに

こんにちは!クラウド活用推進担当の浅野です。

2025年3月7日、Amazon BedrockよりGraphRAGが正式にリリースされました。

それまではプレビュー版として提供されていましたが、正式にリリースされたという記事を見て、
改めてGraphRAGと従来のRAGでは生成結果にどのような違いが生まれるのか気になったので
調査していこうと思います!

目次

  1. RAGのおさらい
  2. GraphRAGってなに?
  3. 従来のRAGとの違い
  4. 環境構築
  5. 実際に比べてみた
  6. リソースの削除
  7. まとめ

RAGのおさらい

RAG(検索拡張生成)は、LLM(大規模言語モデル)によるテキスト生成に
外部情報の検索を組み合わせることで、回答精度を向上させる技術です。

「ベクトル検索」と呼ばれる手法用いて、質問に対していきなり回答を生成するのではなく、
答えが書いてありそうなドキュメントを検索し、それを参照してから回答を生成します。

GraphRAGってなに?

GraphRAGは、RAGに「※グラフデータベース」の要素を組み合わせた新しい仕組みです。
概念を「ノード」、関係性を「リレーション(エッジ)」として構造化することで、
情報同士のつながりを考慮した検索と生成が可能になります。

簡単に言うと検索した情報をただ使うのではなく、
・誰が誰を知っているか
・どの商品がどの商品と関連しているか
・あるアイデアが別のアイデアにどう影響したか

といった複雑な関係性を考慮してから回答を生成するRAGです。


※グラフデータベース:グラフ構造を備え、データ間の関係性を表現することができるデータベース
          AWSではAmazon Neptuneでサービスが提供されています。

従来のRAGとの違い

従来のRAGは、情報を細かく分割してベクトル化し、類似度に基づいて検索を行っていました。
そのため、データ間の「類似度」は把握できても、
「関係性」に関する情報を得るのは難しいという課題がありました。

一方で、GraphRAGはデータ間の関係性を表現できる
グラフデータベースとベクトルデータを組み合わせることで、
・データ間の「類似度」
・データ間の「関係性」

この両方の情報をもとに、より精度の高い回答の生成が可能になります。
これにより、従来のRAGでは難しかった踏み込んだ回答にも対応できるようになっています。

環境構築

では、Amazon Bedrock上にGraphRAGを搭載したナレッジベースを作成していきたいと思います!

前提条件

・リージョン:us-east-1(バージニア北部)
・S3バケット:作成済み
・比較する従来のRAG環境:作成済み(作成方法は後述しています)

1.コンソールから「Amazon Bedrock」を選択し、「ナレッジベース」をクリック。


1.ナレッジベース.png

2.「作成」をクリックし、「ベクトルストアを含むナレッジベース」を選択。


2.ベクトルストア.png

3.下記を入力したのち、「次へ」をクリック。


・ナレッジベース名:任意の値
・データソースを選択:Amazon S3

3.ナレッジベース名.png
4.データソース.png

4.下記を入力したのち、「次へ」をクリック。


・データソース名:任意の値
・S3 URI:S3バケットに保存したデータのURI(Browse S3から選択)

5.S3URL.png

5.下記を入力したのち、「次へ」をクリック。


・埋め込みモデル:任意のモデル(今回はTitan Text Embeddings V2)
・ベクトルストアの作成方法:新しいベクトルストアをクイック作成 - 推奨
・ベクトルストア:Amazon Neptune Analytics (GraphRAG) - 新規

6.埋め込みモデル.png
7.ベクトルデータベース.png

6.設定内容に問題がないことを確認したら「ナレッジベースを作成」をクリック。


8.ナレッジベースの作成.png

7.しばらく待ったのち、画面が切り替わったら「データソース」から今回利用するデータソースを選択し、「同期」をクリック。


11.データソースの同期.png

8.下記ポップアップが表示されたら環境の設定は完了です!


10.ポップアップ.png
9.従来のRAGを搭載したナレッジベースの作成について
 比較対象として従来のRAG搭載ナレッジベースを作成する場合は、ベクトルストアにAmazon OpenSearch Serverlessを
 選択してください。ここ以外の設定手順は、GraphRAG搭載ナレッジベースの構築と同様です。
 これでデータベース以外同じ構成のナレッジベースが用意できたので、実際に比較していきましょう!

10.ポップアップ.png

実際に比べてみた

今回作成したGraphRAG搭載ナレッジベースと、比較対象として用意した
従来のRAG搭載ナレッジベースに全く同じ質問を投げて、
生成結果にどのような違いが生まれるかを比べてみたいと思います!

S3バケットに格納ておいた以下の技術ブログの内容について生成AIに質問してみました。
生成AIはClaude 3.5 Sonnetを利用しています。


従来のRAGの回答とソースの詳細

プロンプト:AWS SAAに合格するためには何をしたらいいですか?
RAG1.pngRAG2d.png

GraphRAGの回答とソースの詳細

プロンプト:AWS SAAに合格するためには何をしたらいいですか?
RAG5.pngRAG6d.png

比較結果


AWS SAA(AWS Certified Solutions Architect - Associate)に合格するにやるべきことを聞いてみました。
従来のRAGは、合格するための流れがコンパクトにまとめられており、段落で出力してくれたので、
大まかな流れで何をすればいいのかをすぐに把握できるような出力になってくれました。

GraphRAGは大まかな流れは従来のRAGと同じですが、
「何を使うか」だけでなく「どう使うか」「なぜそうするか」まで具体的に説明してくれました。
それに加え、暗記だけではなく理解を深めることが大事だということや
モチベーション維持のコツといったこちらに寄り添った回答を出力してくれました。
従来のRAGではこのような回答はあまり期待できなかったため、GraphRAGならではの良さを実感できました。

GraphRAGは、ナレッジベース内の情報同士の関係性をグラフ構造として捉えることで、
従来のRAGと比べて回答生成時により多くのソースを参照していることが確認できました。
実際に、従来のRAGが回答を生成する際に参照したソースチャンクは2つだったのに対し、
GraphRAGは7つのソースチャンクを参照していました。このことから、
GraphRAGは情報同士の関係性を文脈的に理解し、高い関連性を持つ情報を組み合わせて活用していると考えられます。
結果としてGraphRAGは従来のRAGと比べて、より説得力のある回答を生成できていることが分かりました。



リソースの削除

Amazon Neptuneは、リソース作成後、最低でも0.48USD/1Hの費用が発生します。
検証が終了したら、今回作成した以下のリソースを削除してください。

・Amazon Bedrock:作成したナレッジベースを削除
・Amazon Neptune:ナレッジベース構築時に作成されたグラフデータベースを削除

16.グラフの削除.png
※比較対象としてRAGを搭載したナレッジベースを別途作成した場合は、
 Amazon OpenSearch Service Serverlessに作成されたリソースも削除してください。

まとめ

今回、GraphRAGと従来のRAGを比較してみて、出力結果にどのような違いが出るかを調査してきました。
その結果、
・理由や背景等の具体的な回答も含めて欲しいときはGraphRAG
・素早く簡易的な回答が欲しいときは従来のRAG
と、求められるユースケースで使い分けるのがいいと感じました。

GraphRAGは、文脈を理解し、データ間の関係性を考慮してから回答を生成してくれるので、
情報の深掘りや具体的な説明が欲しい場面に適しています。
一方で、従来のRAGは無駄のない回答を生成してくれるので、
必要な情報だけを求めるシンプルな回答が欲しい場面に適しています。

使いたいシーンやプロンプトの工夫次第で、さらに使い分けができそうなので、
引き続き調査を継続していきたいと思います!ご閲覧いただきありがとうございました!

クラウド基盤ソリューション