본문 바로가기
운영체제 (LNX,WIN)

Mac Mini로 로컬 AI 완성하기: Swap, Ollama, Metal 최적화 가이드

by 날으는물고기 2026. 4. 12.

Mac Mini로 로컬 AI 완성하기: Swap, Ollama, Metal 최적화 가이드

728x90

맥미니에서 LLM이 어려운 이유

LLM 리소스 특성

모델 필요 메모리
qwen:7B 약 4~8GB
gemma:7B 약 4~8GB
qwen:14B 10~16GB
llama3:8B 6~10GB

👉 문제

  • 맥미니 8GB / 16GB → 부족

macOS 메모리 흐름

  1. RAM 사용
  2. Memory Compression
  3. Swap 사용

👉 LLM은

  • 메모리 압축 효과 낮음
  • swap 사용 시 속도 매우 느림

Swap 관점 전략

전략 1: swap “활용”이 아니라 “버티기 용도”

👉 목표

  • swap = fallback
  • RAM = 실제 실행

전략 2: swap 모니터링 필수

vm_stat 1
sysctl vm.swapusage

전략 3: swap 발생 시 판단 기준

상태 대응
swap < 1GB 정상
swap 증가 지속 모델 과도
swap + CPU 100% 다운그레이드 필요

LLM 운영 구조 설계

👉 “무료 + 로컬 + 안정성”

구성 아키텍처

[사용자]
   ↓
[CLI / API]
   ↓
[Ollama]
   ↓
[Quantized Model]
   ↓
[macOS Memory + swap]

Ollama 설치 (Mac Mini)

brew install ollama

또는 공식

curl -fsSL https://ollama.com/install.sh | sh

실행

ollama serve

추천 모델 (맥미니 기준)

1. 가장 안정

ollama pull qwen:4b

2. 균형형

ollama pull gemma:7b

3. 성능형 (메모리 충분 시)

ollama pull llama3:8b

중요: Quantization

👉 Ollama는 자동으로 Q4/Q5 사용

👉 효과

  • 메모리 ↓
  • 성능 약간 ↓

메모리 최적화 핵심

1. context 줄이기

OLLAMA_NUM_CTX=2048 ollama run qwen:4b

2. thread 제한

OLLAMA_NUM_THREAD=4 ollama run qwen:4b

3. GPU (M1/M2) 활용

자동 Metal 사용됨

Swap 고려한 운영 전략

권장 구조

항목 설정
모델 4B ~ 7B
context 2048
동시 실행 1개
swap 최소

위험 구조

  • 14B 이상 모델
  • 다중 모델 실행
  • context 8k 이상

👉 swap 폭발 + 시스템 멈춤

실제 운영 체크 포인트

1. 실시간 모니터링

top -o mem
memory_pressure

2. swap 감지

sysctl vm.swapusage

3. 모델 종료

ollama ps
ollama stop <model>

보안 관점

LLM + swap 조합은 데이터 유출 가능성 존재

  • 입력 데이터 (API key, 내부정보)
  • swapfile 저장 가능

FileVault 필수

fdesetup enable

민감 데이터 금지 정책

  • 내부 계정 정보 입력 금지
  • 고객 데이터 입력 금지

3. 로그 관리

~/.ollama/logs/

실전 운영 시나리오

개인 AI 환경

  • 코드 생성
  • 문서 요약
  • 번역

👉 qwen:4b 추천

내부 업무 자동화

  • 로그 분석
  • 스크립트 생성

👉 gemma:7b 추천

보안 활용

  • 로그 이상 탐지
  • 명령어 생성

고급 튜닝 (중요)

모델 캐시 위치

~/.ollama/models

디스크 용량 관리

du -sh ~/.ollama

불필요 모델 삭제

ollama rm qwen:14b

“무료 AI 환경” 완성 구조

Mac Mini
 ├── Ollama
 ├── qwen / gemma 모델
 ├── CLI / API
 └── 로컬 AI 환경

장점

  • 비용 0
  • 데이터 외부 유출 없음
  • 완전 로컬

한계

  • 성능 제한
  • 메모리 의존
  • swap 시 느림
300x250

M1/M2 기반 Mac에서 LLM 성능은 Metal(GPU) 활용 방식에 따라 체감이 크게 달라집니다.
단순 “GPU 사용됨” 수준이 아니라 메모리 구조 + 실행 파이프라인 최적화까지 같이 봐야 합니다.

핵심 구조 이해 (M1/M2 + Metal)

Apple Silicon 특징

👉 기존 x86 + GPU 구조와 완전히 다름

항목 특징
CPU/GPU 동일 SoC
메모리 Unified Memory
GPU API Metal
VRAM 없음 (RAM 공유)

핵심 의미

👉 LLM 실행 시

  • CPU ↔ GPU 메모리 복사 없음
  • 하지만 → RAM 경쟁 발생

Ollama + Metal 동작 구조

[LLM Model]
   ↓
[llama.cpp 기반 엔진]
   ↓
[Metal Backend]
   ↓
[Apple GPU]

자동 활성화 조건

👉 기본적으로 자동 활성화됨

ollama run qwen:4b

👉 Activity Monitor → GPU History 확인

Metal 사용 여부 확인

log stream --predicate 'process == "ollama"' --info
확인 키워드
  • metal
  • gpu layers
또는
OLLAMA_DEBUG=1 ollama run qwen:4b

핵심 튜닝 포인트

GPU Layer 조정 (가장 중요)

👉 GPU로 올릴 레이어 수

OLLAMA_NUM_GPU=1 ollama run qwen:4b

또는 내부적으로 자동

중요한 개념

GPU layer 많음 GPU 사용 ↑ / RAM 압박 ↑
GPU layer 적음 CPU fallback

👉 최적값은

  • RAM 상황에 따라 다름

Context Size (성능 핵심)

OLLAMA_NUM_CTX=2048 ollama run qwen:4b

영향

ctx 영향
2048 안정
4096 메모리 증가
8192 swap 위험

👉 추천

  • 8GB RAM → 1024~2048
  • 16GB RAM → 2048~4096

Thread 튜닝 (CPU 병행)

OLLAMA_NUM_THREAD=4 ollama run qwen:4b

👉 기준

코어 thread
M1 4~6
M2 6~8

모델 선택이 성능 80% 결정

추천 모델

모델 특징
qwen:4b 빠름
gemma:2b 매우 빠름
gemma:7b 균형
llama3:8b 품질 ↑

👉 핵심

큰 모델 + Metal = 무조건 빠른 것 아님

성능 저하 원인

swap 발생

sysctl vm.swapusage

👉 swap > 1GB → 성능 급락

context 과도

👉 토큰 많아질수록

  • GPU memory pressure 증가

다중 모델 실행

ollama ps

👉 동시에 2개 이상 → 성능 반토막

실전 최적 조합 (추천 세팅)

Mac Mini 8GB

OLLAMA_NUM_CTX=1024 \
OLLAMA_NUM_THREAD=4 \
ollama run qwen:4b

Mac Mini 16GB

OLLAMA_NUM_CTX=2048 \
OLLAMA_NUM_THREAD=6 \
ollama run gemma:7b

Mac Mini 32GB

OLLAMA_NUM_CTX=4096 \
OLLAMA_NUM_THREAD=8 \
ollama run llama3:8b

성능 측정 방법

토큰 속도 측정

time ollama run qwen:4b

GPU 사용률

sudo powermetrics --samplers gpu_power

시스템 상태

top -o cpu

아키텍처 최적화 전략

이상적인 구조

[Mac Mini]
 ├── Ollama
 ├── Small LLM (4B~7B)
 ├── Low context
 └── Single process

비추천 구조

Multiple LLM
High context
Swap 의존
728x90
그리드형(광고전용)

댓글