GPUオフロード・CPUオフロードとは? VRAM不足時の使い分け

目次
ローカルLLMがGPUのVRAMに収まらない場合でも、すぐにGPU交換が必要とは限らない。実行環境によってはモデルの一部だけをGPUへ置き、残りをCPUとシステムRAMで処理するpartial offloadを利用できる。
ただし、オフロードはVRAMを増やす仕組みではない。GPUだけで処理していた部分をCPUやRAMへ移すため、起動できる範囲は広がっても、速度や応答性は別に確認する必要がある。
オフロードはモデルの配置先を変える
ローカルLLMでは、モデルの重みや処理をどのデバイスへ置くかで実行条件が変わる。
大まかには次の3つの状態がある。
- 全量GPU配置 — 対応するモデル部分をGPU側へ置く
- partial offload — 一部をGPU、残りをCPUとRAMへ置く
- CPU中心の実行 — GPUを使わない、または限定的に使う
「モデルが起動した」という事実だけでは、どの配置になっているか分からない。GPU使用量、RAM使用量、ランタイムの配置表示やログを合わせて見る必要がある。
特にpartial offloadでは、GPUに収まらない分をシステムRAMへ置けても、CPU計算やデバイス間のデータ転送が増える。RAM容量が大きいだけでGPU内に収めた構成と同じ速度になるわけではない。
まずコンテキストを必要な長さまで下げる
VRAM不足がコンテキスト長によって起きている場合、モデルそのものを変えなくても設定を小さくするだけで改善できることがある。
KVキャッシュはコンテキスト長に応じてメモリを使うため、128Kや256Kの最大値を設定していても、実際の用途で32Kしか必要ないなら余分なメモリを使う理由はない。
まず普段の作業に必要な長さへ戻し、それでも収まらないかを見るのが最初の確認になる。
次に量子化とモデルサイズを見直す
同じモデルに複数のGGUF量子化がある場合は、より小さな配布物を選ぶことで実行条件を軽くできる可能性がある。
ただし、量子化名だけで必要VRAMを固定することはできない。配布ファイルの大きさと実行時メモリは別なので、使う量子化を決めたうえで実際の配置を確認する必要がある。
それでもモデルが大きすぎる場合は、用途を満たす範囲で一段小さなモデルを選ぶ方法もある。大きなモデルを強くオフロードするより、小さなモデルをGPU中心で動かした方が使いやすい場合もあるためだ。
量子化を選ぶ段階では、GGUFモデルをダウンロードする前に確認したい5項目も確認できる。
それでも足りなければpartial offloadを使う
コンテキスト、量子化、モデルサイズを決めた後でもVRAMが足りない場合に、partial offloadが候補になる。
LM StudioにはモデルごとのGPU offload設定があり、GPUへ載せる割合やコンテキストなどを調整できる。設定項目や利用できる範囲はモデル、ランタイム、アプリのバージョンによって変わる。
llama.cppではGPUへ載せる層数を--n-gpu-layersまたは--gpu-layersで指定できる。
llama-cli -m model.gguf --n-gpu-layers N
層数を減らせばGPU側のメモリ使用量を抑えられる場合があるが、その分CPUとRAM側へ残る処理が増える。
LM Studioのスライダーとllama.cppの層数は、同じ数値を入れれば同じ配置になるという関係ではない。実際の配置表示やログで確認する必要がある。
起動できることと快適に使えることは別
オフロードでモデルを起動できても、それだけで実用的とは限らない。
確認したいのは次の点だ。
- GPUへどこまで配置されたか
- システムRAMをどの程度使っているか
- コンテキスト長はいくつか
- 最初の応答までの待ち時間
- 生成中の速度
- 長い入力や連続利用でも安定するか
オフロードによる速度低下を「○%」のような固定値で表すことはできない。モデル、量子化、CPU、GPU、メモリ、ランタイム、コンテキストで条件が変わるからだ。
比較するときは一度に複数の設定を変えず、同じ入力で一つずつ変更した方が原因を追いやすい。
GPUを買い替えるべき場合
partial offloadを使えば起動するものの、普段必要なコンテキストや応答速度を満たせないなら、より大きなVRAMを持つGPUや別のPC構成を検討する理由が出てくる。
反対に、短い質問をたまに使う程度でCPUオフロードの速度でも問題ないなら、買い替えずに使い続ける選択もできる。
判断基準は「起動したか」ではなく、必要なモデル・コンテキスト・待ち時間を満たすかだ。GPU容量を比較する段階では、ローカルAI向けGPUは16GB・24GB・32GBのどれを選ぶ?へ進むと整理しやすい。
まとめ
- オフロードはモデルの一部をGPU以外へ置き、VRAM不足時の実行余地を広げる方法
- CPUやシステムRAMを使うため、全量GPU配置と同じ速度になるとは限らない
- まずコンテキスト、量子化、モデルサイズを見直し、それでも必要な場合にpartial offloadを試す
- LM Studioとllama.cppでは設定方法が異なるため、配置表示やログで実際の状態を確認する
公式サイトで次に進む
この記事で明示的に扱うソフトだけを表示します。配布・手順は各公式ページで確認してください。
LM Studio
llama.cpp
local-gen.jpがファイルを配布するものではなく、互換性を保証するものでもありません。
この記事で扱ったデータ
モデル・GPU・実行ソフトの確認済みデータを、記事とは別に確かめられます。