Ollama VRAM 부족 에러 해결법 총정리 – GPU 메모리 관리 꿀팁

 

Ollama로 로컬 LLM을 돌리다가 갑자기 GPU 메모리 부족 에러가 뜬다면? VRAM 부족(Out of Memory) 문제의 원인부터 모델별 필요 용량, 그리고 실질적인 할당량 조절 팁까지 한 번에 정리해드릴게요.

 

저도 처음 Ollama를 설치하고 신나는 마음으로 Llama 3 70B 모델을 돌려봤는데, 터미널에 빨간 글씨로 "out of memory"가 딱 뜨더라고요. 뭐가 문제인지도 모른 채 한참을 헤맸던 기억이 나요. 😅

사실 이 에러는 GPU의 VRAM이 모델을 올리기에 부족할 때 발생하는 건데요, 원인을 알고 나면 생각보다 간단하게 해결할 수 있어요. 오늘은 제가 직접 겪으면서 알게 된 VRAM 관리 노하우를 공유해볼게요!

 

테크 블루와 그레이 톤의 미니멀한 플랫 디자인으로 그려진 현대적인 아이소메트릭 GPU 그래픽 카드의 깨끗한 일러스트레이션. 카드 주위로 'AI' 뇌 아이콘과 메모리 할당 막대형 차트가 떠다니며, VRAM 칩은 발광하고 있다.

GPU VRAM, 정확히 뭔가요? 🤔

VRAM은 Video RAM의 줄임말로, 그래픽카드에 탑재된 전용 메모리예요. 일반 시스템 RAM과는 다르게 GPU가 직접 접근해서 사용하는 메모리인데요, LLM을 로컬에서 돌릴 때는 모델의 가중치(weight)가 통째로 이 VRAM 위에 올라가야 해요.

쉽게 말하면, VRAM 크기 = 내 GPU가 한 번에 올릴 수 있는 모델의 한계라고 보시면 돼요. RTX 3060이면 12GB, RTX 4090이면 24GB 정도가 기본이죠.

💡 알아두세요!
시스템 RAM이 32GB여도 GPU VRAM이 8GB라면, LLM 구동 시 기준이 되는 건 8GB예요. 두 메모리는 완전히 별개의 공간이에요.

 

OOM 에러, 왜 발생하나요? 📊

Out of Memory 에러가 발생하는 주된 원인은 크게 세 가지예요.

  1. 모델 크기 초과 — 7B, 13B, 70B 등 파라미터 수가 클수록 VRAM을 많이 먹어요. 양자화(quantization) 없이 70B 모델을 올리려면 140GB 이상이 필요하죠.
  2. 컨텍스트 길이 설정num_ctx 값이 클수록 대화 기록을 위한 VRAM 사용량이 급증해요. 기본값 2048에서 8192로 올리면 추가로 수 GB가 더 필요할 수 있어요.
  3. 다른 프로세스와의 충돌 — 브라우저, 게임, 영상 편집 등 GPU를 쓰는 다른 프로그램이 VRAM을 이미 점유하고 있는 경우예요.
⚠️ 주의하세요!
Ollama는 기본적으로 모델 전체를 GPU에 올리려고 시도해요. VRAM이 부족하면 자동으로 CPU 오프로딩을 하지만, 이 경우 추론 속도가 크게 느려질 수 있어요.

 

내 VRAM 사용량 확인하기 🔍

문제를 해결하려면 먼저 현재 상태를 파악하는 게 우선이에요. NVIDIA GPU를 쓴다면 터미널에 이 명령어 하나면 충분해요.

📝 VRAM 확인 명령어

nvidia-smi

이 명령어를 실행하면 GPU별 전체 VRAM, 현재 사용량, 남은 용량을 한눈에 볼 수 있어요. 실시간 모니터링이 필요하면 watch -n 1 nvidia-smi를 사용해보세요.

 

VRAM 부족 해결법 총정리 🛠️

자, 이제 본격적으로 해결 방법을 알아볼게요. 제가 직접 써보면서 효과를 확인한 방법들이에요.

1. 양자화(Quantization) 모델 사용하기

가장 확실한 방법이에요. Ollama에서 모델을 받을 때 양자화 버전을 선택하면 VRAM 사용량을 크게 줄일 수 있어요.

모델 (7B 기준) 양자화 VRAM 필요량 품질 영향
FP16 (원본) 없음 ~14GB 최고 품질
Q8_0 8bit ~7.5GB 거의 무손실
Q4_K_M 4bit ~4.5GB 소폭 저하
Q2_K 2bit ~3GB 눈에 띄는 저하

제 경험상 Q4_K_M이 용량 대비 품질의 균형이 제일 좋았어요. 8GB VRAM으로도 7B 모델을 충분히 돌릴 수 있어요.

2. 컨텍스트 길이(num_ctx) 줄이기

Ollama에서 Modelfile을 수정하거나 실행 시 옵션을 조절해서 컨텍스트 길이를 줄이면 VRAM을 상당히 절약할 수 있어요.

📝 컨텍스트 조절 예시

ollama run llama3 --num-ctx 2048

기본값보다 낮추면 VRAM 절약 효과가 즉시 나타나요. 단, 긴 대화나 문서 처리에는 불리할 수 있어요.

3. GPU 레이어 수 수동 조절

환경변수 OLLAMA_NUM_GPU를 설정하면 모델의 일부 레이어만 GPU에 올리고 나머지는 CPU가 처리하도록 분배할 수 있어요. 속도는 조금 느려지지만 OOM을 피할 수 있는 실용적인 방법이에요.

4. 불필요한 GPU 점유 프로세스 정리

의외로 많이 놓치는 부분인데요, 크롬 브라우저 하나만 닫아도 수백 MB의 VRAM이 확보되기도 해요. nvidia-smi로 어떤 프로세스가 VRAM을 쓰고 있는지 확인한 뒤 불필요한 것들을 종료해주세요.

📌 알아두세요!
모니터를 GPU에 연결한 상태라면 디스플레이 출력에만 수백 MB의 VRAM이 할당돼요. 여유가 된다면 내장 그래픽으로 디스플레이를 연결하고, 외장 GPU는 LLM 전용으로 쓰는 것도 방법이에요.

 

GPU별 추천 모델 가이드 💻

내 GPU VRAM에 맞는 모델을 선택하는 것도 중요해요. 대략적인 가이드라인을 표로 정리해봤어요.

VRAM 대표 GPU 추천 모델 (Q4 기준)
6GB RTX 2060, RTX 4060 3B~7B (Q4_K_M)
8~12GB RTX 3060 12GB, RTX 4070 7B~13B (Q4_K_M)
16~24GB RTX 4080, RTX 4090 13B~30B (Q4_K_M)
48GB+ A6000, 듀얼 GPU 70B (Q4_K_M)

 

마무리: 핵심 내용 요약 📝

정리하자면, VRAM 부족 문제는 대부분 모델 크기와 설정값의 불일치에서 비롯돼요.

  1. 양자화 모델 사용: Q4_K_M 양자화로 VRAM 사용량을 절반 이하로 줄일 수 있어요.
  2. 컨텍스트 길이 조절: num_ctx를 필요에 맞게 낮추면 즉각적인 효과를 볼 수 있어요.
  3. GPU 레이어 분배: 일부 레이어를 CPU로 넘기면 큰 모델도 구동 가능해요.
  4. 환경 정리: nvidia-smi로 현황 파악 후 불필요한 GPU 프로세스를 정리하세요.

로컬 LLM의 세계는 처음엔 좀 헤맬 수 있지만, 한번 세팅을 잡아놓으면 정말 편리하더라고요. 궁금한 점이나 본인 GPU 환경에서의 경험이 있다면 댓글로 공유해주세요~ 😊

🧠

VRAM 부족 해결 핵심 요약

🔧 양자화 활용: Q4_K_M으로 VRAM 사용량 50% 이상 절감
📏 컨텍스트 조절: num_ctx 값을 낮춰 수 GB 즉시 절약
⚙️ 레이어 분배:
OLLAMA_NUM_GPU 환경변수로 GPU/CPU 부하 분산
🔍 환경 점검: nvidia-smi로 실시간 VRAM 모니터링

자주 묻는 질문 ❓

Q: Ollama에서 OOM 에러가 나면 모델이 아예 안 돌아가나요?
A: Ollama 최신 버전에서는 VRAM이 부족하면 자동으로 일부 레이어를 CPU로 오프로딩해요. 완전히 멈추진 않지만, 추론 속도가 상당히 느려질 수 있어요.
Q: 양자화하면 AI 응답 품질이 많이 떨어지나요?
A: Q4_K_M 수준까지는 일반적인 대화나 코딩 작업에서 체감하기 어려운 수준이에요. Q2_K부터는 복잡한 추론에서 차이가 느껴질 수 있어요.
Q: AMD GPU로도 Ollama를 사용할 수 있나요?
A: 네, Ollama는 AMD ROCm을 지원해요. 다만 NVIDIA CUDA에 비해 호환 GPU 범위가 제한적이고, 일부 최적화가 덜 되어 있을 수 있어요.
Q: 시스템 RAM을 VRAM 대용으로 쓸 수 있나요?
A: CPU 오프로딩을 통해 시스템 RAM을 활용할 수 있어요. 모델은 돌아가지만 GPU 대비 추론 속도가 5~10배 느려질 수 있다는 점은 감안해야 해요.
Q: 여러 모델을 동시에 올릴 수 있나요?
A: VRAM 여유가 있다면 가능해요. 하지만 각 모델이 VRAM을 독립적으로 점유하기 때문에, 동시 로딩 시에는 총 필요량을 반드시 계산해봐야 해요.