2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GraphRAGについて

Posted at

はじめに

RAGの精度改善はとても難しいと言う話があります。
実際僕もRAGを作っていて、全然精度が上がらない…ということがありました。

この時問題になってくるのは、ナレッジベースの チャンク分割 です。

チャンク分割とは

通常のRAG(ここではnaive RAGのこと)では、巨大なデータセットをチャンクという単位に分割しています。分割の仕方は固定長やsemanticなど様々なものがありますが、ここでは固定長を考えてみましょう。

ここで、チャンク1に「資料1を参照のこと」、チャンク2に資料1の内容が書かれていた場合、チャンク1が取得されるだけだと資料1の内容を知ることができなくなってしまいます。
取得するチャンクはプロンプトをvector DBの中にembeddingすることで決めているため、naive RAGのようにワークフローの中に組み込まれたRAGでは、用語の定義が不確かになってしまうことがあります。

このように、固有名詞がおおいナレッジベースに対しRAG(特にチャンク分割)は相性が悪いため、固有名詞を遡れる仕組みが必要となります。

それを解決する考え方の一つがGraphRAGです。

GraphRAGとは

GraphRAGは、グラフ検索をナレッジベースに追加することにより、データを構造的に扱うことができるようになるRAGの手法の一つです。

通常のRAG:

GraphRAG:

このような関係性の把握により、よりハルシネーションを減らし、正確な内容を出力することができるようになりました。

このグラフをナレッジグラフ(Knowledge Graph)と呼び、langchainを用いたナレッジグラフの構築などが知られています。

MS GraphRAGとは

これとは別の概念で、Microsoft GraphRAGという概念があります。
MS GraphRAGではKnowledge Graphを使っていないとのこと。

arXiv

GraphRAGのリサーチ論文
https://arxiv.org/abs/2501.00309

RAGとGraphRAGどちらが良いのか?の論文。用途によっては通常のRAGの方が精度が良いらしい。
https://arxiv.org/abs/2502.11371

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?