容器部署#

我们通过 NGC 注册表提供 Docker 容器以用于部署目的。本指南将演示如何通过配置和运行 Docker 镜像来部署可操作的 Audio2Face-3D 创作微服务

您需要登录到 nvcr.io docker 注册表,请按照 NGC 上的生成 API 密钥的说明进行操作。

依赖项#

为此,您将需要以下依赖项

使用 Docker Compose#

要运行 Audio2Face-3D 创作微服务,最简单的方法是使用 docker compose。

要开始快速部署,请将以下文件另存为 docker-compose.yaml

docker-compose.yaml
services:
  a2f-authoring:
    image: nvcr.io/nvidia/ace/a2f-authoring:0.3.6
    volumes:
      - models_a2f:/tmp/a2f
      - models_a2e:/tmp/a2e
    command: bash -c 'python3 generate_trt_models.py ${A2F_3D_MODEL_NAME}_v2.3 trt_params_prod.json && a2f-authoring /app/configs/${A2F_3D_MODEL_NAME}_v2.3-config.json'
    network_mode: "host"
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: 1
              capabilities: [ gpu ]

volumes:
  models_a2f: {}
  models_a2e: {}

然后,您可以将 A2F_3D_MODEL_NAME 环境变量设置为 jamesmarkclaire 中的任何一个,具体取决于您的部署偏好,并运行 docker compose up

$ export A2F_3D_MODEL_NAME=james
$ docker compose up

等待服务显示就绪状态,然后您可以开始与之交互。

...
a2f-authoring-1  | 2024-09-18T15:33:57.763448Z  INFO a2f_authoring: Service is initialized!

您现在正在本地部署 Audio2Face-3D 创作微服务。

单容器部署#

如果您不想使用 docker-compose 部署容器,则可以使用纯 Docker 命令运行容器。

$ docker run -it --rm --network=host --gpus all nvcr.io/nvidia/ace/a2f-authoring:0.3.6 ./run_james_model.sh

如果您希望运行 mark 模型,请改为

$ docker run -it --rm --network=host --gpus all nvcr.io/nvidia/ace/a2f-authoring:0.3.6 ./run_mark_model.sh

如果您希望运行 claire 模型,请改为

$ docker run -it --rm --network=host --gpus all nvcr.io/nvidia/ace/a2f-authoring:0.3.6 ./run_claire_model.sh

注意

要查找 nvcr.io/nvidia/ace/a2f-authoring:0.3.6 的校验和,请运行

$ docker images --digests nvcr.io/nvidia/ace/a2f-authoring:0.3.6

您应该得到

REPOSITORY                         TAG       DIGEST                                                                    IMAGE ID       CREATED       SIZE
nvcr.io/nvidia/ace/a2f-authoring   0.3.6     sha256:82bef15da36c2b2d7eb19e233ddb417d5ea598147a03541656866abd92501163   a6b6c93e4116   2 weeks ago   35.6GB

如果此方法失败,请尝试在不指定标签的情况下运行 Docker 命令,但请确保版本正确。

$ docker images --digests nvcr.io/nvidia/ace/a2f-authoring

TRT 引擎生成#

在部署过程中,需要生成 TRT 引擎以优化给定 GPU 的模型。当部署环境更改时,需要重新生成此 TRT 引擎。当出现 GPU 更改时,例如不同的架构或计算能力,尤其如此。生成的 TRT 引擎有可能在具有完全相同受控配置(相同的硬件 + docker)的机器上重复使用。建议在每次硬件更改时始终重新生成 TRT 引擎。