Llama 3.1 NemoGuard 8B 主题控制部署#
TopicControl 模型将通过 HuggingFace 作为 LoRA 适配器模块提供下载,并作为 NVIDIA NIM 提供,以便使用 NVIDIA TensorRT-LLM 实现低延迟优化推理。
本指南介绍了如何将 TopicControl 模型部署为 NIM,以及如何在 NeMo Guardrails 配置中使用已部署的 NIM。
NIM 部署#
访问#
第一步是确保使用 NVAIE 许可证通过 NGC 访问 NVIDIA NIM 资产。获得具有所需权限的 NGC API 密钥后,设置以下环境变量
export NGC_API_KEY=<your NGC API key>
docker login nvcr.io -u '$oauthtoken' -p <<< <your NGC API key>
通过拉取最新的 TopicControl 容器来测试您是否能够使用 NVIDIA NIM 资产。
export NIM_IMAGE=<Path to latest NIM docker container>
export MODEL_NAME="llama-3.1-nemoguard-8b-topic-control"
docker pull $NIM_IMAGE
开始吧!
docker run -it --name=$MODEL_NAME \
--gpus=all --runtime=nvidia \
-e NGC_API_KEY="$NGC_API_KEY" \
-e NIM_SERVED_MODEL_NAME=$MODEL_NAME \
-e NIM_CUSTOM_MODEL_NAME=$MODEL_NAME \
-u $(id -u) \
-p 8123:8000 \
$NIM_IMAGE
在 Guardrails 应用中使用正在运行的 NIM#
任何本地运行的 NIM 都会在 v1/completions
和 v1/chat/completions
端点上暴露标准的 OpenAI 接口。NeMo Guardrails 提供了开箱即用的引擎,支持标准的 LLM 接口。对于本地部署的 NIM,您需要使用 nim
引擎。
因此,您的 Guardrails 配置文件可能看起来像这样
models:
- type: main
engine: openai
model: gpt-3.5-turbo-instruct
- type: "topic_control"
engine: nim
parameters:
base_url: "https://:8123/v1"
model_name: "llama-3.1-nemoguard-8b-topic-control"
rails:
input:
flows:
- topic safety check input $model=topic_control
需要注意的几点
parameters.base_url
应包含托管 NIM 的机器的 IP 地址,端口应与 docker run 命令中指定的隧道转发端口匹配。Guardrails 配置中的
parameters.model_name
需要与运行 NIM 容器时使用的$MODEL_NAME
匹配。rails
定义应将topic_control
列为模型。
附加功能:缓存优化的 TRTLLM 推理引擎#
如果您不想在每次运行 NIM 容器时都从头开始构建 TRTLLM 引擎,可以在首次运行时通过添加一个标志来挂载 docker 内部的本地目录以存储模型缓存。
为此,您只需在运行 docker 容器时使用 -v $LOCAL_NIM_CACHE:/opt/nim/.cache
将包含缓存的 TRTLLM 资产的文件夹挂载到 docker 容器上。有关完整命令,请参阅下面的说明。重要提示:确保 docker 对缓存文件夹具有写入权限 (sudo chmod 666 $LOCAL_NIM_CACHE
)。
### To bind a $LOCAL_NIM_CACHE folder to "/opt/nim/.cache"
export LOCAL_NIM_CACHE=<PATH TO DIRECTORY WHERE YOU WANT TO SAVE TRTLLM ENGINE ASSETS>
mkdir -p $LOCAL_NIM_CACHE
sudo chmod 666 $LOCAL_NIM_CACHE
现在在运行 docker 容器时挂载此目录,以便将缓存的资产存储在此目录中,这样后续挂载时容器将读取缓存的资产而不是重新构建它们。
docker run -it --name=$MODEL_NAME \
--gpus=all --runtime=nvidia \
-e NGC_API_KEY="$NGC_API_KEY" \
-e NIM_SERVED_MODEL_NAME=$MODEL_NAME \
-e NIM_CUSTOM_MODEL_NAME=$MODEL_NAME \
-v $LOCAL_NIM_CACHE:"/opt/nim/.cache/" \
-u $(id -u) \
-p 8123:8000 \
$NIM_IMAGE
TopicControl 模型更多详情#
有关 TopicControl 模型的更多详情,请查看其他资源
NVIDIA NemoGuard 模型 的 NeMo Guardrails 库
TopicControl 主题安全示例 配置和提示