애플의 MLX, CUDA 지원 추가

7 hours ago 1

  • MLXApple 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 양쪽 하드웨어에서 최신 연구 및 산업 활용 모두에 적합한 프레임워크로 자리매김할 전망

Read Entire Article