PCで快適に大規模言語モデルを動かしたい! 16GB版RTX4060tiを待ちきれず、24GB搭載のRTX3090ビデオカードを中古で買う【イニシャルB】

INTERNET Watch

 本連載の以前の回で、PCでChatGPTのような大規模言語モデル(LLM)を動かす方法を紹介した。その際の感想は「ビデオカード(VRAM)が欲しい……」であったが、それから数週間、迷いに迷った結果、ついに中古のRTX3090搭載ビデオカードを購入した。

 購入前には、耐久性や品質など、中古ならではの懸念材料もあったが、結果的には大満足。24GBの潤沢なVRAMの威力を堪能している。

中古で購入したRTX3090搭載ビデオカードASUS「ROG-STRIX-RTX3090-O24G-GAMING」

中古市場を巡回する毎日にピリオドを打つ

 仕事の合間を縫って、中古パーツ販売店やオークションサイトを巡回する日々がようやく終わった。

 中古とはいえ10万円以上するRTX3090搭載ビデオカードの価格を眺めながら、「それなら(7月発売予定とされる)RTX4060ti 16GB版を待つか……」「いや、型落ちとはいえ24GBのVRAMは魅力的……」「だったらプラス数万で3090tiを狙うか……」「ただ、中古は耐久性が心配……」と、堂々巡りを繰り返す毎日だったが、最終的には「迷ったら買え」の鉄則通り、今すぐ入手できるRTX3090を選んだ。

 購入先は、AKIBA PC Hotline!の「中古PC Hotline!」でもおなじみパソコン工房。日々の巡回中に、入荷したての「New」ラベルが付けられた、12万640円のASUS「ROG-STRIX-RTX3090-O24G-GAMING」を発見し、少し高めの価格かなとも思ったが、もう前述の堂々巡りに疲れて、購入を決めた。

 ビデオカードの場合、マイニングなどで酷使されている可能性も考えられるため、中古は耐久性が心配だ。しかし、動くうちに検証できることをやりつくしてしまえばいい、と割り切ることにした。

思い切って購入したRTX3090搭載ビデオカード。実売価格は12万円

丁寧な梱包で、実用上の問題もなし!

 手元に届いた製品は、外箱はそれなりにヤレているものの、丁寧に梱包されて送られてきたうえ、中身もきれいで、古さを感じさせないものだった。

丁寧な梱包がされていた

カードもきれいで古さは感じられなかった。

 早速、メインのPCに装着していたRTX3070と交換すると、ケースに干渉することなくカードが収まり、850W搭載していた電源も不足はなかったようで、問題なく稼働してくれた。

 中古製品は、この瞬間が一番ドキドキする。

 とりあえず、負荷をかけながらの検証目的で、FF15ベンチを起動してみたが、4Kの高品質でスコアが「9079」だった。これなら、パフォーマンスに影響するような大きな問題もなさそうだ。

 ベンチで負荷がかかると、足元に置いてあるPCから漂ってくる熱風が、まるで「ケースと冷却は大丈夫か?」「CPU(今はRyzen 9 3900X)を換えた方がスコア上がるんじゃないか?」などとと語りかけてくるようで、すでに自作沼にはまりかけている。しかし、今の目標はローカルLLMを動かすことだ、これは幻聴だ、と自分に言い聞かせている。

高品質の4Kで9079。CPUが古いことが影響しているが、カードの品質には問題なさそう

ディープラーニング系の性能を見る

 さて、筆者の目的は、「Vicuna」や「WizardLM」などの130億パラメータークラスのLLMや、最近rinnaやサイバーエージェントから公開されて増えてきた日本語特化LLMをPCで動かすことだ。

最終的な目標は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(データセットの処理において一度に行うサブセットのデータ数)で計測した。

 結果は以下の通りだ。

RTX3090での実行結果。Windows 11のWSL2を使って検証

Tensorflow Resnet50テスト バッチサイズ32
ビデオカード 結果(image/秒)
RTX3070 245.89
RTX3090 406.42

Resnet50のテスト結果。RTX3090が1.65倍高速

 手元の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の容量も考慮して購入することをお勧めする。

30BモデルをGPTQで4bit化したモデルなら20GB前後のVRAMで動く。日本語や計算などを若干間違えるケースもあるが、かなり実用的なレベルに達する

Source