AIToday
大規模言語モデルAIコーディングZenn AI/ML掲載日時: 2026年10月14日 22:00

Neo4jのLLMナレッジグラフ構築3方式を比較

LINEで送る
Neo4jのLLMナレッジグラフ構築3方式を比較

3つのポイント

  1. 何が起きたか

    Maru氏はNeo4j GraphRAG for PythonのSimpleKGPipelineを使い、cookbook.mdをNeo4j 2026.07.1とgpt-oss-20b上でFREE、EXTRACTED、SCHEMAの3設定で実行した。

  2. なぜ重要か

    著者が重視したリンク、つまりどの手順がどの食材を使うかと調理手順の順序を捉えたのは、人が定義したSCHEMAだけだった。

わからないところ、AIに聞けます

質問と回答はこのページに公開されます。

こういう要約が、毎朝あなたのメールに届きます。

背景と解説

検証ではLLMと分割方法を意図的に固定し、スキーマの与え方だけを変えた。固定長ではなくレシピ単位で分割するため、著者はMarkdownをH1見出しごとに区切るH1MarkdownTextSplitterを書き、カレーライスと肉じゃがの各節が1チャンクになるようにした。同じ2つのレシピには牛肉、玉ねぎ、にんじん、じゃがいもという共通食材があり、こうした共通リンクと調理順序が表現されるかを比較で確認できた。

結果は明確な傾向を示した。スキーマなしのFREEは同じ対象にほぼ重複するノード型や、似た意味の複数の関係型を生み、text-to-Cypherクエリでどれを選ぶか不確かになった。EXTRACTEDはLLMが文書全体から1つのスキーマを推定したため型名はより一貫したが、どの手順がどの食材を使うかや手順間の順序はモデル化されず、工程に関する問いには答えられないままだった。SCHEMAは人がノード型、関係型、Recipe-REQUIRES_INGREDIENT->IngredientやStep-NEXT_STEP->Stepといったパターンを定義したことで、著者は共通食材と手順順序をたどれた。それでも同じスキーマと同じ入力で繰り返し実行するとノード名が変わり、3モードすべてに共通する制約が残ることが示唆された。

よくある質問
Neo4j GraphRAG for Pythonとは何か?
Neo4j公式のGraphRAG向けPythonライブラリで、テキスト分割、LLMによるエンティティと関係の抽出、Neo4jへの書き込みを備え、SimpleKGPipelineをパッケージ化されたパイプラインとして提供する。
SimpleKGPipelineの3つのスキーマモードとは?
FREEはスキーマを使わず、EXTRACTEDはLLMがスキーマを推定し、SCHEMAは人がノード型、関係型、接続パターンを事前に定義する。
SCHEMAでも結果が一致しなかった原因は?
スキーマはグラフ構造を導くが、どの情報をエンティティや関係にするか、どう命名するかはLLMに依存するため、同じ入力で繰り返し実行しても完全には一致しなかった。
LINEで送る

あなたの仕事に関係するAIニュースを、毎朝お届けします。

業界と使っているAIツールを選ぶと、仕事に関係するニュースが毎朝届きます。

登録無料・Googleアカウントなら30秒・いつでも解除できますAITodayについて →

AIに質問

この記事についてわからないことをAIに質問できます。AIはこの記事・AIToday の過去記事・Wikipedia を読み、出典を付けて答えます。Q&Aはこのページに公開され、他の読者も読めます。

質問と回答はこのページに公開されます。

関連記事

次の記事へGeminiで初心者がAIエージェントを作る5手順