Ollama·LM Studio·llama.cpp 실행기 VRAM·RAM 실측
요약: Ollama·LM Studio·llama.cpp의 VRAM·RAM 차이는 대부분 엔진이 아니라 '기본값'에서 나온다 — 결정적 사실 하나는 셋 다 같은 추론 엔진(llama.cpp)을 쓴다는 것이고, 그래서 같은 GGUF·같은 양자화·같은 문맥이면 모델+KV 캐시 용량은 거의 같으며, 실제 차이는 딱 셋(기본 문맥창 num_ctx·모델 상주 keep_alive·래퍼 오버헤드)이라 예컨대 LM Studio는 Electron GUI 때문에 idle에도 측정상 VRAM 3.1GB를 먹어 Ollama(약 1.9GB)보다 1.2GB 더 쓴다.
Ollama·LM Studio·llama.cpp의 VRAM·RAM 차이는 대부분 엔진이 아니라 '기본값'에서 나온다 — 결정적 사실 하나는 셋 다 같은 추론 엔진(llama.cpp)을 쓴다는 것이고, 그래서 같은 GGUF·같은 양자화·같은 문맥이면 모델+KV 캐시 용량은 거의 같으며, 실제 차이는 딱 셋(기본 문맥창 num_ctx·모델 상주 keep_alive·래퍼 오버헤드)이라 예컨대 LM Studio는 Electron GUI 때문에 idle에도 측정상 VRAM 3.1GB를 먹어 Ollama(약 1.9GB)보다 1.2GB 더 쓴다.
쉽게 말하면: 세 실행기는 같은 엔진을 얹은 세 대의 차다. 엔진(연비)은 같은데, 기본 시트 수(문맥창)·공회전 시간(상주)·차체 무게(GUI 오버헤드)가 달라 실사용 연료(메모리)가 갈린다. "왜 VRAM이 이렇게 차지?"의 답은 대개 모델이 아니라 실행기 설정이다.
세 실행기는 뭐가 다른가?#
편의성과 오버헤드의 트레이드다. llama.cpp는 맨 엔진이라 오버헤드가 가장 낮고 모든 노브를 직접 쥔다(속도도 측정상 77.0 tok/s로 최고). Ollama는 얇은 래퍼로 RAM 약 100MB·idle VRAM 약 1.9GB를 더 쓰고 자동 오프로드가 편하다(약 69.1 tok/s, 10%가량 느림). LM Studio는 GUI라 RAM 약 500MB·idle VRAM 3.1GB로 가장 무겁지만 슬라이더로 쉽다(76.8 tok/s). 즉 최소·예측가능은 llama.cpp, 편의는 Ollama, GUI는 LM Studio다. 아래 그림이 '같은 엔진, 다른 옷' 구조다.
| 항목 | llama.cpp | Ollama | LM Studio |
|---|---|---|---|
| idle 오버헤드 | 최저(맨 엔진) | ~100MB RAM·~1.9GB VRAM | ~500MB RAM·3.1GB VRAM |
| 기본 문맥 | 직접 n_ctx | 소형(2~4K)→VRAM 스케일 | 모델 최대(8~32K) |
| 상주(TTL) | 프로세스 종료까지 | 5분 기본·keep_alive | Idle TTL·Auto-Evict |
| GPU 오프로드 | -ngl 플래그 | num_gpu CLI | 슬라이더 |
기본 문맥창이 왜 메모리를 좌우하나?#
문맥창이 KV 캐시 크기를 정하기 때문이다. 같은 모델이라도 문맥을 키우면 KV 캐시가 선형으로 커진다 — 13B에 32K 문맥이면 약 8GB가 추가된다. 아래 그림이 문맥→KV 캐시 선형 증가다.
Ollama는 역사적으로 기본 문맥이 작아(2K~4K) '대화를 잊는' 오해를 부르지만, 최근엔 VRAM에 따라 자동 스케일한다(24GB 미만 4k, 24~48GB 32k, 48GB+ 256k). LM Studio는 모델 최대치로 캡하고(8~32K) 슬라이딩 윈도우가 없다. llama.cpp는 n_ctx를 직접 준다. 그래서 문맥을 무심코 키우면 깔끔히 들어가던 모델이 VRAM에서 넘쳐 스필한다 — 문맥부터 확인하라(Ollama는 ollama ps로 오프로드 확인).
왜 idle인데 VRAM이 차 있나?#
모델 상주(keep_alive)와 래퍼 오버헤드 때문이다. Ollama는 모델을 기본 5분간 메모리에 유지해(웜 재사용) idle에도 VRAM이 차 있다 — OLLAMA_KEEP_ALIVE로 조절하고, 두 개를 동시에 물리면 RAM도 두 배다. LM Studio는 Idle TTL·Auto-Evict로 내리고, llama.cpp 서버는 프로세스가 죽을 때까지 문다. 여기에 GUI 오버헤드가 더해져 LM Studio의 idle VRAM이 가장 높다(3.1GB). 아래가 idle VRAM 비교와 상주 정책이다.
즉 "노는데 왜 VRAM이 안 비지?"의 답은 상주 정책 + 래퍼이지 모델 크기가 아니다.
그래서 뭘 고르나?#
핵심은 목적에 기본값을 맞추는 것이다.
- 최소·서버·재현성: llama.cpp 직접(n_ctx·-ngl 수동, 오버헤드 최저). 스크립트·프로덕션에 적합.
- 편의·자동: Ollama(자동 오프로드·keep_alive). 단 기본 문맥·5분 상주를 인지하고 필요시 조절.
- GUI·탐색: LM Studio(슬라이더·MLX). idle VRAM 3.1GB는 감수. 정확한 값은 내 GPU·모델·버전으로 직접 재라.
함께 읽기: 로컬 오픈 LLM VRAM·RAM 요구량, 직접 계산·실측, 노트북에서 돌리는 AI 모델 VRAM·RAM 요구량 실측
참고 링크
- llama.cpp(공통 추론 엔진)
- Ollama(래퍼·자동 오프로드)
- lms(LM Studio CLI·모델 로드/TTL)
- llama-cpp-python(n_ctx 프로그램 제어)
- MLX(애플 실리콘 백엔드)
참고: GB·tok/s 수치는 2026년 공개 측정 기준이며 상당수가 단일 하드웨어 벤치라 방향값이다(영구 수치 아님). 실행기 기본값(특히 Ollama 문맥 자동 스케일)은 버전마다 바뀌니 구성 전 최신 문서를 확인하고, 정확한 메모리는 내 GPU·모델·양자화·문맥으로 직접 재라(여기 수치는 출발점). 실행기·모델은 빠르게 바뀌니 분기별로 다시 본다.
Responses
No responses yet. Be the first to respond.