Ollamaで発生するマルチモデル実行時のメモリエラー
Ollamaを使用中にマルチモデル実行時のメモリエラーに遭遇することがあります。本記事では、原因の特定から解決までを順を追って解説します。
エラーの症状
複数のOllamaモデルを同時に実行しようとした際、2つ目以降のモデルでCUDA OOMエラーやシステムメモリ不足が発生します。
原因
1. GPUメモリの競合
各モデルがVRAMを占有するため、2つ目のモデルをロードする空きがなくなります。7Bモデルでも4〜6GB程度のVRAMが必要です。
2. モデルのメモリ常駐
Ollamaはパフォーマンスのためにモデルをメモリに保持します。デフォルトでは5分間アンロードされません。
3. 量子化レベルの選択ミス
Q8やFP16などの高精度モデルはメモリ消費が大きく、同時実行に向きません。
解決方法
手順1: モデルの保持時間を短縮する
# 環境変数でキープアライブ時間を設定
OLLAMA_KEEP_ALIVE=30s ollama serve
# またはAPIで個別に設定
curl http://localhost:11434/api/generate -d '{
"model": "llama3.1:8b",
"prompt": "hello",
"keep_alive": "30s"
}'
手順2: 量子化モデルを使用する
# Q4_K_Mなど軽量な量子化を選択
ollama pull llama3.1:8b-instruct-q4_K_M
# モデルサイズを確認
ollama list
手順3: GPUレイヤー数を制限する
# Modelfileでnum_gpuを設定
FROM llama3.1:8b
PARAMETER num_gpu 20 # 全レイヤーではなく一部のみGPUに載せる
手順4: OLLAMA_NUM_PARALLELを設定する
# 並列リクエスト数を制限
OLLAMA_NUM_PARALLEL=2 ollama serve
まとめ
Ollamaのマルチモデル実行時のメモリエラーは、環境設定やバージョンの不整合が主な原因です。上記の手順で解決できない場合は、公式リポジトリのIssuesを確認してください。
☁️ ローカル環境のトラブルを回避するなら
環境構築やGPUの問題に悩まされない、クラウドGPUという選択肢:
※ 上記はアフィリエイトリンクです。サイト運営のサポートになります。
💡 この問題を根本的に解決するには
ローカル環境のGPUトラブルが頻発する場合、ハードウェアの見直しも検討してみてください:
- VRAM不足なら → RTX 4070 Ti Super(16GB VRAM)
- メモリ不足なら → DDR5 64GBメモリ
- AI開発を体系的に学ぶなら → AI・機械学習の実践書籍