Instructions to use Brooooooklyn/Qwen3.5-35B-A3B-UD-Q4_K_XL-mlx with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use Brooooooklyn/Qwen3.5-35B-A3B-UD-Q4_K_XL-mlx with MLX:
# Make sure mlx-lm is installed # pip install --upgrade mlx-lm # Generate text with mlx-lm from mlx_lm import load, generate model, tokenizer = load("Brooooooklyn/Qwen3.5-35B-A3B-UD-Q4_K_XL-mlx") prompt = "Write a story about Einstein" messages = [{"role": "user", "content": prompt}] prompt = tokenizer.apply_chat_template( messages, add_generation_prompt=True ) text = generate(model, tokenizer, prompt=prompt, verbose=True) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- LM Studio
- Pi
How to use Brooooooklyn/Qwen3.5-35B-A3B-UD-Q4_K_XL-mlx with Pi:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "Brooooooklyn/Qwen3.5-35B-A3B-UD-Q4_K_XL-mlx"
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": "Brooooooklyn/Qwen3.5-35B-A3B-UD-Q4_K_XL-mlx" } ] } } }Run Pi
# Start Pi in your project directory: pi
- MLX LM
How to use Brooooooklyn/Qwen3.5-35B-A3B-UD-Q4_K_XL-mlx with MLX LM:
Generate or start a chat session
# Install MLX LM uv tool install mlx-lm # Interactive chat REPL mlx_lm.chat --model "Brooooooklyn/Qwen3.5-35B-A3B-UD-Q4_K_XL-mlx"
Run an OpenAI-compatible server
# Install MLX LM uv tool install mlx-lm # Start the server mlx_lm.server --model "Brooooooklyn/Qwen3.5-35B-A3B-UD-Q4_K_XL-mlx" # Calling the OpenAI-compatible server with curl curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Brooooooklyn/Qwen3.5-35B-A3B-UD-Q4_K_XL-mlx", "messages": [ {"role": "user", "content": "Hello"} ] }' - Hermes Agent
How to use Brooooooklyn/Qwen3.5-35B-A3B-UD-Q4_K_XL-mlx 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 "Brooooooklyn/Qwen3.5-35B-A3B-UD-Q4_K_XL-mlx"
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 Brooooooklyn/Qwen3.5-35B-A3B-UD-Q4_K_XL-mlx
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use Brooooooklyn/Qwen3.5-35B-A3B-UD-Q4_K_XL-mlx with OpenClaw:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "Brooooooklyn/Qwen3.5-35B-A3B-UD-Q4_K_XL-mlx"
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 "Brooooooklyn/Qwen3.5-35B-A3B-UD-Q4_K_XL-mlx" \ --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"
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 "Brooooooklyn/Qwen3.5-35B-A3B-UD-Q4_K_XL-mlx" \
--custom-provider-id mlx-lm \
--custom-compatibility openai \
--custom-text-input \
--accept-risk \
--skip-healthRun OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"Qwen3.5-35B-A3B — UD-Q4_K_XL (mlx-node)
4-bit base mixed-precision quantization of Qwen/Qwen3.5-35B-A3B for Apple Silicon, using the Unsloth Dynamic quantization strategy via mlx-node.
| Original (BF16) | This Model | |
|---|---|---|
| Size | ~72 GB | 21 GB |
| Format | SafeTensors (sharded) | SafeTensors (single file) |
| Precision | BF16 uniform | Mixed 4/5/6/8/8-bit + BF16 |
All Variants
| Repo | GGUF Equivalent | Size | Decode (tok/s) | Speedup vs BF16 |
|---|---|---|---|---|
| Brooooooklyn/Qwen3.5-35B-A3B-UD-Q2_K_XL-mlx | UD-Q2_K_XL | 13 GB | 86.1 | 2.1x |
| Brooooooklyn/Qwen3.5-35B-A3B-UD-Q3_K_XL-mlx | UD-Q3_K_XL | 17 GB | 79.7 | 2.0x |
| Brooooooklyn/Qwen3.5-35B-A3B-UD-Q4_K_XL-mlx | UD-Q4_K_XL | 21 GB | 73.4 | 1.8x |
| Brooooooklyn/Qwen3.5-35B-A3B-UD-Q5_K_XL-mlx | UD-Q5_K_XL | 25 GB | 70.0 | 1.7x |
| Brooooooklyn/Qwen3.5-35B-A3B-UD-Q6_K_XL-mlx | UD-Q6_K_XL | 30 GB | 64.9 | 1.6x |
| Brooooooklyn/Qwen3.5-35B-A3B-UD-Q8_K_XL-mlx | UD-Q8_K_XL | 35 GB | 63.5 | 1.6x |
Benchmarked on Apple M3 Max 128GB, multi-turn chat (Turn 4 decode, steady-state).
Performance
| Model | Size | Decode (tok/s) | Speedup |
|---|---|---|---|
| BF16 (unquantized) | 65 GB | 40.5 | baseline |
| This model (UD-Q4_K_XL) | 21 GB | 73.4 | 1.8x faster |
Decode is memory-bandwidth bound on Apple Silicon — fewer bytes per token directly translates to higher throughput. The MoE architecture activates only 8 of 256 experts per token (~3B active out of 35.9B total).
Per-Tensor Bit Assignments (N=4)
| Weight | Bits | Rationale |
|---|---|---|
embed_tokens |
6-bit | KLD ~0.15 — very low sensitivity |
lm_head |
8-bit | KLD ~0.05 — safest tensor |
self_attn.q/k/v_proj |
6-bit + AWQ | KLD ~1.5–2.9, AWQ via layernorm |
linear_attn.in_proj_qkv/z |
6-bit + AWQ | KLD ~2.9, AWQ via layernorm |
self_attn.o_proj |
bf16 | NOT AWQ-correctable |
linear_attn.out_proj |
bf16 | KLD ~6.0 — worst tensor |
down_proj |
5-bit | "Slightly more sensitive" |
gate_proj, up_proj |
4-bit | "Generally ok" at low bits |
| Router gates | 8-bit | MoE routing accuracy |
| GDN params (A_log, etc) | bf16 | State-space dynamics |
Quantization Strategy
Based on Unsloth Dynamic 2.0 per-tensor KLD analysis. Sensitive layers get higher bits with AWQ correction, while the bulk of FFN expert weights are aggressively quantized. imatrix AWQ pre-scaling amplifies important weight channels and fuses inverse scales into preceding layer norms (zero inference overhead).
AWQ-correctable projections (q/k/v, in_proj_qkv/z) are quantized at 6-bit via input_layernorm. Non-AWQ-correctable projections (o_proj, out_proj) are kept at bf16 — their inputs come from attention/GDN computation, not from a norm layer.
Architecture
| Parameter | Value |
|---|---|
| Total parameters | 35.9B (3B active per token) |
| Hidden size | 2,048 |
| Layers | 40 (30 linear + 10 full attention) |
| Attention heads | 16 (2 KV heads, GQA 8:1) |
| Head dimension | 256 |
| Experts | 256 per MoE layer, top-8 routing |
| Vocab size | 248,320 |
| Max context | 262,144 tokens |
Usage
import { loadModel } from '@mlx-node/lm';
const model = await loadModel('./Qwen3.5-35B-A3B-UD-Q4_K_XL-mlx');
const result = await model.chat(
[{ role: 'user', content: 'Explain the hybrid attention mechanism in Qwen3.5.' }],
{ maxNewTokens: 2048, temperature: 0.6, enableThinking: false },
);
console.log(result.text);
How It Was Made
mlx convert \
-i Qwen3.5-35B-A3B \
-o Qwen3.5-35B-A3B-UD-Q4_K_XL-mlx \
-q --q-bits 4 --q-recipe unsloth \
--imatrix-path imatrix_unsloth.gguf
Acknowledgments
- Unsloth — Quantization strategy based on their per-layer KLD benchmarks and Dynamic 2.0 methodology
- Qwen Team — For the Qwen3.5 model family
- Apple MLX — For the Metal-accelerated ML framework
License
Apache 2.0 (inherited from base model).
- Downloads last month
- 238
3-bit
Start the MLX server
# Install MLX LM: uv tool install mlx-lm# Start a local OpenAI-compatible server: mlx_lm.server --model "Brooooooklyn/Qwen3.5-35B-A3B-UD-Q4_K_XL-mlx"