24P by xguru 6달전 | favorite | 댓글 2개
  • 애플 머신러닝 연구팀에서 제작한, 애플 실리콘에서 효율적이고 유연한 머신러닝 수행을 위해 설계된 어레이 프레임워크
  • Numpy 와 거의 유사한 Python API를 제공하며, 모든 기능을 같이 제공하는 C++ API도 있음
  • Numpy와의 차이점
    • Composable function transformations: MLX에는 자동 미분, 자동 벡터화, 계산 그래프 최적화를 위한 구성 가능한 함수 변환이 있음
    • Lazy Computation: MLX의 계산은 Lazy함. 배열은 필요할 때만 구체화(Materialize)됨
    • 멀티 디바이스: 지원되는 모든 장치(CPU, GPU, ...)에서 연산을 실행할 수 있음
  • 동적 그래프 구성: MLX의 계산 그래프는 동적으로 구축됨. 함수 인수의 모양을 변경해도 컴파일 속도가 느려지지 않으며, 디버깅이 간단하고 직관적
  • PyTorch, Jax, ArrayFire 같은 프레임워크에서 영감을 받음
    • 이러한 프레임워크와 MLX의 눈에 띄는 차이점은 Unified Memory Model
    • MLX의 어레이는 공유 메모리에 저장됨. MLX 배열에 대한 작업은 데이터 복사를 수행하지 않고도 지원되는 모든 장치 유형에서 수행할 수 있음
    • 현재 지원되는 장치 유형은 CPU와 GPU
  • 다양한 예제 포함
    • Transformer 언어 모델 학습
    • LLaMA 로 대규모 텍스트 생성 및 LoRA로 파인튜닝
    • Stable Diffusion으로 이미지 생성하기
    • OpenAI's Whisper로 음성 인식하기

동적 그래프 구성: MLX의 계산 그래프는 동적으로 구축됨. 함수 인수의 모양을 변경해도 컴파일 속도가 느려지지 않으며, 디버깅이 간단하고 직관적

이게 진짜 좋아보이네요. Dynamic한 데이터를 많이 다뤄서 jax 쓸때 항상 힘들었는데...

오, 이거 좋네요. 한 번 써보겠습니다.