本連載の以前の回で、PCでChatGPTのような大規模言語モデル(LLM)を動かす方法を紹介した。その際の感想は「ビデオカード(VRAM)が欲しい……」であったが、それから数週間、迷いに迷った結果、ついに中古のRTX3090搭載ビデオカードを購入した。
購入前には、耐久性や品質など、中古ならではの懸念材料もあったが、結果的には大満足。24GBの潤沢なVRAMの威力を堪能している。
中古市場を巡回する毎日にピリオドを打つ
仕事の合間を縫って、中古パーツ販売店やオークションサイトを巡回する日々がようやく終わった。
中古とはいえ10万円以上するRTX3090搭載ビデオカードの価格を眺めながら、「それなら(7月発売予定とされる)RTX4060ti 16GB版を待つか……」「いや、型落ちとはいえ24GBのVRAMは魅力的……」「だったらプラス数万で3090tiを狙うか……」「ただ、中古は耐久性が心配……」と、堂々巡りを繰り返す毎日だったが、最終的には「迷ったら買え」の鉄則通り、今すぐ入手できるRTX3090を選んだ。
購入先は、AKIBA PC Hotline!の「中古PC Hotline!」でもおなじみパソコン工房。日々の巡回中に、入荷したての「New」ラベルが付けられた、12万640円のASUS「ROG-STRIX-RTX3090-O24G-GAMING」を発見し、少し高めの価格かなとも思ったが、もう前述の堂々巡りに疲れて、購入を決めた。
ビデオカードの場合、マイニングなどで酷使されている可能性も考えられるため、中古は耐久性が心配だ。しかし、動くうちに検証できることをやりつくしてしまえばいい、と割り切ることにした。
丁寧な梱包で、実用上の問題もなし!
手元に届いた製品は、外箱はそれなりにヤレているものの、丁寧に梱包されて送られてきたうえ、中身もきれいで、古さを感じさせないものだった。
早速、メインのPCに装着していたRTX3070と交換すると、ケースに干渉することなくカードが収まり、850W搭載していた電源も不足はなかったようで、問題なく稼働してくれた。
中古製品は、この瞬間が一番ドキドキする。
とりあえず、負荷をかけながらの検証目的で、FF15ベンチを起動してみたが、4Kの高品質でスコアが「9079」だった。これなら、パフォーマンスに影響するような大きな問題もなさそうだ。
ベンチで負荷がかかると、足元に置いてあるPCから漂ってくる熱風が、まるで「ケースと冷却は大丈夫か?」「CPU(今はRyzen 9 3900X)を換えた方がスコア上がるんじゃないか?」などとと語りかけてくるようで、すでに自作沼にはまりかけている。しかし、今の目標はローカルLLMを動かすことだ、これは幻聴だ、と自分に言い聞かせている。
ディープラーニング系の性能を見る
さて、筆者の目的は、「Vicuna」や「WizardLM」などの130億パラメータークラスのLLMや、最近rinnaやサイバーエージェントから公開されて増えてきた日本語特化LLMをPCで動かすことだ。
本来であれば、LLM用のベンチを使って性能を評価したいところではあるが、これがなかなか難しい。MLperfやTorchBenchなどもあるようだが、動かすための環境構築がうまくいかず、今回は、いずれも動作させることができなかった。
そこで、今回は、NTTPCコミュニケーションズが同社のサイトで公開している「トレンドコラム」にて、過去数度にわたって掲載されていたエンタープライズ向けのGPUの性能比較の記事を参考に、同じテストを実行することにした。
▼参考記事(NTTPCコミュニケーションズ トレンドコラム)
ベンチマーク性能比較 ~A100 vs A30 vs A10~
▼上記記事で利用しているTensorflowの畳み込みベンチマークプログラム(GitHub)
tensorflow/benchmarks
参考記事では、Tensorflowを使った複数のモデルで検証しているが、今回は、そのうちの「Resnet50」のみを実行した。
Resnet50は、ざっくり説明すると、深さが50層となる畳み込みニューラルネットワーク(CNN:Convolutional Neural Network。主に画像認識に使われるニューラルネットワーク)で、これを複数回実行し、1秒間に処理できた画像の枚数を計測する。なお、今回はバッチサイズ32(データセットの処理において一度に行うサブセットのデータ数)で計測した。
結果は以下の通りだ。
ビデオカード | 結果(image/秒) |
RTX3070 | 245.89 |
RTX3090 | 406.42 |
手元のRTX3070との比較では、1.65倍の性能が実現できている。また、前述した参考記事に掲載されている結果と比べても、RTX3090は、A30とA100の中間ほどの性能を実現できている。
このテストは、負荷が低く、VRAMも多く必要とするわけではないので、あくまでも参考値となるが、それでもRTX3090はディープラーニング用GPUとしてもコスパは高そうだ。
30B=300億パラメーターモデルも視野に入る
というわけで、今回は、ただのRTX3090の購入記になってしまったが、今後、実際に大規模言語モデルを動かす方法を紹介する予定だ。できるだけ、最小限の手間で、GUIで使える方法を紹介する。
ざっと動かしてみた印象としては、やはり24GBのVRAMの恩恵は大きい。パラメーター数6B(60億)クラスが14GB前後で余裕で動かせるだけでなく、13B(130億)クラスや30B(300億)クラスも、現在、目まぐるしく進化しているGPTQなどによる低量子化で、消費するVRAMの容量が減っており、中には30Bで20GBほどのVRAM消費で動くモデルも存在する。
少し前まで規模の戦いだった大規模言語モデルが、すさまじい勢いで軽量化されていく世界を実際にRTX3090で体験しながら味わえるメリットは大きい。これからビデオカードを購入する場合は、ぜひVRAMの容量も考慮して購入することをお勧めする。