0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ローカルLLM&日本語テキストによるGraphRAGのテスト(失敗)

Last updated at Posted at 2024-12-27

概要

ローカルLLM+GraphRAGで日本語テキストデータのインデックス作成を試みたが失敗したので、その途中までの作業記録を残す(GraphRAGの多言語対応が進んだらリトライしてみよう…)

  1. 仮想環境の作成とGraphRAGのインストール
  2. プロジェクトの初期化とinputフォルダへのデータ配置
  3. settings.yamlの修正
  4. 環境変数でのAPI_BASE設定
  5. プロンプトチューニング(prompt-tune
  6. インデックス化の試行と課題

1. 仮想環境の作成とGraphRAGのインストール

# 仮想環境の作成とアクティベート
$ python3 -m venv graph-venv
$ source graph-venv/bin/activate

# pipでGraphRAGをインストール
(graph-venv) $ pip install graphrag

2. プロジェクトの初期化とinputフォルダへのデータ配置

(graph-venv) $ graphrag init --root ./ragtest

プロジェクト初期化後に、以下のフォルダ構造が生成される。

ragtest/
├── input/  # テキストデータを配置するフォルダ
├── prompts/  # プロンプト設定を管理するフォルダ
└── settings.yaml  # プロジェクト全体の設定

inputフォルダに解析対象の日本語テキストファイルを配置。
2025/12/26時点ではtxtとcsvのみ対応であるらしい。

ragtest/input/sample.txt

sample.txtの内容(例):

メロスは激怒した。必ず、かの邪智暴虐の王を除かなければならぬと決意した。

3. settings.yamlの修正

settings.yamlファイルを以下のように修正。

# settings.yamlの抜粋(修正後)
encoding_model: cl100k_base
llm:
  api_key: sk-2d76xxxxxxxxxxxxxxda5e24
  type: openai_chat
  model: jean-luc/tiger-gemma:9B-v1a-Q4_K_M
  model_supports_json: true
  api_base: http://localhost:3000/api

embeddings:
  llm:
    api_key: sk-2dxxxxxxxxxxx24
    type: openai_embedding
    model: nomic-embed-text:latest
    api_base: http://localhost:3000/api

修正点:

  • llm.api_baseembeddings.llm.api_base にローカル環境のAPIエンドポイント (http://localhost:3000/api) を指定。
  • 使用するモデル名を適切に設定。
  • これらのパラメータはopen webuiのopenai互換API利用を前提としている(Ollamaでやっている事例のほうが世の中には多い模様。まあopen webuiもバックエンドはOllamaだから似たようなもんか…)

4. 環境変数でのAPI_BASE設定

GraphRAGでは、settings.yamlapi_base を設定しても、環境変数 OPENAI_BASE_URL を別途設定しないと動作しないバグ、あるいはガイド不足がある。1

(graph-venv) $ export OPENAI_BASE_URL=http://localhost:3000/api

5. プロンプトチューニング(prompt-tune

graphrag prompt-tuneコマンドを使用してプロンプトをチューニング。

(graph-venv) $ graphrag prompt-tune --root ./ragtest --config ./ragtest/settings.yaml --language Japanese

このコマンドにより、prompts/ フォルダにエンティティ抽出や関係性抽出に使用するプロンプトが生成される。

6. インデックス化の試行と課題

graphrag index コマンドを実行してインデックス作成を試みたが、異常終了。

(graph-venv) $ graphrag index --root ./ragtest --config ./ragtest/settings.yaml
Logging enabled at /mnt/NVMe01TB01/graphrag/ragtest/logs/indexing-engine.log
❌ extract_graph
None

発生したエラー

09:59:41,961 graphrag.index.graph.extractors.graph.graph_extractor ERROR error extracting graph
ValueError: Entity Extraction failed. No entities detected during extraction.

このエラーは解決できなかった。以下の可能性が想定される。

  1. モデルが日本語テキストに適していない。
  2. プロンプトの設計が不十分。
  3. 入力データがエンティティ抽出に適していない。
  1. GitHub Issue: API_BASEに関する問題

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?