入门
前提条件
查看支持矩阵以确保您拥有受支持的硬件和软件堆栈。
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 密钥的值。 |
|
否 |
|
容器缓存模型工件的位置(在容器中)。 |
|
是 |
无 |
您必须设置此模型配置文件才能下载您的 GPU 支持的特定模型类型。要了解有关 NIM_MODEL_PROFILE 的更多信息,请参阅NIM 模型配置文件表 |
|
否 |
36700160 |
输入音频文件的最大大小限制(以字节为单位)。默认为 35 MB。 |
容器的运行时参数
标志 |
描述 |
---|---|
|
|
|
容器停止后删除容器(请参阅Docker 文档) |
|
为 NIM 容器命名。使用任何首选值。 |
|
确保 NVIDIA 驱动程序在容器中可访问。 |
|
在容器内公开 NVIDIA GPU。如果您在具有多个 GPU 的主机上运行,则需要指定要使用的 GPU,您还可以指定多个 GPU。有关安装特定 GPU 的更多信息,请参阅GPU 枚举。 |
|
为多进程通信分配主机内存。 |
|
为容器提供从 NGC 下载足够模型和资源所需的令牌。请参阅上方。 |
|
容器公开的端口可以直接在主机上访问,而无需 -p 或 –publish 标志。 |
停止容器
以下命令可用于停止容器。
docker stop $CONTAINER_NAME
docker rm $CONTAINER_NAME