APPENDIX · HARDWARE

로컬 LLM 실행 생태계

HuggingFace · Ollama · LM Studio · MLX

로컬 LLM 실행 생태계

연관 문서: LLM 구동의 주요 스펙: 메모리 용량과 대역폭

ollama run qwen3:14b 한 줄. 이게 끝이에요. 8 GB 짜리 모델 파일이 자동으로 받아지고, 메모리에 올라가고, localhost:11434 에 OpenAI 호환 API 가 떠 있어요. 클라우드 LLM 을 호출하던 기존 앱의 베이스 URL 만 바꾸면 — 같은 코드가 외부망 차단된 폐쇄망에서도, 비행기 안에서도 그대로 돌아요.

본문 §5에서 "외부망이라면 경량 모델을 로컬에 올려 쓰는 선택지가 생긴다"고 언급한 그 선택지를 도구 단위로 펼쳐볼게요. 모델 저장소실행 엔진활용 레이어 의 3계층 구조와, 각 계층에서 어떤 도구가 어떤 문제를 푸는지 짧게 정리합니다.


왜 로컬 실행인가

클라우드 LLM(ChatGPT, Claude API 등)은 편리하지만 세 가지 제약이 있습니다.

  • 프라이버시: 입력한 내용이 외부 서버로 전송됩니다.
  • 비용: 토큰 단위 과금이므로 대량 사용 시 비용이 빠르게 쌓입니다.
  • 인터넷 의존: 오프라인 또는 폐쇄망 환경에서 사용이 불가능합니다.

로컬 실행은 이 세 가지를 모두 해결해요. 오픈소스 LLM을 자신의 PC나 서버에 올려두면 데이터가 외부로 나가지 않고, 사용량에 관계없이 추가 비용이 없으며, 인터넷 없이도 동작합니다. 트레이드오프는 명확해요 — 모델 품질이 같은 가격대 클라우드보다 한 단계 낮고, 메모리·대역폭 한계까지 직접 신경 써야 합니다. 그래서 "로컬이냐 클라우드냐" 가 아니라 "어떤 일을 로컬로 옮길 수 있느냐" 가 실제 의사결정이에요.


생태계 전체 구조

로컬 LLM 실행에는 세 계층의 도구가 관여해요.

flowchart TD subgraph L1["계층 1: 모델 레지스트리 (Layer 1: Model Registry)"] HF["HuggingFace Hub"] end subgraph L2["계층 2: 추론 엔진 (Layer 2: Inference Engine)"] subgraph L2a["일반 사용 (general use)"] Ollama["Ollama"] LMStudio["LM Studio"] Jan["Jan"] Llamafile["llamafile"] end subgraph L2b["MLX 계열 (Apple Silicon)"] MLXLM["mlx-lm"] OMLX["oMLX"] end subgraph L2c["서버·분산 (server / distributed)"] LlamaCpp["llama.cpp (단독)"] VLLM["vLLM"] MLC["MLC LLM"] Exo["exo"] end end subgraph L3["계층 3: 응용 (Layer 3: Application)"] OpenClaw["OpenClaw"] Custom["사용자 앱 / SDK (Custom App / SDK)"] end HF -->|"다운로드 (.gguf / .safetensors / .mlx)"| L2 L2a -->|"OpenAI 호환 API"| OpenClaw L2a -->|"OpenAI 호환 API"| Custom L2b -->|"OpenAI 호환 API (mlx_lm.server / oMLX)"| Custom L2c -->|"OpenAI 호환 API"| Custom

모델 파일(수십~수백 GB)은 HuggingFace Hub에서 내려받고, 2계층의 추론 엔진이 이를 메모리에 올려 API로 노출하며, OpenClaw나 자체 개발 앱이 그 API를 통해 LLM을 활용해요. 핵심은 2계층의 OpenAI 호환 API — 이 한 가지 규약 덕분에 위쪽(앱) 과 아래쪽(엔진) 이 독립적으로 교체돼요. 추론 엔진은 다시 세 갈래로 나뉘는데, 본문에서는 일반 사용(Ollama·LM Studio·Jan·llamafile) → MLX 계열(mlx-lm·oMLX) → 서버·분산(llama.cpp 단독·vLLM·MLC LLM·exo) 순서로 정리해요.

비유하자면 도커 이미지 생태계와 닮았어요. 도커 허브(이미지 저장소) → 도커 엔진(실행) → 컨테이너로 만든 앱(활용) 의 3계층이 그대로 LLM 쪽으로 옮겨와, 이미지 자리에 모델, 엔진 자리에 Ollama/LM Studio 가 들어선 모양이에요. 정확히는 — 도커 이미지는 실행 시 거의 그대로 메모리에 올라가지만, LLM 모델은 양자화·KV 캐시·컨텍스트 길이 같은 런타임 옵션이 추가되어 같은 모델 파일도 엔진·옵션에 따라 다른 크기·속도로 동작합니다.


HuggingFace Hub

"AI 모델의 GitHub"

한 줄 설명

전 세계 연구자·기업이 학습시킨 AI 모델을 올려두는 공개 저장소예요. Ollama·LM Studio가 모델을 내려받는 원천이 됩니다.

무엇을 할 수 있나

기능설명코딩 필요 여부
모델 검색Llama, Qwen, Gemma 등 200만+ 모델 검색·다운로드불필요
Spaces브라우저에서 바로 AI 앱 체험 (설치 없음)불필요
Inference API클라우드에서 모델 API 호출 (월 100K 크레딧 무료)최소
Chat UIChatGPT처럼 대화 (무료)불필요
AutoTrainUI 기반 모델 파인튜닝불필요

비용

모델 다운로드와 Spaces 사용은 무료입니다. 전용 클라우드 추론 서버(Inference Endpoints)나 엔터프라이즈 기능은 유료입니다.

로컬 실행과의 관계

HuggingFace Hub 자체는 클라우드 서비스예요. 로컬 실행을 원한다면, 허브에서 모델 파일(.gguf, .safetensors 형식)을 내려받아 Ollama나 LM Studio에 불러와요. LM Studio는 앱 안에서 HuggingFace 검색·다운로드를 통합 제공합니다.

.gguf 는 양자화된 단일 파일 포맷(llama.cpp 계열이 표준), .safetensors 는 PyTorch 가중치를 안전하게 저장한 포맷이에요. 같은 모델이라도 양자화 단계(Q4, Q5, Q8 등)에 따라 파일 크기와 메모리 점유가 크게 달라지므로, 같은 70B 모델이 4 GB 짜리부터 140 GB 짜리까지 변종으로 존재해요 — 자세한 실측은 model-gguf-sizes 노트에 정리되어 있어요.


Ollama

"터미널 한 줄로 LLM을 실행하는 도구"

한 줄 설명

명령줄(터미널)에서 ollama run qwen3:14b를 입력하면 모델을 자동으로 내려받아 즉시 대화할 수 있어요. 개발자가 다른 앱과 연동할 때 가장 널리 사용하는 로컬 실행 엔진이에요.

주요 특징

OpenAI 호환 API: Ollama는 localhost:11434/v1/ 주소로 REST API를 노출해요. ChatGPT를 연결하도록 만들어진 기존 앱·라이브러리를 설정만 바꿔 로컬 모델로 전환할 수 있어요.

모델 라이브러리: ollama.com/library에서 Llama·Qwen·Gemma·DeepSeek 등 주요 모델을 검색하고 ollama pull <모델명>으로 내려받아요. 태그 페이지(ollama.com/library/<모델명>/tags)에는 양자화별 컨텍스트 길이·용량이 한눈에 정리되어 있어, 구매 전 하드웨어 적합도 판단에 유용해요.

멀티모달: LLaVA 계열 모델로 이미지 입력을 지원합니다.

Ollama Cloud — 로컬 도구 그대로, 데이터센터 GPU 로

Ollama 는 순수 로컬 런처가 아니에요. 2025-09-19 부터 Cloud 프리뷰가 같은 CLI / API / Desktop 앱 안에 통합되어 있어요. 로컬 메모리에 안 들어가는 큰 모델(deepseek-v4-pro 1.6T, qwen3-coder-480b, glm-4.6, gpt-oss:20b, MiniMax M2 등)을 model_id:cloud 같은 모델 ID suffix 로 호출하면 Ollama 가 자기 데이터센터로 라우팅해서 응답을 받아와요.

ollama run deepseek-v4-pro:cloud "..."          # 로컬 CLI 그대로, 모델만 cloud
ollama run kimi-k2.6:cloud "..."                # v0.21.1 부터 메인스트림

핵심 사실 (2026-05-19 ollama.com/cloud 직접 확인):

  • 데이터센터: US 우선, 글로벌 수요는 EU·Singapore 로 라우팅
  • 데이터 정책: zero data retention · no logging · no training 으로 명시 — 사내 RAG / 코딩 에이전트가 클라우드 LLM 을 못 쓰는 가장 큰 이유(데이터 보존)를 정면으로 다룸
  • 요금: Free (라이트 사용 / 로컬 무제한) · Pro $20/mo · Max $100/mo
  • API 호환: 로컬과 동일 — OpenAI 호환 REST + ollama CLI + Desktop 앱. 즉 같은 클라이언트 코드로 로컬 7B → 클라우드 480B 전환이 모델 ID 한 줄 차이

이게 의미하는 바: 본 노트가 줄곧 "로컬 LLM" 카테고리에서 다룬 Ollama 는 사실 "로컬 데몬 + 데이터센터 백업이 같은 인터페이스로 결합된 하이브리드" 에 가까워요. 메모리 부담이 작은 모델은 로컬에서, 32GB RAM 으로 못 띄우는 큰 모델은 cloud 에서. 그 사이의 전환은 사용자가 의식하지 않아도 돼요.

지원 플랫폼

macOS·Linux·Windows 모두 지원합니다.

최근 주요 업데이트

  • Cloud (preview) (2025-09-19): model_id:cloud 호출 패턴 등장 — 같은 CLI 로 데이터센터 모델
  • v0.21.1 (2026-04): kimi-k2.6:cloud 클라우드 모델 추가 (ollama launch kimi)
  • v0.21.0 (2026-04-16): Gemma 4 on MLX 지원, Hermes Agent, GitHub Copilot CLI 통합 (Kimi/GLM/MiniMax 신규 추가는 없으며 OpenClaw 호환은 v0.20.5부터 이미 제공됨)
  • v0.6.2 (2025-03-18): Gemma 3 멀티 이미지 입력, AMD Strix Halo 지원 (Llama 4는 v0.7.0부터)

비용

로컬 사용은 완전 무료·오픈소스. Cloud 만 별도 요금 (Free / Pro $20 / Max $100, 위 참조).


LM Studio

"ChatGPT를 내 컴퓨터에 설치한 것"

한 줄 설명

그래픽 UI를 갖춘 데스크탑 앱이에요. 터미널 없이 클릭만으로 모델을 검색·다운로드하고, ChatGPT처럼 대화하거나 PDF를 분석할 수 있어요.

주요 특징

모델 검색 UI: 앱 안에서 HuggingFace 모델을 직접 검색·다운로드해요. 권장 스펙을 미리 표시해줘서 내 PC에 맞는 모델을 고를 수 있어요.

로컬 API 서버: Ollama와 마찬가지로 OpenAI 호환 API(localhost:1234/v1/)를 노출해요. Python·JavaScript SDK도 제공합니다.

LM Link (v0.4.5+): 원격 PC의 LM Studio에 Tailscale 암호화로 연결해, 성능 좋은 데스크탑의 모델을 다른 기기에서 쓸 수 있어요.

MCP 서버 연결 (v0.4.10+): 외부 도구를 연결하는 MCP(Model Context Protocol)를 지원해 에이전트 기능을 확장할 수 있어요. v0.4.10에서 MCP 서버 인증에 OAuth가 추가됐어요.

지원 플랫폼

macOS·Windows·Linux(ARM 포함) 지원합니다.

최근 주요 업데이트

  • v0.4.12 (2026-04-17): Qwen 3.6 지원
  • v0.4.11 (2026-04): Gemma 4 채팅 템플릿 업데이트
  • v0.4.10 (2026-04-09): MCP 서버 OAuth 인증 지원
  • v0.4.5 (2026-02-25): LM Link — Tailscale 기반 원격 LM Studio 접속

비용

완전 무료입니다. (개인·업무 모두)


Jan

"오픈소스 LM Studio 대안"

한 줄 설명

LM Studio 와 같은 GUI 데스크탑 앱인데 앱 자체가 오픈소스예요(Apache 2.0). LM Studio 는 무료지만 소스가 비공개라, 코드 감사·내부 개조가 필요한 환경(보안 검토가 까다로운 사내·연구실)에서 Jan 이 차선책으로 자리잡았어요.

주요 특징

  • 백엔드는 llama.cpp + 자체 런타임 Cortex
  • OpenAI 호환 로컬 API (localhost:1337/v1/)
  • 클라우드 모델 연결도 같이 — OpenAI·Anthropic·Mistral·Groq·MiniMax 키만 넣으면 같은 UI 에서 호출
  • MCP (Model Context Protocol) 지원으로 외부 도구 연결 가능
  • Tauri 데스크탑 프레임워크 사용 (Rust+웹뷰, Electron 보다 가벼움)

지원 플랫폼·버전

  • macOS 13.6+, Windows 10+ (NVIDIA/AMD/Intel Arc GPU 가속), Linux 대부분 배포판
  • 최신: v0.7.9 (2026-03-23)

비용

완전 무료입니다. 소스 코드 자체도 공개.


llamafile

"단일 실행 파일로 LLM 배포"

한 줄 설명

Mozilla 의 llamafile하나의 실행 파일에 LLM 추론 엔진·모델 가중치·웹 UI 를 모두 포함시켜요. ./Llama-3.2-3B.llamafile 한 줄이면 모델이 뜨고 브라우저에서 채팅 화면이 열려요. Cosmopolitan Libc 라는 트릭으로 같은 바이너리가 macOS·Linux·Windows·BSD 어디서든 실행돼요.

작동 원리

  • 내부 엔진: llama.cpp (gguf 포맷)
  • Cosmopolitan Libc 가 여러 OS 의 ELF/Mach-O/PE 헤더를 하나의 파일에 동거시켜 OS 가 자기에게 맞는 헤더로 진입하게 만듬 — "Actually Portable Executable" 아키텍처
  • 실행 시 OpenAI 호환 API 서버 + 웹 UI 동시 기동

한계

  • Windows 실행 파일은 4GB 한도 (PE32+ 한도). 큰 모델(예: Llama-3.1-70B)은 llamafile 바이너리와 GGUF 가중치를 분리해 외부 다운로드 형태로 배포
  • 백엔드가 llama.cpp 라서 Apple Silicon 의 ANE(Neural Engine) 같은 가속기는 미활용

지원 플랫폼·버전

  • 아키텍처: x86·ARM·Apple Silicon
  • OS: macOS·Linux·Windows·BSD
  • 최신: v0.10.1 (2026-05-01) — 빌드 시스템 재설계로 llama.cpp 최신본 추적이 빨라짐
  • 부속: whisperfile (Whisper STT 단일 파일)

비용

완전 무료입니다.


Ollama vs LM Studio — 어느 쪽을 골라야 하나

둘 다 OpenAI 호환 API 를 띄우고, 둘 다 같은 GGUF 모델을 굴려요. 다른 점은 운용 모델 이에요.

flowchart TD A["로컬 LLM 시작 (start local LLM)"] --> B{"스크립트/앱과<br/>API 연동이 주 목적?<br/>(API integration?)"} B -->|"예 (Yes)"| C["Ollama"] B -->|"아니오 (No)"| D{"GUI 채팅·<br/>PDF 분석이 주 목적?<br/>(GUI chat / PDF?)"} D -->|"예 (Yes)"| E["LM Studio"] D -->|"아니오 (No)"| F["둘 다 필요 (both)"] F --> G["병행 사용 (parallel use)<br/>포트 11434 vs 1234"] C --> H["ollama serve를<br/>백그라운드 데몬으로 (as background daemon)"] E --> I["데스크탑 앱 (desktop app)<br/>실행 중에만 API 활성"]

핵심 차이를 한 줄씩으로 정리하면:

  • Ollama 는 데몬이에요. systemdlaunchctl 로 백그라운드에 띄워두고 여러 앱이 공유하는 모델 서버 역할에 어울려요. CI 파이프라인·자동화 스크립트·OpenClaw 같은 헤드리스 환경에 적합합니다.
  • LM Studio 는 앱이에요. 데스크탑 앱이 떠 있을 때만 API 도 살아있어요. 채팅 UI·모델 탐색·하드웨어 적합도 표시 같은 GUI 보조 도구가 강점이라, 모델을 처음 비교·평가하는 단계나 비개발자 동료가 직접 만져볼 환경에 적합합니다.

실무에서는 양쪽을 다른 포트로 동시에 띄워두고, GUI 평가는 LM Studio · 자동화 호출은 Ollama 로 역할 분담하는 구성이 흔해요. 두 데몬은 서로 다른 포트를 쓰므로 충돌하지 않아요.


MLX 계열 — Apple Silicon 특화

Apple Silicon 의 UMA(Unified Memory Architecture, 통합 메모리) 와 GPU/Neural Engine 을 직접 활용하려면 llama.cpp 의 Metal 백엔드보다 Apple 의 ML 프레임워크 MLX 가 한 단계 더 잘 맞아요. MLX 는 설계 단계부터 UMA 네이티브로 만들어져, 같은 모델·같은 양자화에서도 llama.cpp 보다 빠른 경우가 많아요. 이 갈래는 두 도구로 구성돼요 — Apple 이 직접 만드는 mlx-lm, 그리고 mlx-lm 위에 서버·KV 캐시·다중 모델 관리를 얹은 oMLX.

프레임워크 자체의 자세한 사양(CUDA 백엔드, JACCL 분산, NVFP4 양자화 등)은 mlx-reference notes 에 정리돼 있어요.

mlx-lm

"Apple 이 직접 만드는 LLM 추론 라이브러리"

한 줄 설명

pip install mlx-lm 한 줄. Apple ML Research 팀이 만드는 LLM 전용 패키지로, Ollama 의 MLX 백엔드가 v0.19 부터 mlx-lm 을 호출하니까 사실상 모든 Apple Silicon LLM 추론의 기반이에요. HuggingFace 모델을 직접 받아 4-bit/MXFP4/NVFP4 등으로 양자화해 돌릴 수 있고, LoRA 파인튜닝도 같은 라이브러리 안에서 처리해요.

주요 특징

  • CUDA 백엔드 GA (mlx v0.30~, 2024-11) — Apple Silicon 전용 시절은 끝났고 같은 코드가 Linux+NVIDIA GPU 에서도 돌아요 (pip install mlx[cuda])
  • Speculative decoding + continuous batching + tensor parallelism (Qwen 3.5 등)
  • 분산 추론mx.distributed + Apple 자체 통신 라이브러리 JACCL (NCCL 격) + 서버 모드에서 다중 노드 가능
  • 양자화: 3/4/5/6/8-bit + MXFP4 (Open Compute Project) + MXFP8 + NVFP4 (NVIDIA Blackwell 포맷)
  • OpenAI 호환 서버: mlx_lm.server --model ... --port 8080

NVFP4 한 줄

mlx-lm 이 지원하는 NVFP4 는 4-bit FP (E2M1) + 16 element 마이크로블록당 E4M3 FP8 스케일 + 텐서당 FP32 스케일 의 2단계 양자화 포맷이에요. MXFP4 (블록 32, 스케일 E8M0) 대비 블록이 절반이라 국소 분포를 두 배 정밀하게 따라가고, 메모리는 약 4.5 bit/elem (FP16 대비 3.5×, FP8 대비 1.8× 압축). NVIDIA Blackwell 의 5세대 Tensor Core 에서 native 가속을 받지만, Apple Silicon 에서도 메모리 압축 효과는 그대로 살아 디코드 페이즈의 대역폭 병목을 직접 완화해요. 세부 비트 구조·MXFP4 와의 차이는 mlx-reference 의 "NVFP4 (NVIDIA FP4) 기술 사양" 박스로.

지원 플랫폼·버전

  • macOS 15.0+ (대형 모델용 wired memory 최적화)
  • Linux (CUDA 백엔드, v0.30~)
  • 최신: mlx v0.31.2 / mlx-lm v0.31.3 (2026-04-22)

비용

완전 무료·오픈소스 (MIT).


oMLX

"mlx-lm 위에 paged SSD KV 캐시·다중 모델 관리·메뉴바 UI 를 얹은 추론 서버"

한 줄 설명

jundot/omlx 는 Apple Silicon Mac 용으로 만들어진 LLM 추론 서버예요. 핵심은 두 단계 KV 캐시 — RAM 의 hot cache 가 가득 차면 cold cache 가 safetensors 포맷으로 SSD 에 페이지를 내려요. 같은 prefix 가 다시 들어오면 디스크에서 즉시 복원해 재계산을 건너뛰는 구조라, 코딩 에이전트처럼 시스템 프롬프트가 긴 워크로드에서 TTFT(첫 토큰 시간) 가 3090 초에서 13 초로 떨어진다는 사례가 보고됐어요.

주요 특징

  • Paged SSD KV cache — 서버 재시작 후에도 prefix 캐시 유지 (영속화)
  • Continuous batching — mlx-lm 의 BatchGenerator (기본 동시 8 요청)
  • 다중 모델 동시 호스팅 — LLM·VLM·OCR·임베딩·리랭커. LRU eviction + 모델별 pin/TTL + 프로세스 메모리 한도 (기본: 시스템 RAM − 8GB)
  • Anthropic + OpenAI 호환: /v1/chat/completions·/v1/completions·/v1/messages·/v1/embeddings·/v1/rerank. 스트리밍 + thinking + 이미지 입력
  • 모델 폭: LLM(mlx-lm 전체) + VLM(Qwen 3.5 VL·GLM-4V·Pixtral·mlx-vlm 류) + OCR(DeepSeek-OCR·DOTS-OCR·GLM-OCR) + 임베딩(BGE-M3·ModernBERT 등)
  • macOS 메뉴바 앱 + 웹 어드민 — 모델 로드/언로드·메모리 모니터링·벤치마크
  • Claude Code·OpenClaw·Cursor 등 OpenAI/Anthropic 클라이언트와 드롭인 호환

지원 플랫폼·버전

  • macOS 15.0+ (Sequoia), Apple Silicon (M1/M2/M3/M4)
  • Python 3.10+ (서버 백엔드)
  • 설치: DMG / Homebrew / 소스
  • 최신: v0.3.8 (2026-04-30)

mlx-lm 과의 위상 차이

항목mlx-lmoMLX
정체Apple 의 추론 라이브러리 + CLI그 위에 얹는 서버 + 다중 모델 매니저
KV 캐시RAM only (rotating)RAM hot + SSD cold (paged, persistent)
다중 모델한 번에 하나LRU eviction + pin/TTL
APIOpenAI 호환OpenAI + Anthropic 호환
UI없음 (CLI)메뉴바 앱 + 웹 어드민
사용 시나리오직접 호출·파인튜닝·연구코딩 에이전트 백엔드·여러 모델 동시 운용

비용

완전 무료·오픈소스.


서버·분산 갈래

지금까지 살펴본 도구들은 대체로 한 대 PC 가정. 모델이 커지거나 동시 사용자가 늘어나면 다른 갈래의 도구들이 필요해져요. llama.cpp 단독 사용은 가장 기본형, vLLM 은 NVIDIA GPU 서버에서 처리량 극대화, MLC LLM 은 컴파일러 기반 다중 백엔드(웹·모바일 포함), exo 는 여러 대 Mac 을 묶어 거대 모델을 분산 실행.

llama.cpp (단독)

"Ollama·Jan·llamafile 의 공통 엔진"

한 줄 설명

지금까지 등장한 Ollama·Jan·llamafile 의 공통 백엔드예요. Ollama 가 "쉬운 운영" 을 가져갔다면, llama.cpp 단독 사용은 "최저 수준 제어" 를 가져가요. 직접 컴파일·플래그 조정·GGUF 양자화·grammar 제약(JSON·정규식)까지 손볼 수 있고, 새 모델 아키텍처 지원이 가장 빨라요 — 새 모델 출시 → llama.cpp 머지 → Ollama·Jan 등이 그걸 끌어다 씀.

주요 도구

  • llama-cli — 대화형 CLI, 그래머 제약 옵션
  • llama-server — OpenAI 호환 HTTP 서버, 다중 사용자·speculative decoding·임베딩
  • llama-bench — 추론 속도 벤치마크

백엔드 폭

전 백엔드 지원이 특징 — CUDA(NVIDIA) · Metal(Apple) · HIP(AMD) · SYCL/OpenVINO(Intel) · Vulkan(크로스) · CPU(AVX·AVX2·AVX-512) · MUSA(Moore Threads) · CANN(Huawei Ascend) · WebGPU · Hexagon(Qualcomm). 사실상 모든 가속기를 다 다룸.

지원 플랫폼·버전

  • 모든 주요 OS
  • 최신: b9222 (2026-05-19) — 릴리스 5,000건 이상. 새 모델 머지 속도가 가장 빠른 OSS LLM 엔진 중 하나

언제 쓰나

  • Ollama 가 아직 안 받은 신규 모델을 즉시 돌리고 싶을 때
  • 사용자 정의 grammar (JSON Schema·정규식 강제) 가 필요할 때
  • 직접 컴파일·플래그 튜닝으로 성능을 끝까지 짜내야 할 때

vLLM

"NVIDIA GPU 서버용 처리량 극대화 엔진"

한 줄 설명

UC 버클리에서 출발한 vLLM 은 PagedAttention (KV 캐시를 OS 가상 메모리처럼 페이지 단위로 관리) 과 continuous batching (요청 단위가 아닌 토큰 단위 스케줄링) 으로 동일 GPU 자원에서 처리량을 크게 끌어올리는 추론 엔진이에요. 개인 데스크탑이 아니라 다수 동시 사용자 + 대형 모델 시나리오에 맞춰져 있어, 사내 LLM 서비스를 NVIDIA H100·H200·B100 서버에 셀프호스팅할 때 가장 많이 쓰여요.

핵심 기술

  • PagedAttention — KV 캐시를 4KB 페이지로 쪼개 메모리 단편화 해소. 자세한 작동 원리는 inference-systems 부록 참조
  • Continuous batching — 한 배치 내 요청의 디코드 단계가 다른 단계에 있어도 토큰 단위로 묶음
  • Prefill chunking + prefix caching + speculative decoding
  • 200+ HuggingFace 모델 아키텍처 (decoder-only, MoE, multimodal)

지원 하드웨어

  • NVIDIA GPU (메인)
  • AMD GPU, Intel Gaudi, Google TPU, IBM Spyre, Huawei Ascend
  • x86/ARM/PowerPC CPU
  • Apple Silicon (플러그인, 실험적 — 실용성은 mlx-lm/oMLX 가 우위)

API·버전

  • OpenAI 호환 + Anthropic Messages + gRPC
  • uv pip install vllm 한 줄
  • 최신: v0.21.0 (2026-05-15)

개인 사용 가능성

vllm serve <모델> 한 줄로 띄울 수 있어서 개인용도 가능은 해요. 다만 PagedAttention·continuous batching 의 진가는 동시 요청 ≥ 8 부터라, 혼자 채팅 한 줄씩 보내는 시나리오엔 Ollama 가 훨씬 가벼워요.


MLC LLM

"TVM 컴파일러로 모든 백엔드에 LLM 배포"

한 줄 설명

CMU·OctoAI 가 주도하는 MLC(Machine Learning Compilation) LLM 은 모델을 TVM 컴파일러로 한 번 컴파일해 모든 백엔드(Metal·CUDA·Vulkan·WebGPU·ROCm) 에 배포한다는 컨셉이에요. 같은 모델이 데스크탑에서도 돌고, iOS·Android 네이티브 앱으로도 돌고, 브라우저 WebGPU 에서도 돌아요. 모바일·웹 환경에 LLM 을 심으려는 팀에 가장 명확한 선택지.

차별점

  • TVM (Apache TVM, 머신러닝 컴파일러) 기반 — 다른 도구들은 백엔드별로 따로 커널을 짜지만, MLC 는 한 번 컴파일하면 여러 백엔드에 동시 산출물 생성
  • iOS · Android 네이티브: Metal (iOS) + OpenCL (Adreno/Mali, Android)
  • 브라우저: WebGPU + WebAssembly — 별도 서버 없이 사용자 디바이스 자체에서 추론
  • OpenAI 호환 REST + Python + JavaScript + iOS SDK + Android SDK 모두 제공

지원 백엔드

  • GPU: Metal·CUDA·ROCm·Vulkan·WebGPU
  • 모바일: iOS Metal · Android OpenCL
  • 웹: WebGPU + WASM

언제 쓰나

  • 같은 모델을 데스크탑·모바일·브라우저 셋 다 배포해야 할 때
  • 사용자 디바이스에서 추론하는 웹앱 (서버 비용·프라이버시 양쪽 해결)
  • 기존 도구가 안 다루는 GPU (구형 AMD, Adreno 등) 에서 LLM 을 돌려야 할 때

위상

22.7k 별 (2026-05 기준). 백엔드 폭은 가장 넓지만 사용자층은 mlx-lm·vLLM 보다 좁은 편이에요 — 컴파일러 워크플로우가 추가 학습 곡선이 있어요.


exo

"여러 대 Mac 을 묶어 거대 모델을 돌린다"

한 줄 설명

exo labs 의 exo여러 디바이스를 P2P 네트워크로 묶어 하나의 거대 모델을 분산 실행해요. 예를 들어 256GB Mac Studio 2대를 Thunderbolt 5 로 연결하면 합산 512GB 메모리에 DeepSeek V3.1 671B (4-bit 약 350GB) 같은 거대 오픈 모델이 올라가요. 단일 워크스테이션으로는 못 잡을 모델을 자동 디스커버리 + 토폴로지 인식 자동 분할로 묶어내는 게 핵심.

분산 방식

  • libp2p P2P 자동 디스커버리 — 같은 네트워크의 exo 노드끼리 수동 설정 없이 서로 찾음
  • Thunderbolt 5 RDMA Mac-to-Mac (day-0 지원) — 노드 간 KV 통신 병목 완화
  • Tensor Parallelism (모델 가중치 가로 분할) — 2 노드 1.8×, 4 노드 3.2× 가속
  • Pipeline Parallelism (레이어 세로 분할)
  • Topology-Aware Auto Parallel — 디바이스 자원 + 네트워크 특성을 보고 자동 배치

지원 환경

  • macOS: Apple Silicon (M3/M4 시리즈, Thunderbolt 5 권장) — MLX 백엔드로 GPU 활용
  • Linux: CPU only (GPU 지원 개발 중)
  • NVIDIA/AMD GPU 분산: 현재 미지원 (확인된 바)

지원 모델

HuggingFace 임포트 가능 — 등록된 사례: Llama 3.2 1B, Qwen3-235B, DeepSeek v3.1 671B, Kimi K2 Thinking 등 단일 디바이스로는 못 올리는 모델들.

버전

최신 v1.0.71 (2026-04-23).

한계

  • 분산 통신의 본질적 오버헤드로 단일 디바이스보다 토큰/초는 떨어져요. exo 가 푸는 건 "토큰/초" 가 아니라 "모델 자체가 들어가느냐"
  • 현재 macOS Apple Silicon 위주. 이종 클러스터(NVIDIA + Mac) 분산은 아직 어려움

OpenClaw

"LLM이 스스로 일을 처리하는 자율 AI 에이전트"

한 줄 설명

단순 채팅봇이 아니라 실제 작업을 수행하는 에이전트 프레임워크예요. 텔레그램·Discord를 UI로 사용하고, LLM이 이메일 읽기·웹 검색·API 호출·코드 실행 같은 100개 이상의 내장 스킬을 조합해 멀티스텝 태스크를 자율 처리합니다.

작동 방식

flowchart TD User["사용자(User)"] --> TG["텔레그램 메시지(Telegram message)"] TG --> OC["OpenClaw"] OC --> Judge["LLM 판단(LLM judge)<br/>(Ollama 등)"] OC --> Skill["스킬 실행(Skill exec)<br/>(mail, search, shell 등)"]

코딩 에이전트와의 차이

주요 코딩 에이전트(Claude Code, Codex 등)와 비교하면 다음과 같아요.

코딩 에이전트 (Claude Code, Codex 등)OpenClaw
특화 영역소프트웨어 개발범용 업무 자동화
UI터미널(CLI)텔레그램·Discord
LLM주로 클라우드 모델모든 LLM (로컬 포함)
사용 대상개발자비개발자 포함

코딩 에이전트가 "파일·쉘·에디터를 기본 도구로 갖는 개발 특화 에이전트" 라면, OpenClaw는 "메시징 플랫폼을 UI로 쓰는 범용 업무 에이전트" 예요. 두 부류의 설계 철학·하네스 구성은 Claude Code 3대 설정 축Codex 사용 가이드에서 좀 더 구체적으로 비교해요.

이름 변천

Clawdbot(2025-11) → Moltbot(2026-01-27) → OpenClaw(2026-01-30~현재)

Anthropic 상표 이슈로 두 차례 이름이 바뀌었어요.

주요 사항

  • Ollama v0.20.5부터 공식 호환 (v0.21.0은 단순 버그픽스, 신규 통합 아님)
  • GitHub 저장소: github.com/openclaw/openclaw (org)
  • 2026-02: 개발자가 OpenAI 합류, 비영리 재단으로 프로젝트 이관 예정
  • GitHub 스타 시계열: 145K(2026-02) → 247K(2026-03) → 280K+(2026-03 후반) → 337K+ (2026-04 기준)
  • 보안 주의: 이메일·API·파일 시스템 접근 권한을 가지므로 설정 오류 시 데이터 유출 위험이 있어요. 프롬프트 인젝션 공격에도 취약할 수 있어요.

깜짝 한 가지: GitHub 스타 곡선

OpenClaw 의 GitHub 스타가 2026-02 의 145K 에서 두 달 만에 337K 를 넘었어요 (2026-05 시점에도 추세가 이어져 370K 부근). 같은 기간 Ollama·LM Studio 의 누적 합산 증가폭보다 빨라요. 이게 의미하는 바는 단순해요 — 사람들이 채팅봇이 아니라 실제 일을 처리하는 에이전트를 원하기 시작했고, 그 일을 받쳐주는 인프라(Ollama)가 마침 보편화됐습니다. 모델 저장소와 실행 엔진이 평범해 보이는 이유는, 이 곡선이 가리키는 "쓸모 있는 자율 에이전트" 까지 가는 길의 베이스 캠프이기 때문이에요.


플랫폼 비교 (요약)

도구가 11종으로 늘어나니 한 표에 다 욱여넣으면 오히려 안 보여요. 갈래별 요약 + 공통 비교 두 단계로 갈게요.

갈래별 요약

갈래대표 도구한 줄
모델 저장소HuggingFace Hub모델 다운로드의 원천
일반 사용 (GUI/CLI)Ollama · LM Studio · Jan · llamafile한 대 PC, 1인 사용
MLX 계열mlx-lm · oMLXApple Silicon UMA 최적화, 파인튜닝·VLM·코딩 에이전트 백엔드
서버·고급llama.cpp 단독 · vLLM · MLC LLM최저 수준 제어 / GPU 서버 처리량 / 다중 백엔드 컴파일
분산exo다중 디바이스로 거대 모델 분할 실행
응용OpenClaw자율 에이전트 (메시징 UI)

공통 비교 (자주 보는 축만)

도구인터페이스인터넷 필요OpenAI 호환 API주 사용 OS비용
HuggingFace Hub항상별도 설정무료+유료
Ollama (로컬)CLI다운로드 시만기본macOS·Linux·Windows무료
Ollama Cloud같은 CLI (:cloud suffix)호출 시마다기본 (동일 엔드포인트)macOS·Linux·WindowsFree / Pro $20·Max $100
LM StudioGUI다운로드 시만기본macOS·Linux·Windows무료
JanGUI다운로드 시만기본 (:1337)macOS·Linux·Windows무료·OSS
llamafileCLI (단일 파일)다운로드 시만기본모든 OS무료
mlx-lmCLI / SDK다운로드 시만mlx_lm.servermacOS·Linux+CUDA무료·OSS
oMLX메뉴바 + 웹다운로드 시만OpenAI + AnthropicmacOS 15+무료·OSS
llama.cppCLI / llama-server다운로드 시만llama-server모든 OS·전 백엔드무료·OSS
vLLM서버다운로드 시만기본Linux NVIDIA 중심무료·OSS
MLC LLMREST + 모바일·웹 SDK다운로드 시만기본모든 OS + iOS/Android/웹무료·OSS
exoCLI / 웹다운로드 시만기본macOS·Linux무료·OSS
OpenClaw텔레그램·Discord선택macOS·Linux·Windows무료·OSS

최소 메모리·하드웨어

  • 7B 4-bit ≈ 4-5 GB → 8 GB RAM 부터 시도 가능 (Ollama·llamafile·Jan)
  • 14B 4-bit ≈ 8-10 GB → 16 GB RAM (LM Studio 권장 기준)
  • 70B 4-bit ≈ 40 GB → 64 GB RAM 또는 24 GB+ VRAM (vLLM, llama.cpp)
  • 400B+ → 단일 디바이스 불가, exo 분산 또는 vLLM 다중 GPU 노드

상황별 선택 가이드

모델을 일단 웹에서 빠르게 체험하고 싶다 → HuggingFace Spaces — 설치 없이 브라우저에서 바로 사용

내 PC에서 조용히 돌리고 싶다, 터미널은 괜찮다 → Ollama — 설치 한 줄, 다른 앱과 연동이 쉬움

같은 도구로 큰 모델까지 같이 쓰고 싶다, 로컬 메모리는 부담 → Ollama Cloud — model_id:cloud suffix 만 붙이면 데이터센터 라우팅, zero retention 보장, Free 부터 시작

코딩 없이 ChatGPT처럼 쓰고 싶다 (소스 비공개도 OK) → LM Studio — GUI 클릭만으로 모델 설치·대화

같은 경험인데 앱이 오픈소스여야 한다 → Jan — LM Studio 와 비슷한 GUI + Apache 2.0

한 파일만 받아서 더블클릭으로 띄우고 싶다, 설치는 싫다 → llamafile — chmod +x 한 줄로 OS 무관 실행

Apple Silicon 의 성능을 최대한 짜내고 싶다, 파인튜닝도 한다 → mlx-lm — Apple 의 네이티브 라이브러리. Ollama 의 MLX 백엔드도 결국 이걸 호출

Apple Silicon Mac 에서 코딩 에이전트 백엔드로 돌리고 싶다, 시스템 프롬프트 캐싱이 중요하다 → oMLX — paged SSD KV cache 로 긴 prefix 즉시 복원

새로 나온 모델을 가장 빨리 돌려보고 싶다, grammar 제약·플래그 튜닝까지 손대고 싶다 → llama.cpp 단독 (llama-cli / llama-server)

NVIDIA GPU 서버에 셀프호스트, 동시 요청 10개 이상 → vLLM — PagedAttention + continuous batching

같은 모델을 데스크탑·모바일·브라우저에 동시에 배포하고 싶다 → MLC LLM — TVM 컴파일로 다중 백엔드 산출물 생성

Mac 여러 대를 묶어 단일 디바이스로는 안 올라가는 거대 모델(DeepSeek V3.1 671B 등)을 돌리고 싶다 → exo — Thunderbolt 5 + libp2p P2P 분산

이메일·일정·검색 같은 반복 업무를 AI에게 맡기고 싶다 → OpenClaw — Ollama 또는 oMLX 와 조합해 완전 로컬·자율 에이전트 구성 가능


비유의 한계

도커 비유는 큰 그림을 잡기 좋지만, 두 군데서 어긋나요. 첫째, 도커 이미지는 불변(immutable) 이라 같은 이미지가 어디서든 같은 동작을 하지만, LLM 모델은 양자화·컨텍스트 길이·KV 캐시 옵션에 따라 같은 파일이 다른 메모리·다른 속도로 동작해요. 둘째, 도커는 격리(isolation)가 핵심이지만 LLM 추론은 격리보다 하드웨어 자원 점유 가 본질이라 — 한 GPU 에 두 모델을 동시에 올리는 건 컨테이너 두 개 띄우는 것과는 비교가 안 되게 까다로워요. 비유는 계층 구조까지만 빌리고, 운용 디테일은 메모리·대역폭 부록에서 가져오면 됩니다.