重要提示
您正在查看 NeMo 2.0 文档。此版本引入了对 API 和新库 NeMo Run 的重大更改。我们目前正在将 NeMo 1.0 中的所有功能移植到 2.0。有关先前版本或 2.0 中尚不可用的功能的文档,请参阅 NeMo 24.07 文档。
向 NVIDIA Triton 服务器发送 NeMo LLM 查询#
在使用 TensorRT-LLM、vLLM 和框架内部部分提供的脚本启动服务后,该服务将处于待机模式,准备接收传入的请求。有多种方法可用于向此服务发送查询。
使用查询脚本:在当前运行的容器中执行查询脚本。
PyTriton:使用 PyTriton 直接发送请求。
HTTP 请求:使用各种工具或库发出 HTTP 请求。
使用脚本发送查询#
以下示例展示了如何在当前运行的容器中执行查询脚本。
要使用查询脚本,请运行以下命令
python scripts/deploy/nlp/query.py --url "http://127.0.0.1:8000" --model_name nemotron --prompt "What is the capital of United States?"
根据您的服务器和服务模型名称更改 url 和
model_name
。脚本中的代码也可以用作客户端代码的基础。如果存在提示嵌入表,请运行以下命令发送查询
python scripts/deploy/nlp/query.py --url "http://127.0.0.1:8000" --model_name nemotron --prompt "What is the capital of United States?" --task_id "task 1"
以下参数在
deploy_triton.py
脚本中定义--url
:Triton 服务器的 url。默认值=”0.0.0.0”。--model_name
:要查询的 triton 模型名称。--prompt
:用户提示。--max_output_len
:最大输出令牌长度。默认值=128。--top_k
:在每一步仅考虑前 N 个最有可能的令牌。--top_p
:确定用于在生成的响应中对下一个令牌进行采样的累积概率分布。控制输出的多样性。--temperature
:控制生成输出的随机性。较高的值(例如 1.0)会导致生成的文本具有更高的随机性和多样性,较低的值(例如 0.2)会产生更集中和确定性的响应。--task_id
:如果启用 ptuning,则为任务 ID。
使用 NeMo API 发送查询#
NeMo 框架提供 NemoQueryLLM API,为了方便起见,可以向 Triton 服务器发送查询。这些 API 只能从 NeMo 框架容器访问。
要使用 NeMo API 运行请求示例,请运行以下命令
from nemo.deploy.nlp import NemoQueryLLM nq = NemoQueryLLM(url="localhost:8000", model_name="nemotron") output = nq.query_llm(prompts=["What is the capital of United States?"], max_output_len=10, top_k=1, top_p=0.0, temperature=1.0) print(output)
根据您的服务器和服务模型名称更改 url 和
model_name
。有关详细信息,请查看 NeMoQuery 文档字符串。如果存在提示嵌入表,请运行以下命令发送查询
output = nq.query_llm(prompts=["What is the capital of United States?"], max_output_len=10, top_k=1, top_p=0.0, temperature=1.0, task_id="0")