🎓 レベル:標準 | 重要度:A(必須) 📎 前提:VRAM所要の見積もり | 原理:推論の実務(機械学習)
要点(結論先出し)
- LLM推論の速度を支配するのはメモリ帯域(毎秒どれだけ重みを読めるか)。デバイス選びは帯域と容量の綱引き。
- GPU=専用VRAMで高帯域(速い)が容量に限り。CPU+RAM=容量は大きいが帯域が細い(遅い)。Apple Silicon=統合メモリで大容量を比較的高帯域で使える(要最新確認)。
- 「載せる容量」だけでなく「読み出す速さ」で考えると、なぜCPUだけだと遅いかが腑に落ちる。
概念 ── 推論はメモリ帯域律速
LLMの1トークン生成ではモデルの重みをほぼ全部読み出す必要があります。だから速度の上限は概ね メモリ帯域 / 重みサイズ。計算力(FLOPS)より帯域が効くのがLLM推論の特徴です(要最新確認)。
- GPU(専用VRAM):帯域が高く、VRAMに載りきれば最速。ただし容量が壁。
- CPU+システムRAM:RAMは安く大容量だが帯域が細い。巨大モデルを載せられても遅い。
- Apple Silicon(統合メモリ):CPU/GPUが同じ大容量メモリを共有。大きいモデルを現実的な速度で動かせる構成が組める(要最新確認)。
仕組み ── デバイス別の置き場所
flowchart TD
W["モデルの重み"] --> D{"どこに載せるか"}
D -->|"GPU VRAM"| FAST["高帯域=速い(容量が壁)"]
D -->|"システムRAM+CPU"| SLOW["大容量=遅い(帯域が細い)"]
D -->|"統合メモリ(Apple Silicon)"| UNI["大容量かつ比較的高帯域"]
デバイス別の勘所(要最新確認)
- NVIDIA GPU:エンジン対応が最も広い(llama.cpp/vLLM等)。VRAM容量でモデル上限が決まる。
- AMD GPU:対応は広がりつつある。バックエンド(Vulkan/ROCm等)の対応状況を確認。
- Apple Silicon(M系):MLX や llama.cpp+Metal が速い。統合メモリ容量が大きいほど大モデル可(→ 推論エンジンの使い分け)。
- CPUのみ:動くが遅い。小型モデル+強い量子化+少コンテキストで実用化。
運用の勘所
- VRAMに全層載るのが理想。載らないぶんをCPUへオフロードすると、その層の分だけ遅くなる → オフロードと量子化でメモリに収める
- Apple Silicon は「VRAM」ではなく統合メモリ容量でサイジングする。考え方は同じ(重み+KV+oh)。
- 帯域の数字は世代で大きく違う。製品比較は必ず最新スペックで。
なぜそうするか
「容量が足りれば速い」と思うと、CPUに巨大モデルを載せて遅さに驚きます。速度は帯域、容量は載るか否か——2つを分けて考えると、デバイス選定もオフロード判断も一貫します。Apple Silicon が注目されるのは、この2つを統合メモリで両取りしやすいからです(要最新確認)。
⚠️ よくある落とし穴
- FLOPSで選ぶ:LLM推論は帯域律速。演算性能だけ高くても伸びない。
- CPUに全部載せて満足:載っても遅い。体感が必要なら量子化+GPUオフロード。
- 統合メモリをVRAMと別物扱い:Apple Silicon でも
重み+KV+ohの式は同じ。 - 古いベンチで判断:帯域・対応は世代依存。要最新確認。
対応lab
- メモリ計算は
local-llm-study/labs/vram_sizing.py、オフロード調整は llama.cpp の lab。
関連
- 見積もりの式 → VRAM所要の見積もり
- 収める実務 → オフロードと量子化でメモリに収める
- エンジン選び → 推論エンジンの使い分け