重要提示

您正在查看 NeMo 2.0 文档。此版本对 API 和新的库 NeMo Run 进行了重大更改。我们目前正在将 NeMo 1.0 中的所有功能移植到 2.0。有关先前版本或 2.0 中尚不可用的功能的文档,请参阅 NeMo 24.07 文档

已知问题#

我们将尽快发布以下问题的修复程序

  • 在 24.12 版本中,NeMo 从 pytorch_lightning 切换到 lightning.pytorch。如果您有导入 pytorch_lightning 的自定义代码,则应将导入替换为 lightning.pytorch。否则将导致如下错误

    File "/usr/local/lib/python3.10/dist-packages/lightning/pytorch/utilities/model_helpers.py", line 42, in is_overridden
      raise ValueError("Expected a parent")
    ValueError: Expected a parent
    
  • 同样,当使用 24.12 或更高版本的容器时,如果使用 LM Evaluation Harness 运行评估,请务必升级 LM evaluation harness 的版本,以包含 此提交。这可以通过遵循 这些安装说明 来完成。否则将导致如下错误

    ValueError: You selected an invalid strategy name: `strategy=<nemo.collections.nlp.parts.nlp_overrides.NLPDDPStrategy object at 0x1554480d2410>`. It must be either a string or an instance of `pytorch_lightning.strategies.Strategy`.
    Example choices: auto, ddp, ddp_spawn, deepspeed, ... Find a complete list of options in our documentation at https://lightning.ai
    
  • 当从 megatron.core.optimizer.optimizer_config module 构建 OptimizerConfig 类时,恢复使用 NeMo 24.09 容器生成的 NeMo 2.0 检查点的模型上下文会失败,因为 overlap_grad_reduceoverlap_param_gather 参数已 从 Megatron Core 中的 config API 移动update_io_context.py 脚本从检查点上下文中删除未知参数,使其与最新容器兼容。

  • Griffin(NeMo 1.0)的完全微调存在检查点加载问题;状态字典在提供的检查点和初始化的模型之间不匹配。如果需要此模型,请使用 24.07 容器。

  • NeMo_Forced_Aligner_Tutorial.ipynb 存在 AttributeError,如果需要此 notebook,请使用 24.09 容器。

  • Pretrain Gemma 2 27b recipe 至少需要 2 个节点,目前 recipe 的默认节点数设置为 1。

  • Megatron Core 分布式优化器目前缺少内存容量优化,导致在小数据并行尺寸下模型状态内存使用率较高。我们将在下一个补丁中包含此优化。

  • 数据并行参数 AllGather 与 optimizer.step 的重叠(overlap_param_gather_with_optimizer=true)不适用于分布式检查点。对分布式检查点的支持将在下一个公开版本中提供。

  • 尚不支持将模型从 NeMo 2.0 转换为 1.0。在 NeMo Aligner 原生支持 2.0 之前,将需要此支持来对齐模型。

  • Transformer Engine 在 v1.10 之后更改了元数据在检查点中的存储方式,这可能会在使用高于 v1.10 的 Transformer Engine 版本加载使用早期版本训练的检查点时导致检查点不兼容。这种形式的错误看起来类似于以下内容

    File "/usr/local/lib/python3.10/dist-packages/torch/distributed/checkpoint/default_planner.py", line 315, in create_default_local_load_plan
      raise RuntimeError(f"Missing key in checkpoint state_dict: {fqn}.")
    RuntimeError: Missing key in checkpoint state_dict: model.decoder.layers.self_attention.core_attention._extra_state/shard_0_24.
    

    要解决此问题,在使用 Transformer Engine v1.10 或更高版本时,请使用 model.dist_ckpt_load_strictness=log_all。您可以在软件组件版本页面上找到每个 NeMo 容器中存在的 Transformer Engine 版本。

  • 对于 GPT 模型的数据准备,请使用您自己的数据集或您组织合法批准的在线数据集。

  • 当多个进程或线程尝试同时访问和修改共享资源时,NeMo 实验管理器中可能会出现竞争条件,从而导致不可预测的行为或错误。

  • Mistral 和 Mixtral 分词器需要 Hugging Face 登录

  • 将 Gemma、Starcoder 和 Falcon 7B 模型导出到 TRT-LLM 仅适用于单个 GPU。此外,如果您尝试使用多个 GPU 导出,则不会显示描述性错误消息。

  • 以下 notebook 存在功能问题,将在下一个版本中修复

    • ASR_with_NeMo.ipynb

    • ASR_with_Subword_Tokenization.ipynb

    • AudioTranslationSample.ipynb

    • Megatron_Synthetic_Tabular_Data_Generation.ipynb

    • SpellMapper_English_ASR_Customization.ipynb

    • FastPitch_ChineseTTS_Training.ipynb

    • NeVA Tutorial.ipynb

  • 导出

    • 导出 Llama70B vLLM 会导致内存不足问题。根源分析需要更多时间。

    • 导出 vLLM 不支持 LoRA 和 P-tuning;但是,LoRA 支持将在下一个版本中添加。

    • 使用 8 个 GPU 的框架内(PyTorch 级别)部署遇到错误;需要更多时间来了解原因。

    • scripts/deploy/nlp/query.py 下的查询脚本在 24.12 容器中给出 An error occurred: ‘output_generation_logits’ 错误。它将在下一个容器版本中修复。

  • 多模态 - LITA 教程问题:tutorials/multimodal/LITA_Tutorial.ipynb 数据准备部分要求用户手动下载 youmakeup 数据集,而不是使用提供的脚本。- LITA(语言无关分词算法)教程问题:tutorials/multimodal/LITA_Tutorial.ipynb 中的数据准备部分要求您手动下载 youmakeup 数据集,而不是使用提供的脚本。- 将参数 exp_manager.checkpoint_callback_params.save_nemo_on_train_end=True 添加到 NeVA notebook pretraining procedure 以确保端到端工作流程。应将附加参数 exp_manager.checkpoint_callback_params.save_nemo_on_train_end=True 添加到 Neva Notebook Pretraining Part 以确保 e2e 工作流程。

  • ASR - 当使用 ASR 解码器进行日志时,FastConformer ASR 模型中发生时间戳错位。相关问题:#8438