Japanese StableLM Alpha 7B チャレンジ中

先日公開された「apanese StableLM Alpha 7B」をローカルで動かせないかチャレンジ中。

自分の環境はWindows11+VRAM12Gbなので8bit化しないと動かない。公開されている記事の多くはGoogleColabでそのままでは自分の環境では使えない。Windows11での記事も一箇所見つけたのだけど、公開されているサンプルをそのまま動かしていたので、VRAMも潤沢なのだろう。私が詰まっているポイントでは参考できない。

そもそも私はAIの事を勉強したことはない。昨年のAIブームを受けて騒いでいるミーハーだ。でもまぁこれを機会に自分なりの物を作ってみたいと思っている。langflowとやらを使えば何とかなるんじゃ無いかと思っているんだが。

Windows11ローカルが駄目ならWSL2。そっちの方が楽という呟きもちょいちょい見ているので、駄目ならそっちに行こうと思って居る。

もしくはRinna4Bも作例が多いように思って居るのでそっちから手を付け直しても良いのかも。いや、むしろそっちの方が良くないかなぁ。

ちょっと調べて、考えてみる。

langChain勉強開始

ChatGPTをAPIを通じて操作するとき、自力で実装するのが難しい・手間が掛かる時に使うライブラリがlangChain。(という理解)

占いアプリ、Misskeyでのボットなんかをやってみたいので勉強することにした。

新しいことをやっておかないとどうしても鈍ってしまうし、一応プログラムを教える講師としては新しい物を追っていないのは恥ずかしい。

コアを作ってしまえば、ガワはある程度どうにかなるはず、と目論んでる。どうなりますかな。

faster-whisperを使って口述筆記に挑戦

OpenAI社のAIの話を追っかけでして、Whisperの存在を知り、口述筆記をやってみたいと思って居た。

そしたら先日、Whisperより早く、GPUも食わないfaster-whisperというモジュールの存在を知った。

一昨日、以下のサイトからサンプルプログラムを頂き、動かしてみた。結果は良好。

[ローカル環境] faster-whisperを利用してリアルタイム文字起こしに挑戦

しかし残念な事にこのプログラムは話したものをテキストに落とす部分が無い。あと、終了させるときにエラーが出ちゃう。そこをちょいとだけ改造してみた。昨夜何度か試したが、問題は無い模様。次はGUIにしたり、ChatGPTと連携させたりとかかな?

黒歴史、作ります。後ChatGPTすごい。

今年のGWはプログラム作成強化週間となりました。

先月末から別アカウントの方で使うソフトを作成し、今日リリース。小っさいプログラムなので今後アップデートは余り無い予定。GUIがダサいので多少作り直すかもしれないけど。

で、GWの残り何をするか。

今回プログラムをChatGPT4と作って思ったんだけども。ChatGPT4との協力は良いね。何が良いかって言うと、作業に対する心理的な敷居がだいぶ低くなる。

引っかかったらとりあえず聞く。何らかの答えが出る。自分で調べるなりもう一回聞くなりして精度を高める。一人で作ってると煮詰まりがち。そして段々面倒くさくなって止まる。やりたい事が見つかっても、とっかかりが見つからなくて止まってしまう。そういう事がかなり減る。これは私のようなやる気無し勢からするとデカい。

まぁただ、普段のスピードと違ってウェイトがあまり掛からないので、疲れちゃうのが玉に瑕、か?

で、そこで思ったんですわ。そーいえば、敷居が高くなって止まったモノがあったなと。

小説です。以前、書いてた小説、カクヨムに載せてたんだけど1話書くのに5時間は掛かってた。それでも中断したり何たりしながらも一年半くらいは頑張ったのかな。でもそこで止まってしまった。やっぱり1話に時間が掛かりすぎる。書くことに対して気が重くなってしまった。

そこでChatGPTですよ。アイディア出しとか執筆そのものなんかをフォローしてくれると嬉しい。全自動というのはよく見かけるけど、協力態勢はあまり見かけない。そして短編では無くて長編の手伝いをしてほしい。

ChatGPTの記憶に関してはトークン毎の料金の問題もあり、あまり使える手段では無い。なので、全編を通してのアドバイスとかはちょっと難しい。スポットで表現を見て貰うとかそんな感じになるのかな?

となれば、一番にやって貰いたいのは口述筆記。大まかにやってくれれば良い。後は手動で直したりChatGPTに投げたり出来ればそれで。下ごしらえをしてくれるだけで大幅に時短になるし、モチベーション維持にも役立つはず。

幸い、OpenAIのソフトにはWhisperというものがある。ネットで見かけるのはこれのAPIを使ってのSpeech to Text(or chat)な訳なのだが、せっかくRTX3080(12Gver)を持っているのでローカルで動かしたい。これを使って喋った内容を一端テキストに変換する。これを第1段階とする。

変換が出来るようになったら、それを適当なテキストボックスか何かに入れて雑に編集。質問点なんかを添えてChatGPTに質問。戻ってきたモノを見ながら修正。さらに再質問、みたいなサイクルが出来ると良いなと。

まぁ雑に考えているだけなので、やっていくうちに変わる部分も多々有ると思うのだけど、とりあえずはこんな感じ。

遊ぶつもりがなかなか上手く行かず

今日はとりあえず暇になる予定だったので、PythonのFlaskのお勉強で遊ぼうと思ったんだがなかなか上手く行かず。

なんか色々と細かな用事的なものが発生したり、開発環境の不備を修正したり。

気がつけば一日空いてたはずなのに午後7時で3時間くらいしか遊べてない。5時に起きたのに。ぐぬぬ。

POINT-Eのその後

書くのを忘れてたので、防備録。GUIを見ずに描いてるので数字は適当。

年末年始でPOINT-Eをイジってみた。GUI部分をイジってGRID部を150くらいからMAX2500くらいに書き換える。さすがに2500だと遅すぎたので、1200くらいにして実行。まぁそれでもすごく遅かったが。でも500じゃクォリティ足りないのよね。

結局、うちのRTX3080では1200くらいでも実用には遠かった。恐らく、今回のこれは「こういう技術出来たんでよろしく」的なものだったんだろう。家庭用3Dプリンターで出力するにも足りない生成物しか出来なかった。

半年とか1年後とかにそこそこ遊べる物が出てくるんだろうなぁ。

テキストから3Dオブジェクトを生成するAI「POINT-E」インストールしてみたが

先日、OpenAIからリリースされたPOINT-E。様々な技術系ニュースサイトでも紹介された。
文字から3Dモデルを生成するAI「Point-E」

折角良いグラボがあるのだからとインストールを試みる。GUIで出来ないかと探したところ、こちらの「【テキストから3Dモデル生成】Point-E GUIツールのインストール (ジコログ)」記事を参考に頑張ってみた。

頑張ってみたものの、できあがりのクォリティは良くない。幾らか設定を触ってみるが駄目。Colaboratoryで動かすやり方も有るので、それをローカルで動くようにしてみようと思う。

サーバ建ててる

先週金曜から思い立ってサーバ建て始めた。VPS取って独自ドメインついてるサーバが二つほど余ってた(?)のでそれを活用することにした。ドメイン取ってるのにOSもインストしてないというタワケ振り。直ぐ建てるつもりだったのだけど、何かと後回しにしているうちに……。

OSはRockylinux9。継続的に使っていくつもりなのでメールサーバも作る。PythonのFlaskというフレームワーク使って何かする予定。

手順を逐一書き出して、来年度の教材にしたい。結構進んできていて、現在330行くらい。Wordに持っていって画像入れるかどうか分からんけど、書式揃えたりしたらえらいページ数になりそう。

グラボとメモリがグレードアップした

グラボの買い換えは11月9日。現在11月30日なのでちょっと前になる。

stable-diffusionつーかWifu-Diffusionで色々お絵かきしてたのだが、贅沢なことに3060ti-8Gで性能不足を感じてきた。特にメモリ。で、買い換えた。

買ったのは「MSI GeForce RTX 3080 VENTUS 3X PLUS 12G OC LHR」お大尽である。購入時価格はおおよそ15万。アプライドで現物確認して買った。

おかげでお絵かき楽々!と言いたい所なんだが、仕事が溜まりすぎてほぼ使ってない。そのため性能が意識できなくて残念である。余裕が生まれるのはもう少し先っぽいので頑張る。

さて、お次はメモリである。ブラックフライデーに併せてAmazonで買った。

購入したのは「v-color Hynix IC デスクトップPC用 ゲーミングメモリ Skywalker Plus Golden Armis DDR4 4266MHz PC4-34100 64GB」名前がクソ長い。これまでは「CORSAIR DDR4 2*16GB 2666MHz」だったので、容量もクロックもだいぶパワーアップした。

これが届いたのが本日。11月30日である。

現在の構成は以下の通り。我が事ながらすさまじい。

部品名 製品名 購入日
CPU AMD Ryzen 5 5600X 2021/6/23
CPUファン 虎徹Ⅱ 2021/6/23
マザーボード ASUS TUF GAMING B550-PLUS 2021/6/23
メモリ v-color Hynix IC DDR4 4266MHz 64GB 2022/11/30
グラボ MSI GeForce RTX 3080 VENTUS 3X PLUS 12G OC LHR 2022/11/9
SSD intel ssdpeknw020t9(Intel SSD 665p 2T) 2020/10/4
SSD CT1000MX500SSD1/JP 2018/1/23
HDD ST4000DM004-2CV104 2017/11/11
HDD ST4000DM004-2CV104 2017/11/11
電源 玄人志向 KRPW-BK750W/85+ 2021/6/23
ガワ Antec P10 FLUX 2021/6/23
DVD-RAM LITEON? 不明
ディスプレイ Acer VG240YUbmiipfx 2022/4/17
液タブ XP-Pen Artist 24 2022/3/11

Stable DiffusionのAutomatic1111版をインストールしたときのメモ

今回、インストールする際には、様々なサイトを渡り歩いてインストールをしていった。そのため、後に再インストールする際に何が何だか分からなくなる危険性が大なので、ここにメモを残しておく。

環境は以下の通り

OS Windows11
CPU AMD Ryzen 5 5600X
マザーボード ASUS TUF GAMING B550-PLUS
メモリ CORSAIR DDR4 2*16GB 2666MHz
グラボ 玄人志向 GG-RTX3060Ti-E8GB
SSD intel ssdpeknw020t9(Intel SSD 665p 2T)

ややこしい事をする羽目になったのは以下の項目による。
VRAMが8G
標準のstable-diffusionではCUIのため上手くtxt2img等を上手く操れなかった
最初GIGAZINEの紹介記事を参考にしようとしたがanaconda利用の為上手く行かなかった

ややこしい事をする羽目になったのは以下の項目による。

  • VRAMが8G
  • 標準のstable-diffusionではCUIのため上手くtxt2img等を上手く操れなかった
  • 最初GIGAZINEの紹介記事を参考にしようとしたがanaconda利用の為上手く行かなかった

CUDAとPyTorchはここ参照
https://zenn.dev/opamp/articles/c5e200c6b75912

gitは自分ではどこかから適当に入れた。一応参考としてはここを上げておく
https://b-risk.jp/blog/2022/03/2022git_install/

それができたらいよいよWebUIインストール。
このページはUbuntuで行ってるが、Windowsでもやる事は一緒
https://mirai-tec.hatenablog.com/

以上、これらを参考にして手順作成した

  • Anacondaインストール
  • gitインストール
  • CUDAインストール

「AUTOMATIC1111版Stable Diffusion web UI」
Anacondaで仮想環境構築

「AUTOMATIC1111版Stable Diffusion web UI」
Anacondaで仮想環境構築
@conda init
call conda activate stable-diffusion
cd c:\users\xxxx\anaconda3  (xxxxはユーザー名)

git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
cd c:\stable-diffusion-webui
pip install -r requirements.txt

「Stable Diffusion」の学習済みモデルをHugging Faceにアクセスしてダウンロードする
https://huggingface.co/CompVis/stable-diffusion-v-1-4-original
ダウンロードしたsd-v1-4.ckptをmodel.ckptとリネームしてstable-diffusion-webuiに移す

「GFGAN」の学習済みモデルをダウンロードする
https://github.com/TencentARC/GFPGAN/releases/download/v1.3.0/GFPGANv1.3.pth
ダウンロードしたGFPGANv1.3.pthをstable-diffusion-webuiに置く

「trinart_stable_diffusion_v2」をダウンロードする
「waifu-diffusion」と同じく二次元に特化した、とりんさまAIボットのモデルの改良版
学習ステップ数によってモデルが違う
https://huggingface.co/naclbit/trinart_stable_diffusion_v2
モデルはこの三つ trinart2_step60000.ckpt trinart2_step95000.ckpt trinart2_step115000.ckpt
紹介ページ https://zenn.dev/johnkf/articles/5b0fa5069ea752

実行(私は実行用のbattiを作ってそちらでlaunch.pyを呼び出している)
python launch.py

バージョンアップ
新しい物をgithubから取ってきて上書き。その後自作している起動用batファイル(後述)を起動するだけ。
初回、必要な物をDLしてくれるらしい。
今回はanaconda利用につき、標準とはちょっと違うので、
・requirements.txt
・webui-user.bat
・webui.bat
の中身には注意する事

batファイルを作成。ファイル名は何でも良いが分かりやすいところに置く。
私はデスクトップに「StableDiffusion WebUI.bat」と言う名前で置いている。

@rem ver1.00 2022/09/17
@rem 場合によってパス変更
cd C:\stable-diffusion-webui\
@rem set COMMANDLINE_ARGS=--listen --ckpt モデルのファイル名(.ckptファイル)
set COMMANDLINE_ARGS=--listen --ckpt model.ckpt
@rem anaconda アクティブ
call conda activate stable-diffusion
@rem set COMMANDLINE_ARGS=--listen --ckpt モデルのファイル名(.ckptファイル)
@rem list model.ckpt trinart2_step60000.ckpt trinart2_step95000.ckpt trinart2_step115000.ckpt
set COMMANDLINE_ARGS=--listen --ckpt trinart2_step60000.ckpt
start http://127.0.0.1:7860/

@echo -------------127.0.0.1:7860が表示されたらブラウザを更新してください -------------
@START EXPLORER ".\outputs"
@rem gui run
python "launch.py"
@cmd/k