容器部署#
我们通过 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
环境变量设置为 james
、mark
或 claire
中的任何一个,具体取决于您的部署偏好,并运行 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 引擎。