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






