重要提示
您正在查看 NeMo 2.0 文档。此版本引入了 API 的重大更改和一个新的库 NeMo Run。我们目前正在将 NeMo 1.0 的所有功能移植到 2.0。有关先前版本或 2.0 中尚未提供的功能的文档,请参阅 NeMo 24.07 文档。
从 Megatron-LM 转换#
NVIDIA NeMo 和 NVIDIA Megatron-LM 共享许多底层技术。本文档为将您的项目从 Megatron-LM 迁移到 NVIDIA NeMo 提供指导。
转换检查点#
您可以使用提供的示例脚本将使用 Megatron-LM 训练的 GPT 风格模型检查点转换为 NeMo Framework。此脚本有助于将 Megatron-LM 检查点转换为 NeMo 兼容格式。
<NeMo_ROOT_FOLDER>/examples/nlp/language_modeling/megatron_lm_ckpt_to_nemo.py \
--checkpoint_folder <path_to_PTL_checkpoints_folder> \
--checkpoint_name megatron_gpt--val_loss=99.99-step={steps}-consumed_samples={consumed}.0 \
--nemo_file_path <path_to_output_nemo_file> \
--model_type <megatron_model_type> \
--tensor_model_parallel_size <tensor_model_parallel_size> \
--pipeline_model_parallel_size <pipeline_model_parallel_size> \
--gpus_per_node <gpus_per_node>
恢复训练#
要从转换后的 Megatron-LM 检查点恢复训练,正确设置训练参数以匹配之前的学习率计划至关重要。在您的 NeMo 训练配置中使用以下 trainer.max_steps 参数设置
trainer.max_steps=round(lr-warmup-fraction * lr-decay-iters + lr-decay-iters)
此配置确保 NeMo 中的学习率调度器从 Megatron-LM 中断的地方继续,使用原始 Megatron-LM 训练设置中的 lr-warmup-fraction 和 lr-decay-iters 参数。