Model Deployment
了解如何将机器学习模型部署到云端或边缘环境。探索 Ultralytics Platform 如何简化 YOLO26 的导出和生产流程。
模型部署是将训练好的机器学习模型集成到生产环境中,以基于新数据做出实际决策或预测的关键阶段。它代表了从研究或实验环境(通常在隔离的笔记本中进行)向实时应用的过渡,模型将在该应用中与现实世界的用户和系统交互。此过程将静态的权重和架构文件转换为活跃的 AI agent,从而实现创造价值,例如识别视频流中的对象或在网站上推荐产品。
有效的部署需要解决不同于 model training 的挑战,包括延迟、可扩展性和硬件兼容性。组织通常利用 Ultralytics Platform 来简化这一生命周期,确保在云端训练的模型能够无缝交付到各种环境,从强大的服务器到资源受限的边缘设备。
Link to this section部署环境#
部署策略通常分为两类:云部署和边缘部署。选择在很大程度上取决于对速度、隐私和连接性的具体要求。
- 云部署: 模型驻留在集中式服务器上,通常由 AWS SageMaker 或 Google Vertex AI 等服务进行管理。应用程序通过 REST API 将数据发送到互联网上的模型,模型处理请求并返回结果。这种方法提供了几乎无限的计算能力,非常适合大型复杂模型,但它依赖于稳定的互联网连接。
- 边缘部署: 模型在数据产生的设备(如智能手机、无人机或工厂摄像头)上本地运行。这种方法被称为 edge computing,由于信息不会离开设备,因此最大限度地减少了延迟并增强了数据隐私。像 TensorRT 这样的工具常用于针对这些环境优化模型。
Link to this section为生产准备模型#
在模型可以部署之前,它通常会经历优化以确保在目标硬件上高效运行。此过程涉及 model export,即将训练格式(如 PyTorch)转换为适合部署的格式,例如 ONNX(开放神经网络交换格式)或 OpenVINO。
像 quantization 这样的优化技术可以在不显著牺牲准确性的情况下减少模型的大小和内存占用。为了确保不同计算环境之间的一致性,开发人员通常使用像 Docker 这样的 containerization 工具,将模型及其所有必要的软件依赖项打包在一起。
以下是将 YOLO26 model 导出为 ONNX 格式的示例,这是准备部署时的常见步骤:
from ultralytics import YOLO
# Load the YOLO26 nano model
model = YOLO("yolo26n.pt")
# Export the model to ONNX format for broad compatibility
# This creates a file suitable for various inference engines
path = model.export(format="onnx")
print(f"Model successfully exported to: {path}")Link to this section实际应用#
模型部署为各行各业中广泛使用的 computer vision 系统提供了动力。
- 制造业质量控制: 在 smart manufacturing 中,部署的模型会实时监控传送带。运行针对 NVIDIA Jetson 设备优化模型的摄像系统可以立即检测产品缺陷,并触发机械臂移除故障产品。这需要只有 edge AI 部署才能提供的超低延迟。
- 零售分析: 商店使用部署的模型来分析人流量和客户行为。通过将 object tracking 模型集成到监控摄像头流中,零售商可以生成热门通道的热力图。这些见解有助于优化商店布局并改善 inventory management,通常利用云端部署来汇总来自多个地点的数据。
Link to this section部署 vs. 推理 vs. 训练#
区分 模型部署 与机器学习生命周期中的相关术语非常重要:
- 模型训练 是算法从数据集中学习模式的教育阶段。
- 模型部署 是将训练好的模型安装到生产基础设施(服务器、应用程序或设备)中的集成阶段。
- 推理 是操作阶段——即部署的模型处理实时数据以产生预测的实际行为。例如,inference engine 执行由部署的模型定义的计算。
Link to this section监控与维护#
部署并不是终点。模型上线后,需要持续的 model monitoring 来检测诸如 data drift 之类的问题,即现实世界的数据开始偏离训练数据的情况。通常会集成像 Prometheus 或 Grafana 这样的工具来跟踪性能指标,确保系统能长期保持可靠。当性能下降时,可能需要重新训练并重新部署模型,从而完成 MLOps 的循环。






