RAM requirements
概要
RAM requirements
(メモリ要件)は、ローカルLLM運用において適切なシステムメモリ容量を決定する重要な指標です。モデルサイズ、量子化
レベル、同時処理数に応じて、必要なRAM容量が大きく変動します。
特に大規模モデルや複数モデル同時実行では、VRAM
と合わせたメモリ設計が性能に直結します。
基本的なメモリ要件
モデルサイズ別推奨RAM
- 7B モデル: 16-32GB RAM推奨
- 13B モデル: 32-64GB RAM推奨
- 30B モデル: 64-128GB RAM推奨
- 70B モデル: 128GB+ RAM推奨
精度別メモリ使用量
- FP32: 4 bytes/parameter
- FP16: 2 bytes/parameter
- INT8: 1 byte/parameter
- INT4: 0.5 bytes/parameter
実用的なメモリ計算
Llama 2 7B の例
# Llama 2 7B メモリ使用量計算
パラメータ数: 7B (7,000,000,000)
# 精度別メモリ使用量
FP32: 7B × 4 bytes = 28GB
FP16: 7B × 2 bytes = 14GB
INT8: 7B × 1 byte = 7GB
INT4: 7B × 0.5 bytes = 3.5GB
# 実際の推奨システムRAM(オーバーヘッド込み)
FP16実行: 32GB RAM推奨
INT8実行: 16GB RAM推奨
INT4実行: 16GB RAM推奨
Llama 2 70B の例
# Llama 2 70B メモリ使用量計算
パラメータ数: 70B (70,000,000,000)
# 精度別メモリ使用量
FP32: 70B × 4 bytes = 280GB
FP16: 70B × 2 bytes = 140GB
INT8: 70B × 1 byte = 70GB
INT4: 70B × 0.5 bytes = 35GB
# 実際の推奨システムRAM
FP16実行: 160GB+ RAM必要
INT4実行: 64GB+ RAM推奨
システム構成別推奨
NVIDIA GPU環境
- RTX 4090 (24GB VRAM): 32-64GB RAM推奨
- RTX 4080 (16GB VRAM): 32GB RAM推奨
- RTX 3090 (24GB VRAM): 32-64GB RAM推奨
- マルチGPU: VRAM総量 + 32GB RAM
Apple Silicon環境
- M2 (8-24GB): 統合メモリのため16-24GB
- M2 Pro (16-32GB): 統合メモリ24-32GB推奨
- M2 Ultra (64-192GB): 大規模モデル対応
メモリ最適化技術
CPU-GPU オフロード
# Transformersでのメモリ最適化
from transformers import AutoModelForCausalLM
import torch
# CPU-GPU間でのメモリ分散
model = AutoModelForCausalLM.from_pretrained(
"meta-llama/Llama-2-70b-chat-hf",
device_map="auto", # 自動的にメモリ配分
max_memory={
0: "20GB", # GPU 0: 20GB使用
"cpu": "60GB" # CPU RAM: 60GB使用
}
)
# 低メモリモード
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype=torch.float16,
low_cpu_mem_usage=True,
device_map="auto"
)
量子化による最適化
- 動的量子化: 実行時にINT8変換
- 静的量子化: 事前にINT8/INT4変換
- 混合精度: 重要な層のみFP16維持
パフォーマンス vs メモリ
メモリ不足時の影響
- スワップ発生: 大幅な速度低下
- OOM (Out of Memory): 処理停止
- バッチサイズ制限: 並列度低下
- モデル分割: レイテンシ増加
メモリ監視コマンド
# システムメモリ監視
free -h # Linux: メモリ使用量確認
htop # リアルタイム監視
vm_stat # macOS: メモリ統計
# GPU メモリ監視
nvidia-smi # NVIDIA GPU
watch -n 1 nvidia-smi # 1秒間隔で更新
# Python内でのメモリ監視
import psutil
print(f"Available RAM: {psutil.virtual_memory().available // 1024**3} GB")
import torch
print(f"GPU Memory: {torch.cuda.memory_allocated() // 1024**3} GB")
実用的な構成例
エントリーレベル(予算15万円以下)
- GPU: RTX 4060 Ti 16GB
- RAM: 32GB DDR4/DDR5
- 対応モデル: 7B-13Bモデル中心
ミドルレンジ(予算30万円)
- GPU: RTX 4090 24GB
- RAM: 64GB DDR5
- 対応モデル: 70Bモデル量子化実行
ハイエンド(予算100万円+)
- GPU: RTX 4090 x2 または Mac Studio M2 Ultra
- RAM: 128-192GB
- 対応モデル: 70B+モデル高精度実行