7B モデルに必要なメモリは?重みを計算してから余裕を見込む
「7B、4-bit」という情報だけで、ある GPU でモデルを動かせると判断すると、ほかのメモリ使用量を見落としがちです。重みのサイズは手計算できますが、推論プログラム全体の一部にすぎません。理論上のサイズと実行時のピーク使用量を分けると、ハードウェアを選びやすくなります。

まず、簡略化した式で重みのサイズを見積もります。
重みのバイト数 ≈ パラメータ数 × パラメータあたりのビット数 ÷ 8。
7B を約 70 億パラメータとすると、次の理論値が得られます。
| 重みの精度 | 理論上の重みのサイズ(10 進表記の GB) |
|---|---|
| 16-bit | 約 14GB |
| 8-bit | 約 7GB |
| 4-bit | 約 3.5GB |
これは算術による見積もりであり、特定モデルの VRAM 使用量を測定した結果ではありません。実際の実装には、量子化のメタデータ、量子化されていない層、実行用バッファ、活性値、KV cache も含まれます。GB と GiB の換算によっても数値に違いが生じます。
Hugging Face のドキュメントでは、bitsandbytes を使って低精度の重みを読み込む方法や、関連する計算型、実装上の条件を紹介しています。実際の効果は、モデルと動作方法を合わせて判断する必要があります。参考ドキュメント ↗
機器の選定が目的なら、最初に 3 つの条件を固定しましょう。モデルと量子化版、最大入力長、同時に処理するリクエスト数です。その条件で、メモリのピーク使用量、最初のトークンが出るまでの時間、生成速度を測ります。パラメータ数だけでは、実際の使い方を反映できません。

試してみる
動かす予定のモデルを一覧にし、それぞれの理論上の重みのサイズを計算してください。テスト表には、入力長、同時実行数、メモリのピーク使用量、速度の 4 列も追加します。まだ実行していないモデルは空欄にし、理論上の見積もりを実測値として記入しないでください。
毎日 1 本の記事を処理するだけなら、リモート API とローカル機器の総費用を比較する際、購入費、遊休時間、電力、保守も計算に入れる必要があります。
メモリ予算を全体で見る
- モデル重み
実際に読み込む重み
- KV キャッシュ
コンテキストと同時リクエスト
- 実行時の領域
バッファとその他の割り当て
理解したら、実際に試してみましょう。
次の記事を探すログイン不要。同じブラウザでは、言語を変えても1票です。
原資料・参考リンク
内容の確認と学習のためのリンクです。資料の掲載は本誌への推薦や支持を意味しません。
huggingface.co原資料 1