入门

前提条件

查看支持矩阵以确保您拥有受支持的硬件和软件堆栈。

NGC 身份验证

生成 API 密钥

访问 NGC 资源需要 NGC API 密钥,密钥可以在此处生成:https://org.ngc.nvidia.com/setup/personal-keys

创建 NGC API 个人密钥时,请确保从“包含的服务”下拉列表中至少选择“NGC Catalog”。如果此密钥要重复用于其他目的,则可以包含更多服务。

注意

个人密钥允许您配置到期日期、使用操作按钮撤销或删除密钥,以及根据需要轮换密钥。有关密钥类型的更多信息,请参阅NGC 用户指南

导出 API 密钥

将 API 密钥的值作为 NGC_API_KEY 环境变量传递到下一节中的 docker run 命令,以便在启动 NIM 时下载相应的模型和资源。

如果您不熟悉如何创建 NGC_API_KEY 环境变量,最简单的方法是在终端中导出它

export NGC_API_KEY=<value>

运行以下命令之一,使密钥在启动时可用

# If using bash
echo "export NGC_API_KEY=<value>" >> ~/.bashrc

# If using zsh
echo "export NGC_API_KEY=<value>" >> ~/.zshrc

注意

其他更安全的选择包括将值保存在文件中,以便您可以使用 cat $NGC_API_KEY_FILE 检索,或使用密码管理器

Docker 登录到 NGC

要从 NGC 拉取 NIM 容器镜像,请首先使用以下命令通过 NVIDIA 容器注册表进行身份验证

echo "$NGC_API_KEY" | docker login nvcr.io --username '$oauthtoken' --password-stdin

使用 $oauthtoken 作为用户名,NGC_API_KEY 作为密码。$oauthtoken 用户名是一个特殊名称,指示您将使用 API 密钥而不是用户名和密码进行身份验证。

启动 NIM 容器

以下命令使用 gRPC 服务启动 Maxine Studio Voice NIM 容器。在此处查找容器运行时参数的参考:此处

docker run -it --rm --name=maxine-studio-voice \
    --net host \
    --runtime=nvidia \
    --gpus all \
    --shm-size=8GB \
    -e NGC_API_KEY=$NGC_API_KEY \
    -e NIM_MODEL_PROFILE=<nim_model_profile> \
    -e FILE_SIZE_LIMIT=36700160 \
    nvcr.io/nim/nvidia/maxine-studio-voice:latest

确保 nim_model_profile 与您的 GPU 兼容。有关 NIM_MODEL_PROFILE 的更多信息,请参阅NIM 模型配置文件表

注意

标志 --gpus all 用于将所有可用的 GPU 分配给 docker 容器。如果所有 GPU 都不相同,则在多个 GPU 上会失败。要将特定 GPU 分配给 docker 容器(如果您的机器中有不同的多个 GPU 可用),请使用 --gpus '"device=0,1,2..."'

如果命令成功运行,您将收到类似于以下的响应。

+-------------------------------+---------+--------+
| Model                         | Version | Status |
+-------------------------------+---------+--------+
| maxine_nvcf_studiovoice       | 1       | READY  |
| studio_voice_high_quality-48k | 1       | READY  |
+-------------------------------+---------+--------+

I1126 09:22:21.040917 31 metrics.cc:877] "Collecting metrics for GPU 0: NVIDIA GeForce RTX 4090"
I1126 09:22:21.046137 31 metrics.cc:770] "Collecting CPU metrics"
I1126 09:22:21.046253 31 tritonserver.cc:2598] 
+----------------------------------+------------------------------------------------------------------------------------------------+
| Option                           | Value                                                                                          |
+----------------------------------+------------------------------------------------------------------------------------------------+
| server_id                        | triton                                                                                         |
| server_version                   | 2.50.0                                                                                         |
| server_extensions                | classification sequence model_repository model_repository(unload_dependents) schedule_policy m |
|                                  | odel_configuration system_shared_memory cuda_shared_memory binary_tensor_data parameters stati |
|                                  | stics trace logging                                                                            |
| model_repository_path[0]         | /opt/maxine/models                                                                             |
| model_control_mode               | MODE_EXPLICIT                                                                                  |
| startup_models_0                 | maxine_nvcf_studiovoice                                                                        |
| startup_models_1                 | studio_voice_high_quality-48k                                                                  |
| strict_model_config              | 0                                                                                              |
| model_config_name                |                                                                                                |
| rate_limit                       | OFF                                                                                            |
| pinned_memory_pool_byte_size     | 268435456                                                                                      |
| cuda_memory_pool_byte_size{0}    | 67108864                                                                                       |
| min_supported_compute_capability | 6.0                                                                                            |
| strict_readiness                 | 1                                                                                              |
| exit_timeout                     | 30                                                                                             |
| cache_enabled                    | 0                                                                                              |
+----------------------------------+------------------------------------------------------------------------------------------------+

I1126 09:22:21.048202 31 grpc_server.cc:2558] "Started GRPCInferenceService at 127.0.0.1:9001"
I1126 09:22:21.048377 31 http_server.cc:4704] "Started HTTPService at 127.0.0.1:9000"
I1126 09:22:21.089295 31 http_server.cc:362] "Started Metrics Service at 127.0.0.1:9002"
Maxine GRPC Service: Listening to 0.0.0.0:8001

注意

默认情况下,Maxine Studio Voice gRPC 服务托管在端口 8001 上。您将必须使用此端口进行推理请求。

环境变量

下表描述了可以作为添加到 docker run 命令的 -e 参数传递到 NIM 中的环境变量

ENV

必需?

默认值

注释

NGC_API_KEY

您必须将此变量设置为您的个人 NGC API 密钥的值。

NIM_CACHE_PATH

/opt/nim/.cache

容器缓存模型工件的位置(在容器中)。

NIM_MODEL_PROFILE

您必须设置此模型配置文件才能下载您的 GPU 支持的特定模型类型。要了解有关 NIM_MODEL_PROFILE 的更多信息,请参阅NIM 模型配置文件表

FILE_SIZE_LIMIT

36700160

输入音频文件的最大大小限制(以字节为单位)。默认为 35 MB。

容器的运行时参数

标志

描述

-it

--interactive + --tty(请参阅Docker 文档

--rm

容器停止后删除容器(请参阅Docker 文档

--name=<container_name>

为 NIM 容器命名。使用任何首选值。

--runtime=nvidia

确保 NVIDIA 驱动程序在容器中可访问。

--gpus all

在容器内公开 NVIDIA GPU。如果您在具有多个 GPU 的主机上运行,则需要指定要使用的 GPU,您还可以指定多个 GPU。有关安装特定 GPU 的更多信息,请参阅GPU 枚举

--shm-size=8GB

为多进程通信分配主机内存。

-e NGC_API_KEY=$NGC_API_KEY

为容器提供从 NGC 下载足够模型和资源所需的令牌。请参阅上方

--net host

容器公开的端口可以直接在主机上访问,而无需 -p 或 –publish 标志。

停止容器

以下命令可用于停止容器。

docker stop $CONTAINER_NAME
docker rm $CONTAINER_NAME