콘텐츠로 이동

Apple MLX 가속

개발 중

이 기능은 현재 활발히 개발 중입니다. 정식 릴리즈 버전에는 포함되지 않았거나 기능이 제한적일 수 있습니다.

MLX는 Apple 머신러닝 연구팀이 제공하는 Apple Silicon용 머신러닝 배열 프레임워크입니다. M1부터 M5까지의 최신 칩을 사용하는 macOS 사용자에게 MLX는 LLM 실행을 위한 가장 최적화된 네이티브 경험을 제공합니다.

MLX란 무엇인가요?

  • 저장소: github.com/ml-explore/mlx

  • 주요 인물: Awni Hannun (@awni), Apple의 수석 연구원으로 Apple Silicon에 Transformer 모델을 최적화하는 데 주도적인 역할을 했습니다.

2023년 말 Apple이 조용히 공개한 MLX는 NumPy나 PyTorch 사용자에게 익숙하도록 설계되었지만, Apple Silicon의 통합 메모리 아키텍처(Unified Memory Architecture)를 위해 바닥부터 새로 만들어졌습니다.

주요 장점

  • 통합 메모리: MLX는 CPU와 GPU가 동일한 메모리 풀을 공유하게 합니다. 즉, 제로 카피(Zero-copy) 데이터 전송이 가능하여, 모델 가중치가 한 곳에 머물러 있고 두 프로세서가 즉시 접근할 수 있습니다.

  • 동적 그래프 구성: PyTorch처럼 MLX는 계산 그래프를 즉석에서 생성하므로 유연하고 디버깅이 쉽습니다.

  • 지연 연산 (Lazy Computation): 결과가 실제로 필요할 때만 연산을 수행하여 전력을 아끼고 효율성을 높입니다.

Backend.AI GO에서의 역할

llama.cpp가 훌륭한 크로스 플랫폼 솔루션이라면, MLX는 macOS 사용자에게 있어 종종 더 우월한 선택지입니다.

MLX 서버

Backend.AI GO는 mlx-lm 기반의 추론 서버를 통합했습니다. MLX 모델을 선택하면:

  1. 앱이 Core ML과 Metal에 최적화된 전용 Python 기반 사이드카 프로세스를 실행합니다.

  2. 모델을 통합 메모리에 직접 로드합니다.

  3. 동일한 하드웨어에서 다른 런타임에 비해 월등히 높은 토큰 생성 속도(TPS)를 제공합니다.

왜 MLX를 선택해야 하나요?

Mac 사용자라면 GGUF(llama.cpp)와 MLX 중 무엇을 써야 할지 고민될 수 있습니다.

다음 경우에 MLX를 선택하세요:

  • 최고 속도: Mac이 제공할 수 있는 절대적인 최고 추론 속도를 원할 때.

  • 배터리 효율: 장시간 작업을 수행할 때 전력 효율이 중요할 때.

  • 최신 모델: MLX 커뮤니티(Awni 등이 주도)는 Llama 3, Mistral, Qwen과 같은 새로운 아키텍처를 매우 빠르게 이식합니다.

다음 경우에 GGUF(llama.cpp)를 선택하세요:

  • 호환성: Intel Mac을 사용 중이거나 MLX에서 아직 지원하지 않는 특정 양자화 포맷이 필요할 때.

  • 극한의 양자화: 제한된 RAM에서 매우 큰 모델을 실행하기 위해 공격적인 양자화(예: Q2_K)가 필요할 때.

지원 모델

Backend.AI GO는 Hugging Face에서 MLX로 변환된 모델을 직접 로드할 수 있습니다. mlx 태그가 있거나 mlx-community 조직에 있는 모델들을 찾아보세요.

  • 일반적인 형식: MLX 모델은 보통 config.json, tokenizer.json*.safetensors 가중치 파일을 포함하는 폴더 형태로 제공됩니다.

Backend.AI GO는 Apple MLX 팀과 Awni Hannun의 첨단 연구 성과를 활용하여 macOS에서 동급 최강의 AI 경험을 제공합니다.