【ローカルLLM】Runpodで65Bモデルを動かす

LLamaベースのローカルLLMは、パラメータ数に応じて7B/13B/30B(33B)/65Bの4つのクラスがある。

65B(650億パラメータ)モデルを動かす場合、4ビット量子化しても40GBほどのGPUが必要。最近、AI動画生成を試す目的でクラウドGPUに課金したので、ついでに65Bのモデルも動かしてみた。

使ったのはRunpodというクラウドサービス。StableDiffusionユーザーで使っている人が時々いてるらしく、利用手順は例えばこちらの記事に詳しい。

Google ColabのようにJupyter Notebookを実行する形で使える。
Colab Proとの違いは、月額課金ではなく時間あたりで支払い、レンタルできるGPUの種類が多い、など。プリペイドで最初に10ドルの課金が必要。

なお料金体系は、Secure Cloud(Runpodの自前リソース)とCommunity Cloud(外部提供のリソース)で分かれており、Community Cloudのほうが安い。さらにレンタル方式はOn-DemandとSpot Podに分かれる(GPUによってはOn-Demandのみ)。Spot Podは提供者の都合で切断されるリスクがあり、その分安い。

Guanaco 65Bを試す

今回はGuanacoの65Bモデル(GPTQ量子化)を試した。

とりあえずCommunity CloudからRTX A6000(48GB VRAM)x1をSpot Podで借りる。そのままだとディスク容量が足りず40GBに増量。なお価格は変動するが、今回は計0.351ドル/hrだった。

せっかくなので、65Bだと、33Bや13Bと比べてどれくらい賢いのかを簡単に検証することに。

こちらの論文から、MT-Benchというマルチターンのベンチマークのサンプルを拾ってきて、Guanacoの13B、33B、65B(いずれもGPTQの4bit量子化)で比べた。そのまま使うと出力が長くなりすぎるうえ、計算問題に関してはGuanacoには難しすぎたので、プロンプトは調整した。

感想

今回のプロンプトと各モデルの出力の例は、長くなるので下記に張り付けた。あくまで簡単に試しただけだが、「大した違いは無いな」という感想をもった。

大きいモデルでは出力テキストが長く丁寧な傾向があり、回答がより饒舌だった。クリエイティブ・ライティングならば65Bモデルが最も優れてそうな印象がある。

一方で、指示内容に対する的確な回答という意味では、サイズの優位性がみえなかった。Llama系のモデルが苦手な算数に関しても、13Bと65Bの間に違いは認められない(65Bモデルでも「3-2+1=」が正しく答えられず)。

そもそも65Bクラスはトレーニングコストが高いせいか、このクラスをカバーしている派生モデルが少ない状況。最近はMicrosoftのOrca 13Bやphi-1(1.3B)の話題もあり、より小型で質の良いモデルに注目が移っている感がある。

Runpodについて。当然Google Colabほどの手軽さはなく、慣れない人間には扱いづらい面があった。高性能GPUを集中的に使うような用途に向いている。恒常的にクラウドリソースを使うなら普通にColab Proに課金するほうがいいと思う。