Add eight GPU SWIFT and Megatron training scripts

This commit is contained in:
Codex
2026-06-25 20:34:57 +08:00
parent 4f9e0a30a9
commit d2cafeb8a0
5 changed files with 200 additions and 4 deletions

View File

@@ -12,6 +12,7 @@
- `scripts/train_qwen35_9b_full.sh`: Qwen3.5-9B bf16 full SFT。
- `scripts/train_qwen36_27b_lora.sh`: Qwen3.6-27B rank=32 LoRA。
- `scripts/train_qwen36_27b_full.sh`: Qwen3.6-27B bf16 full SFT。
- `scripts/train_qwen36_27b_megatron_full.sh`: 基于 Megatron-SWIFT/MCore-Bridge 的 Qwen3.6-27B full SFT 入口。
- `scripts/run_all_experiments.sh`: 按 LoRA 9B -> full 9B -> LoRA 27B -> full 27B 的顺序执行完整实验。
- `runs/`: TensorBoard 日志目录。
- `logs/`: 训练 stdout/stderr 和实际命令记录。
@@ -165,6 +166,9 @@ export HF_TOKEN=<optional-token>
- full SFT: `learning_rate=1e-5`
- LoRA: `learning_rate=5e-5`
- 默认每卡训练 batch size 为 `1`
- 默认 `NPROC_PER_NODE=8`
- 默认 `CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7`
- 默认 `deepspeed=zero2`
B300/g0049 当前是 8 张 B300每卡约 275GB 显存。由于本实验默认上下文长度是 `262144`,预设 batch size 保守取 `1`,防止 27B/full 或长样本直接 OOM。吞吐测试时可以从脚本外部调大建议先从 LoRA/9B 开始试。
@@ -189,6 +193,9 @@ export QWEN36_27B_FULL_BF16_PER_DEVICE_BATCH_SIZE=1
# scheduler/warmup
export WARMUP_RATIO=0.1
export LR_SCHEDULER_TYPE=cosine
# 短跑 throughput/debug不跑完整 epoch
export MAX_STEPS=10
```
命令:
@@ -200,6 +207,44 @@ export LR_SCHEDULER_TYPE=cosine
./scripts/train_qwen36_27b_full.sh
```
## Megatron-SWIFT
仓库也提供了基于 Megatron-SWIFT/MCore-Bridge 的 full SFT 入口,参考官方 quick-start 的 `megatron sft` 写法:
```bash
./scripts/train_qwen36_27b_megatron_full.sh
```
默认参数:
- `NPROC_PER_NODE=8`
- `CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7`
- `MEGATRON_MODEL=Qwen/Qwen3.6-27B`
- `TENSOR_MODEL_PARALLEL_SIZE=4`
- `PIPELINE_MODEL_PARALLEL_SIZE=1`
- `CONTEXT_PARALLEL_SIZE=1`
- `MICRO_BATCH_SIZE=1`
- `GLOBAL_BATCH_SIZE=8`
- `MAX_LENGTH=262144`
- `LR=1e-5`
- `MIN_LR=1e-6`
- `LR_WARMUP_FRACTION=0.1`
Megatron 多机/共享盘训练要求 dataset cache 一致。脚本默认把 `MODELSCOPE_CACHE`、Megatron 输出和日志放在共享路径:
```text
/mnt/beegfs/workspace/ti_coding_agent_probe/
```
如果换机器或换共享盘,需要覆盖:
```bash
export BEEGFS_ROOT=/mnt/beegfs/workspace/ti_coding_agent_probe
export MODELSCOPE_CACHE=$BEEGFS_ROOT/modelscope_cache
export MEGATRON_OUTPUT_ROOT=$BEEGFS_ROOT/megatron_outputs
export MEGATRON_LOG_ROOT=$BEEGFS_ROOT/megatron_logs
```
## 一键完整实验
确认 GPU 空闲后执行: