Ollama 시작하기: 10분 만에 로컬에서 LLM 실행하기
요약
Ollama를 사용하여 로컬 환경에서 LLM을 쉽고 빠르게 실행하는 방법을 소개하는 가이드입니다. 설치 방법부터 핵심 명령어, API 연결까지 다루며 개인정보 보호와 비용 절감의 이점을 강조합니다.
핵심 포인트
- Ollama를 통해 macOS, Linux, Windows에서 로컬 LLM 실행 가능
- 개인정보 보호, 비용 절감, 오프라인 사용 및 모델 제어 가능
- CLI 및 REST API를 지원하여 기존 코드와 쉽게 통합 가능
- Docker를 통한 간편한 컨테이너 기반 설치 지원
만약 API 키도 필요 없고, 클라우드 비용도 들지 않으며, 데이터가 노트북을 벗어나지 않는 환경에서 자신의 머신에 대규모 언어 모델 (Large Language Model, LLM)을 실행하고 싶었던 적이 있다면 — Ollama가 그곳에 도달하는 가장 쉬운 방법입니다. Ollama는 모델 가중치 (Model weights), 런타임 (llama.cpp 기반), 그리고 간단한 CLI/REST API를 하나의 도구로 패키징하여 macOS, Linux, Windows에서 동일한 방식으로 작동하게 합니다.
이 가이드는 설치, 첫 번째 모델 실행, 실제로 사용하게 될 핵심 명령어, 하드웨어에 맞는 모델 선택, 그리고 API를 통해 Ollama를 자신의 코드에 연결하는 방법을 다룹니다.
왜 모델을 로컬에서 실행하나요?
- 개인정보 보호 (Privacy) — 사용자의 프롬프트와 데이터가 절대 머신을 떠나지 않습니다.
- 비용 (Cost) — 토큰당 과금이 없습니다. 하드웨어에 한 번 지불하면 됩니다 (이미 괜찮은 노트북을 가지고 있다면 비용이 들지 않습니다).
- 오프라인 (Offline) — 비행기 안, SCIF (민감 정보 격리 시설), 또는 Wi-Fi가 연결되지 않는 어디에서나 작동합니다.
- 제어 (Control) — 속도 제한 (Rate limits) 없이 모델을 교체하고, 파라미터 (Parameters)를 조정하며, 동작을 미세 조정 (Fine-tune)할 수 있습니다.
트레이드오프 (Tradeoff): 로컬 모델은 일반적으로 크기가 더 작으며, 순수 성능 면에서 프런티어 클라우드 모델 (GPT, Claude, Gemini)보다 약간 뒤처져 있습니다 — 비록 그 격차는 빠르게 줄어들고 있지만 말입니다.
설치 (Installation)
macOS
ollama.com/download에서 앱을 다운로드하거나, Homebrew를 사용하세요:
brew install ollama
Linux
curl -fsSL https://ollama.com/install.sh | sh
이 명령은 ollama 바이너리를 설치하고 백그라운드에서 실행될 수 있도록 systemd 서비스를 설정합니다. 정상 작동 여부를 확인하세요:
systemctl status ollama
Windows
ollama.com/download에서 OllamaSetup.exe를 다운로드하여 실행하세요 — 관리자 권한은 필요하지 않습니다. 최신 버전은 채팅 창이 포함된 전체 데스크톱 앱을 제공하므로, 선호한다면 터미널을 완전히 건너뛸 수 있습니다. Windows-on-Arm 장치를 위한 네이티브 ARM64 빌드도 제공됩니다.
Docker
docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
NVIDIA GPU가 있고 NVIDIA Container Toolkit이 설치되어 있다면 --gpus=all을 추가하세요.
작동 확인
ollama --version
ollama list
새로 설치한 경우 빈 목록이 나타나는 것이 정상입니다. 이는 데몬 (daemon)이 실행 중이며 응답하고 있음을 확인해 줍니다.
첫 번째 모델 실행하기
ollama run llama3.2
이 명령은 모델을 가져오고 (몇 GB 크기, 1회성 다운로드), 대화형 채팅 세션으로 바로 연결해 줍니다. 프롬프트 (prompt)를 입력하고 엔터를 누르면 응답을 받을 수 있습니다. Ctrl+D 또는 /bye를 입력하면 종료됩니다.
핵심 명령어 치트 시트 (Cheat sheet)
| 명령어 | 기능 |
|---|---|
ollama run <model> | 모델을 가져오고 (필요한 경우) 채팅 시작 |
| ... |
:latest 태그는 사용 중에 변경될 수 있으므로, 의존성이 있는 모든 작업에는 명시적인 태그를 사용하여 항상 가져오기 (pull)를 수행하세요 (ollama pull qwen2.5-coder:7b).
하드웨어에 맞는 모델 선택하기
Ollama의 라이브러리에는 수백 개의 모델이 있습니다. 시작 단계에서는 다음을 참고하세요:
| 사용 사례 | 시도해 볼 모델 | 대략적인 RAM/VRAM |
|---|---|---|
| 일반적인 데일리 드라이버, 가벼운 하드웨어 | llama3.2:3b | ~4 GB |
| ... |
크기 산정을 위한 경험 법칙 (Rule of thumb): Q4 양자화 (quantization)를 적용한 7–8B 모델은 대략 5–6 GB의 메모리가 필요합니다. 이는 대략적인 수치이며 절대적인 기준은 아닙니다. 전문가 혼합 (Mixture-of-Experts, MoE) 모델 (예: qwen3-coder:30b와 같이 "활성/전체" 분리가 있는 모델)은 추론 (inference) 시에 나열된 크기의 일부만 실행되므로, 파라미터 (parameter) 수에 비해 속도가 빠른 경우가 많습니다. 하지만 활성 슬라이스 (active slice)뿐만 아니라 모델 전체가 메모리에 있어야 합니다. 모델 라인업은 매주 변경되므로 항상 ollama.com/library에서 현재 태그 목록을 확인하세요.
어디서부터 시작해야 할지 모르겠다면: 작은 모델을 가져와서 실제 작업에 일주일 동안 사용해 보고, 모델이 어려워하는 부분을 통해 다음 모델을 결정하세요.
API 사용하기
Ollama는 localhost:11434에서 REST API를 노출합니다. 이는 모든 IDE 플러그인, 채팅 UI 및 프레임워크가 내부적으로 Ollama와 통신하는 방식입니다.
curl http://localhost:11434/api/chat -d '{
"model": "llama3.2",
"messages": [{ "role": "user", "content": "Explain Ollama in one sentence." }],
...
또한 **OpenAI 호환 엔드포인트 (OpenAI-compatible endpoint)**를 제공하므로, OpenAI SDK용으로 구축된 모든 것은 기본 URL (base URL) 변경만으로 Ollama를 가리킬 수 있습니다:
Python
pip install ollama
from ollama import chat
response = chat(model='llama3.2', messages=[
...
Modelfile을 사용한 모델 커스터마이징 (Customizing a model with a Modelfile)
고정된 시스템 프롬프트 (System Prompt)나 다른 기본 파라미터 (Parameters)를 가진 모델을 원하시나요? 그렇다면 Modelfile을 생성하세요:
FROM llama3.2
PARAMETER temperature 0.7
...
빌드 방법:
ollama create code-reviewer -f Modelfile
ollama run code-reviewer
이제 ollama list에서 code-reviewer는 설정값이 내장된(baked in) 독자적인 모델로 나타납니다.
몇 가지 실용적인 팁
- 바인드 주소 (Bind address): 기본적으로 Ollama는
127.0.0.1에서만 리스닝(listening)합니다.OLLAMA_HOST=0.0.0.0으로 설정하면 인증(Authentication) 없이 전체 네트워크에 API를 노출하게 됩니다. 신뢰할 수 있는 LAN 환경에서는 괜찮지만, 그 외의 장소에서는 위험합니다. - 여러 모델 동시 로드: 하나 이상의 모델을 서빙(serving)하는 경우,
OLLAMA_NUM_PARALLEL과OLLAMA_MAX_LOADED_MODELS가 동시성 (Concurrency)을 제어합니다. - 긴 컨텍스트 (Long contexts)는 비용이 많이 듭니다: KV 캐시 (KV cache) 메모리는 모델 크기뿐만 아니라 컨텍스트 길이에 따라 확장됩니다. 128K 컨텍스트를 사용하는 70B 모델은 가중치(Weights)만 있을 때보다 수십 GB의 메모리를 추가로 사용할 수 있습니다. VRAM 계층에 따라 결정되는 기본값을 그대로 두지 말고, Modelfile에서
num_ctx를 의도적으로 설정하세요. - GPU가 사용되지 않나요?:
ollama ps를 확인하세요. 모델이 CPU에서 실행 중인지 GPU에서 실행 중인지 보여줍니다. 드라이버 문제 (CUDA/ROCm)가 조용히 CPU로 폴백(fallback)되는 가장 흔한 원인입니다.
다음 단계
- 지속적으로 업데이트되는 전체 모델 목록을 보려면 ollama.com/library를 탐색하세요.
- OpenAI-SDK 기반의 모든 도구 (LangChain, LlamaIndex, Continue 등)를
http://localhost:11434/v1으로 지정하면, 최소한의 코드 변경만으로 로컬 모델로 교체할 수 있습니다. - 작은 임베딩 모델 (
nomic-embed-text)을 채팅 모델과 결합하여 API 비용이 전혀 들지 않는 로컬 RAG 파이프라인을 구축해 보세요.
설치, 풀(pull), 실행, 통합까지의 전체 루프가 완료되었습니다. 그 외의 모든 것은 작업에 적합한 모델을 선택하는 과정일 뿐입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기