ラズパイ5(8GB)でLLM 、LangChain とLlamaIndex で外部データを使う-1(メモ)


LLM が応答に使う情報は基本、学習した時点のデータから得られたもののみです。情報を増やすためには再度トレーニングするかファインチューニングする必要がありますが、LangChainLlamaIndexを使う方法もあります。これは質問などを投げるプロンプトに新しい情報をインデックス化したものを埋め込んでおくやり方です。プロンプトエンジニアリングの一種(機能を盛るとRAGになる…?)。今回はこれをやってみます。

LLM として ELYZA-japanese-Llama-2-7b-fast-instruct-q4_0.gguf を使います。

実行プラットフォームはラズパイ5(8GB)。

 

 

 

 

 

 

 

ただ、LangChainもllamaIndexもアップデートが速いので、このやり方も一時的なものになります。まあ、やってみてどんなものか感触を得てみましょう。

 


環境設定

Raspberry Pi OS Desktop (Bookworm) 64-bit のPythonの現バージョンは3.11.2ですが、3.10.xバージョンを使います。

事前に必要なライブラリをインストールしておきます。

Python-3.10.11のソースをダウンロードして解凍

コンパイル&インストール

python3 で使えるようにリンクを張り直しておきます。

仮想環境設定(以前の環境も考慮してvenv2という名前にしておきます)

 


LangChainやLlamaIndex、および他のライブラリをバージョン指定してインストールします。
LlamaIndexはバージョン0.6.24を使うので他もそれに合わせています
これらのバージョンが最適というわけではないですが、一応無難にマッチしてはいます。

まずpipをアップグレードしておきます。

必要なパッケージやライブラリをバージョン指定してインストール

 

 

ELYZAのダウンロード
以前に作成したディレクトリにダウンロードします。

未だ作成されてなければ作成しておきます。
mkdir -p ~/models/gguf

 


LLM に渡す、新しい情報や追加情報を記述したドキュメントを作成します。

ディレクトリーを作成し、ドキュメントを置いておきます。

ドキュメントは異なる種類が複数あってもいいようです。LLM が事前に学習したことないかもしれない内容の情報を記述しておきます。

ドキュメントはUTF-8でプレーンテキストにしておきます。

1つ目は消化器のマニュアル。

### 消火器操作手順 ###
火災を発見したら、「火事だ!!」と大きな声で周囲に知らせ、近くの消火器を運び、火災現場到着したら消火器を火元へ向けて放射

### 消火器の使い方###
安全ピンを抜く、ノズルを火元に向ける、レバーを強く握る

2つ目は架空の人物の履歴です。

履歴
坂上 龍馬は、日本の幕末の志士、経営者。
出生地: 京都府 京都市
生年月日: 1835年10月4日
暗殺: 1868年10月4日, 京都
配偶者: なし
埋葬地: 京都府 京都市 京都霊山護國神社


LlamaIndex の埋め込みモデルは Multilingual-E5-largeを使用します。

埋め込みモデルというのは、このモデルを用いることで、言語情報をベクトル化し、効果的に機械学習に利用できるようにするものです。

上記のドキュメントを読み込んだら、これをインデックス化します。

実行用のPythonコードをmain.pyに記述します.

以下を記述

 

 

実行

>python3 main.py

初回は埋め込みモデルのダウンロードやドキュメントのインデックス化に少々時間を要します。

準備ができたら、入力フィールドが出るので、プロンプトを記述。

 

 

 

 

 

 

 

 

 

 

例によって「日本で一番高い山はどこですか?」をやってみましょう。

こんな感じ。回答が返ってくるのに3分近くかかりました。

 

 

 

 

では、ドキュメントに記述してインデックス化した新しい情報はどうでしょう?

2回目以降の質疑は、1分半を目安に回答が返ってきました。

 

 

 

 

 

 

 

 

 

 

 


Next

外部データソースにナレッジベースやナレッジグラフを使ってみます。

まずは数学演算をMathematica(Wolfram)にお願いしてみましょう。

Wolfram GPT

ちなみに、ラズパイにWolframはFullのimageではプレセットされていますが、他のimageの場合セットされていません。

インストールするには……..

>wolfram


WolframGPT

賢いです。

 

 

 

 

 

 

 

 

 

 

 

 

 

開発者向けWolfram Engineをセットアップ

ラズパイでナレッジベース


 

Be the first to comment

Leave a Reply

Your email address will not be published.


*