안녕하세요 Simon 입니다.
제 올해의 목표인 Apple ML 생태계를 공부해보자 였는데요. 애플에서 최근에 출시한 MLX에 대해 포스팅 해보겠습니다.
MLX는 Apple 실리콘에서 효율적이고 유연한 머신 러닝을 위해 설계된 NumPy와 유사한 배열 프레임워크로, Apple 머신 러닝 연구팀에서 개발했습니다. Python API는 몇 가지 예외를 제외하고는 NumPy를 거의 그대로 따릅니다. MLX는 또한 완전한 기능을 갖춘 C++ API를 갖추고 있으며, 이는 Python API와 매우 유사합니다.
컴포저블 함수 변환: MLX는 자동 미분, 자동 벡터화, 계산 그래프 최적화를 위한 구성 가능한 함수 변환을 제공합니다.
지연 계산: MLX의 계산은 지연 계산입니다. 배열은 필요할 때만 구체화됩니다.
멀티 디바이스: 지원되는 모든 장치(CPU, GPU, ...)에서 연산을 실행할 수 있습니다.
저같은 경우 아직 현역인 M1 Pro 를 쓰고 있습니다. m2 맥북에어도 보유중이긴 합니다. 근데 사실 m3가 나왔지만 사실 작업자는 크게 느끼지 못할정도라고 하는데 MLX 프레임워크 환경에서는 m5 정도가 나오면 느껴지지 않을까 생각합니다
라이브러리 설치
주의
MLX is only available on devices running macOS >= 13.3 It is highly recommended to use macOS 14 (Sonoma)
소노마 부터 적극권장하고 있네요. 현재 시점 저는 13.3 벤투라 운영체제를 사용하고 있습니다.
!python -c "import platform; print(platform.processor())" # It must be arm
!pip install mlx
Trouble Shouting
만약 내 파이썬 환경에서 실행이 되지 않는다면, 환경을 확인을 해주세요.
python -c "import platform; print(platform.processor())"
arm device만 되기 떄문에 M시리즈의 mac 제품인지 확인을하고, 좋은 방법은 가상환경을 다운로드하고, native 파이썬을 설치하는 방법입니다.
Python Build
Build Requirements
- A C++ compiler with C++17 support (e.g. Clang >= 5.0)
- cmake – version 3.24 or later, and make
- Xcode >= 14.3 (Xcode >= 15.0 for macOS 14 and above)
1. GitHub 저장소에서 MLX 복제하기:
git clone git@github.com:ml-explore/mlx.git mlx && cd mlx
2. pybind11 라이브러리 설치하기:
pip install "pybind11[global]"
conda install pybind11
brew install pybind11
3. pip를 사용하여 빌드하고 설치합니다:
env CMAKE_BUILD_PARALLEL_LEVEL="" pip install .
4. 개발용으로 편집 가능한 설치를 합니다:
env CMAKE_BUILD_PARALLEL_LEVEL="" pip install -e .
5. 설치가 제대로 되어 있는지 확인하기 위해 테스트를 실행합니다.
pip install ".[testing]"
python -m unittest discover python/tests
6. 선택 사항: 자동 완성 및 타입 체킹을 위해 IDE에서 스텁을 설치합니다.
pip install ".[dev]"
python setup.py generate_stubs
- 이 단계는 개발 중에 유용한 자동 완성 및 타입 체킹 기능을 활성화하기 위해 추가 개발 도구를 설치합니다.
'AI > Contents' 카테고리의 다른 글
프롬프트 엔지니어링의 새로운 방법 : PAL(Program-Aided Language Models) 의 원리와 실제 적용 사례 (1) | 2024.01.17 |
---|---|
GPT 스토어에서 가장 인기있는 챗봇은? (3) | 2024.01.15 |
30분이면 자막을 입힌다고?? Whisper AI를 사용해보자 (1) | 2024.01.05 |
오픈리더보드의 평가지표에 대해 (3) | 2024.01.04 |
WIZnet Chatbot 개발 일지 - 제품 이름 환각현상 해결하기 (1) | 2023.12.29 |