VRAM
概要
VRAM
(Video Random Access Memory)は、GPU(Graphics Processing Unit)に搭載された専用メモリのことです。ローカルLLM(大規模言語モデル)の運用において、最も重要なハードウェア要素の一つです。
VRAMの容量により、読み込み可能なAIモデルのサイズが決まり、処理速度や実行可能なバッチサイズにも直接影響します。
ローカルLLMにおける重要性
モデルサイズとVRAM要件
大規模言語モデルのパラメータ数とVRAM使用量には密接な関係があります:
精度別VRAM使用量の目安
- FP32(32bit浮動小数点): パラメータ数 × 4 bytes
- FP16(16bit浮動小数点): パラメータ数 × 2 bytes
- INT8(8bit整数): パラメータ数 × 1 byte
- INT4(4bit整数): パラメータ数 × 0.5 bytes
実用的なモデル例
- 7Bモデル(Llama 2 7B)
- FP16: 約14GB
- INT8: 約7GB
- INT4: 約3.5GB
- 13Bモデル(Llama 2 13B)
- FP16: 約26GB
- INT8: 約13GB
- INT4: 約6.5GB
- 30Bモデル(Code Llama 34B)
- FP16: 約68GB(複数GPU必要)
- INT8: 約34GB
- INT4: 約17GB
VRAM容量別対応可能モデル
8GB VRAM(RTX 3070、RTX 4060 Ti)
- 7Bモデル(INT8量子化)
- 3Bモデル(FP16)
- 小規模な対話モデル向け
12GB VRAM(RTX 3060、RTX 4070)
- 7Bモデル(FP16)
- 13Bモデル(INT8量子化)
- 中規模モデルでの快適な使用
16GB VRAM(RTX 4080、RTX 4070 Ti Super)
- 13Bモデル(FP16)
- 30Bモデル(INT4量子化)
- マルチモーダルモデル対応
24GB VRAM(RTX 4090、RTX 3090)
- 30Bモデル(FP16/INT8)
- 複数モデル同時実行
- ファインチューニング対応
- 高速な推論処理
VRAMメモリタイプ
GDDR6X
最新のハイエンドGPU(RTX 4090
、RTX 3090
)に搭載されています。高帯域幅でAI推論処理に最適化されており、メモリ帯域幅は1,000 GB/s以上を実現します。
GDDR6
中級〜上級グラフィックカード(RTX 4080
、RTX 4070
シリーズ)で採用されています。十分な性能を持ち、コストパフォーマンスに優れます。
統合メモリ(Apple Silicon)
Apple M2
、M2 Ultra
では、CPUとGPUがメモリを共有する統合メモリアーキテクチャを採用。効率的なメモリ使用が可能ですが、総メモリ容量に制限があります。
VRAM最適化テクニック
モデル量子化
Quantization
技術により、モデルの精度を下げてVRAM使用量を削減します。INT8やINT4量子化により、VRAM使用量を1/2〜1/4に削減可能です。
オフロード機能
モデルの一部をシステムRAMに保存し、必要に応じてVRAMに読み込む手法。処理速度は低下しますが、大規模モデルの実行が可能になります。
グラディエントチェックポイント
推論時にアクティベーションを再計算することでVRAM使用量を削減。速度とメモリのトレードオフを調整できます。
VRAMモニタリング
監視ツール
- nvidia-smi: コマンドラインでのVRAM使用状況確認
- GPU-Z: リアルタイムなGPU状況監視
- MSI Afterburner: オーバークロックとモニタリング
- PyTorch:
torch.cuda.memory_summary()
でメモリ詳細確認
実用的なコマンド例
# VRAM使用状況確認
nvidia-smi
# 継続的なモニタリング
watch -n 1 nvidia-smi
# PyTorchでのメモリ確認
import torch
print(f"VRAM使用量: {torch.cuda.memory_allocated() / 1024**3:.2f} GB")
print(f"VRAM上限: {torch.cuda.max_memory_allocated() / 1024**3:.2f} GB")