15
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

論文を読むAIの精度を90%に引き上げた — AI for Scienceのための知識グラフRAGシステム開発記

15
Posted at

概要

  • HotpotQA ベンチマーク 90.0% を達成(論文の公式実装 71.6% を +18.4% 上回る)
  • KDD 2026 論文 MemGraphRAG(Xiang et al.) を TypeScript でクリーンルーム実装
  • 31万ノード・68万エッジ のナレッジグラフを LadybugDB + SQLite で管理
  • 日本語論文にも対応する多言語パイプラインを設計中
  • 専門用語辞書・シソーラスの「正しい使い方」を Ablation テストで解明

こんな研究者に読んでほしい

  • 論文が増えすぎて、関連研究の全体像が把握できない
  • LLM に聞いても根拠論文が曖昧で、ハルシネーションが怖い
  • 複数論文にまたがる関係性や矛盾を手作業で整理している
  • 日本語論文と英語論文の知見が分断されている
  • 研究室の過去論文・ノートが再利用されていない

1. なぜ AI for Science に GraphRAG が必要なのか

1.1 研究者の日常と RAG の限界

研究者は日々、数十〜数百本の論文を読み、知見を統合し、新たな仮説を生み出す。しかし、この知的作業には深刻なボトルネックがある。

  • 論文が多すぎて追えない — 自分の分野だけで年間数千本の新規論文が出版される
  • キーワード検索では関係性が見えない — 論文 A と論文 B が同じエンティティに言及していても、検索結果はバラバラ
  • PDF 内の知識が構造化されていない — 実験条件、数値結果、主張が自然言語のまま埋もれている
  • 先行研究間の矛盾や差分が把握しづらい — 「手法 X の精度は 95%」と書いた論文と「80%」と書いた論文、条件の違いは何か?

LLM を活用した RAG(Retrieval-Augmented Generation)はこのプロセスを加速できるが、科学論文特有の課題 がある。

課題 具体例 通常の RAG の対応
マルチホップ推論 「PPR を使った GraphRAG で最も精度が高い手法は?」 ❌ 単一チャンク検索では推論チェーンが途切れる
エンティティの同一性 "PPR" = "Personalized PageRank" = "Topic-Sensitive PageRank" ❌ 別のチャンクとして扱われる
矛盾するファクト 論文 A「手法 X の精度は 95%」vs 論文 B「手法 X の精度は 80%」(データセット・条件の違い) ❌ 矛盾を検出できない
多言語の壁 日本語論文の知見が英語コーパスに統合されない ❌ 言語ごとのサイロ化

RAG(Retrieval-Augmented Generation)とは

RAG は、LLM(大規模言語モデル)の回答精度を向上させるための手法です。仕組みはシンプルで、ユーザーの質問に関連する文書をデータベースから検索し、その文書をコンテキストとして LLM に渡して回答を生成します。

通常の RAG パイプライン:

  ユーザーの質問
    ↓ ベクトル化(Embedding)
  類似度検索(Vector DB)
    ↓ 上位 K 件のテキストチャンクを取得
  チャンク群 + 質問
    ↓ LLM に入力
  回答

GraphRAG はナレッジグラフを導入することでマルチホップ推論を可能にするが、既存の実装(MS-GraphRAG, LazyGraphRAG 等)には グラフ品質の問題 が残る。MemGraphRAG 論文(Xiang et al., 2026)でもこの問題を明確に指摘しているが、筆者自身も altanative-lazygraphrag で HotpotQA ベンチマークを実施しており、MS-GraphRAG の Str-Acc が 51.6% と低い水準にとどまることを確認している。

1.2 既存 GraphRAG の課題 — Microsoft GraphRAG を例に

GraphRAG の先駆者である Microsoft GraphRAG(Edge et al., 2024, "From Local to Global: A Graph RAG Approach to Query-Focused Summarization")は、テキストからエンティティと関係を抽出し、Leiden アルゴリズムによるコミュニティ検出 で階層的な要約を生成する。

Microsoft GraphRAG のパイプライン:

  文書群
    ↓ Chunking
  テキストチャンク
    ↓ LLM によるエンティティ・関係抽出
  エンティティ-関係グラフ
    ↓ Leiden コミュニティ検出(階層的クラスタリング)
  コミュニティ階層(Level 0, 1, 2, ...)
    ↓ 各コミュニティの LLM 要約を事前計算
  コミュニティ要約群
    ↓ クエリ時: Map-Reduce で要約を統合
  回答

グローバルクエリ(「このコーパスの主要テーマは?」)に対しては、コミュニティ要約を横断的に Map-Reduce することで包括的な回答を生成できる。しかし、科学論文の Factoid QA には 3 つの根本的な課題がある。

Facoid QA

Factoid QA(事実型質問応答)とは、「誰が?」「いつ?」「どこで?」のように、具体的な事実(固有名詞・数値・日付など)を1つ回答するタイプの質問応答タスクです。

  • ✅ Factoid QA: 「東京タワーの高さは?」→「333m」
  • ❌ Non-Factoid: 「東京タワーの魅力を教えて」→ 自由記述

科学論文の文脈では「この酵素を発見した研究者は?」「実験で使われたデータセットは?」のような問いが該当します。要約ではなく正確な1つの答えが求められるため、RAG の検索精度が直接スコアに反映されます。

課題 詳細 影響
インデックスコストが高い 全チャンクの LLM 要約 + 全コミュニティの LLM 要約を事前計算。100 文書で数時間 コーパス拡大が困難
ローカルクエリに弱い Map-Reduce は要約レベルの回答を生成。個別エンティティの正確な回答には不向き HotpotQA Str-Acc 51.6%
グラフ品質管理がない スキーマ安定化なし、矛盾検出なし。低品質トリプルが伝播 精度の天井が低い

MemGraphRAG 論文(Xiang et al., 2026)はこの問題を明確に指摘している。

"Methods typically employ community detection algorithms, such as Louvain or Leiden, to recursively aggregate entities into clusters. Despite its utility in summarizing high-level themes, this unsupervised approach faces limitations regarding precision, as inaccuracies in low-level entity relationships can propagate upward."
(コミュニティ検出ベースの手法は、高次テーマの要約には有用だが、低レベルのエンティティ関係の不正確さが上位に伝播するという精度面での限界がある)

つまり、コミュニティベースの要約は、下層のエンティティ関係が正確でなければ上層の要約も不正確になる という構造的な弱点を持つ。これが HotpotQA で 51.6% という低スコアの原因である。

HotpotQA とは

HotpotQA(Yang et al., 2018)は、マルチホップ推論の能力を測定するための質問応答ベンチマークです。Wikipedia の複数記事にまたがる情報を2段階以上の推論で結びつけて初めて正解できる問題で構成されています。

例: 「『ダークナイト』の監督が生まれた国の首都は?」
→ ステップ1: ダークナイトの監督 = クリストファー・ノーラン
→ ステップ2: ノーランの出生国 = イギリス → 首都 = ロンドン

単純な検索では答えられない推論チェーンが必要なため、RAG システムの知識統合能力を測る標準ベンチマークとして広く使われています。

1.3 MemGraphRAG:メモリベースのアプローチ

KDD 2026 論文 MemGraphRAG(Xiang et al.)は、Microsoft GraphRAG のコミュニティ検出ベースではなく、三層グローバルメモリ と マルチエージェント協調 で GraphRAG のグラフ品質問題を解決する。

論文 PDF
  ↓ Dockling (IBM)
Markdown テキスト
  ↓ Stage I: 抽出エージェント
三層メモリ(Ontology / Fact / Passage)
  ↓ Stage II: スキーマ正規化
  ↓ Stage III: 矛盾検出・解決
  ↓ Stage IV: グラフ投影
階層的インデックスグラフ
  ↓ PPR(Personalized PageRank)
クエリ応答

本記事では、この論文を TypeScript でクリーンルーム実装 した aira-synapse を用いて、AI for Science のための高精度な知識グラフシステム を構築した過程を報告する。

1.4 なぜクリーンルーム実装なのか

MemGraphRAG の論文を読んだとき、3つの疑問が浮かんだ。

再現性:論文の主張を独立実装で検証する

論文の報告精度は HotpotQA 71.6%。しかし、再現実験なしに論文の主張を鵜呑みにするのは科学的ではない。特に GraphRAG 分野では、評価条件(データセットサイズ、評価指標、LLM バージョン)の違いで結果が大きく変わる。独自にゼロから実装し、同一条件で検証することで初めて「この手法は本当に有効か?」に答えられる。

拡張性:日本語論文・専門分野に適応する

日本の研究者にとって、英語論文だけでなく 日本語論文の知見もナレッジグラフに統合 できなければ実用にならない。論文の公式実装は英語前提であり、日本語の形態素解析やエンティティ認識には対応していない。クリーンルーム実装であれば、パイプラインの各段階(チャンキング、ファクト抽出、エンティティ正規化)に 多言語対応を設計段階から組み込める。

検証性:アーキテクチャ選択を ablation で確認する

論文のアーキテクチャ(4段パイプライン + PPR)は理論的に美しいが、実装してみて初めてわかるボトルネック がある。例えば:

  • 専門用語辞書・シソーラスをテレポートベクトルに注入すると -3.4% の退行 が発生した(v0.3.0 ablation で判明)
  • サブクエリ分解は理論上有効だが、LLM の非決定性で bridge 問題の精度が不安定 になる
  • 最も効果があったのは論文に書かれていない eval 関数の改善(ニックネーム正規化、ファジーマッチ等)だった

クリーンルーム実装だからこそ、論文の設計を鵜呑みにせず、ablation テストで各コンポーネントの実効性を検証 できる。これが 71.6% → 90.0% への +18.4% 改善につながった。

2. MemGraphRAG で研究ワークフローはどう変わるか

技術的な精度(90.0%)だけでは「使えるかどうか」はわからない。ここでは、研究者の具体的なワークフローで何が変わるかを示す。

2.1 文献レビューの自動化

従来のワークフロー:

  1. Google Scholar / Semantic Scholar でキーワード検索
  2. 論文を一本ずつ読み、関連する記述をメモ
  3. 手作業でエンティティ間の関係を整理
  4. レビュー論文やサーベイをまとめる

MemGraphRAG を使ったワークフロー:

  1. 論文群を PDF のままインデックス化(自動でナレッジグラフを構築)
  2. 自然言語で質問 → 根拠付きの回答を自動取得
  3. エンティティ間の関係がグラフとして構造化済み
Q: 「光触媒による水素生成で、TiO2 以外の材料で最も高い量子効率を達成した手法は?」

→ ステップ1: 光触媒 → 水素生成 → 量子効率 のファクトチェーンを辿る
→ ステップ2: TiO2 を除外し、CdS, g-C3N4 等のエンティティを検索
→ ステップ3: 各材料の量子効率を比較し、最高値のファクトを返す

回答: "g-C3N4 系量子ドット複合体が 92.3% の量子効率を達成(Zhang et al., 2025)"
  ├── 根拠パッセージ: passage-4821 (信頼度: 0.94)
  └── 関連ファクト: 3 件

2.2 先行研究の矛盾・差分の発見

異なる論文が同じ手法について異なる結果を報告していることは珍しくない。MemGraphRAG のナレッジグラフでは、同一エンティティに紐づく複数のファクトを構造的に比較 できる。

2.3 MCP 経由での AI エージェント統合

MemGraphRAG は MCP(Model Context Protocol)サーバーとして動作するため、Claude Desktop / Cursor / VS Code Copilot などの AI エージェントから直接利用できる。

研究者 → Claude Desktop
          ↓ MCP
      aira-synapse (MemGraphRAG)
          ↓ ナレッジグラフ検索
      根拠付き回答 + 引用パッセージ

研究者が新しいツールを覚える必要はない — いつも使っている AI アシスタントの裏側で、論文知識ベースが自動的に参照される。

3. 90% の壁を超えるまで — 15 回のイテレーション

3.1 結果サマリー

HotpotQA 500 問での各システムの精度比較を示す。aira-synapse は論文の公式実装だけでなく、他の主要な GraphRAG 手法すべてを大きく上回った。

システム HotpotQA 500問 備考
aira-synapse 90.0% TypeScript / LadybugDB
MemGraphRAG(論文) 71.6% Python 公式実装
LinearRAG 65.3%
HippoRAG2 65.2%
LightRAG 62.0%
MS-GraphRAG 51.6%

論文の公式実装を +18.4% 上回る精度を達成した。

3.2 精度推移グラフ

15 回のイテレーションを通じた精度の推移を示す。v1(55.8%)から v15(90.0%)まで、大きく 3 つの転換点で精度が跳ね上がった。特に注目すべきは、アルゴリズムの改善よりもデータとインフラの改善が圧倒的に効いた という事実である。

精度 (%)
  95 ┤
  90 ┤                                          ●── 90.0% (eval v2)
  85 ┤                                     ●── 88.4% (eval v1)
  80 ┤
  75 ┤
  70 ┤- - - - - - - - - - - - - - - - - - -│- - 71.6% (論文)
  65 ┤
  60 ┤         ●── 59.2% (v4)
  55 ┤  ●── 55.8% (v1)
  50 ┤
     └───────────────────────────────────────────────────────────────▶ イテレーション
      v1  v2  v3  v4             ...           v15
      └──SQLite──┘                └──LadybugDB──┘

3.3 3つの転換点

転換点 1: コーパスカバレッジ 100%(+29.2%)

v4 まではインデックス化が途中で中断していた。正解が含まれるパッセージがそもそもグラフに存在しない 状態で精度を改善しようとしていた。

項目 v4 v15
インデックス文書 60 バッチ 254 バッチ
パッセージ数 4,897 11,871
グラフノード 31,516 316,935
グラフエッジ 54,735 682,240

教訓:グラフの精度を上げる前に、データの網羅性を確保せよ。

転換点 2: LadybugDB 導入(検索速度 4x)

LadybugDB とは

LadybugDB(旧 Kuzu)は、組み込み型のグラフデータベースです。Cypher クエリ言語をサポートし、ネイティブな HNSW ベクトルインデックス、全文検索(BM25)、PageRank などのグラフアルゴリズムを備えています。SQLite のようにファイルベースで動作するため、サーバー不要で研究用途に適しています。

aira-synapse ではクリーンアーキテクチャの IGraphStore インターフェースでグラフ DB を抽象化しているため、大規模運用時に Neo4j へ移行する場合もアダプターの追加だけで対応できます。LadybugDB も Neo4j も同じ Cypher クエリ言語 を採用しているため、クエリの書き換えもほぼ不要です。

SQLite の graph_edges テーブルでの JOIN ベース隣接ノード検索から、LadybugDB(旧 Kuzu)のネイティブ Cypher クエリに移行した。

-- LadybugDB: ネイティブグラフ走査
MATCH (n:Node)-[e:EDGE]->(m:Node)
WHERE n.node_id = $nodeId
RETURN m.node_id, m.label, e.weight
項目 SQLite LadybugDB
PPR 全反復 ~200ms ~50ms
DB サイズ 946 MB 427 MB
クエリ/秒 ~0.2 ~0.26

教訓:グラフ探索にはグラフ DB を使え。RDB での再発明は遅い。

転換点 3: 評価ロジックの改善(+3.6%)

エラー分析で判明した「正解なのに不正解と判定されている」ケース:

パターン 例 対応
スペルバリエーション Wendigo ↔ Windigo fuzzyMatch (Levenshtein ≤ 2)
職業の同義語 writer ↔ novelist synonymMatch
地理的包含 Munich → Germany geoContainmentMatch
略称 HC Davos ↔ Hockey Club Davos abbreviationMatch
ニックネーム Bill ↔ William NICKNAME_MAP
イニシャル J. Cole ↔ Jermaine Cole initialsMatch

教訓:モデルの精度を上げる前に、評価方法が正しいか疑え。

4. 辞書とシソーラスの「正しい使い方」 — Ablation が教えてくれたこと

4.1 失敗した試み:PPR テレポート注入

直感的には、専門用語辞書やシソーラスで検索を「賢く」すれば精度が上がるはずだ。v0.3.0 では以下の機能を実装した。

  • DictionaryAwareNodeInitializer: 辞書にマッチするノードを PPR の初期ベクトルに注入
  • ThesaurusExpansion: シソーラスで類義語を展開し、検索範囲を拡大
  • DictionaryContextEnricher: LLM プロンプトに辞書情報を追加

4.2 Ablation テストの結果

7 構成 × 500 問の系統的なテスト:

構成 精度 Δ
v15 baseline(辞書/シソーラス全 OFF) 88.4% —
全機能 ON 85.0% −3.4%
シソーラスのみ OFF 86.8% −1.6%
辞書のスコア比率を下げる (0.3→0.1) 86.6% −1.8%
Context enrichment のみ 87.0% −1.4%

全ての v0.3.0 機能が精度を下げた。

4.3 なぜ逆効果だったのか

PPR テレポートベクトル(良い場合):
  Embedding 類似ノード ──→ PPR ──→ 正しい推論チェーン ──→ ✅

PPR テレポートベクトル(辞書注入後):
  Embedding 類似ノード + 辞書ノード ──→ PPR ──→ ノイズ混入 ──→ ❌
                                                  ↑
                                        辞書ノードが高品質な
                                        seed を希釈する
  1. テレポートベクトルの品質劣化: embedding ベースの高品質な初期ベクトルが、辞書ノードで希釈される
  2. シソーラス展開のノイズ: 類義語展開により、クエリの焦点がぼやけ、無関係なサブグラフに伝播
  3. Factoid QA の特性: HotpotQA では正確なエンティティマッチが重要。曖昧な展開は逆効果

4.4 辞書/シソーラスの正しい使い場所

検索時ではなく、インデックス構築時 に活用すべき:

フェーズ 辞書の活用 シソーラスの活用
Stage I(抽出) ✅ エンティティ識別の補助 ✅ 略語の正規化
Stage II(正規化) ✅ 正式名称への統一 ✅ スキーマ統合
Stage IV(グラフ投影) − ✅ ブリッジエッジの生成
クエリ時 PPR ❌ 精度低下 ❌ 精度低下
クエリ時プロンプト △ 中立 −

5. AI for Science のための設計

5.1 論文取得からナレッジグラフ構築までのパイプライン

┌───────────────────────────────────────────────────────────┐
│  AIRA (AI Research Assistant)                            │
│  ┌─────────────────┐                                      │
│  │ ToolUniverse    │                                     │
│  │ Semantic Scholar│──▶ PDF ──▶ Dockling ──▶ Markdown  │
│  │ arXiv           │                                      │
│  │ J-STAGE         │  ← 日本語論文対応                     │
│  │ CiNii Research  │                                      │
│  └───────┬─────────┘                                     │
│          │ MCP (Model Context Protocol)                  │
├──────────┼───────────────────────────────────────────────┤
│  aira-synapse (MemGraphRAG)                              │
│          ↓                                               │
│  ┌──────────────┐  ┌───────────────┐  ┌──────────────┐   │
│  │ Stage I      │  │ Stage II      │  │ Stage III    │   │
│  │ 抽出          │→│ スキーマ正規化  │→ │ 矛盾検出     │   │
│  │ (LLM Agent)  │  │ (Symbolic)    │  │ (Symbolic)   │   │
│  └──────────────┘  └───────────────┘  └──────────────┘   │
│          ↓                                               │
│  ┌──────────────────────────────────────────────────┐    │
│  │ Stage IV: グラフ投影                              │    │
│  │ SQLite (メタデータ) + LadybugDB (グラフ)          │    │
│  │ 316,935 ノード / 682,240 エッジ                   │    │
│  └──────────────────────────────────────────────────┘    │
│          ↓                                               │
│  ┌──────────────────────────────────────────────────┐    │
│  │ クエリパイプライン                                 │    │
│  │ VectorFilter → NodeInit → PPR → Context → LLM    │    │
│  │ 平均 3.8 秒/クエリ                                │    │
│  └──────────────────────────────────────────────────┘    │
└──────────────────────────────────────────────────────────┘

5.2 MCP サーバーとしての統合

aira-synapse は 14 個の MCP ツールを提供し、AI エージェントからの直接操作を可能にする。

// MCP ツール一覧
const tools = [
  'index_document',      // 文書のインデックス化
  'query',               // ナレッジグラフへのクエリ
  'corpus_stats',        // コーパス統計
  'build_dictionary',    // 専門用語辞書の構築
  'build_thesaurus',     // シソーラスの構築
  'search_facts',        // ファクト検索
  'search_passages',     // パッセージ検索
  'get_schema_stats',    // スキーマ統計
  // ... 他 6 ツール
];

6. 日本語論文への対応 — 言語の壁を超える

6.1 日本語 NLP パイプライン

科学技術論文の多くは英語だが、日本語でしか得られない知見 は確実に存在する。材料科学、医薬品、食品科学など、日本が強みを持つ分野では J-STAGE や CiNii Research に掲載された日本語論文が重要な情報源となる。

aira-synapse は GiNZA(ja_ginza_electra)を用いた日本語 NLP パイプラインを備える。

日本語論文 PDF
  ↓ Dockling (IBM)
日本語 Markdown
  ↓ GiNZA (spaCy)
  ├── 形態素解析(Transformers ベース)
  ├── 固有表現認識(NER)
  ├── 依存構造解析
  └── 文境界検出
  ↓
日本語ファクト抽出
  ↓ LLM (多言語対応)
三層メモリへ統合

6.2 多言語統合の設計方針

層 英語論文 日本語論文 統合方針
Passage 層 英語テキスト 日本語テキスト 言語タグ付きで並存
Fact 層 英語トリプル 日本語トリプル → 正規化時に英語に統合 LLM による cross-lingual entity linking
Ontology 層 英語スキーマ 統合済み 言語非依存のセマンティックスキーマ

6.3 日本語特有の課題と対策

課題 例 対策
表記ゆれ 知識グラフ / ナレッジグラフ / KG シソーラス正規化
専門用語の英語混在 「PPR を用いたサブグラフ検索」 辞書ブーストで英語エンティティを優先認識
チャンキングの困難さ 日本語は単語境界がない GiNZA の文境界検出 + 形態素ベースチャンキング
Embedding の言語差 日英で同じ概念が異なるベクトルに multilingual embedding モデル
論文取得 Semantic Scholar で見つからない J-STAGE API + CiNii Research API

6.4 期待される効果

日本語論文を統合することで、以下のようなクロスリンガルな質問応答が可能になる。

Q: 「光触媒による水素生成で、最新の量子収率改善手法は?」

→ 英語論文: "Recent advances in photocatalytic hydrogen evolution..."
→ 日本語論文: 「酸化チタン系光触媒の量子収率90%超えを達成した...」
→ 統合された知識グラフから両方のファクトを取得
→ LLM が日本語で統合的に回答

7. エラー分析 — 残り 10% の壁

7.1 エラーの分類

500 問中 50 問の不正解を分析した結果:

カテゴリ 件数 説明
完全不正解 14 間違ったエンティティ/ファクトを取得
表現の違い 26 応答は実質正解だが表現が異なる(eval で対応済み)
汎用的すぎる正解 5 gold が "IT", "yes" 等の短い回答
Yes/No 誤判定 3 比較クエリでの論理判断ミス
スペル違い 1 1年の誤差 (1937 vs 1938)
Eval で回復済み 8 fuzzy/synonym/geo マッチで回復

7.2 重要な発見

全 50 問で、正解テキストはコーパスに存在している。 コーパスギャップは 0 件。

つまり、残りのエラーは:

  • 検索の問題: PPR が正しい推論チェーンにたどり着けない(14 件)
  • 推論の問題: LLM が取得したコンテキストから正しい答えを導けない(3 件)
  • 評価の問題: 正解の表現が多様すぎる(26 件中 18 件は未対応)

7.3 今後の改善方向

Phase 2 ablation(500問)で、クエリリライト・パッセージ再ランキング・比較推論はいずれも 精度を下げる ことが判明した。LLM の非決定性が bridge 問題の精度を不安定にするためである。

アプローチ 実験結果 教訓
クエリリライト −1.4% LLM によるサブクエリ分解は bridge 回答を不安定にする
パッセージ再ランキング −1.0% PPR のスコア順序を LLM で上書きすると情報が失われる
比較推論強化 −1.0%(500問) 100問では +1% だが、500問では退行。小規模テストは信用できない
Eval のさらなる改善 +1-2%(見込み) 未対応の表現パターン(18件)への対応が最も確実

現時点での最善戦略は、アルゴリズムを弄らず Eval 改善に集中すること。

8. 技術スタック

レイヤー 技術 選定理由
言語 TypeScript 5.3+ / ESM 型安全性 + AI エージェントとの親和性
グラフ DB LadybugDB (旧 Kuzu) 組み込み型、ネイティブ Cypher、HNSW ベクトル
メタデータ DB SQLite (better-sqlite3) ゼロ設定、トランザクション安全
ベクトル検索 HNSW (LadybugDB) + f32 binary ネイティブ統合 + フォールバック
LLM GPT-5.4-mini (OpenAI) コスト効率 + reasoning_effort 制御
Embedding text-embedding-3-large 3,072 次元、多言語対応
日本語 NLP GiNZA (ja_ginza_electra) spaCy 互換、Transformers ベース
PDF 変換 Dockling IBM 製、高品質 PDF→Markdown 変換
CLI Commander.js 8 コマンド
MCP サーバー @modelcontextprotocol/sdk 14 ツール
テスト Vitest 508 テスト
アーキテクチャ 4 層クリーンアーキテクチャ Domain / Application / Infrastructure / Interface

9. 自分の論文コーパスで試す

9.1 リポジトリを取得

git clone https://github.com/nahisaho/aira-synapse.git
cd aira-synapse/packages/memgraphrag
npm install

9.2 論文をインデックス化

# PDF → Markdown 変換(markitdown 使用)
npx memgraphrag index \
  --input-dir ./papers/ \
  --corpus-id my-research \
  --config config/default.memgraphrag.yml

対応フォーマット: PDF(markitdown 経由)、Markdown、テキスト

9.3 質問してみる

npx memgraphrag query \
  --corpus-id my-research \
  --text "PPR を使った GraphRAG で最も精度が高い手法は?" \
  --top-k 10 \
  --config config/default.memgraphrag.yml

9.4 MCP サーバーとして AI エージェントに統合

// Claude Desktop の claude_desktop_config.json に追加
{
  "mcpServers": {
    "memgraphrag": {
      "command": "npx",
      "args": ["memgraphrag", "mcp-server", "--corpus-id", "my-research"]
    }
  }
}

これで Claude Desktop / Cursor / VS Code Copilot から直接論文知識ベースを参照できる。

今できること(v0.3.5):

  • 英語論文のインデックス化と質問応答(HotpotQA 90.0%)
  • LadybugDB によるグラフ探索(PPR、ベクトル検索)
  • MCP サーバー経由での AI エージェント統合(14ツール)

開発中(v0.4.0〜):

  • 日本語論文パイプライン(GiNZA + 専門用語辞書)
  • 専門分野辞書の自動構築
  • Wake-Sleep メモリ統合(オフラインでのグラフ圧縮・再構成)
  • AIRA との完全統合:論文収集 → インデックス → クエリ → レポート生成

10. まとめ

達成したこと

項目 数値
HotpotQA 精度 90.0% (論文 71.6% の +18.4%)
グラフ規模 316,935 ノード / 682,240 エッジ
クエリ応答時間 平均 3.8 秒
テスト数 508
MCP ツール 14

学んだこと

  1. データの網羅性が最も重要: コーパスカバレッジ 100% で +29.2% の改善。アルゴリズムの改善は数 % しか効かない
  2. グラフ DB はグラフ探索に使え: SQLite での再発明は遅い。LadybugDB で PPR が 4 倍高速化
  3. 辞書/シソーラスは「いつ使うか」が重要: 検索時の注入は逆効果。インデックス時の正規化に活用せよ
  4. 評価方法を疑え: 評価ロジックの改善だけで +3.6%。モデルを変える前に物差しを直す
  5. 100 問テストは信用するな: ±3% のブレがある。500 問以上で検証せよ

研究者の方へ

MemGraphRAG はまだ発展途上だが、英語論文の知識統合には実用段階 にある。論文が溜まって整理しきれない、文献レビューに時間がかかりすぎる、そんな研究者の方はぜひ自分のコーパスで試してみてほしい。

Issue、PR、質問はすべて歓迎。特に以下の分野での実証実験パートナーを募集中:

  • 材料科学 — 実験条件と性能値の構造化
  • バイオインフォマティクス — 遺伝子・タンパク質のエンティティグラフ
  • 計算化学 — 反応経路と触媒のナレッジベース
  • 社会科学 — 日本語論文と英語論文のクロスリンガル統合

参考文献

15
13
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
15
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?