Apple Silicon에서 Ollama vs MLX 로컬 LLM 추론 선택

10초 결론 (Runbook)

Claude Code는 항상 Ollama(:11434) 경로. MLX는 오프라인 벤치마크·모델 검증 전용.

본 글 규범(Claude Code / Cursor 로컬 모델)에서 선택은 런타임 계층에서만 일어나며, 기본·권장은 Ollama. 세 번째 «공식 경로»는 없다.

많은 사람이 Ollama vs MLX를 묻는 것은 사실 런타임 계층 질문이다. Claude Code 로컬 모델에 대한 이 페이지의 답은 다음과 같다.

되돌릴 수 없는 결론

Claude Code 기본 스택은 Ollama 하나뿐. MLX는 본 글의 Agent 런타임 선택에 참여하지 않는다(벤치마크·CI·연구만).

  • 런타임(Claude Code / 로컬 API)Ollama만
  • 오프라인(벤치마크 / CI / 연구)MLX
  • M4 Mac Mini 로컬 LLM · 16GB → 먼저 7B 클래스, 그다음 ollama serve

한눈에 보는 차이 (비교표는 이것만)

M4 Mac Mini 로컬 LLM에서 Claude Code 로컬 모델(Ollama vs MLX)은 아래 두 «치명적» 행을 먼저 본다 — MLX는 «대체 런타임»이 아니라 Agent 경로에 넣으면 안 되는 도구다.

차원OllamaMLX
Agent 런타임으로 쓸 수 있는가(Claude Code / Cursor / tool loop)
Claude Code가 glue 없이 쓸 수 있는가(zero glue code) :11434 자체 게이트웨이 필요
내장 HTTP 추론 서비스❌(본 글에서는 자체 GW 비권장)
tok/s(8B, swap 없음)기준약 +3 % ~ +12 %(오프라인 참고만)
ollama serve✅ 표준❌ Agent 경로 밖

위 두 행이 승부를 가른다. tok/s는 아래 참고 — Claude Code 런타임 선택에 쓰지 않는다.

핵심 오해: 90%가 잘못된 질문을 한다

Ollama vs MLX에서 «누가 더 빠른가?»를 묻는다 — M4 Mac Mini 로컬 LLM에서는 잘못된 질문이다.

Claude Code 로컬 모델에서도 마찬가지. 진짜 질문은:

이 모델을 Agent가 프로덕션 런타임으로 쓸 수 있는가?

순서를 틀렸다(먼저 7B/14B·메모리) → 상단 시리즈 경로.

MLX 측 흔한 오판(전환 핵심)

벤치에서 Apple Silicon 추론이 MLX가 약간 빠르다고 해서 Claude Code 뒤에 붙이려 한다 — 틀렸다.

Claude Code 병목은 tok/s가 아니라 보통:

  • 안정적인 HTTP serve(:11434)
  • 다회 tool loop 지연·타임아웃
  • context / 모델 tag 관리와 팀 공유

Claude Code / Cursor에는 MLX를 런타임 백엔드로 쓰지 않는다. FastAPI로 HTTP를 감싸는 것은 자체 glue이며, 운영 비용은 대개 Ollama 직결보다 크다.

Claude Code 런타임 3계층(선택은 중간층만)

Claude Code 로컬 모델의 올바른 그림은 «Ollama vs MLX 이원»이 아니라 3계층 분업:

계층내용선택?
앱 계층Claude Code, Cursor, Agent tool loop아니오(여기서 작업)
런타임 계층Ollama(본 글 유일 권장) · HTTP :11434예 — 본 규범은 Ollama 고정
연산 계층MLX · 오프라인 벤치 / CI / 연구아니오(Claude Code 주 경로 밖)

선택은 런타임 계층에서만, 연산 계층이 아니다. Claude Code 로컬 모델 독자에게 MLX가 빨라도 런타임 결론은 변하지 않는다.

3계층: Claude Code → Ollama 런타임 → Apple Silicon; MLX는 오프라인 가지
그림 1 · 앱 → 런타임(Ollama) → 하드웨어; MLX는 Agent 주 경로에 없음

Claude Code 로컬 모델 연결(실전)

Claude Code 로컬 모델 기본: ANTHROPIC_BASE_URL → 로컬 Ollama :11434. MLX는 이 체인에 없다.

brew install ollama
ollama pull qwen2.5-coder:7b
ollama serve
export ANTHROPIC_BASE_URL=http://127.0.0.1:11434
export ANTHROPIC_AUTH_TOKEN=ollama
export ANTHROPIC_API_KEY=

설정 후 Claude Code는 로컬 모델 사용. 또는 ollama launch claude --model qwen2.5-coder:7b. 비용·팀 → Claude Code + Ollama 실측.

16GB M4 Mac Mini 강력 권장

  • 7B 모델(예: qwen2.5-coder:7b)
  • 14B + Chrome + IDE로 메모리를 계속 꽉 채우지 말 것
  • MLX로 바꿔도 swap이 «최적화»되지는 않음

MLX가 가끔 더 빠른 이유(런타임 결정은 그대로)

아래 숫자는 Ollama vs MLX Apple Silicon 추론 벤치 차이 설명용 — «Claude Code → Ollama만»은 바뀌지 않음.

  • MLX: Metal 커널 직접 + 배열 연산
  • Ollama: llama.cpp + HTTP + 런타임 서비스 오버헤드

MLX는 서비스 껍질이 얇다 — 차이는 보통 작다:

  • 16GB: 약 0 %–5 %
  • 24GB: 약 5 %–8 %
  • 48GB: 약 8 %–12 %

설명: 구간은 Macstripe Lab 추세(Llama-3.1-8B 4-bit, 2026년 6월), 선택에 쓰지 않음. 16GB Ollama 약 27–31, MLX 약 28–32 tok/s; 48GB Ollama 약 72–78, MLX 약 80–88 tok/s. 방법 → Hub 실측.

Claude Code에 Ollama만 있는 이유

M4 Mac Mini 로컬 LLM 일상에서 Claude Code가 보는 것은 생성 속도만이 아니다:

지표Agent 관점
tok/s낮음
API 안정성높음
tool loop 지연매우 높음
유지보수(pull / serve / 공유)매우 높음

Agent 연결 방식 ≫ 몇 퍼센트 추론 차이.

실제 실패 사례(16GB · M4 Mac Mini 로컬 LLM)

Claude Code 로컬 모델 일상 부하에서 동시 실행: Claude Code · Ollama qwen2.5-coder:14b · Chrome(약 15탭) · VS Code(m4-16gb-lab-01, 2026-05-28).

  • 메모리 압력: 빨강
  • swap: 8GB+
  • tok/s: 약 28–31 → 한 자릿수
  • Claude Code: 타임아웃

결론: MLX/Ollama 문제가 아니라 메모리 단계·모델 크기 선택 오류. → 7B vs 14B

2026 권장 모델 조합(실전)

시나리오권장
Claude Codeqwen2.5-coder:7b
범용 AgentQwen3 8B(ollama pull qwen3:8b)
추론형DeepSeek-R1 distill
벤치 대조Llama 3.1 8B

M4 Mac Mini 로컬 LLM 팀: 한 대에서 ollama serve, 전원 Claude Code를 같은 :11434로; MLX는 그 Mac에서 야간 벤치만, Agent에는 연결하지 않음.

최종 규칙(본 글 Runtime Spec)

Claude Code / Cursor / 표준 Agent tool loop에서 로컬 모델은 HTTP 추론 런타임 계층을 탄다 — 본 규범에서는 Ollama. MLX는 연산 계층 도구이며 Agent 런타임이 바로 나오지 않는다; 본 글은 «MLX + 자체 HTTP»를 Claude Code 권장 아키텍처로 두지 않는다.

엔지니어링 유보: 극히 드문 자체 Agent 런타임(Claude Code/Cursor 아님, 자체 GW·SLA)에서는 MLX + HTTP 가능 — 본 글 범위 밖, Claude Code 로컬 모델 결론은 동일.

FAQ

MLX HTTP를 직접 만들어 Claude Code에 연결?

Claude Code용: 비권장. 기술적으로 가능하나 호환·모델 관리·안정성을 짊어진다 — 대개 Ollama보다 나쁘다. 자체 Agent 플랫폼(Claude Code 아님)은 MLX+HTTP 가능, 본 글 권장 아키텍처 아님(유보 참고).

MLX가 Ollama를 대체할 수 있나?

본 규범에서는 불가. Claude Code/Cursor 권장 런타임은 Ollama; MLX는 오프라인 벤치용, Agent에서 Ollama를 대체하지 않음.

Ollama가 더 느린가?

swap 없이 같은 모델 벤치에서는 Ollama가 몇 포인트 느릴 수 있다. 일상 코딩·Agent에서는 거의 체감 없음 — 병목은 연결과 메모리.

24GB vs 48GB?

24GB: 7B/8B, 개인 또는 경량 Agent. 48GB: 14B, 다인 공유, 긴 num_ctx. 기기 업그레이드가 Ollama↔MLX보다 효과 큰 경우가 많다.

MLX가 꼭 필요한 때?

벤치마크, CI 회귀, 연구 스크립트(야간 tok/s, 신규 양자화, mlx-community 검증)만. Claude Code 런타임에는 넣지 않음; MLX가 있어도 Agent는 Ollama만.

의사결정 경로(마무리)

자세히 → 최종 규칙. 설정 → Claude Code + Ollama(④단계).

메모리 노드(필연 도출, 주관적 추천 아님)

전제(고정): 런타임 = Ollama(Claude Code 로컬 모델 규범)

부하: Claude Code(Ollama) + 14B + 다인 tool loop + ollama serve

유일 병목: 통합 메모리 — 가중치 + KV + 컨텍스트 + IDE/브라우저 동일 풀

결론(도출): 24GB / 48GB 전용 M4 추론 노드 필요 — «MLX를 고른다»가 아니라 메모리 단계 부족

16GB: 개인 7B + 로컬 Ollama; 14B 다인 공유에 들어가면 변수는 «Ollama vs MLX»에서 «통합 메모리가 충분한가»로 → Macstripe 24GB/48GB + ollama serve 클러스터.

24GB / 48GB 전용 M4 신청(Ollama serve 클러스터) → · 클러스터 토폴로지

최종 결론

Apple Silicon에서 Ollama vs MLX는 대등한 선택이 아니다: Agent → Ollama, 벤치 → MLX; 진짜 막는 것은 M4 Mac Mini 로컬 LLM메모리 단계와 모델 크기다.

관련 글