重要提示
您正在查看 NeMo 2.0 文档。此版本对 API 和新的库 NeMo Run 进行了重大更改。我们目前正在将 NeMo 1.0 的所有功能移植到 2.0。有关先前版本或 2.0 中尚不可用的功能的文档,请参阅 NeMo 24.07 文档。
检查点#
在本节中,我们将介绍 NVIDIA NeMo 与检查点管理相关的关键功能。
检查点格式#
.nemo
检查点本质上是一个 tar 文件,它捆绑了模型配置(在 YAML 文件中指定)、模型权重(在 .ckpt
文件中)以及其他工件(如分词器模型或词汇表文件)。这种整合的设计简化了共享、加载、调优、评估和推理。
相比之下,在 PyTorch Lightning 训练期间创建的 .ckpt
文件包含模型权重和优化器状态,通常用于恢复训练。
量化检查点#
NeMo 提供了 训练后量化 工作流程,允许您将常规 .nemo
模型转换为 TensorRT-LLM 检查点,在 NeMo 中通常称为 .qnemo
检查点。这些 .qnemo
检查点随后可以与 NVIDIA TensorRT-LLM 库 一起使用,以实现高效推理。
.qnemo
检查点与 .nemo
检查点类似,是一个 tar 文件,它捆绑了 config.json
文件中指定的模型配置以及 rank{i}.safetensors
文件。这些 .safetensors
文件单独存储每个 rank 的模型权重。此外,还保存了一个 tokenizer_config.yaml
文件,其中仅包含原始 NeMo model_config.yaml
文件中的分词器部分。此配置文件定义了给定模型使用的分词器。
当处理大型量化 LLM 时,建议您将检查点保留为未压缩的目录而不是 tar 文件。您可以通过在 PTQ 配置文件 中导出量化模型时设置 compress
标志来控制此行为。
以下示例显示了旨在通过两个 GPU(rank)提供的量化模型的内容
model-qnemo
├── config.json
├── rank0.safetensors
├── rank1.safetensors
├── tokenizer.model
└── tokenizer_config.yaml
社区检查点转换器#
我们提供了易于使用的工具,使用户能够将社区检查点转换为 NeMo 格式。这些工具简化了各种操作,包括恢复训练、监督微调 (SFT)、参数高效微调 (PEFT) 和部署。有关详细说明和指南,请参阅我们的文档。
我们提供全面的指南来帮助最终用户和开发者
用户指南:关于如何在 NeMo 中转换社区模型检查点以进行进一步训练或部署的详细步骤。有关更多信息,请参阅我们的 user_guide。
开发者指南:关于开发者如何实现社区模型检查点转换器的说明,从而在 NeMo 生态系统中实现更广泛的兼容性和集成。有关开发详细信息,请参阅我们的 dev_guide。
Megatron-LM 检查点转换:NVIDIA NeMo 和 NVIDIA Megatron-LM 共享多项基础技术。您可以使用我们的脚本将使用 Megatron-LM 训练的 GPT 风格模型检查点转换为 NeMo 框架,请参阅我们的 从 Megatron-LM 转换。
NeMo 检查点