Hugging Face에서 MLX 사용하기
Hugging Face에서 MLX 사용하기
MLX는 Apple Machine Learning Research가 만든, Apple silicon용 모델 학습·서빙 프레임워크예요.
출처: 문서
본문
다양한 예시가 함께 제공돼요.
- MLX-LM으로 텍스트 생성과 GGUF 형식 모델의 MLX-LM 텍스트 생성
- LLaMA를 통한 대규모 텍스트 생성
- LoRA를 통한 파인튜닝
- Stable Diffusion을 통한 이미지 생성
- OpenAI의 Whisper를 통한 음성 인식
Hub에서 MLX 탐색하기
모델 페이지 왼쪽의 필터로 MLX 모델을 찾을 수 있어요. MLX 형식으로 가중치를 변환·게시하는 기여자들의 공개 MLX 커뮤니티도 있어요.
MLX Hugging Face Hub 통합 덕분에 몇 줄의 코드로 MLX 모델을 로드할 수 있어요.
설치
MLX는 독립형 패키지로 제공되며, 대규모 언어 모델용 Hugging Face 통합을 가진 MLX-LM이라는 서브패키지가 있어요. MLX-LM 설치는 pip로 한 줄이면 돼요.
pip install mlx-lm
자세한 정보는 여기에서 확인할 수 있어요.
mlx-lm을 설치하면 mlx를 별도로 설치할 필요가 없어요. mlx-lm을 쓰지 않고 MLX만 쓰고 싶다면 MLX 자체를 다음과 같이 설치할 수 있어요.
pip 사용 시:
pip install mlx
conda 사용 시:
conda install -c conda-forge mlx
기존 모델 사용하기
MLX-LM에는 텍스트 생성을 위한 유용한 유틸리티가 있어요. 다음 한 줄은 모델을 직접 다운로드·로드하고 텍스트 생성을 시작해요.
python -m mlx_lm.generate --model mistralai/Mistral-7B-Instruct-v0.2 --prompt "hello"
생성 옵션 전체 목록은 다음을 실행하세요.
python -m mlx_lm.generate --help
Python을 통해서도 모델을 로드하고 텍스트 생성을 시작할 수 있어요.
from mlx_lm import load, generate
model, tokenizer = load("mistralai/Mistral-7B-Instruct-v0.2")
response = generate(model, tokenizer, prompt="hello", verbose=True)
MLX-LM은 LLaMA, Phi-2, Mistral, Qwen을 포함한 인기 LLM 아키텍처를 지원해요. 지원 목록에 없는 모델도 다음과 같이 쉽게 다운로드할 수 있어요.
대역폭이 높고 RAM이 64GB 이상인 머신에서는 HF_XET_HIGH_PERFORMANCE=1을 설정하면 동시성 한도와 버퍼 크기가 올라가요.
pip install -U huggingface_hub
export HF_XET_HIGH_PERFORMANCE=1
hf download --local-dir <LOCAL FOLDER PATH> <USER_ID>/<MODEL_NAME>
모델 변환·공유하기
Hugging Face Hub의 LLM을 다음과 같이 변환하고, 선택적으로 양자화(quantize)할 수 있어요.
python -m mlx_lm.convert --hf-path mistralai/Mistral-7B-v0.1 -q
변환 후 모델을 바로 푸시하고 싶다면 다음과 같이 할 수 있어요.
python -m mlx_lm.convert \
--hf-path mistralai/Mistral-7B-v0.1 \
-q \
--upload-repo <USER_ID>/<MODEL_NAME>
추가 리소스
더 알아보기 (Learn more)
MLX는 Apple silicon 전용 프레임워크예요. mlx-lm을 설치하면 mlx를 따로 설치할 필요가 없고, generate·convert 명령으로 추론과 변환·양자화를 바로 할 수 있어요. 대용량 다운로드가 필요하면 HF_XET_HIGH_PERFORMANCE=1로 성능을 높여 보세요.