Ollama 모델 가이드
Ollama가 지원하는 다양한 오픈소스 LLM 모델들의 특징과 선택 방법을 알아봅니다.
ollama list명령으로 설치된 모델 확인ollama pull llama3.2로 원하는 모델 다운로드ollama run llama3.2로 모델 실행ollama show llama3.2로 모델 정보 확인- 용도에 맞는 모델을 선택해 프로젝트에 통합
Ollama 모델 개요
Ollama는 다양한 오픈소스 LLM 모델을 로컬에서 실행할 수 있도록 지원합니다. 각 모델은 특정 용도와 하드웨어 환경에 최적화되어 있으며, 크기와 성능 사이의 트레이드오프를 고려해 선택해야 합니다.
주요 모델 패밀리
Ollama가 지원하는 주요 모델 패밀리는 다음과 같습니다:
| 패밀리 | 개발사 | 특징 | 주요 용도 |
|---|---|---|---|
| Llama | Meta | 범용 성능, 다양한 크기 | 일반 대화, 질의응답, 요약 |
| CodeLlama | Meta | 코딩 특화, Python 강점 | 코드 생성, 디버깅, 리팩토링 |
| Mistral | Mistral AI | 효율적, 고품질 | 빠른 추론, 프로덕션 배포 |
| Mixtral | Mistral AI | MoE 아키텍처, 큰 모델 성능 | 복잡한 작업, 멀티태스킹 |
| Phi | Microsoft | 소형 고성능 | 리소스 제한 환경, 엣지 |
| Gemma | 경량, 빠른 속도 | 실시간 응답, 모바일 | |
| Qwen | Alibaba | 다국어 지원, 중국어 강점 | 다국어 처리, 번역 |
| DeepSeek | DeepSeek | 코딩 + 수학 특화 | 기술 문서, 알고리즘 |
모델 선택 프로세스
Ollama 모델 이름은 일반적으로 다음 형식을 따릅니다:
모델명:크기-양자화
# 예시
llama3.2:7b-instruct-q4_0
│ │ │ └─ 양자화 레벨 (4-bit)
│ │ └─────────── 튜닝 타입 (instruction)
│ └─────────────── 파라미터 크기 (7 billion)
└─────────────────────── 모델 패밀리 (Llama 3.2)
Llama 시리즈
Meta의 Llama (Large Language Model Meta AI)는 가장 인기 있는 오픈소스 LLM 패밀리입니다. Ollama에서 지원하는 Llama 모델은 다음과 같습니다.
Llama 3.2 (최신)
2024년 9월 출시된 Llama 3.2는 경량화와 멀티모달 기능에 초점을 맞춘 버전입니다.
| 모델명 | 크기 | 컨텍스트 | RAM 요구 | 특징 |
|---|---|---|---|---|
llama3.2:1b |
1B | 128K | 1.3 GB | 초경량, 엣지 디바이스 |
llama3.2:3b |
3B | 128K | 2.0 GB | 모바일 최적화 |
llama3.2 |
7B | 128K | 4.7 GB | 일반 용도 추천 |
llama3.2:11b-vision |
11B | 128K | 7.9 GB | 이미지 이해 가능 |
llama3.2:90b-vision |
90B | 128K | 55 GB | 고성능 멀티모달 |
설치 및 실행
# 기본 모델 다운로드 (7B)
ollama pull llama3.2
# 경량 모델 (1B)
ollama pull llama3.2:1b
# 비전 모델 (이미지 처리)
ollama pull llama3.2:11b-vision
# 실행
ollama run llama3.2
>>> 안녕하세요. 한국어로 답변해주세요.
안녕하세요! 네, 한국어로 답변드리겠습니다. 무엇을 도와드릴까요?
Llama 3.1
2024년 7월 출시된 Llama 3.1은 대규모 컨텍스트 윈도우(128K 토큰)를 지원하며, 최대 405B 파라미터 모델까지 제공합니다.
| 모델명 | 크기 | RAM 요구 | 특징 |
|---|---|---|---|
llama3.1:8b |
8B | 4.7 GB | 일반 용도 |
llama3.1:70b |
70B | 40 GB | 고성능, 워크스테이션 |
llama3.1:405b |
405B | 231 GB | 최고 성능, 서버용 |
# Llama 3.1 8B 설치
ollama pull llama3.1:8b
# 특정 양자화 버전 선택
ollama pull llama3.1:8b-instruct-q4_0 # 4-bit 양자화
ollama pull llama3.1:8b-instruct-q8_0 # 8-bit 양자화 (고품질)
# 70B 모델 (강력한 GPU 필요)
ollama pull llama3.1:70b
Llama 3
2024년 4월 출시된 Llama 3는 뛰어난 성능과 안정성으로 여전히 많이 사용됩니다.
| 모델명 | 크기 | 컨텍스트 | RAM 요구 |
|---|---|---|---|
llama3:8b |
8B | 8K | 4.7 GB |
llama3:70b |
70B | 8K | 40 GB |
- 제한된 리소스 (8GB 미만):
llama3.2:1b또는llama3.2:3b - 일반 개발 환경 (16GB):
llama3.2(7B) 또는llama3.1:8b - 고성능 워크스테이션 (32GB+):
llama3.1:70b - 이미지 처리 필요:
llama3.2:11b-vision - 긴 컨텍스트 필요: Llama 3.1 시리즈 (128K 토큰)
CodeLlama - 코딩 특화 모델
CodeLlama는 Llama 2를 코드 생성에 특화시킨 모델입니다. Python, JavaScript, C++, Java 등 다양한 언어를 지원하며, 특히 Python에서 뛰어난 성능을 보입니다.
CodeLlama 변형
| 모델명 | 크기 | 특징 | 주요 용도 |
|---|---|---|---|
codellama:7b |
7B | 기본 코드 모델 | 코드 완성, 생성 |
codellama:13b |
13B | 향상된 성능 | 복잡한 코드 생성 |
codellama:34b |
34B | 최고 성능 | 아키텍처 설계 |
codellama:7b-instruct |
7B | 대화형 코딩 | 페어 프로그래밍 |
codellama:7b-python |
7B | Python 전문 | Python 개발 |
실전 활용 예제
# CodeLlama 설치
ollama pull codellama:7b-instruct
# 코드 생성 예제
ollama run codellama:7b-instruct
>>> Write a Python function to calculate Fibonacci numbers with memoization
def fibonacci(n, memo={}):
"""
Calculate the nth Fibonacci number using memoization.
Args:
n: The position in the Fibonacci sequence
memo: Dictionary to store previously calculated values
Returns:
The nth Fibonacci number
"""
if n in memo:
return memo[n]
if n <= 1:
return n
memo[n] = fibonacci(n - 1, memo) + fibonacci(n - 2, memo)
return memo[n]
# 사용 예시
for i in range(10):
print(f"F({i}) = {fibonacci(i)}")
CodeLlama vs 일반 Llama
| 기준 | CodeLlama | Llama 3.2 |
|---|---|---|
| 코드 생성 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
| 일반 대화 | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
| 코드 설명 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
| 디버깅 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
| 다국어 지원 | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
- 일반 대화 능력은 범용 모델보다 제한적
- 최신 라이브러리/프레임워크 정보 부족 (학습 데이터 기준 2023년 초)
- 보안 취약점 검증 필요 (생성된 코드 검토 필수)
- 한국어 코드 주석 생성 품질이 Llama 3.x보다 낮음
Mistral & Mixtral
Mistral AI의 모델들은 효율성과 성능의 균형이 뛰어나며, 프로덕션 환경에서 많이 사용됩니다.
Mistral 7B
Mistral 7B는 7B 파라미터임에도 불구하고 13B 모델과 비슷한 성능을 보이는 것으로 유명합니다.
# Mistral 7B 설치
ollama pull mistral
# Mistral 7B Instruct (대화 최적화)
ollama pull mistral:7b-instruct
# 실행
ollama run mistral:7b-instruct
| 특징 | 내용 |
|---|---|
| 파라미터 | 7.3B |
| 컨텍스트 | 32K 토큰 |
| RAM 요구 | 4.1 GB |
| 아키텍처 | Grouped-Query Attention |
| 강점 | 빠른 추론, 효율적 메모리 사용 |
Mixtral - Mixture of Experts
Mixtral은 MoE (Mixture of Experts) 아키텍처를 사용하여 큰 모델의 성능을 작은 메모리 풋프린트로 구현합니다.
# Mixtral 8x7B 설치
ollama pull mixtral
# Mixtral 8x22B (더 큰 모델)
ollama pull mixtral:8x22b
| 모델 | 구조 | RAM 요구 | 특징 |
|---|---|---|---|
mixtral:8x7b |
8개 전문가, 각 7B | 26 GB | 70B급 성능, 13B급 속도 |
mixtral:8x22b |
8개 전문가, 각 22B | 80 GB | 최고 성능 |
MoE 아키텍처 원리
- 효율성: 전체 파라미터 중 일부만 사용하여 추론 속도 향상
- 전문화: 각 전문가가 특정 도메인에 특화
- 확장성: 전문가 추가로 성능 향상 가능
- 메모리: 큰 모델의 성능을 작은 활성 메모리로 구현
Mistral vs Llama 비교
| 항목 | Mistral 7B | Llama 3.2 7B |
|---|---|---|
| 추론 속도 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
| 메모리 효율 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
| 일반 성능 | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
| 컨텍스트 길이 | 32K | 128K |
| 다국어 지원 | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
Phi - 소형 고성능 모델
Microsoft의 Phi 시리즈는 작은 크기로 큰 모델에 준하는 성능을 제공하는 것이 특징입니다.
Phi 모델 라인업
| 모델 | 크기 | RAM 요구 | 특징 |
|---|---|---|---|
phi3:mini |
3.8B | 2.3 GB | 초경량, 모바일 가능 |
phi3:medium |
14B | 7.9 GB | 균형잡힌 성능 |
phi3.5 |
3.8B | 2.3 GB | 최신 버전, 성능 개선 |
Phi 사용 예제
# Phi-3 mini 설치 (가장 작은 모델)
ollama pull phi3:mini
# Phi-3.5 설치 (최신 버전)
ollama pull phi3.5
# 실행
ollama run phi3:mini
>>> Explain quantum entanglement in simple terms
Quantum entanglement is like having two magic coins that are mysteriously
connected. When you flip one coin and it lands on heads, the other coin
instantly lands on tails, no matter how far apart they are. This connection
happens faster than light could travel between them, which puzzled Einstein
and led him to call it "spooky action at a distance."
Phi vs 다른 소형 모델 벤치마크
| 모델 | 크기 | MMLU | HumanEval | 추론 속도 |
|---|---|---|---|---|
| Phi-3 mini | 3.8B | 69.0% | 58.5% | ⭐⭐⭐⭐⭐ |
| Gemma 2B | 2.0B | 42.3% | 22.0% | ⭐⭐⭐⭐⭐ |
| Llama 3.2 3B | 3.0B | 63.4% | 54.2% | ⭐⭐⭐⭐ |
| Mistral 7B | 7.0B | 62.5% | 40.2% | ⭐⭐⭐⭐ |
- 엣지 컴퓨팅: Raspberry Pi, 임베디드 시스템
- 모바일 앱: 온디바이스 AI 기능
- 실시간 처리: 빠른 응답 필요한 챗봇
- 배치 처리: 대량 문서 분석
- 프로토타이핑: 빠른 실험과 반복
Gemma - Google의 경량 모델
Google의 Gemma는 Gemini 모델의 기술을 기반으로 개발된 오픈소스 모델입니다.
Gemma 모델
| 모델 | 크기 | RAM 요구 | 특징 |
|---|---|---|---|
gemma:2b |
2B | 1.4 GB | 초경량 |
gemma:7b |
7B | 4.8 GB | 일반 용도 |
gemma2:9b |
9B | 5.4 GB | 최신 버전 |
gemma2:27b |
27B | 16 GB | 고성능 |
# Gemma 2B 설치 (가장 작음)
ollama pull gemma:2b
# Gemma 2 9B 설치 (권장)
ollama pull gemma2:9b
# 실행
ollama run gemma2:9b
Gemma의 주요 특징
- 안전성 강화: 유해 콘텐츠 필터링 내장
- 상업적 사용 가능: 제한 없는 라이선스
- 다국어 지원: 한국어 포함 다양한 언어
- 빠른 추론: 최적화된 추론 속도
Gemma 2 시리즈는 다음과 같은 개선사항이 있습니다:
- Sliding window attention으로 긴 컨텍스트 효율적 처리
- 개선된 수학 및 코딩 능력
- 더 나은 다국어 성능
- Knowledge distillation으로 작은 모델 성능 향상
Qwen - 다국어 강자
Alibaba의 Qwen (通义千问)은 특히 중국어와 다국어 처리에 강점을 보이는 모델입니다.
Qwen 모델 라인업
| 모델 | 크기 | RAM 요구 | 특징 |
|---|---|---|---|
qwen2:0.5b |
0.5B | 0.5 GB | 극소형 |
qwen2:1.5b |
1.5B | 1.0 GB | 경량 |
qwen2:7b |
7B | 4.4 GB | 일반 용도 |
qwen2:72b |
72B | 41 GB | 최고 성능 |
qwen2.5-coder |
7B | 4.4 GB | 코딩 특화 |
Qwen 실전 예제
# Qwen 2 7B 설치
ollama pull qwen2:7b
# 코딩 특화 버전
ollama pull qwen2.5-coder
# 다국어 테스트
ollama run qwen2:7b
>>> 请用中文和韩语解释机器学习
# 중국어 응답:
机器学习是人工智能的一个分支,它使计算机能够从数据中学习
并改进性能,而无需明确编程。
# 한국어 응답:
머신러닝은 인공지능의 한 분야로, 컴퓨터가 명시적인 프로그래밍
없이도 데이터로부터 학습하고 성능을 개선할 수 있게 합니다.
Qwen의 강점
- 다국어: 영어, 중국어, 한국어, 일본어 등 29개 언어 지원
- 긴 컨텍스트: 최대 32K 토큰 (Qwen2.5는 128K)
- 수학/코딩: GSM8K, HumanEval에서 높은 점수
- 효율성: 작은 모델도 우수한 성능
- 다국어 챗봇 개발
- 한중일 번역 서비스
- 아시아 시장 타겟 앱
- 크로스링구얼 검색
DeepSeek - 코딩 + 수학 전문가
DeepSeek은 특히 코딩과 수학 문제에 강한 성능을 보이는 중국 기반 모델입니다.
DeepSeek 모델
| 모델 | 크기 | RAM 요구 | 특징 |
|---|---|---|---|
deepseek-coder:6.7b |
6.7B | 3.8 GB | 코딩 특화 |
deepseek-coder:33b |
33B | 19 GB | 고성능 코딩 |
deepseek-coder-v2 |
16B | 9.0 GB | 최신 버전 |
DeepSeek 코딩 예제
# DeepSeek Coder 설치
ollama pull deepseek-coder:6.7b
# 복잡한 알고리즘 구현
ollama run deepseek-coder:6.7b
>>> Implement a B-tree insertion algorithm in Python
class BTreeNode:
def __init__(self, leaf=True):
self.keys = []
self.children = []
self.leaf = leaf
class BTree:
def __init__(self, t):
self.root = BTreeNode()
self.t = t # Minimum degree
def insert(self, key):
root = self.root
if len(root.keys) == (2 * self.t) - 1:
# Root is full, split it
new_root = BTreeNode(leaf=False)
new_root.children.append(self.root)
self._split_child(new_root, 0)
self.root = new_root
self._insert_non_full(self.root, key)
def _split_child(self, parent, index):
t = self.t
full_child = parent.children[index]
new_child = BTreeNode(leaf=full_child.leaf)
# Split keys
mid_key = full_child.keys[t - 1]
new_child.keys = full_child.keys[t:(2 * t) - 1]
full_child.keys = full_child.keys[0:t - 1]
# Split children if not leaf
if not full_child.leaf:
new_child.children = full_child.children[t:2 * t]
full_child.children = full_child.children[0:t]
# Insert mid_key into parent
parent.keys.insert(index, mid_key)
parent.children.insert(index + 1, new_child)
def _insert_non_full(self, node, key):
i = len(node.keys) - 1
if node.leaf:
# Insert into leaf
node.keys.append(None)
while i >= 0 and key < node.keys[i]:
node.keys[i + 1] = node.keys[i]
i -= 1
node.keys[i + 1] = key
else:
# Find child to insert into
while i >= 0 and key < node.keys[i]:
i -= 1
i += 1
if len(node.children[i].keys) == (2 * self.t) - 1:
self._split_child(node, i)
if key > node.keys[i]:
i += 1
self._insert_non_full(node.children[i], key)
DeepSeek 벤치마크
| 벤치마크 | DeepSeek-Coder 6.7B | CodeLlama 7B | Llama 3.2 7B |
|---|---|---|---|
| HumanEval | 78.6% | 53.7% | 62.4% |
| MBPP | 70.2% | 56.2% | 64.1% |
| GSM8K (수학) | 65.4% | 28.7% | 72.8% |
특수 목적 모델
Ollama는 특정 작업에 특화된 다양한 모델도 지원합니다.
멀티모달 (비전) 모델
| 모델 | 특징 | 사용 예 |
|---|---|---|
llava |
7B, 이미지 + 텍스트 | 이미지 설명, OCR |
llava:13b |
13B, 고품질 비전 | 상세 이미지 분석 |
bakllava |
7B, LLaVA 개선 | 일반 이미지 이해 |
llama3.2:11b-vision |
최신, Llama 3.2 기반 | 프로덕션 비전 앱 |
비전 모델 사용 예제
# LLaVA 설치
ollama pull llava
# 이미지와 함께 프롬프트 전송
ollama run llava "What's in this image?" /path/to/image.jpg
# API를 통한 이미지 분석
curl http://localhost:11434/api/generate -d '{
"model": "llava",
"prompt": "Describe this image in detail",
"images": ["'$(base64 < image.jpg)'"]
}'
임베딩 모델
벡터 검색, RAG (Retrieval-Augmented Generation)에 사용되는 임베딩 모델들입니다.
| 모델 | 차원 | 특징 |
|---|---|---|
nomic-embed-text |
768 | 영어 특화, 빠름 |
mxbai-embed-large |
1024 | 고품질 임베딩 |
all-minilm |
384 | 경량, 빠른 속도 |
임베딩 생성 예제
# 임베딩 모델 설치
ollama pull nomic-embed-text
# Python으로 임베딩 생성
import requests
def get_embedding(text):
response = requests.post(
'http://localhost:11434/api/embeddings',
json={
'model': 'nomic-embed-text',
'prompt': text
}
)
return response.json()['embedding']
# 사용 예시
text = "Ollama is a tool for running LLMs locally"
embedding = get_embedding(text)
print(f"Embedding dimension: {len(embedding)}") # 768
기타 특화 모델
| 모델 | 특화 분야 | 설명 |
|---|---|---|
neural-chat |
대화 | Intel 최적화 챗봇 |
starling-lm |
대화 | RLHF 튜닝 |
orca-mini |
추론 | 작은 크기, 강한 추론 |
vicuna |
일반 | GPT-4 데이터 학습 |
wizard-vicuna |
코딩 | Vicuna + 코딩 튜닝 |
양자화 레벨 이해
양자화는 모델의 가중치를 낮은 정밀도로 변환하여 메모리 사용량과 추론 속도를 개선하는 기술입니다.
양자화 타입
| 타입 | 비트 | 품질 | 메모리 | 속도 | 사용 시기 |
|---|---|---|---|---|---|
fp16 |
16-bit | ⭐⭐⭐⭐⭐ | 100% | ⭐⭐⭐ | 최고 품질 필요 |
q8_0 |
8-bit | ⭐⭐⭐⭐⭐ | 50% | ⭐⭐⭐⭐ | 품질 중시 |
q6_K |
6-bit | ⭐⭐⭐⭐ | 38% | ⭐⭐⭐⭐ | 균형잡힌 선택 |
q5_K_M |
5-bit | ⭐⭐⭐⭐ | 31% | ⭐⭐⭐⭐⭐ | 일반 권장 |
q4_K_M |
4-bit | ⭐⭐⭐ | 25% | ⭐⭐⭐⭐⭐ | 제한된 RAM |
q4_0 |
4-bit | ⭐⭐⭐ | 25% | ⭐⭐⭐⭐⭐ | 속도 우선 |
q3_K_M |
3-bit | ⭐⭐ | 19% | ⭐⭐⭐⭐⭐ | 극한 환경 |
q2_K |
2-bit | ⭐ | 12% | ⭐⭐⭐⭐⭐ | 실험적 |
양자화 비교 예제
# 다양한 양자화 버전 비교
# Llama 3.2 7B 기준
ollama pull llama3.2:7b-instruct-fp16 # ~14 GB
ollama pull llama3.2:7b-instruct-q8_0 # ~7.7 GB
ollama pull llama3.2:7b-instruct-q6_K # ~5.9 GB
ollama pull llama3.2:7b-instruct-q5_K_M # ~5.1 GB (권장)
ollama pull llama3.2:7b-instruct-q4_K_M # ~4.4 GB
ollama pull llama3.2:7b-instruct-q4_0 # ~4.1 GB
ollama pull llama3.2:7b-instruct-q3_K_M # ~3.2 GB
ollama pull llama3.2:7b-instruct-q2_K # ~2.6 GB
- RAM 32GB+:
q8_0또는fp16(최고 품질) - RAM 16GB:
q5_K_M또는q6_K(권장) - RAM 8GB:
q4_K_M또는q4_0 - RAM 4GB 이하:
q3_K_M또는 더 작은 모델 선택
참고: K 접미사는 K-quant 방식을 의미하며, 일반적으로 같은 비트 수에서 더 나은 품질을 제공합니다.
양자화 명명 규칙 상세
# 양자화 타입 해석
q4_K_M
│ │ └─ M = Medium (중간 품질)
│ └─── K = K-quant 방식
└───── 4 = 4-bit 양자화
# 변형
q4_K_S # S = Small (가장 빠름, 낮은 품질)
q4_K_M # M = Medium (균형)
q4_K_L # L = Large (높은 품질, 느림)
# 레거시 형식
q4_0 # 구식 4-bit 양자화
q4_1 # 개선된 4-bit (bias 추가)
용도별 모델 선택 가이드
작업 유형별 추천
| 작업 유형 | 1순위 | 2순위 | 3순위 |
|---|---|---|---|
| 일반 대화 | llama3.2:7b | mistral:7b | qwen2:7b |
| 코드 생성 | deepseek-coder:6.7b | codellama:7b | qwen2.5-coder |
| 코드 리뷰 | llama3.1:70b | codellama:13b | deepseek-coder:33b |
| 번역 | qwen2:7b | llama3.2:7b | gemma2:9b |
| 요약 | llama3.1:8b | mistral:7b | phi3:medium |
| 수학 문제 | deepseek-coder:6.7b | llama3.2:7b | qwen2:7b |
| 이미지 분석 | llama3.2:11b-vision | llava:13b | bakllava |
| 임베딩 | nomic-embed-text | mxbai-embed-large | all-minilm |
하드웨어별 추천
8GB RAM (통합 그래픽)
phi3:mini- 2.3 GBgemma:2b- 1.4 GBqwen2:1.5b- 1.0 GBllama3.2:3b- 2.0 GB
16GB RAM (일반 개발자 노트북)
llama3.2:7b- 4.7 GBmistral:7b-instruct-q5_K_M- 4.1 GBcodellama:7b- 3.8 GBqwen2:7b- 4.4 GB
32GB RAM (고성능 워크스테이션)
llama3.1:70b-q4_0- 23 GBmixtral:8x7b- 26 GBcodellama:34b- 19 GBqwen2:72b-q4_0- 28 GB
64GB+ RAM + 고성능 GPU
llama3.1:70b- 40 GBmixtral:8x22b- 80 GBllama3.1:405b-q4_0- 150 GB
언어별 추천
| 언어 | 최적 모델 | 설명 |
|---|---|---|
| 한국어 | llama3.2, qwen2 | 자연스러운 한국어 생성 |
| 중국어 | qwen2, deepseek | 중국어 특화 학습 |
| 일본어 | qwen2, llama3.2 | 다국어 지원 우수 |
| 영어 | 모든 모델 | 기본 언어 |
| 유럽어 | mistral, llama | 다국어 균형 |
모델 태그 시스템
Ollama는 Docker와 유사한 태그 시스템을 사용합니다.
태그 예제
# 기본 형식
모델명:태그
# 태그 생략 시 :latest 자동 적용
ollama pull llama3.2
# = ollama pull llama3.2:latest
# 크기 지정
ollama pull llama3.2:7b
ollama pull llama3.2:3b
ollama pull llama3.2:1b
# 크기 + 튜닝 타입
ollama pull llama3.2:7b-instruct
ollama pull llama3.2:7b-text
# 크기 + 튜닝 + 양자화
ollama pull llama3.2:7b-instruct-q4_K_M
ollama pull llama3.2:7b-instruct-q8_0
# 특수 변형
ollama pull llama3.2:11b-vision
ollama pull codellama:7b-python
태그 구성 요소
| 요소 | 예시 | 설명 |
|---|---|---|
| 크기 | 7b, 13b, 70b |
파라미터 수 (billion) |
| 튜닝 | instruct, chat, text |
파인튜닝 타입 |
| 양자화 | q4_0, q5_K_M, fp16 |
압축 레벨 |
| 특수 | vision, python, coder |
특화 기능 |
태그 관리
# 설치된 모델 확인 (태그 포함)
ollama list
NAME ID SIZE MODIFIED
llama3.2:latest abc123 4.7 GB 2 days ago
llama3.2:7b-instruct-q4_0 def456 4.1 GB 1 week ago
mistral:7b-instruct-v0.2 ghi789 4.1 GB 3 days ago
# 특정 태그 삭제
ollama rm llama3.2:7b-instruct-q4_0
# 모델 정보 확인
ollama show llama3.2:7b-instruct-q4_0
# 모든 버전 확인 (원격 레지스트리)
ollama search llama3.2
:latest태그는 시간에 따라 변경될 수 있음 (재현성 주의)- 프로덕션에서는 명확한 태그 사용 권장 (
llama3.2:7b-instruct-q5_K_M) - 같은 모델의 다른 양자화 버전은 별도 다운로드 필요
- 태그는 대소문자 구분 (
7B≠7b)
모델 비교 매트릭스
종합 비교
모델 비교는 용도(대화/코딩/다국어), 하드웨어 제약, 지연 시간 목표를 기준으로 판단하는 것이 가장 안전합니다.
객관적 벤치마크 점수
벤치마크 점수는 모델/버전/환경에 따라 크게 달라질 수 있습니다. 동일 조건에서 직접 테스트해 확인하세요.
- MMLU: 다양한 학술 주제에 대한 이해도 (0-100)
- HumanEval: Python 코드 생성 능력 (0-100)
- GSM8K: 초등 수학 문제 해결 능력 (0-100)
- TruthfulQA: 사실 기반 답변 정확도 (0-100)
모델 선택 모범 사례
평가 프로세스
-
요구사항 정의
- 주요 작업 유형 (대화, 코딩, 번역 등)
- 응답 품질 vs 속도 우선순위
- 다국어 지원 필요성
-
하드웨어 확인
- 사용 가능한 RAM/VRAM 크기
- GPU 유무 및 성능
- 저장 공간 (모델당 수 GB)
-
후보 모델 선정
- 3-5개 후보 모델 리스트업
- 다양한 양자화 레벨 포함
-
실전 테스트
- 실제 사용 케이스로 테스트
- 응답 품질, 속도, 메모리 사용량 측정
-
최종 선택
- 정량적 + 정성적 평가 결합
- 프로덕션 환경 고려
간단한 테스트 스크립트
#!/bin/bash
# 여러 모델 성능 비교 스크립트
MODELS=("llama3.2:7b" "mistral:7b" "deepseek-coder:6.7b")
PROMPT="Write a Python function to find prime numbers"
for model in "${MODELS[@]}"; do
echo "Testing $model..."
# 시간 측정
start=$(date +%s)
# 응답 생성
ollama run "$model" "$PROMPT" > "result_${model//:/_}.txt"
end=$(date +%s)
duration=$((end - start))
echo "$model: ${duration}s" >> benchmark.txt
# 메모리 사용량 확인
ollama ps | grep "$model" >> benchmark.txt
echo "---" >> benchmark.txt
done
echo "Benchmark complete. Check benchmark.txt for results."
추천 전략: 경량 모델로 초기 검증을 하고, 품질이 부족할 때만 더 큰 모델로 단계적으로 확장하세요. GPU/VRAM과 지연 시간 요구를 기준으로 균형점을 찾는 것이 중요합니다.
핵심 정리
- Ollama 모델 가이드의 핵심 개념과 흐름을 정리합니다.
- Ollama 모델 개요를 단계별로 이해합니다.
- 실전 적용 시 기준과 주의점을 확인합니다.
실무 팁
- 입력/출력 예시를 고정해 재현성을 확보하세요.
- Ollama 모델 가이드 범위를 작게 잡고 단계적으로 확장하세요.
- Ollama 모델 개요 조건을 문서화해 대응 시간을 줄이세요.