MLX
MLX
MLX는 Apple 실리콘에서 머신러닝을 돌리기 위한 배열 프레임워크예요. Transformers 모델을 별도의 변환 없이 MLX에서 바로 실행하는 방법을 살펴볼게요.
출처: 문서
본문
MLX는 Apple 실리콘에서 머신러닝을 위한 배열 프레임워크인데 CUDA에서도 동작해요. Apple 실리콘에서는 배열이 공유 메모리에 남아 CPU와 GPU 사이 데이터 복사를 피하고, 지연 계산(lazy computation) 덕분에 그래프 조작과 최적화가 가능해요. 네이티브 safetensors 지원 덕분에 Transformers 언어 모델을 MLX에서 바로 실행할 수 있어요.
mlx-lm 라이브러리를 설치해요.
pip install mlx-lm transformers
모델 아키텍처가 지원되기만 하면 Hub에서 어떤 Transformers 언어 모델이든 불러올 수 있어요. 가중치 변환이 필요 없어요.
from mlx_lm import load, generate
model, tokenizer = load("openai/gpt-oss-20b")
output = generate(
model,
tokenizer,
prompt="The capital of France is",
max_tokens=100,
)
print(output)
Transformers 통합 과정
- mlx_lm.load가 safetensor 가중치를 불러와 모델과 토크나이저를 반환해요.
- MLX는 텐서 이름을 키로 하는 가중치 배열을 불러와 MLX nn.Module 파라미터 트리에 매핑해요. 이건 Transformers 체크포인트가 구성되는 방식과 일치해요.
[!TIP] MLX와 Transformers의 통합은 양방향이에요. Transformers도 Hub에서 MLX 가중치를 불러와 실행할 수 있어요.
리소스 (Resources)
더 알아보기 (Learn more)
- Transformers 커스텀 모델 문서에서 나만의 모델을 만들어 보세요.