2
4

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パッケージ: ナレッジグラフを活用したGenAIの加速

Last updated at Posted at 2024-10-16

注意: この記事は、Neo4jのブログ記事「GraphRAG Python Package: Accelerating GenAI With Knowledge Graphs」を元に、機械翻訳を利用して作成した備忘録的な内容です。正確性を確保するため、原文と照らし合わせてチェックすることをお勧めします。とくにコードのところは原文のほうを見てください。概要、構成、雰囲気を掴むために読んでください。

はじめに

image.png

Neo4jのGraphRAGパッケージは、非構造化データからナレッジグラフの作成、ナレッジグラフの検索、そして完全なGraphRAGパイプラインまでをワンストップで提供するPythonパッケージです。このツールは、知識ベースのアシスタント、検索API、チャットボット、レポートジェネレーターなどの開発に役立ちます。

GraphRAGの概要

GraphRAGは、ナレッジグラフとRetrieval-Augmented Generation (RAG)を組み合わせることで、大規模言語モデル(LLM)の幻覚などの問題を解決し、ドメイン固有のコンテキストを追加することで、従来のRAGアプローチよりも質と効果を向上させます。

GraphRAGパッケージの主な機能

  1. ナレッジグラフの構築
  2. データ検索
  3. GraphRAGパイプラインの実行

1. ナレッジグラフの構築

SimpleKGPipelineクラスを使用して、以下の要素を指定するだけで自動的にナレッジグラフを構築できます:

  • Neo4jへの接続ドライバー
  • エンティティ抽出用のLLM
  • テキストチャンクのベクトル化用の埋め込みモデル

オプションで、グラフスキーマやプロンプトテンプレートも指定可能です。

from neo4j_graphrag.experimental.pipeline.kg_builder import SimpleKGPipeline

kg_builder = SimpleKGPipeline(
   llm=ex_llm,
   driver=neo4j_driver,
   embedder=embedder,
   from_pdf=True
)
await kg_builder.run_async(file_path='example.pdf')

2. データ検索

GraphRAGパッケージは、以下を含む複数の検索クラスを提供しています:

  • Vector Retriever: ベクトル埋め込みを使用した類似性検索
  • Vector Cypher Retriever: ベクトル検索とCypherクエリを組み合わせたグラフ走査
  • Hybrid Retriever: ベクトル検索とフルテキスト検索の組み合わせ
  • Text2Cypher: 自然言語クエリをCypherクエリに変換

例えば、Vector Retrieverは以下のように使用できます:

from neo4j_graphrag.retrievers import VectorRetriever

vector_retriever = VectorRetriever(
   neo4j_driver,
   index_name="text_embeddings",
   embedder=embedder
)

results = vector_retriever.get_search_results(query_text="How is precision medicine applied to Lupus?", top_k=3)

3. GraphRAGパイプラインの実行

GraphRAGクラスを使用して、簡単にGraphRAGパイプラインをインスタンス化し実行できます。最小限の設定では、LLMと検索機能を指定するだけで済みます。

from neo4j_graphrag.generation.graphrag import GraphRAG

rag = GraphRAG(llm=llm, retriever=vector_retriever)
response = rag.search("How is precision medicine applied to Lupus?")
print(response.answer)

まとめ

image.png

GraphRAGパッケージは、ナレッジグラフを活用したGenAIアプリケーションの開発を大幅に簡素化します。非構造化データからナレッジグラフの作成、高度な検索機能、そして完全なGraphRAGパイプラインまでを提供し、Neo4jの専門知識がなくても利用可能です。

詳細なドキュメントやチュートリアルも提供されているので、GraphRAGを使った開発に興味がある方は、引用元の記事を参照ください。

2
4
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
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?