paint-brush
LLM ナレッジ グラフをマスターする: わずか 5 分で GraphRAG を構築して実装する@neo4j
477 測定値
477 測定値

LLM ナレッジ グラフをマスターする: わずか 5 分で GraphRAG を構築して実装する

Neo4j7m2024/10/18
Read on Terminal Reader

長すぎる; 読むには

Neo4j LLM ナレッジ グラフ ビルダーは、非構造化テキストをナレッジ グラフに変換する革新的なアプリケーションです。ML モデル (LLM: OpenAI、Gemini、Diffbot) を使用して、PDF、Web ページ、YouTube 動画を変換します。この機能は、ナレッジ グラフ自体と会話するのと同じように、データと直感的にやり取りできるため、特に魅力的です。
featured image - LLM ナレッジ グラフをマスターする: わずか 5 分で GraphRAG を構築して実装する
Neo4j HackerNoon profile picture
0-item
1-item


LLM ナレッジ グラフ ビルダーは、非構造化データを動的なナレッジ グラフに変換できるようにする Neo4j の GraphRAG エコシステム ツールの 1 つです。これは、検索拡張生成 (RAG) チャットボットと統合されており、自然言語クエリとデータに対する説明可能な洞察を可能にします。


GraphRAG を使い始める: Neo4j のエコシステム ツール

Neo4j LLM ナレッジグラフ ビルダーとは何ですか?

Neo4j LLM ナレッジ グラフ ビルダーは、コードや Cypher を使用せずに非構造化テキストをナレッジ グラフに変換し、魔法のようなテキストからグラフへのエクスペリエンスを提供する革新的なオンライン アプリケーションです。ML モデル (LLM: OpenAI、Gemini、Diffbot) を使用して、PDF、Web ページ、YouTube ビデオをエンティティとその関係のナレッジ グラフに変換します。


フロントエンドはNeedle Starter Kitをベースにした React アプリケーションで、バックエンドは Python FastAPI アプリケーションです。Neo4j が LangChain に提供したllm-graph-transformer モジュールを使用します。


アプリケーションは、次の 4 つの簡単な手順でシームレスなエクスペリエンスを提供します。


  1. データ取り込み - PDF ドキュメント、Wikipedia ページ、YouTube ビデオなど、さまざまなデータ ソースをサポートします。
  2. エンティティ認識 - LLM を使用して、非構造化テキストからエンティティと関係を識別および抽出します。
  3. グラフ構築 - Neo4j のグラフ機能を使用して、認識されたエンティティと関係をグラフ形式に変換します。
  4. ユーザー インターフェイス -ユーザーがアプリケーションと対話するための直感的な Web インターフェイスを提供し、データ ソースのアップロード、生成されたグラフの視覚化、RAG エージェントとの対話を容易にします。この機能は、ナレッジ グラフ自体と会話するのと同じように、データと直感的に対話できるため、特に魅力的です。技術的な知識は必要ありません。



試してみましょう

当社では、クレジットカードや LLM キーを必要とせず、 Neo4j でホストされた環境でアプリケーションを提供しており、摩擦がありません。

あるいは、ローカルまたは環境内で実行するには、パブリックGitHub リポジトリにアクセスし、この投稿で説明する手順に従ってください。


LLM Knowledge Graph Builder を開いて使用する前に、新しい Neo4j データベースを作成しましょう。そのためには、次の手順に従って無料の AuraDB データベースを使用できます。


  • https://console.neo4j.ioでログインするか、アカウントを作成してください。
  • 「インスタンス」で、新しい AuraDB 無料データベースを作成します。
  • 資格情報ファイルをダウンロードします。
  • インスタンスが実行されるまで待ちます。


Neo4j データベースが実行され、資格情報が取得できたので、LLM Knowledge Graph Builder を開き、右上隅の「Neo4j に接続」をクリックします。


以前にダウンロードした資格情報ファイルを接続ダイアログにドロップします。すべての情報が自動的に入力されます。または、すべてを手動で入力することもできます。

ナレッジグラフの作成

このプロセスは、非構造化データの取り込みから始まり、その後、LLM に渡されて主要なエンティティとその関係が識別されます。


左側の最初の入力ゾーンに PDF やその他のファイルをドラッグ アンド ドロップできます。2 番目の入力では、使用したい YouTube 動画へのリンクをコピー/貼り付けることができ、3 番目の入力では Wikipedia ページのリンクを取得できます。


この例では、GraphACME というサプライチェーン企業に関するいくつかの PDF、 Forbes のプレス記事、Corporate Sustainability Due Diligence Directive (CSDDD) に関するYouTube 動画、および Wikipedia のCorporate Sustainability Due Diligence DirectiveBangladeshの 2 ページを読み込みます。


ファイルをアップロードする際、アプリケーションは LangChain ドキュメント ローダーと YouTube パーサーを使用して、アップロードされたソースをグラフ内のドキュメント ノードとして保存します。すべてのファイルがアップロードされると、次のような画面が表示されます。



今必要なのは、使用するモデルを選択し、 「グラフの生成」をクリックすることだけです。あとは魔法に任せてください。


ファイル選択のみを生成する場合は、最初にファイルを選択し(テーブルの最初の列のチェックボックスを使用)、グラフの生成をクリックします。


⚠️定義済みまたは独自のグラフ スキーマを使用する場合は、右上隅の設定アイコンをクリックしてドロップダウンから定義済みスキーマを選択するか、ノード ラベルと関係を書き留めて独自のスキーマを使用するか、既存の Neo4j データベースから既存のスキーマを取得するか、テキストをコピー/貼り付けして LLM に分析させてスキーマの提案を依頼することができます。


ファイルを処理してナレッジ グラフを作成している間、内部で何が起こっているかをまとめてみましょう。


  1. コンテンツはチャンクに分割されます。
  2. チャンクはグラフに保存され、ドキュメント ノードに接続され、高度な RAG パターンのためにチャンク同士が接続されます。
  3. 非常に類似したチャンクは SIMILAR 関係で接続され、K 近傍グラフを形成します。
  4. 埋め込みは計算され、チャンクとベクトル インデックスに格納されます。
  5. llm-graph-transformer または diffbot-graph-transformer を使用して、テキストからエンティティと関係を抽出します。
  6. エンティティはグラフに格納され、元のチャンクに接続されます。

ナレッジグラフを探索する

ドキュメントから抽出された情報はグラフ形式に構造化され、エンティティはノードになり、関係はこれらのノードを接続するエッジになります。Neo4j を使用する利点は、これらの複雑なデータ ネットワークを効率的に保存およびクエリできるため、生成されたナレッジ グラフがさまざまなアプリケーションですぐに役立つことです。


RAG エージェントを使用してデータについて質問する前に、チェックボックスを使用して 1 つのドキュメント (または複数のドキュメント) を選択し、 [グラフの表示] をクリックします。これにより、選択したドキュメントに対して作成されたエンティティが表示されます。また、そのビューにドキュメント ノードとチャンク ノードを表示することもできます。



「Bloom でグラフを開く」ボタンをクリックすると、 Neo4j Bloomが開き、新しく作成したナレッジ グラフを視覚化してナビゲートできるようになります。次のアクション「ファイルの削除」では、選択したドキュメントとチャンクがグラフから削除されます (オプションで選択した場合はエンティティも削除されます)。

あなたの知識と話す

さて、最後の部分、右側のパネルに表示される RAG エージェントです。

検索プロセス — どのように機能しますか?

下の画像は、GraphRAG プロセスの簡略化されたビューを示しています。



ユーザーが質問すると、検索クエリで Neo4j ベクトル インデックスを使用して、質問に最も関連性の高いチャンクとそれに接続されたエンティティを 2 ホップの深さまで検索します。また、チャット履歴を要約し、それをコンテキストを充実させる要素として使用します。


さまざまな入力とソース (質問、ベクター結果、チャット履歴) はすべて、カスタム プロンプトで選択された LLM モデルに送信され、提供された要素とコンテキストに基づいて、質問に対する応答を提供してフォーマットするように求められます。もちろん、プロンプトには、フォーマット、ソースの引用の要求、回答が不明な場合は推測しないなど、さらに多くの魔法があります。完全なプロンプトと手順は、 QA_integration.pyFINAL_PROMPTにあります。

データに関連する質問をする

この例では、GraphACME (ヨーロッパに拠点を置く) という架空の会社に関する内部文書を読み込み、サプライチェーン戦略と製品全体を作成して文書化しました。また、新しい CSDDD、その影響、規制について説明したプレス記事と YouTube 動画も読み込みました。これで、チャットボットに社内 (架空の) 会社に関する知識について質問できるようになりました。CSDDD 法に関する質問や、GraphACME が製造する製品のリスト、それらが CSDDD 規制の影響を受けるかどうか、影響を受ける場合は会社にどのような影響があるかなど、両方に関する質問もできます。



チャット機能

ホーム画面の右側には、チャット ウィンドウに 3 つのボタンが付いています。


  • 「閉じる」を選択すると、チャットボット インターフェースが閉じます。
  • チャット履歴を消去すると、現在のセッションのチャット履歴が削除されます。
  • ウィンドウを最大化すると、チャットボット インターフェースが全画面モードで開きます。


RAG エージェントの回答では、応答の後に次の 3 つの特徴が見つかります。


  • 詳細では、 RAG エージェントがソース (ドキュメント)、チャンク、エンティティを収集および使用した方法を示す取得情報ポップアップが開きます。使用されたモデルとトークンの消費に関する情報も含まれます。
  • 「コピー」は、応答の内容をクリップボードにコピーします。
  • テキスト読み上げ機能により、応答内容が読み上げられます。




まとめ

LLM Knowledge Graph Builder についてさらに詳しく知るには、 GitHub リポジトリでソース コードやドキュメントなどの豊富な情報を参照してください。さらに、ドキュメントでは開始方法に関する詳細なガイダンスが提供されており、 GenAI Ecosystem では、利用可能なより幅広いツールやアプリケーションに関する詳細な情報を提供しています。

次は何か — 貢献と拡張機能

LLM Knowledge Graph Builder でのあなたの経験は、非常に貴重です。バグに遭遇したり、新機能の提案があったり、貢献したい場合、または特定の機能強化を希望する場合は、コミュニティ プラットフォームがあなたの考えを共有するのに最適な場所です。コーディングに精通している方にとって、GitHub に直接貢献することは、プロジェクトの発展に役立つやりがいのある方法です。あなたの意見や貢献は、ツールの改善に役立つだけでなく、協力的で革新的なコミュニティの育成にも役立ちます。

リソース

GenAI アプリケーションの新しいリソースの詳細: Neo4j GraphRAG エコシステム ツール。これらのオープンソース ツールを使用すると、ナレッジ グラフに基づいた GenAI アプリケーションを簡単に開始でき、応答の品質と説明可能性を向上させ、アプリの開発と導入を加速できます。

ビデオ

リンク