← Resources
By Ren Sugaya
— Performance Engineer, GPU & Inference
·
· TUTORIAL
Apple Silicon에서 LLM 실행하기: 유니파이드 메모리와 어떤 모델이 들어가는가
Apple Silicon은 LLM 실행에 유독 뛰어납니다. 유니파이드 메모리가 공유되고, 고대역폭이며, 용량이 크기 때문입니다 — 64GB Mac으로도 70B 모델을 실행할 수 있습니다. 이 가이드는 각 RAM 티어에서 무엇이 들어가는지, MLX 대 llama.cpp, 한 가지 진짜 약점(프롬프트 처리), 그리고 툴링을 다룹니다.
유니파이드 메모리가 이점인 이유
Apple Silicon은 CPU, GPU, Neural Engine 전반에 걸쳐 단일 고대역폭 메모리 풀을 공유합니다 — 별도의 VRAM이 없고 PCIe 버스를 경유하는 느린 복사도 없습니다. 그래서 64GB Mac은 24GB 독립 GPU에는 들어가지 않는 모델을 로드할 수 있습니다: 전체 풀이 GPU에 제공되기 때문입니다.
이것이 중요한 이유는 LLM 토큰 생성이 [메모리 대역폭에 의해 병목](/articles/running-llms-on-cpu)되기 때문입니다 — 각 토큰은 메모리에서 모델을 읽어야 합니다 — 그리고 Apple의 유니파이드 대역폭은 디코드에서 실질적으로 경쟁력 있을 만큼 충분히 높습니다. 여기서 생성 속도를 결정하는 스펙은 원시 연산 능력이 아니라 대역폭입니다.
메모리 티어별로 무엇이 들어가는가
유니파이드 메모리가 결정적인 제약이므로, Mac에 맞춰 모델 크기를 선택하세요(4-bit 양자화 기준 수치):
- 16GB: 7B–8B 모델이 여유롭게 동작합니다.
- 32GB: 약 30B 모델까지.
- 64GB: 70B 모델이 가능해집니다(Q4의 70B는 약 40GB), 다만 컨텍스트 여유 공간이 빠듯합니다 — 70B의 실질적인 진입점입니다.
- 128GB: 대용량 컨텍스트를 위한 여유를 두고 더 높은 정밀도(Q5/Q8)로 70B 실행.
- Ultra 티어(192GB 이상): 고정밀도 70B, 매우 큰 모델, 또는 여러 모델의 동시 상주.
경험 법칙: Q4에서 가중치는 10억 파라미터당 약 0.5–0.6 GB를 예산으로 잡고, 컨텍스트 길이에 따라 커지는 KV 캐시를 위한 여유를 남겨두세요. 16K 또는 32K 컨텍스트에 맞을지 여부를 결정하는 것은 종종 KV 캐시입니다.
MLX 대 llama.cpp
Mac에서는 두 가지 런타임이 주류입니다. llama.cpp의 Metal 백엔드는 GPU 연산을 Metal 셰이더로 변환하고, 가장 큰 모델 라이브러리를 보유한 크로스플랫폼 GGUF 포맷을 사용합니다. MLX는 Apple이 유니파이드 메모리를 위해 처음부터 구축한 자체 프레임워크입니다 — 소형 모델에서 일반적으로 더 빠르며(~14B 미만에서 종종 의미 있는 차이), ~27B 이상에서는 두 런타임 모두 대역폭 한계에 도달하면서 격차가 좁혀집니다.
MLX는 성장세를 타고 있습니다: Apple이 선호 Apple Silicon 프레임워크로 포지셔닝했고, 주요 런타임들이 MLX 백엔드를 추가했으며, mixture-of-experts 모델에서 두드러집니다. 실용적인 관점: 소형 모델과 MoE 모델의 최대 속도를 위해서는 MLX, 가장 폭넓은 모델 선택과 크로스플랫폼 일관성을 위해서는 llama.cpp/GGUF를 사용하세요.
진짜 약점: 프롬프트 처리
Apple Silicon의 솔직한 한계는 생성이 아니라 프롬프트 처리(첫 토큰까지의 시간)입니다. 프리필(Prefill)은 대규모 행렬 곱셈을 포함하는 연산 집약적 작업이며, Apple의 GPU는 NVIDIA가 이 부분에서 빠른 이유인 전용 텐서 코어를 갖추고 있지 않습니다. 따라서 토큰 생성이 경쟁력이 있을 때도, 긴 프롬프트에서는 응답 시작이 눈에 띄게 느릴 수 있으며, 이는 장문 컨텍스트 작업의 실제 사용 경험을 지배합니다.
또 다른 한계는 생태계입니다: 대부분의 툴링이 CUDA를 대상으로 하고, GGUF보다 사전 양자화된 MLX 모델이 적으며, 고급 NVIDIA GPU는 여전히 원시 대역폭에서 몇 배 더 높습니다. 인터랙티브 단일 사용자 로컬 사용의 경우 Apple Silicon이 탁월하지만, 장문 컨텍스트 또는 고처리량 서빙의 경우 이러한 격차가 중요해집니다.
툴링과 양자화
Mac 툴링 환경은 성숙해 있습니다: Ollama(CLI 및 OpenAI 호환 API, 가장 쉬운 시작점), LM Studio(최고의 GUI), MLX-LM(Python을 통한 최고 성능과 파인튜닝), 그리고 프라이버시 중심의 오프라인 앱. GGUF가 크로스 툴 양자화 포맷의 주류이며, MLX 포맷은 Apple 네이티브로 빠르지만 라이브러리가 작습니다.
어디서나 마찬가지로, [양자화](/articles/llm-quantization-explained-gguf)가 이것을 가능하게 합니다 — 4-bit으로 낮추면 모델이 약 4배 축소되고(70B가 ~140GB에서 ~40GB로), 품질 손실은 소폭에 그치며, Q4_K_M이 보통 최적의 균형점입니다. 유니파이드 메모리가 허용한다면 Q5 또는 Q8으로 올리세요.
osFoundry에서의 Apple Silicon
osFoundry는 Metal과 MLX 경로를 통해 Apple Silicon에서 로컬 추론을 실행하므로, 모델이 Mac의 GPU에서 유니파이드 메모리를 사용하여 완전히 실행됩니다 — 데이터가 기기를 벗어나지 않고 PCIe 복사 페널티도 없습니다. 제약은 단순히 유니파이드 메모리의 크기이므로, osFoundry는 Mac에 맞는 모델을 선택하는 데 도움을 줍니다 — 16GB 머신에서는 7B–8B 모델, 64GB 이상 머신에서는 최대 70B — 그리고 가능한 한 많은 품질을 유지하면서 사용 가능한 메모리에 모델을 맞추는 양자화를 선택하므로, GGUF 포맷이나 Q4/Q5/Q8 트레이드오프를 수동으로 고민할 필요가 없습니다. 결과는 각 Mac의 메모리 티어에 맞게 조정된 완전히 비공개적이고 오프라인 가능한 로컬 추론이며, 더 빠른 프롬프트 처리나 더 높은 처리량이 필요할 때 동일한 모델을 전용 GPU 엔드포인트로 확장할 수 있습니다. (대역폭에 대한 배경 이야기는 [CPU 추론 가이드](/articles/running-llms-on-cpu)를 참조하세요.)
Frequently asked questions
- Mac이 전용 GPU 없이 로컬에서 대형 언어 모델을 실행할 수 있나요?
- 네 — 그것이 Apple Silicon의 강점입니다. 유니파이드 메모리는 CPU와 GPU 사이에서 공유되며 고대역폭이므로, GPU가 전체 메모리 풀을 사용할 수 있습니다. 64GB Mac은 24GB 독립 GPU에 들어가지 않는 70B 모델을 4-bit으로 실행할 수 있고, 소형 모델도 빠르게 동작합니다. 별도의 GPU가 필요하지 않습니다.
- 7B, 30B, 70B 모델을 실행하려면 유니파이드 메모리가 얼마나 필요한가요?
- 4-bit 양자화 기준: 7B–8B 모델에는 약 16GB, 약 30B까지는 32GB, 70B에는 64GB(가중치 약 40GB, 컨텍스트 여유 공간 빠듯)가 필요합니다. 128GB면 대용량 컨텍스트를 위한 여유를 두고 더 높은 정밀도로 70B를 실행할 수 있습니다. 컨텍스트 길이에 따라 커지는 KV 캐시를 위해 항상 여유를 남겨두세요.
- Apple Silicon에서 MLX가 llama.cpp보다 빠른가요?
- 소형 모델에서는 종종 그렇습니다 — MLX는 유니파이드 메모리를 위해 구축된 Apple의 프레임워크로, 약 14B 미만에서 의미 있게 더 빠르며, mixture-of-experts 모델에서도 빛을 발합니다. 약 27B 이상에서는 두 런타임 모두 대역폭 제한을 받게 되어 수렴합니다. llama.cpp의 이점은 더 큰 GGUF 모델 라이브러리와 크로스플랫폼 일관성입니다. 소형 및 MoE 모델에서 최대 속도를 원하면 MLX를 사용하세요.
- 긴 프롬프트에서 Mac이 응답을 시작하는 데 왜 느린가요?
- 프롬프트 처리(첫 토큰까지의 시간)가 Apple Silicon의 약점이기 때문입니다. 프리필은 연산 집약적이며 Apple의 GPU는 NVIDIA가 이에 사용하는 전용 텐서 코어가 없어서, 긴 프롬프트는 첫 토큰이 나타나기 전에 시간이 걸립니다 — 이후 토큰 생성이 빠르더라도 마찬가지입니다. 이것이 장문 컨텍스트 사용에서 Apple 특유의 주요 한계입니다.
- Mac에서 LLM을 실행하는 가장 빠른 도구는 무엇인가요?
- 최고 성능을 위해서는 MLX-LM(Apple의 프레임워크), 특히 소형 및 MoE 모델에서 효과적입니다. 사용 편의성을 위해서는 Ollama(CLI 및 OpenAI 호환 API) 또는 LM Studio(최고의 GUI)가 인기 있으며, 현재 많은 도구들이 Apple Silicon에서 MLX 백엔드를 사용합니다. 최적의 선택은 최대 속도를 원하는지, 최대 편의성을 원하는지에 따라 달라집니다.
- 64GB MacBook Pro에서 70B 모델을 실행할 수 있나요?
- 네, 4-bit에서 가능합니다 — Q4의 70B는 약 40GB로, 64GB에 런타임과 적당한 컨텍스트 윈도우를 위한 공간과 함께 들어갑니다. 이것이 Mac에서 70B의 실질적인 진입점입니다; 컨텍스트 여유가 제한적이므로 대용량 컨텍스트나 더 높은 정밀도를 위해서는 128GB가 필요합니다. 안정적인 생성 속도를 기대할 수 있지만, 긴 프롬프트에서의 첫 토큰 응답 시간은 느릴 수 있습니다.
- 로컬 LLM에는 Apple Silicon과 NVIDIA 중 어느 것이 나은가요?
- Apple Silicon은 비공개 단일 사용자 로컬 추론에 탁월합니다 — 대용량 유니파이드 메모리 덕분에 하나의 Mac으로 여러 독립 GPU가 필요한 모델을 낮은 전력으로 실행할 수 있습니다. NVIDIA는 원시 대역폭(몇 배 더 높음), 프롬프트 처리 속도, 고동시성 서빙, 생태계(CUDA)에서 우세합니다. 개인 로컬 사용과 한 대의 머신에서 대형 모델 실행에는 Apple을, 처리량과 장문 컨텍스트 서빙에는 NVIDIA를 선택하세요.
Sources