生成AIは飽きそうになると次の技術やら新しい生成系が発表されてくるのでなかなかタイミングよく離れられない。
中古でRTX2060-12GBを昨年購入したがそろそろAIのためにグラボを新調したい。
候補はこの3機種だ。
RTX4070(12GB) 200W 約9万円
RTX4060Ti(16GB版) 165W 約9万円
RTX4060(8GB) 115W 約6万円
悩ましいのが電力とVRAM容量だ。
今後の電気代上昇を考慮すればRTX4060が圧倒的だが8GBしかない VRAMでは厳しい。
今よりVRAMが下がるのは生成AIでできる幅を狭くする。
といってコスパがいいRTX4070でも12GBで現状維持だ。
残るはRTX4060の16GBだが出たばかりで価格が高すぎる。
4070の7掛けの能力があるかないかでVRAMが4GBプラスされているだけで同価格はあり得ない。
VRAMが特に重要なのはLoRAの学習だったか。
ただstable diffusionはもう長い間立ち上げていない。
いま遊んでいるのはこんなところ。
✖️Stable Diffusion
◯言語系生成AI
△動画系AI(ディープフェイク)
△音声系AI
stable diffusionの高解像度生成と学習をしなくなったのでVRAM8GBでも電力が下がる方が嬉しい。
いっそのことRTX4060(115W)でもいいかとすら考えていた。
ただ言語AIの軽量モデルは9GBあたりが主流なので面白そうなモデルが発表されても8GBに下がると試せない。
やはり最低でも12GBは必要だ。
先のことを考えるとやっぱり16GB買っておけばよかったになりかねない。
コスパの4070にするかVRAMの4060Ti16GBにするかワッパの4060にするかでループに陥っていた。
そんな中で興味深い記事を読んだ。
要はグラボの性能は電力70%あたりのワッパが一番出るように設計されているという。
この記事のパフォーマンスと電力の関係をグラフでイメージ化するとこうなる。
電力消費70%あたりまではパフォーマンスがリニアに伸びてそこから先は頭打ちになる。
でもさすがにこれはないだろ~
30%の電力を無駄にしているなんて知るとゲーマーが暴動起こすぞ。
いやゲーマーなんて東京でブラックアウト起きるから節電しろと呼びかけても気にせず重いゲームで遊んでいそうでそんな事全く考えていないか?
(どんな偏見だw)
前述の記事の内容がイマイチ納得できなかったがRTX2060-12GBで動画のAI生成をぶん回していたのでMSIのアフターバーナー使って電力を抑えてみた。
え?
ええ?
マ!
アフターバーナーでPLを67%にしているのでモニターツールでは電力は178W→126Wに下がっている。
これは想定内だ。
でも生成速度に変化がない。
こいつはエンコードをしているわけじゃ無く画像ファイルをGPUパワーでディープラーニング技術でゴリゴリ絵を書き換えているAI処理だ。
もちろんフレーム数は変動するので一概に同一とは言えないが観察していても差がわからない。
但し電力は29%下がっている。
変動するデータを見た目の感覚だけではエビデンスにならないので久しぶりにStable Diffusionを立ち上げて顔を生成して時間計測してみよう。
最初はモデルをキャッシュに取り込むために計測せずに
batch count=2,batch size=4
512×512をESRGAN_4xで1024×1024に引き伸ばした画像を8枚生成する。
モデルがキャッシュに乗るのを加味して生成して出来上がった画像のシードを固定してから計測だ。
絵はこんな感じで生成の度に若干顔の輪郭が変わる程度の変化だ。
dynamic angle,digital art,4k,8k,((masterpiece)), best quality, ultra high res, (photo realistic:1.4),1girl,
Negative prompt: EasyNegativeV2
Steps: 20, Sampler: DPM++ 2M SDE Karras, CFG scale: 7, Seed: 269561791, Size: 512×512, Model hash: 9c03252bea, Model: braBeautifulRealistic_v40, Denoising strength: 0.7, Hires upscale: 2, Hires steps: 17, Hires upscaler: ESRGAN_4x, Version: v1.3.0-129-g583fb9f0
Used embeddings: EasyNegativeV2 [5685]
結果
PL 100%
Time taken: 3m 9.76sTorch active/reserved: 12012/12852 MiB, Sys VRAM: 12288/12288 MiB (100.0%)
PL 67%
Time taken: 3m 6.16sTorch active/reserved: 12048/12886 MiB, Sys VRAM: 12288/12288 MiB (100.0%)
PL 100%
Time taken: 2m 56.02sTorch active/reserved: 12012/12852 MiB, Sys VRAM: 12288/12288 MiB (100.0%)
PL 67%
Time taken: 3m 7.48sTorch active/reserved: 12048/12900 MiB, Sys VRAM: 12288/12288 MiB (100.0%)
最初の1セット目は67%の方が速かったのでさすがにこれはキャッシュの影響だろうともう1セット計測し直した。
もちろんこれだけの高画質をバッチサイズ4にすればGPUは余裕で最大パワーを出そうとするしCPUにボトルネックは出ない。
結論として上記テストでわかったのはRTX2060-12GBの場合、電力を約30%下げてもStable Diffusionの生成速度は6.2%低下に抑えられる。
驚きだ。
適当に描いたあのグラフがほぼ正解ということ。
いやあの記事の筆者さんが正解ということだ。
筆者さん曰くRTX2070あたりだと2%程度しか速度低下を起こさないとか。
言い換えればGPUは7割あたりから非効率な電力供給をして無理くり僅かに上昇するピークパフォーマンスを得ている。
確認した生成はどちらも画像生成系なので言語生成AIで同様な結果になるかはわからないしRTX30シリーズやRTX40シリーズでも同じ結果が出るのかはわからない。
それでも同様な傾向はあるはずだ。
あと動画変換AIのPL67%で長時間ぶん回していたらこれまで起きたことがないエラーが発生した。
参考にした筆者さんはグラボはゲームで使うなら電力下げても大丈夫という経験則があるようだが70%でリトライしたら通ったので生成AIに関しては電力低下は安定度低下につながるのかもしれない。
いい塩梅の消費電力量を探すのが必要だ。
それでも電力を抑えてパフォーマンス低下が少なければバッチ処理などで大量に画像生成している人々にとっては電気代がかなり節約できる対策だ。
真夏に向かって節電協力依頼が国や電力会社から発表される可能性もあるのでグラボで生成AIぶん回している方はアフターバーナーインストールして試してみて損はない。
早速これからのグラボぶん回しの運用はPL70%にした。
もし処理がコケるようなことがあればもう少し電力を上げる。
これで1ヶ月で30KWhの千円程度は節電できそう。
次期グラボは敢えて低電力のグラボにする必要が無くなったので4060は候補から消えた。
4070の懸念はVRAMだけになった。
ただやはりVRAMは16GB欲しいので2-3ヶ月4060Ti-16GBの価格変動を見守ろう。
なんならスーパーシリーズの噂もあるのでが出るまで待ってもいいか。
新規でstable diffusionあたりを始めたいならやっぱりRTX3060-12GBが4万円前後なのでPC一式で12万円で組めて手を出しやすい。
完成品でも価格.comを見えれば12万円前後からある。
ただ完成品だとストレージ不足に陥るのでSSDかHDDの要追加になる。
もう少しお金が出せるならグラボだけで9万円のRTX4070あたりがいいしカネは出せるだけ出せるしので最高パフォーマンスが欲しいけれど自作なんて面倒ならRTX4090搭載で50万円くらいのPCを買えばいい。
更にお試しならGoogleのcolaboである程度は遊べるしGPUのクラウドサービスも各種提供しているので言語生成AIで学習程度に遊ぶならVRAMが大量に載っているクラウドサービスの方が断然いい。
考えてみれば言語生成AIで遊ぶならクラウド借りた方が安上がりだし高スペックグラボも使えるなぁ。
GPUクラウドの情報を少し調べてみた。
安いランバダのプライス表を見るとVRAM40GBのA100が1時間あたり1.1ドルだし80GBのH100でも2ドルで借りられる。(※1)
RTX6000-24GBならたった0.5ドルや。
更にグラボの又貸し業者(?)のvast.aiならVRAM24GBのRTX3090が1時間あたり0.2ドルで借りられる。(※1)
ドル140円換算で1ヶ月24時間ぶん回しても2万円だ。
text-generation-webuiやStable Diffusion web UI が使えるDockerも用意されているのでLinuxに詳しくなくてもいい。(ソース)
もちろん自分でGithubから使いたいAIリポジトリーをインストールして使うこともできる。
Stable Diffusionをグラボなりコラボなりで使っている人ならこの動画がわかりやすいのですぐに始められる。
始め方のテンプレをGithubに掲載しつつコツやレンタルGPUの見つけ方などの知見も含まれており素晴らしい解説だ。
クラウドやレンタルGPUの難点は借りる都度に環境構築が必要で5GBとか9GBのバカでかいモデルのダウンロード時間も課金されるので短時間の利用は難しいことがわかる。
SDで拡張機能を大量にインストールしているとそれらも全てインストールが毎回必要なのでスクリプトを組んでwgetで自動化しないと常用は大変だ。
自動化してもある程度は環境構築で課金されるので数時間はぶん回さないともったいない。
それでもRTX3090を借りた場合にこのグラボの電気代は1KWを40円換算で
350Wh x 24時間 x 30日 x 40円 = 10080円
なので3090が実質1万円で1ヶ月借りられることになる。(※1)
※1 ネットワーク使用料とかDISK使用量は別途必要
もちろん借りたいGPUが空いていないことも多いかもしれないがそれにしてもやっす!
グラボ持っていなくてもGoogle colaboで使い方を学習して、安いGPUパワーが必要ならvastを使い、言語生成AIなど大量のVRAMで遊ぶならランバダをと使い分けるのが吉だ。
このあたりのGPUクラウドはセキュリティが無きの如しなので情報漏洩考えたら企業では使えんが個人で遊ぶならこれで十分じゃないか。
stable diffusionで大量生成ガチャを1年間ぶん回したいしたいならクラウドサービスよりおそらくローカルの方が安い。
しかし仕事にでもしない限りグラボ代を回収する前に飽きる。
あれやこれやとやりたいなら安いRTX3060-12GBとか自分のように中古でRTX2060-12GB※のグラボをお安く用意して自宅環境は最低限揃えておいてあとはクラウドサービス借りるのがスマートだ。
※このモデルは20シリーズで発売日がかなり遅くマイニングされている可能性が低めなので中古で2万円台前半とかで見つけられたらあり。新品のエントリーならRTX3060-12GBの一択だ。RTX4060Ti 16GBは7万円切ったら買いかな。
自分の場合は長時間ぶん回すのはローカルGPUで超速度とVRAMが欲しいときはクラウドGPUで50ドルプリペイドしておけば半年くらい遊べる気がする。
グラボの買い替えはやめだ。
逆にグラボを買い替える検討の目安としてレンタルでGPUを数時間使ってみて自分の実際にやっているAI生成のパフォーマンスがどの程度上昇するかの検証にもいい。
生成AIって環境によって全く違ってしまうしベンチマークが少ないのでよくわからないから現物で実測するのが間違いない。
RTX4090への買い替えを検討しているならvastで大量に貸し出されているので検証は比較的楽だ。
RTX40シリーズはフルラインナップ揃っていないので同等性能のRTX30シリーズのラインナップとか4080、4090あたりを借りて比較検討することになる。
あと自宅環境でグラボの2枚挿しをしたいけれど使っているAIで2枚挿しが効果が出るのかをチェックするのにもレンタルがあるので買う前に試せるのは嬉しい。
早速GPUクラウド使い始めてみる。
RTX4070に買い替えるとAI書き換えが2倍ちょいになることを想定した上で今回買い替えをやめたけれどRTX4080あたりをレンタルしてみてTorch2.0やCuda最新版の恩恵とかで手持ちのグラボの3倍とか4倍とか速度が出てしまったらRTX4070を速攻で買ってしまうかもw
で、実際にまる1日vast.aiを使ってみたがイメージのLinuxにPythonやらcudaのバージョンが予めインストールされているので要件でダウングレードしないといけないところが上手くできず使いたかったソフトは最後まで動かなかった。
ググったり bardに聞きながら修正してみたがLinuxの知識が圧倒的に不足している。
なんとか2日目にvast.aiで目的のAIリポジトリを使うことができた。
相性の悪いOSイメージを使うととにかくハマるのでこれは無理だと思ったらさっさと撤収して違うイメージで再試行した方がよさそうだ。
稼働させればあとはグラボの性能だが環境構築まではサーバー側のCPU能力と回線速度が重要だ。
例えばRTX3080なのにやたら単価が安いインスタンスだと喜んで借りてみると回線が遅くCPUも遅くていつまで経ってもリポジトリのインストールが終わらずにグラボの性能を発揮する前に諦めることになる。
最悪だったのがフィンランドのRTX4090のスレッドリッパーを借りた時だ。
回線のスペックは高い表記がされていても実際にはつなぐ国やバックボーンのよって速度が全く出ないのでインストールが進まない。
インストールを進めていくものの回線速度がどんどん落ちていき普通は1分そこそこで普通終わるモデルのダウンロードが1時間以上となりさすがにそこで諦めた。
やめ時を見誤り100円近く溶けてしまった。
回線詐欺だ。
stable diffusionやtext-generation-webuiはテンプレのOSイメージがあるのでLinuxの知識なんてほぼ無くてもボタン一発でサクッとWebUIが立ち上がって生成できる。
テンプレ使わずに今話題のSDXL1.0も稼働させることができた。
モデルとLoRaはイメージに入っていないのでそれらだけはローカル同様にLinux上にダウンロードを自力で頑張るのと生成した絵や写真はサーバー側にありインスタンスを落とすとばっさり消えてしまうので落とす前にローカルに保存する手順だけ覚えたらいい。
当初はサーバーとローカル間のファイル転送で苦労したけどFTP代わりのscpコマンドの使い方はFAQの下の方にある。
SCPはどこかがボトルネックなのか1Mbytes/sに制限されているのか遅いのでできるだけインターネットとサーバーだけで完結するようにしないと転送時間の占有率が高すぎて使えない。
cuddnのインストールがよく分からず毎回SCPで転送していたがあの時間が一番無駄だった。
それでも動かしたり止めて色々調べてまた動かしてと手順を作るためにRTX3060やRTX3090を2日がっつり使って1ドル=144円だったのでお安い。
使おうが使わなかろうが課金されるサブスクは嫌いだがプリペイドで使った分だけ引き落とされる仕組みは好きなので今後も使っていきたい。
生成系AIでグラボが遅いので買い替えたいと考えているならとりあえず10ドル放り込んで確かめてみるのがいい。
現在いい言語モデルの情報がないのでVRAM40GBや80GBが活躍する機会は無く見つけたらまた遊びたい。