重要提示
您正在查看 NeMo 2.0 文档。此版本对 API 和新库 NeMo Run 进行了重大更改。我们目前正在将 NeMo 1.0 的所有功能移植到 2.0。有关先前版本或 2.0 中尚未提供的功能的文档,请参阅 NeMo 24.07 文档。
更新日志#
本节介绍了迄今为止发布的 NVIDIA NeMo™ 框架每个版本的主要更改。
NeMo 框架 24.12#
训练#
容错
掉队者检测
自动重新启动
LLM & MM#
MM 模型
Llava-next
Llama 3.2
NeVa 的序列模型并行
启用 Energon
SigLIP(仅限 NeMo 1.0)
LLM 2.0 迁移
Starcoder2
Gemma 2
T5
Baichuan
BERT
Mamba
ChatGLM
DoRA 支持
对齐器#
NeMo 2.0 模型支持
DPO 的序列打包
Reinforce/RLOO 支持
SFT 知识蒸馏
SFT 的上下文并行
导出#
NIM 的 Nemo 2.0 基础模型导出路径
Nemo 2.0 中的 PTQ
Curator#
用于文本检索的合成数据生成
基于 LLM 的过滤器
易用性
可回答性
问答检索生成管道
用于机器翻译的并行数据集整理
加载/写入 Bitext 文件
启发式过滤(直方图、长度比)
分类器过滤(Comet、Cometoid)
ASR#
带有 TDT 解码器的时间戳
带有 .transcribe() 的时间戳选项
NeMo 框架 24.09#
LLM & MM#
对齐器#
拒绝采样 (SFT)
对齐器中用于 SFT 的打包序列训练
导出#
TensorRT-LLM v0.12 集成
vLLM 的 LoRA 支持
FP8 检查点
Curator#
图像语义去重
NSFW 分类器
美学分类器
CLIP 嵌入创建
AEGIS 分类器
质量分类器
ASR#
NeMo 框架 24.07#
训练#
特性和模型架构
PEFT:QLoRA 支持,用于专家混合 (MoE) 稠密层的 LoRA/QLora
状态空间模型和混合架构支持(Mamba2 和 NV-Mamba2-hybrid)
支持 Nemotron、Minitron、Gemma2、Qwen、RAG
多模态
NeVA:添加 SOTA LLM 主干支持(Mixtral/LLaMA3)和模型并行支持套件(PP/EP)
支持在视频 NeVA 之上的语言指导时间定位助手 (LITA)
NeMo 中的自定义分词器训练
更新 EP、CP 和 FSDP 的自动配置器
ASR#
SpeechLM 和 SALM
Canary 自定义的适配器
PyTorch 2.2 中的 PyTorch 分配器将所有 ASR 模型的训练速度提高了高达 30%
用于 Transducer 推理的 Cuda Graphs
用 Lhotse 替换 webdataset - 速度提升高达 2 倍
转录改进 - 速度提升和 QoL 更改
用于多模态 Canary 的 ASR Prompt Formatter
对齐器#
使用 TRT-LLM 将对齐器 RLHF 速度提高 7 倍
奖励偏好优化 (RPO)
身份偏好优化 (IPO)
SteerLM2
Llama 3 性能和收敛示例
宪法 AI 算法 (RLAIF)
Curator#
语义去重
用于文本提取的 Resiliparse
改进分布式数据分类 - 域分类器通过智能批处理速度提高 1.55 倍
用于微调的合成数据生成
导出和部署#
带有后端的框架内 PyTriton 部署
PyTorch
vLLM
TRT-LLM 更新至 0.10
TRT-LLM C++ 运行时
NeMo 框架 24.05#
NeMo 框架现在在单个整合容器中支持大型语言模型 (LLM)、多模态 (MM)、自动语音识别 (ASR) 和文本到语音 (TTS)。
LLM 和 MM#
模型#
Megatron Core RETRO
预训练
零样本评估
以下模型的预训练、转换、评估、SFT 和 PEFT:
Mixtral 8X22B
Llama 3
SpaceGemma
嵌入模型微调
Mistral
BERT
BERT 模型
分布式检查点
带有 NeVa 的视频功能
性能#
分布式检查点
Torch 原生后端
并行读/写
异步写入
多模态 LLM (LLAVA/NeVA)
流水线并行支持
序列打包支持
导出#
将导出和部署模块集成到 NeMo 框架容器中
升级到 TRT-LLM 0.9
Curator#
SFT/PEFT(LoRA 和 p-tuning)数据整理管道和示例
数据集混合工具
域分类器
对齐器#
LoRA 技术与
PPO Actor
PDO
SFT/SteerLM
Stable Diffusion 模型
语音(ASR 和 TTS)#
模型#
AED 多任务模型 (Canary) - 多任务多语言语音识别/语音翻译模型
多模态域 - 支持 SALM 模型的语音 LLM
Parakeet-tdt_ctc-1.1b 模型 - RTFx > 1500(可以在 1 秒内转录 1500 秒的音频)
音频编解码器 16kHz Small - NeMo 神经音频编解码器,用于离散化语音以在 LLM 中使用
mel_codec_22khz_medium
mel_codec_44khz_medium
性能改进#
Transcribe() 升级 - 支持使用文件、张量、数据加载器进行单行转录
用于 RNNT 更快解码的帧循环算法 - 将实时因子 (RTF) 提高 2-3 倍
用于 RNN-T 和 TDT 解码的 Cuda Graphs + 标签循环算法 - 转换器贪婪解码的 RTFx 超过 1500 倍,与 CTC 非自回归模型相当
半排序批处理支持 - 外部用户贡献,将训练速度提高 15-30%。
自定义#
用于 CTC 字词标记的上下文偏置 - 提高自定义词汇表和发音的准确性
长格式推理#
AED 模型的长格式推理支持
AED 模型的多通道音频转录
杂项#
升级的 webdataset - 语音和 LLM/多模态统一容器
NeMo 框架 24.03.01#
已修复的问题
GPT 损失函数中的内存泄漏
Mixtral PEFT 的评估脚本问题
使用 1TB 系统内存时 Llama 7B 内存不足问题
启用 LoRA 合并的流水线并行支持
在 Kubernetes 上保存检查点时进行多节点 Llama 训练
NeMo 框架 24.03#
完全分片数据并行 (FSDP) 支持 GPT
使用 AMMO 库 (0.7.4) 对 Llama 进行训练后量化 (PTQ)
支持所有 MoE 模型(例如 Mixtral)上的专家并行
用于 p-tuning 的流水线并行
更新了所有流行的社区模型的 PEFT 指标。(支持矩阵临时内部链接)
升级了 PyTorch Lightning 至 2.2
升级了基础容器至 PyTorch 24.02
整合了 StarCoder2 和 Gemma 特定容器,以及之前的 Framework GA 容器
Curator 中可自定义的分布式数据分类工具
Curator 中 GPU 加速的质量分类模型代码
Curator 中 GPU 加速的域分类模型代码
NeMo 框架 24.01.01#
为 MCore 添加了专家混合参数传递
PP/TP 支持专家混合
Gemma 模型的 SFT/PEFT 支持
以下模型的训练/SFT/PEFT/评估支持 - Baichuan 模型 - CodeLlama 模型
修复了 Mistral 和 Mixtral 的 nemo-launcher 配置的 SFT/PEFT 支持 - 使用正确的值编辑了配置
文档重构和添加了着陆页
添加了 NeMo 框架开发者文档
NeMo 框架 24.01#
社区模型的新端到端支持(预训练、转换、评估、SFT、PEFT),包括
支持社区模型 Falcon
支持社区模型 Mixtral(专家并行将在未来版本中推出)
支持社区模型 Mistral
支持社区模型 Code Llama
NeMo 多模态的全面上市版本,包括
支持视觉语言基础模型:CLIP
支持文本到图像基础模型:Stable Diffusion 和 Imagen
支持文本到图像自定义:SD-LoRA、SD-ControlNet、SD-instruct pix2pix
支持多模态 LLM:NeVA 和 LLAVA
支持文本到 NeRF:DreamFusion++
支持 NSFW
新的性能特性和关键优化
支持带有张量并行的 PyTorch 完全分片数据并行训练 (FSDP)
支持 CPU 卸载和预取激活和权重
支持上下文并行,用于高性能长序列长度 LLM 训练
支持框架级 FP8 精度,可减少内存使用和训练步长时间
Transformer 层粒度重计算,带有 FP8 LLM 训练
支持流水线张量并行通信重叠,带有 GEMM,适用于所有 LLM
支持使用打包序列进行 LLM 微调
支持用于 LLAMA2 类模型的融合 RoPE 和 Swiglu
设备内存错误修复;移除了 FP8 训练中的 FP8 强制转换/转置重复项
NeMo 对齐器的新特性
支持 MultiEpoch
添加了 PPO:自定义结束字符串 + 内存优化
添加了 SFT:LoRa 和自定义验证指标
NeMo Curator 的新特性
启动器内支持多节点多 GPU 模糊文档级去重。
添加了新的个人身份信息 (PII) 移除模块
启动器内支持用于 SFT 和 PEFT(例如 LoRA、p-tuning、适配器等)数据集的任务去污染
来自 StarCoder 的代码数据过滤启发式方法
NeMo 框架 23.11#
开源发布 NeMo-Aligner。NeMo-Aligner 是高效模型对齐算法的一站式商店,包括
支持来自人类反馈的完整强化学习 (RLHF) 管道,包括 SFT、奖励模型训练和强化学习
支持 SteerLM 技术
支持直接偏好优化
支持所有 Megatron Core GPT 模型,例如 LLAMA2 70B
改进的用户体验
NeMo 框架 23.10#
NeMo 框架推理容器的总体公告,包括
NeMotron 8B 和 Llama 2(仅限 BF16)的分布式检查点(Megatron Core)的部署支持
微调(SFT、RLHF、SteerLM)NeMotron 8B(仅限 BF16)的部署支持
单 GPU 上 P-tuned Llama 2(仅限 BF16)的部署支持
支持在 Triton 推理服务器上使用 PyTriton 为 GPT 和 Llama 2 模型提供服务
支持在 Triton 推理服务器上使用 TensorRT-LLM C++ 后端为 GPT 和 Llama 2 模型提供服务
支持 Triton 推理服务器上 TensorRT-LLM C++ 后端的飞行中批处理
NeMo 框架 23.08.03#
启用 PEFT 以与 Llama-2 模型配合使用
解决了一个在使用恒定学习率调度器恢复监督微调时出现的问题
修复了 SFT 和 PEFT 中的模型并行错误
包含用于分布式检查点的 P-tuning 状态字典处理
修复了使用 save_best_model 标志时出现的错误
修复了进度条显示错误步数的错误
NeMo 框架 23.08.02#
修复了 Hydra 配置中的容器路径
NeMo 框架 23.08.01#
修复了分布式检查点的检查点搜索
NeMo 框架 23.08#
将分布式检查点格式添加到 NeMo 和 Megatron Core for GPT
来自 Megatron Core 的新 GPT Transformer,可实现改进的 LLM 配置训练
当使用 FP8 训练 175B GPT 时,使用张量并行 TP=8 和微批量大小 MBS = 2 以确保模型并行分区适合 GPU 内存
来自 Megatron Core 的新 GPT Transformer,它为 LLAMA2 等模型启用了组查询和多查询注意力
支持使用 Megatron Core 进行 Llama 1 和 Llama 2 预训练
使用 SFT、PEFT(p-tuning、适配器、IA3)等技术自定义 Llama 1 和 Llama 2 模型的 LLM
为 Kubernetes 训练添加了示例和文档
NeMo Data Curator:添加了下游任务去污染支持
NeMo 框架 23.07#
为 T5 和 mT5 添加了低秩自适应 (LoRA) 支持
为 GPT 添加了批量大小加速支持
NeMo 框架 23.05#
低秩自适应 (LoRA) 支持 GPT
用于 BERT 的 LDDL(语言数据集和数据加载器),在 100B 模型上实现了 30% 的性能提升
为所有 PEFT(p-tuning、适配器、IA3)统一数据集和模型类,并以 SFT 模型类作为 GPT 的父类
从交错 PP 到非交错 PP 的转换器
用于 SFT 的对话数据集指南,以帮助创建更好的聊天模型
支持带有 GPT SFT 的动态序列长度批次
为 RLHF 服务器启用了数据并行,在大多数作业中提供了 2 倍的端到端加速
NeMo 框架 23.04.1 ——————–@@
解决了 RLHF 中的问题,该问题阻止了一些作业在 Slurm 集群中运行
与将 NeMo Megatron 重命名为 NeMo 框架相关的更正
修改了 *_improved 配置文件中的 run.name 以匹配正确的参数计数
NeMo 框架 23.04#
支持 NeMo Data Curator,这是一个可扩展的 Python 库,用于整理训练大型语言基础模型所需的大规模数据集
启用 P-tuning 的持续训练
切换到 Megatron Core 以实现模型并行
扩展了数据验证工具,以提供 P-tuning GPU 运行时估计
支持 GPT 和 T5 模型的张量和流水线并行转换
支持 GPT 的监督微调
为 GPT 模型添加了来自人类反馈的强化学习 (RLHF)
基于新的和改进的模型配置,添加了四个 GPT 模型大小
400M_improved
1B_improved
7B_improved
40B_improved
以下是 GPT 模型配置更改列表
配置 |
之前 |
新的 |
---|---|---|
激活 |
GeLU |
Fast-SwiGLU |
位置嵌入 |
学习的绝对位置 |
RoPE |
Dropout |
0.1 |
0 |
嵌入和输出层 |
绑定 |
解绑 |
偏差项 |
是 |
否 |
规范化 |
LayerNorm |
LayerNorm1p |
NeMo 框架 23.03#
为 GPT 和 BERT 模型添加了每个微批量数据加载器
支持 GPT 和 T5 模型的
SquaredReLU
和SwiGLU
激活函数支持 GPT 和 RETRO 的旋转位置嵌入 (RoPE)
当 P‑tuning 或提示调整 GPT、T5 和 mT5 模型时,支持提前停止
实现了重构的适配器学习,以模仿 NLP 方法的参数高效迁移学习
在 Transformer Engine 中为 GPT 模型添加了 Flash 注意力机制
NeMo 框架 23.01#
支持带有张量并行的 BERT 模型(仅限训练)
支持带有流水线并行的 BERT 模型(仅限训练)
支持 BERT 的序列并行和选择性激活检查点(仅限训练)
支持 BERT 模型的交错流水线调度
为 BERT 模型添加了分布式 Adam 优化器
支持 BERT 模型的自动配置器
添加了 110M、4B、20B 和 100B BERT 训练配置
支持 T5 模型的专家混合(无专家并行,仅限训练)
提高了 GPT P‑tuning 的性能(加速 20%−25%)
为 T5 和 mT5 添加了 ALiBi 位置嵌入(仅限训练)
记录 GPT、T5、mT5 和 BERT 模型的总模型大小(跨模态并行等级)
NeMo 框架 22.11#
为 GPT 模型添加了交错流水线调度(仅限训练)
使用 Transformer Engine 支持 FP8(仅限训练)
为 T5 和 mT5 模型添加了分布式 Adam 优化器
支持带有序列并行的 GPT 模型的 P‑tuning 和提示调整
将训练配置吞吐量提高了 7.9%(5B GPT)、9.6%(3B T5)、4.3%(11B T5)、52.4%(23B T5)和 26.6%(41B T5)
NeMo 框架 22.09#
支持 OCI 上的 NeMo 框架训练和推理容器;有关编排脚本的详细信息,请联系 oci_nm@nvidia.com
支持带有流水线并行的 T5 和 mT5 模型的 P‑tuning 和提示调整(仅限训练)
支持带有张量并行和流水线并行的 GPT 和 T5 的适配器学习(仅限训练)
支持带有张量并行和流水线并行的 GPT 和 T5 的 IA3 学习(仅限训练)
添加了自动配置器,以查找在 Base Command Platform 上训练的最高吞吐量配置
添加了自动配置器,用于在 Base Command Manager 上为 GPT 进行并行推理超参数搜索
NeMo 框架 22.08.01#
支持 Amazon Web Services 作为云服务提供商(性能验证高达 20 个
p4d.24xlarge
实例)为 Microsoft Azure 添加了从 Azure CycleCloud 到 NVIDIA Nephele 的云服务提供商的切换编排
NeMo 框架 22.08#
为 GPT 模型添加了分布式 Adam 优化器
为 T5 和 mT5 模型添加了非对称编码器-解码器配置
支持从 T5 和 mT5 模型的分类器层解绑嵌入
支持 T5 和 mT5 模型的相对位置嵌入(流水线并行 ≥3)
支持带有张量并行的 T5 和 mT5 模型的 P‑tuning 和提示调整(仅限训练)
重构代码以提高配置和日志的一致性和可读性
支持流水线并行 ≤2 的 T5 模型的 SQuAD 微调和评估
支持流水线并行 ≤2 的 mT5 模型的 XQuAD 微调和评估
NeMo 框架 22.06-hotfix.01 —————————-@@
修复了 T5 和 mT5 模型的自动配置器
修复了 GPT 模型中的评估工具
修复了 GPT 模型中的提示学习
修复了使用序列并行预训练 GPT 模型时的“内存不足”情况
NeMo 框架 22.06#
支持 GPT 的序列并行和选择性激活检查点
支持 T5 的相对位置嵌入
NVIDIA 使用 mC4 数据集(24 种语言)预训练 mT5 模型,并在 KNLI、KorQuAD、KLUE-STS 和 XNLI 任务上验证了结果。
更新了自动配置器,以包含 GPT 模型的序列并行和选择性激活检查点
为 GPT、T5 和 mT5 模型添加了 DGX A100 40GB 配置的自动配置器支持
支持带有流水线并行的 GPT 的 P‑tuning 和提示调整(仅限训练)
支持操作融合以获得更高的训练吞吐量(加速 2%-7%)
更改了默认 GPT 配置以包含序列并行和选择性激活检查点:20B(加速:14%)、40B(加速:9%)和 175B(加速:15%)
NeMo 框架 22.05.01#
为 Microsoft Azure 添加了云服务提供商支持(性能验证高达 36 个
Standard_ND96amsr_A100_v4
实例)添加了集群验证工具 (DGMI, NCCL)
将 20B GPT 训练配置的性能提高了 2.7%
NeMo 框架 22.05#
支持流水线并行大小等于 1 的 GPT、T5、mT5 模型的异步梯度 all-reduce
支持带有张量并行的 GPT 的 P‑tuning 和提示调整(仅限训练)
添加了自动配置器,以查找在 Base Command Manager 上训练和推理的最高吞吐量配置
支持自定义分词器(仅限训练)
支持 Base Command Manager 上带有流水线并行的 GPT 模型(推理)
支持文本生成的新超参数:
top-p
、top-k
和temperature
NeMo 框架 22.04#
支持带有流水线并行的 T5 模型(仅限训练)
将 T5 的激活函数从 GeLU 切换到 GeGLU
支持带有张量并行和流水线并行的 mT5(仅限训练)
添加了 11B、23B 和 41B T5 模型训练配置
添加了 170M、390M 和 3B mT5 模型训练配置
添加了自动和可配置的非统一内存访问 (NUMA) 映射
NeMo 框架 22.03#
为 T5 模型添加了张量并行支持(针对 <20B 参数进行了优化,仅限训练)
添加了 220M 和 3B T5 模型训练配置
支持 T5 模型的 GLUE 微调和评估
NeMo 框架 22.02#
支持带有流水线并行的 GPT 模型(仅限训练)
添加了 40B 和 175B GPT 模型训练配置
NeMo 框架 22.01#
支持 Base Command Platform 上带有张量并行的 GPT
支持 O2 风格 AMP(加速更大模型的训练)
包含使用您训练的 GPT 模型的聊天机器人示例应用程序
支持使用 Weights & Biases 进行训练指标监控和可视化