LLMのファイルサイズ・VRAM・RAM・実行時メモリは何が違う?

目次
モデル配布ページに「8GB」と書かれていても、8GBのVRAMがあれば必ず動くという意味ではない。この8GBは多くの場合、SSDへ保存するモデルファイルの容量を示している。
ローカルLLMのメモリを考えるときは、ファイルサイズ、VRAM、RAM、実行時メモリを別の数字として扱う必要がある。
| 用語 | 主な場所 | 何を表すか |
|---|---|---|
| ファイルサイズ | SSD・ストレージ | ダウンロードして保存するモデルファイルの容量 |
| VRAM | GPU | GPUがモデルやキャッシュ、作業領域に使う専用メモリ |
| RAM | PC本体 | OS・CPU側の処理やoffloadされたモデルなどに使うシステムメモリ |
| 実行時メモリ | GPU・RAM全体 | 推論中にモデル本体、KVキャッシュ、作業領域などが実際に使うメモリ |
図: 容量・設定値・段階差の判断軸を1枚に整理。数値の条件は本文を優先する。
ファイルサイズは保存容量の数字
GGUFやsafetensorsのファイルサイズから確実に分かるのは、まず保存に必要な容量だ。15GBのGGUFなら、そのファイルを置けるストレージ容量が必要になる。
一方、15GBのファイルだから15GBのVRAMで全量GPU配置できるとは限らない。推論中にはモデルの重み以外にもメモリを使うからだ。
量子化によってファイルサイズが小さくなれば実行時のモデル本体も軽くなる方向には働くが、ファイル容量とピークVRAMが一対一で一致するわけではない。
実行時にはKVキャッシュなども増える
LLMは入力済みトークンのKeyとValueを再利用するためにKVキャッシュを使う。これはモデルファイルとは別の実行時メモリだ。
コンテキストを長くすると保持するトークン列も長くなるため、KVキャッシュに必要なメモリも増える。Ollamaも、コンテキスト長を増やすと必要メモリが増えると案内している。
そのほかにもランタイムの作業領域やバッファなどが必要になる。そのため、同じモデルファイルを使っていても、コンテキスト長やランタイム設定が違えば総メモリ使用量は変わる。
「ファイルサイズの1.2倍あればよい」といった万能な倍率は作れない。
メモリの数字は測定対象を確認する
モデルのメモリ情報には複数の種類がある。数字を比較するときは、何を表す値かを先に確認したい。
| メモリ情報 | 分かること | そのままでは分からないこと |
|---|---|---|
| GGUF・safetensorsの容量 | 保存する配布物の大きさ | 推論時のピークVRAM |
| Hugging Face Accelerateの推定 | 指定dtypeでモデルを読み込むための推定 | KVキャッシュなどを含む推論時の総メモリ |
| 開発元のハードウェア案内 | 開発元が想定する実行条件 | 任意のランタイム・設定で同じになるか |
| llama.cppなどのログ | GPU/CPUへの配置や確保状況 | それが常にピーク値かどうか |
| 条件付きの実測 | そのモデル・量子化・設定・PCでの使用量 | 別条件でも同じ値になるか |
Hugging Faceのメモリ推定も、モデル読み込み時の目安として有用だが、推論中の総メモリそのものではない。コンテキストやキャッシュを含む実行条件は別に確認する必要がある。
VRAMとRAMは置き換え可能な同じメモリではない
llama.cppなどでは、モデルの一部をGPUへ置き、残りをCPUとシステムRAMへ回すpartial offloadができる。
この場合、VRAMが少なくてもモデルを起動できる可能性はあるが、モデル全体がGPUに収まったことにはならない。
- 全量GPU配置 — 対応するモデル部分をGPU側へ置く
- partial offload — 一部をGPU、残りをCPUとRAMへ置く
partial offloadではRAMの余裕が役立つ一方、CPU計算やデバイス間転送も増える。RAMを増やせばVRAMと同じ速度で処理できる、という関係ではない。
そのため「16GB GPUで動いた」という情報を見るときは、全量GPU配置なのか、CPUとRAMを使った構成なのかまで確認すると参考にしやすい。
モデルを読み込めることと快適に使えることも別
メモリ条件では少なくとも三つを分けたい。
- モデルを保存できるか
- モデルを起動できるか
- 必要なコンテキストと速度で実用できるか
SSDに保存できても起動できるとは限らず、CPUオフロードで起動できても待ち時間が用途に合うとは限らない。
逆に、GPUへ全量が収まらなくても、速度をあまり重視しない用途ならpartial offloadで十分な場合がある。必要なのは「動くGPU」の固定表ではなく、自分の用途に近い実行条件だ。
PC適合性を確認する順番
モデルを使えるか判断するときは、次の順で条件を具体化すると分かりやすい。
- モデルと配布元を決める
- 量子化や精度を決める
- 実際のファイル容量を確認する
- LM Studio・Ollama・llama.cppなど使うランタイムを決める
- 普段必要なコンテキスト長を決める
- 全量GPU配置かpartial offloadかを確認する
- 同じ条件に近い公式要件・推定・実測を見る
GGUF自体をまだ選んでいない場合は、GGUFモデルをダウンロードする前に確認したい5項目から整理できる。
必要なVRAMの範囲が見えてからGPUを選ぶ場合は、ローカルAI向けGPUは16GB・24GB・32GBのどれを選ぶ?へ進むのがよい。
モデルファイルのGB表示は重要な情報だが、それはメモリ判断の出発点にすぎない。保存容量、GPUへの配置、システムRAM、コンテキストを含む実行時メモリを分けて見ることで、必要以上に大きなGPUを買うことも、容量不足の構成を選ぶことも避けやすくなる。
まとめ
- GGUFやsafetensorsのファイル容量は保存に必要な容量で、必要VRAMそのものではない
- 実行時にはモデルの重みに加え、KVキャッシュやランタイムの作業領域などにもメモリを使う
- 全量GPU配置とpartial offloadではVRAMとシステムRAMの使われ方が異なる
- モデル、量子化、ランタイム、コンテキスト、配置条件をそろえたメモリ情報からPC適合性を判断する
公式サイトで次に進む
この記事で明示的に扱うソフトだけを表示します。配布・手順は各公式ページで確認してください。
LM Studio
Ollama
llama.cpp
local-gen.jpがファイルを配布するものではなく、互換性を保証するものでもありません。
この記事で扱ったデータ
モデル・GPU・実行ソフトの確認済みデータを、記事とは別に確かめられます。