Instructions to use EigenLabs/Qwen3.5-9B-MLX-4bit-mtp with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use EigenLabs/Qwen3.5-9B-MLX-4bit-mtp with MLX:
# Make sure mlx-vlm is installed # pip install --upgrade mlx-vlm from mlx_vlm import load, generate from mlx_vlm.prompt_utils import apply_chat_template from mlx_vlm.utils import load_config # Load the model model, processor = load("EigenLabs/Qwen3.5-9B-MLX-4bit-mtp") config = load_config("EigenLabs/Qwen3.5-9B-MLX-4bit-mtp") # Prepare input image = ["http://images.cocodataset.org/val2017/000000039769.jpg"] prompt = "Describe this image." # Apply chat template formatted_prompt = apply_chat_template( processor, config, prompt, num_images=1 ) # Generate output output = generate(model, processor, formatted_prompt, image) print(output) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- LM Studio
- Pi
How to use EigenLabs/Qwen3.5-9B-MLX-4bit-mtp with Pi:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "EigenLabs/Qwen3.5-9B-MLX-4bit-mtp"
Configure the model in Pi
# Install Pi: npm install -g @earendil-works/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "mlx-lm": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "EigenLabs/Qwen3.5-9B-MLX-4bit-mtp" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Hermes Agent
How to use EigenLabs/Qwen3.5-9B-MLX-4bit-mtp with Hermes Agent:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "EigenLabs/Qwen3.5-9B-MLX-4bit-mtp"
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default EigenLabs/Qwen3.5-9B-MLX-4bit-mtp
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use EigenLabs/Qwen3.5-9B-MLX-4bit-mtp with OpenClaw:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "EigenLabs/Qwen3.5-9B-MLX-4bit-mtp"
Configure OpenClaw
# Install OpenClaw: npm install -g openclaw@latest # Register the local server and set it as the default model: openclaw onboard --non-interactive --mode local \ --auth-choice custom-api-key \ --custom-base-url http://127.0.0.1:8080/v1 \ --custom-model-id "EigenLabs/Qwen3.5-9B-MLX-4bit-mtp" \ --custom-provider-id mlx-lm \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
Qwen3.5-9B MLX W4/g64 + Embedded W4 MTP
This is a full vision-language MLX conversion of
Qwen/Qwen3.5-9B with the model's
native one-layer MTP proposal head embedded in the same indexed safetensors
weight set under the mtp.* prefix.
- Language target and vision tower: byte-identical to
mlx-community/Qwen3.5-9B-MLX-4bit(W4/g64 affine, BF16 scales/biases). - MTP head: the 15 native
mtp.*tensors from the source checkpoint, RMSNorm weights converted to the MLXx·wconvention (+1) and the 8 linear modules quantized to W4/g64 affine with BF16 scales/biases (~137 MB). - Declared via
mtplx_mtp/mtplx_mtp_quantizationinconfig.json(prefix: "mtp.",block_size: 3). The head shares the target embedding and LM head, as intended by the source architecture.
There is no separate MTP repository: the proposal head travels inside the checkpoint, so the draft/target pairing cannot drift.
Measured (M4 Max, 546 GB/s, temperature 0)
| Configuration | decode tok/s |
|---|---|
| target only | 47.9–48.5 |
| embedded MTP | 73–83 |
Conversion notes
Raw source mtp.* norms are stored in the Qwen3-Next x·(1+w) convention and
MUST be shifted by +1 for MLX runtimes; quantization scales/biases MUST be
bfloat16. Raw norms produce a head whose drafts are rejected (slower than no
MTP at all); float16 scales fail the assistant load, which serving stacks
should surface as a logged fallback to target-only decoding.
- Downloads last month
- 34
4-bit