【privateGPT】特徴、インストール、お試し

対話型AIの新システムとして「privateGPT」が登場しました。同様のシステムではchatGPTが有名です。この記事では私がprivateGPTを使用してみた感じたことを、つらつらと綴っていきます。

ちなみにprivateGPTはフリーで利用できます。
現在、英語は使えますが、日本語は使えません。

◇特徴

私が気付いたprivateGPTの特徴を3つ挙げます。

1.ローカルで動作する。
自分のパソコンにインストールすることで、インターネット環境無しで動作します。このことは「機密情報をインターネット上に流すことなく、システムを利用可能」という恩恵をもたらします。
またchatGPTでは、一度に利用できるユーザ数に制限があるため、混雑時は使用できないという問題がありました。privateGPTは自分のパソコンで動作するため、そのような問題は生じません。

2.大規模言語モデル LLM を選択できる。
対話型AIが自然な文章、もっと言えばプログラムのソースコードや、言語翻訳などができる背景にLLMと呼ばれるデータの塊があります。LLMは1つではありません。LLMの基になっているデータにより、得意な対話内容が変化します。インターネット上には様々なLLMが公開されています。無料で利用可能なLLMもあります。

3.追加学習が容易にできる。
privateGPTではLLMの他に、対話内容に反映させるデータを追加できます。パソコン内のPDFファイル、txtファイル、WORDファイル(doc, docx)、CSVファイル、メール、HTMLファイル、パワーポイントファイル(ppt, pptx)など、様々なファイルの内容をprivateGPTの出力に反映させることができます。利用者は、どのファイルを反映させるか指定できます。
注意:ソースコードのingest.pyを書き換えれば、他の形式のファイルも扱えます。例えば、.tex、.leanといったテキストファイルなら、扱う拡張子を増やすように書き換えるだけでOKです。

◇インストール

複数の手順が必要です。さらに、ある程度時間がかかります。
わかりやすい解説記事や動画があるので、
ここでは、それらを紹介するに留めます。

下の二つのURIに関して私は、前者をPrivateGPTのインストール、後者をLLMモデルの変更、についてそれぞれ参考にしました。

・完全オフラインで動作してプライバシーを守ってくれるチャットAI「PrivateGPT」を使ってみた(Gigazine)
 https://gigazine.net/news/20230522-private-gpt/

・INSTALL PrivateGPT NOW! CHAT With Your DOCUMENTS Using AI!
 YouTube by Aitrepreneur
 https://youtu.be/A3F5riM5BNE

◇お試し

私の環境は
 PC: ノートパソコン Surface Book 3、15インチ
 OS: Windows 11
です。
 LLMは ggml-vic13b-q5_1.bin です。

ちょうど手元に「読もう」「読まなきゃ」と思いつつ「おさぼり」していたPDFファイルが16個ありました。あるシンポジウムの予稿として発表された論文です。どのファイルもA4で5ページ、ダブルコラム。数式の多い文章です。

ingest(privateGPTの対話に反映させるように内容をベクトル化すること)は、わずか2分程度で完了しました。やり方は簡単。
・フォルダ source_documents 内に、ingestさせたいファイルを置く。
・ingest.py を起動する。
以上です。

 

PDFの著者の名前を挙げて、特定の分野での貢献について質問をしてみました。
特定のPDFの情報が正しく読まれているかの確認です。
その結果はこちらです。

PDFの内容を反映した返事が生成されました。さらに面白いことに、privateGPTの返事の根拠も出力されています。根拠となったPDFファイル、さらにそのPDF内の文書まで明記されています。

対話型AIの難点として、出力される情報の一部が誤っていることが挙げられます。上のように、根拠も提示されれば、誤りがあるか否か判断しやすくなります。

ただし、出力まで5分以上かかりました。

続いて、もっと複雑な要求をしてみました。
16個のPDF全体にまたがる質問です。

結果は以下です。

こちらもしっかりと回答されました。
というか、驚きなのですが、私がDNAをタイポしてDNSって書いちゃったのに、回答はDNAが推論されています。本当に驚きです。

回答の根拠も書かれているので、どのファイルのどの段落などを参照すれば良いかがわかります。(逆に、回答に抜けがあるかどうかはわかりません。)

出力まで10分程度かかりました。

◇まとめ

privateGPTの特徴、インストール、お試しについて記事にしました。
ローカル環境で動かせて、手元のファイルの内容を反映(ingest)できる対話型AIシステム。
しかもフリー。大きな欠点はCPUベースということ。GPUで動かしたい。。。

ingestの内容によって、思わぬアプリケーションが生まれる予感がします。
個人的には、数学の定理の自動証明に応用したいと考えています。

◇補足

記事中に記載したとおり、ingestの対象は変更可能。ingest.pyを書き換えればOK。

ingestの内容はフォルダ db 内に保存されます。リセットしたい場合は、同フォルダの削除もしくはリネームでOK。
応用として、内容を特化したdbの複数所持が可能です。
例えば、
 1-A. フォルダ source_documents 内にクラフトビール情報のファイルを置く。
 1-B.  ingest.py を起動。(フォルダ db が作成されます)
 1-C. dbをdb_beerにリネーム。
 1-D. source_documentsをsource_documents_beerにリネーム。
 1-E. source_documents内を空にする。
続いて
 2-A. フォルダ source_documents 内にJOJO情報のファイルを置く。
 2-B.  ingest.py を起動。(フォルダ db が作成されます)
 2-C. dbをdb_JOJOにリネーム。
 2-D. source_documentsをsource_documents_JOJOにリネーム。
 2-E. source_documents内を空にする。
のようにすれば、ソースフォルダ(source_documents)とデータフォルダ(db)が複数できます。
もしもJOJOに特化した対話をしたいときは、
 db_JOJOをコピーして、dbにリネーム。
 privateGPTを起動。
とすればOKです。