前のエントリでFlexGenも話題に出したので、メモを。
画像は、なんかStable DiffusionにFlexGenって入れていろいろやってたらかっこいいのが出たやつ。
おうちの8GB VRAM GPUでChatRWKVと会話する - きしだのHatena
FlexGenは、おうちでChat AIが動かせるぞって最初に話題になったやつですね。
https://github.com/FMInference/FlexGen
インストールは書いてあるとおりにやればいいと思うのだけど、いろいろハマりました。個人的に。
Python 3.10以前じゃないと動かないのだけど、インストールしてたのがPython 3.11で、以前いれてたPythonが散乱してたりしてハマり。普通の人はハマらない気がする。
なので、PyTorchも入れなおし。
> py -3.10 -m pip install -I torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
なんも考えなければpipでいけるぽい。
> pip install flexgen
でもまあgit cloneするやつにした。py
でバージョン指定している。
> git clone https://github.com/FMInference/FlexGen.git > cd FlexGen > py -3.10 -m pip install -e .
あとはflex_optで実行確認、ということなんだけど、このときhuggingfaceからモデルをダウンロードする。そしてこのモデルが~/.cache/huggingfaceになるのだけど、Cドライブに空きがないので別ドライブにしたい。
みんなcolabとかに入れてるから気にしないかもしれないんだけど、気にするのよ。
ということで、環境変数HF_HOME
にパスを設定すればいいという情報をChatGPTに教えてもらったので、設定する。
気をとりなおして、確認
> py -3.10 -m flexgen.flex_opt --model facebook/opt-1.3b
エラーがなければOK
VRAMが7GBちょい、GPUの共有メモリも使ってます。メインRAMも結構使ってますね。
それではチャットを。。。と動かそうすると、chatbot.pyを動かすという説明がいろいろ出てくるのだけど、いまはリポジトリから消えてます。
履歴をたどると2月の終わりのDelete Filesというコミットがあってそのときに消えてるので、発掘しておきます。
https://github.com/FMInference/FlexGen/blob/9d888e5e3e6d78d6d4e1fdda7c8af508b889aeae/flexgen/apps/chatbot.py
動かしてみます。
>py -3.10 -m flexgen.apps.chatbot --model facebook/opt-1.3b
ちゃんと動きますね。
日本語は通るように見えるんだけどわかってないっぽい。
英語にすると会話できるんだけど「世界をおみせしますよ。そこには浅い湖があります。」「虎がいます。泳げます」みたいな感じで、バカっぽくてよい。
モデルは1.3bの他に6.7bとか30bがあるので試してみます。
と思ったけど、メモリが足りなくてだめでしたね。
--compress-weight
をつけます。
>py -3.10 -m flexgen.apps.chatbot --model facebook/opt-6.7b --compress-weight
動くけど、反応に30-40秒くらいかかりますね。そして、言葉すくなめな気がする。あまり会話ははずみませんね。なんか、バカな話をしたいのにマジメな質問をされて適当に答えている、という感じがw
VRAMは4.7GB使ってます。プロセッサもGPUもあまり使ってないので、何してるんだろう。
まあ、なんだか動いたので満足です。
だいたいtransformersライブラリを使っているので、このあたりを読んでおくのがいいのかなー