로컬 LLM 실행하기 - Ollama와 LM Studio
로컬에서 LLM을 실행하면 API 비용 없이, 인터넷 없이, 데이터 프라이버시를 유지하며 AI를 활용할 수 있습니다.
언제 사용하나요?
- 민감한 데이터 처리 (의료, 법률, 금융)
- 오프라인 환경에서 AI 사용
- API 비용 절감
- LLM 학습 및 실험
- 사내 전용 AI 서비스 구축
Ollama - CLI 기반 로컬 LLM
설치
# macOS
brew install ollama
# Linux
curl -fsSL https://ollama.com/install.sh | sh
# Windows
# https://ollama.com/download 에서 다운로드
기본 사용법
# 모델 다운로드 및 실행
ollama run llama3.2
# 대화 시작
>>> 안녕하세요, 자기소개 해주세요
# 모델 목록 확인
ollama list
# 모델 삭제
ollama rm llama3.2
# 백그라운드 서버 실행
ollama serve
추천 모델
| 모델 | 크기 | 특징 |
|---|
| llama3.2 | 2GB | Meta의 최신 모델, 한국어 지원 |
| mistral | 4GB | 빠르고 효율적 |
| codellama | 4GB | 코딩 특화 |
| gemma2 | 5GB | Google 오픈소스 |
| qwen2.5 | 4GB | 중국어/한국어 우수 |
API 서버로 사용
# Ollama는 기본적으로 REST API 제공 (포트 11434)
curl http://localhost:11434/api/generate -d \047{
"model": "llama3.2",
"prompt": "Python으로 퀵소트 구현해줘",
"stream": false
}\047
# Python에서 사용
import requests
response = requests.post("http://localhost:11434/api/generate", json={
"model": "llama3.2",
"prompt": "안녕하세요",
"stream": False
})
print(response.json()["response"])
OpenAI 호환 API
# OpenAI SDK로 Ollama 사용
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:11434/v1",
api_key="ollama" # 아무 값이나 가능
)
response = client.chat.completions.create(
model="llama3.2",
messages=[{"role": "user", "content": "안녕"}]
)
print(response.choices[0].message.content)
LM Studio - GUI 기반 로컬 LLM
특징
- 직관적인 GUI 인터페이스
- 모델 검색 및 다운로드 통합
- 채팅 UI 내장
- OpenAI 호환 서버 내장
사용법
- https://lmstudio.ai 에서 다운로드
- 앱 실행 후 Search에서 모델 검색
- Download 클릭하여 모델 다운로드
- Chat 탭에서 대화 시작
- Local Server 탭에서 API 서버 시작
하드웨어 요구사항
| 모델 크기 | 필요 RAM | GPU VRAM |
|---|
| 7B | 8GB+ | 6GB+ |
| 13B | 16GB+ | 10GB+ |
| 70B | 64GB+ | 40GB+ |
성능 최적화
# Ollama 환경 변수
export OLLAMA_NUM_GPU=1 # GPU 사용
export OLLAMA_NUM_THREAD=8 # CPU 스레드 수
# 양자화 모델 사용 (메모리 절약)
ollama run llama3.2:8b-q4_0 # 4비트 양자화
Ollama vs LM Studio
| 항목 | Ollama | LM Studio |
|---|
| 인터페이스 | CLI | GUI |
| 서버 모드 | 기본 제공 | 수동 시작 |
| 자동화 | 스크립트 연동 용이 | GUI 중심 |
| 모델 관리 | 명령어 | 시각적 |
활용 예시
# 코드 리뷰 자동화
ollama run codellama "이 코드를 리뷰해줘: "
# 문서 요약
cat document.txt | ollama run llama3.2 "이 문서를 3줄로 요약해줘"
# 번역
echo "Hello World" | ollama run llama3.2 "한국어로 번역해줘"