その1 生成AIの活用状況
2023年頃から急速に発展した生成AIビジネスですが、これから一体どうなっていくのだろうか楽しみでもあり心配でもあります。まず世の中の状況を調べてみました。以下のWEB情報では、生成AIの種類は主に4つあると言っています。個人的には音声生成ではなく作曲ではないかと思います。動画生成を除いて手を動かすことで理解を深めたいと思いました。
生成AIビジネスの状況は、GPU搭載サーバと基盤モデル開発がキーになるようで、2030年にはマイクロソフト・アマゾン・グーグルが支配するクラウドサービスの売上は自動車産業に並び、その3割が生成AIサービスになると予測されています。生成AIビジネスはクラウド3社と基盤モデルを開発するOpenAI社とGPUを売るNVIDIAの寡占状態にあるようです。1990年にスパーコンピュータブームが起こった時のことを思いだします。メインフレームからパーソナルコンピュータに移行したように、生成AIもクラウドからローカルに移行する可能性が高いように思います。そこで、今回ローカルにこだわって生成AIを調査してみました。扱えるモデル容量の不足や処理スピードは雲泥の差ですが、今後の半導体の進歩に期待したいです。
その2 文書生成AIの調査
2023年5月に、女子高校生言語モデル「rinna」がリリースされました。ローカルで動作するということで、12GBのVRAMを搭載したGPUボード(GFORCE_RTX2060)を、組み込んだDesktop-PCで動作を確認しました。当時はChatGPT3.5もりーリースされていて比較を行いました。言語モデルの規模を表すパラメータ数はrinnaは36億(3.6Bilion)
ChatGPT3.5では1750億(175Bilion)でrinnaの50倍でした。Rinnaのモデルサイズ9.3GBでpytorchライブラリと併せると最低でもGPUに直結する16GBVRAMが必要になります。
モデル精度を落とす操作(FP32→FP16)を行い何とかRTX2060で動かすことができました。
当時の環境設定とローカル環境を纏めておきました。
現在の生成AIは、プロンプトで指示を与えますが、相手が女子高生だけにチャットすることを前提にチャットモードで会話するプログラムを導入しました。Q&Aのスピードは数秒程度でした。GPUの無い普通のWindowsNoteBOOKではDRAM上に半精度のモデルを入れてCPUで対応しますが、Q&Aに10~30分かかりました。
それから1年が経過しました。2024年5月に雑誌インターフェースでローカル生成AIの特集がありました。基盤モデルは「Llama2」というメタ社のオープンソースAIです。パラメータ数は70億(7bilion)でrinnaの2倍ですが半精度化どころか量子化(整数)により、
モデル容量が3.2GBまでに抑えられています。しかもLlama2がラズパイ5で動くようになったというショッキングな内容でした。
Llama2モデルのダウンロードサイトがあり、自由にDLすることができます。
ラズパイ5での設定方法を示します。詳しくはインターフェースを参照してください。
東大発ベンチャー企業ELZAが日本語に特化した量子化モデルをダウンロードしました。
対話型で操作するため、chat.pyのプログラムコードを使います。
chat.pyをプロンプトで実行します。あとは質問を書き込みます。回答まで数秒~
数分かかりました。
コマンドプロンプト画面では見ずらいので、PythonIDEのThonyでchat.pyを起動しました。また、ラズパイ5の発熱は44℃程度に抑えられました。ローカル動作で時間はかかるものの消費電力はごくわずかです。技術の発展に期待したいと思います。
最後に、お決まりの考古学的な質問を行いました。Llama2はまだまだですね。
邪馬台国についても、Llama2はまだまだでした。
その3 画像生成AIの調査
「言葉で欲しい絵を伝えれば、AIが描いてくれる」画像生成AIの代表的なものに「Stable Diffusion」が2022年8月22日にパブリックリリース されました。WEB情報ではGoogleColabでリピート操作するだけで絵が作れるというものです。ローカルで動かすまでに環境設定の問題で苦労しました。何とかなりました。
ライブラリとして「diffusers」と「transformer」をインストールしますtransformerのインストールでpytorchがインストールされます。JupyterNoteBookでは、python3.6~python3.11までの環境ですべて確認しましたが、動きませんでした。
原因はセキュリティーエラーようで、プロンプトで動かしてみましたところ、すんなり動きました。Python環境は3.9でした。
動作の確認を行いました。進行状況表示では、0%のままで暫く動きませんでした。我慢強く4時間くらい待つと画像生成が終了します。「アボカドを検査するロボット」というお題で描いてもらいました。GPUマシーンでも30分程度の時間が掛かりました。
次に英文でお題を与えてみました。「two boys are dancing around a green avocado and a girl is watching them friendly」
アボカドを人名と間違えているようでした。
最後に、英文で背景を支持してみました。
「Two Robots are watching the full moon in the deep forest」
しっかりと森の風景が描かれています。
その4 作曲AIの調査
magentaというのは「音楽を自動生成するための機械学習ライブラリ」です。時系列を予測するRNNを使って作曲をするライブラリです。バッハ風とか学習済モデルを参考にして作曲します。参考にするモデルを指定し、midiファイルの出力先や作曲数を指定し、テンポや小節数、メロディやコードを与えます。
これもdiffusersと同じく環境設定で手間がかかりました。やはりJupyterNoteBookはエラーで動きませんでした。コマンドプロンプトから動かす必要があります。
最終的なpython環境は、3.7でした。インストールするライブラリは、「magenta」と「tensorflow」です。
Magentaを実行しましたが、画像生成のdiffusersに比べ、短い時間で処理ができました。普通のPCで60秒程度でした。