优化#

NeMo Retriever Text Reranking NIM (Text Reranking NIM) 自动利用模型和硬件特定的优化,旨在提高模型的性能。

NIM 使用 TensorRT 后端用于 Triton Inference Server,以优化跨多个NVIDIA GPU的常见模型的推理。如果正在使用的 SKU 不存在优化的引擎,则会使用 GPU 不相关的 ONNX 后端(使用 CUDA 执行提供程序)来代替。

NIM 包括多个优化配置文件,这些文件是根据每个 SKU 支持的浮点精度类型量身定制的。

自动配置文件选择#

Text Reranking NIM 旨在根据检测到的硬件,从兼容配置文件列表中自动选择最合适的配置文件。每个配置文件都包含不同的参数。这些参数会影响选择过程。下面概述了基于所涉及参数的选择过程

  • 兼容性检查:Text Reranking NIM 排除与检测到的配置(基于 GPU 数量和 GPU 型号)不兼容的配置文件。

  • 后端:这可以是 TensorRT 或 ONNX。首选优化的 TensorRT 配置文件。

  • 精度:首选较低精度的配置文件。例如,FP8 的配置文件优先于 FP16 的配置文件。

此选择在启动时记录。例如

MODEL PROFILES
- Compatible with system and runnable:
  - onnx                                (type=ONNX,precision=FP16)
  - NVIDIA-H100-80GB-HBM3_10.0.1_12_FP8 (type=TensorRT,precision=FP8,gpu=NVIDIA-H100-80GB-HBM3)
  - NVIDIA-H100-80GB-HBM3_10.0.1_12     (type=TensorRT,precision=FP16,gpu=NVIDIA-H100-80GB-HBM3)
Selected profile: NVIDIA-H100-80GB-HBM3_10.0.1_12_FP8
Profile metadata: type: TensorRT
Profile metadata: precision: FP8
Profile metadata: gpu: NVIDIA-H100-80GB-HBM3
Profile metadata: trt_version: 10.0.1
Profile metadata: cuda_major_version: 12

覆盖配置文件选择#

注意

要覆盖此行为,请使用 -e NIM_MODEL_PROFILE=<value> 设置特定的配置文件 ID。以下 list-model-profiles 命令列出了 IMG_NAME Text Reranking NIM 的可用配置文件

docker run --rm --runtime=nvidia --gpus=all $IMG_NAME list-model-profiles

MODEL PROFILES
- Compatible with system and runnable:
  - f6ecf987d3acacf363a4125195c7f84cd4110520157f9091702a3061e2fd69fa (h100-nvl-fp8-triton-tensorrt)
  - 58610f044b526218e323a350f3bc22d6fdaa775b3b634fc3b671ca29ba8848d6 (h100-pcie-fp8-triton-tensorrt)
  - 761a1460449bba9831b61bcc1e4e2ce93bfc66f5badecf6157009a0e0d18d934 (h100-hbm3-80gb-fp8-triton-tensorrt)
  ...

在前面的示例中,设置 -e NIM_MODEL_PROFILE="f6ecf987d3acacf363a4125195c7f84cd4110520157f9091702a3061e2fd69fa" 以运行 H100 NVL FP8 配置文件。

要在没有可用 GPU 的主机上运行 list-model-profiles,请将 -e NIM_CPU_ONLY=1 传递给 docker run 命令以设置 NIM_CPU_ONLY 环境变量。