
ローカルLLMではVRAMだけでなくRAM容量も重要だった
- 日本語
- ローカルLLM
- VRAM
- RAM
- RX 9060 XT
- Fedora
#はじめに
ローカルLLMを使い始めるまで、自分はGPUのVRAM容量ばかり気にしていた。
ゲームでもAIでも、
VRAMが多い方が大きなモデルを動かせる
というイメージが強かったからだ。
実際、16GB VRAMで27Bクラスを動かせるか考えると、VRAMの重要性はかなり大きい。
しかし、GPUへモデル全体が収まらない場合はシステムRAMも使える。
そこで初めて、メインPCの32GB RAMもローカルLLM環境の一部として考えるようになった。
#現在はVRAM 16GB + RAM 32GB
自宅PCは、
GPU VRAM 16GB システムRAM 32GB zram 8GB
という構成。
普段の開発では32GBで大きく困っていない。
しかしローカルLLMを動かしながら、
- Chrome
- Neovim
- Docker
- 開発サーバー
- ターミナル
- AI関連ツール
を同時に使うと、モデルへ自由に使える32GBではない。
OSと普段のアプリの分を残す必要がある。
#GPUへ収まらない部分をRAMへ置ける
モデル全体がVRAMへ入らない場合、一部の処理や重みをCPU側へ逃がせるランタイムがある。
そうすると、
モデル ├─ GPU VRAMへ置く部分 └─ システムRAMへ置く部分
という構成になる。
これによって、VRAM容量より大きなモデルを実行できる。
ローカルLLMを試すうえではかなり便利な仕組みだ。
#RAMを増やしてもGPUが速くなるわけではない
ここで勘違いしやすいのが、
RAMを64GBへ増やせば27Bが高速になる
という考え方だった。
RAM容量を増やすと、保持できるモデルやデータは増える。
しかし、GPU専用メモリとシステムRAMでは帯域やアクセス方法が違う。
モデルの一部がCPU側に残れば、その分だけGPUだけで完結する推論より遅くなる可能性がある。
つまり、
RAM容量を増やす ↓ より大きなモデルが「入る」 必ずしも ↓ より速くなる
ではない。
容量と速度は分けて考える必要がある。
#それでも64GB以上は魅力的
速度がそのまま上がらなくても、RAMを増やす意味はある。
現在32GBなので、OSや開発環境を動かした状態で大きなモデルをオフロードすると余裕が少ない。
64GB以上あれば、
- モデルをRAMへオフロードする
- Dockerを動かす
- Chromeを多数開く
- IDEやNeovimを使う
といった作業を同時に行いやすくなる。
自分のPCはローカルLLM専用機ではなく、普段の開発マシンでもある。
だからこそ余裕のあるRAM容量が欲しくなる。
#ただし今はRAM増設を急いでいない
RAMスロットには増設余地がある。
そのため、ローカルLLM目的で増設すること自体は可能だ。
ただ、最近はメモリ価格も気になっており、今すぐ増設するほど困っているわけではない。
gpt-oss-20bは現在の16GB VRAMで使えている。
まずはこの環境で、
本当にもっと大きなモデルを日常的に使いたいのか
を確認した方が良い。
必要性がはっきりする前にハードウェアだけ増やしても、使わなくなる可能性がある。
#zramは物理RAMの代わりではない
Fedoraではzramも使っている。
自分の環境では8GB。
ただし、これは物理メモリが8GB増えたという意味ではない。
zramはRAM上へ圧縮したスワップ領域を作る仕組みなので、メモリ不足時の助けにはなるが、大きなLLMを置くための専用RAMとして考えるものではない。
ローカルLLM用の容量を考えるときは、まず物理RAMを基準にした方が分かりやすい。
#専用機なら考え方が変わる
メインPCでは、LLM以外のアプリへRAMを残す必要がある。
一方、ローカルAI専用マシンなら大量のメモリをほぼAIへ使える。
この違いを考えると、
メインPCをどこまで強化するか
と、
AI用の専用機を用意するか
は別の判断になる。
この疑問は最終的に大きなローカルLLMのために専用AIマシンが必要か考えたところまで進んだ。
#まとめ
ローカルLLMを使い始めて、VRAMだけでなくシステムRAMも重要だと分かった。
自分の現在地は、
RX 9060 XT VRAM 16GB + RAM 32GB
なので、20B前後のモデルを扱うには使いやすい。
27B以上を積極的に試すならRAM増設は魅力的だが、容量を増やしてもGPU推論そのものが高速になるとは限らない。
まず現在の環境を使い込み、本当により大きなモデルが必要になってから増設を考えることにした。