TechFeedTechFeed
Open Source

Ollama 로컬 LLM 실행 완벽 가이드 — 설치부터 API 연동까지

Ollama 설치(macOS/Linux/Windows), 모델 다운로드, REST API 서버 활용, Modelfile 커스터마이징, GPU 메모리 관리, Open WebUI 연동까지.

한 줄 요약: Ollama는 macOS·Linux·Windows에서 LLaMA 3, Mistral, Gemma 같은 오픈소스 LLM을 인터넷 연결 없이 로컬에서 실행할 수 있는 런타임이다. 설치부터 API 서버 활용, GPU 가속, 모델 커스터마이징까지 실무에서 바로 쓸 수 있는 설정 전반을 다룬다.

이 글이 필요한 사람
  • API 비용 없이 LLM을 로컬에서 돌리고 싶은 개발자
  • 프라이버시 이유로 외부 API에 데이터를 보내기 어려운 경우
  • Ollama REST API를 자체 앱에 연동하려는 경우
  • Modelfile로 시스템 프롬프트를 고정한 커스텀 모델을 만들고 싶은 경우
  • Open WebUI 같은 ChatGPT 대체 UI를 로컬에 구축하려는 경우

Ollama 설치 — macOS / Linux / Windows

Ollama 공식 사이트(ollama.com)에서 플랫폼별 설치 방법을 제공한다. 공식 GitHub 저장소(github.com/ollama/ollama)에서 최신 릴리스와 변경 이력을 확인할 수 있다.

macOS: .dmg 설치파일을 내려받거나 Homebrew를 사용한다. 설치 후 메뉴바에 Ollama 아이콘이 표시되고 백그라운드 서버(localhost:11434)가 자동으로 뜬다.

Linux: curl 원라이너 설치 스크립트가 공식 권장 방법이다. 설치 후 ollama serve 명령으로 서버를 직접 시작하거나 systemd 서비스로 등록한다.

Windows: 공식 .exe 설치 파일을 사용한다. WSL2 없이 네이티브 Windows에서 실행된다. NVIDIA GPU도 인식한다.

macOS — Homebrew 설치
brew install ollama # 서버 시작 ollama serve
Linux — 공식 설치 스크립트
curl -fsSL https://ollama.com/install.sh | sh # systemd 서비스 등록 및 시작 sudo systemctl enable ollama sudo systemctl start ollama # 상태 확인 sudo systemctl status ollama
포트 충돌 주의: Ollama는 기본으로 11434 포트를 사용한다. 이미 다른 프로세스가 해당 포트를 쓰고 있다면 OLLAMA_HOST=0.0.0.0:11435 ollama serve처럼 환경변수로 포트를 바꿀 수 있다.

모델 다운로드와 실행 — llama3, mistral, gemma

Ollama는 ollama pull로 모델을 내려받고 ollama run으로 즉시 대화를 시작한다. 모델은 ~/.ollama/models에 저장된다. 이미 내려받은 모델은 오프라인에서도 동작한다.

현재 Ollama 라이브러리(ollama.com/library)에 올라온 주요 모델과 권장 메모리 요구사항은 다음과 같다.

모델태그 예시최소 RAM특징
LLaMA 3.2llama3.24 GB3B 기본 모델, 빠름
LLaMA 3.1llama3.1:8b8 GB균형잡힌 성능
Mistralmistral8 GB코드/지시 준수 강점
Gemma 2gemma2:9b8 GBGoogle, 다국어 강점
Qwen 2.5qwen2.5:7b8 GB한국어·중국어 강점
Phi-4phi48 GBMicrosoft, 소형 고성능
DeepSeek-R1deepseek-r1:8b8 GB추론 특화
모델 다운로드 및 실행
# 모델 내려받기 ollama pull llama3.2 ollama pull mistral ollama pull gemma2:9b # 대화 시작 (내려받기 포함) ollama run llama3.2 # 설치된 모델 목록 ollama list # 특정 모델 삭제 ollama rm mistral

Ollama REST API — 자체 앱 연동

Ollama는 localhost:11434에 REST API 서버를 띄운다. OpenAI API와 호환되는 엔드포인트도 제공하므로, OpenAI SDK를 사용하는 기존 코드를 base URL만 바꿔서 재활용할 수 있다.

주요 엔드포인트:

  • POST /api/generate — 단순 텍스트 생성
  • POST /api/chat — 멀티턴 대화 (messages 배열)
  • GET /api/tags — 설치된 모델 목록
  • POST /v1/chat/completions — OpenAI 호환 엔드포인트
curl로 API 직접 호출
# 기본 generate curl http://localhost:11434/api/generate \ -d '{"model":"llama3.2","prompt":"Node.js에서 비동기 처리란?","stream":false}' # chat (멀티턴) curl http://localhost:11434/api/chat \ -d '{"model":"llama3.2","messages":[{"role":"user","content":"타입스크립트와 자바스크립트 차이를 설명해줘"}],"stream":false}'
OpenAI SDK로 Ollama 연결 (Node.js)
import OpenAI from 'openai'; const client = new OpenAI({ baseURL: 'http://localhost:11434/v1', apiKey: 'ollama', // 아무 문자열이나 가능 }); const response = await client.chat.completions.create({ model: 'llama3.2', messages: [{ role: 'user', content: 'Express 미들웨어 작성 예시를 보여줘' }], }); console.log(response.choices[0].message.content);

Modelfile로 커스텀 모델 만들기

Modelfile은 Docker의 Dockerfile과 유사하다. 베이스 모델에 시스템 프롬프트, 파라미터, 어댑터(LoRA)를 얹어 새로운 모델 이름으로 등록할 수 있다. 서비스별로 역할이 고정된 모델을 여러 개 운용할 때 유용하다.

주요 지시어:

  • FROM — 베이스 모델 지정 (필수)
  • SYSTEM — 시스템 프롬프트 설정
  • PARAMETER — temperature, top_p, num_ctx 등 추론 파라미터
  • ADAPTER — LoRA 어댑터 경로 지정
  • MESSAGE — few-shot 예시 대화 삽입
Modelfile 작성 예시
# Modelfile FROM llama3.2 SYSTEM """ 너는 시니어 백엔드 개발자 전문 어시스턴트다. 항상 Node.js, Python, Go 예시를 포함하고, 보안 취약점이 있는 코드는 반드시 경고해라. """ PARAMETER temperature 0.3 PARAMETER num_ctx 8192 PARAMETER top_p 0.9
Modelfile로 모델 빌드 및 실행
# Modelfile 기반 모델 생성 ollama create backend-assistant -f ./Modelfile # 생성된 모델 확인 ollama list # 실행 ollama run backend-assistant

GPU 가속 설정과 메모리 관리

Ollama는 NVIDIA CUDA, Apple Silicon Metal, AMD ROCm을 자동으로 감지한다. 별도 설정 없이 GPU가 있으면 GPU를 사용한다. ollama run 출력에 gpu layers 항목이 표시되면 GPU 가속이 활성화된 상태다.

GPU 레이어 수동 지정: VRAM이 부족하면 일부 레이어를 CPU로 내려서 실행할 수 있다. 환경변수 OLLAMA_NUM_GPU로 GPU에 올릴 레이어 수를 제한한다.

메모리 관리: 모델을 ollama run으로 실행하면 기본 5분 후 메모리에서 내려간다. 상시 로딩 상태를 유지하려면 keep_alive 파라미터를 -1로 설정한다. 반대로 즉시 해제하려면 keep_alive 0을 사용한다.

GPU 상태 확인 및 메모리 설정
# GPU 사용 현황 확인 ollama ps # 모델을 메모리에 상시 유지 (keep_alive=-1) curl http://localhost:11434/api/generate \ -d '{"model":"llama3.2","keep_alive":-1,"prompt":""}' # 모델을 즉시 메모리에서 해제 curl http://localhost:11434/api/generate \ -d '{"model":"llama3.2","keep_alive":0,"prompt":""}' # NVIDIA GPU 레이어 수 제한 (VRAM 4 GB 환경) export OLLAMA_NUM_GPU=20 ollama serve
Apple Silicon (M1/M2/M3/M4): Metal을 통해 GPU 가속이 자동으로 켜진다. 8 GB RAM MacBook Air에서 7B 모델이 토큰당 약 20~40 tok/s로 동작한다. 16 GB 이상이면 13B 모델도 실용적인 속도가 나온다.

Open WebUI 연동 — 로컬 ChatGPT UI 구축

Open WebUI(github.com/open-webui/open-webui)는 Ollama와 연동되는 오픈소스 웹 인터페이스다. ChatGPT와 유사한 UI에서 모델 전환, 대화 기록, 파일 업로드, RAG 기능까지 제공한다.

Docker를 사용하는 것이 가장 빠른 설치 방법이다. GPU가 있는 환경이라면 --gpus all 플래그를 추가한다.

Docker로 Open WebUI 실행
# CPU 전용 (Ollama가 같은 호스트에서 실행 중인 경우) docker run -d \ -p 3000:8080 \ --add-host=host.docker.internal:host-gateway \ -v open-webui:/app/backend/data \ --name open-webui \ --restart always \ ghcr.io/open-webui/open-webui:main # 브라우저에서 확인 # http://localhost:3000
Python 앱 연동: ollama-python 라이브러리(pip install ollama)를 쓰면 LangChain 없이도 스트리밍 응답, 임베딩 생성을 간단하게 구현할 수 있다.
Ollama로컬LLMllama3mistralOpen WebUIGPUAI

관련 포스트

오픈소스 기여 시작 가이드 — 첫 PR까지2026-02-262026년 주목할 오픈소스 프로젝트 10선2026-03-09오픈소스 라이선스 완벽 가이드2026-03-10오픈소스에 기여하는 실전 가이드 — 첫 PR부터 메인테이너까지2026-03-11