Views
No views yet
nvidia/Nemotron-Labs-TwoTower-30B-A3B-Base-BF16,
a block-wise autoregressive diffusion language model, running on Apple Silicon.mlx-lm has no two-tower diffusion architecture, so this repo ships the MLX
modeling code (nemotron_twotower_mlx.py) + a runner (run_twotower_mlx.py). The entry
point is generate_mask_diffusion, not mlx_lm.generate.1pip install mlx mlx-lm transformers
2huggingface-cli download pipenetwork/Nemotron-Labs-TwoTower-30B-A3B-mlx-6bit --local-dir tt-6bit
3python tt-6bit/run_twotower_mlx.py --model tt-6bit \
4 --prompt "The capital of France is" --max-new-tokens 64 \
5 --block-size 16 --steps-per-block 16 --mask-token-id 31import sys; sys.path.insert(0, "tt-6bit")
2from run_twotower_mlx import load
3import mlx.core as mx
4model, tok = load("tt-6bit")
5ids = mx.array([tok("The capital of France is")["input_ids"]])
6out = model.generate_mask_diffusion(ids, max_new_tokens=64, block_size=16,
7 steps_per_block=16, mask_token_id=3, eos_token_id=tok.eos_token_id)
8print(tok.decode(out[0].tolist()))mixed_v1)config.json
(quantization.scheme = "mixed_v1") automatically.| Quant | Size | Generation | Peak RAM |
|---|---|---|---|
| 4-bit | 17 GB | 16.1 tok/s | 17.9 GB |
| 6-bit | 24 GB | 13.2 tok/s | 25.7 GB |
| 8-bit | 31 GB | 13.3 tok/s | 33.6 GB |
| bf16 | 59 GB | 13.3 tok/s | 63.2 GB |
| Quant | Size | Throughput | Denoiser evals | Peak RAM |
|---|---|---|---|---|
| 4-bit | 34 GB | 3.8 tok/s | 64 | 37.1 GB |
| 6-bit | 48 GB | 3.3 tok/s | 64 | 52.5 GB |
| 8-bit | 63 GB | 3.4 tok/s | 64 | 67.9 GB |
| bf16 | 118 GB | 1.5 tok/s | 39 | 136.9 GB |
steps_per_block denoiser passes per block, so it is slower per token
than the AR tower — lower --steps-per-block trades quality for speed. Higher-precision
builds tend to converge in fewer denoiser evaluations, but each pass moves more memory.