模型推理服务AI 应用后端【免费下载链接】serverThe Triton Inference Server provides an optimized cloud and edge inferencing solution.项目地址https://gitcode.com/gh_mirrors/server117/server点击查看免费下载本文以 Triton Inference Server当前仓库版本TRITON_VERSION标记为 2.74.0dev为对象完整演示创建模型仓库 → 启动 Triton → 发送推理请求的全流程。读者将掌握基于预构建 Docker 镜像部署 Triton、用健康检查接口验证服务状态以及通过官方 SDK 镜像中的image_client完成图像分类推理的实战方法并理解模型仓库目录结构与config.pbtxt配置的核心要点。快速上手路径概览Triton Inference Server 为云端与边缘提供优化的推理解决方案。对刚接触 Triton 的用户而言最快速的路径是直接使用 NVIDIA GPU CloudNGC上预构建的 Docker 镜像而不是从源码自行构建构建方式见 customization_guide/build.md。本教程围绕以下三个步骤展开创建模型仓库Model Repository——组织好待服务模型的目录结构启动 Triton——用 Docker 运行服务并加载模型发送推理请求——通过客户端验证模型推理结果。创建模型仓库模型仓库是存放 Triton 需要服务的模型的目录通过--model-repository参数在启动时指定。仓库的目录布局要求如下详见 user_guide/model_repository.mdmodel-repository-path/ model-name/ [config.pbtxt] [output-labels-file ...] [configs]/ [custom-config-file ...] version/ model-definition-file version/ model-definition-file ... model-name/ ...其中每个model-name子目录对应一个模型config.pbtxt描述该模型的配置输入输出张量、数据类型、批次大小、标签文件等每个模型目录下必须至少有一个数字命名的版本子目录其中存放后端backend所需的模型定义文件。部分模型如 ONNX、TensorRT 等框架模型需要config.pbtxt另一些如部分 Python 模型可以由 Triton 自动生成配置。使用仓库自带的示例模型仓库仓库在 docs/examples/model_repository 目录中附带了一个示例模型仓库包含以下模型模型平台/后端说明densenet_onnxonnxruntime_onnxDenseNet-121 图像分类本教程推理示例使用inception_onnxonnxruntime_onnxInception V3 图像分类simpleonnxruntime_onnx两个 int32 输入/输出的加法示例simple_dyna_sequenceonnxruntime_onnx动态序列示例simple_identitypython字符串恒等映射示例simple_int8onnxruntime_onnxint8 量化示例simple_sequenceonnxruntime_onnx序列批处理示例simple_stringonnxruntime_onnx字符串输入输出示例这些模型目录中的部分模型定义文件如.onnx权重未随仓库提交需要在首次使用前通过仓库提供的脚本fetch_models.sh从公共模型库下载缺失文件$ cd docs/examples $ ./fetch_models.sh从脚本 docs/examples/fetch_models.sh 的源码可以看到它依次完成两类工作Inception V3下载 TensorFlow 冻结图用tf2onnx工具链tensorflow2.18.1、tf2onnx1.16.1、onnx1.16.1转换为 ONNX 模型输出到model_repository/inception_onnx/1/model.onnxDenseNet-121直接从 ONNX 官方模型库下载densenet-7.onnx输出到model_repository/densenet_onnx/1/model.onnx。脚本以set -ex执行任何一步失败都会立即中断便于排查问题。脚本还假定系统已安装 Python3、venv 与 pip3。解读示例模型的 config.pbtxt以教程中推理使用的densenet_onnx为例其 config.pbtxt 内容如下name: densenet_onnx platform: onnxruntime_onnx max_batch_size : 0 input [ { name: data_0 data_type: TYPE_FP32 format: FORMAT_NCHW dims: [ 3, 224, 224 ] reshape { shape: [ 1, 3, 224, 224 ] } } ] output [ { name: fc6_1 data_type: TYPE_FP32 dims: [ 1000 ] reshape { shape: [ 1, 1000, 1, 1 ] } label_filename: densenet_labels.txt } ]关键字段含义name模型名称客户端请求时使用platform指定运行时后端此处为 ONNX Runtimemax_batch_size最大批次大小为 0 表示不启用动态批处理输入已经包含 batch 维度input/output张量名称、数据类型TYPE_FP32、内存布局FORMAT_NCHW、维度dims以及需要时对模型原生形状的reshapelabel_filename输出标签文件推理结果会按标签行号映射为可读类别名称。作为对照示例仓库中 simple/config.pbtxt 展示了更典型的动态批处理配置max_batch_size: 8两个TYPE_INT32、维度[16]的输入与输出。而 simple_identity/config.pbtxt 则展示了 Python 后端模型backend: python的写法输入输出为可变长度字符串dims: [ -1 ]。启动 TritonTriton 针对 GPU 推理做了性能优化但也支持纯 CPU 环境两种情况使用同一个 Triton Docker 镜像。在带 GPU 的系统上运行使用上一步准备好的示例模型仓库启动 Triton。运行前需安装 NVIDIA Container Toolkit使 Docker 能识别 GPU。--gpus1表示向 Triton 提供 1 块系统 GPU 用于推理$ docker run --gpus1 --rm -p8000:8000 -p8001:8001 -p8002:8002 -v/full/path/to/docs/examples/model_repository:/models nvcr.io/nvidia/tritonserver:xx.yy-py3 tritonserver --model-repository/models其中xx.yy是你要使用的 Triton 版本标签例如与当前仓库开发版本对应的2.74.0正式版本号以 NGC 镜像实际发布为准。-v将本地模型仓库目录挂载到容器内/models三个-p端口分别对应 HTTP 推理服务8000、gRPC 推理服务8001与 Prometheus 指标服务8002。启动后控制台会输出服务启动与模型加载日志。当看到类似下面的输出时说明 Triton 已就绪、可以接受推理请求--------------------------------------- | Model | Version | Status | --------------------------------------- | model_name | v | READY | | .. | . | .. | | .. | . | .. | --------------------------------------- ... ... ... I1002 21:58:57.891440 62 grpc_server.cc:3914] Started GRPCInferenceService at 0.0.0.0:8001 I1002 21:58:57.893177 62 http_server.cc:2717] Started HTTPService at 0.0.0.0:8000 I1002 21:58:57.935518 62 http_server.cc:2736] Started Metrics Service at 0.0.0.0:8002所有模型都应显示为READY状态。若某个模型加载失败状态列会报告失败原因如果模型根本没出现在表格中请检查模型仓库路径以及 CUDA 驱动。在纯 CPU 系统上运行无 GPU 的系统只需去掉 Docker 的--gpus参数其余命令与上面完全一致$ docker run --rm -p8000:8000 -p8001:8001 -p8002:8002 -v/full/path/to/docs/examples/model_repository:/models nvcr.io/nvidia/tritonserver:xx.yy-py3 tritonserver --model-repository/models由于没有传入--gpusGPU 不可用Triton 将无法加载任何要求 GPU 的模型配置。仓库的 docker/ 目录下也提供了 CPU-only 相关的镜像构建文件见 docker/cpu_only/可供自行构建 CPU 场景镜像时参考。验证 Triton 是否正常运行使用 Triton 的ready接口确认服务器与模型都已就绪。在宿主机上通过 curl 访问 HTTP 健康检查端点$ curl -v localhost:8000/v2/health/ready ... HTTP/1.1 200 OK Content-Length: 0 Content-Type: text/plain返回 HTTP 200 表示 Triton 就绪非 200 表示尚未就绪。Triton 还提供GET /v2/health/live存活端点从 src/command_line_parser.cc 的实现可以看到--strict-readiness选项默认开启控制ready端点的语义为 true 时仅当服务器可响应且所有模型可用才返回就绪为 false 时服务器可响应即视为就绪。若希望按需调整这一行为可在启动命令中追加--strict-readinessfalse。发送推理请求拉取并运行客户端 SDK 镜像从 NGC 拉取包含客户端库与示例的 SDK 镜像$ docker pull nvcr.io/nvidia/tritonserver:xx.yy-py3-sdkxx.yy为你要拉取的版本标签。运行该镜像使用--nethost使容器直接共享宿主机网络便于访问 8000/8001/8002 端口$ docker run -it --rm --nethost nvcr.io/nvidia/tritonserver:xx.yy-py3-sdk用 image_client 执行图像分类在 SDK 容器内使用示例程序image_client以示例仓库中的densenet_onnx模型执行图像分类。图片取自容器内/workspace/images目录这里请求返回置信度最高的前 3 个类别$ /workspace/install/bin/image_client -m densenet_onnx -c 3 -s INCEPTION /workspace/images/mug.jpg Request 0, batch size 1 Image /workspace/images/mug.jpg: 15.346230 (504) COFFEE MUG 13.224326 (968) CUP 10.422965 (505) COFFEEPOTimage_client参数含义-m densenet_onnx指定模型名与config.pbtxt中的name一致-c 3返回前 3 个分类结果-s INCEPTION指定图像预处理方式缩放/裁剪策略对应 Inception 系列模型的输入规范 224×224最后一个参数为输入图片路径。输出中每行依次为置信度得分、ImageNet 类别编号与类别名称。得分最高的COFFEE MUG对应类别 504与config.pbtxt中label_filename: densenet_labels.txt引用的标签文件densenet_labels.txt按行号映射的结果一致说明推理链路完整可用。常见问题排查模型未出现在加载列表中检查--model-repository指向的路径是否正确容器内路径应与-v挂载目标一致以及 CUDA 驱动与 NVIDIA Container Toolkit 是否安装到位。模型状态非 READY查看启动日志中的失败原因通常与缺少模型文件、config.pbtxt配置错误如dims/data_type与模型定义不符或 GPU 资源不可用有关。curl 健康检查返回非 200确认 Triton 启动完成日志出现三个 Started 提示若模型加载失败且启用了默认的--strict-readinessready端点会返回非 200可先排查模型加载问题或临时用--strict-readinessfalse区分服务器存活与模型就绪两种状态。更进一步本教程完成了 Triton 的最小闭环部署。要继续深入仓库内提供了丰富的配套资料模型仓库的完整布局规范与远程仓库GCS/S3/Azure用法user_guide/model_repository.md模型配置config.pbtxt逐字段说明user_guide/model_configuration.md从源码构建 Tritoncustomization_guide/build.md部署到 KubernetesHelm Chart 与云厂商模板deploy/k8s-onprem/、deploy/aws/、deploy/gcp/、deploy/oci/模型管理与动态加载user_guide/model_management.md。通过以上流程你已经完成了 Triton Inference Server 的首次端到端推理验证可以在此基础上替换为自己的模型与模型仓库进入生产部署阶段。赞分享模型推理服务AI 应用后端【免费下载链接】serverThe Triton Inference Server provides an optimized cloud and edge inferencing solution.项目地址https://gitcode.com/gh_mirrors/server117/server点击查看免费下载相关推荐阿里云 EAS 上部署 Triton Inference Server 实战指南从 OSS 模型仓库到线上推理阿里云 EAS 上部署 Triton Inference Server 实战指南从 OSS 模型仓库到线上推理 导读 本指南基于 Triton Inferen模型推理服务AI 应用后端Flutterust vs 其他跨平台方案为什么它是开发者的新宠Flutterust vs 其他跨平台方案为什么它是开发者的新宠 Flutterust是一个创新的跨平台开发方案它将Flutter的UI开发能力与Rust的CANN triton-inference-server-ge-backend 快速入门从模型转换到 NPU 推理服务上线全流程CANN triton inference server ge backend 快速入门从模型转换到 NPU 推理服务上线全流程 本文以 ge backend模型推理服务人工智能后端CANNAscend创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考