M4 Pro Mac mini에서 로컬 LLM 서버를 30분 만에 구축하는 방법
My local model setup on an M4 Pro Mac Mini

M4 Pro Mac mini(48GB RAM)에서 로컬 LLM 서버를 운영하는 저자의 경험담. Qwen3.6-35B-A3B-OptiQ-4bit와 Gemma-4-E4B-it-OptiQ-4bit 모델을 oMLX 서버로 실행하고, Tailscale로 iPhone, MacBook 등과 연결해 Hermes 에이전트, Apollo, Raycast, Pi 등에서 활용한다. 클라우드 API의 비용 변동, 데이터 프라이버시, AI 주권 문제를 피하고, 비용 예측 가능성, 낮은 지연 시간, 오프라인 동작, 무제한 사용 등의 이점을 강조한다. MoE 모델의 메모리 요구사항을 계산하는 방법과 모델 교체의 용이성도 설명한다.
클라우드 API는 임대된 땅입니다. 그들은 가격을 바꾸거나, 사용 한도에 도달하게 하거나, 뒤에서 서비스되는 모델을 마음대로 바꿀 수 있습니다.
HN 토론
178- bambax
좋은 설정이네요. 하지만 단순한 작업이나 질문에는 AI가 현재 무료 아닌가요? 그리고 아마 계속 무료일 것 같아요. 구글이 검색 엔진에서 AI 사용에 요금을 부과하기 시작할 것 같지 않으니까요. 그렇다면 비용이 로컬에서 작은 모델을 실행하는 동기가 될 수는 없잖아요?
더 복잡하거나 중요한 작업에서는 비용, 자율성, 프라이버시가 중요하지만, 그러면 성능/품질도 중요해지죠.
그래서 정말 가치가 있는지 완전히 확신하지는 않지만, 꽤 매력적이긴 해요!
- amanzi
모델의 성능에 대한 언급이 없네요? 저는 16GB RAM을 가진 작은 미니 PC에 여러 가지 모델을 로드할 수 있지만, 성능이 끔찍합니다. 로컬 모델을 사용할 때 사람들이 허용 가능하다고 생각하는 성능이 얼마나 되는지 항상 궁금합니다.
- c16
> 로컬에서 대형 모델을 실행하는 것은 결국 한 가지로 귀결됩니다: 실제로 메모리에 얼마나 많은 RAM이 필요한지.
완전히 사실은 아닙니다. 메모리와 메모리 대역폭 모두 중요합니다. 1TB의 메모리가 있어도 메모리 대역폭이 형편없다면 토큰 생성 속도도 느릴 것입니다. A3B가 이 문제를 해결하는 데 도움이 되지만, MTP도 마찬가지입니다.
제 경험상, A3B가 있는 3.6 버전보다 MTP가 있는 밀집 27b-mlx를 실행하는 것이 더 나을 것입니다. 모델이 약 20GB RAM이라고 하셨지만, 3.8:27b-mlx는 18GB이고 매우 합리적인 토큰 생성 속도를 제공하며, 필요하지 않을 때 사고를 비활성화하면 속도가 더 빨라집니다.
- akg_67
M1 Max 32GB MacBook에서 oMLX를 사용한 최근 성능 데이터입니다. 제 사용 사례와 시스템에 적합한 모델과 구성을 찾기 위해 작업해 왔습니다. VSCode Cline 확장을 사용하여 특정 Django 코드 블록에 대해 리팩터링 및 개선 제안 프롬프트를 사용했습니다.
---
Qwen3.8-27B-4bit, 프롬프트 처리(PP) 66.3 tok/s, 토큰 생성(TG) 11.8 tok/s
Ornith-1.5-35B-A3B-MLX-4bit, PP 379.7, TG 45.8
Ornith-1.5-35B-A3B-MLX-4bit, PP 381.5, TG 46.4
Qwen3.6-35B-A3B-mxfp4, PP 389.6, TG 47.6
Qwen3.6-35B-A3B-OptiQ-4bit, PP 342.6, TG 44.4
---
Qwen3.8-27B-4bit는 일반적으로 작업을 완료하기 전에 출력 토큰이 소진되지만 부분 결과는 훌륭합니다.
Ornith-1.5-35B-A3B-MLX-4bit는 특히 도구 호출에서 자주 루프에 빠지는 것 같습니다.
Qwen3.6-35B-A3B-mxfp4는 속도와 출력 품질 면에서 최적인 것 같습니다.
곧 동일한 코드 블록으로 Qwen3.6-35B-A3B-4bit를 테스트하여 파생 모델이 원본보다 성능이 좋지 않다는 제 직관을 확인할 예정입니다.
- stub_out
아이고, M4 Pro라니. 제 오래된 M1은 7B보다 큰 모델을 실행하려고 하면 정말 나이를 실감하게 하네요.
- thrw93747572007
여기에는 "로컬은 안 된다"는 의견이 꽤 많네요. 불행히도, 사람들이 실제로 모델을 무엇에 사용하려는지에 대한 세부 정보가 없는 경우가 많습니다. 저는 그 점이 궁금하네요.
저는 개인적으로 클라우드의 프론티어 모델을 많은 (메타)인지 분석에 사용하는데, 이는 유료 계정의 한도에 자주 걸릴 정도로 무거운 작업입니다. 그래서 저는 러다이트도 아니고 이 경우에 돈을 아끼는 사람도 아닙니다.
하지만 로컬 모델도 꽤 좋은 경험을 했습니다. 제 견고하지만 극단적이지 않은 데스크톱(RX 9070 XT 16GB 하나)은 주로 gemma4:12b와 특수 모델(임베딩)을 로컬 네트워크에 제공합니다. 이는 간단한 쿼리, 간단한 코드, 재구성 등과 같은 일반적인 용도로 사용되지만, 항상 실행되는 두 가지 특정 작업에도 사용됩니다:
a) Home Assistant에 연결되어 있습니다(LLM 없이 처리되는 "조명 XY 켜"와 같은 매우 간단한 명령 다음의 두 번째 단계로). 그래서 스마트워치에 "컴퓨터, 워프 코어에 연료가 얼마나 남았고, 버사드 수집기가 오늘 우주 먼지에서 얼마나 많은 에너지를 만들었어?"라고 중얼거릴 수 있습니다(또는 더 복잡한 조명 장면을 설명하거나 원하는 자동화를 만들 수도 있습니다).
전화기가 온디바이스 로컬 모델로 이를 전사하고, HA에 에이전트 액세스 권한이 있는 데스크톱으로 보냅니다. 데스크톱은 센서와 데이터를 살펴보고, 제가 태양광 패널과 배터리에 너드 용어로 태그를 붙인 것을 확인합니다. 올바른 결론을 내리고, 몇 가지 단위를 변환하고, 멋진 개요를 돌려줍니다. 제가 ...하는 동안 핸즈프리로 모든 것이 처리됩니다.
- amelius
> 로컬 실행의 주요 이유: 클라우드 API는 임대 토지입니다. 그들은 마음대로 가격을 변경하거나, 사용 한도에 도달하게 하거나, 백그라운드에서 제공되는 모델을 교체할 수 있습니다.
네, 하지만 교체하기는 쉽습니다.
주요 이유는 프라이버시여야 합니다.
- jumploops
M4 Max/128GB RAM에서 로컬 LLM을 실행할 때 제 가장 큰 문제는 프리필 지연 시간입니다.
그 이후로 DGX Spark 두 대를 구입했는데, 훨씬 더 빠릿빠릿한 느낌입니다.