清水理史の「イニシャルB」【特別編】
自宅PCでもAIはここまで動く! VRAM 16GBのGeForceで動かす「画像で会話」の大規模言語モデル
rinnaのマルチモーダルLLMを、ASUSの静音ビデオカード「ProArt GeForce RTX 4060 Ti OC edition 16GB GDDR6」で動かしてみた
- 提供:
- ASUS JAPAN株式会社
2023年9月25日 06:00
8GBのビデオカードでは体験できない世界が見えてくる――。ASUSから、クリエイター向けとなるビデオカード「ProArt GeForce RTX 4060 Ti OC edition 16GB GDDR6」が登場した。
リーズナブルな価格のビデオカードながら16GBのVRAMを搭載し、静粛性や冷却性能に優れているのが特徴で、8GBでは動かない最新の大規模言語モデルの世界を堪能できるモデルとなっている。
rinna株式会社がリリースした、画像に写っているものを答えてくれるマルチモーダル対応大規模言語モデル(LLM)「rinna/bilingual-gpt-neox-4b-minigpt4」を、自宅のPCで動かしてみた。
もう8GBでは足りない! 12GBでも無理? な時代へ
ビデオカードを選ぶ基準は何だろうか?
搭載チップの種類? ベンチマーク結果? 信頼性? もちろん、これらも大切だが、これからは、その基準のひとつとして「VRAMの容量」も重要になりつつある。
なぜなら、VRAMの容量によっては「動かない」プログラムが登場してきたからだ。
その筆頭が、大規模言語モデルだ。大規模言語モデルというと、豊富な知識を備え、さまざまな問に答えたり、プログラムのコードを生成したりできる「ChatGPT」を思い浮かべる人が多いと思われるが、その一方で、モデルサイズを小さくすることで家庭用のPCでも動くパラメーターサイズの小さなモデルの研究が進んでいる。
最近の話題としては、ChatGPTに匹敵する性能を実現するMetaの「Llama 2(70B/13B/7B)」が話題になったが、より小さく、そして日本語に特化してモデルとなるrinnaの3.6B(36億パラメーター)モデルや、サイバーエジェントのOpenCalm(13B/7B/3B)なども人気を集めている。
こうしたモデルは、VRAMをめいっぱい使ってモデルを展開するため、ざっくりパラメーター数の2倍ほどのVRAMがないとメモリ不足で動作を停止してしまう。
つまり、これまでは、コンシューマー向けのビデオカードでも動くと言っても、8GBでは最小のモデルすら動かすことができず、20万円クラスの4080(16GB)以上のモデルが必要だったわけだ。
そんな中、登場したのが、今回、ASUSから発売された「ProArt GeForce RTX 4060 Ti OC edition 16GB GDDR6(以下ProArt RTX4060Ti 16GB版)」だ。
誰もが手に取りやすいエントリークラスの4060Tiを採用しながら、4080クラスと同等の16GBものVRAMを搭載している。
これにより、クリエイティブ用途、ゲーム用途で使っている一般的な構成のPCであっても、話題の大規模言語モデルを気軽に動かせるようになり、現代のコンピューティングの進化の最先端の世界を手元で味わえるようになった。
中でも、rinnaは、8月にテキストと画像を組み合わせて対話ができるマルチモーダルモデルをリリースした。このモデルは、言語用と画像用のモデルを併用するため12GB以上のVRAMを要求する仕様になっており、まさに「16GBだから動く」モデルとなっている。
実際にProArt RTX4060Ti 16GB版でrinnaの画像対話モデルを使ってみた。
画像に写っているものを答えてくれる
今回、rinnaがリリースした「rinna/bilingual-gpt-neox-4b-minigpt4」は、テキストによる会話だけでなく、画像を与えることで、その画像について会話ができる画像対話モデルだ。
同社のプレスリリースでは、テーブルの上にPVと猫が写っている画像の例が示されているが、このように画像を与えたうえで、「猫はどんな体勢をしていますか?」と質問すると、「横になっています」という回答が返ってくる。いわゆるVision -Language(視覚言語)を実現するモデルだ。
画像など、テキスト以外の情報を一緒に与えて会話ができる対話型AIを「マルチモーダル」と呼ぶ。7月中旬にBingチャットが画像入力に対応したことが報じられたが、今回のrinnaのマルチモーダルモデルも同様のことが可能となっている。言語モデルは、マルチモーダル化が進んでおり、音声を組み合わせたモデルの研究も盛んだ。
自宅PCで動かす
このモデルは、前述したようにベースとなるモデルが4B(40億パラメータ)のrinna/bilingual-gpt-neox-4bとなっているため、一見、8GBのビデオカードでも動きそうだが、実際には画像用のモデルを読み込む必要があったり、推論時にもメモリを消費したりするので、トータルでは12GBをわずかに超えるメモリが必要になる。
動作環境は、今回は、Google Colaboratory(以下Colab)をコード記述用のインターフェースとして利用し、実際にコードを実行する環境としてProArt RTX4060Ti 16GB版が搭載されたローカルランタイム環境(つまり自宅PC)を指定する方式とした。
基本的には、ローカルの実行環境を整備し、以下のColabのコードを実行すればいい。公式のコードを参考に、筆者がGUIで実行できるように改変したものとなる。実行時にランタイム環境として、クラウドではなく、あらかじめ用意したローカルのランタイム環境を指定すればPCのリソースを利用できる。
まずは、PCにローカルランタイムを用意する。PCに「wsl –install」でWSL2のUbuntu環境を用意し、Dockerを使うための環境としてDocker for Windowsをインストールしておく。
Docker Desktopを起動した状態で、以下のコマンドを実行する。なお、ランタイムは25GBほどあるので時間がかかるうえ、ディスク容量も圧迫するので、ストレージに余裕のある環境で実行してほしい。
docker run --gpus=all -p 127.0.0.1:9000:8080 asia-docker.pkg.dev/colab-images/public/runtime
すると、画面上にランタイムのアドレスとトークンが表示されるので、これをコピーしておく。これが、Colabのコードを実行するためのローカルランタイムのアドレスとなる。
http://127.0.0.1:9000/?token=9d10b660dc4a4700ed99fea8f38097dd3e30c0aa63deb502
なお、トークンは基本的に起動の度に変更されるので、次回からは、Docker Desktopを起動(Docker自体のサービスも自動的に起動する)し、「Containers」でコンテナを起動してから、コンテナ名をクリックすればトークンを確認できる。
あとは、次のColabを開いて実行するだけだ(内容を変更したい場合は「ドライブにコピー」で自分のGoogleドライブにコピーする)。
ただし、そのままだとクラウド上のインスタンスで実行されてしまうので、忘れずに右上の「接続」から「ローカルランタイムに接続」を選択し、「バックエンドURL」としてDockerコンテナの実行画面上に表示されたトークン付きURLを貼り付けておく。これで、コードがローカルで実行される。
クラウド上のインスタンスは、無料プランの場合、一定時間でリセットされてしまううえに、十分なメモリやディスクが割り当てられないが、ローカルなら自ら削除しない限りはデータも保持されるし、ローカルのGPUも制限なく利用できる。
ローカルランタイムを指定したら、Colabのコードを上から順番に実行するだけだ。
モデルが7GBほどあるので、初回はダウンロードに時間がかかり(次回からコンテナを削除しない限りはダウンロード済みのモデルは再利用できる)、さらにダウンロードしたモデルをVRAMに読み込むため待ち時間が発生するが、しばらくするとGUIとURLが表示される。
そのまま使ってもいいが、表示されたURLにアクセスすると、GUIでrinnaのマルチモーダルモデルを利用できる。
画像をドラッグし、「説明してください」などと入力すれば、画像とテキストがいっしょに入力され、その推論結果として、画像の説明がテキストで表示される。
間違うケースも少なくないが、テキストだけでなく、画像について会話できるというのは画期的だ。今後は、こうしたマルチモーダルなAIが当たり前の時代になっていくだろう。
推論メインなら静かなビデオカードの方がいい
実際に動かしてみると、まずビデオカードが静かなことに驚く。
筆者は、旧世代のRTX3090搭載ビデオカードでも同モデルを動かすことがあるが、旧世代のビデオカードは、VRAMへのモデルのロードやコードを実行するだけでもファンの回転数が上がり、さらにそこから使い込んでGPU負荷や温度が高くなると、PCから熱風が噴出してきて、エアコンの設定温度を下げないと耐えられない状況になる。
一方で、ProArt 4060Ti 16GB版は、起動時に一瞬ファンが回転するものの、あとは基本的にファンが停止した状態で利用可能だ。上記コード程度では、負荷もほとんどかからないため、ファンが回転する様子すらない。
冒頭でビデオカードを選ぶ基準として、VRAMを挙げたが、静穏性や冷却性能も重要なポイントと言えそうだ。
大規模言語モデルの場合、言語を生成する推論の段階では、さほどGPUの性能は要求されない。このため、ProArt 4060Ti 16GB版であっても、出力の速度は遜色ない。数秒ほどの計算で、さっと回答が得られる。それでいて、静かで、熱くもない。
これは、通常の言語モデルを利用した場合も同様だ。VRAMが16GBあるため、OpenCalmの7Bモデルなども利用可能だが、日本語で会話をしても、パラパラとスピーディに単語が表示され、ストレスなくチャットが可能だ。もちろん、その間もファンが回転する様子は見られず、ほぼ無音の状態で利用できた。
クリエイター向けを選ぶ意義は大きい
以上、ASUS「ProArt GeForce RTX 4060 Ti OC edition 16GB GDDR6」で、rinnaの画像対話モデルを試してみたが、ChatGPTやBingチャットですらリリースしたばかりのテキストと画像を組み合わせた最先端のマルチモーダルモデルが、コンシューマー向けのビデオカードでストレスなく動くのは画期的だ。
普段はほとんどファンが停止しているが、高負荷になってファンが回転したとしても、従来比で21%ほど風を送る性能を向上させたファンによる高い冷却性能で安心して使えるうえ、デュアルボールベアリングと中間のファンを逆回転させることで実現した静穏性も優秀だ。
大規模言語モデルを使い込んでいくと、別の学習素材を与えて、口調や文体などを真似させるトレーニングも試したくなるが、トレーニング方法によっては6~8時間ほどGPU負荷100%でPCを放置するようなケースも珍しくない。
実際に、100%近い負荷が30分ほどかかる簡単なトレーニングを実施してみたが、GPU温度が60℃を超えたあたりで、ようやくファンが回転を始めた。しかしながら、目視で確かめないとファンが回っていることが分からないほど静かで、ほとんど音は聞こえない。
しかも、大型のヒートシンクと3連ファンの恩恵で、60℃を超えても、すぐに温度が下がり、なかなか温度が上昇しない。さすが高負荷での使用を想定したプロ向けの製品だ。
今やビデオカードは、性能だけでなく、静穏性や冷却能力が非常に重要で、過酷な環境で使い続けても故障しない耐久性や信頼性も重要になる。そういった意味でも、プロユースを想定したASUSのProArtシリーズを選ぶメリットは大きいと言えるだろう。
なお、本製品には、Adobe Creative Cloudが3カ月無料になる特典も付属している。ゲームも楽しみたいが、どちらかというと、最先端のGenerative AIの検証やクリエイティブな用途に使いたいというユーザーに適した製品と言えるだろう。