mlx-lm은 Apple의 MLX(Apple Silicon에서 최적화된 기계 학습 프레임워크)를 기반으로 한 경량화된 언어 모델 실행 도구입니다. mlx-lm을 사용하면 macOS(특히 M1, M2, M3 등 Apple Silicon) 환경에서 LLM을 효율적으로 로컬 실행할 수 있습니다.
mlx-lm 이란?목적: Apple Silicon(M1/M2/M3 칩셋)의 ML 가속기를 최대한 활용하여 LLM을 빠르고 저전력으로 실행.
장점:
지원 형식: GGUF, MLX 포맷, 양자화 (4bit, 8bit) 모델 지원
명령어 기반 사용 / Python API 사용 가능
pip install mlx-lm
또는 최신 버전 설치:
pip install git+https://github.com/ml-explore/mlx-lm.git
mlx-community/Llama-3.2-3B-Instruct-4bit 모델 사용from mlx_lm import load, chat
# 모델 로드
model, tokenizer = load("mlx-community/Llama-3.2-3B-Instruct-4bit")
# 단일 프롬프트에 대한 응답 생성
response = chat(model, tokenizer, prompt="Explain quantum computing like I'm five.", verbose=True)
print(response)
| 코드 | 설명 |
|---|---|
load(...) | 모델과 토크나이저를 Hugging Face에서 다운로드하여 MLX 포맷으로 불러옵니다. 캐시됨. |
chat(...) | 간단한 프롬프트 기반 대화를 수행합니다. |
verbose=True | 토큰 생성 과정을 보여줍니다 (진행 상황 확인용). |
터미널에서 직접 실행할 수도 있습니다:
mlx-lm chat mlx-community/Llama-3.2-3B-Instruct-4bit
이후 프롬프트가 뜨고, 채팅형 인터페이스로 사용할 수 있습니다.
기본적으로 Hugging Face 모델은 다음 위치에 저장됩니다:
~/.cache/mlx/models/
mlx-community/Llama-3.2-3B-Instruct-4bit 모델도 여기에 저장됩니다.
gguf, pytorch_model.bin 형태의 일부 모델은 지원되지 않음 → 반드시 mlx 포맷 모델 혹은 공식 제공 모델 사용# run_llama_mlx.py
# 실행 : python3 run_llama_m.py
from mlx_lm import load
from mlx_lm.generate import generate
def main():
print("🔄 모델을 로딩 중입니다...")
model_id = "mlx-community/Llama-3.2-3B-Instruct-4bit"
model, tokenizer = load(model_id)
print("✅ 모델 로딩 완료!")
print("💬 프롬프트를 입력하세요. 종료하려면 'exit' 또는 'quit'을 입력하세요.\n")
while True:
prompt = input("🙋 사용자: ")
if prompt.strip().lower() in ["exit", "quit"]:
print("👋 종료합니다.")
break
# LLM 응답 생성
response = generate(
model=model,
tokenizer=tokenizer,
prompt=prompt,
max_tokens=512,
#temperature=0.7, # 오류 발생, 주석 처리 (250718)
#top_p=0.9, # 오류 발생, 주석 처리 (250718)
verbose=False
)
print(f"🤖 LLM: {response}\n")
if __name__ == "__main__":
main()