Hugging Face에서 MLX 사용하기

Hugging Face에서 MLX 사용하기

MLX는 Apple Machine Learning Research가 만든, Apple silicon용 모델 학습·서빙 프레임워크예요.

출처: 문서

본문

다양한 예시가 함께 제공돼요.

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로 성능을 높여 보세요.