RAG(Retrieval Augmented Generation)は大規模言語モデル(LLM)の性能を改善するための手法の1つであり、質問に対する回答を生成する際に、外部知識源から情報を取り込みます。 これにより、LLM 自体で学習できる情報量に制限されることなく、より正確で詳細な回答を生成することができます。
よく使われているRAGでは、外部知識源として検索エンジンにテキストをインデックスしておき、質問に関連するテキストをベクトル検索や全文検索を用いて取得します。しかし、構造化データを扱うことには苦労するため、質問によっては回答が不十分、あるいはまったく回答できないことに繋がります。
これらの問題を克服するために、ナレッジグラフを用いたRAGが構築されることがあります。ナレッジグラフでは、エンティティとその間の関係がグラフ構造で表現されており、単純な検索を用いた場合には回答できないような複雑な質問にも対応できます。
本記事では、ナレッジグラフを用いた RAG モデルの改善について紹介します。 具体的には、以下の内容について解説します。
- Neo4jのセットアップ
- ナレッジグラフの構築
- ナレッジグラフを用いたRAGの構築