https://github.com/lmstudio-ai/mlx-engine
LM Studio Apple MLX engine
https://github.com/lmstudio-ai/mlx-engine
mlx python
Last synced: 12 days ago
JSON representation
LM Studio Apple MLX engine
- Host: GitHub
- URL: https://github.com/lmstudio-ai/mlx-engine
- Owner: lmstudio-ai
- License: mit
- Created: 2024-10-07T19:32:25.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-12-17T15:32:26.000Z (about 1 month ago)
- Last Synced: 2025-12-18T23:31:25.643Z (about 1 month ago)
- Topics: mlx, python
- Language: Python
- Homepage:
- Size: 465 KB
- Stars: 842
- Watchers: 11
- Forks: 76
- Open Issues: 36
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
- my-awesome - lmstudio-ai/mlx-engine - 01 star:0.9k fork:0.1k LM Studio Apple MLX engine (Python)
README
mlx-engine - Apple MLX LLM Engine for LM Studio
# mlx-engine
MLX engine for LM Studio
## Built with
- [mlx-lm](https://github.com/ml-explore/mlx-lm) - Apple MLX inference engine (MIT)
- [Outlines](https://github.com/dottxt-ai/outlines) - Structured output for LLMs (Apache 2.0)
- [mlx-vlm](https://github.com/Blaizzy/mlx-vlm) - Vision model inferencing for MLX (MIT)
## How to use in LM Studio
LM Studio 0.3.4 and newer for Mac ships pre-bundled with mlx-engine.
Download LM Studio from [here](https://lmstudio.ai/download?os=mac)
## Standalone Demo
### Prerequisites
- macOS 14.0 (Sonoma) or greater.
- python3.11
- The requirements.txt file is compiled specifically for python3.11. python3.11 is the python version bundled within the LM Studio MLX runtime
- `brew install python@3.11` is a quick way to add python3.11 to your path that doesn't break your default python setup
### Install Steps
To run a demo of model load and inference:
1. Clone the repository
```
git clone https://github.com/lmstudio-ai/mlx-engine.git
cd mlx-engine
```
2. Create a virtual environment (optional)
```
python3.11 -m venv .venv
source .venv/bin/activate
```
3. Install the required dependency packages
```
pip install -U -r requirements.txt
```
### Text Model Demo
Download models with the `lms` CLI tool. The `lms` CLI documentation can be found here: https://lmstudio.ai/docs/cli
Run the `demo.py` script with an MLX text generation model:
```bash
lms get mlx-community/Meta-Llama-3.1-8B-Instruct-4bit
python demo.py --model mlx-community/Meta-Llama-3.1-8B-Instruct-4bit
```
[mlx-community/Meta-Llama-3.1-8B-Instruct-4bit](https://model.lmstudio.ai/download/mlx-community/Meta-Llama-3.1-8B-Instruct-4bit) - 4.53 GB
This command will use a default prompt. For a different prompt, add a custom `--prompt` argument like:
```bash
lms get mlx-community/Mistral-Small-Instruct-2409-4bit
python demo.py --model mlx-community/Mistral-Small-Instruct-2409-4bit --prompt "How long will it take for an apple to fall from a 10m tree?"
```
[mlx-community/Mistral-Small-Instruct-2409-4bit](https://model.lmstudio.ai/download/mlx-community/Mistral-Small-Instruct-2409-4bit) - 12.52 GB
### Vision Model Demo
Run the `demo.py` script with an MLX vision model:
```bash
lms get mlx-community/pixtral-12b-4bit
python demo.py --model mlx-community/pixtral-12b-4bit --prompt "Compare these images" --images demo-data/chameleon.webp demo-data/toucan.jpeg
```
Currently supported vision models include:
- [Llama-3.2-Vision](https://model.lmstudio.ai/download/mlx-community/Llama-3.2-11B-Vision-Instruct-4bit)
- `lms get mlx-community/Llama-3.2-11B-Vision-Instruct-4bit`
- [Pixtral](https://model.lmstudio.ai/download/mlx-community/pixtral-12b-4bit)
- `lms get mlx-community/pixtral-12b-4bit`
- [Qwen2-VL](https://model.lmstudio.ai/download/mlx-community/Qwen2-VL-7B-Instruct-4bit)
- `lms get mlx-community/Qwen2-VL-7B-Instruct-4bit`
- [Llava-v1.6](https://model.lmstudio.ai/download/mlx-community/llava-v1.6-mistral-7b-4bit)
- `lms get mlx-community/llava-v1.6-mistral-7b-4bit`
### Speculative Decoding Demo
Run the `demo.py` script with an MLX text generation model and a compatible `--draft-model`
```bash
lms get mlx-community/Qwen2.5-7B-Instruct-4bit
lms get lmstudio-community/Qwen2.5-0.5B-Instruct-MLX-8bit
python demo.py \
--model mlx-community/Qwen2.5-7B-Instruct-4bit \
--draft-model lmstudio-community/Qwen2.5-0.5B-Instruct-MLX-8bit \
--prompt "<|im_start|>system
You are Qwen, created by Alibaba Cloud. You are a helpful assistant.<|im_end|>
<|im_start|>user
Write a quick sort algorithm in C++<|im_end|>
<|im_start|>assistant
"
```
## Development Setup
### Pre-commit Hooks
We use pre-commit hooks to maintain code quality. Before contributing, please:
1. Install pre-commit:
```bash
pip install pre-commit && pre-commit install
```
2. Run pre-commit:
```bash
pre-commit run --all-files
```
3. Fix any issues before submitting your PR
## Testing
To run tests, run the following from the root of this repo:
```bash
python -m pip install pytest
python -m pytest tests/
```
To test specific vision models:
```bash
python -m pytest tests/test_vision_models.py -k pixtral
```
## Attribution
Ernie 4.5 modeling code is sourced from [Baidu](https://huggingface.co/baidu/ERNIE-4.5-0.3B-PT/tree/da6f3b1158d5d0d2bbf552bfc3364c9ec64e8aa5)