祝:日本経済新聞電子版 年間観覧数 1位:千葉大ビール(数学応用したビール)

嬉しい知らせがありました。
共有させて下さい。

日本経済新聞に
 「キャンパス発 この一品」
というコーナーがあります。
千葉大ビールは2022年夏に取り上げて頂きました。

後日、電子版観覧数ランキングが発表されました。
対象期間は2022年4月~2023年3月の1年間です。
なんと、1位、獲得しちゃいました。

興味を持って下さった、本当にありがとうございます。

「千葉大数学・情報数理学」による「ビール」の研究を
これからもよろしくお願いします。

  (補足:発表されたのは2023年5月17日です。)

私の名前も掲載されていました。

千葉大ビールの活動はパワーアップしながら新たな試みに挑んでいます。
2023年9月には新作の発表を予定しています。

同年11月には、もっと大きな発表ができるかも。

お楽しみに。


【Stable Diffusion】服選びに応用

ジェネレティブAI「Stable Diffusion」を服選び、色選びシステムに使えないか?

と思い立ちました。

ファッションサイトを見ていたときに、
モデルの来ている服を自分が来たらどんな雰囲気なのか、
どんな色が良いのか、
生成系AIを使えばイメージしやすいのではないかと考えました。

具体的にはこんな画像を生成しました。

【生成AI 環境】

UIはStable Diffusion Automatic1111。

モデルはStable DiffusionのモデルにDream Boothで自分の顔を追加学習したもの。

Automatic1111に拡張として
・ADetailer
・ControlNetでCanny
・roop
の3つを使用。

【生成方法】

やり方は単純です。
上記の環境の他、
・気になる服を着ているモデルの画像。ファッションサイトからスクショするなど。
 (ControlNet用:上の画像はBliant ParisのBlazersがベース)
・自分の顔画像。
 (roop用)

1.Stable Diffusion checkpointに、自分の顔を学習させたモデルを選択。

2.txt2imtのプロンプトとネガティブプロンプトを自分の顔を生成するキーワードを入力。これは、上の1.に依存。

3.ADetailerのEnable ADetailerをチェックする。ADetailer modelは顔向けのモデルを選択。(例:face_yolov8n.pt)

4.ControlNetにモデルの画像を入力。
Control TypeをCannyにして、Proprocessorがcannyになっていることを確認。
ModelもCanny用(例:control_v11p_sd15_canny)にする。
ControlNetのEnableをチェックして、Pixel Perfectもチェック。

5.roopに自分の顔画像を入力。
roopのEnableをチェックする。

以上。

メインのプロンプトを変えることで、洋服の色や柄をおおまかに指定できます。
想い通りに変更されないことも多いです。色指定したプロンプトを固定しつつ、画像を繰り返し生成すると良いかも。

下は「DCOLLECTION、~160㎝台メンズ必見!低身長をカバーするコーデ術とおすすめファッション」の画像がベースです。

今回の方法は
 モデルの顔を自分の顔に変える、
 服の色・柄を変える
というもの。
体格は変えていないので、自分の身長等に近いモデルを探しました。
私の身長163cmで探していたら、上記のサイトに辿り着きました。

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

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


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