연구 작업대와 앱 실행 환경
MLX와 Core ML은 둘 다 Apple Silicon에서 작동하지만 경쟁자는 아니야. Apple의 머신러닝 기술 묶음에서 서로 다른 역할을 맡지. PyTorch에서 넘어온 사람이 둘을 같은 종류의 도구로 보는 게 흔한 실수야.
MLX는 연구 작업대야. Python을 중심으로 실험하도록 설계됐고, 논문에서 모델을 설명하는 방식에 가깝게 옮길 수 있는 유연한 API를 제공해. 반복해서 실험하고 파인튜닝하거나, 모델 내부를 들여다보고 고칠 때 MLX를 써.
Core ML은 앱에 모델을 싣는 실행 환경이야. Swift를 중심으로 iOS, macOS, watchOS, tvOS 앱 안에 미리 학습한 모델을 넣도록 설계됐어. 모델 불러오기와 추론, 기기 안에서 지키는 개인정보, App Store 배포, Vision·Speech·Natural Language 같은 상위 프레임워크 연동을 맡지. 모델이 출시할 앱의 엔진이라면 Core ML을 써.
둘을 함께 쓰는 방법
많은 운영 프로젝트는 PyTorch나 TensorFlow처럼 coremltools가 지원하는 프레임워크에서 학습하고, 앱에 넣을 때 Core ML로 변환하는 흐름을 기준으로 삼아. MLX에서 학습했다면 coremltools가 MLX 모델을 직접 받지는 않으므로, 같은 연산과 가중치를 지원되는 PyTorch·TensorFlow 표현으로 내보내거나 Core ML이 지원하는 연산으로 다시 구성한 뒤 변환해야 해. Core ML에서 빠른 실험을 하려 하거나, MLX를 그대로 App Store 앱에 넣으려 하지 마.
각자 잘하는 일
- MLX가 맞는 때 — 연구, 시제품, 파인튜닝, 배열 수준 디버깅, 서버 쪽 서비스, Python 작업처럼 실행 환경의 완성도보다 유연성이 중요한 모든 경우.
- Core ML이 맞는 때 — iOS·macOS·watchOS·tvOS 앱에 기능을 넣거나 App Store로 배포할 때, 데이터가 사용자 기기를 떠나지 않는 Apple의 기기 내 개인정보 보호가 필요할 때, 또는 Vision·Speech·Natural Language와 함께 쓸 때.
짧은 선택 흐름
- 서버, 명령줄 도구, 앱이 아닌 환경에 배포한다 → MLX. LLM이라면 mlx-lm.
- App Store로 내보낼 Apple 플랫폼 앱에 배포한다 → Core ML.
- 연구하거나 학습한다 → MLX 또는 PyTorch. 변환하고 넣고 다시 빌드하는 Core ML 반복 과정은 실험용으로 너무 느려.
- MLX에서 학습한 모델을 앱에 넣고 싶다 → 가중치와 연산을
coremltools가 받는 지원 표현으로 내보내거나 다시 구성한 뒤 Core ML로 변환해.
기억할 구도
MLX는 Python 생태계, Core ML은 Apple 플랫폼 앱 배포 생태계에 속한다고 생각해. 둘은 지원되는 중간 표현을 거쳐 배포 경계에서 협력하지, 경쟁하지 않아. 무엇을 배포할지가 답을 정해 주므로 둘을 추상적으로 겨룰 필요가 없어.