ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

CircularNet 云端部署实战:在 models 仓库中启动并验证 Triton 推理服务器

CircularNet 云端部署实战:在 models 仓库中启动并验证 Triton 推理服务器 CircularNet 云端部署实战在 models 仓库中启动并验证 Triton 推理服务器【免费下载链接】modelsModels and examples built with TensorFlow项目地址: https://gitcode.com/GitHub_Trending/mode/models本篇基于waste_identification_ml项目的官方部署文档start-server.md整理而成讲解如何在 GCP GPU 虚拟机或边缘设备上启动 Triton 推理服务器并加载 CircularNet 实例分割模型。读完本文你将能够独立完成服务器端部署全流程执行启动脚本、理解脚本背后的模型下载与容器化编排逻辑、通过screen会话验证模型READY状态并掌握会话的挂起与恢复操作为后续运行推理客户端管线做好准备。1. 部署背景CircularNet 与 Triton 的组合CircularNet 是 models 仓库official/projects/waste_identification_ml项目提供的实例分割模型用于在传送带图像中识别可回收物。根据项目 READMECircularNet 基于 RF-DETR 这一同时具备目标检测与实例分割能力的视觉 Transformer 模型输出物材质类别如 metal、paper塑料还会细分 HDPE、PET、LDPE 等树脂类型与物料形态cup、bottle、bag 等的组合标签示例推理标签形如Plastics-PET_Bottle。项目提供的最新模型为 ONNX 格式的单模型同时完成 material type 与 form 两类检测。将这类视觉模型暴露给上游管线调用时本项目选择了 NVIDIA Triton Inference Server 作为服务化框架模型以model_repository目录组织通过 Docker 容器方式运行并以 gRPC/HTTP 端口对外提供推理服务。整个云端部署分为三步创建 GCP GPU 虚拟机、启动服务器本文主题、运行预测管线客户端。前置步骤包括在 GCP 中创建 T4 GPU 实例并克隆仓库可分别参考 clone-repo 文档。注意来自原文档如果你正在 Google Cloud 上操作但已关闭了SSH-in-browser窗口请打开VM instances页面在你连接的 NVIDIA T4 GPU 实例所在行点击SSH重新打开SSH-in-browser工具。2. 第一步进入 server 目录在 GCP VM 实例的SSH-in-browser窗口或边缘设备的本地终端中进入waste_identification_ml项目下的server文件夹cd models/official/projects/waste_identification_ml/Deploy/detr_cloud_deployment/server/该目录在仓库中的对应位置是 server 目录其中仅包含一个核心文件triton_inference_server.sh。3. 第二步运行启动脚本执行以下命令创建 Triton 推理服务器并加载最新的 circularnet 模型bash triton_inference_server.sh原文档正文中提到脚本名为triton_server.sh但给出的实际命令是bash triton_inference_server.sh以仓库中真实存在的文件 triton_inference_server.sh 为准。服务器启动后会保持后台运行通过一个screen会话维持。4. 脚本实现解析从清理、下载到容器编排阅读 triton_inference_server.sh 的源码可以完整还原该脚本的四段式工作流4.1 清理旧的 model_repository脚本首先检查当前目录下是否已存在model_repository目录若存在则整体删除确保本次部署从干净的模型仓库状态开始避免旧模型配置与新版 ONNX 模型混用if [ -d model_repository ]; then echo Removing existing model_repository directory... rm -rf model_repository fi4.2 下载并解压模型脚本用 bash 关联数组associative array维护“模型名 → 下载地址”的映射便于未来扩展多模型部署declare -A models( [CircularNet_Segmentation_Model_v1]https://storage.googleapis.com/\ tf_model_garden/vision/waste_identification_ml/\ CN-ModelCheckpoints/CN-TritonInferenceServer/CircularNet_model_v2.zip ) for model_name in ${!models[]}; do url${models[$model_name]} zip_file${url##*/} wget $url unzip $zip_file rm $zip_file done要点模型从 Google 云存储桶tf_model_garden的vision/waste_identification_ml路径下载该地址与项目 README 中公布的CircularNet_Segmentation_Model_v1模型桶路径一致该模型压缩包解压后即形成符合 Triton 规范的model_repository目录结构Triton 要求模型仓库为model_repository/模型名/版本/...层级下载完成后立即删除 zip 文件保持工作目录整洁。4.3 依赖检查与 screen 会话启动脚本会检查系统是否安装了screen未安装时自动执行sudo apt update sudo apt install -y screen。随后通过下面这条核心命令在名为server的分离式detachedscreen 会话中拉起 Docker 容器screen -dmS server bash -c sudo docker run --gpus all --rm -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各参数含义如下参数说明screen -dmS server在后台-d创建一个名为server-S的会话脚本本身不阻塞sudo docker run --gpus all将宿主机全部 GPU 直通进容器Triton 通过 Triton backend 使用 GPU 执行 ONNX 推理--rm容器退出后自动清理容器资源-p 8000:8000映射 Triton gRPC 推理端口客户端管线主要走此端口-p 8001:8001映射 HTTP 服务端口健康检查、REST 推理-p 8002:8002映射指标监控端口Prometheus 格式指标-v ${PWD}/model_repository:/models把宿主机的模型仓库挂载到容器内/models与--model-repository/models参数对应nvcr.io/nvidia/tritonserver:25.05-py3使用的 Triton 官方镜像版本从源码结构看这里使用screen而非nohup或 systemd目的是让运维人员随时能重新接入会话查看服务器实时日志见下一节。5. 验证服务器是否正常运行进入screen会话可以直观看到服务器持续运行的日志输出模型加载成功后会显示READY状态。操作步骤1列出所有 screen 会话screen -ls输出中会显示server会话并带有(Detached)标记——这表示你当前在会话外部会话仍在后台保持。2接入 server 会话screen -r server会话打开后即可看到服务器的持续运行日志Triton 完成模型加载后模型状态列显示READY说明部署成功、服务已就绪。3挂起而不停止服务器按下Ctrl a松开后再按d会话进入 detach 状态回到普通终端而 Triton 服务器继续在后台运行。6. 常见问题与注意事项GCP SSH 窗口关闭SSH-in-browser 会话断开不会终止 VM 上的 screen 会话与 Docker 容器重新通过 VM instances 页面点击SSH进入后可用screen -r server重新接入权限要求脚本内部使用sudo docker run执行账户必须具有 sudo 权限且在 GCP 上需按 Docker 部署文档完成 NVIDIA Container Toolkit 等 GPU 运行环境准备文档提示可参考 GCP 标准 SSH 连接方式重复执行脚本每次运行都会删除旧的model_repository并重新下载模型但不会主动停止已存在的server会话——若旧会话未退出新容器可能因端口8000/8001/8002被占用而失败重跑前建议先确认或清理旧会话模型版本一致性脚本中的关联数组键名为CircularNet_Segmentation_Model_v1实际下载文件为CircularNet_model_v2.zip即“逻辑模型名”与“包内版本号”存在演进差异排查问题时应以桶内实际文件为准。7. 下一步服务器就绪模型显示READY后即可进入客户端流程把图片送入推理管线进入 client 目录修改 run_images.sh 中的--input_directory输入 GCS 桶如gs://bucket/input-images、--output_directory输出桶、--project_id与--bq_table_id存储推理结果的 BigQuery 表等参数后运行管线详见 start-client 文档。【免费下载链接】modelsModels and examples built with TensorFlow项目地址: https://gitcode.com/GitHub_Trending/mode/models创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表