-
MLX는 Apple Silicon 기반 기계학습 연구자를 위한 배열 프레임워크임
- Python 및 C++/C/Swift API 제공, NumPy 및 PyTorch와 유사한 사용성 제공
-
자동 미분, 자동 벡터화, 지연 연산, 동적 그래프 등 고급 기능 지원
-
통합 메모리 모델로 데이터 전송 없이 CPU 및 GPU 등 다양한 장치에서 연산 가능
- 최신 업데이트로 CUDA 백엔드 지원 추가 추진, 다양한 하드웨어 환경 확장 시도 의미
MLX 프레임워크 소개
-
MLX는 Apple의 머신러닝 연구팀이 개발한 기계학습용 배열 프레임워크임
- 엔지니어와 연구자가 효과적으로 실험하고 빠르게 아이디어를 검증할 수 있도록 개발됨
- Apple Silicon을 지원하는 것이 특징이지만, 최근 CUDA 백엔드 추가로 NVIDIA GPU 환경에서도 동작 가능성을 확장함
주요 특징
-
친숙한 API: Python API는 NumPy를, 상위 패키지인 mlx.nn, mlx.optimizers는 PyTorch와 유사한 인터페이스 제공
-
C++ , C, Swift API도 함께 제공되며, Python API와 일관된 사용성 보장
-
합성 가능한 함수 변환: 자동 미분, 자동 벡터화, 컴퓨팅 그래프 최적화 등의 기능이 포함됨
-
지연 계산: 여러 연산을 묶어 실제로 필요할 때만 결과를 계산하는 구조로 효율적인 리소스 활용 가능
-
동적 그래프 생성: 입력 데이터의 shape이 바뀌어도 느린 컴파일 없이 즉각적인 실행, 개발 및 디버깅이 용이함
-
멀티 디바이스 및 통합 메모리 모델:
- 기존에는 CPU와 Apple GPU만 지원했으나, CUDA 백엔드로 NVIDIA GPU 환경 지원 추진 중
-
통합 메모리 구조 채택으로, 메모리 복사 없이 모든 지원 장치에서 동일 객체 연산 가능
-
간결하고 확장 가능한 설계: 연구자들이 프레임워크를 손쉽게 확장 및 개선 가능
타 프레임워크와의 차이점 및 영감
-
NumPy, PyTorch, Jax, ArrayFire 등에서 설계 영감 받음
- 특징적으로 통합 메모리 모델 및 간결한 인터페이스, 즉시 실행/디버깅 환경을 강조함
대표적 예시 및 활용 분야
-
MLX Examples 레포에는 다양한 실습 코드가 존재함
- Transformer 언어 모델 학습
- LLaMA 기반 대규모 텍스트 생성 및 LoRA 활용한 파인튠
- Stable Diffusion으로 이미지 생성
- OpenAI Whisper 기반 음성 인식 등 최신 모델 구현 사례 포함
설치 및 문서
- Python 환경에서 pip 또는 conda로 설치 가능함 (PyPI 및 conda-forge 지원)
-
공식 문서에서 빠른 시작 가이드, 설치법, C++ 및 Python 빌드 방법 제공
기여 및 인용
- MLX는 외부 기여를 환영하며, 공식 가이드라인에 따라 코드·문서에 쉽게 참여 가능함
- 연구 수행 시 아래 BibTeX 양식으로 MLX 소프트웨어 인용 가능
@software{mlx2023,
author = {Awni Hannun and Jagrit Digani and Angelos Katharopoulos and Ronan Collobert},
title = {{MLX}: Efficient and flexible machine learning on Apple silicon},
url = {https://github.com/ml-explore},
version = {0.0},
year = {2023},
}
MLX의 의미와 CUDA 지원
- Apple Silicon 중심의 프레임워크였던 MLX가 CUDA 백엔드 도입으로 NVIDIA GPU 환경에서도 범용적으로 활용될 가능성 확장 중
- 최신 CUDA 지원을 통해, Apple과 NVIDIA 양쪽 하드웨어에서 최신 연구 및 산업 활용 모두에 적합한 프레임워크로 자리매김할 전망