|
2 | 2 |
|
3 | 3 |
|
4 | 4 | ######################## |
5 | | -# DEEPSEED CONFIGS # |
| 5 | +# DEEPSPEED CONFIGS # |
6 | 6 | ######################## |
7 | 7 |
|
8 | 8 |
|
9 | | -DEEPSEED_CONFIG = { |
| 9 | +DEEPSPEED_CONFIG = { |
10 | 10 | "zero_optimization": { |
11 | 11 | "stage": 2, |
12 | 12 | "overlap_comm": True, |
|
36 | 36 | } |
37 | 37 |
|
38 | 38 |
|
| 39 | +MOE_DEEPSPEED_CONFIG = { |
| 40 | + "zero_optimization": { |
| 41 | + "stage": 0, |
| 42 | + "overlap_comm": True, |
| 43 | + }, |
| 44 | + "train_batch_size": "auto", |
| 45 | + "train_micro_batch_size_per_gpu": "auto", |
| 46 | + "gradient_clipping": "auto", |
| 47 | + "gradient_accumulation_steps": "auto", |
| 48 | + "optimizer": { |
| 49 | + "type": "AdamW", |
| 50 | + "params": { |
| 51 | + "lr": "auto", # Uses learning_rate from training config |
| 52 | + "betas": "auto", # DEFAULT: (0.9, 0.999) |
| 53 | + "eps": "auto", # DEFAULT: 1e-8 |
| 54 | + "weight_decay": "auto", # DEFAULT: 0.01 |
| 55 | + }, |
| 56 | + }, |
| 57 | + "fp16": {"enabled": "auto"}, |
| 58 | + "activation_checkpointing": { |
| 59 | + "partition_activations": False, |
| 60 | + "cpu_checkpointing": False, |
| 61 | + "contiguous_memory_optimization": False, |
| 62 | + "number_checkpoints": None, |
| 63 | + "synchronize_checkpoint_boundary": False, |
| 64 | + "profile": False, |
| 65 | + }, |
| 66 | +} |
| 67 | + |
| 68 | + |
39 | 69 | ######################## |
40 | 70 | # SFT CONFIGS # |
41 | 71 | ######################## |
|
55 | 85 | "eval_strategy": "epoch", |
56 | 86 | "load_best_model_at_end": True, |
57 | 87 | "ddp_find_unused_parameters": False, |
58 | | - "deepspeed": DEEPSEED_CONFIG, |
| 88 | + "deepspeed": DEEPSPEED_CONFIG, |
| 89 | +} |
| 90 | + |
| 91 | + |
| 92 | +######################## |
| 93 | +# MOE SFT CONFIGS # |
| 94 | +######################## |
| 95 | + |
| 96 | +# Base MoE SFT config - distributed strategy is applied automatically in runner |
| 97 | +# based on PEFT presence: DeepSpeed for LoRA, FSDP for full fine-tuning |
| 98 | +MOE_SFT_CONFIG = { |
| 99 | + "training_type": "sft", |
| 100 | + "output_dir": SFT_OUTPUT_PATH, |
| 101 | + "num_train_epochs": 2, # MoE models typically need fewer epochs |
| 102 | + "per_device_train_batch_size": 2, # Reduced to save memory |
| 103 | + "gradient_accumulation_steps": 1, # Set to 1 to match Accelerate config for testing |
| 104 | + "learning_rate": 5e-5, |
| 105 | + "lr_scheduler_type": "linear", |
| 106 | + "warmup_steps": 100, |
| 107 | + "warmup_ratio": 0.2, |
| 108 | + "logging_steps": 10, |
| 109 | + "save_strategy": "epoch", |
| 110 | + "eval_strategy": "epoch", |
| 111 | + "load_best_model_at_end": True, |
| 112 | + "max_grad_norm": 1.0, |
| 113 | + "bf16": True, |
| 114 | + # Distributed strategy will be set automatically: |
| 115 | + # - With PEFT: uses MOE_DEEPSPEED_CONFIG |
| 116 | + # - Without PEFT: uses FSDP_CONFIG |
| 117 | + "deepspeed": MOE_DEEPSPEED_CONFIG, |
59 | 118 | } |
0 commit comments