配置#

NVIDIA NIM 多模态安全打包为容器。您可以设置环境变量并指定命令行参数来配置微服务。

GPU 选择#

NIM 容器是 GPU 加速的,并使用 NVIDIA Container Toolkit 来访问主机上的 GPU。

如果主机具有一个或多个相同的 GPU 型号,您可以为 docker run 命令指定 --gpus all 命令行参数。如果主机具有 GPU 组合,例如 A6000 和 GeForce 显示 GPU,请仅在具有计算能力的 GPU 上运行容器。

通过使用以下任一方法,将特定 GPU 暴露给容器

  • 指定 --gpus 参数,例如 --gpus="device=1"

  • 设置 NVIDIA_VISIBLE_DEVICES 环境变量,例如 -e NVIDIA_VISIBLE_DEVICES=1

运行 nvidia-smi -L 命令以列出要在参数或环境变量中指定的设备 ID

GPU 0: Tesla H100 (UUID: GPU-b404a1a1-d532-5b5c-20bc-b34e37f3ac46)
GPU 1: NVIDIA GeForce RTX 3080 (UUID: GPU-b404a1a1-d532-5b5c-20bc-b34e37f3ac46)

有关更多信息,请参阅 NVIDIA Container Toolkit 文档中的 GPU 枚举

环境变量#

下表标识了容器中使用的环境变量。使用 -e 命令行参数为 docker run 命令设置环境变量。

名称

描述

默认值

NGC_API_KEY

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

NIM_CACHE_PATH

指定容器中已下载模型的完全限定路径。

/opt/nim/.cache

NIM_GRPC_API_PORT

指定容器中用于 gRPC 访问微服务的网络端口号。

50051

NIM_HTTP_API_PORT

指定容器中用于 HTTP 访问微服务的网络端口号。

有关主机和容器网络端口的更多信息,请参阅 Docker 文档中的 发布端口

8003

NIM_HTTP_MAX_WORKERS

指定为 HTTP 请求启动的工作线程数。

1

NIM_HTTP_TRITON_PORT

指定容器中用于 NVIDIA Triton Inference Server 的网络端口号。

8080

NIM_IGNORE_MODEL_DOWNLOAD_FAIL

当设置为 true 且微服务无法从 NGC 下载模型时,微服务将继续运行而不是退出。此环境变量在气隙环境中可能很有用。

false

NIM_LOGGING_JSONL

当设置为 true 时,微服务以 JSONL 格式创建日志记录。

false

NIM_LOG_LEVEL

指定日志记录级别。微服务支持以下值:DEBUG、INFO、WARNING、ERROR 和 CRITICAL。

INFO

NIM_MANIFEST_PATH

指定容器中模型清单 YAML 文件的完全限定路径。

/opt/nim/etc/default/model_manifest.yaml

NIM_MODEL_PROFILE

指定要与容器一起使用的模型配置文件 ID。默认情况下,容器会尝试自动将主机 GPU 型号和 GPU 计数与最佳模型配置文件匹配。

NIM_SERVED_MODEL_NAME

指定 API 中使用的模型名称。在逗号分隔的列表中指定多个名称。如果您指定多个名称,服务器将响应任何名称。响应的模型字段中的名称是此列表中的第一个名称。默认情况下,模型是从 model_manifest.yaml 推断出来的。

NIM_TRITON_LOG_VERBOSE

当设置为 1 时,容器以详细日志记录启动 NVIDIA Triton Inference Server。

0

NIM_TRITON_REQUEST_TIMEOUT

指定 NVIDIA Triton Inference Server 的超时时间(以微秒为单位)。默认值 0 表示没有超时。

0

NIM_TRITON_GRPC_PORT

指定 NVIDIA Triton Inference Server 的 gRPC 端口号。

8001

#

下表标识了容器中使用的路径。使用此信息来规划要绑定挂载到容器中的本地路径。

容器路径

描述

示例

/opt/nim/.cacheNIM_CACHE_PATH

指定已下载模型的路径,相对于容器的根目录。

此路径的典型用途是将主机上的目录与容器内的此路径绑定挂载。例如,要在主机上使用 ~/.cache/nim,请在启动容器之前运行 mkdir -p ~/.cache/nim。当您启动容器时,请为 docker run 命令指定 -v ~/.cache/nim:/opt/nim/.cache -u $(id -u) 参数。

如果您未指定绑定或卷挂载(如上述命令中的 -v 参数所示),则容器每次启动时都会下载模型。

-u $(id -u) 参数使用您的用户 ID 运行容器,以避免文件系统权限问题和错误。

-v ~/.cache/nim:/opt/nim/.cache -u $(id -u)