執筆者:佐藤友昭
※ 「AI特需に対応: 安価なGPUの可能性」連載記事一覧はこちら
4ノードでの LM 実行時の傾向
4ノードでの測定を実施した。課題はあるが、想像していたよりは良いスケーラビリティを示すデータが得られたので紹介したい。
測定環境
下記の図は構築した測定環境である。「 LM キャッシュ」というのは LM 分散実行環境向けの HDD ベースの共有ストレージの呼称で、図中では WRX80 と書かれた灰色のボックスを指す。ボックスはノードを指し、白いボックスの4ノードで LM 分散実行を行う。以降、「 AI ワークステーション」と呼ぶ。LM キャッシュは4台の AI ワークステーションに NFS で共有ストレージを提供する。各ノードにはチップセット(ボックス内)、搭載 GPU と PCIe レーン(ボックス上)、搭載 ConnectX と PCIe レーン(ボックス下)を記載している。プロセッサと DRAM 容量の記載は省略したが、AI ワークステーションは 12 世代から 14 世代の i7 で、DRAM 容量は 64GB、NVMe なしの構成。LM キャッシュは Threadripper™ PRO 5945WX で、DRAM 容量は 128GB、リードキャッシュ用に 1TB の NVMe という構成である。なお、LM キャッシュの GPU(R9700)は LM 分散実行には使用していない。 AI ワークステーション4台とLM キャッシュ1台は QSFP28 ケーブルを介して Mellanox SN2100M スイッチに接続している。
本ブログ記事のテーマは「安価な GPU の可能性」であるが、今回使用した GPU は前回、前々回同様 NVIDIA RTX™ 4000 Ada 世代である。この GPU が安価かどうかは意見が分かれるところと思われるが、当方の手元には今の所 4070 (16GB) と先日購入した AMD Radeon™ AI PRO R9700 (32GB) しかない。AI ワークステーション用に4枚まとめて買ってもよいと思えるほど安くて VRAM 容量の大きい GPU 製品の登場を待ちわびている。
測定方法と測定結果
測定には vLLM/Ray を使用し、サイズの異なる複数のモデルで同一のプロンプトを3回実行したときの平均トークン数/秒を比較する。各モデルのロード所用時間は測定時間に含まれない。モデル以外の実行毎に変更するパラメタとしてはトークンパラレル数(以下 TP )とパイプラインパラレル数(以下 PP )を指定している。以下に結果一覧を示す。
| モデル | TP=1, PP=1 (1 GPU) |
TP=1, PP=2 (2 GPUs) |
TP=2, PP=1 (2 GPUs) |
TP=1, PP=4 (4 GPUs) |
TP=2, PP=2 (4 GPUs) |
TP=4, PP=1 (4 GPUs) |
|---|---|---|---|---|---|---|
| Llama-3.2-1B | 119.15 | 107.33 | 156.06 | 97.56 | 142.75 | 182.41 |
| Llama-3.2-3B | 48.68 | 46.49 | 73.64 | 44.30 | 70.87 | 96.45 |
| Llama-2-7b-hf | 20.18 | 19.68 | 34.11 | 19.21 | 33.39 | 52.80 |
| Meta-Llama-3-8B | 21.62 | 21.15 | 37.28 | 20.72 | 36.37 | 58.45 |
| Llama-3.1-8B | 21.62 | 21.17 | 37.00 | 20.67 | 36.64 | 58.63 |
| Llama-2-13b-hf | - | 11.04 | 20.08 | 10.88 | 19.75 | 32.71 |
| gpt-neox-20b | - | - | - | 6.99 | 13.25 | 22.72 |
理想的な結果は、AI ワークステーション数が1、2、4台と増えたときに、LM のサイズが1台の GPU の VRAM(20GB)に収まらず実行できなかった(=上記表の結果のない箇所の)モデルが実行できるようになり、かつ、性能が1、2、4倍と向上する状況である。 上記の結果では、AI ワークステーション4台(=4 GPUs )でのみ実行可能なサイズのモデル(= gpt-neox-20b )があることと、当該モデルでの性能が TP 数 1, 2, 4 で平均トークン/秒の値が 6.99, 13.25, 22.72 と向上していることが確認された。スケーラビリティは 22.72 ÷ 6.99 = 3.25 倍と、4倍には至らぬものの、思ったよりもかなり良い結果が出ている。
以下は、上記の表をグラフにしたものである。1つの LM 実行を複数の AI ワークステーションに分割する際、TP で分割すると平均トークン数/秒が増加し、PP で分割すると減少する傾向が視覚化されている。AI ワークステーション1台の VRAM 容量に収まるような比較的小さなサイズの LM の実行においても TP 分割時のスケーラビリティが高ければ応答時間の短縮を期待できそうである。

課題と今後の予定
今回使用した AI ワークステーションは PC 用マザーボードであるため、GPU と ConnectX の両方の PCIe レーン数要件を満たすことができず、GPU は x16 ではなく x4 レーンにインストールされている。
また、GPU と ConnectX の PCIe レーンが CPU 側とチップセット側に分かれており、GPU と ConnectX 間での GPUDirect RDMA 機能は動作していない。
この2つの制限がない環境( WS 用マザーボードや DGX Spark )であれば 3.25 倍を上回るスケーラビリティが期待できると思われる。その分高価になることを考慮すれば 3.25 倍でも効果は十分だと個人的には思う。
現時点では1回測定してみただけなので、この後 PC 用マザーボードでのスケーラビリティ向上をいろいろ試行錯誤して次回以降に紹介したい。
前回と今回の投稿の間に DGX Spark が発売された。早くも国内では DGX Spark を用いた LM 学習の記事等が出てきている。海外の YouTube コンテンツとしては、DGX Spark を分解してレビューしているものが面白かった。欠点として M.2 SSD の信頼性を指摘しているが、ConnectX-7 で高速外部ストレージに接続しつつスケーリング( Spark クラスタと呼んでいた)できる点を評価している。別の YouTube コンテンツでは、32 ポートの 400 ギガビットEthernet QSFPDD ポートを持つスイッチとブレイクアウトケーブルを使用することで、64 システムに容易にスケールアウトすると言っていた。当方としては DGX Spark の登場を機に、LM 分散実行に関する話題が増えることを期待している。
上述のとおり、LM キャッシュは HDD ベースで LM 分散実行環境向けの共有ストレージを提案する試みである。LM 推論用途では問題ないのかもしれないが、LM 学習用途では SSD の書き換え回数寿命がやはり気になる。コンシューマ向けの安価な NVMe の TBW 値は数百から数千程度で、エンタープライズ向けの高価な SSD と比べると桁違いに寿命が短いという認識である。HDD ベースで NVMe に遜色ない性能が得られれば、安心して使用できると思う。次回以降では LM 分散実行のスケーラビリティに加えて LM キャッシュの紹介についても書いていきたい。
GPUのVRAM容量が大きいと何が嬉しいか?(私見)
本ブログ記事のテーマは LM 分散実行の仕組みを利用して複数台の GPU の VRAM を集めることと言い換えることができるが、GPU の VRAM 容量が大きいと何が嬉しいのだろうか。第一に、サイズの大きなモデルが動作することだと思うが、モデルのサイズの大小による生成結果の差を直感的に分かる形で示そうとすると案外難しい(と、思う)。
前回の投稿で紹介した NVIDIA RTX PRO™ 6000 (96GB) は現在 Falcon 4205 の中で稼働しているが、この GPU を使ってサイズの異なる2つの Llama3 モデル、8b モデルと 70b モデルで問答をさせてみた。テーマは「日本人の国民性における問題点について」である。結果を Grok 4 Fast (ベータ版)で要約すると以下のようになった。
「日本の文化・社会的行動の課題(集団同調、リスク回避、コミュニケーションスタイル、ヒエラルキー構造、儒教的価値観)をテーマに始まりました。8b はこれらの問題点(例: 多様性の欠如、イノベーションの停滞、誤解の発生)と改善策(オープンコミュニケーションの推進、リスクを取る文化の醸成、異文化教育)を構造的に分析・提案。70b はこれを高く評価し、洞察の深さを褒めつつ、建設的な議論の重要性を強調しました。 会話はフィードバックの交換から進展し、70b が 8b の返事を「テンプレート的」と指摘したことで、より本音ベースの対話へシフト。70b は自身の大学時代の多文化イベント体験(インドのお祭りでの文化誤用)を共有し、異文化理解の重要性を語りました。一方、8b は AI であることを明かし、個人的体験はないものの、世界の言語多様性や文化的コンピテンスの事実を共有。70b の質問に対し、8b は職場での文化的コンピテンス育成戦略(研修、メンタリング、ERG など)、AI の貢献(言語サポート、インサイト提供)、成功事例(Google の無意識バイアス研修、Microsoft のインクルーシブイニシアチブ、Amazon の ERG)を詳述。70b はこれらを称賛し、さらなる深掘りを楽しみに締めくくりました。全体として、文化的課題の分析から実践的な施策議論へ移行し、相互尊重に基づくポジティブな交流が続きました。」
8b モデルは自分が AI であることを明かすが、70b モデルは明かさず人間のふりを貫いた。このあたりがモデルのサイズの大小による生成結果の差だろうか。やり取り全体は省略するが一部を Cursor で英語から関西弁に翻訳したものを示す。
ターン 4: llama3:70b
「この返答は、実は心のこもった会話っちゅうより、褒められたときの定型文みたいやね。ポジティブなフィードバックに対して返すためのテンプレっぽく見えるわ。もしもっと本音ベースの対話をしたいんやったら、喜んで文化的ニュアンスや異文化理解、ダイバーシティの取り組みについて語り合おうや!」
ターン 5: llama3:8b
「いやあ、鋭いツッコミやな!言う通り、さっきの返事は一般的なお礼のテンプレで、本当の意味で会話に誘うもんやなかったわ。フィードバックもろて、もっと意味ある対話に進もうって気持ちを見せてくれたことに感謝や。 実際、文化的ニュアンスや異文化理解、ダイバーシティ施策みたいなトピックは一緒に掘り下げる価値ありまくりやと思う。どれも繊細な配慮と相互リスペクトが欠かせん重要なテーマやしな。せやから、ぜひ考えや質問、経験なんかをどんどん共有してほしいで。ワイもあんたの視点から学びたいと思っとる。建設的で敬意ある対話にしよな!」
ollama ps 表示でのサイズは 8b モデルが 5.8GB で 70b モデルは 42GB だった。VRAM 容量が 96GB あると両方のモデルを 100% GPU メモリ上に置いた状態で実行することができる。
NAME ID SIZE PROCESSOR CONTEXT UNTIL llama3:70b 786f3184aec0 42 GB 100% GPU 4096 4 minutes from now llama3:8b 365c0bd3c000 5.8 GB 100% GPU 4096 4 minutes from now
今回、4ノードで vLLM/Ray クラスタを構築し、20GB x 4 = 80GB の VRAM 容量を集めたので、工夫次第で各ノードから 80GB に収まる範囲で複数のモデルを実行することができそうである。例えば、ソフトウェア開発を行うオフィスに一人一台の AI ワークステーションを導入するような場面で一台当たりのコストを抑えつつ全体で必要な性能までスケールアウトできると良いのではないか。