Ollamaの量子化モデルを選ぶ方法|VRAM容量に合わせたq4_0・q8_0・q4_K_Mの最適設定ガイド

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)ローカルLLM > Ollamaの量子化モデルを選ぶ方法|VRAM容量に合わせたq4_0・q8_0・q4_K_Mの最適設定ガイド
「モデルをダウンロードしたのに、VRAMが足りなくてOllamaが起動しない」
「q4_0とq8_0の違いが分からず、デフォルトのまま使い続けている」

そんな悩みを持つインフラエンジニアやサーバー管理者は多い。量子化の仕組みを知らないままモデルを選ぶと、VRAMをオーバーして起動失敗になるか、逆に精度が低すぎて業務に使えない回答が返ってくる。Ollamaを使いこなすうえで、量子化レベルの選定は避けて通れないポイントだ。

この記事では、Ollamaで使える量子化フォーマット(fp16・q8_0・q4_0・q4_K_M)の仕組みと、VRAM容量別の最適な選び方を手順付きで解説する。

この記事のポイント

・ollama pullのタグにサフィックスを付けるだけで量子化レベルを選択できる
・fp16→q8_0→q4_0の順にVRAMは半減するが回答精度も段階的に低下する
・q4_K_Mはq4_0より精度が高くq8_0より軽量な、VRAM節約と品質のバランス型
・nvidia-smiとollama psでVRAM使用量を実測してから量子化レベルを決める


Ollamaの量子化モデルを選ぶ方法|VRAM容量に合わせたq4_0・q8_0・q4_K_Mの最適設定ガイド

「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

なぜ量子化モデルを正しく選ぶ必要があるのか

量子化(Quantization)とは、LLMの重みパラメータを低ビット数で表現することでファイルサイズとVRAM使用量を削減する技術だ。Mistralの7Bモデルをfp16で保存すると約14GB必要だが、q4_0に量子化すると約4GBに圧縮できる。

量子化レベルを考慮せずにモデルを起動しようとすると、「model requires 14GiB but only 8GiB available」といったOOMエラーが発生する。OllamaはVRAMの空き容量を確認し、不足していれば起動を拒否する。

なお、Ollamaのセットアップ自体がまだの場合は、Ubuntu ServerでローカルLLMを構築する方法|Ollamaで機密データを外に出さず業務AIを動かす完全ガイドを参照してほしい。

量子化フォーマットの仕組みを理解する:fp16・q8_0・q4_0・q4_K_Mの違い

Ollamaのモデルタグ末尾(例: `llama3.3:70b-instruct-q4_0` の `-q4_0` 部分)で量子化レベルを指定する。主要なフォーマットの特徴を整理する。

fp16(16ビット浮動小数点): 1パラメータあたり2バイト。元の精度に最も近く、VRAMを最も消費する。実験・研究用途向き。
q8_0(8ビット量子化): 1パラメータあたり約1バイト。fp16比でVRAMが約半分。精度低下はほぼ体感できない水準で、VRAMに余裕があればこれを選ぶ。
q4_0(4ビット量子化): 1パラメータあたり約0.5バイト。fp16比でVRAMが約1/4。速度は最速だが、複雑な論理推論や日本語の細かいニュアンスで精度低下が出やすい。
q4_K_M(4ビット混合精度K量子化): 重要なレイヤーを5~6ビット相当の精度で保ちつつ、全体平均を4ビット相当に収める。q4_0より高精度でq8_0より軽量な、バランス型の定番フォーマット。

VRAMの目安計算式は「パラメータ数(B)× ビット数(バイト)× 1.2(オーバーヘッド係数)」だ。

タグなしで `ollama pull llama3.3` を実行するとq4_K_M相当が取得される。量子化レベルを明示したい場合は `-q4_0` や `-q8_0` をサフィックスとして付与する。

Ollamaで量子化タグを指定してモデルを取得する手順

量子化レベルを指定してモデルを取得するには、pullコマンドにタグを付与するだけだ。手順を順に確認する。

1. 取得済みモデルと量子化タグを確認する

`ollama list` で取得済みモデルの一覧と各モデルのサイズを確認できる。

# 取得済みモデルの一覧を確認する $ ollama list NAME ID SIZE MODIFIED llama3.3:70b-instruct-q4_K_M a6eb4748fd29 43 GB 2 days ago mistral:7b-instruct-q4_0 f974a74358d6 4.1 GB 5 days ago phi4:14b-instruct-q4_0 3b63a0024fb1 8.9 GB 1 week ago

2. 量子化タグを指定してpullする

量子化レベルをタグで明示して取得する。

# q4_0で取得(VRAM最小・速度最優先) $ ollama pull llama3.3:70b-instruct-q4_0 pulling manifest ... pulling 966de95ca8a6... 100% ▕████████████████████████▏ 38 GB success # q8_0で取得(精度優先) $ ollama pull mistral:7b-instruct-q8_0 pulling manifest ... pulling 5b7c4fb0dfe2... 100% ▕████████████████████████▏ 7.7 GB success

3. 取得後に動作確認する

モデルを取得したらワンラインプロンプトで動作とGPU推論の状態を確認する。

# 動作確認(1行プロンプトで即時レスポンスを確認) $ ollama run mistral:7b-instruct-q4_0 "Linuxのファイルシステムを一言で説明してください" Linuxのファイルシステムとは、ディスク上のデータを階層的なディレクトリ構造で管理する仕組みです。 # 起動後にGPU推論できているか確認する $ ollama ps NAME ID SIZE PROCESSOR UNTIL mistral:7b-instruct-q4_0 f974a74358d6 4.3 GB 100% GPU 4 minutes from now

`PROCESSOR` が `100% GPU` になっていれば正常にGPU推論できている。`100% CPU` の場合はVRAMが不足してCPUオフロードが発生しており、応答速度が大幅に低下する。

VRAM使用量をコマンドで確認する方法

計算値よりも実測値で確認することが重要だ。モデルのアーキテクチャによって実際のVRAM使用量は異なる。

1. nvidia-smiでリアルタイム監視する

# 1秒ごとに更新表示(Ctrl+Cで終了) $ watch -n 1 nvidia-smi # GPU名・VRAM使用量・合計VRAM・使用率のみ絞り込んで表示 $ nvidia-smi \ --query-gpu=name,memory.used,memory.total,utilization.gpu \ --format=csv,noheader,nounits NVIDIA GeForce RTX 3090, 4352, 24576, 23 # 解読: 使用中 4,352MB / 合計 24,576MB(24GB) / GPU使用率 23%

2. ollama psで現在ロード中のモデルを確認する

# ロード中モデルのVRAM使用量を確認する $ ollama ps NAME ID SIZE PROCESSOR UNTIL llama3.3:70b-instruct-q4_0 a6eb4748fd29 41 GB 100% GPU 4 minutes from now mistral:7b-instruct-q4_0 f974a74358d6 4.3 GB 100% GPU 2 minutes from now

`SIZE` 列が各モデルのVRAM使用量だ。複数モデルを同時にロードする場合は合計値を物理VRAM内に収めること。

VRAM容量別モデル選定の目安一覧

GPUのVRAM容量ごとの目安を整理した。モデルのアーキテクチャによって前後するため `ollama ps` で実測値を必ず確認すること。

VRAM 6~8GB(RTX 3060・RTX 4060 Ti等)
・Mistral:7b-instruct-q4_0(約4GB)~ 動作可
・Mistral:7b-instruct-q8_0(約8GB)~ 8GB環境でギリギリ動作可
・Gemma 3:9b-instruct-q4_0(約6GB)~ 動作可

VRAM 16GB(RTX 3080・RTX 4080・A10等)
・Phi-4:14b-instruct-q4_0(約9GB)~ 動作可
・Phi-4:14b-instruct-q8_0(約15GB)~ ギリギリ動作可、精度は良好

VRAM 24GB(RTX 3090・RTX 4090・RTX A5000等)
・Phi-4:14b-instruct-q8_0(約15GB)~ 動作可
・Gemma 3:27b-instruct-q4_0(約17GB)~ 動作可
・Gemma 3:27b-instruct-q8_0(約29GB)~ 超過のためNG

VRAM 48GB以上(A40・RTX 6000 Ada・A100 40GB等)
・Llama3.3:70b-instruct-q4_0(約40GB)~ 動作可
・Llama3.3:70b-instruct-q8_0(約70GB)~ 48GBでは超過のためNG

モデルの選定自体についてはローカルLLMのモデルを比較する方法|Llama3.3・Mistral・Gemma・Phi-4をUbuntuで使い分けるポイントを参照してほしい。

量子化レベルを切り替えて速度・精度を実測する手順

同一プロンプトで量子化レベルごとの速度を比較して最終判断する。

1. 推論速度(tokens/s)をAPIで測定する

OllamaのREST APIはレスポンスに `eval_count`(生成トークン数)と `eval_duration`(推論時間・ナノ秒)を含む(`jq` は `sudo apt install jq` で追加)。

# q4_0モデルの推論速度を測定する $ RESOBJ=$(curl -s http://localhost:11434/api/generate \ -d '{"model":"phi4:14b-instruct-q4_0","prompt":"Linuxのプロセス管理について200文字で説明してください","stream":false}') $ echo "$RESOBJ" | jq '{tokens_per_s:(.eval_count/(.eval_duration/1e9))}' {"tokens_per_s": 24.7}

`tokens_per_s` がレスポンス速度の指標だ。GPU推論では10~30 tokens/s程度が実用的な範囲となる。同じプロンプトをq8_0でも実行して比較し、速度と精度のバランスで量子化レベルを最終判断する。

量子化に関するよくあるトラブルと対処法

1. 「model requires Xib, only Xib VRAM available」が出る

VRAMが不足している。対処法は2つだ。
・より低い量子化レベル(例: q8_0→q4_0)のタグを指定してpullし直す
・パラメータ数の小さいモデル(例: 70B→14B)に変更する

CPUオフロードは速度が1~3 tokens/s程度まで落ちるため本番環境では非実用的だ。この点に注意が必要で、量子化レベルかモデルサイズでの対処が正しい手順だ。

2. pullが途中で止まってモデルが起動できない

ダウンロードが中断されるとモデルファイルが不完全な状態になり、次回起動時に「error loading model: unexpected EOF」などのエラーが出る。モデルを削除して取得し直す。

# 不完全なモデルを削除する $ ollama rm phi4:14b-instruct-q4_0 deleted 'phi4:14b-instruct-q4_0' # 取得し直す $ ollama pull phi4:14b-instruct-q4_0 pulling manifest ... pulling c0669888d58e... 100% ▕████████████████████████▏ 8.9 GB success

ダウンロード中断は大容量モデル(30GB以上)で起きやすい。ネットワークが不安定な環境では `tmux` や `screen` 内でpullすると安全だ。

3. 回答精度が低く業務に使えないと感じた

現在q4_0を使っている場合は、まずq4_K_Mに切り替える。VRAMの増加は数GB程度で精度は大幅に改善することが多い。それでも不十分な場合はq8_0を試す。量子化を上げる前に、社内でChatGPTが使えないときの代替手段|機密データを守るローカルLLMという選択肢で用途の適性を確認してからでも遅くない。

本記事のまとめ

確認・操作したいこと コマンド
量子化タグを指定してモデル取得 ollama pull llama3.3:70b-instruct-q4_0
取得済みモデルの一覧確認 ollama list
VRAMリアルタイム監視 watch -n 1 nvidia-smi
起動中モデルのVRAM使用量確認 ollama ps
推論速度(tokens/s)の測定 curl http://localhost:11434/api/generate -d '{...}' | jq '.eval_count/(.eval_duration/1e9)'
量子化の選択は「節約か精度か」だけの問題ではない。VRAMに対して適切なサイズのモデルをGPU推論で動かすことが、ローカルLLMの性能を最大限に引き出す前提条件だ。

量子化設定とVRAM管理を実機GPUで体験する

Ollamaの量子化レベル比較とVRAMチューニングを実機GPU環境で手を動かしながら習得したい方向けに、「ローカルAIマスターセミナー」を開催しています。
少人数(最大8名)ZOOMハンズオン形式で実施しています。

>> ローカルAIマスターセミナーの詳細を確認する
ローカルLLMの構築・運用に関する関連記事もあわせて参考にしてください。

Ubuntu ServerでローカルLLMを構築する方法|Ollamaで機密データを外に出さず業務AIを動かす完全ガイド
社内でChatGPTが使えないときの代替手段|機密データを守るローカルLLMという選択肢
ローカルLLMのモデルを比較する方法|Llama3.3・Mistral・Gemma・Phi-4をUbuntuで使い分けるポイント

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として20年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。