Ollama 정리
로컬 환경에서 LLM을 손쉽게 실행할 수 있는 Ollama의 모든 것을 정리했습니다.
목차
- Ollama란?
- 주요 기능 정리
- 환경 구축 시 주의점
- 환경 변수 전체 정리
- Ollama vs vLLM 비교
1. Ollama란?
Ollama는 로컬 환경(내 컴퓨터)에서 대형 언어 모델(LLM)을 쉽게 실행할 수 있게 해주는 오픈소스 도구입니다.
클라우드 기반 AI(ChatGPT, Claude 등)는 인터넷을 통해 원격 서버에서 실행되지만, Ollama를 사용하면 인터넷 없이 내 PC나 서버에서 직접 AI 모델을 돌릴 수 있습니다.
주요 특징
- 로컬 실행 — 데이터가 외부로 나가지 않아 프라이버시 보호
- 간편한 설치 — 명령어 한 줄로 모델 다운로드 및 실행
- 다양한 모델 지원 — Llama 3, Mistral, Gemma, Qwen, Phi 등 수백 가지 모델
- OpenAI 호환 API — 기존 앱에 쉽게 통합 가능
- 무료 & 오픈소스 — 사용 비용 없음
- macOS / Windows / Linux 모두 지원
기본 사용법
ollama run llama3
ollama list
ollama serve
한계
- 고성능 GPU/RAM 필요 — 큰 모델일수록 더 많은 하드웨어 요구
- 클라우드 최신 모델 수준은 아님 — GPT-4, Claude Opus 같은 최상위 모델은 로컬 실행 불가
- 초기 다운로드 — 모델 파일이 수 GB에 달함
2. 주요 기능 정리
2-1. 모델 관리
| 명령어 | 기능 |
|---|
ollama pull <모델명> | 모델 다운로드 |
ollama push <모델명> | 모델 업로드 (레지스트리) |
ollama list | 설치된 모델 목록 |
ollama rm <모델명> | 모델 삭제 |
ollama show <모델명> | 모델 상세 정보 확인 |
ollama cp <원본> <복사본> | 모델 복사 |
2-2. 모델 실행
ollama run llama3
ollama run llama3 "질문"
ollama run llama3:70b
- 대화형 모드 — 터미널에서 채팅처럼 사용
- 파이프 입력 —
echo "요약해줘" | ollama run llama3
- 멀티모달 — 이미지 입력 지원 모델 사용 가능 (예:
llava)
2-3. REST API 서버
ollama serve 실행 시 로컬 HTTP API 자동 제공 (기본 포트: 11434)
POST http://localhost:11434/api/generate
POST http://localhost:11434/api/chat
POST http://localhost:11434/api/embeddings
GET http://localhost:11434/api/tags
OpenAI 호환 엔드포인트도 지원 → 기존 OpenAI SDK 코드를 거의 그대로 사용 가능
2-4. Modelfile (커스텀 모델 생성)
Docker의 Dockerfile처럼, 모델을 커스터마이징할 수 있는 설정 파일입니다.
FROM llama3
SYSTEM "당신은 한국어 전문 번역가입니다."
PARAMETER temperature 0.7
PARAMETER top_p 0.9
PARAMETER num_ctx 4096
ollama create my-model -f Modelfile
2-5. 지원 모델 (주요)
| 모델 | 특징 |
|---|
| Llama 3.x | Meta, 범용 |
| Mistral / Mixtral | 유럽산, 경량 고성능 |
| Gemma 3 | Google |
| Qwen 2.5 | Alibaba, 한국어 우수 |
| Phi-4 | Microsoft, 소형 고성능 |
| DeepSeek | 추론 특화 |
| LLaVA | 이미지 이해 (멀티모달) |
| nomic-embed | 텍스트 임베딩 전용 |
2-6. 외부 도구 연동
| 도구 | 연동 방식 |
|---|
| Open WebUI | 웹 기반 ChatGPT 스타일 UI |
| Continue (VS Code) | 코드 자동완성 |
| LangChain / LlamaIndex | AI 앱 개발 프레임워크 |
| Dify / Flowise | 노코드 AI 워크플로우 |
| AnythingLLM | 로컬 RAG 시스템 |
2-7. 하드웨어 가속
| 환경 | 지원 |
|---|
| NVIDIA GPU (CUDA) | ✅ |
| AMD GPU (ROCm) | ✅ |
| Apple Silicon (Metal) | ✅ |
| CPU 전용 | ✅ (느림) |
3. 환경 구축 시 주의점
3-1. 하드웨어 요구사항
RAM (가장 중요)
| 모델 크기 | 최소 RAM | 권장 RAM |
|---|
| 1B ~ 3B | 4GB | 8GB |
| 7B ~ 8B | 8GB | 16GB |
| 13B ~ 14B | 16GB | 32GB |
| 30B ~ 34B | 32GB | 64GB |
| 70B+ | 64GB | 128GB+ |
⚠️ RAM 부족 시 모델이 디스크로 스왑 → 속도 극단적으로 느려짐
GPU VRAM
VRAM ≥ 모델 크기(GB) → 전체 GPU 실행 (빠름)
VRAM < 모델 크기 → 일부 CPU 분산 실행 (느려짐)
GPU 없음 → CPU 전용 실행 (매우 느림)
디스크 공간
| 모델 | 용량 |
|---|
| 7B 모델 (Q4) | ~4GB |
| 13B 모델 (Q4) | ~8GB |
| 70B 모델 (Q4) | ~40GB |
⚠️ 여러 모델 사용 시 수백 GB까지 증가 가능 → SSD 권장
3-2. 설치 환경별 주의점
Windows
✅ Windows 10/11 (64bit) 지원
⚠️ NVIDIA GPU 사용 시 → CUDA 드라이버 최신 버전 필수
⚠️ AMD GPU → ROCm이 Windows에서 불안정할 수 있음
⚠️ WSL2 환경에서 실행 시 GPU 인식 문제 발생 가능
macOS
✅ Apple Silicon (M1/M2/M3/M4) → Metal 가속, 성능 우수
⚠️ Intel Mac → CPU 실행만 가능, 속도 매우 느림
⚠️ macOS 11 Big Sur 이상 필요
Linux
✅ 가장 안정적인 환경
⚠️ NVIDIA → nvidia-driver + CUDA toolkit 사전 설치 필요
⚠️ AMD → ROCm 버전과 GPU 모델 호환성 확인 필수
⚠️ 방화벽 설정 확인 (포트 11434)
3-3. 네트워크 & 보안
OLLAMA_HOST=127.0.0.1:11434
OLLAMA_HOST=0.0.0.0:11434
외부 노출 시 필수 조치:
- ✅ 방화벽으로 IP 화이트리스트 설정
- ✅ Nginx / Caddy로 리버스 프록시 + 인증 추가
- ✅ API Key 인증 레이어 별도 구성
- ✅ HTTPS 적용
- ❌ 포트를 그냥 공개하면 절대 안 됨
3-4. 모델 양자화(Quantization) 이해
Q2 → 매우 작음, 품질 낮음
Q4 → 균형 (일반적으로 권장) ✅
Q5 → 품질 좋음, 용량 큼
Q8 → 원본에 가까움, 매우 큰 용량
F16 → 원본, 전문 용도
ollama run llama3
ollama run llama3:8b
ollama run llama3:8b-q4_0
⚠️ 태그 미지정 시 자동으로 특정 버전이 선택됨 → 의도치 않은 대용량 다운로드 주의
3-5. 자주 발생하는 문제
| 증상 | 원인 | 해결 |
|---|
error: model not found | 모델명 오타 | ollama list 로 확인 |
| 응답이 극도로 느림 | GPU 미인식, CPU 실행 중 | 드라이버 재설치, ollama ps로 확인 |
out of memory | RAM/VRAM 부족 | 더 작은 모델 또는 낮은 양자화 사용 |
| 포트 충돌 | 11434 이미 사용 중 | OLLAMA_HOST 포트 변경 |
| 모델 다운로드 실패 | 네트워크 / 디스크 부족 | 디스크 여유 확인, 재시도 |
3-6. 구축 전 체크리스트
□ RAM 16GB 이상 확보 (7B 모델 기준)
□ 디스크 여유 공간 50GB 이상
□ GPU 드라이버 최신 버전 설치
□ 외부 접근 시 인증/방화벽 설정 계획
□ 모델 저장 경로 (용량 큰 드라이브) 지정
□ 운영 목적에 맞는 모델 & 양자화 수준 결정
4. 환경 변수 전체 정리
4-1. 서버 & 네트워크
| 환경 변수 | 기본값 | 설명 |
|---|
OLLAMA_HOST | 127.0.0.1:11434 | 바인딩 주소 및 포트 |
OLLAMA_ORIGINS | * | CORS 허용 출처 |
OLLAMA_PROXY | - | HTTP 프록시 서버 주소 |
OLLAMA_HOST=0.0.0.0:11434
OLLAMA_HOST=192.168.1.100:11434
OLLAMA_ORIGINS=https://myapp.com
OLLAMA_PROXY=http://proxy:8080
4-2. 모델 & 파일 경로
| 환경 변수 | 기본값 | 설명 |
|---|
OLLAMA_MODELS | ~/.ollama/models | 모델 저장 경로 |
OLLAMA_TMPDIR | 시스템 임시 폴더 | 임시 파일 경로 |
OLLAMA_MODELS=/mnt/ssd/ollama-models
OLLAMA_MODELS=D:\ollama\models
OLLAMA_TMPDIR=/tmp/ollama
4-3. 성능 & 메모리
| 환경 변수 | 기본값 | 설명 |
|---|
OLLAMA_NUM_PARALLEL | 1 | 동시 처리 요청 수 |
OLLAMA_MAX_LOADED_MODELS | 1 | 메모리에 올릴 최대 모델 수 |
OLLAMA_MAX_QUEUE | 512 | 대기열 최대 요청 수 |
OLLAMA_KEEP_ALIVE | 5m | 모델 메모리 유지 시간 |
OLLAMA_MAX_VRAM | - | 사용할 최대 VRAM (bytes) |
OLLAMA_NUM_PARALLEL=4
OLLAMA_MAX_LOADED_MODELS=2
OLLAMA_KEEP_ALIVE=10m
OLLAMA_KEEP_ALIVE=-1
OLLAMA_KEEP_ALIVE=0
OLLAMA_MAX_VRAM=4000000000
4-4. GPU 설정
| 환경 변수 | 기본값 | 설명 |
|---|
OLLAMA_GPU_OVERHEAD | 0 | GPU 메모리 예비 확보량 (bytes) |
CUDA_VISIBLE_DEVICES | - | 사용할 NVIDIA GPU 지정 |
ROCR_VISIBLE_DEVICES | - | 사용할 AMD GPU 지정 |
OLLAMA_CPU_ONLY | false | GPU 무시, CPU만 사용 |
CUDA_VISIBLE_DEVICES=0
CUDA_VISIBLE_DEVICES=0,1
ROCR_VISIBLE_DEVICES=0
OLLAMA_GPU_OVERHEAD=512000000
OLLAMA_CPU_ONLY=true
4-5. 디버그 & 로깅
| 환경 변수 | 기본값 | 설명 |
|---|
OLLAMA_DEBUG | false | 디버그 로그 활성화 |
OLLAMA_NOPRUNE | false | 모델 레이어 캐시 유지 |
OLLAMA_DEBUG=1
OLLAMA_NOPRUNE=1
4-6. 설정 방법
Linux / macOS — systemd 영구 설정
sudo systemctl edit ollama.service
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
Environment="OLLAMA_MODELS=/mnt/ssd/models"
Environment="OLLAMA_NUM_PARALLEL=4"
Environment="OLLAMA_KEEP_ALIVE=10m"
sudo systemctl daemon-reload
sudo systemctl restart ollama
Windows — PowerShell 영구 설정
[System.Environment]::SetEnvironmentVariable(
"OLLAMA_HOST", "0.0.0.0:11434", "User"
)
[System.Environment]::SetEnvironmentVariable(
"OLLAMA_MODELS", "D:\ollama\models", "User"
)
# 설정 후 Ollama 재시작 필요
Docker Compose
services:
ollama:
image: ollama/ollama
environment:
- OLLAMA_HOST=0.0.0.0:11434
- OLLAMA_MODELS=/root/.ollama/models
- OLLAMA_NUM_PARALLEL=4
- OLLAMA_KEEP_ALIVE=10m
- OLLAMA_MAX_LOADED_MODELS=2
volumes:
- ollama_data:/root/.ollama
4-7. 상황별 추천 설정
개인 PC (RAM 16GB, GPU 8GB)
OLLAMA_NUM_PARALLEL=1
OLLAMA_MAX_LOADED_MODELS=1
OLLAMA_KEEP_ALIVE=5m
팀 서버 (RAM 64GB, GPU 24GB)
OLLAMA_NUM_PARALLEL=4
OLLAMA_MAX_LOADED_MODELS=3
OLLAMA_KEEP_ALIVE=30m
OLLAMA_HOST=0.0.0.0:11434
메모리 절약 모드
OLLAMA_MAX_LOADED_MODELS=1
OLLAMA_KEEP_ALIVE=0
OLLAMA_NUM_PARALLEL=1
디버깅 / 문제 해결
OLLAMA_DEBUG=1
OLLAMA_CPU_ONLY=true
5. Ollama vs vLLM 비교
5-1. 한눈에 보기
| 항목 | Ollama | vLLM |
|---|
| 목적 | 개인/소규모 로컬 실행 | 고성능 프로덕션 서빙 |
| 대상 사용자 | 개발자, 개인 | ML 엔지니어, 기업 |
| 설치 난이도 | ⭐ 매우 쉬움 | ⭐⭐⭐ 복잡 |
| 성능 | 보통 | 매우 높음 |
| GPU 요구사항 | 선택 (CPU도 가능) | 사실상 필수 |
| Windows 지원 | ✅ | ❌ (Linux 전용) |
| 라이선스 | MIT | Apache 2.0 |
5-2. 아키텍처 차이
Ollama
사용자 → Ollama 서버 → llama.cpp 엔진 → 모델 실행
↓
CPU / GPU 혼합 실행 가능
양자화(Q4 등) 기본 지원
vLLM
사용자 → vLLM 서버 → PagedAttention 엔진 → GPU 실행
↓
GPU VRAM 최적화 특화
FP16 / BF16 정밀도 중심
핵심 차이: Ollama는 llama.cpp 기반, vLLM은 자체 PagedAttention 기술 기반
5-3. 주요 기능 비교
| 기능 | Ollama | vLLM |
|---|
| PagedAttention | ❌ | ✅ (핵심 기술) |
| Continuous Batching | 제한적 | ✅ |
| 양자화 (Q4/Q8) | ✅ 기본 지원 | ✅ (AWQ, GPTQ 등) |
| 멀티 GPU | 제한적 | ✅ 완전 지원 |
| Tensor Parallelism | ❌ | ✅ |
| 모델 커스터마이징 | ✅ Modelfile | ❌ |
| OpenAI 호환 API | ✅ | ✅ |
| 스트리밍 | ✅ | ✅ |
| 멀티모달 | ✅ | ✅ |
| LoRA 어댑터 | ❌ | ✅ |
| CPU 실행 | ✅ | ❌ |
| Apple Silicon | ✅ | ❌ |
5-4. 지원 모델 형식
| 형식 | Ollama | vLLM |
|---|
| GGUF | ✅ 기본 | ❌ |
| GPTQ | ❌ | ✅ |
| AWQ | ❌ | ✅ |
| HuggingFace | 제한적 | ✅ 완전 지원 |
| SafeTensors | ❌ | ✅ |
5-5. 설치 및 실행 비교
Ollama
curl -fsSL https://ollama.com/install.sh | sh
ollama run llama3
vLLM
pip install vllm
python -m vllm.entrypoints.openai.api_server \
--model meta-llama/Llama-3-8B-Instruct \
--tensor-parallel-size 2
5-6. 하드웨어 요구사항
| 항목 | Ollama | vLLM |
|---|
| OS | Win / Mac / Linux | Linux 전용 |
| GPU | 선택 사항 | NVIDIA GPU 필수 |
| CUDA | 선택 | 필수 (11.8+) |
| 최소 VRAM | 제한 없음 | 8GB+ 권장 |
| Apple Silicon | ✅ 최적화 | ❌ |
5-7. 언제 무엇을 쓸까?
✅ Ollama를 선택할 때
- 개인 PC / 노트북에서 실행
- Windows 또는 Mac 환경
- 빠른 프로토타이핑, 간단한 테스트
- CPU 또는 저사양 GPU 환경
- 초보자, 간단한 설치 원할 때
- 소규모 팀 내부 사용
✅ vLLM을 선택할 때
- 프로덕션 서비스 배포
- 고트래픽, 다수 동시 사용자
- NVIDIA GPU 서버 보유
- 최대 성능 / 처리량이 필요할 때
- LoRA, AWQ 등 고급 기능 필요
- MLOps 파이프라인 구축
5-8. 함께 사용하는 패턴
개발 단계 → Ollama (빠른 테스트)
↓
프로덕션 → vLLM (고성능 서빙)
동일한 OpenAI 호환 API 구조이므로
코드 변경 최소화로 전환 가능 ✅
마무리 요약
Ollama = 쉽고 빠르게, 어디서든, 누구나
vLLM = 빠르고 무겁게, Linux GPU 서버에서, 프로덕션용
| Ollama | vLLM |
|---|
| 한 줄 요약 | 로컬에서 LLM을 쉽게 | 서버에서 LLM을 빠르게 |
| 핵심 엔진 | llama.cpp | PagedAttention |
| 주요 사용자 | 개인, 소규모 팀 | 기업, ML 엔지니어 |
| 환경 | 어디서든 | Linux + NVIDIA GPU |