Views
No views yet
Brooooooklyn/Qwen3.8-27B-NVFP4-mlx
is an MLX mixed-weight-format quantization of
Qwen/Qwen3.8-27B, prepared for
experimental NVIDIA CUDA inference on Linux aarch64. 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 preserved MTP layer.1d4bf0f2ff6012fd82039f2fa52739d0dd7c60c0.amax / 6 in E4M3, and on
real weights those land in E4M3's subnormal band, carrying three mantissa bits
instead of four -- or rounding to the zero code, which decodes all 16 weights in
the block to zero. The fold is exact, so the layer's function is unchanged.fp8_e4m3 form is
Uint8 [N, K] weight plus BF16 [N, 1] scale; it is not MLX mxfp8 and it is
not native W8A8 execution.| Tensor class | Stored format |
|---|---|
Dense FFN {gate,up,down}_proj, layers 0–55 | NVFP4 4/16 |
Dense FFN {gate,up,down}_proj, layers 56–63 | E4M3 FP8 weight + per-output BF16 scale |
Full-attention {q,k,v,o}_proj | E4M3 FP8 weight + per-output BF16 scale |
Linear-attention in_proj_qkv, in_proj_z, out_proj | E4M3 FP8 weight + per-output BF16 scale |
lm_head | E4M3 FP8 weight + per-output BF16 scale |
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 |
nvfp4, 4-bit, group size 16; the 233 higher-class
modules are explicit fp8_e4m3 overrides. The final eight dense FFNs
intentionally use the higher class.aarch64-unknown-linux-gnu: Linux aarch64 with
glibc and NVIDIA CUDA 13.0. mlx-node currently validates this experimental
inference-only path on NVIDIA GB10 / DGX Spark (sm_121). It is not a generic
CUDA or x86_64 artifact, and there is no published CUDA prebuilt native npm
binary. Build the pinned checkout on the DGX host:1git clone https://github.com/mlx-node/mlx-node.git
2cd mlx-node
3git checkout e281f0bbc61eb71a244ad6681ffad324a1177780
4git submodule update --init --recursive
5yarn install
6yarn build1MLX_QWEN35_FORCE_EAGER=1 \
2MLX_QWEN35_PAGED_OVERRIDE=0 \
3 yarn oxnode your-script.ts1import { loadSession } from '@mlx-node/lm';
2
3const session = await loadSession('./Qwen3.8-27B-NVFP4-mlx');
4const result = await session.send('Explain the purpose of a unit test in one sentence.');
5console.log(result.text);mlx-node e281f0bb
(package version 0.0.10). The invocation was:1mlx convert \
2 --input /Users/brooklyn/.mlx-node/models/qwen3.8-27b \
3 --output /Users/brooklyn/.mlx-node/models/qwen3.8-27b-unsloth-nvfp4-mlx \
4 --model-type qwen3_5 \
5 --dtype bfloat16 \
6 --quantize \
7 --q-recipe unsloth \
8 --q-mode nvfp4--imatrix-path was supplied. The converter therefore applied the fixed
tensor-class map without AWQ pre-scaling.metadata.total_size = 23,417,338,336 bytes. Header and index validation
confirmed exact shard closure, valid physical offsets, 168 inherited NVFP4
groups, 233 complete fp8_e4m3 groups, 401 scale sidecars, no bias sidecars,
and identical quantization and quantization_config blocks.mtp.* tensors remain BF16 without
quantization sidecars. No imatrix or calibration artifact is present. The
tokenizer, chat template, generation config, and preprocessor assets are
byte-identical to the pinned source snapshot.hasMtpWeights() = true and completed
a short deterministic generation with native MTP explicitly enabled. This
plumbing check does not validate model quality, long-context behavior, vision
quality, DGX/CUDA execution, or benchmark performance.