ChatGPT나 Claude 같은 클라우드 AI를 쓰다 보면 개인 정보나 회사 기밀 데이터를 외부 서버에 보내는 것이 찜찜할 때가 있습니다. 또는 인터넷 연결 없이도 AI 기능을 사용하고 싶을 수도 있죠. Ollama는 이런 고민을 완벽하게 해결해주는 도구입니다. 단 몇 줄의 명령어만으로 Meta의 Llama 3, Mistral, Gemma 같은 최신 오픈소스 LLM(거대 언어 모델)을 내 PC나 Mac, 서버에서 직접 실행할 수 있게 해줍니다. 이 글에서는 Ollama 설치부터 Llama 3 실행, Open WebUI로 ChatGPT와 동일한 웹 인터페이스 구축까지 완벽하게 안내합니다.
1. 왜 로컬 LLM인가? — 클라우드 AI의 한계
| 비교 항목 | 클라우드 AI (ChatGPT, Claude 등) | 로컬 LLM (Ollama + Llama 3) |
|---|---|---|
| 데이터 프라이버시 | 입력 데이터가 외부 서버로 전송 | 데이터가 내 기기 밖으로 나가지 않음 |
| 인터넷 의존성 | 인터넷 필수 | 완전 오프라인 동작 가능 |
| 비용 | 사용량에 따른 API 과금 | 전기 요금 외 무료 |
| 커스터마이징 | 제한적 (Fine-tuning 유료) | 모델 파라미터 완전 제어 가능 |
| 지연 시간(Latency) | 네트워크 왕복 시간 포함 | 로컬 추론, 네트워크 지연 없음 |
2. Ollama 소개 및 시스템 요구 사항
Ollama는 Docker처럼 LLM 모델 관리와 실행을 추상화한 오픈소스 도구입니다. 단 하나의 명령어로 원하는 LLM 모델을 다운받아 로컬에서 바로 사용할 수 있습니다.
권장 시스템 사양
| 모델 크기 | 최소 RAM | 권장 GPU VRAM | 예시 모델 |
|---|---|---|---|
| 7B 파라미터 | 8GB | 6GB VRAM (없어도 CPU로 실행) | Llama3.1:8B, Mistral:7B |
| 13B 파라미터 | 16GB | 10GB VRAM | Llama2:13B |
| 70B 파라미터 | 64GB | 40GB VRAM (A100급) | Llama3.1:70B |
GPU가 없어도 됩니다! GPU가 없으면 CPU 모드로 실행되며 다소 느리지만 정상 동작합니다. M1/M2/M3 칩 Mac에서는 Apple Metal을 활용하여 GPU 가속이 자동으로 적용됩니다.
3. Ollama 설치 및 첫 LLM 실행
설치 (Linux/Mac)
# Linux, macOS - 공식 설치 스크립트로 한 번에 설치
curl -fsSL https://ollama.com/install.sh | sh
# Windows - 공식 사이트에서 .exe 설치 파일 다운로드
# https://ollama.com/download
Llama 3.1 (8B) 다운로드 및 실행
# 모델 다운로드 후 대화형 셸로 즉시 실행 (약 4.7GB 다운로드)
ollama run llama3.1
# 실행 성공 시 프롬프트가 나타남
>>> Send a message (/? for help)
>>> 자바의 가상 스레드를 쉽게 설명해줘
주요 Ollama 명령어
# 사용 가능한 모델 목록 확인 (Ollama Hub: https://ollama.com/library)
ollama list
# 특정 모델 다운로드만 하기 (실행 X)
ollama pull mistral
# 현재 실행 중인 모델 확인
ollama ps
# 로컬에 받은 모델 목록 확인
ollama ls
# 모델 삭제
ollama rm llama3.1
4. REST API로 Ollama 연동하기
Ollama는 로컬에서 기본적으로 http://localhost:11434 포트로 REST API 서버를 열어줍니다. 이를 활용하면 Python, JavaScript 등 모든 언어에서 로컬 AI를 프로그래밍으로 제어할 수 있습니다.
curl로 API 테스트
curl http://localhost:11434/api/generate \
-H "Content-Type: application/json" \
-d '{
"model": "llama3.1",
"prompt": "파이썬으로 피보나치 수열을 계산하는 함수를 작성해줘",
"stream": false
}'
Python으로 연동하기
import requests
import json
def chat_with_local_llm(prompt: str, model: str = "llama3.1") -> str:
response = requests.post(
"http://localhost:11434/api/generate",
json={
"model": model,
"prompt": prompt,
"stream": False
}
)
result = response.json()
return result["response"]
# 사용 예시
answer = chat_with_local_llm("SQL 인덱스를 사용해야 하는 경우를 설명해줘")
print(answer)
OpenAI 호환 API 사용
Ollama는 OpenAI API와 호환되는 엔드포인트도 제공합니다. 기존 OpenAI SDK를 사용하는 코드를 베이스 URL만 바꿔 로컬 LLM으로 전환할 수 있습니다.
from openai import OpenAI
# 베이스 URL만 변경하면 기존 OpenAI 코드 그대로 사용 가능!
client = OpenAI(base_url="http://localhost:11434/v1", api_key="ollama")
response = client.chat.completions.create(
model="llama3.1",
messages=[{"role": "user", "content": "REST API와 GraphQL의 차이점은?"}]
)
print(response.choices[0].message.content)
5. Open WebUI로 ChatGPT 같은 웹 인터페이스 구축
터미널이 불편하다면 Open WebUI를 Docker로 설치해 브라우저에서 ChatGPT와 동일한 채팅 UI를 사용할 수 있습니다.
# Docker로 Open WebUI 설치 (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 접속
6. 자주 묻는 질문 (FAQ)
Q1. Ollama로 실행할 수 있는 모델의 종류에는 어떤 것이 있나요?
Ollama Hub(ollama.com/library)에서 제공하는 모델이라면 무엇이든 ollama pull [모델명] 명령어로 받을 수 있습니다. Meta의 Llama 3.1, 구글의 Gemma 2, 미스트랄의 Mistral, 코딩에 특화된 CodeLlama, 한국어 성능이 뛰어난 EXAONE(LG AI Research) 등 수백 개의 모델을 선택할 수 있습니다.
Q2. 모델 응답이 너무 느립니다. 어떻게 개선하나요?
GPU가 있다면 CUDA(NVIDIA) 또는 ROCm(AMD) 드라이버가 올바르게 설치되어 있는지 확인하세요. ollama ps 실행 시 VRAM 사용량이 표시되면 GPU가 활성화된 것입니다. GPU가 없다면 파라미터가 더 작은 모델(예: 8B보다 3B 모델)을 사용하거나, 출력 토큰 수(num_predict)를 제한하면 체감 속도를 개선할 수 있습니다.
Q3. 회사 내부 문서에 특화된 AI를 만들 수 있나요?
가능합니다. RAG(Retrieval-Augmented Generation) 기법을 활용하면 됩니다. 내부 PDF 문서들을 벡터 데이터베이스(Chroma, Qdrant 등)에 임베딩 후 저장하고, 질문이 들어오면 관련 문서 청크를 검색하여 Ollama 모델의 컨텍스트에 함께 넣어주면 회사 데이터 기반의 프라이빗 AI 어시스턴트를 구축할 수 있습니다. Open WebUI의 문서 업로드 기능이 이 과정을 GUI로 간편하게 지원합니다.
7. 마무리 및 권장사항
Ollama는 개인 개발자부터 기업 환경까지 폭넓게 활용할 수 있는 강력한 로컬 LLM 실행 도구입니다. 데이터 프라이버시가 중요하거나 API 비용을 절감하고 싶다면 Ollama + Llama 3.1 조합은 최고의 선택입니다. 시작은 ollama run llama3.1 명령어 하나로 충분합니다.