knowledge graphsを使ったRAGへ初めの一歩

はじめに

少し前のこの投稿で、ナレッジグラフを使うため、nao4jをローカル環境(dockerコンテナとして)インストールしたことについて述べた。

この投稿ではネット記事を参考にしながら、簡単なナレッジグラフを構築し、RAGとして使用してみたので、その内容についてまとめたい。今回はネット記事をそのまま試したので初めの一歩とした。

[続きを読む]

PLaMo β版を試す

はじめに

8/8にこの記事を読んだ。それによると、GPT-4を超える日本語性能を持つLLMをPreferred Networksの子会社(PFE)が、商用版提供に先駆けて無料トライアルの提供開始すると。

早速、無料トライアルに申し込んで、受付完了のメールを受け取って、アカウント発行の通知を待っていた。通知メールは、8/9に受け取っていたのだが、自分が見過ごしてしまって、申し込んだこともすっかり忘れていた。最近、この記事を読んで、無料トライアルの件を思い出し、メールを再確認し、アカウント通知を見つけた。

この投稿では、無料トライアル版を試した内容をまとめる。

[続きを読む]

neo4jをインストールしてknowledge graphsを試す

モチベーション

これまで、FAISSやBM25を使ってRAGシステムを構築した。ベクトル検索は比較的簡単に構築できるが、必要な情報が"k"個の文書にない場合もあり、精度向上策を調べていた。たまたまこの記事を読んで、ナレッジグラフに興味を持って、自分でも試してみようと思った。

この投稿では、ナレッジグラフを使うため、nao4jをローカル環境にインストールし、ブラウザから使ってみるまでをまとめる。

[続きを読む]

RAGシステムを構築

はじめに

昨日までに、Wikipediaから天文関連の項目を抽出し、RAG向けにベクトルデータベースとキーワードベースを作成した。ここでは、それらのデータベースを使って、RAGシステムを構築する。

使用するLLMは、ChatGPT(gpt-4o)とLlama-3-ELYZA-JP-8Bを使う。

[続きを読む]

WikipediaダンプデータからRAG向けテキストデータ作成

モチベーション

LangChainを使ってRAGを試しているのだが、確認用に使用するデータに何を使おうかと考えていたところ、wikipediaのダンプデータを使うことにした。全体ではボリュームを大きいので、自分の興味のある天文関係のカテゴリーのデータを使うことにした。

ここでは、wikipediaダンプデータから特定のカテゴリーのデータのみを取り出す一連の手順をまとめた。

[続きを読む]

LlamaIndexを使ってRAGを試す

モチベーション

Chatbot UIを試したこの投稿で、今後挑戦したいことの一つにRAG(Retrieval Augmented Generation)との連携と述べた。この投稿ではLlamaIndexを使ってRAGを実現する方法についてまとめた。

実は昨年末にLangchainを使ってRAGを試してみた。その後、LlamaIndexとのキーワードを良く聞いてきたので、今回LlamaIndexを使ってRAGを実現することにした。

[続きを読む]

Chatbot UIを試す

はじめに

先日の投稿では、llama-cpp-pythonを使ってローカル環境でELYZA 7Bモデルを動かした。その投稿で「今後について」ChatGPTのように会話できるシステムの構築に挑戦したいと述べた。

今回、ChatGPTのように会話できるシステムをdockerコンテナで構築したので、その内容をここにまとめる。

[続きを読む]

Elyzaモデルをllama-cpp-pythonを使ってGPUで動かす

モチベーション

LLMを手元のワークステーション(GPUのメモリ12〜16GB)で動かすには量子化が必須となる。この投稿では、llama-cpp-pythonを使って、GPU資源を最大限に活用することに挑戦したので、その内容をまとめる。

自分の理解不足のためハマったところもあるので、自分が失敗した箇所も含めた内容となっている。

[続きを読む]