ml-explore/mlx

MLX: An array framework for Apple silicon

해결하는 문제

MLX는 Apple silicon에서 기계학습에 특화된 고성능 배열 프레임워크로, CPU와 GPU 간 수동 데이터 전송의 오버헤드 없이 연구자가 모델을 효율적으로 학습하고 배포할 수 있도록 합니다.

작동 방식

MLX는 배열이 공유 메모리에 존재하는 통합 메모리 모델을 사용하여, 지원되는 어떤 장치(CPU 또는 GPU)에서든 데이터 이동 없이 연산을 수행할 수 있습니다. 지연 계산을 사용하여 배열은 필요할 때만 실제 생성되며, 입력 형태가 변경될 때 느린 컴파일을 피하기 위해 동적 그래프 구축을 채택합니다. 이 프레임워크는 자동 미분, 벡터화, 그래프 최적화를 위한 조합 가능한 함수 변환을 지원합니다.

대상 사용자

새로운 아이디어를 탐색하고 복잡한 모델을 구축해야 하는 기계학습 연구자들을 위한 것입니다.

주요 특징

  • 익숙한 API: Python API는 NumPy를 따르며, mlx.nnmlx.optimizers는 PyTorch를 따릅니다.
  • 다중 언어 지원: C++, C, Swift에서도 완전한 API를 제공합니다.
  • 통합 메모리: Apple silicon에서 CPU와 GPU 간 데이터 전송을 제거합니다.
  • 유연한 계산: 지연 평가와 동적 그래프 구축을 결합하여 디버깅이 쉬우며 직관적인 개발이 가능합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트