重要提示

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

Nemotron#

Nemotron 是一个大型语言模型 (LLM),可以集成到合成数据生成管道中以生成训练数据,帮助研究人员和开发人员构建自己的 LLM。

NeMo 2.0 预训练配方#

我们提供了使用 NeMo 2.0 和 NeMo-Run 预训练 Nemotron 模型,模型大小包括:4B、8B、15B、22B 和 340B 的配方。这些配方为 NeMo 2.0 中引入的 nemo.collections.llm api 函数之一配置了 run.Partial。配方托管在 nemotron3_4b, nemotron3_8b, nemotron4_15b, nemotron4_22b , 和 nemotron4_340b 文件中。

注意

预训练配方使用 MockDataModule 作为 data 参数。您需要将 MockDataModule 替换为您自己的自定义数据集。

我们在下面提供了一个示例,说明如何调用默认配方并覆盖 data 参数

from nemo.collections import llm

pretrain = llm.nemotron3_8b.pretrain_recipe(
    name="nemotron3_8b_pretraining",
    dir=f"/path/to/checkpoints",
    num_nodes=2,
    num_gpus_per_node=8,
)

# # To override the data argument
# dataloader = a_function_that_configures_your_custom_dataset(
#     global_batch_size=global_batch_size,
#     micro_batch_size=micro_batch_size,
#     seq_length=pretrain.model.config.seq_length,
# )
# pretrain.data = dataloader

注意

配方中的配置是使用 NeMo-Run run.Configrun.Partial 配置对象完成的。请查看 NeMo-Run 文档以了解有关其配置和执行系统的更多信息。

一旦您准备好最终配置,就可以在任何 NeMo-Run 支持的执行器上执行它。最简单的是本地执行器,它只是在单独的进程中本地运行预训练。您可以按如下方式使用它

import nemo_run as run

run.run(pretrain, executor=run.LocalExecutor())

此外,您也可以在同一个 Python 进程中直接运行它,如下所示

run.run(pretrain, direct=True)

下面提供了我们目前支持或计划很快支持的预训练配方的完整列表,供您参考

配方

状态

Nemotron3 4B

Nemotron3 4B FP8

N/A

Nemotron3 8B

Nemotron3 8B FP8

N/A

Nemotron4 15B

Nemotron4 15B 16k

Nemotron4 15B 64k

Nemotron4 15B FP8

N/A

Nemotron4 22B

Nemotron4 22B 16k

Nemotron4 22B 64k

Nemotron4 22B FP8

N/A

Nemotron4 340B

Nemotron4 340B FP8

N/A