# MLX - 애플 실리콘을 위한 Numpy와 비슷한 어레이 프레임워크

> Clean Markdown view of GeekNews topic #12217. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=12217](https://news.hada.io/topic?id=12217)
- GeekNews Markdown: [https://news.hada.io/topic/12217.md](https://news.hada.io/topic/12217.md)
- Type: news
- Author: [xguru](https://news.hada.io/@xguru)
- Published: 2023-12-07T10:19:54+09:00
- Updated: 2023-12-07T10:19:54+09:00
- Original source: [github.com/ml-explore](https://github.com/ml-explore/mlx)
- Points: 24
- Comments: 2

## Topic Body

- 애플 머신러닝 연구팀에서 제작한, 애플 실리콘에서 효율적이고 유연한 머신러닝 수행을 위해 설계된 어레이 프레임워크   
- 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로 음성 인식하기

## Comments



### Comment 21229

- Author: mjhong0708
- Created: 2023-12-07T16:14:16+09:00
- Points: 1

> 동적 그래프 구성: MLX의 계산 그래프는 동적으로 구축됨. 함수 인수의 모양을 변경해도 컴파일 속도가 느려지지 않으며, 디버깅이 간단하고 직관적  
  
이게 진짜 좋아보이네요. Dynamic한 데이터를 많이 다뤄서 jax 쓸때 항상 힘들었는데...

### Comment 21227

- Author: haebom
- Created: 2023-12-07T13:03:58+09:00
- Points: 1

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