本文へスキップ
CoRISE

ローカルLLMのVRAMを見積もる — 重みだけで容量を決めない

モデルの重み、KVキャッシュ、実行時領域を分け、同時実行の条件を明示する。

約2分で読めます
  • ai
  • infrastructure
目次を開く

結論

モデルの重み、KVキャッシュ、実行時領域を分け、同時実行の条件を明示する。

背景

重みがGPUメモリへ収まっても、長いコンテキストや並列リクエストに必要な領域が足りない場合がある。推論時のピークを構成要素ごとに見積もる。

設計と検証の論点

構成を検討するときは、次の責任と境界を分けて確認します。

  • パラメータ数
  • 数値精度
  • 量子化
  • コンテキスト長
  • KVキャッシュ
  • バッチ
  • 実行環境

重みの概算は Mweights≈Pbw/8M_{\mathrm{weights}} \approx P b_w / 8 バイトとなる。PP はパラメータ数、bwb_w は重みあたりのビット数である。KVキャッシュを含む単一GPUの目安は次のように分解できる。

Mtotal≈Pbw8⏟weights+2BLTHkvdhbkv8⏟KV cache+MruntimeM_{\mathrm{total}} \approx \underbrace{\frac{P b_w}{8}}_{\text{weights}} + \underbrace{\frac{2 B L T H_{\mathrm{kv}} d_h b_{\mathrm{kv}}}{8}}_{\text{KV cache}} + M_{\mathrm{runtime}}

BB は同時系列数、LL は層数、TT は系列長、HkvH_{\mathrm{kv}} はKVヘッド数、dhd_h はヘッド次元、bkvb_{\mathrm{kv}} はKV要素あたりのビット数である。係数2はキー(Key)と値(Value)を表す。量子化のメタデータ、演算用バッファ、メモリ断片化などはこの式だけでは求まらないため、対象ランタイムでのピーク使用量を測る。

判断理由

パラメータ数と実行環境の関係を軸に、採用案と代替案の責任範囲を比較します。既存の制約を残す理由と、新しい境界で変えられることを分けて記述します。

トレードオフ

数値精度を扱うために増える実装・保守・確認作業と、得られる制御可能性を比較します。障害時の経路と運用担当者の負担を含め、採用しない方がよい条件も示します。

制約

モデル版、ランタイム、量子化、系列長、バッチごとのピーク使用量を記録する。計算値を実測性能と混同しない。

関連事例

関連事例の担当範囲や設計判断を参照します。記事で提案する実験・構成を、その事例で実施済みとするものではありません。

Contact

技術的な課題を、お聞かせください。

設計や実装、運用の課題について、CoRISEにご相談いただけます。

相談する