モチベーション
これまで、FAISSやBM25を使ってRAGシステムを構築した。ベクトル検索は比較的簡単に構築できるが、必要な情報が"k"個の文書にない場合もあり、精度向上策を調べていた。たまたまこの記事を読んで、ナレッジグラフに興味を持って、自分でも試してみようと思った。
この投稿では、ナレッジグラフを使うため、nao4jをローカル環境にインストールし、ブラウザから使ってみるまでをまとめる。
情報源
- RAGアプリケーションの精度をナレッジグラフで高める ナレッジグラフを知るきっかけとなった記事。
- ナレッジグラフ:技術的概要とアプリケーション 上記記事の筆者による、ナレッジグラフの解説記事。
- neo4j neio4jの本家のページ。このページの「Get Started for Free」からクラウドサービスの「neo4j auraDB」を使うことができる。
- Getting started with Neo4j in Docker ドキュメントページにあるDockerの紹介部分。
- dockerhub neo4jのDocker Officaial Imageを提供しているdockerhubのページ。上記の紹介ドキュメントのページにもリンクあり。
- Neo4j Licensing Neo4jのライセンスについて説明。Community EditionとEnterprise Editionがあるが、自分は、Community Editionを使う。Community EditionはGPL v3ライセンスである。
- Simple Graph Database Setup with Neo4j and Docker Compose このページのDocker Composeを参考にして、コンテナを起動するようにした。
コンテナを起動
docker-compose.yml
情報源7.を参考に、以下の通り$HOMEディレクトリ配下に、docker-compose.ymlを作成した。
$ pwd
/home/kenji/workspace/neo4j
$ cat docker-compose.yml
services:
neo4j:
container_name: neo4j
image: neo4j:latest
ports:
- 7474:7474
- 7687:7687
environment:
- NEO4J_AUTH=neo4j/password
- NEO4J_apoc_export_file_enabled=true
- NEO4J_apoc_import_file_enabled=true
- NEO4J_apoc_import_file_use__neo4j__config=true
- NEO4J_PLUGINS=["apoc", "graph-data-science"]
volumes:
- ./neo4j_db/data:/data
上記により、最新版のコミュニティエディションのneo4jコンテナが起動される。
neo4jを起動
$ pwd
/home/kenji/workspace/neo4j
$ sudo docker compose up -d
ローカル環境からneo4jに接続
neo4jコンテナを起動したマシン上のブラウザで、”http://localhost:7474/”と入力すると、neo4jに接続する。
最初に接続するとパスワード入力を求められるので、パスワードを設定し、docker-compose.ymlの”password"を変更する。
別マシンからneo4jに接続
ネットワークにつながっている別のマシンのブラウザで、“http://192.168.11.8:7474/“と入力すると、neo4jに接続できる。 もちろん"192.168.11.8"の部分は、自身の環境に合わせて適宜変更のこと。
ブラウザからneo4jを使ってみる
Try Neo4j with live dataを試す
先ずは、neo4jサーバ上で、コンテナを起動する。『neo4jを起動」の通り。
ブラウザからneo4jに接続する。「ローカル環境/別マシンからneo4jに接続」の通り。
中央の「Try Neo4j with live data」の「Open guide」をクリックすると、試していける。
サイドメニューが開いたら、「Next」で順次進めていく。サイドメニューのCypherクエリの枠をクリックすると、右側のプロンプト行にコピペされるので、「▶︎」で実行する。
一通り試すのに、30分から1時間程度掛かった。
今後について
CypherはSQLに雰囲気は似ているが、別物であり、理解はできていないが、上記の通り試してみるとなんとなくイメージはつかめる。
今後は、これでRAGシステムを構築してみたい。