用途:指导在华为昇腾 NPU 上启动 MindSpeed-LLM 分布式训练任务。
主要能力:覆盖预训练、指令微调(SFT、LoRA、QLoRA、Full)、偏好对齐(DPO、GRPO)与 FSDP2 后端训练,并提供并行策略与训练参数配置参考。
入口脚本:pretrain_gpt.py 用于预训练;posttrain_gpt.py 用于指令微调与偏好对齐;train_fsdp2.py 用于 FSDP2 后端。注意所有微调任务必须使用 posttrain_gpt.py,不要使用 pretrain_gpt.py,只有前者能正确路由 --is-instruction-dataset 到 packed 指令数据加载器。
使用方式:示例脚本位于 examples/mcore/<model_name>/,如 LoRA 微调执行 bash examples/mcore/qwen25/tune_qwen25_7b_4k_lora_ptd.sh,预训练执行 bash examples/mcore/qwen25/pretrain_qwen25_7b_32k_ptd.sh。手动启动使用 torchrun $DISTRIBUTED_ARGS posttrain_gpt.py 并传入并行、精度与微调参数。常见微调参数包括 --finetune、--stage sft、--is-instruction-dataset、--prompt-type、--lora-r、--lora-alpha、--lora-fusion 等;DPO 使用 --stage dpo、--is-pairwise-dataset、--dpo-beta、--dpo-loss-type。QLoRA 需在权重转换时加 --qlora-nf4,且不支持 --lora-fusion。
支持模型:Qwen2.5、Qwen3、LLaMA 3/3.1、DeepSeek-V2/V3、ChatGLM4、Mistral、Baichuan2、Qwen3-MoE、Mixtral 等。
适用场景:需要在昇腾 NPU 上进行大模型预训练、指令微调或偏好对齐时使用。
限制与注意:微调必须用 posttrain_gpt.py;--data-path 应传前缀,不含 _packed;脚本 CRLF 换行会报错,可用 sed -i "s/\r//g" your_script.sh 处理;HCCL 超时可设置 export HCCL_CONNECT_TIMEOUT=1800 与 export CUDA_DEVICE_MAX_CONNECTIONS=1。评估可运行 bash examples/mcore/qwen25/evaluate_qwen25_7b_mmlu.sh,支持 MMLU、GSM8K 等基准。