Instructions to use EigenLabs/Qwen3.6-35B-A3B-MLX-VL-4bit-g64-router8 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use EigenLabs/Qwen3.6-35B-A3B-MLX-VL-4bit-g64-router8 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.6-35B-A3B-MLX-VL-4bit-g64-router8") config = load_config("EigenLabs/Qwen3.6-35B-A3B-MLX-VL-4bit-g64-router8") # 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.6-35B-A3B-MLX-VL-4bit-g64-router8 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.6-35B-A3B-MLX-VL-4bit-g64-router8"
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.6-35B-A3B-MLX-VL-4bit-g64-router8" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Hermes Agent
How to use EigenLabs/Qwen3.6-35B-A3B-MLX-VL-4bit-g64-router8 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.6-35B-A3B-MLX-VL-4bit-g64-router8"
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.6-35B-A3B-MLX-VL-4bit-g64-router8
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use EigenLabs/Qwen3.6-35B-A3B-MLX-VL-4bit-g64-router8 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.6-35B-A3B-MLX-VL-4bit-g64-router8"
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.6-35B-A3B-MLX-VL-4bit-g64-router8" \ --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.6-35B-A3B MLX VLM W4/g64 + W8 Routers + Inline MXFP8 MTP
This is a full vision-language MLX conversion of
Qwen/Qwen3.6-35B-A3B,
created from exact source revision
995ad96eacd98c81ed38be0c5b274b04031597b0.
The single indexed safetensors weight set contains all three components:
- The language target: 432 W4/g64 affine modules and 80 W8/g64 router modules.
- The complete 27-layer, 446,571,248-parameter BF16 vision tower.
- The complete native MTP subtree under
mtp.*: 835,715,072 matrix parameters in MXFP8/g32 and 8,925,696 sensitive fusion/router/gate/norm parameters in BF16.
There is no mtp/ directory, separate MTP repository, or mtp.safetensors.
The MTP head reuses the target embedding and LM head, as intended by the source
architecture.
Runtime Requirements
Use mlx-vlm>=0.6.12 for normal text and image inference. Earlier Qwen3.5-MoE
VLM loaders could reapply the source RMSNorm conversion to serialized MLX
weights.
pip install -U "mlx-vlm>=0.6.12"
Normal mlx_vlm.load() ignores the namespaced mtp.* tensors safely. The
included mtp_exact_generate.py constructs the drafter in memory directly from
those entries in the same index. It does not use --draft-model, create a
temporary weight copy, or download another repository.
Exact Qwen MoE Verification
Stock MLXVLM 0.6.12 uses a batched target-verification linear path whose greedy arithmetic can differ from ordinary one-token decoding for this mixed W4/W8 MoE target. Exact output parity requires target-verification linear projections to run one time position at a time. The artifact verification used that minimal runtime correction while leaving MoE expert gathers batched. Without it, a rejected proposal can change later output; do not claim exact speculative decoding from unpatched 0.6.12.
Artifact
| Property | Value |
|---|---|
| Indexed tensors | 2,120 |
| Pre-existing VLM tensors | 2,090 |
| Serialized MTP tensors | 30 |
| Source MTP parameters | 844,640,768 |
| MXFP8/g32 MTP parameters | 835,715,072 |
| BF16 MTP parameters | 8,925,696 |
| MTP payload | 879,682,560 bytes (0.819268 GiB) |
| Combined tensor payload | 21,281,612,512 bytes (19.820046 GiB) |
| Safetensors shards | 4 |
The machine-readable provenance, coverage, validations, and hashes are in
quantization_manifest.json, verification.json, and SHA256SUMS.
Normal Inference
python -m mlx_vlm generate \
--model EigenLabs/Qwen3.6-35B-A3B-MLX-VL-4bit-g64-router8 \
--image /path/to/image.jpg \
--prompt "Describe this image." \
--max-tokens 256 \
--temperature 0 \
--thinking-mode disabled
Strict eager loading from the combined artifact passed:
- Pixel-grounded OCR/shape/color JSON:
ORCHID-7319, count27, targetCYAN TRIANGLE, and the correct ordered shapes/colors. - Natural photograph JSON: two cats, pink surface, and two remote controls.
- Text regression:
{"sum":423,"check":"ok"}.
All ordinary outputs match the pre-MTP VLM artifact because every original VLM tensor is value-identical.
Speculative Decoding
python mtp_exact_generate.py \
--model EigenLabs/Qwen3.6-35B-A3B-MLX-VL-4bit-g64-router8 \
--draft-block-size 3 \
--prompt "Explain speculative decoding." \
--max-tokens 256 \
--temperature 0
The final parity suite used five workloads, three target-only runs and three MTP runs per workload, for 30 paired runs total. It included structured text, technical prose, code, a length-limited sequence, and image prefill.
| Metric | Result |
|---|---|
| Exact token parity | 15/15 MTP runs |
| Exact text parity | 15/15 MTP runs |
| Drafted tokens | 1,671 |
| Accepted draft tokens | 1,353 |
| Rejected draft tokens | 318 |
| Aggregate acceptance | 80.97% |
| Median per-case speedup | 1.284x |
| Per-case speedup range | 1.112x to 1.518x |
Every case was faster than target-only decoding. The 318 rejections exercised target cache rollback repeatedly, including three rejections after image prefill. These are local M4 Max measurements, not cross-device guarantees.
Structural Verification
- All 2,090 pre-existing VLM tensors are value-identical to the prior published revision.
- All 333 vision tensors remain BF16 and value-exact with the pinned source after the required patch-convolution transpose.
- All 19 source MTP tensors and 844,640,768 source parameters are represented.
- The 30 serialized MTP tensors were independently rebuilt from the pinned source and match exactly.
- The MTP expert, shared-expert, and attention matrices are MXFP8/g32; fusion
fc, routers, gates, and norms remain BF16. - The combined index covers all 2,120 tensors exactly and reports the exact 21,281,612,512-byte payload.
Scope
Image and text inference plus greedy MTP parity are verified. Video processor files are preserved, but video inference was not tested. The validation suite is targeted evidence, not a broad multimodal or population-quality benchmark.
License
The base model is released under Apache 2.0. See the original
Qwen/Qwen3.6-35B-A3B
repository for its model card and license.
- Downloads last month
- 134
4-bit
Model tree for EigenLabs/Qwen3.6-35B-A3B-MLX-VL-4bit-g64-router8
Base model
Qwen/Qwen3.6-35B-A3B