5. 推理示例#
在本节中,我们将给出在您的 Run:ai on DGX Cloud 集群上部署 NVIDIA NIM 的示例。该示例使用 llama-3.1-8b-instruct 模型,但其他模型也类似。
5.1. 使用用户界面#
5.1.1. 先决条件和要求#
已确定要使用的 Run:ai 项目命名空间(新的或现有的)
已添加具有 NIM 访问权限的 NGC 凭据到 Run:ai 集群。 请在此处查看详细信息。
5.1.2. 创建环境#
为每个模型创建单独的环境。
要使用 Run:ai UI 创建新环境
在左侧导航菜单中,选择 环境。您将进入环境概览页面,其中显示有关集群中现有环境的信息。
单击页面左上角的 + 新建环境。您将进入新建环境创建页面。
为环境选择范围。这决定了哪些集群、部门、组或项目可以部署该环境。
输入环境名称和描述。示例
llama3-8b-nim
插入容器镜像的 URL。示例
nvcr.io/nim/meta/llama-3.1-8b-instruct
选择推理作为工作负载的类型。
添加 HTTP 端口 8000 作为推理服务端点。
在运行时设置中,添加新的环境变量。类型
NGC_API_KEY
作为名称。选择凭据源,选择您添加了 NGC 凭据的密钥作为凭据名称,然后键入NGC_API_KEY
作为密钥。单击 创建环境。您将返回到环境概览页面,您的环境将列在该表中。
5.1.3. 可选:创建 PVC 数据存储#
您可以创建 PVC 数据存储用于模型缓存。有关更多信息,请参阅 PVC。
5.1.4. 创建工作负载#
转到工作负载概览页面,然后单击左上角的 + 新建工作负载 按钮。将出现一个下拉菜单。从下拉菜单中,选择推理。您将进入新建推理创建页面。
选择要运行 NIM 的所需集群。
选择要在其中运行作业的所需项目。
添加推理名称 - 示例:
nim-llama3
单击页面右下角的 继续。
选择您创建的环境。确保 NGC 凭据已正确填充为环境变量。
选择一个带有一个 GPU 的计算资源。
可选:增加自动伸缩的最大副本数。如果您这样做,将出现其他自动伸缩选项。
可选:在数据源部分,选择您的 PVC。
转到页面底部,然后单击 创建。
可选:监控 NIM Pod 日志
$ kubectl get pod NAME READY STATUS RESTARTS AGE nim-llama3-00001-deployment-5ffcfd48c8-kbmbg 2/2 Running 0 6m2s $ kubectl logs nim-llama3-00001-deployment-5ffcfd48c8-kbmbg -f
获取 NIM 公开的外部 URL。该 URL 是第二列中的值,在本例中为
https://nim-llama3-runai-nemo-ms.inference.<cluster>.ai
。kubectl get ksvc NAME URL LATESTCREATED LATESTREADY READY REASON nim-llama3 https://nim-llama3-runai-nemo-ms.inference.<cluster>.ai nim-llama3-yasen-00001 nim-llama3-yasen-00001 True
测试服务
curl -X POST https://nim-llama3-runai-nemo-ms.inference.<cluster>.ai/v1/chat/completions -H 'accept: application/json' -H 'Content-Type: application/json' -d '{ "messages": [ { "content": "You are a polite and respectful chatbot helping people plan a vacation.", "role": "system" }, { "content": "What should I do for a 4 day vacation in Spain?", "role": "user" } ], "model": "meta/llama-3.1-8b-instruct", "max_tokens": 16, "top_p": 1, "n": 1, "stream": false, "stop": "\n", "frequency_penalty": 0.0}' |jq
预期结果是
{ "id": "chat-69e0148a09344875a1cfff1919f3aa46", "object": "chat.completion", "created": 1731544970, "model": "meta/llama-3.1-8b-instruct", "choices": [ { "index": 0, "message": { "role": "assistant", "content": "Spain is a wonderful destination! With 4 days, you'll have a great" }, "logprobs": null, "finish_reason": "length", "stop_reason": null } ], "usage": { "prompt_tokens": 43, "total_tokens": 59, "completion_tokens": 16 } }