export MODEL_NAME="models/Diffusion_Transformer/Wan2.2-T2V-A14B" export DATASET_NAME="datasets/X-Fun-Videos-Demo/" export DATASET_META_NAME="datasets/X-Fun-Videos-Demo/metadata_add_width_height.json" # NCCL_IB_DISABLE=1 and NCCL_P2P_DISABLE=1 are used in multi nodes without RDMA. # export NCCL_IB_DISABLE=1 # export NCCL_P2P_DISABLE=1 NCCL_DEBUG=INFO # SparkDiffusion Stage-1 (sparse warm-up) for the LOW-noise expert: same recipe as # train_finetune_sparse_wan2.2_high.sh, only --boundary_type flips to "low" so the low-noise expert is picked from # the config boundary (config/wan2.2/wan_civitai_t2v.yaml, boundary:0.875) and warmed up on its own # noise range (Sec 4.3: each MoE expert group is warmed up and distilled separately). --student_topk=0.05 # must match train_distill_wan2.2_low.sh. Its checkpoint feeds train_distill_wan2.2_low.sh as the low sparse student. accelerate launch --mixed_precision="bf16" --use_fsdp --fsdp_auto_wrap_policy TRANSFORMER_BASED_WRAP \ --fsdp_transformer_layer_cls_to_wrap=WanAttentionBlock --fsdp_sharding_strategy "FULL_SHARD" \ --fsdp_state_dict_type=SHARDED_STATE_DICT --fsdp_backward_prefetch "BACKWARD_PRE" \ --fsdp_cpu_ram_efficient_loading False scripts/sparkdiffusion/train_finetune_sparse_wan2.2.py \ --config_path="config/wan2.2/wan_civitai_t2v.yaml" \ --pretrained_model_name_or_path=$MODEL_NAME \ --train_data_dir=$DATASET_NAME \ --train_data_meta=$DATASET_META_NAME \ --image_sample_size=640 \ --video_sample_size=640 \ --token_sample_size=640 \ --video_sample_stride=2 \ --video_sample_n_frames=81 \ --train_batch_size=1 \ --video_repeat=1 \ --gradient_accumulation_steps=1 \ --dataloader_num_workers=8 \ --num_train_epochs=100 \ --max_train_steps=2000 \ --checkpointing_steps=200 \ --learning_rate=1e-4 \ --lr_scheduler="constant_with_warmup" \ --lr_warmup_steps=100 \ --seed=42 \ --output_dir="output_dir_sparkdiffusion_wan2.2_14b_low_sparse_rola" \ --gradient_checkpointing \ --mixed_precision="bf16" \ --adam_weight_decay=1e-2 \ --adam_epsilon=1e-10 \ --vae_mini_batch=1 \ --max_grad_norm=1.0 \ --random_hw_adapt \ --training_with_video_token_length \ --enable_bucket \ --uniform_sampling \ --trainable_modules "attn_op" \ --student_topk=0.05 \ --train_mode="normal" \ --boundary_type="low" \ --resume_from_checkpoint="latest"