Views
No views yet
DistributedConfig.nn.Linear module:model.layers.{l}.mlp.experts.{i}.gate_proj.weight → [1536, 4096]
model.layers.{l}.mlp.experts.{i}.up_proj.weight → [1536, 4096]
model.layers.{l}.mlp.experts.{i}.down_proj.weight → [4096, 1536]GroupedGemmParallel, RouterParallel, GatherParallel), which expect a single fused [num_experts, ...] tensor that can be sliced along the expert dimension across ranks.nn.Parameter tensors:model.layers.{l}.mlp.experts.gate_proj → [128, 1536, 4096]
model.layers.{l}.mlp.experts.up_proj → [128, 1536, 4096]
model.layers.{l}.mlp.experts.down_proj → [128, 4096, 1536]GroupedGemmParallel can shard experts across EP ranks by slicing dim 0. For example, with EP=8, each rank loads 16 experts ([16, 1536, 4096]).transformers with:Qwen3MoeRouter: returns (router_scores, router_indices) compatible with RouterParallelQwen3MoeExperts: holds fused nn.Parameter weights, forward loops over active local expertsbase_model_ep_plan in Qwen3MoeConfig: maps modules to EP parallelism stylesaminediroHF/transformers (branch qwen3-moe-ep, based on v4.57.6).1accelerate launch --config_file fsdp2.yaml trl/scripts/sft.py \
2 --model_name_or_path aminediroHF/Qwen3-235B-A22B-fused \
3 --enable_expert_parallel \
4 --dataset_name THUDM/LongAlign-10k \
5 --max_length 32768 --per_device_train_batch_size 1 \
6 --gradient_checkpointing true --packing --packing_strategy wrapped \
7 --max_steps 100 --logging_steps 1 \
8 --output_dir ./output --report_to wandb1import torch
2from transformers import AutoModelForCausalLM
3from transformers.distributed.configuration_utils import DistributedConfig
4
5model = AutoModelForCausalLM.from_pretrained(
6 "aminediroHF/Qwen3-235B-A22B-fused",
7 dtype=torch.bfloat16,
8 distributed_config=DistributedConfig(enable_expert_parallel=True),
9).cuda()| Property | Value |
|---|---|
| Base model | Qwen/Qwen3-235B-A22B |
| Total parameters | 235B (22B active per token) |
| Architecture | 94 layers, hidden=4096, 64 attention heads, 4 KV heads |
| Experts | 128 total, 8 active per token, moe_intermediate=1536 |
| EP sharding | dim 0 of fused expert tensors (128 / EP_size per rank) |
| Model size (bf16) | ~470 GB |
| Checkpoint format | safetensors, sharded |
| Context | Nodes | GPUs | CP | EP | Offload | MFU | TPS/GPU |
|---|---|---|---|---|---|---|---|
| 16k | 8 | 64 | 4 | 64 | yes | 0.51% | 70 |
| 32k | 8 | 64 | 8 | 64 | yes | 0.73% | 133 |
| 16k | 8 | 64 | 1-8 | 64 | no | - | OOM |
1python scripts/convert_qwen3_moe_to_fused.py \
2 --source_dir /path/to/Qwen3-235B-A22B \
3 --output_dir /path/to/Qwen3-235B-A22B-fusedscripts/convert_qwen3_moe_to_fused.py).