【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です。


【Stable Diffusion】ポーズを変えるtile機能、アメリカンホラーコミック

ジェネラティブAI「Stable Diffusion」を使って、他のサイトでは見かけない独自の画像生成に挑戦シリーズ。
ついに第6弾。

相変わらず、私、萩原の顔をモデルにした画像を作ってます。
今回も、3つの異なるテーマに沿った9つのイラストを紹介します。
テーマごとにprompt(プロンプト)の肝も紹介してます。参考にどうぞ。

テーマその1【ポーズを変える】

以前作った下の画像が好評でした。
Stable Diffusionが苦手とされてきた「同様の画像」作りが、様々な拡張で可能になってきたので試します。

使ったのはアドオン ControlNET ver.1.1で提供される tile です。
利用方法は「上の画像」と「新たに作りたい画像のprompt」を与えること。

私はpromptとして、上の画像を作ったときと同じか、ほぼ同じものを与えました。結果は以下。

確かによく似ています。promptを変えれば、服、ポーズ、背景などを変えるなどもできるようです。別の機会に試したいと思います。

テーマその2【アメリカンホラーコミック with inky color】

以前、アメコミ風ポスターを作りました。
 (以前の記事は【こちら】

ホラー的なものを作りたくなり、改めて挑戦しました。
動機となったのは、本屋で見かけて衝動買いしてしまったコミック
「CREEPSHOW」
です。
こちらの本。

注意:こちらはstabile diffusionで生成した画像ではありません。本の表紙の実写です。

僕が小学校の頃、CREEPSHOWという映画が制作されました。

最近はアメリカでTVシリーズとして新作が制作されてきました。

こちらは新しい漫画版です。

果たして、できた画像は。

どうでしょう。僕としてはお気に入りの仕上がりになりました。

使ったプロンプト(prompt)は

Creepshow
anime
comic style
monster
inky color

など。Creepshowがしっかりと機能してくれました。
色合いは inky color がポイントになっています。
次のテーマではinky colorを外したバージョンを紹介します。

テーマその3【アメリカンホラーコミック without inky color】

テーマ2と同様にプロンプトをしつつ、inky colorを外したのがこちら。
アメコミのホラー感は残しつつ、画風がガラッと変わりました。

以上、3つのテーマで生成したAI画像を紹介しました。

楽しんで頂けましたか。

【参考】
画像生成AIシステムは Stable Diffusion。
モデルファイルはSD v1-5をベースに、DreamBoothを使って、自分の顔写真を追加学習させた独自のチェックポイント。
UIはAutomatic1111。

紹介したテーマのような画像を作成したくなったら
いつでも連絡ください。
お手伝いできるかも知れません。

Twitterやってます。
アカウントは
https://twitter.com/QRJAM (@QRJAM
フォローよろしく。


【Stable Diffusion】イナセおじさん、ウォールアート、ドラゴンボール

ジェネラティブAI「Stable Diffusion」を使って、他のサイトでは見かけない独自の画像生成に挑戦中。
私、萩原の顔をモデルにした画像です。
今回も、3つの異なるテーマに沿った9つのイラストを紹介します。
テーマごとにprompt(プロンプト)の肝も紹介してます。参考にどうぞ。

テーマその1【イナセおじさん】

和を感じさせる萩原画。わかりやすい和。
真ん中の人形風のものは、「和」+「ねんどろいど」。

プロンプトはシンプルです。

ukiyo-e

です。これで、和風のイラストができます。
ねんどろいどのプロンプトは

nendoroido

です。二つのプロンプトを使えば、和風ねんどろいどができちゃいます。

テーマその2【ウォールアート】

自分の顔が街を飾ったら、なんて妄想もStable Diffusionなら簡単に。
自分が凄い人になったような錯覚を楽しめます。

使ったプロンプトは

wall art depicting ****
wall paint

など。
****には壁に書かせたい対象を書きましょう。私は自分を指定しました。

テーマその3【ドラゴンボール】

ドラゴンボールの主人公 孫悟空 になりました。
痛々しさ半端ないですね。
髪が黄色でトンがって、柔らかそうな洋服を着てたらOKと誤解してしまったのでしょうか。

使ったプロンプトは

Goku
Goku Hair

です。
そのまんまですね。
Stable Diffusion のスタンダードなモデル sd-v***.ckpt には孫悟空のデータが Goku として学習されているようです。

 

【参考】
画像生成AIシステムは Stable Diffusion。
モデルファイルはSD v1-4をベースに、DreamBoothを使って、自分の顔写真を追加学習させた独自のチェックポイント。
UIはAutomatic1111。

紹介したテーマで自分の顔も変えて欲しい方は
連絡くれたらお手伝いするかも。

Twitterやってます。
アカウントは
https://twitter.com/QRJAM (@QRJAM
フォローよろしく。