在开发机中试跑训练脚本
训练任务的很多错误本来可以在提交前发现。建议用同一镜像、同一挂载路径和同一批关键环境变量,在开发机中把训练脚本跑到第一个 batch,再提交正式训练任务。
平台的 任务运行前环境检测 会检查正式任务 Worker 上的 GPU、通信、存储和运行时环境。它不会读取或解析训练数据,也不会替您验证训练代码、数据字段或 data collator。因此,首次运行训练代码前,仍建议先完成本页试跑。详见配置训练任务容错。
使用同一镜像和同一存储路径
创建开发机时选择计划用于训练任务的镜像,并挂载同一个共享高性能存储卷。挂载路径也应保持一致,例如训练任务会使用 /mnt/public,开发机中也挂载到 /mnt/public。
如果还没有开发机,请按资源来源创建:
先检查依赖和环境变量
进入开发机后,先执行不会占用太多 GPU 时间的环境检查:
language-bash
python - <<'PY'
import os
import torch
for name in ["DATA_DIR", "OUTPUT_DIR"]:
print(name, os.environ.get(name, "<missing>"))
print("torch", torch.__version__)
print("cuda", torch.version.cuda)
print("gpu_count", torch.cuda.device_count())
PY如果训练任务依赖 API Key、模型路径或数据路径,把这些变量按训练任务页面中 环境变量 的写法导出后再试跑。
跑到第一个 batch
最小试跑不需要完成一次训练,只需要覆盖数据加载、collator、模型 forward/backward、日志写入和 checkpoint 写入。
示例:
language-bash
export DATA_DIR=/mnt/public/datasets/my-dataset
export OUTPUT_DIR=/mnt/public/outputs/smoke-test
python train.py \
--data_dir "$DATA_DIR" \
--output_dir "$OUTPUT_DIR" \
--max_steps 1 \
--save_steps 1这一步能提前暴露以下问题:
- 配置里缺少环境变量。
- 镜像中漏装 Python 包或系统依赖。
- 数据字段名、样本格式或 tokenizer 设置不匹配。
- data collator 不能处理变长 label、空样本或多模态字段。
- 输出目录不可写,checkpoint 或 TensorBoard 日志无法保存。
用训练任务启动命令再跑一次
如果正式任务会通过 launch.sh 或 train-with-torchrun.sh 启动,不要只直接运行 python train.py。请在开发机中执行同一份启动脚本,并确认失败会被暴露:当依赖缺失、数据路径错误或训练脚本异常退出时,脚本不能继续跑到“完成”收尾。
language-bash
bash /mnt/public/projects/llama-sft/scripts/launch.sh
echo $?如果脚本使用 tee 写日志,请确认已经按编写可靠启动命令中的模板处理,避免正式任务把失败训练显示为成功。
检查 checkpoint 能写入
试跑结束后,确认 checkpoint、日志和输出文件都写到了共享存储:
language-bash
find /mnt/public/outputs/smoke-test -maxdepth 3 -type f | head确认无误后,再继续选择资源规格与查看排队情况。