Downloads · 30 days
24
10% of all-time downloads
Brooooooklyn/Qwen3.6-27B-MXFP4-mlx
Qwen3.6-27B-MXFP4-mlx is a image-text-to-text model from Brooooooklyn. Use it for the image-text-to-text task on the model card, and read the license before you ship it in a product. It is set up for mlx-node. The card lists the license as apache-2.0.
Brooooooklyn/Qwen3.6-27B-MXFP4-mlx is an Apple Silicon MLX quantization of Qwen/Qwen3.6-27B. The model has a 64-layer dense Qwen3.5-family language backbone with 48 linear-attention and 16 full-attention layers, a BF1…
Downloads · 30 days
24
10% of all-time downloads
All-time downloads
230
Public
Parameters
27.8B
46.6 GB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors23.3 GB · 100%
How the weights are stored.
U3225.6B · 92%
From the Hugging Face model README
Brooooooklyn/Qwen3.6-27B-MXFP4-mlx
is an Apple Silicon MLX quantization of
Qwen/Qwen3.6-27B. The model has a
64-layer dense Qwen3.5-family language backbone with 48 linear-attention and 16
full-attention layers, a BF16 vision tower, and one MTP layer.
This model is part of the Qwen Unsloth tensor-class recipe for MLX on macOS and DGX collection.
The source was the BF16 checkpoint at revision
1b559cf7215ebe67ff10758e14f6293ba883223b.
The MXFP4 and MXFP8 weights are re-encoded. mlx-node now picks each MX block's
shared E8M0 exponent itself instead of rounding log2(amax) to nearest: MXFP4
tries both candidate exponents and keeps the lower squared error, and MXFP8 takes
the ceiling so a block can never saturate. Measured MXFP8 weight error across a
checkpoint drops from 6.91% to 2.66%.
Weight bytes changed; the tensor-class map, shard layout and tensor counts are unchanged. Earlier revisions remain in this repository's history.
This is a data-free, weight-only Apple translation of the Unsloth Qwen3.6 NVFP4 recipe:
This ports the recipe's tensor-class selection. It does not claim numerical parity with NVIDIA NVFP4/FP8 activation quantization. Both MXFP classes use MLX weight-only quantized matmul with BF16/A16 activations. The artifact contains no activation-calibration or FP8 KV-cache-calibration data, global scales, or W4A4/W8A8 execution metadata. No imatrix, calibration dataset, or AWQ-style pre-scaling was used, and no upstream numerical or performance parity is claimed.
| Tensor class | Stored format |
|---|---|
Dense FFN {gate,up,down}_proj, layers 0–55 | MXFP4 4/32 |
Dense FFN {gate,up,down}_proj, layers 56–63 | MXFP8 8/32 |
Full-attention {q,k,v,o}_proj | MXFP8 8/32 |
Linear-attention in_proj_qkv, in_proj_z, out_proj | MXFP8 8/32 |
lm_head | MXFP8 8/32 |
Embeddings; in_proj_a/b; GDN state, convolution, and norm tensors; all other norms | BF16 |
Entire 15-tensor mtp.* subtree | BF16 |
| Vision tower and merger tensors | BF16 |
The resulting config contains 168 MXFP4 module entries and 233 MXFP8 module entries. The last eight dense FFNs intentionally use the higher-precision MXFP8 class.
This checkpoint requires @mlx-node/lm and @mlx-node/core 0.0.8 or newer.
The published prebuilt macOS binary requires macOS 26 or newer; macOS 14 or
newer can use a source build.
npm install @mlx-node/lm@^0.0.8 @mlx-node/core@^0.0.8
import { loadSession } from '@mlx-node/lm';
const session = await loadSession('./Qwen3.6-27B-MXFP4-mlx');
const result = await session.send('Explain the purpose of a unit test in one sentence.');
console.log(result.text);
Converter: mlx-node at or after PR #131, which made the tuned MX
weight encoders and the NVFP4 power-of-two lift unconditional. v0.0.8 reproduces
the earlier revision of this repository, not the current weights.
The normalized reproducible invocation from the mlx-node repository root was:
mlx convert \
--input .cache/models/qwen3.6-27b \
--output .cache/models/qwen3.6-27b-unsloth-mxfp4-mlx \
--model-type qwen3_5 \
--dtype bfloat16 \
--quantize \
--q-recipe unsloth \
--q-mxfp
A local mlx-node load-and-generate smoke test completed successfully and
produced the one-token output OK. This functional smoke test is separate from
the performance benchmark below and does not validate model quality. All 15
mtp.* tensor entries remain BF16 without quantization sidecars.
Measured on an Apple M5 Max with 128 GiB of unified memory, Darwin
25.5.0/arm64, Node.js 24.13.1, and @mlx-node/lm, @mlx-node/core, and
@mlx-node/core-darwin-arm64 0.0.8.
The table reports the median of three measured runs. Each run used a fresh
child process and fresh model load, with zero warmups and a 60-second cooldown.
Generation was deterministic: temperature: 0, reasoning effort none, 106
prompt tokens, and a 512-token generation limit. All three runs generated 512
tokens and ended with finishReason: "length".
| Metric | Median |
|---|---|
| Model load | 59.086 s |
| Time to first token | 295.074 ms |
| Prefill throughput | 359.232 tok/s |
| Decode throughput | 29.038 tok/s |
| Generation wall time | 17.988 s |
| End-to-end wall time | 77.075 s |
Raw per-run samples and the machine-readable summary are available in benchmark.json.
The model files were read from external storage. Load timing is sensitive to external-storage and OS file-cache state; the three measured loads ranged from 59.073 to 283.375 seconds. Treat load time as host- and cache-specific. These measurements describe only this prompt and configuration and must not be used to infer model quality.
The source model card declares the Apache-2.0 license. Model capability and training credit belong to the Qwen Team. The tensor-class recipe is credited to Unsloth, and this repository only converts the BF16 source weights to an MLX-native mixed MXFP4/MXFP8 representation.