当出现 ‘Global batch size must be divisible by num_generations’ 错误时,需按以下步骤排查:
- 理解错误根源:该错误源于全局批次大小(num_processes × per_device_train_batch_size)不能被 num_generations 整除
- 检查配置文件::
- 确认 zero3.yaml 中的 num_processes 值
- 核对 X_R1_zero_0dot5B_config.yaml 的 batch_size 设置
- 调整参数组合::
例如当使用 4 GPU 时:- 方案 1:设 num_processes=3(留 1 GPU 给 vLLM),batch_size=2,num_generations=6
- 方案 2:设 num_processes=4,batch_size=3,num_generations=12
- 验证修改: através de
accelerate config
重新检测配置
预防性建议:
- 初次训练建议使用 batch_size=1
- 修改参数后先进行小规模测试
- 详细日志可查看 output 目录下对应.log 文件
Essa resposta foi extraída do artigoX-R1: Treinamento de baixo custo de modelos de 0,5B em dispositivos comunsO