Skip to main content

1. Model Introduction

Qwen3 MoE is the Mixture-of-Experts branch of the Qwen3 series, available in two sizes: 30 B-A3B (single-node) and 235 B-A22B (multi-node). Key highlights:
  • Sparse MoE architecture: 30 B / 3 B-active and 235 B / 22 B-active variants, scaling capacity without proportional compute cost.
  • Strong reasoning and coding: shares the Qwen3 generation’s improvements in instruction following, math, and tool usage.
  • Long-context capability: 256 K-token context inherited from the Qwen3 series.
  • Flexible scaling: 30 B fits a single 8-GPU node; 235 B is the canonical multi-node target with FP8 rollout.

2. Supported Variants

3. Environment Setup

3.1 Required env vars

The 235 B bash launcher requires:
The 30 B Python launcher reads no env vars — pass options via the Typer CLI.

3.2 Download model + datasets

3.3 HF → Megatron torch_dist conversion

Drive the conversion across more GPUs / nodes for the 235 B variant; the launcher reads $BASE_FOLDER/Qwen3-235B-A22B_torch_dist/ as --ref-load.

4. Launch

4.1 Quick start

4.2 Multi-node fan-out

run-qwen3-235B-A22B.sh ssh-fans-out to workers via /root/mpi_rack_hostfile itself; you only need the env vars set on the head node. The 30 B launcher is single-node.

5. Recipe Configuration

5.1 Parallelism

run-qwen3-235B-A22B.sh sets --decoder-last-pipeline-num-layers 22 to balance the layer count across PP=4.

5.2 Algorithm

  • 30 B Python launcher: GRPO with --eps-clip 0.2 --eps-clip-high 0.28.
  • 235 B bash launcher: GSPO (--advantage-estimator gspo, --eps-clip 4e-4); --use-kl-loss is commented out.

5.3 Rollout & SGLang

run_qwen3_30b_a3b.py (H100, 1 node, BF16 rollout):
run-qwen3-235B-A22B.sh:

5.4 Optimizer

Both run_qwen3_30b_a3b.py (H100, 1 node) and run-qwen3-235B-A22B.sh enable CPU Adam:
run_qwen3_30b_a3b.py removes them when running on Blackwell (B200/B300/GB200/GB300) per the hardware match in the launcher.

5.5 Notable quirks

  • 30 B Python launcher supports FP8 / MXFP8 / INT4 rollout, Blackwell hardware, Megatron-bridge mode, and MIS via Typer flags.
  • 235 B defaults to FP8 HF checkpoint — the BF16 directory is available as a commented alternative in CKPT_ARGS.
  • R3 not on by default; opt-in via run_qwen3_30b_a3b.py --enable-mis (TIS / RS) for routing-stability experiments.

6. Pairs Well With