IT 管理员#
当 AI 从业人员或软件工程师请求虚拟机用于实验或部署时,IT 管理员从虚拟机模板创建新的虚拟机,并将其提供给 AI 从业人员。虚拟机模板是虚拟机的主副本镜像,包括虚拟机磁盘、虚拟设备和软件设置。模板可以节省时间,并避免在配置 AI 工作流程设置时出错。它们还可以确保在企业内部创建和部署虚拟机时,虚拟机的一致性和标准化。
本节介绍如何从头开始创建包含所需 NVIDIA AI Enterprise 组件的虚拟机模板,以执行 AI 训练并使用 Triton 部署推理。下图说明了 IT 管理员执行的工作流程。

IT 管理员可以按照这个四步流程来提供 AI 就绪的虚拟机。在本指南中,提供了详细的步骤,以清晰地理解工作流程。
在继续本指南之前,请确保满足以下服务器要求
最低服务器要求
至少一个 NVIDIA 数据中心 GPU,位于单台 NVIDIA 认证服务器中。建议训练使用 A100,推理使用 A30。
VMware vSphere Hypervisor (ESXi) Enterprise Plus Edition 7.0 Update 2
VMware vCenter Server 7.0 Update 2
NVIDIA AI Enterprise 主机软件和 Guest Driver Software 12.0 或更高版本,带有 NVIDIA AI Enterprise 许可证
NVIDIA AI Enterprise 许可证系统
创建 Ubuntu 20.04 虚拟机#
建议的虚拟机配置如下,适用于 AI 训练和推理用例
虚拟机配置 |
|
---|---|
启动 |
配置为 EFI |
操作系统 |
Ubuntu Server 20.04 Server HWE 64 位 |
CPU |
单插槽 16 vCPU |
内存 |
64GB |
存储 |
150GB 精简配置磁盘 |
网络 |
VMXNet3 网卡 |
GPU |
A100-40C(例如) |
要继续本指南,请使用上述硬件配置创建虚拟机。
请参考 创建您的第一个 NVIDIA AI Enterprise 虚拟机 部分,其中包含 NV AI Enterprise for VMware vSphere 部署指南。本指南提供了以下要求的详细步骤
对于基于 Ampere 的 GPU 执行深度学习工作负载,GPU 分区可能是一个有效的选择。例如,深度学习训练工作流程,它使用较小的句子大小、较小的模型或批大小。推理工作负载通常不需要像训练工作流程那样多的 GPU 内存,并且模型通常被量化以在较低的内存占用空间(INT8 和 FP16)下运行。带有 MIG 分区的 vGPU 允许将单个 GPU 切分为最多七个加速器。这些分区可以被最多七个不同的虚拟机利用,从而实现最佳的 GPU 利用率和虚拟机密度。要在服务器上打开或关闭 MIG,请参阅 NV AI Enterprise for VMware vSphere 部署指南的“高级 GPU 配置”部分。
对于许多组织来说,将 MIG 分区用于 Triton Inference server 部署可以提供更好的投资回报率。因此,当使用本指南时,虚拟机可以分配一个分数 MIG 配置文件,例如 A100-3-20C。有关 MIG 的更多信息,请访问 此处。
安装 NVIDIA 驱动程序、Docker 和 NVIDIA Container Toolkit#
创建虚拟机后,在虚拟机中执行以下操作
其他应用程序配置#
一旦满足上述虚拟机先决条件,虚拟机需要进一步配置,以执行 AI 训练和部署 Triton Inference Server。以下部分描述了额外的特定于应用程序的配置,这些配置是必要的,以及虚拟机所需的 docker 容器拉取。下一步概述如下,将在虚拟机内部执行
创建一个目录来保存数据集。
从 NVIDIA NGC 目录中拉取适当的 docker 容器。
自动启动特定于应用程序的服务。
配置虚拟机用于 BERT 模型训练和推理#
由于 AI 从业人员将利用此虚拟机进行 AI 训练,因此从 NVIDIA NGC 目录中拉取 TensorFlow 和 Triton Inference Server 容器。本节包含从 TensorFlow 容器之上构建的 BERT 容器的详细拉取步骤。我们还将在虚拟机的 home 目录中创建一个数据集文件夹,并设置一个 systemd 进程,以便在克隆虚拟机和重启时重启 Jupyter notebook。这将确保 AI 从业人员可以快速利用此虚拟机,因为 Jupyter notebook 服务器将启动并运行。
在虚拟机中执行以下工作流程步骤,以便拉取容器。
生成或使用现有的 API 密钥。
访问 NVIDIA NGC 目录。
在虚拟机内部创建一个
triton
目录,供 AI 从业人员托管模型。mkdir ~/triton
拉取适当的 NVIDIA AI Enterprise 容器。
重要提示
您需要访问 NVIDIA NGC 才能拉取下面调用的 docker 文件。
sudo docker pull nvcr.io/nvaie/tensorflow-<NVAIE-MAJOR-VERSION>:<NVAIE-CONTAINER-TAG>
sudo docker pull nvcr.io/nvaie/tritonserver-<NVAIE-MAJOR-VERSION>:<NVAIE-CONTAINER-TAG>
注意
对于大多数 AI 训练用例,TensorFlow 基础容器就足够了,但是由于我们将使用 NVIDIA 预训练模型来创建自定义对话式 AI 模型,该模型将在您的数据上进一步训练,因此我们需要这些额外的库。因此,我们将在 NVIDIA AI Enterprise 容器之上构建一个带有额外库的容器。
克隆以下目录。
git clone https://github.com/NVIDIA/DeepLearningExamples.git
切换到该目录。
cd DeepLearningExamples/TensorFlow/LanguageModeling/BERT
最后构建自定义 docker 容器。
docker build -t bert_container .
创建一个脚本,以便在模板克隆或虚拟机重启时自动运行 TensorFlow 和 Triton Inference Server。
touch triton-starup.sh
创建一个脚本,以便在模板克隆或虚拟机重启时自动运行 TensorFlow。
vim ~/triton-startup.sh
将以下内容添加到文件中。
1#!/bin/bash 2docker run -d --gpus=all -v /home/temp/triton:/triton --net=host bert_container jupyter-notebook --ip='0.0.0.0' --NotebookApp.token='' --NotebookApp.base_url='/notebook/'span class="s1">''
使脚本可执行。
chmod +x ~/triton-startup.sh
为自动启动创建 systemd 进程
sudo vim /etc/systemd/system/jupyter.service
将以下内容添加到服务文件中。
1[Unit] 2Description=Starts Jupyter server 3 4[Service] 5ExecStart=/home/nvidia/triton-startup.sh #use your home path 6 7[Install] 8WantedBy=multi-user.target
启动并在重启时启用该服务。
1sudo systemctl start jupyter.service 2sudo systemctl enable jupyter.service
从虚拟机创建模板#
现在虚拟机已适当配置用于 AI 训练和部署推理,IT 管理员的最终工作流程是创建一个虚拟机模板,该模板可用于在未来快速部署虚拟机。IT 管理员为虚拟机创建一个模板,然后克隆模板以服务多个 AI 从业人员/工程师。我们将为本指南创建一个虚拟机模板,但组织也可以选择使用 OVF 文件创建模板。
创建 Guest Customization Specification#
Guest customization specification 可以在 vCenter 中创建;这些用于系统设置的 specification 本质上是 XML 文件,其中包含虚拟机的客户操作系统设置。当您在虚拟机克隆或部署期间将 specification 应用于客户操作系统时,您可以防止可能导致部署具有相同设置(例如重复的 DNS 计算机名称)的虚拟机的冲突。
按照 VMware 文档 为 Linux 创建 customization spec。
创建虚拟机模板#
在 vCenter 中,右键单击新创建的虚拟机 -> 选择“克隆”-> 选择“克隆到模板”。
添加名称文件夹 -> 选择计算资源 -> 添加存储 -> 选择您创建的 guest customization spec -> 单击“完成”。
企业可能同时拥有 IT 管理员和 DevOps 工程师,而其他企业可能没有,这取决于企业的规模。对于没有 DevOps 工程师的企业,IT 管理员或 AI 从业人员可能需要继续执行以下 DevOps 部分,以将模型部署到 Triton Inference Server。
注意
对于大规模生产推理部署,请参阅 附录 – 扩展 Triton Inference Server。IT 管理员可以使用传统的负载均衡器方法,也可以使用 Kubernetes 来部署和自动扩展 Triton。