返回 文章 apply CMS 文章

使用TensorRT Edge-LLM在DGX Spark上快速运行边缘AI模型

只需几条命令,即可在DGX Spark上运行和测试边缘AI模型。

边缘AITensorRTDGX SparkLLM推理
成长分 / 100 73 综合收获、行动、留存与影响

使用TensorRT Edge-LLM在DGX Spark上快速运行边缘AI模型
为什么值得读了解如何在边缘设备上快速部署大语言模型,无需复杂配置。

学习使用TensorRT Edge-LLM和trtedge CLI进行模型推理和API服务。

关键洞察
  1. TensorRT Edge-LLM提供轻量级C++推理运行时,专为嵌入式工作负载设计。
  2. trtedge CLI可自动下载模型并构建优化的TensorRT引擎。
  3. 通过本地OpenAI兼容API服务模型,便于应用原型开发。
转成行动

深入阅读

正文与原文对照

原文保真覆盖:全文原文字符:8384

随着开发者构建新一代智能体在边缘端执行任务,AI 正在从数据中心向外扩展:监控驾驶员注意力与座舱状况、帮助机器人理解周围环境并规划任务,以及在生产线上协调机器集群。这些物理 AI 应用依赖于能够在严格的内存、功耗和延迟预算内进行感知、推理和行动的模型。但要让模型准备好运行,可能需要大量的环境配置工作。

NVIDIA DGX Spark 现已提供 64GB 配置,为嵌入式开发者提供了一个用于原型设计、微调和测试模型与智能体的平台。NVIDIA TensorRT Edge-LLM 提供了一个专为嵌入式工作负载设计的轻量级 C++ 推理运行时,将相同的推理框架带到 Spark 上的开发以及 NVIDIA Jetson Thor、NVIDIA DRIVE AGX Thor 和 NVIDIA IGX Thor 等平台上的部署中。

只需几条命令,即可通过 trtedge 命令行界面(CLI)开始使用。它会下载你选定的模型,并构建针对 Spark 上推理优化的 TensorRT 引擎。

在本教程中,你将使用 TensorRT Edge-LLM 在 Spark 上运行 NVIDIA Nemotron-3.5 Lightning,这是一个纯文本模型。你将在终端中测试提示词,并通过 API 提供模型服务以进行应用原型设计。你还将启用 DSpark 投机解码来加速生成。

前提条件:设置开发环境

开始之前,你需要一台搭载受支持 NVIDIA 软件栈的 DGX Spark、NVIDIA CUDA 13、10.x 系列中 TensorRT 10.16.1.11 或更新版本,以及 Python 3.10 至 3.12。以下示例已使用 TensorRT Edge-LLM 0.11.1 和 TensorRT 10.16.1.11 进行测试。

在 DGX Spark 上打开终端,创建并激活虚拟环境,然后安装 TensorRT Edge-LLM:

python3 -m venv --system-site-packages .venv-edgellm
source .venv-edgellm/bin/activate
python -m pip install --upgrade pip
python -m pip install "tensorrt-edgellm[server]==0.11.1"

注意:虚拟环境会将新安装的包隔离开来,同时允许访问所有系统 Python 包,包括 TensorRT。

检查 TensorRT 版本,并确认 TensorRT Edge-LLM 运行时可以加载:

python -c "import tensorrt as trt; v = tuple(map(int, trt.__version__.split('.'))); assert (10, 16, 1, 11) <= v < (11,), f'TensorRT >=10.16.1.11 and <11 required; found {trt.__version__}'; from tensorrt_edgellm import runtime; runtime.load()"

注意:如果兼容的系统 TensorRT 绑定不可用,请按照NVIDIA TensorRT pip 安装说明在已激活的环境中安装兼容的 TensorRT 10.x 版本,然后重新运行验证命令。

在虚拟环境仍处于激活状态时,启动与 Nemotron-3.5 Lightning 的对话:

trtedge chat nvidia/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-NVFP4

首次启动时,请等待模型下载(约 21GB)和引擎构建完成。文件默认存储在 ~/.cache/tensorrt-edgellm 中,因此请为模型和引擎预留空间。后续启动将复用匹配的缓存引擎。

出现聊天提示符后,输入:

Convert 25°C to Fahrenheit. Answer in one sentence.

示例响应:

25°C is equal to 77°F.

继续提出后续问题以进行对话,或输入 /exit 结束会话。

提供模型服务

在 Spark 上通过本地 OpenAI 兼容 API 提供模型服务,用于应用开发和测试。

在虚拟环境处于激活状态时,启动服务器:

trtedge serve nvidia/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-NVFP4 \
  --host 127.0.0.1 \
  --port 8000

服务器会为此配置构建或复用引擎。启动完成后,在 DGX Spark 上打开第二个终端,检查其是否就绪:

curl -fsS http://127.0.0.1:8000/health/ready

包含 "status":"ready" 的响应确认服务器已就绪。向聊天 completions 端点发送你的第一个提示词:

curl -fsS -N http://127.0.0.1:8000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
  "model": "nvidia/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-NVFP4",
  "messages": [
    {
      "role": "user",
      "content": "Convert 25°C to Fahrenheit. Answer in one sentence."
    }
  ],
  "stream": true,
  "temperature": 0,
  "max_tokens": 128
}'

响应以 JSON 事件流的形式返回。保持服务器运行以处理更多请求,或在服务器终端中按 Ctrl+C 停止它。

可选:启用投机解码

你可以使用 DSpark 投机解码来加速生成,它使用草稿模型提出多个 token,供主模型在单次前向中验证。要启用它并使用三个草稿 token,请在服务器终端中按 Ctrl+C,然后以启用 DSpark 的方式重启服务器:

trtedge serve nvidia/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-NVFP4 \
  --host 127.0.0.1 \
  --port 8000 \
  --speculative-config '{
    "method": "dspark",   
    "model": "nvidia/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-NVFP4-DSpark",
    "num_speculative_tokens": 3
  }'

服务器就绪后,向聊天 completions 端点发送另一个提示词,以尝试启用 DSpark 的生成。

你可以尝试调整 num_speculative_tokens 和其他设置,以针对你的工作负载调优生成速度。请参阅投机解码文档以了解更多信息。

DGX Spark 64GB 上的性能

TensorRT Edge-LLM 在 DGX Spark 64GB 上配合 NVIDIA Nemotron-3.5 Lightning 可实现低响应延迟和快速 token 生成。

下表报告了启用和不启用 DSpark 投机解码时的首 token 时间(TTFT)和生成速度。

表 1. Nemotron-3.5 Lightning 在 DGX Spark 64GB 上启用和不启用 DSpark 投机解码时的性能。

解码 工作负载 中位 TTFT(ms) 平均生成速度(tokens/s)
DSpark 关闭 SpeedBench 1K 201.0 73.3
DSpark 关闭 SpeedBench 2K 329.5 72.8
DSpark 关闭 HumanEval 提示词 98.1 73.4
DSpark 开启 SpeedBench 1K 203.0 108.5
DSpark 开启 SpeedBench 2K 331.6 105.3
DSpark 开启 HumanEval 提示词 98.7 126.9

生成速度是每个请求的平均 token 生成速率,不包括首 token 时间。DSpark 使用三个草稿 token。启用 DSpark 推理期间的系统总内存峰值使用量为 27.9GB,包括操作系统。

在运行 DGX OS 7.6.0(Ubuntu 24.04.4 LTS)的 DGX Spark 64GB 上测量,使用 NVFP4 并启用思考功能,批大小为 1,一个并发流式请求,输出限制为 128 个 token。SpeedBench 1K 的平均输入长度为 1,153 个 token,SpeedBench 2K 为 2,247 个,HumanEval 为 139 个。

后续步骤

尝试受支持模型列表中的另一个模型,并在 Spark 上继续开发你的应用。可选模型包括可解读图像和视频的视觉语言模型,以及语音识别和文本转语音模型。

浏览 TensorRT Edge-LLM 文档,了解目标嵌入式平台上特定模型的工作流程和要求。

并访问 Nemotron 开发者页面获取入门资源。在 Hugging Face 和 build.nvidia.com 上的 Blueprints 中探索开放的 Nemotron 模型和数据集。