부록 G. 온디바이스·로컬 LLM 실전 가이드

클라우드 LLM이 쓰기 어려운 상황(금융·의료 규제, 기밀 정보, 대량 저비용 처리)에서 로컬에서 LLM을 돌리는 법. 2026-04-17 기준으로 Ollama 공식 라이브러리·Hugging Face 동향을 반영한 최신판입니다.

🆕 2026-04 주요 업데이트
  • Llama 4 공개(MoE 16×17B / 128×17B, 멀티모달 네이티브)
  • DeepSeek-R1 추론 모델 — Claude/o3급 수학·코딩 성능을 오픈으로
  • Qwen 3 0.6B~235B, 도구·추론·멀티모달 통합
  • OpenAI GPT-OSS 20B / 120B — 마침내 오픈 릴리스(에이전트·추론 최적화)
  • Gemma 4 엣지 E2B/E4B(오디오까지 멀티모달) · 26B MoE(활성 4B) · 31B 밀집형, 256K 컨텍스트
  • Mistral Large 3 멀티모달 MoE, 128k 컨텍스트

G.1 언제 로컬 LLM을 쓰나

시나리오이유
기밀 문서 요약외부 전송 금지 — 국외 이전 동의 회피(부록 B.2)
대량 분류·태깅건당 0.001¢ 이하 가능 — 클라우드 대비 50~100배 저렴
오프라인/엣지공장·매장·선박 — 인터넷 부재
반복 자동화토큰 단가 없음 — 하드웨어 감가만 고려
데모·개발API 키 없이 팀 전체가 무료 시험
추론형 과제DeepSeek-R1·GPT-OSS 120B로 o3급 품질을 로컬에서

안 맞는 경우

  • 최고 수준 에이전트(장시간 자율 작업) — Claude Opus 4.7이 여전히 선도
  • 아주 적은 호출량 — 하드웨어 고정비가 큼
  • 1M 이상 컨텍스트 — 대부분의 오픈 모델은 128k~256k
  • 실시간 최신 정보 — 클라우드 모델 + 웹검색 조합이 유리

G.2 2026-04 주목 오픈 모델

모델파라미터컨텍스트강점라이선스
Llama 4 (Meta)MoE 16×17B / 128×17B1M(Scout)네이티브 멀티모달, 초장문Llama Community (월 7억 MAU↓ 무료)
Qwen 3 (Alibaba)0.6B ~ 235B (MoE)128k도구·추론·멀티모달 통합, 한·중·일Apache 2.0
DeepSeek-R11.5B ~ 671B (MoE)128k수학·코딩 추론, o3/Claude급MIT, 증류 모델 포함
DeepSeek V3671B (MoE, 활성 37B)128k범용 강자, 비용 대비 최강MIT
GPT-OSS (OpenAI)20B · 120B128k에이전트·추론 최적화, Apache-2 급 허용Apache 2.0
Gemma 4 (Google)E2B(2.3B) · E4B(4.5B) · 26B MoE(활성 4B) · 31B128K(엣지) / 256K(상위)네이티브 시스템 프롬프트·사고 모드, 엣지는 오디오까지 멀티모달, 단일 GPU 운용Gemma License
Gemma 3 (Google, 참고)270M · 1B · 4B · 12B · 27B128k이전 세대, 여전히 경량 강세Gemma License
Mistral Large 3MoE (공개 규모 미상)128k멀티모달, 유럽 데이터 주권MRL (비상업 무료) + 상업 유상
Qwen 2.5-Coder0.5B ~ 32B128k코드 생성·수정 특화Apache 2.0
Phi-4 (Microsoft)14B16k경량·데이터 효율, 추론 강화MIT
EXAONE 4 (LG AI)2.4B · 7.8B · 32B128k한국어 벤치 최상위, 국산EXAONE AI Model License(연구·비상업)
HyperCLOVA X Seed (Naver)1.5B · 3B8k한국어 경량, 모바일/엣지HyperCLOVA X License

※ 한국어 특화/국산은 Hugging Face에서 직접 GGUF를 받아 Ollama Modelfile로 등록하거나 LM Studio로 로드. Apache 2.0/MIT 모델은 상업 사용 자유로움 — 라이선스 확인 필수.

G.3 2026-04 시점의 "체급 vs 체감 품질"

목표 성능로컬 대안 (Q4 양자화 기준)대응 클라우드
GPT-4o / Sonnet 4.6 급 일반 대화Llama 4 128×17B · Qwen 3 235B · DeepSeek V3Sonnet 4.6
o3 / Extended Thinking 급 추론DeepSeek-R1 671B · GPT-OSS 120BOpus 4.7 Thinking
Haiku 4.5 / GPT-4o mini 급 저비용Qwen 3 8~14B · Gemma 4 E4B/26B · Llama 3.2 3BHaiku 4.5
멀티모달(비전·오디오)Llama 4 · Qwen 3-VL · Gemma 4 E4B·31BGPT-4o · Gemini 3 Pro
코딩 보조Qwen 2.5-Coder 32B · DeepSeek V3 · GPT-OSS 120BClaude Code(Sonnet/Opus)
한국어 자연도EXAONE 4 32B · Qwen 3 72B · HyperCLOVA X SeedSonnet 4.6(한국어 우수)

G.4 하드웨어 가이드 (2026-04 갱신)

용도추천 모델 크기권장 하드웨어비고
개인 개발자~14B (Q4)RTX 4070 Ti Super 16GB · RTX 5070 12GB · M3 Pro 18GB80~150만 원대
파워 유저32B~70B (Q4)RTX 4090 24GB · RTX 5090 32GB · M4 Max 64~128GBGPU 단일로 70B 가능
팀 공용 서버70B~120BRTX 4090/5090 ×2 · A6000 48GB · M3 Ultra 192GB동시 사용자 5~20
엔터프라이즈235B MoE · 405B · 671BH100/H200 80GB ×4~8 · B200MoE는 활성 파라미터만 VRAM 필요
엣지 / AI PC1B~4B (Q4)Snapdragon X Elite · Copilot+ PC · M2/M3 MacBookNPU로 전력 효율↑
모바일0.6B~1B (Q4)Apple Neural Engine · 스냅드래곤 NPUMLC-LLM·llama.cpp 사용

양자화 포맷: GGUF(범용·CPU+GPU), MLX(Apple Silicon 네이티브), AWQ/GPTQ/EXL2(GPU 최적). 품질 손실: Q8<Q6<Q5<Q4<Q3 (Q4가 사실상 표준).

G.5 실행 도구 선택 (2026-04)

  • Ollamaollama run qwen3 한 줄. OpenAI 호환 API 내장, 구조화 출력·도구 호출 지원. 가장 빠른 시작.
  • LM Studio — GUI. GGUF + MLX 듀얼 런타임, RAG 기본 내장, MCP 서버 지원.
  • llama.cpp — 저레벨 엔진. 임베디드·커스텀 빌드. 대부분 상위 도구의 코어.
  • vLLM — 프로덕션 서버. v0.7+ 에서 구조화 출력(JSON/Grammar)·도구 호출·스페큘러티브 디코딩 강화. OpenAI 호환.
  • SGLang — vLLM 대안. 에이전트·멀티턴·병렬 프로그램형 LLM에 강점.
  • Text Generation Inference (TGI) — Hugging Face 서버. 엔터프라이즈 SLA가 필요할 때.
  • MLX / MLX-LM — Apple Silicon 네이티브. M3 Ultra에서 235B MoE를 메모리 내에 올려 실행 가능.
  • MLC-LLM — 모바일·웹·WebGPU까지 배포. 사내 앱 탑재에 유용.
  • Jan / GPT4All / Open WebUI — Ollama 위의 데스크톱/웹 프론트엔드. 팀 협업·대화 이력 관리.

G.6 5분 퀵스타트 (Ollama · 2026-04 기준)

# 설치 (macOS/Linux)
curl -fsSL https://ollama.com/install.sh | sh
# Windows는 ollama.com/download

# 최신 주력 모델 당기기
ollama pull qwen3:14b          # 범용 추천
ollama pull deepseek-r1:14b    # 추론 강화
ollama pull llama4:scout       # 멀티모달 + 장문
ollama pull gpt-oss:20b        # OpenAI 오픈판

# 실행
ollama run qwen3:14b "한국어로 자기소개해줘"

# OpenAI 호환 API가 자동 기동 (localhost:11434/v1)
curl http://localhost:11434/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "qwen3:14b",
    "messages": [{"role":"user","content":"한국 PM 업계 동향 3가지"}],
    "response_format": {"type": "json_object"}
  }'

Python/TypeScript SDK는 base_url=http://localhost:11434/v1만 바꾸면 OpenAI 코드를 그대로 사용. 2026-04 기준 Ollama는 구조화 출력 + 도구 호출을 공식 지원합니다.

G.7 Claude Code·Cursor에 로컬 LLM 연결

최신 Claude Code/Cursor는 OpenAI 호환 엔드포인트를 지원합니다.

// ~/.cursor/config.json 예
{
  "openai": {
    "baseURL": "http://localhost:11434/v1",
    "apiKey": "ollama",
    "model": "qwen3:32b"
  }
}

2026-04 팁: 에이전트형 도구 호출은 최소 Qwen 3 32B 또는 GPT-OSS 120B 이상 권장. 14B 이하는 Tool calling 정합성이 낮아 Plan-Execute-Verify 루프(부록 D)에서 실패율이 올라갑니다.

G.8 한국어 품질 팁

  • 한국어 강세 모델: EXAONE 4 32B, Qwen 3 72B, HyperCLOVA X Seed 3B, Llama-3.1-Korean-Bllossom-70B
  • 공개 벤치: Open Ko-LLM Leaderboard (Upstage), Ko-Arena(커뮤니티)
  • 영문 모델을 강제로 한국어로 쓰면 어색한 표현 증가 — 시스템 프롬프트에 "자연스러운 한국어 표현 우선, 어색하면 재작성" 명시
  • 파인튜닝: QLoRA로 노트북·단일 GPU에서 가능. 사내 문서 1,000~5,000건으로 도메인 특화 3~8시간
  • 임베딩은 BGE-M3, Upstage Solar Embedding, Nomic-Embed가 한국어 RAG에 강함

G.9 보안·운영 체크리스트

항목확인
네트워크Ollama 기본 포트 11434가 외부에 노출되지 않도록(OLLAMA_HOST=127.0.0.1 또는 사내망 바인딩)
모델 출처Hugging Face 검증된 계정만. 불명 GGUF는 악성 코드(템플릿 인젝션·Pickle) 가능성
라이선스Llama 4: 월 7억 MAU 미만 무료 / Qwen 3·DeepSeek·GPT-OSS: Apache/MIT / Mistral Large 3: 상업 유상 / EXAONE·HyperCLOVA: 비상업 연구용 — 상업 사용 전 반드시 확인
로그프롬프트에 개인정보·비밀 포함 시 로그에도 남음 → 정기 삭제·암호화
갱신모델은 월 단위로 진화. 분기 1회 벤치 재평가 + CHANGELOG 관리
공급망Ollama 레지스트리 외에 ollama pull hf.co/{user}/{repo}:{quant}로 Hugging Face 직통 가능 → 서명·해시 확인

G.10 하이브리드 아키텍처 추천

[민감/대량/저난도]  → 로컬 Qwen 3 14B (Ollama) 또는 Gemma 4 E4B/26B
[일반 추론]         → 로컬 DeepSeek-R1 70B 또는 GPT-OSS 120B
[고난도 에이전트]   → Claude Opus 4.7 (클라우드)
[라우터 (LLM)]      → Haiku 4.5로 질문 난이도·민감도 분류 후 선택
[가드레일]          → PII 검출 시 무조건 로컬로 강제 / 규제 업무는 로컬 한정

이 구조만으로 비용 40~70% 절감하면서 고난도 품질 유지가 가능합니다. 2026-04 기준 많은 국내 금융·의료·공공 파일럿이 이 모델을 따르고 있습니다(부록 I 사례 참고).

G.11 미니 실습 — 사내 문서 요약 봇 (Ollama + Python)

from openai import OpenAI   # Ollama는 OpenAI SDK 그대로 지원
client = OpenAI(base_url="http://localhost:11434/v1", api_key="ollama")

SYSTEM = """너는 사내 문서를 요약하는 어시스턴트다.
- 외부에 문서를 노출하지 않는다(모두 로컬 처리).
- 인물명·계정·계약 금액은 원문 그대로 유지한다.
- 요약은 3 bullet 이내, 각 80자."""

def summarize(doc: str) -> str:
    resp = client.chat.completions.create(
        model="qwen3:14b",
        messages=[
            {"role": "system", "content": SYSTEM},
            {"role": "user",   "content": doc},
        ],
        temperature=0.2,
    )
    return resp.choices[0].message.content

if __name__ == "__main__":
    with open("internal_memo.md", encoding="utf-8") as f:
        print(summarize(f.read()))

이 코드는 외부로 어떤 바이트도 나가지 않습니다. 사내 감사·개인정보보호 검토를 통과하기 쉬운 구조입니다.

G.12 참고

← 메인으로 돌아가기 · 최근 업데이트: 2026.04.17