重要提示
您正在查看 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_reduce 和 overlap_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。