数据中心/云端

NVIDIA AI Foundation 模型:使用生产就绪型 LLM 构建自定义企业聊天机器人和 Co-Pilot

 

大型语言模型(LLM)正在革新数据科学领域,特别是在自然语言理解、AI 以及 机器学习 方面。针对特定领域的见解量身打造的自定义 LLM 在企业应用程序中的吸引力越来越大。

NVIDIA NeMo Megatron-3 8B 系列 基础模型 是一款功能强大的新工具,用于构建生产就绪型 生成式 AI。从客户服务 AI 聊天机器人到尖端 AI 产品,它在企业中促进创新的应用广泛。

这些新的基础模型 NVIDIA NeMo 端到端框架,用于构建、自定义和部署为企业量身打造的 LLM。企业现在可以使用这些工具快速、经济高效地大规模开发 AI 应用程序。这些应用程序可以在云、数据中心以及 Windows 台式机和笔记本电脑上运行。

Nemotron-3 8B 系列可在 Azure AI 模型目录、HuggingFace 和 NVIDIA NGC 的 NVIDIA AI 基础模型中心找到。它包括了一系列旨在解决各种下游任务的基础模型、聊天模型和问答 (Q&A) 模型。表 1 展示了完整的基础模型系列。

模型 变体 主要优势

基础
Nemotron-3-8B 碱基 支持自定义,包括针对适用于领域的 LLM 进行参数高效的微调和持续预训练

聊天
Nemotron-3-8B 聊天 – SFT 用于指令调整自定义模型 或用户定义对齐(例如 RLHF 或 SteerLM 模型)的构建块
Nemotron-3-8B 聊天 RLHF 出色的开箱即用型聊天模型性能
Nemotron-3-8B 聊天转向 LM 开箱即用的聊天模型,可在推理时灵活对齐
问答 Nemotron-3-8B-QA 基于知识库定制的问答 LLM
表 1.Nemotron-3 8B 系列基础模型支持各种 LLM 用例

设计用于生产的基础模型

基础模型是一个强大的构建块,可减少构建有用的自定义应用程序所需的时间和资源。但是,组织必须确保这些模型满足其企业需求。

NVIDIA AI 基础模型基于负责任的来源数据集进行训练,捕捉各种声音和体验。严格的监控可提供数据保真度,并符合不断变化的法律规定。任何出现的数据问题都会得到迅速解决,确保企业配备的 AI 应用程序符合法律规范和用户隐私。这些模型可以同化公开可用的数据集和专有数据集。

Nemotron-3 -8B 底座

Nemotron-3 -8B 基础模型是一种紧凑的高性能模型,用于生成类似人类的文本或代码。该模型的 MMLU 5 分平均值为 54.4.该基础模型还满足具有多语种功能的全球企业的需求,因为它精通 53 种语言,包括英语、德语、俄语、西班牙语、法语、日语、中文、意大利语和荷兰语。该基础模型还使用 37 种不同的编码语言进行训练。

Nemotron-3 -8B 聊天

在此套件中添加了 Nemotron-3-8B 聊天模型,这些模型面向由 LLM 提供支持的聊天机器人交互。有三个聊天模型版本,每个版本都设计为独特的用户特定调整:

Nemotron-3-8B-SFT 模型是指令调整的第一步,我们借此构建在 8B 类别(最受引用的聊天质量指标)中 MT-Bench 得分最高的 RLHF 模型。我们建议用户从 8B-chat-RLHF 开始,以实现最佳的即时聊天交互,但对于有兴趣以唯一方式符合最终用户偏好的企业,我们建议在应用自己的 RLHF 时使用 SFT 模型。

最后,最新的比对方法 SteerLM 为在推理中训练和自定义 LLM 提供了更高的灵活性。借助 SteerLM,用户可以定义他们想要的所有属性,并将其嵌入到单个模型中。然后,他们可以在模型运行时为给定用例选择所需的组合。

此方法实现了持续的改进周期。来自自定义模型的响应可以作为未来训练运行的数据,从而将模型的实用性提升到新的水平。

Nemotron-3-8B 问答

Nemotron-3-8B-QA 模型是一个问答 (QA) 模型,根据专注于目标用例的大量数据进行了微调。

Nemotron-3-8B-QA 模型提供了先进的性能,在 GPU 上实现了 41.99% 的零射击 F1 分数 Natural Questions 数据集此指标用于测量生成的答案与真值在 QA 中的接近程度。

Nemotron-3-8B-QA 模型已经过其他参数大小更大的先进语言模型的测试。此测试基于 NVIDIA 创建的数据集以及自然问题和 Doc2Dial 数据集进行。结果表明,此模型表现良好。

使用 NVIDIA NeMo 框架构建自定义 LLM

NVIDIA NeMo 通过为多个模型架构提供端到端功能和容器化方法,简化了构建自定义企业生成式 AI 模型的路径。借助 Nemotron-3 -8B 模型系列,开发者可以访问 NVIDIA 的预训练模型,这些模型可以轻松适应其特定用例。

快速模型部署

使用 NeMo 框架时,无需收集数据或设置基础设施。NeMo 简化了流程。开发者可以自定义现有模型,并快速将其部署到生产环境中。

最佳模型性能

此外,它还与 NVIDIA TensorRT-LLM 开源库无缝集成,可优化模型性能,NVIDIA Triton 推理服务器 加速推理服务过程。这种工具组合可实现出色的准确性、低延迟和高吞吐量。

数据隐私和安全

NeMo 支持安全、高效且符合安全和保密法规的大规模部署。例如,如果数据隐私是您企业的主要关注点,您可以使用 NeMo 护栏 来在不牺牲性能或可靠性的前提下安全地存储客户数据。

总体而言,使用 NeMo 框架构建自定义 LLM 是在不牺牲质量或安全标准的情况下快速创建企业 AI 应用的有效方式。它为开发者提供了自定义方面的灵活性,同时提供了大规模快速部署所需的可靠工具。

Nemotron-3 -8B 入门

您可以在 Nemotron-3 -8B 模型上轻松运行推理,通过使用 NeMo 框架,它利用了 TensorRT-LLM,这是一个开源库,可提供高级优化,以便在 NVIDIA GPU 上轻松高效地进行 LLM 推理。它内置了对各种优化技术的支持,包括:

  • KV 缓存
  • 高效 Attention 模块(包括 MQA、GQA 和 Paged Attention)
  • 动态(或连续)批处理
  • 支持低精度 (INT8/FP8) 量化等其他优化

NeMo 框架推理容器包含所有必要的脚本和依赖项,以便在 NeMo 模型(例如 Nemotron-3 -8B 系列)上应用 TensorRT-LLM 优化,并使用 Triton 推理服务器托管这些模型。通过部署,它可以显示您可以向其发送推理查询的端点。

预备知识

要按照说明进行部署和推理,您需要访问:

  • NVIDIA 数据中心 GPU:至少 (1) A100 – 40 GB/80 GB,(2) H100 – 80 GB,或 (3) L40S.
  • NVIDIA NeMo 框架:提供训练和推理容器,助您自定义或部署 Nemotron-3 -8B 系列模型。

在 Azure ML 上部署的步骤

Nemotron-3 -8B 系列中的模型可在 Azure ML 模型目录中获取,以便在 Azure ML 管理的端点中进行部署。AzureML 提供易于使用的“无代码部署”流帽,因此可以轻松部署 Nemotron – 3 – 8B 系列模型。平台内集成了底层管道,即 NeMo 框架推理容器。

Screenshot showing real-time endpoint selection for model deployment within Azure ML.
图 1.在 Azure ML 中选择实时端点

要在 Azure ML 上部署 NVIDIA 基础模型以进行推理,请执行以下步骤:

  1. 登录您的 Azure 账户:https://portal.azure.com/#home
  2. 前往 Azure ML 机器学习工作室
  3. 选择您的工作空间并导航至模型目录

NVIDIA AI 基础模型可用于在 Azure 上进行微调、评估和部署。可以使用 NeMo 训练框架在 Azure ML 中完成模型自定义。由训练和推理容器组成的 NeMo 框架已集成在 AzureML 中。

如要微调基础模型,请选择您喜欢的模型变体,单击`fine-tune`(微调),然后填写任务类型、自定义训练数据、训练和验证分割以及计算集群等参数。

要部署模型,请选择您喜欢的模型变体,单击“Real-time endpoint”(实时端点),然后选择实例、端点和其他参数以自定义部署。单击“Deploy”(部署)将推理模型部署到端点。

Azure CLI 和 SDK 的支持也可用于在 Azure ML 上运行微调作业和部署。有关更多信息,请参阅 Azure ML 中的基础模型 文档。

在本地或其他云上部署的步骤

Nemotron-3 -8B 系列中的模型具有独特的推理请求提示模板,推荐将其作为最佳实践,但它们的部署说明相似,因为它们共享相同的基础架构。

要获取使用 NeMo 框架推理容器的最新部署说明,请参阅NVIDIA NGC。为了演示,我们将部署 Nemotron-3-8B-Base-4k。

  1. 登录 NGC 目录,然后获取推理容器。
# log in to your NGC organization
docker login nvcr.io

# Fetch the NeMo framework inference container
docker pull nvcr.io/ea-bignlp/ga-participants/nemofw-inference:23.10
  1. 下载 Nemotron-3 -8B-Base-4k 模型。8B 系列模型可在 NGC 目录 以及 Hugging Face 上找到。您可以从这两个平台中任选其一下载模型。

NVIDIA NGC

使用 CLI 是从 NGC 下载模型的最简单方法。如果您还没有安装 NGC CLI,请根据入门指南进行安装和配置。

# Downloading using CLI. The model path can be obtained from it’s page on NGC
ngc registry model download-version "dztrnjtldi02/nemotron-3-8b-base-4k:1.0"

拥抱面部识别技术

以下命令使用 git-lfs,但您也可以通过 Hugging Face 支持的方法 下载模型。

git lfs install
git clone https://huggingface.co/nvidia/nemotron-3-8b-base-4knemotron-3-8b-base-4k_v1.0
  1. 以交互模式运行 NeMo 推理容器,并安装相关路径
# Create a folder to cache the built TRT engines. This is recommended so they don’t have to be built on every deployment call. 
mkdir -p trt-cache

# Run the container, mounting the checkpoint and the cache directory
docker run --rm --net=host \
                     --gpus=all \
                     -v $(pwd)/nemotron-3-8b-base-4k_v1.0:/opt/checkpoints/  \
                     -v $(pwd)/trt-cache:/trt-cache  \
                     -w /opt/NeMo \
                     -it nvcr.io/ea-bignlp/ga-participants/nemofw-inference:23.10 bash

4.在具有 TensorRT-LLM 后端的 Triton 推理服务器上转换和部署模型。

python scripts/deploy/deploy_triton.py \
                     --nemo_checkpoint /opt/checkpoints/Nemotron-3-8B-Base-4k.nemo \
                     --model_type="gptnext" \
                     --triton_model_name Nemotron-3-8B-4K \
                     --triton_model_repository /trt-cache/ \
                     --max_input_len 3000 \
                     --max_output_len 1000 \
                     --max_batch_size 2

成功完成此命令后,它会显示您可以查询的端点。我们来看看如何做到这一点。

运行推理的步骤

根据您想要的服务集成方式,有几个可用于运行推理的选项:

  1. 通过 NeMo 框架推理容器 使用 NeMo 客户端 API
  2. 使用 PyTriton 在您的环境中创建客户端应用
  3. 使用任何可以发送 HTTP 请求的库/工具,因为部署的服务会公开 HTTP 端点。

以下是使用 NeMo 客户端 API 的选项 1 示例。您可以在同一台机器上的 NeMo 框架推理容器中使用它,也可以在访问服务 IP 和端口的其他机器上使用它。

from nemo.deploy import NemoQuery

# In this case, we run inference on the same machine
nq = NemoQuery(url="localhost:8000", model_name="Nemotron-3-8B-4K")

output = nq.query_llm(prompts=["The meaning of life is"], max_output_token=200, top_k=1, top_p=0.0, temperature=0.1)
print(output)

您可以在README中找到其他示例推理容器的信息。

这促使了 80 亿个模型系列

NVIDIA Nemotron-3 -8B 系列中的模型所有 NVIDIA Nemotron – 3 – 8B 数据集都有一个共同的预训练基础。但是,用于调整聊天的数据集(SFT、RLHF、SteerLM)和 QA 模型都是针对其特定目的而定制的。此外,构建这些模型采用不同的训练方法。因此,这些模型在遵循类似于其训练方式的模板的定制提示下最为有效。

这些模型的推荐提示模板可在其各自的模型卡上找到。

例如,以下是适用于 Nemotron-3 -8B-Chat-SFT 和 Nemotron – 3 – 8B – Chat-RLHF 模型的单圈和多圈格式:

Nemotron-3 -8B-Chat-SFT 和 Nemotron – 3 – 8B – Chat-RLHF
一次性提示 多圈或几次射击
<extra_id_0>System <extra_id_1>User{prompt}<extra_id_1>Assistant <extra_id_0>System <extra_id_1>User{prompt 1}<extra_id_1>Assistant{response 1}<extra_id_1>User{prompt 2}<extra_id_1>Assistant{response 2}...<extra_id_1>User{prompt N}<extra_id_1>Assistant

prompt 和 response 字段对应输入的去向。以下是使用一次性模板格式化输入的示例。

PROMPT_TEMPLATE = """<extra_id_0>System
{system}
<extra_id_1>User
{prompt}
<extra_id_1>Assistant
"""
system = ""
prompt = "Write a poem on NVIDIA in the style of Shakespeare"

prompt = PROMPT_TEMPLATE.format(prompt=prompt, system=system)
print(prompt)

注意:对于 Nemotron-3 -8B-Chat-SFT 和 Nemotron – 3 – 8B – Chat-RLHF 型号,我们建议将系统提示保留为空。

进一步训练和自定义

NVIDIA NeMo Megatron-3 -8B 模型系列适合针对特定领域的数据集进行进一步定制。为此,我们提供多种选项,例如从检查点继续进行预训练、SFT 或参数高效微调、使用 RLHF 对人类演示进行比对,或使用来自 NVIDIA 的新技术 SteerLM

NeMo 框架训练容器中包含了易于使用的脚本,这些脚本整合了上述技术。我们还提供了数据管理工具,帮助识别用于训练和推理的最佳超参数,并支持在您选择的本地硬件上运行 NeMo 框架,包括 DGX 云、支持 Kubernetes 的平台,或各种 云服务提供商

欲了解更多信息,请参阅NeMo 框架用户指南或查看相关容器的README文件。

Nemotron-3 -8B 系列模型专为各种用例而设计,不仅在各种基准测试中表现出色,而且还能够支持多种语言。

尝试一下并在评论中分享您的想法。

 

Tags