한 줄 정의
MLX는 Apple Silicon Mac에서 머신러닝 배열 연산, 모델 학습, 로컬 LLM 추론을 돌리기 위한 Apple의 오픈소스 배열 프레임워크야. 모델 이름이 아니라, 모델이 Mac의 CPU·GPU·통합 메모리 위에서 어떻게 실행되는지를 정하는 런타임 쪽 기반으로 보면 돼.
그래서 기사에서 MLX가 나오면 “새 모델이 나왔구나”보다 “이 모델을 Apple Silicon 경로로 돌릴 수 있구나”에 가까워. CUDA GPU 서버, llama.cpp의 GGUF 경로, LM Studio 같은 앱과 같은 층위로 뭉뚱그리면 숫자 해석이 금방 꼬여.
어떻게 작동하나
MLX의 기본 표면은 NumPy와 비슷한 array API야. 배열을 만들고 연산을 쌓은 뒤, 어느 장치에서 실행할지 정하는 프레임워크라고 보면 돼.
- 함수 변환: 자동 미분, vectorization, graph optimization을 한 흐름에서 다뤄.
- 모델 작성:
mlx.nn과 optimizer 패키지가 더 높은 모델 구성 층을 맡아. - 실행 방식: 계산은 lazy하게 잡히고, 실제 array는 필요할 때 materialize돼.
- 그래프 구성: 그래프가 동적으로 만들어져서 입력 shape이 바뀔 때마다 긴 컴파일을 기다리는 구조와는 다르게 움직여.
MLX가 Mac 기사에서 자주 보이는 이유는 unified memory 때문이야. 이 칩 구조에서는 CPU와 GPU가 같은 메모리 풀에 접근하고, MLX array도 shared memory에 살아. 그래서 array 자체를 CPU용, GPU용으로 따로 복사하는 방식보다 “이번 연산을 CPU stream에서 돌릴지, GPU stream에서 돌릴지”가 더 중요해져. 문서 예시처럼 독립 연산은 CPU와 GPU에서 나란히 돌 수 있고, 의존성이 있으면 MLX scheduler가 순서를 맞춰 줘.
설치는 보통 pip install mlx에서 시작하고, LLM을 바로 만질 때는 pip install mlx-lm이나 mlx_lm.chat 같은 도구가 앞에 나와. LLM 쪽에서는 보통 MLX 본체보다 mlx-lm이나 mlx-vlm 같은 패키지 이름으로 체감돼. mlx-lm은 Hugging Face Hub의 모델을 받아 텍스트 생성과 fine-tuning을 해주고, 모델을 양자화해서 올리는 흐름까지 다뤄. mlx-vlm은 Gemma 4처럼 이미지 입력이 붙는 모델을 Mac에서 실행하는 경로로 쓰여. 여기서 “MLX 지원”은 대개 원본 가중치 그대로가 아니라 MLX 형식 변환, 4bit 양자화, vision encoder 지원까지 따로 봐야 한다는 뜻이야.
왜 중요한가
MLX는 Mac을 로컬 AI 실험 장비로 볼 수 있게 만든 중요한 이유 중 하나야. Apple의 2025년 11월 M5 글은 M5 MacBook Pro 24GB unified memory에서 4096 프롬프트 토큰과 추가 생성 128토큰 조건으로 여러 LLM을 측정했어. 그 표에는 Qwen3-14B-MLX-4bit가 9.16GB, Qwen3-30B-A3B-MLX-4bit가 17.31GB 메모리를 쓴다고 나와. 이 숫자는 “24GB면 다 된다”가 아니라, 모델 구조와 양자화가 맞으면 일부 14B·30B급 경로도 Mac 안에서 실험할 수 있다는 쪽에 가까워.
속도 수치도 조건표로 읽어야 해. Apple 글은 M5가 M4 대비 subsequent token generation에서 19-27% 정도 좋아졌고, 일부 첫 토큰 시간은 최대 4x 빨라졌다고 말해. 반면 r/LocalLLaMA의 DFlash 구현 글은 M5 Max 64GB, MLX, Qwen3.5-9B BF16 조건에서 1024 토큰 생성이 85 tok/s, baseline이 26 tok/s였다고 적어. 둘 다 MLX 이야기지만 하나는 Apple의 M5 공식 성능 글이고, 다른 하나는 커뮤니티가 만든 DFlash 구현 보고야.
실무에서는 이 차이가 꽤 커. Agentic Coding 실험을 Mac에서 돌릴 때는 모델 이름만으로 부족해. MLX 변환본이 있는지, 컨텍스트가 길어질 때 KV cache가 얼마나 커지는지, prefill이 느린지 generation이 느린지, UI 도구가 mlx-lm 서버를 바로 호출할 수 있는지까지 봐야 해. 서버용 vLLM이나 CUDA 경로로 가는 판단과는 다른 표를 써야 한다는 말이야.
주의해서 볼 점
- MLX는 Mac용 마법 버튼이 아니야. 같은 Mac이라도 칩, 통합 메모리 용량, macOS 버전, 모델 변환 품질, 양자화 비트가 바뀌면 결과가 달라져.
- Apple의 MLX 벤치마크는 공식 자료지만 자사 하드웨어 조합을 보여 주는 글이야. 독립 벤치마크처럼 모든 Mac 성능으로 넓히면 곤란해.
- Reddit의 DFlash
85 tok/s는 M5 Max 64GB, MLX, Qwen3.5-9B BF16, generation only, no prefill 조건이 붙은 커뮤니티 수치야. 긴 코드베이스 입력을 넣는 agent 작업에서는 prefill 시간이 다시 중요해져. MLX 지원과 llama.cpp 지원은 같은 말이 아니야. 전자는 Apple Silicon 친화 변환본과 MLX 패키지 경로를 보는 쪽이고, 후자는 GGUF와 여러 backend를 보는 쪽에 가까워.- Gemma 4처럼 멀티모달 모델은 텍스트 생성만 확인하면 부족해. 이미지·오디오 입력, vision projector나 encoder 지원, 4bit 변환본의 품질을 따로 봐야 해.