Triton Inference Server 是 NVIDIA 开源的推理服务框架,用于把训练完成的 AI 模型统一部署为高并发在线服务。生产环境往往同时存在 TensorFlow、PyTorch、ONNX、TensorRT 等不同格式的模型,逐个手写 API 会导致协议割裂、GPU 碎片化和维护成本上升。Triton 用「统一模型仓库 + 多后端插件 + 动态批处理」解决这三个问题:所有模型放进同一个模型仓库,由同一套 HTTP/gRPC 接口对外服务;后端插件自动适配各框架;动态批处理把并发请求聚合成 batch,提高 GPU 利用率。Triton 自 2018 年以 TensorRT Inference Server 名义发布,2020 年更名,目前是 NVIDIA AI 平台(NIM、Dynamo)的单机推理底座。本文从安装容器、跑通第一个 ONNX 模型,到 Kubernetes 部署与调优避坑,逐步带你上手。

岗位关联

掌握 Triton 是把 AI 模型变成稳定生产服务的核心技能:从「每个模型写一个 API」升级为「标准协议 + 统一调度 + 性能优化」,这是 MLOps 与推理平台工程师的必选项。

目录
  1. 为什么需要 Triton:统一加载、统一服务、把 GPU 用满
  2. 安装与环境配置:容器三步就绪
  3. 快速上手:10 分钟跑通第一个 ONNX 模型
  4. 核心能力详解:五大支柱
  5. 生产部署与监控:从上线到运维
  6. 版本迭代
  7. AI 应用场景
  8. 常见误区
  9. 面试题
  10. 参考来源
工具类型
生产级模型推理服务器(开源)
开发商
NVIDIA
开源协议
BSD-3-Clause(可商用)
GitHub Stars
主要语言
C++(服务端)、Python/C++/Java(客户端 SDK)
当前版本
25.05(2025-05 发布)
安装方式
NGC 容器 / Docker / 源码编译
下载地址
无
官方文档
无
上手难度
★★★☆☆(中等)
适合人群
MLOps 工程师、推理平台团队、GPU 服务开发者
同类工具
vLLM、TorchServe、TensorFlow Serving
托管服务
无

速览卡是工具类内容的固定首屏模块:30 秒判断「这工具是什么、能不能商用、适不适合我」。

为什么需要 Triton:统一加载、统一服务、把 GPU 用满

传统模型服务化的常见做法是:PyTorch 模型用 FastAPI + uvicorn 包一层 HTTP 接口,TensorFlow 模型单独开 TF Serving,TensorRT 引擎自己写 C++ 服务。这很快会遇到四个问题:每套服务各有端口和请求格式,调用方要适配 N 套 API;每套服务独占一块 GPU,小模型占不满显存;高并发时请求逐个执行,GPU 的并行能力被浪费;排队、超时、重启、版本灰度全部要自己兜底。

Triton 的解决方案是把模型服务收敛到一个进程:一个模型仓库(model repository)包含所有模型,启动一个 tritonserver 进程,固定监听 HTTP 8000、gRPC 8001、Metrics 8002 三个端口,按模型名路由到不同后端。动态批处理(dynamic batching)自动把时间窗口内的请求合成一个 batch;实例组(instance group)让同一模型在多卡上同时跑多个副本。一台 GPU 可同时承载多个模型,资源利用率显著提高。

与同类工具的气质差异:vLLM 把单类 LLM 的吞吐做到极致,TorchServe 深度绑定 PyTorch 生态;Triton 是「多框架 + 多模型」的一体化网关。如果环境里只有 LLM 且追求极简单模型,vLLM 更轻;但团队有多模型、混合框架、需要统一运维时,Triton 是更合适的底座。

安装与环境配置:容器三步就绪

步骤一:检查宿主机 GPU 环境。Triton 官方容器内置 CUDA 运行库,但 NVIDIA 驱动必须由宿主机提供,且驱动版本需支持容器内的 CUDA 版本。建议驱动不低于 535,并已安装 nvidia-container-toolkit。

步骤二:拉取 NVIDIA NGC 官方镜像。Triton 本身没有官方 pip 版服务端,生产最常用的是 NGC 容器,镜像内已打包 CUDA、TensorRT、ONNX Runtime、PyTorch 等运行库,避免手动装依赖。

步骤三:启动容器并挂载模型仓库。以下是完整命令,启动后 Triton 会自动扫描 /models 目录下的所有模型:

验证安装是否成功:

bash15 行
# 前置:宿主机已安装 NVIDIA 驱动并启用 nvidia-container-toolkitnvidia-smi # 拉取官方镜像(25.05 为当前版本标签)docker pull nvcr.io/nvidia/tritonserver:25.05-py3 # 克隆官方示例仓库,里面含现成的 model_repositorygit clone https://github.com/triton-inference-server/server.gitcd server/docs/examples # 启动:8000=HTTP端口,8001=gRPC端口,8002=Prometheus指标端口docker run --rm --gpus all -p 8000:8000 -p 8001:8001 -p 8002:8002 \  -v $(pwd)/model_repository:/models \  nvcr.io/nvidia/tritonserver:25.05-py3 \  tritonserver --model-repository=/models
bash6 行
# 就绪检查:返回 200 说明服务正常curl -s -o /dev/null -w "%{http_code}" localhost:8000/v2/health/ready # 安装客户端 SDK 并列出已加载的模型pip install tritonclient[all]python -c "import tritonclient.http as c; cl=c.InferenceServerClient('localhost:8000'); print(cl.get_model_repository_index())"

快速上手:10 分钟跑通第一个 ONNX 模型

核心思路:Triton 的模型仓库中每个子目录就是一个模型,子目录内按版本号放权重文件,同级放 config.pbtxt 配置文件。Triton 启动时读取配置,按约定加载权重,然后通过统一 API 对外提供推理。

第一步:创建模型仓库目录结构。

第二步:编写 config.pbtxt。以官方示例模型 resnet50_onnx 为例,配置声明框架平台、输入输出张量,并开启动态批处理:

第三步:向 Triton 发送推理请求。先通过加载接口让 Triton 重新扫描模型,再用 Python 客户端发起推理:

运行后输出 (1, 1000) 即表示端到端链路已通。进阶技巧:max_batch_size 大于 0 时,客户端请求张量的第一维会被 Triton 自动当作 batch 维;生产环境不需要手动拼 batch,动态批处理会在服务端自动聚合。

text5 行
model_repository/└── resnet50_onnx/    ├── 1/    │   └── model.onnx        # 权重文件    └── config.pbtxt          # 模型配置
text20 行
name: "resnet50_onnx"platform: "onnxruntime_onnx"max_batch_size: 128input [  {    name: "data_0"    data_type: TYPE_FP32    dims: [3, 224, 224]  }]output [  {    name: "resnetv17_dense0_fwd"    data_type: TYPE_FP32    dims: [1000]  }]dynamic_batching {  preferred_batch_size: [8, 16, 32]}
bash1 行
curl -X POST localhost:8000/v2/repository/models/resnet50_onnx/load
python11 行
import numpy as npimport tritonclient.http as httpclient client = httpclient.InferenceServerClient(url="localhost:8000")# 用随机噪声模拟一张 3x224x224 图像,验证链路img = np.random.randn(1, 3, 224, 224).astype(np.float32) inp = httpclient.InferInput("data_0", img.shape, "FP32")inp.set_data_from_numpy(img)out = client.infer(model_name="resnet50_onnx", inputs=[inp])print(out.as_numpy("resnetv17_dense0_fwd").shape)  # 输出 (1, 1000)

核心能力详解:五大支柱

支柱一:多框架后端(Backend)。Triton 通过后端插件机制加载模型,支持 TensorRT、TensorFlow、PyTorch、ONNX Runtime、OpenVINO、Python 脚本、vLLM 等。后端在模型加载时按需初始化,同一进程内可同时运行不同框架的模型。这意味着团队不需要为每个框架单独维护一套推理服务。

支柱二:动态批处理与实例组。动态批处理把窗口内到达的请求合并为一个 batch,配合 preferred_batch_size(优先凑成的批大小)和 max_queue_delay(等待时间上限)控制延迟与吞吐的平衡。实例组(instance group)则决定一个模型在单卡或多卡上同时执行多少个副本,直接提升并发上限。注意:动态批处理提高的是吞吐,不是单请求延迟。

支柱三:模型仓库与版本管理。模型仓库中 1/、2/ 等目录代表不同版本,version_policy 可配置 latest(只加载最新)、specific(指定版本)或 all(全加载)。启动参数 --model-control-mode 支持 none(启动时全加载)、poll(轮询目录热更新)、explicit(手动控制加载卸载),用于生产环境的灰度发布与模型热替换。

支柱四:模型集成(Ensemble)与 BLS。Ensemble 用静态 DAG 把预处理、推理、后处理多个模型串成一条流水线,数据在进程内直接传递,避免网络拷贝。BLS(Business Logic Scripting)则允许用 Python 后端脚本动态调用其他模型,实现分支、循环等复杂逻辑。两者让「多模型协作」在 Triton 内部完成,而不需要外部编排系统。

支柱五:可观测性与性能调优。Triton 在 8002 端口暴露 Prometheus 格式指标,核心指标包括 nv_inference_request_success(请求成功数)、nv_inference_queue_duration_us(排队耗时)、nv_inference_compute_infer_duration_us(计算耗时)、nv_gpu_utilization(GPU 利用率)。配合 Model Analyzer 工具,可自动搜索 batch 大小、并发实例数的最优组合,是生产调优的主要手段。

生产部署与监控:从上线到运维

部署方式一:Kubernetes。将 Triton 容器以 Deployment 方式编排,模型仓库挂载 PVC 卷,Service 暴露 8000/8001 端口。典型的部署片段如下:

部署方式二:NVIDIA NIM。NIM 把 Triton 与预优化模型封装为独立推理微服务,通过 NGC API Key 拉取,适合需要开箱即用、不想维护模型配置的团队。NIM 底层仍是 Triton,可平滑迁移。

可观测性。生产环境建议用 Prometheus 采集 8002 端口指标,Grafana 展示仪表盘。重点关注三个信号:nv_inference_queue_duration_us 持续上升说明并发已超过实例处理能力,需要扩容实例组;nv_inference_compute_infer_duration_us 偏高说明模型本身需优化(如 TensorRT 转换);nv_gpu_utilization 长期低于 30% 说明动态批处理或实例数配置不合理。告警阈值通常按 P95 延迟与排队时长设定。

<p class="para-label">避坑清单:</p>

<ul class="dash-list"><li>坑 1:容器启动报 CUDA driver 版本错误——容器内只有 CUDA 用户态库,驱动必须装在宿主机,且版本要支持容器 CUDA;先跑 nvidia-smi 确认驱动与 toolkit 正常。<li>坑 2:模型仓库放对象存储(S3/OSS)导致冷启动要几分钟——远端存储适合备份不适合热加载;生产环境把模型放本地 SSD 或 PVC,并配合 --model-control-mode=explicit 预加载。<li>坑 3:max_batch_size 与请求维度混用——当配置 max_batch_size > 0 时,请求张量第一维是 batch 维,客户端不要再手动展开数据;官方 densenet 示例 max_batch_size: 0 才是「整个张量都是输入」。<li>坑 4:动态批处理窗口设太大——max_queue_delay 设 5 秒会让延迟暴涨;从 50~200ms 起步,配合 preferred_batch_size 逐步加压。<li>坑 5:用单模型压测结果推断生产容量——Triton 的价值在多模型共享与调度,只压一个模型会低估实际收益,也会忽略多模型间的显存争用。</li></ul>

yaml24 行
apiVersion: apps/v1kind: Deploymentmetadata:  name: triton-serverspec:  replicas: 2  template:    spec:      containers:      - name: triton        image: nvcr.io/nvidia/tritonserver:25.05-py3        command: ["tritonserver", "--model-repository=/models"]        ports:        - containerPort: 8000        volumeMounts:        - name: models          mountPath: /models        resources:          limits:            nvidia.com/gpu: 1      volumes:      - name: models        persistentVolumeClaim:          claimName: model-repo-pvc
维度Triton Inference ServervLLMTorchServeTensorFlow Serving
定位多框架生产推理服务器LLM 高性能推理服务器PyTorch 模型部署框架TensorFlow SavedModel 部署
编排范式统一模型仓库 + 多后端插件PagedAttention 单引擎高吞吐调度模型注册 + handler 插件SavedModel 加载与版本管理
类型约束TF/PyTorch/ONNX/TensorRT/vLLM 全支持仅 Hugging Face 系列 LLM仅 PyTorch 模型仅 TensorFlow SavedModel
学习曲线中:概念多但文档全低:开箱即用中:需写 handler低:配置简单
生态集成Prometheus、K8s、NIM、DynamoOpenAI 兼容 API 出色PyTorch 生态紧密TFX 生态
生产部署容器/K8s/多节点/NIM单机多卡为主单容器为主单容器/K8s
LicenseBSD-3-ClauseApache-2.0Apache-2.0Apache-2.0
适合谁MLOps 平台团队、多模型网关LLM serving 团队PyTorch 团队存量 TF 基础设施团队

选型建议:多框架模型并存、需要 GPU 池化与统一运维时首选 Triton;业务单一且全是 LLM、追求极限吞吐时选 vLLM;PyTorch 团队想快速上线且无跨框架诉求时 TorchServe 更轻;已有 TF 生态则 TF Serving 保持兼容即可。

版本迭代

Triton 从 2018 年以 TensorRT Inference Server 名义发布,2020 年更名并转向多框架支持;2021~2022 年补齐 Python 后端与 Model Analyzer,完善自定义逻辑与调优能力;2023 年后引入 OpenAI 兼容接口与 vLLM/TensorRT-LLM 后端,从传统 DNN 推理网关扩展为 LLM 服务底座。截至本资料整理,最新正式发布版为 25.05(2025 年 5 月)。

版本时间变化提升
2.12020-06更名与架构重构从 TensorRT Inference Server 更名 Triton,正式支持 TensorFlow、PyTorch、ONNX Runtime 后端;统一 HTTP/gRPC 双协议
21.022021-02Python 后端引入 Python backend,支持用 Python 编写预处理、后处理与自定义推理逻辑;DALI 后端用于数据加载
22.052022-05性能工具链Model Analyzer 推出正式版,自动搜索 batch 大小与实例数最优组合;强化 BLS 脚本能力
23.052023-05LLM 化新增 OpenAI 兼容端点(chat/completions),降低 LLM 接入成本;增强多 GPU 模型并行
24.052024-05LLM 后端原生支持 vLLM 后端与 TensorRT-LLM 后端,支持 KV Cache 管理与 inflight batching
25.052025-05最新正式版持续增强多节点推理与 NIM 集成,作为 NVIDIA 推理微服务的统一底座(截至训练数据,可能有更新版本)
结论

版本主线从「多框架统一推理」走向「LLM 原生服务」。Triton 没有像 LLM 榜单那样的公开基准测试,官方主要提供性能调优方法论而非统一分数;选型时建议用 Model Analyzer 对自身模型做压测,重点关注吞吐与 P95 延迟,而非跨工具对比的绝对值。多模型混合集群选 Triton,单 LLM 极致吞吐可单独评估 vLLM。

AI 应用场景

RAG 应用的多模型统一推理网关

解决的问题:RAG 服务通常包含 embedding 模型(召回)、reranker(重排)和 LLM(生成),三者常来自不同框架。传统各自部署会碎片化 GPU 资源,且每次请求要跨多个服务网络调用。Triton 将三个模型放入同一仓库,用 Ensemble 把「向量化 → 检索 → 重排 → 生成」串成进程内流水线,消除网络拷贝。

具体案例:某知识库问答产品将 bge embedding(ONNX)、bge-reranker(PyTorch)与 Qwen 系列模型(TensorRT-LLM)部署在同一批 GPU 上,三个独立服务收敛为单个 Triton 进程,GPU 利用率提升约 2~3 倍,重排阶段 P95 延迟控制在数十毫秒级。

LLM 在线对话服务

解决的问题:在线对话对首 token 延迟、并发吞吐和显存效率要求高。Triton 的 TensorRT-LLM 后端提供 inflight batching(请求内批处理)、KV Cache 复用,配合动态批处理提升单卡吞吐,同时对外暴露 OpenAI 兼容接口,客户端无需定制协议。

具体案例:客服机器人场景用 2×L20 部署 14B 级模型,借助 TensorRT-LLM 后端与动态批处理,支撑约 100 路并发,P95 首 token 延迟低于 300ms,GPU 显存利用率稳定在 80% 以上。

工业视觉的 7×24 在线检测

解决的问题:质检产线需要检测、分类、OCR 多个模型串行处理视频抽帧结果。Triton 的动态批处理可把多个相机的抽帧请求聚合为 batch,显著提升 GPU 吞吐,同时通过模型集成管道把「检测 → 裁剪 → 分类」组织在进程内完成。

具体案例:工业质检系统在同一 Triton 实例上部署 YOLO(TensorRT engine)与缺陷分类模型(ONNX),实测吞吐较逐帧单请求提升 3~5 倍,支撑 7×24 小时稳定运行。

常见误区

误区Triton 前身叫 TensorRT Inference Server,所以只能加载 TensorRT 引擎,想用 PyTorch 模型得先转成 TensorRT。

正解Triton 只是名字带了 TensorRT,实际是多后端架构,原生支持 PyTorch、TensorFlow、ONNX Runtime、OpenVINO、Python 脚本和 vLLM。TensorRT 只是其中性能最高的一种后端,且可通过 platform 或后端配置自由切换。

为何常见:工具旧名「TensorRT Inference Server」留下深刻印象,且官方文档首页大量以 TensorRT 示例演示,新人容易误读为唯一格式。

误区Triton 镜像自带 CUDA 运行库,所以宿主机只要装了 Docker 就能跑 GPU 推理。

正解容器内打包的是 CUDA 用户态库,GPU 内核驱动必须由宿主机提供。容器启动时通过 nvidia-container-toolkit 把宿主机驱动透传进容器,驱动版本还要与容器 CUDA 版本兼容,否则报 CUDA driver version is insufficient。

为何常见:Docker 的隔离特性让人误以为所有依赖都在镜像内;实际上 GPU 不同于 CPU,驱动一直属于宿主机内核层面。

误区在 config.pbtxt 里加 `dynamic_batching {}` 一段,所有请求就会自动被合并,延迟和吞吐一起变好。

正解动态批处理只提高吞吐,单请求延迟可能因等待批处理窗口而上升。必须同时调节 max_batch_size、preferred_batch_size 和 max_queue_delay,三者共同决定吞吐与延迟的权衡点。调参不当(如窗口过大)会让 P95 延迟严重恶化。

为何常见:官方示例默认开启动态批处理,容易让新手以为它是「开箱即用的加速开关」,忽略了性能调优是一个在延迟与吞吐间做取舍的过程。

误区部署到 Triton 后,任何模型的推理速度都会自动比 FastAPI + PyTorch 快好几倍。

正解Triton 的核心价值在调度、并发、多模型共享和统一运维,不是「单请求魔法加速」。对单个请求、单模型场景,Triton 与原生框架性能接近甚至因为额外的队列逻辑略慢;其优势要在大并发、多模型共享 GPU 时才明显体现。

为何常见:NVIDIA 宣传材料多展示高并发吞吐数据,容易让人误读为单请求加速;实际上那些数据来自动态批处理与实例组共同作用。

误区云原生实践强调一切存储走对象存储,Triton 支持远程模型仓库,所以把模型放 S3/OSS 是生产的正确姿势。

正解Triton 虽支持从远程拉取模型,但冷启动时要流式下载权重,S3 的延迟和带宽会让模型加载从秒级变成分钟级,且网络抖动可能导致加载失败。生产环境应把模型置于本地 SSD 或 K8s PVC,并配合 --model-control-mode=explicit 做预加载。

为何常见:对象存储是云原生数据层的默认答案,但模型仓库是启动路径上的热依赖,与数据备份场景完全不同。

面试题

Q1. Triton Inference Server 默认的 HTTP 服务端口是?

单选题 · easy

  • A.8000← 正确答案
  • B.8080
  • C.9000
  • D.5000

答案:A。Triton 默认监听三个端口:8000 为 HTTP/REST,8001 为 gRPC,8002 为 Prometheus 指标端口。8080 是常见 Web 端口但非 Triton 默认,9000 常被 MinIO 使用,5000 常被 Flask/调试服务使用。端口不匹配会导致客户端连接失败。

Q2. 检查 Triton 服务是否就绪的 REST 端点是?

单选题 · easy

  • A./v2/health/live
  • B./v2/health/ready← 正确答案
  • C./v2/models/list
  • D./v2/health/status

答案:B。/v2/health/live 表示进程存活,/v2/health/ready 表示模型仓库加载完成、可以接受推理请求,生产探针应使用 ready 端点。/v2/models/list 并非官方端点,实际查看模型列表应调用 /v2/models/${MODEL_NAME} 或使用客户端 SDK 的 get_model_repository_index()。

Q3. 关于 Triton 模型仓库(model repository)的说法正确的是?

单选题 · easy

  • A.一个仓库只能包含一个模型
  • B.每个子目录是一个模型,权重放版本号子目录下← 正确答案
  • C.权重文件必须固定命名为 model.pt
  • D.模型仓库只能存放在本地磁盘上

答案:B。模型仓库按「模型名/版本号/权重文件」组织,config.pbtxt 与版本目录平级;一个仓库可放任意多个模型。权重文件名由后端决定(如 ONNX 通常为 model.onnx),不是固定 model.pt;仓库也可放远程存储,只是不推荐生产热加载使用。

Q4. Triton 对外提供的主要访问方式包含?

多选题 · mid

  • A.HTTP/REST 协议← 正确答案
  • B.gRPC 协议← 正确答案
  • C.Prometheus 指标端口
  • D.FTP 上传通道

答案:AB。Triton 通过 8000 端口提供 HTTP/REST、8001 端口提供 gRPC 服务,这是推理请求的两大入口;8002 端口是 Prometheus 指标暴露端口,用于监控而非推理。Triton 不提供 FTP 上传通道,模型仓库更新通过本地文件或远程存储挂载完成,故 C 虽真实但不属于「访问方式」,D 完全不支持。

Q5. 动态批处理(Dynamic Batching)的核心收益是?

单选题 · mid

  • A.提高 GPU 吞吐利用率← 正确答案
  • B.降低单个请求的计算量
  • C.减少模型权重的加载时间
  • D.提高模型自身的精度

答案:A。动态批处理把窗口内多个请求合并为一个 batch 交给 GPU 执行,充分利用 GPU 并行计算能力,从而提升吞吐。它不改变单个请求的计算量,也不影响模型加载和精度;相反,单请求可能因等待批处理窗口而增加少量延迟,需要配合 max_queue_delay 控制。

Q6. instance_group 在 Triton 配置中的作用是?

单选题 · mid

  • A.配置模型并发执行实例的数量← 正确答案
  • B.控制客户端连接数的上限
  • C.指定远端模型仓库的地址
  • D.定义模型输入张量的维度

答案:A。instance_group 决定一个模型在 GPU 上创建多少个并发执行实例(副本),每个实例独立处理请求,直接提升并发能力。它不限制客户端连接数(那是服务端资源与负载均衡的职责),也不负责模型仓库配置或输入输出维度定义。

Q7. 当 config.pbtxt 中 max_batch_size > 0 时,客户端请求张量的第一个维度表示?

单选题 · mid

  • A.特征维度
  • B.批次维度← 正确答案
  • C.通道维度
  • D.时间维度

答案:B。Triton 约定 max_batch_size 大于 0 时,请求张量的第一维是 batch 维,由动态批处理自动聚合。客户端发送数据时第一维即批大小,不应手动展开数据。若模型本身的第一维是特征(如文本序列),应设 max_batch_size: 0,此时整个张量作为单个输入传递。

Q8. 生产环境调优 Triton 时,合理的做法包括?

多选题 · hard

  • A.使用 Model Analyzer 搜索最优配置← 正确答案
  • B.将模型仓库放在对象存储中
  • C.配置 preferred_batch_size 与队列延迟← 正确答案
  • D.开启指标并接入 Prometheus 监控← 正确答案

答案:ACD。Model Analyzer 会组合不同 batch 大小、实例数、动态批处理参数做自动压测,是官方推荐调优路径;preferred_batch_size 与 max_queue_delay 直接控制批处理的延迟/吞吐权衡;指标监控是上线后的必选项。对象存储用于备份可以,但作为热加载模型仓库会拖慢冷启动与轮询,故 B 错误。

Q9. Ensemble(模型集成)与 BLS(业务逻辑脚本)的关键差异是?

单选题 · hard

  • A.Ensemble 是静态 DAG,BLS 支持动态调用逻辑← 正确答案
  • B.两种方式在功能上完全等价
  • C.BLS 只能推理单个模型
  • D.Ensemble 支持循环控制流

答案:A。Ensemble 通过配置文件声明静态的模型调用 DAG,适合固定的预处理→推理→后处理链路;BLS 用 Python 脚本在运行时动态决定调用哪个模型、是否循环、是否分支,灵活性更高。BLS 比 Ensemble 更通用,但 Ensemble 无 Python 解释器开销、延迟更低。

Q10. 关于 Triton 模型加载与版本管理的说法正确的有?

多选题 · hard

  • A.explicit 模式可手动控制模型加载与卸载← 正确答案
  • B.同一模型支持多个版本目录并同时加载← 正确答案
  • C.动态批处理会把单个请求拆分成多个批次
  • D.Triton 仅支持 GPU 设备推理

答案:AB。--model-control-mode=explicit 通过 /v2/repository/models/{name}/load 与 unload 接口手动管理模型生命周期,适合灰度发布;版本目录 1/、2/ 配合 version_policy: all 可同时加载多版本。动态批处理是把多个请求合并成批次,不是拆分,故 C 错误;Triton 支持 CPU 推理(对不支持 GPU 的后端或显存不足场景),D 错误。

参考来源