ml-explore/mlx-lm

Run LLMs with MLX

What it solves

mlx-lm is designed to make it easy to run, fine-tune, and quantize large language models (LLMs) specifically on Apple silicon. It removes the friction of deploying LLMs locally on Mac hardware by providing a unified Python package and command-line tools for text generation and model optimization.

How it works

The project leverages the MLX framework to optimize LLM performance on Apple silicon. It provides a Python API and a CLI for loading models from the Hugging Face Hub, generating text, and managing model weights. Key technical features include:

  • Model Conversion & Quantization: It can convert and quantize models (e.g., to 4-bit) to reduce memory usage and upload them back to the Hugging Face Hub.
  • Memory Management: It uses a rotating fixed-size key-value (KV) cache and configurable prefill step sizes to handle long prompts efficiently.
  • Prompt Caching: It allows users to cache long prompts to avoid recomputing them across multiple queries.
  • Fine-tuning: It supports both low-rank (LoRA) and full model fine-tuning, including support for quantized models.
  • Distributed Computing: It enables distributed inference and fine-tuning via mx.distributed.

Who it’s for

Developers and researchers using Apple silicon Macs who want to run LLMs locally, optimize them for their hardware, or fine-tune them for specific tasks.

Highlights

  • Hugging Face Integration: Direct integration with the Hugging Face Hub for easy model access and uploading.
  • Apple Silicon Optimization: Specifically tuned for Mac hardware, including memory wiring for large models on macOS 15+.
  • Local Chat REPL: Includes a built-in chat interface for immediate interaction with models.
  • Efficient Long-Context Handling: Tools like prompt caching and rotating KV caches for scaling to long generations.

Related

  • Project
  • Project
  • Project
  • Project
  • Project