🤖 AI/ML

Ollama

Ollama

로컬에서 LLM을 쉽게 실행하는 도구. Llama, Mistral 등 다양한 모델 지원.

📖 상세 설명

Ollama는 로컬 환경에서 대규모 언어 모델(LLM)을 쉽게 실행할 수 있게 해주는 오픈소스 도구입니다. Docker처럼 간단한 명령어로 Llama, Mistral, Gemma, Qwen 등 다양한 오픈소스 모델을 다운로드하고 실행할 수 있습니다.

2023년 출시 이후 로컬 LLM 실행 도구 중 가장 인기 있는 선택지가 되었습니다. 2025년 7월에는 macOS/Windows용 네이티브 데스크톱 앱이 출시되었고, v0.14.3(2026년 1월 기준) Flash Attention 자동 활성화, 이미지 생성 API 지원 등 기능이 크게 향상되었습니다. 'ollama launch' 명령어로 Claude Code, Codex, OpenCode 등 AI 코딩 도구와 바로 연동됩니다.

Ollama는 llama.cpp 기반으로 구축되어 NVIDIA(CUDA), Apple Silicon(Metal), AMD(ROCm), Vulkan GPU 가속을 지원합니다. OpenAI 호환 API(/v1/chat/completions)를 제공해 기존 OpenAI 코드를 거의 수정 없이 로컬에서 실행할 수 있습니다. Structured Outputs(JSON Schema), Streaming Tool Calls 등 고급 API 기능도 지원합니다.

실무에서 Ollama는 프라이버시가 중요한 프로젝트, API 비용 절감, 오프라인 환경 개발, LLM 프로토타이핑에 활용됩니다. 7B-13B 모델은 16GB RAM 맥북에서도 원활하게 실행되며, 70B 모델은 고사양 GPU가 필요합니다.

💻 코드 예제

# Ollama 사용 예제
# 설치: curl -fsSL https://ollama.com/install.sh | sh

# ===== 터미널에서 기본 사용 =====
# ollama pull llama3.2        # 모델 다운로드
# ollama run llama3.2         # 대화 시작
# ollama list                 # 설치된 모델 목록

# ===== Python SDK 사용 =====
# pip install ollama

import ollama

# 1. 기본 채팅
response = ollama.chat(
    model='llama3.2',
    messages=[
        {'role': 'user', 'content': '파이썬으로 퀵소트 구현해줘'}
    ]
)
print(response['message']['content'])

# 2. 스트리밍 응답
for chunk in ollama.chat(
    model='llama3.2',
    messages=[{'role': 'user', 'content': '인공지능이란?'}],
    stream=True
):
    print(chunk['message']['content'], end='', flush=True)

# 3. 시스템 프롬프트 설정
response = ollama.chat(
    model='llama3.2',
    messages=[
        {'role': 'system', 'content': '당신은 친절한 한국어 AI 어시스턴트입니다.'},
        {'role': 'user', 'content': '오늘 날씨 어때?'}
    ]
)

# ===== OpenAI 호환 API 사용 =====
# pip install openai
from openai import OpenAI

client = OpenAI(
    base_url='http://localhost:11434/v1',  # Ollama 서버
    api_key='ollama'  # 아무 값이나 가능
)

response = client.chat.completions.create(
    model='llama3.2',
    messages=[
        {'role': 'user', 'content': 'Hello, how are you?'}
    ]
)
print(response.choices[0].message.content)

# ===== 모델 커스터마이징 (Modelfile) =====
modelfile_content = """
FROM llama3.2
SYSTEM "당신은 한국어 번역 전문가입니다. 영어를 자연스러운 한국어로 번역합니다."
PARAMETER temperature 0.3
"""

# ollama create translator -f Modelfile
# ollama run translator

# ===== 임베딩 생성 =====
embeddings = ollama.embed(
    model='nomic-embed-text',
    input='This is a test sentence'
)
print(f"임베딩 차원: {len(embeddings['embeddings'][0])}")

📊 성능 & 비용

2025년 1월 기준 Ollama 하드웨어 요구사항입니다.

항목 사양/가격 비고
가격 오픈소스 (무료) Apache 2.0 라이선스
지원 모델 수 100+ 모델 Llama, Mistral, Gemma, Qwen 등
7B 모델 RAM 8GB 이상 권장: 16GB
13B 모델 RAM 16GB 이상 권장: 32GB
70B 모델 VRAM 48GB+ GPU 또는 64GB+ RAM (CPU)
지원 GPU NVIDIA, Apple Silicon, AMD CUDA, Metal, ROCm
지원 OS macOS, Windows, Linux Windows 10 22H2+

성능 참고: M2 Pro에서 Llama 3.2 8B 약 30 tokens/sec, RTX 4060 8GB에서 7B 모델 약 40-50 tokens/sec.

🗣️ 실무에서 이렇게 말하세요

💬 프로젝트 기획에서
"고객 데이터 처리라 클라우드 API가 부담스러우면 Ollama로 로컬에서 LLM 돌리는 게 좋겠어요. Llama 3.2 8B면 맥북 프로에서도 잘 돌아가고, OpenAI 호환 API라서 기존 코드 거의 그대로 씁니다."
💬 면접에서
"Ollama는 llama.cpp 기반 로컬 LLM 실행 도구입니다. 'ollama run llama3.2'로 모델을 바로 실행하고, 'ollama launch'로 Claude Code 같은 AI 코딩 도구와 연동합니다. OpenAI 호환 API라서 코드 마이그레이션이 쉽고, 프라이버시가 중요하거나 오프라인 환경에서 유용합니다."
💬 성능 논의에서
"M2 Pro에서 Llama 3.2 8B가 초당 30토큰 정도 나와요. 70B 모델은 48GB VRAM 이상 필요하고요. 속도가 더 필요하면 양자화 버전(Q4_K_M)을 쓰거나, GPU 메모리 설정을 튜닝하면 됩니다."

⚠️ 흔한 실수 & 주의사항

하드웨어 스펙 무시하고 큰 모델 실행

70B 모델은 최소 48GB VRAM이 필요합니다. RAM/VRAM에 맞는 모델 크기를 선택하세요. 7B는 8GB, 13B는 16GB가 권장됩니다.

로컬이라고 무조건 안전하다고 생각

Ollama 서버가 0.0.0.0에 바인딩되면 네트워크에서 접근 가능합니다. 프로덕션에서는 인증/방화벽 설정이 필수입니다.

올바른 접근법

하드웨어에 맞는 양자화 모델(Q4, Q5)로 시작하고, 성능이 부족하면 업그레이드하세요. 프로덕션 배포 시 리버스 프록시와 인증을 설정하세요.

🔗 관련 용어

📚 더 배우기