Model Deployment
了解如何将机器学习模型部署到云端或边缘环境。了解 Ultralytics Platform 如何简化 YOLO26 的导出与生产部署。
模型部署是一个关键阶段:经过训练的机器学习模型被集成到生产环境中,基于新数据做出实际决策或预测。它代表着模型从研究或实验环境(通常是在隔离的笔记本环境中进行)过渡到实际运行的应用,在这种应用中,模型会与真实用户和系统交互。这个过程将包含权重和架构的静态文件转变为能够创造价值的活跃 AI 代理,例如识别视频流中的对象或在网站上推荐产品。
有效的部署需要解决不同于模型训练的挑战,包括延迟、可扩展性和硬件兼容性。组织通常会利用 Ultralytics Platform 来简化这一生命周期,确保在云端训练的模型能够无缝交付到各种环境中,从高性能服务器到资源受限的边缘设备。
部署格局#
部署策略通常分为两类:云部署和边缘部署。具体选择在很大程度上取决于对速度、隐私和连接性的要求。
- 云部署: 模型驻留在集中式服务器上,通常由 AWS SageMaker 或 Google Vertex AI 等服务管理。应用通过互联网将数据经由 REST API 发送给模型,模型处理请求并返回结果。这种方法几乎可以提供无限的计算能力,非常适合大型复杂模型,但依赖稳定的互联网连接。
- 边缘部署: 模型在生成数据的设备上本地运行,例如智能手机、无人机或工厂摄像头。这种方式称为边缘计算,能够最大限度地降低延迟并增强数据隐私,因为信息不会离开设备。TensorRT 等工具经常用于优化适用于这些环境的模型。
为生产环境准备模型#
在部署模型之前,通常需要对其进行优化,以确保它能够在目标硬件上高效运行。这个过程包括模型导出,即将训练格式(如 PyTorch)转换为适合部署的格式,例如开放神经网络交换格式(ONNX)或 OpenVINO。
量化等优化技术可以在不显著牺牲精度的情况下减小模型大小和内存占用。为了确保模型在不同计算环境中的一致性,开发者通常会使用 Docker 等容器化工具,将模型及其所需的全部软件依赖打包在一起。
下面是将 YOLO26 模型导出为 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}")实际应用#
模型部署为各行各业广泛使用的计算机视觉系统提供了支持。
- 制造业质量控制: 在智能制造中,已部署的模型会实时监控传送带。运行在针对 NVIDIA Jetson 设备优化的模型上的摄像头系统可以即时检测产品缺陷,触发机械臂移除有问题的产品。这需要超低延迟,而只有边缘 AI部署才能提供这种能力。
- 零售分析: 商店使用已部署的模型分析客流量和客户行为。通过将目标跟踪模型集成到安全摄像头视频流中,零售商可以生成热门通道的热力图。这些洞察有助于优化店内布局并改进库存管理,通常会利用基于云的部署汇总多个地点的数据。
部署与推理和训练的区别#
区分模型部署与机器学习生命周期中的相关术语非常重要:
- 模型训练是算法从数据集中学习模式的学习阶段。
- 模型部署是将训练好的模型安装到生产基础设施(服务器、应用或设备)中的集成阶段。
- 推理是运行阶段,即已部署的模型处理实时数据并生成预测的实际过程。例如,推理引擎会执行已部署模型所定义的计算。
监控与维护#
部署并不是终点。模型上线后,需要持续进行模型监控,以检测数据漂移等问题,即真实世界的数据开始偏离训练数据。通常会集成 Prometheus 或 Grafana 等工具来跟踪性能指标,确保系统长期保持可靠。当性能下降时,可能需要重新训练并重新部署模型,从而完成 MLOps 的循环。






