Triton Inference Server 25.01 版本发布#
Triton Inference Server 容器镜像,25.01 版本,可在 NGC 上获取,并在 GitHub 上开源。
Triton Inference Server 容器的内容#
Triton Inference Server Docker 镜像包含推理服务器可执行文件和相关的共享库,位于 /opt/tritonserver 中。
有关容器包含内容的完整列表,请参阅 深度学习框架支持矩阵。
该容器还包括以下内容
NVIDIA NCCL 2.25.1 (针对 NVIDIA NVLink® 优化)
OpenUCX 1.15.0
GDRCopy 2.4.1
NVIDIA HPC-X 2.21
OpenMPI 4.1.7
ONNX Runtime 1.20.1
Intel OpenVINO 2024.05.0
DCGM 3.3.6
vLLM 版本 0.6.3.1
驱动程序要求#
25.01 版本基于 CUDA 12.8.0.038,需要 NVIDIA 驱动程序 560 或更高版本。但是,如果您在数据中心 GPU 上运行(例如,T4 或任何其他数据中心 GPU),则可以使用 NVIDIA 驱动程序版本 470.57(或更高版本 R470)、525.85(或更高版本 R525)、535.86(或更高版本 R535)或 545.23(或更高版本 R545)。
CUDA 驱动程序的兼容性包仅支持特定的驱动程序。因此,用户应升级所有 R418、R440、R450、R460、R510、R520、R530、R545 和 R555 驱动程序,这些驱动程序与 CUDA 12.6 不向前兼容。有关受支持驱动程序的完整列表,请参阅 CUDA 应用程序兼容性 主题。有关更多信息,请参阅 CUDA 兼容性和升级。
GPU 要求#
25.01 版本支持 CUDA 计算能力 7.5 及更高版本。这对应于 NVIDIA Turing™、NVIDIA Ampere 架构、NVIDIA Hopper™、NVIDIA Ada Lovelace 和 NVIDIA Blackwell 架构系列中的 GPU。有关此计算能力对应的 GPU 列表,请参阅 CUDA GPU。有关其他支持详细信息,请参阅 深度学习框架支持矩阵。
主要特性和增强功能#
此 Inference Server 版本包括以下主要特性和增强功能。
从 25.01 版本开始,Triton Inference Server 支持 Blackwell GPU 架构。
修复了将字符串类型的关联 ID 传递给 python_backend 时的错误。添加了对关联 ID 值的类型检查。
vLLM 后端现在可以通过 ZMQ 与 vLLM 引擎通信,从而利用 vLLM v0.6 的性能改进。
GenAI-Perf 现在提供合成文本生成请求的确切输入序列长度。
GenAI-Perf 支持创建前缀池,以通过 –num-system-prompts 和 –system-prompt-length 模拟系统提示。
GenAI-Perf 通过在 OpenAI 前端返回错误或指标生成失败时返回更详细的错误信息,从而提高了错误可见性。
GenAI-Perf 在其指标中报告了 time-to-second-token 和请求计数。
GenAI-Perf 允许在其 “compare” 子命令中使用自定义分词器,以比较多个配置文件。
GenAI-Perf 原生支持 –request-count,用于发送特定数量的请求,以及 –header,用于随每个请求发送标头列表。
模型分析器功能已通过 “analyze” 子命令迁移到 GenAI-Perf,使该工具能够扫描并找到最佳模型配置。
GenAI-Perf 中修复了一个字节追加错误,从而为 Triton 提供了更准确的输出序列长度。
已知问题#
在 NVSwitch 系统上服务器关闭期间,可能会遇到与 DCGM 和 NSCQ 相关的段错误。此问题的可能解决方法是禁用 GPU 指标的收集 `tritonserver –allow-gpu-metrics false …`
启用指标后,vLLM 后端目前无法利用 vLLM v0.6 的性能改进。
请注意,25.01 容器中提供的 vllm 版本为 0.6.3.post1。由于 vllm 库版本存在一些问题,`vllm.__version__` 显示 `0.6.3`。
已知在使用 TensorRT (TRT) 后端在 Blackwell GPU 架构上使用 int8 数据类型进行 I/O 推理时,会发生不正确的结果。
当运行 Torch TRT 模型时,输出可能与在以前版本上运行同一模型不同。
当使用 TensorRT 模型时,如果禁用自动完成配置,并且模型配置中未提供用于无重格式张量的 is_non_linear_format_io:true ,则模型可能无法成功加载。
在解耦模式下使用 Python 模型时,用户需要确保 ResponseSender 在卸载模型之前超出范围或已正确清理,以保证卸载过程正确执行。
Python 模型暂时移除了重启支持。
当使用显式模型控制模式时,Triton Inference Server 与 vLLM 后端目前不支持运行张量并行度大于 1 且默认 “distributed_executor_backend” 设置的 vLLM 模型。在显式模式下尝试加载 vllm 模型 (tp > 1) 时,用户可能会在 `initialize` 步骤看到失败:`could not acquire lock for <_io.BufferedWriter name=’<stdout>’> at interpreter shutdown, possibly due to daemon threads`。对于默认模型控制模式,服务器关闭后,与 vllm 相关的子进程不会被杀死。相关 vllm 问题: vllm-project/vllm#6766 。在部署张量并行度 > 1 的 vllm 模型时,请在 model.json 中指定 distributed_executor_backend:ray 。
当加载具有文件覆盖的模型时,不支持多个模型配置文件。用户必须通过设置参数 config : <JSON> 而不是以下格式的自定义配置文件来提供模型配置: file:configs/<model-config-name>.pbtxt : <base64-encoded-file-content>。
TensorRT-LLM 后端 对 Triton 扩展和功能的支持有限。
TensorRT-LLM 后端可能会在服务器关闭时发生核心转储。这仅影响服务器关闭,不会影响推理。
已知 Java CAPI 存在间歇性段错误。
某些实现 malloc() 的系统可能不会立即将内存释放回操作系统,从而导致虚假的内存泄漏。可以通过使用不同的 malloc 实现来缓解这种情况。Tcmalloc 和 jemalloc 已安装在 Triton 容器中,可以通过 在 LD_PRELOAD 中指定库 来使用。NVIDIA 建议尝试 tcmalloc 和 jemalloc,以确定哪一个更适合您的用例。
自动完成可能会导致服务器启动时间增加。为了避免启动时间增加,用户可以提供完整的模型配置,并使用 –disable-auto-complete-config 启动服务器。
自动完成不支持 PyTorch 模型,因为模型中缺少元数据。它只能验证输入数量和输入名称是否与模型配置中指定的匹配。没有关于输出数量和数据类型的模型元数据。相关 PyTorch 错误:pytorch/pytorch#38273。
用于 ARM SBSA 的 Triton Client PIP 轮子在 PyPI 上不可用,pip 将为 Arm SBSA 安装不正确的 Jetson 版本的 Triton Client 库。正确的客户端轮子文件可以直接从 Arm SBSA SDK 镜像中拉取并手动安装。
PyTorch 中的跟踪模型在 GPU 上将 int8 张量值转换为 int32 时似乎会创建溢出。有关更多信息,请参阅 pytorch/pytorch#66930。
Triton 无法使用 启用 MIG 的 GPU 设备 检索 GPU 指标。
如果主机在裸机或容器中运行单独的 DCGM 代理,则 Triton 指标可能无法工作。
当云存储(AWS、GCS、AZURE)用作模型仓库且模型有多个版本时,Triton 会在临时目录中创建云模型文件夹的额外本地副本,该副本在服务器关闭时删除。
Python 后端对 Windows 的支持有限,目前不支持以下功能
GPU 张量
CPU 和 GPU 相关指标
自定义执行环境
模型加载/卸载 API