20장. 백엔드 비교와 선택 가이드
이 장의 목표 16~19장에서 배운 도구들을 한 표로 정리 합니다.
“내 상황엔 뭐가 맞지?” 질문에 30초 안에 답을 낼 수 있게 됩니다.
20.1 도구들이 같은 층이 아니다
가장 흔한 오해.
“Ollama vs llama.cpp vs LM Studio 뭐가 빠르지?”
이 질문 자체가 약간 어긋납니다.
[프레임워크 층]
- llama.cpp (GGUF 추론 엔진)
- MLX (Apple Silicon용 ML 엔진)
[런타임·매니저 층]
- Ollama ← llama.cpp 기반
- mlx-lm ← MLX 기반
[GUI/IDE 층]
- LM Studio ← GGUF + MLX 둘 다 사용
- Open WebUI ← Ollama 등에 연결
- Continue.dev ← IDE 통합 (37장)
같은 층끼리만 비교가 의미 있습니다.
20.2 한 표로 보는 비교
| 도구 | 층 | 포맷 | 인터페이스 | 추천 사용처 |
|---|---|---|---|---|
| llama.cpp | 엔진 | GGUF | CLI | 신규 모델 즉시 테스트, 서버 |
| MLX | 엔진 | MLX | Python/CLI | 맥 최대 속도 |
| Ollama | 매니저 | GGUF (+MLX preview) | CLI + API | 자동화·Agent·사내 API |
| mlx-lm | 매니저 | MLX | Python/CLI + API | MLX 자동화 |
| LM Studio | GUI | GGUF + MLX | GUI + API | 학습·비교·일상 사용 |
| Open WebUI | GUI | (백엔드 별도) | 웹 UI | ChatGPT 같은 웹앱 경험 |
20.3 속도 비교 (맥 통합 메모리 기준)
같은 32B Q4 모델 기준 대략적인 비교.
| 도구 | 속도 (M5 Pro 추정) |
|---|---|
| llama.cpp 직접 | 약 20 tok/s |
| Ollama (GGUF) | 약 18 tok/s |
| LM Studio (GGUF) | 약 18 tok/s |
| mlx-lm | 약 25 tok/s |
| LM Studio (MLX) | 약 25 tok/s |
MLX 계열이 약 20~30% 빠른 경향. 단, 갓 나온 모델은 GGUF 지원이 먼저인 경우가 많음.
20.4 결정 트리 — 처음 받을 때
지금 처음 시작하나?
├─ 예 → LM Studio + GGUF
└─ 아니오 ↓
자동화·사내 API 필요한가?
├─ 예 → Ollama
└─ 아니오 ↓
최대 속도 원하나?
├─ 예 → MLX (mlx-lm 또는 LM Studio MLX)
└─ 아니오 ↓
신규 모델 즉시 테스트?
├─ 예 → llama.cpp 직접
└─ 아니오 → Ollama (기본 추천)
20.5 상황별 추천 조합
입문자 (1~2주차)
LM Studio + GGUF Q4_K_M
- 마우스로 모든 것
- 8B → 14B → 32B 비교
- 첫 채팅·첫 코드 질문
일상 사용자 (2~4주차)
LM Studio (GUI 비교용) + Ollama (자동화·API)
- 두 도구 같이 깔아둠
- 새 모델은 LM Studio로 검색·테스트
- 자주 쓰는 건 Ollama API로 연결
개발자·코딩 어시스턴트 (37장)
Ollama + Continue.dev (VS Code 통합)
- 백그라운드 데몬으로 항상 떠있음
- IDE에서 단축키 한 번에 호출
사내 챗봇·RAG 서버 (38장)
Ollama (서버) + Open WebUI (사내 웹앱)
- 사내망에 두기 좋음
- 다중 사용자 지원
속도 마니아 (M Max/Ultra)
mlx-lm + 직접 변환
- 19장 방법으로 직접 4bit 변환
- 같은 모델 GGUF vs MLX 차이 확인
연구자·파인튜닝 준비
mlx-lm (학습) + llama.cpp (양자화) + Hugging Face Hub
- 32, 33장에서 본격 다룸
20.6 메모리 활용 비교
같은 모델·같은 컨텍스트에서 도구별 메모리 사용량 (대략).
| 도구 | 32B Q4, 16K 컨텍스트 |
|---|---|
| llama.cpp 직접 | 약 22GB |
| Ollama | 약 24GB |
| LM Studio | 약 25GB |
| mlx-lm | 약 22GB |
큰 차이는 없지만, LM Studio가 GUI 메모리 때문에 살짝 큼.
20.7 API 호환성
거의 모든 도구가 OpenAI 호환 엔드포인트를 제공합니다.
| 도구 | 기본 포트 | base_url |
|---|---|---|
| Ollama | 11434 | http://localhost:11434/v1 |
| LM Studio | 1234 | http://localhost:1234/v1 |
| llama-server | 8080 | http://localhost:8080/v1 |
| mlx-lm.server | 8080 (지정) | http://localhost:8080/v1 |
같은 OpenAI SDK 코드로 어디든 붙일 수 있습니다 (25장).
20.8 모델 보관 위치 비교
| 도구 | 기본 경로 |
|---|---|
| Ollama | ~/.ollama/models/ |
| LM Studio | ~/.lmstudio/models/ |
| llama.cpp | 사용자 지정 |
| mlx-lm / HF | ~/.cache/huggingface/hub/ |
주의: 같은 모델을 여러 도구에서 받으면 중복 저장. 디스크가 빠르게 차오릅니다.
대처:
- 모델 한 개를 받은 뒤
ollama create -f Modelfile로 다른 도구에 등록 - 외장 SSD 활용 (
OLLAMA_MODELS=/Volumes/External/...)
20.9 업데이트 빈도 비교
| 도구 | 신규 모델 지원 |
|---|---|
| llama.cpp | 1~3일 (가장 빠름) |
| mlx-lm | 보통 3~7일 |
| Ollama | 며칠~몇 주 |
| LM Studio | 며칠~몇 주 |
따라서:
- 새 모델이 떴는데 Ollama·LM Studio에 없으면
- llama.cpp로 직접 GGUF를 받아 돌리거나
- LM Studio가 별도 GGUF 임포트 기능 제공
- 또는
ollama create -f Modelfile로 추가 (17.11)
20.10 이 책에서의 표준 조합
이후 장들에서 별다른 언급이 없으면 다음 조합을 가정합니다.
- 학습·비교: LM Studio + GGUF
- 자동화·API: Ollama (OpenAI 호환 모드)
- 속도 실험: mlx-lm 또는 LM Studio MLX
3부의 16, 17, 19장이 이 세 도구를 다룬 이유입니다.
이 장에서 기억할 한 가지
도구는 층이 다르다.
층 도구 엔진 llama.cpp / MLX 매니저 Ollama / mlx-lm GUI LM Studio 처음에는 LM Studio + Ollama 두 개면 충분합니다.
손으로 해볼 것
1. 내 상황에 맞는 조합 결정
다음 빈칸을 채워보세요.
내 주된 용도: _______________
주로 쓸 GUI: LM Studio / Open WebUI / 없음
주로 쓸 API: Ollama / LM Studio / llama-server / mlx-lm.server
속도 우선?: 예 / 아니오
포맷: GGUF / MLX
2. 두 도구를 동시에 띄워보기
# 터미널 1
$ ollama serve # (이미 떠 있다면 생략)
# 터미널 2
$ lmstudio # GUI 실행
같은 모델을 양쪽에서 띄워두면 이중 메모리 가 든다는 걸 활성 상태 보기로 확인.
여기까지가 3부의 끝 입니다.
여기까지 마치면 로컬에서 모델이 실제로 돕니다.
다음 부(4부)에서는 같은 모델에서 더 좋은 답을 뽑는 법 — 프롬프트와 옵션 — 을 다룹니다.