重要提示

您正在查看 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-fractionlr-decay-iters 参数。