ブログに戻る

誰もRAMの話をしない。ローカルLLMの失敗はすべてRAMの問題だ

2026年9月19日

ローカルLLMのスレッドに行けば、争いはつねにGPUについてです。VRAMのベンチマーク、24GBカード、CUDA対ROCm、3060はいまだ「民衆のカード」なのか。その一方で、モデルが動くかどうかを実際に決める数字は、別のスロットに座っています。ベンチマークもマーケティングもないまま――マシンにはRAMがいくら載っているか。

VRAMは夢を売る。RAMは、モデルがそもそも起動するかを決め、起動したならコンテキストをどれだけ残せるかを決める。

この記事を書きながら、手元のマシンで検証しました。Ryzenデスクトップ、RAM 32GB、GeForce RTX 3060(VRAM 12GB)。llama3.1:8bを取得します。ダウンロードページの表記は4.9GB。実際に確保された量を見てください。

テストマシンのターミナル記録:ollama ps は llama3.1:8b がコンテキスト32,000トークンで100% GPU・7.0GBを確保したことを示し、nvidia-smi は12,288MiBのうち7,963MiBを使用、free -h はRAM 31GiBを表示

論点のすべてがこの1画面にあります。「4.9GBのモデル」は、最初のプロンプトに答える前に7.0GBを確保しました。43%のコンテキスト税です。VRAM 12,288MiBのうち7,963MiBを占有したままです。重みは一度も予算ではありませんでした。予算はコンテキストだったのです。

増えたギガバイトはどこから来るのか

llama.cppのメモリ解説は、ダウンロードページが省く算段を示しています。合計メモリ=モデルの重み+KVキャッシュ+計算バッファ。一定なのは最初の項だけです。KVキャッシュはコンテキスト長に比例して増え、計算バッファはバッチに伴って増えます。Ollamaはllama.cppを包んでいるので、同じ法則が働きます。32,000トークンのウィンドウで、ollama psが4.9GBのタグに7.0GBを報告した理由です。しかも全てVRAM上に常駐しています。

量子化されたモデルは妥協ではありません。メモリこそが本当の予算だった、という認めたくない事実の告白です。

GGUF量子化の段階表が存在する理由もここにあります。Q4は宗教ではありません。メモリの算段を、人々が実際に持つハードウェアの内側に着地させるための仕組みです。「同一構成」のはずの2台の8B環境がまるで似ていないのも同じ理由です。モデルは同じ、コンテキスト長が違い、マシンが違う。

買う前に誰も埋めない表

モデル3クラス、メモリ2種類、VRAM 12GBとRAM 32GB。数千人の開発者が実際に持っている構成です。

モデルクラス(Q4)ダウンロードロード後+32k ctxVRAM 12GB上RAM 32GB上
7〜8B(llama3.1:8b4.9GB7.0GB(実測)100% GPU、約8GiB使用ほぼ無感覚
13〜14B(qwen2.5:14b9.0GB約12GBオフロード開始余裕
27〜32B(gemma3:27b17GB約20GB以上CPUが重みを引く動く唯一の理由

最後の2行をもう一度読んでください。VRAMだけなら、現実的なコンテキストでの14Bはすでに分割オフロードの仕事で、27Bは不可能です。RAM 32GBなら、どちらも単に遅いだけです。この差――不可能と遅さの間の差――が、VRAMとRAMの実用上の差のすべてです。VRAMに収まれば速い。RAMに収まれば動く。どちらにも収まらなければ、NVMeへのスワップが始まり、時間は意味を失います。

オフロードはPCIeを通り、OllamaのFAQはコストに率直です。GPUに収まらないレイヤーはCPUで計算され、GPUの分担が減るほどスループットが落ちる、と。誰もこのトレードオフを意識して選びません。レイヤーごと、音もなく進行し、症状はただの「ローカルLLMは過大評価」になります。

正直な台帳

この記事を書いている間に壊れたもの、驚いたものを順に。

  1. 43%という数字そのもの。8Bモデルは「だいたいファイルサイズ通り」を占めると思っていました。ダウンロード4.9GBに対し7.0GBを確保。私が驚いたのなら、psの代わりにスペックシートを読む人すべてが驚くはずです。
  2. スクリーンショット作業。最初の記録は間違えたウィンドウを撮りました。2回目が成功して、それが上の画像です。証拠は雰囲気ではなく作業工程であり、pull → 記録 → ollama rmの循環がディスクを正直に保ちます。
  3. 壊れなかったもの。GPUは一度もあふれませんでした。12GBでの32kコンテキストの8Bは、本当に快適です。カードは正常。噛み合っていないのは、カードをめぐる言説のほうです。

以上はGPUが無意味だという話ではありません。記録の中の100% GPUの行こそ、生成が即時的に感じられた理由です。つまり、GPUは2番目の質問だということです。Ollamaにするかllama.cppにするかの選択は、何が収まるかを知ったに来るべきものです。

取っておくべき経験則

必要なRAM=モデルファイル+実際のコンテキストに応じたKVキャッシュ+コンピュータであり続けるための4GB。Q4の7〜8Bなら16GBで快適です。14〜32Bでは、32GBは贅沢ではなく主題そのものになります。VRAMは、使うコンテキストで欲しい速度のために買う。RAMは、これからロードするすべてのために買う。

ollama psを一度だけ見れば、スペックシートの宗教は静かに終わります。

というわけで、2つの質問です。次のマシンを組むとき、VRAMは投稿するベンチマークのために買いますか。それともRAMは、本当に動かすモデルのために買いますか。そして正直に――深夜2時に取得したモデルを、朝食前にいくつ削除しましたか。私は今日、記事の途中で削除しました。コメントで、私だけではないと教えてください。あなたのマシンはRAM/VRAMの線のどちら側に立つのかも、ぜひ。

FAQ

ローカルLLMを実行するのに必要なRAMはどれくらい?

モデルファイルのサイズ+コンテキスト+デスクトップ環境の分です。Q4の7〜8Bモデルなら16GBで快適。14〜32Bを日常道具にするには32GBが必要です。

ローカルLLMにはVRAMとRAMどちらが重要?

すべてが収まるなら速度はVRAMが決めます。そもそもモデルが動くか、コンテキストをどれだけ残せるかはRAMが決めます。その間のPCIeオフロードは、誰も好きになれない低速地帯です。

ロード済みモデルが、ダウンロードサイズより多くのメモリを使うのはなぜ?

KVキャッシュと計算バッファはコンテキスト長に伴って増えます。llama.cppのメモリ解説が算段を示します:重み+KVキャッシュ+計算バッファ。ダウンロードページにあるのは最初の数字だけです。

— mrsaynothing

— mrsaynothing

Opinions load-tested before shipping. Mostly.

dev.to でこの投稿について議論する dev.to ↗

Get the next argument by email

One email per post. Agree or tear it apart.

self-hosted · 第三者なし · ワンクリックで購読解除

これは何?

SSH Permission denied (publickey)の本当の直し方

記事を楽しんでいただけましたか?私の本業はこのような構築です。 採用のご相談