在 GPU 加速的 Google Cloud 上使用 NVIDIA NeMo 简化生成式 AI 开发

这篇文章最初发表在 NVIDIA 技术博客上。

生成式人工智能已成为我们时代的变革力量,使各行各业的组织能够实现无与伦比的生产力水平,提升客户体验,并提供卓越的运营效率。

大语言模型 (LLMs) 是生成式人工智能背后的大脑。获得 Llama 和 Falcon 等功能强大、知识渊博的基础模型,为创造惊人的机会打开了大门。然而,这些模型缺乏服务于企业用例所需的特定领域的知识。

开发人员有三种选择来为其生成的人工智能应用程序提供动力:

  1. **预训练 LLM:**最简单的方法是使用基础模型,这对于依赖于通用知识的用例非常有效。
  2. **定制化的 LLM:**这是一种预训练模型,使用领域特定知识和任务特定技能进行定制,连接到企业的知识库,根据最新的专有信息执行任务并提供响应。
  3. **开发 LLM:**拥有专门数据的组织(例如,适合区域语言的模型)不能使用预先训练的基础模型,必须从头开始构建模型。

NVIDIA NeMo 是一个端到端的云原生框架,用于构建、定制和部署生成人工智能模型。它包括训练和推理框架 Guardrails,以及数据管理工具,以实现采用生成人工智能的简单、经济高效和快速的方式。

图 1。具有 NeMo 的生产就绪生成 AI 的端到端平台

随着生成性人工智能模型及其发展的不断进步,人工智能堆栈及其依赖关系变得越来越复杂。对于在人工智能上运营业务的企业,NVIDIA AI Enterprise 为他们提供了一个生产级、安全的端到端软件解决方案。

各组织正在谷歌云上运行其任务关键型企业应用程序,谷歌云是 GPU 加速云平台的领先提供商。 NVIDIA AI Enterprise 包括 NeMo ,可在谷歌云上使用,帮助组织更快地采用生成人工智能。

构建生成型人工智能解决方案需要从计算到网络、系统、管理软件、训练和推理 SDK 的完整堆栈协调工作。

在 Google Cloud Next 2023 上,Google Cloud 宣布由 NVIDIA H100 Tensor Core GPU 提供支持的 A3 实例全面可用。两家公司的工程团队正在合作,将 NeMo 引入 A3 实例,以实现更快的训练和推理。

在这篇文章中,我们介绍了开发人员在 NVIDIA H100 GPU 上构建和运行自定义生成人工智能模型时可以享受的培训和推理优化。

大规模数据管理

单个 LLM 在不同任务中取得卓越成果的潜力是由于对大量互联网规模数据的培训。

NVIDIA NeMo 数据策展人为 LLM 处理万亿代币多语言训练数据提供便利。它由一组 Python 模块组成,这些模块利用 MPI、Dask 和 Redis 集群来高效地扩展数据管理中涉及的任务。这些任务包括数据下载、文本提取、文本重新格式化、质量过滤以及删除精确或模糊的重复数据。该工具可以将这些任务分布在数千个计算核心中。

使用这些模块可以帮助开发人员快速筛选非结构化数据源。这项技术加速了模型训练,通过高效的数据准备降低了成本,并产生了更精确的结果。

加速模型培训

NeMo 采用分布式训练,使用复杂的并行方法在多个节点上大规模使用 GPU 资源和内存。通过分解模型和训练数据, NeMo 实现了最佳吞吐量,并显著减少了训练所需的时间,这也加快了 TTM。

H100 GPU 采用 NVIDIA transformer 引擎(TE),这是一个通过将 16 位和 8 位浮点格式与高级算法相结合来增强 AI 性能的库。它通过将数学运算从人工智能工作负载中使用的典型 FP16 和 FP32 格式减少到 FP8,在不损失准确性的情况下实现了更快的 LLM 训练。此优化使用逐层统计分析来提高每个模型层的精度,从而实现最佳性能和准确性。

图 2: NVIDIA H100 使用 FP8,一种用于加速 LLM 训练的 TE。此示例使用 GPT-3,具有 175B 参数、300B 令牌,以及在 8x DGX A100/H100 系统上运行的 64 个 NVIDIA A100(BF16)和 H100(FP8) GPU

AutoConfigurator 可提高开发人员的工作效率

在分布式基础设施中查找 LLM 的模型配置是一个耗时的过程。 NeMo 提供了 AutoConfigurator,这是一种超参数工具,可以自动找到最佳训练配置,使高通量 LLM 能够更快地训练。这节省了开发人员搜索高效模型配置的时间。

它将启发式和网格搜索技术应用于各种参数,如张量并行度、流水线并行度、微批量大小和激活检查点层,旨在确定具有最高吞吐量的配置。

AutoConfigurator 还可以找到在推理过程中实现最高吞吐量或最低延迟的模型配置。可以提供延迟和吞吐量约束来部署模型,并且该工具将推荐合适的配置。

查看 构建生成性 AI 模型 的食谱,包括 GPT、MT5、T5 和 BERT 架构的各种大小。

模型自定义

在 LLM 领域,通用模式很少适用,尤其是在企业应用程序中。现成的 LLM 往往无法满足组织的独特需求,无论是专业领域知识的复杂性、行业术语还是独特的运营场景。

这正是定制 LLM 的意义所在。企业必须对支持特定用例和领域专业知识的功能的模型进行微调。这些定制模式为企业提供了创建个性化解决方案的手段,以匹配其品牌声音‌并简化工作流程,以获得更准确的见解,以及‌丰富的用户体验。

NeMo 支持多种自定义技术,供开发人员使用NVIDIA 构建的模型,通过添加功能技能、专注于特定领域以及实施 Guardrails 来防止不适当的响应。

此外,该框架支持社区构建的预训练 LLM,包括 Llama 2、BLOOM 和 Bart,并支持 GPT、T5、mT5、T5 MoE 和 Bert 架构。

  • P-调谐训练小助手模型来设置冻结 LLM 的上下文,以生成相关且准确的响应。
  • 适配器/IA3在核心 transformer 架构中引入小型、特定于任务的前馈层,为每个任务添加最小的可训练参数。这使得新任务的集成变得容易,而无需重新设计现有任务。
  • 低阶自适应使用紧凑的附加模块来增强模型在特定任务上的性能,而不会对原始模型进行实质性更改。
  • 监督微调在输入和输出的标记数据上校准模型参数,教授模型领域特定术语以及如何遵循用户指定的说明。
  • 人的反馈强化学习使 LLM 能够更好地与人类价值观和偏好保持一致。

了解有关各种 LLM 定制技术

加速推理

社区 LLM 正以爆炸性的速度增长,公司对将这些模型部署到生产中的需求也在增加。这些 LLM 的大小导致部署的成本和复杂性更高,需要优化生产应用程序的推理性能。更高的性能不仅有助于降低成本,还可以改善用户体验。

LLM,如 LLaMa、BLOOM、ChatGLM、Falcon、MPT 和 Starcoder,已经展示了先进架构和运营商的潜力。这给开发一种能够有效优化这些模型进行推理的解决方案带来了挑战,这在生态系统中是非常可取的。

NeMo 采用 MHA 和 KV 缓存优化、闪存注意力、量化 KV 缓存和分页注意力等技术来解决 LLM 优化的大量挑战。它使开发人员能够尝试新的 LLM 并自定义基础模型以获得最高性能,而无需深入了解 C++或 NVIDIA CUDA 优化。

NeMo 还利用 NVIDIA TensorRT 深度学习编译器、预处理和后处理优化以及多 GPU 多节点通信。在开源 Python neneneba API 中,它定义、优化并执行 LLM,用于生产应用程序中的推理。

NeMo Guardrails

LLM 可能有偏见,提供不恰当的反应,并产生幻觉。 NeMo Guardrails 是一个开源、可编程的工具包,用于应对这些挑战。它位于用户和 LLM 之间,筛选和过滤不适当的用户提示以及 LLM 响应。

针对各种场景构建 Guardrails 非常简单。首先,通过用自然语言提供几个例子来定义护栏。然后,在生成关于该主题的问题时定义一个响应。最后,定义一个流,它规定了在触发主题或流时要采取的一组操作。

NeMo Guardrails 可以帮助 LLM 专注于主题,防止有毒反应,并确保向用户提供信息。阅读有关建筑的信息,了解如何建立可信赖、安全、保密的 LLM 对话系统

使用生态系统工具简化部署

NeMo 与 MLOps 生态系统技术合作,如权重和偏差(W&B),为加速 LLM 的开发、调整和采用提供强大的功能。

开发人员可以使用 W&B MLOps 平台调试、微调、比较和复制模型。W&B Prompts 帮助组织理解、调整和分析 LLM 性能。W&B 集成了 ML 开发中常用的谷歌云产品。

图 3。LLM 度量分析,如权重和偏差中的超参数重要性和模型性能

NeMo 、W&B 和 Google Cloud 的组合在 Google Cloud Next 的 NVIDIA 展位上展出。

推动生成型人工智能应用

Writer 是一家领先的基于人工智能的生成性内容创建服务公司,正在谷歌云上利用 NeMo 功能和加速计算。他们已经建立了高达 40B 的参数语言模型,现在可以满足数百名客户的需求,正在革新内容生成

图 4。Writer Recap 工具从采访或事件的录音中创建书面摘要

APMIC 是另一个以 NeMo 为核心的成功案例。他们在两个不同的应用场景中使用了 NeMo。他们通过实体链接,快速从文档中提取重要信息,从而优化了合同验证和判决摘要的流程。他们还使用 NeMo 定制了 GPT 模型,为问答系统提供动力,提供客户服务和数字人机交互解决方案。

开始构建生成型人工智能应用程序

您可以使用 AI playground,直接通过 web 浏览器体验社区和 NVIDIA 构建的生成 AI 模型的全部潜力,这些模型针对 NVIDIA 加速堆栈进行了优化。

视频 1。 NVIDIA AI 游乐场

使用 Google Cloud 上的 NeMo 自定义来自 HuggingFace 的 GPT、mT5 或 基于 BERT 的预训练 LLMs:

  1. 请访问 NeMo 的 GitHub 页面。
  2. 在 GPU 加速平台上运行从 NGC 中拉出的 NeMo 容器。
  3. NVIDIA AI Enterprise 提供的 NeMo Google Cloud Marketplace 具有企业级支持和安全性。

今天就开始使用NVIDIA NeMo

阅读原文

相关推荐
gs801402 天前
ubuntu下 如何将 NVIDIA 内核驱动 升级到特定版本 如550.127
ubuntu·gpu·nvidia
扫地的小何尚7 天前
什么是大型语言模型
人工智能·语言模型·自然语言处理·机器人·gpu·nvidia
点云兔子9 天前
NX系列-使用 `nmcli` 命令创建 Wi-Fi 热点并设置固定 IP 地址
wifi·ip·nvidia·nx·hotspot·nano
self-motivation12 天前
gpu硬件架构
硬件架构·gpu·nvidia·tensor·cuda
程序员非鱼18 天前
深入解析神经网络的GPU显存占用与优化
人工智能·深度学习·神经网络·机器学习·nvidia·cuda
扫地的小何尚1 个月前
NVIDIA RTX 系统上使用 llama.cpp 加速 LLM
人工智能·aigc·llama·gpu·nvidia·cuda·英伟达
布鲁格若门1 个月前
AMD CPU下pytorch 多GPU运行卡死和死锁解决
人工智能·pytorch·python·nvidia
centurysee1 个月前
【一文搞懂】GPU硬件拓扑与传输速度
gpu·nvidia
算家云2 个月前
moffee模型部署教程
人工智能·python·github·markdown·nvidia·ppt·幻灯片制作
坐望云起2 个月前
Ubuntu20.04 更新Nvidia驱动 + 安装CUDA12.1 + cudnn8.9.7
linux·ubuntu·nvidia·cuda·onnx·1024程序员节