Add eight GPU SWIFT and Megatron training scripts
This commit is contained in:
45
README.md
45
README.md
@@ -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 空闲后执行:
|
||||
|
||||
Reference in New Issue
Block a user