NVIDIAは、2台のDGX Stationで大規模言語モデルGLM-5.3を共同実行し、単一APIで提供する手順を公開した。GPU 1基に収まらないモデルを2基に分けて載せて自ら運用したい開発チームは、この構成を基にローカル推論サービスを作り、同時リクエスト性能を試せる。

1. 量子化しても単一GPUより大きいモデル

GLM-5.3 NVFP4の総パラメータ数は7530億で、トークンごとに有効になるパラメータは400億だ。処理に合う一部だけを選んで計算するが、選択候補となる重み全体をメモリに置く必要がある。NVIDIAのブログによると、チェックポイントは約464GBで、GB300 GPU 1基の252GBメモリを超える。

モデルの仕様と利用情報を記したモデルカードは、入力ごとに一部のサブモデルを選ぶ混合エキスパート構造の線形演算に4ビット量子化を適用したと説明する。対象の重みと活性化の精度を8ビットから4ビットに下げ、ディスクとGPUメモリの必要量を約1.66分の1に減らしたというのがNVIDIAの説明だ。

案内された構成は、CPUメモリに重みを移す代わりに、2基のGPUに重みと計算を分けるテンソル並列方式を使う。一方がAPIリクエストを受け、2台が各リクエストを共同処理するため、利用者は単一のOpenAI互換APIに接続すればよい。

2. モデルのコピーと高速接続を両側に用意

各Stationは、学習済みモデルの状態を保存したチェックポイントの完全なコピーをディスクに保持するため、モデル用にそれぞれ464GB以上の空き容量が必要だ。案内手順では、一方でモデルをダウンロードして他方にコピーし、ファイル一覧とサイズを比較する。実際にGPUへロードする際は、vLLMが2基のGPUに重みを分割する。

2台はConnectX-8接続を通じ、GPUメモリ間で計算結果を直接やり取りするRDMA通信を使う。NVIDIAは、接続速度400000Mb/s、大きなパケットの転送成功、時刻同期を準備段階で確認するよう案内している。

起動後はAPIの状態と通信ログを確認する。各GPUに載る重みは起動ログで約218GiBと、モデル全体の半分程度だ。

3. ワーカーを先に起動し単一APIにリクエスト

案内されたvLLM 0.30.0構成は、複数トークン予測のMTPにより1ステップで4トークンのドラフトを作り、モデル全体で検証して出力を早める。プレフィックスキャッシュにより、処理済みのプロンプト前半の再計算も減らす。

FP8 KVキャッシュは処理中のリクエストの文脈を保存し、16ビットで保存する場合よりキャッシュメモリを半減する。

ワーカーノードを先に起動し、APIを提供するノードを後から起動する。ログにサービス起動完了が表示されたら、ヘルスチェックとリクエストで応答を確認する。原文のリクエスト例は、2台のコンテナと環境変数の設定を終えてから使う。

docker exec "$CONTAINER" curl -fsS --max-time 120 \
 "http://127.0.0.1:$PORT/v1/chat/completions" \
 -H 'Content-Type: application/json' \
 -d '{"model":"nvidia/GLM-5.3-NVFP4",
 "messages":[{"role":"user","content":"Quarterly units sold: Q1 = 120; Q2 = 180; Q3 = 150. Summarize the trend in one sentence and calculate the percentage change from Q1 to Q2."}],
 "temperature":0,"max_tokens":4096,
 "chat_template_kwargs":{"reasoning_effort":"low"}}' |
python3 -c 'import json,sys; c=json.load(sys.stdin)["choices"][0];
print(c["message"]["content"]); print("finish_reason:",c["finish_reason"])'

この例は応答内容と終了理由を併せて出力し、正常に完了したかを確認する。このリクエストの推論強度は低く、以下の負荷試験はデフォルトの最高強度で実施された。

4. 同時リクエストを増やすとスループットと応答速度が相反する

NVIDIAはAIPerfとSPEED-Bench Codingの対話80件で負荷を測定した。各段階で同時リクエスト数の3倍をウォームアップとして送り、10倍を測定し、ウォームアップは統計から除外した。出力トークンには回答前の推論も含まれる。

以下は、同時処理上限を16に固定した同社発表の結果だ。

表:同時処理上限16でのリクエスト数別スループットと遅延

条件:GB300 GPU搭載のDGX Station 2台、GLM-5.3 NVFP4、テンソル並列度2、vLLM同時処理上限16、コンテキスト上限98304トークン、SPEED-Bench Coding、プレフィックスキャッシュ・4トークンMTP・FP8 KVキャッシュ、推論強度max、出力上限8192トークン

単位:スループットtok/s、遅延s

同時処理上限16での全体スループット1: 全体スループット (tok/s) 107.4; 8: 全体スループット (tok/s) 386.0; 16: 全体スループット (tok/s) 607.81107.48386.016607.8
同時処理上限16での全体スループット
同時リクエストを増やすとスループットと応答速度が相反する
同時リクエスト数全体スループット (tok/s)平均ユーザー当たりスループット (tok/s)平均リクエスト遅延 (s)
1107.4115.349.84
8386.0—114.17
16607.8—136.46

同社の発表では、この設定で同時リクエスト16件の全体スループットは607.8tok/sだった。同時リクエストが増えるほど全体のスループットは上がったが、平均遅延も長くなった。複数の利用者を受け入れる能力と各利用者の待ち時間の間にトレードオフが見られる。

同時処理上限を32に変更した別の試験では、同時リクエストも32件送った。他の条件を維持したこの試験の同社発表値は、全体スループット385.0tok/s、平均ユーザー当たりスループット13.0tok/s、平均リクエスト遅延453.54秒だった。

5. ローカル実行の代償は2台の機器とネットワークの運用

2台を組み合わせれば、GPU 1基のメモリより大きいモデルをローカルで実行できる。NVIDIAは、機密データのローカル推論やエージェント実験、トークン単位の利用料なしでプロンプトを繰り返す用途を挙げる。一方、2基のGPUとネットワークを確保し続け、各Stationにモデル全体のコピーを保存する必要がある。RDMA接続と同期、ネットワークのアクセス制御も運用範囲に入る。

案内された構成のAPIは、デフォルトで認証なしにリクエスト受信機の全ネットワークインターフェースで公開されるため、外部提供前にファイアウォールと認証、通信内容を暗号化するセキュリティプロトコルTLSの設定が必要だ。

GLM-5.3を2台のStationに分ける構成は単一GPUのメモリの限界を超えるが、スループットの最適点は負荷によって変わるため、実測が必要だ。