NVIDIA NeMo 是一款供开发者构建和训练先进的对话式 AI 模型的开源框架。
NVIDIA NeMo 是什么?
NVIDIA NeMo 是一个框架,用于借助简单的 Python 界面构建、训练和微调 GPU 加速的语音和自然语言理解(NLU)模型。使用 NeMo,开发者可以创建新的模型架构,并通过易于使用的应用编程接口(API),在 NVIDIA GPU 中的Tensor Core 上使用混合精度计算对其进行训练。
NeMo Megatron 是此框架的一部分,提供并行化技术(例如 Megatron-LM 研究项目中的工作流和张量并行化),用于训练大规模语言模型。
借助 NeMo,您可以构建用于实时自动语音识别(ASR)、自然语言处理(NLP)和文本转语音(TTS)应用(例如视频通话转录、智能视频助理以及医疗健康、金融、零售和电信行业的自动化呼叫中心支持)的模型。
NVIDIA NeMo 的优势
- 快速建模
使用简单的 Python API 快速配置、构建和训练模型。
- 可定制的模型
从 NVIDIA NGC 目录中下载并自定义经过预训练的先进模型。
- 广泛集成
实现 NeMo 与 PyTorch 和 PyTorch Lightning 生态系统的互操作。
- 轻松部署
应用 NVIDIA TensorRT 优化,并导出至 NVIDIA Riva 进行高性能推理
NVIDIA NeMo 的功能特性
- 轻松构建新的模型架构
NeMo 包含针对 ASR、NLP 和 TTS 的特定领域集合,用于开发 Citrinet、Jasper、BERT、Fastpitch 和 HiFiGAN 等先进模型。NeMo 模型由神经模组构成,神经模组是模型的基础模组。神经类型将这些模组的输入和输出强有力地类型化,可自动在模块之间执行语义检查。
NeMo 旨在提供高灵活性,您可以使用 Hydra 框架轻松修改模型的行为。例如,您可以使用 Hydra 在以下图表中修改 Citrinet Encoder 模组的架构。
图 1 使用 NeMo 模组的 ASR 工作流
- 训练先进的对话式 AI 模型
NGC 中的几个 NeMo 预训练的先进模型基于开源的免费数据集在 NVIDIA DGX 上进行了超过 100000 小时的训练。在训练您的用例之前,您可以微调这些模型或使用 NeMo 修改它们。
NeMo 使用 Tensor Core上的混合精度,训练速度能达到在单个 GPU 上使用 FP32 精度的 4.5 倍。您可以进一步将训练扩展到多 GPU 系统和多节点集群。
图 2 高度准确的预训练模型
- 使用 NeMo Megatron 进行大规模语言建模
基于 Transformer 的大规模语言模型正应用于广泛的自然语言任务,例如文本生成、摘要和聊天机器人。NeMo Megatron 能够管理训练数据,并使用多达数万亿个参数训练大规模模型。它会执行数据管理任务,例如格式化、过滤、重复数据删除和混合,使用其他方式完成这些任务可能需要花费数月时间。它还使用张量并行性在节点内扩展模型,并利用数据和工作流并行性跨节点扩展数据和模型。
NeMo Megatron 可依托数千个 GPU 提供高训练效率,使企业训练大规模 NLP 变得可行。
NeMo Megatron 可以将经过训练的模型导出到 NVIDIA Triton 推理服务器,以在多个 GPU 和多个节点上运行大规模 NLP 模型。
图 3 使用 NVIDIA NeMo Megatron 训练大规模语言模型
- 灵活、开源、快速扩展的生态系统
NeMo 基于 PyTorch 和 PyTorch Lightning 构建,为研究人员开发和集成他们已习惯使用的模组提供了便捷的途径。PyTorch 和 PyTorch Lightning 是开源 Python 库,可提供用于合成模型的模组。
NeMo 集成了 Hydra 框架,助力研究人员轻松灵活地自定义模型/模组。Hydra 是一款热门框架,可简化复杂的对话式 AI 模型的开发。
NeMo 是一款开源框架,研究人员可为其献言献策,也可在此基础上进行构建。
图 4 NeMo 与 PyTorch 和 PyTorch Lightning 的集成
- 部署到生产环境中
要在使用 NVIDIA Riva 的生产环境中部署 NeMo 语音模型,开发者应使用与 Riva 兼容的格式导出 NeMo 模型,然后执行 Riva 构建和部署命令,以创建可实时运行的优化技能。
图 5 NeMo 到 Riva 的部署
复制链接,了解更多 NVIDIA NeMo 相关内容
https://developer.nvidia.cn/n...
NVIDIA 深度学习培训中心
我们的 NVIDIA 深度学习培训中心还推出了 NVIDIA NeMo 关联技术课程,您可以复制链接查看课程详情。
- 使用容器实现高性能计算
学习使用容器化环境开发高性能计算(HPC)应用程序,降低编码的复杂性和可移植性,从而提高开发效率。
详情请见:https://courses.nvidia.com/co...
- 使用 Riva 部署文本分类模型
您将学习如何使用 Riva ServiceMaker 框架部署文本分类模型。将 Riva 部署所需的所有组件聚合到目标部署环境的过程是快速而直接的。当模型部署在 Riva 中以后,您就可以向服务器发出推理请求。
详情请见:https://courses.nvidia.com/co...
- Riva Speech API 演示
您将了解如何与 Riva Speech 服务交互以处理各种对话式 AI 请求。
详情请见:https://courses.nvidia.com/co...
- 为大规模生产部署推理模型
您将了解有关于 MLOps 的相关知识。随着使用量的增加,资金和工程时间的成本可能会阻止机器学习模型发挥其全部潜力。正是这些类型的挑战,激发了 MLOps 的建立。