Views
No views yet
Brooooooklyn/Qwen-AgentWorld-35B-A3B-nvfp4-mlx
is an MLX mixed-weight-format quantization of
Qwen/Qwen-AgentWorld-35B-A3B,
prepared for experimental NVIDIA CUDA inference on Linux aarch64. Qwen-AgentWorld
is a language world model for agentic environment simulation. It uses the
40-layer Qwen3.5 MoE architecture with 256 experts, top-8 routing, hybrid
linear/full attention, and an MTP-capable config. The published source is
language-model-only (language_model_only: true): it contains no vision
tensors and no mtp.* tensor subtree.a6a5fe5200fae283a5fd1247711563d397e7c2a0.switch_mlp, shared_expert) are NOT lifted. The norm they
read also drives the softmax router and the sigmoid shared-expert gate, and
neither is scale-invariant, so folding a scalar into it would move routing. Those
blocks therefore carry the same annihilation as the previous revision -- measured
0.9501% of expert blocks, worst layers.0.mlp.switch_mlp.gate_proj at 41.44%.
This is a known open limitation, not a regression.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 |
|---|---|
Routed expert switch_mlp.{gate,up,down}_proj, layers 0–31 | NVFP4 4/16 |
Shared expert {gate,up,down}_proj, layers 0–31 | NVFP4 4/16 |
| The same routed/shared FFN projections, layers 32–39 | 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; router mlp.gate and shared_expert_gate; in_proj_a/b; GDN state, convolution, and norm tensors; all other norms | BF16 |
| MTP tensors | Not present in the published source checkpoint |
| Vision tower and merger tensors | Not present in the language-model-only source checkpoint |
nvfp4, 4-bit, group size 16, so the 192 low-class
modules inherit that default. The config carries 179 explicit
fp8_e4m3 overrides with bits: 8 and group_size: null. The final eight
FFN layers intentionally use the higher class; this is the regular,
accuracy-oriented 35B recipe rather than the all-FFN-FP4 "Fast" variant.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.1git clone --branch v0.0.8 https://github.com/mlx-node/mlx-node.git
2cd mlx-node
3git submodule update --init --recursive
4yarn install
5yarn build1MLX_QWEN35_FORCE_EAGER=1 \
2MLX_QWEN35_PAGED_OVERRIDE=0 \
3 yarn oxnode your-script.tsyour-script.ts can load a locally downloaded copy:1import { loadSession } from '@mlx-node/lm';
2
3const session = await loadSession('./Qwen-AgentWorld-35B-A3B-nvfp4-mlx');
4const result = await session.send('Predict the next state after an agent opens a terminal.');
5console.log(result.text);@mlx-node/lm and @mlx-node/core 0.0.8
source tree or a newer release that explicitly supports the same Linux target
and serialized modes.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 reproducible invocation from the mlx-node repository root was:1mlx convert \
2 --input .cache/models/qwen-agentworld-35b-a3b \
3 --output .cache/models/qwen-agentworld-35b-a3b-unsloth-nvfp4-fp8-dgx-mlx-fresh \
4 --model-type qwen3_5_moe \
5 --dtype bfloat16 \
6 --quantize \
7 --q-recipe unsloth \
8 --q-mode nvfp4-fresh suffix is only the local conversion directory; the canonical Hub
repository is the ID shown at the top of this card.metadata.total_size = 23,891,200,256 bytes. Its tensor dtypes are 541
BF16, 371 U8, and 192 U32 entries, with 371 scale sidecars and no quantization
bias sidecars.quantization and
quantization_config blocks, exact index-to-shard closure, 192 inherited
NVFP4 groups, 179 complete fp8_e4m3 groups, the expected storage dtypes and
shapes, and BF16 preservation for protected tensors. The artifact has zero
vision tensors and no MTP tensor subtree, matching the pinned language-only
source.finishReason = "length", numTokens = 1, text = "OK", and
rawText = "OK". This one-token text smoke does not validate model quality,
long-context behavior, or tool use.macOS A16 fallback only — these are not DGX/CUDA throughput results.
@mlx-node/lm, @mlx-node/core, and @mlx-node/core-darwin-arm64 0.0.8. The
run used zero warmups, a 60-second cooldown, temperature 0, reasoning effort
none, and the same 106-token prompt. Every sample generated all 512 tokens
and ended with finishReason = "length".| Metric | macOS A16 fallback median (not DGX/CUDA) |
|---|---|
| Load time | 79,722.779 ms |
| Time to first token | 3,014.820 ms |
| Prefill throughput | 35.160 tokens/s |
| Decode throughput | 61.244 tokens/s |
| Generation wall time | 11,735.035 ms |
| Total wall time | 91,457.940 ms |
benchmark.json. Load time varied strongly because the
weights were read from external storage and OS page-cache state differed
between fresh processes; treat that median as specific to this run. This
fallback benchmark did not exercise DGX, CUDA, or native W4A4/W8A8 execution,
and it must not be used to infer model quality, memory requirements, or parity
with upstream execution.