対話型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です。