深圳Yolo 视觉
深圳
立即加入
词汇表

模型部署

探索模型部署的要点,将机器学习模型转化为用于预测、自动化和 AI 驱动的洞察的真实世界工具。

模型部署是机器学习生命周期中的关键阶段。 在这一阶段,经过训练的机器学习 (ML)模型被集成到 生产环境,对实时数据采取行动。它是开发(模型在受控环境中进行训练和验证)与实际应用(模型在实际应用中产生价值)之间的桥梁。 和实际应用之间的桥梁,在实际应用中,模型通过提供可操作的洞察力来产生价值。 洞察力,从而产生价值。如果没有有效的部署,即使是最复杂的 神经网络 (NN)仍然是一个静态文件,无法 与最终用户或外部软件系统进行交互。主要目标是使模型的预测能力 主要目标是使模型的预测能力可访问、可靠并可扩展,适用于从移动应用程序到企业云服务的各种应用。 服务。

部署管道

将模型从研究环境过渡到生产环境通常需要一个结构化管道,以确保性能和稳定性。 确保性能和稳定性。

  1. 模型优化:在模型离开训练环境之前,它通常要经过 模型优化,以 提高执行速度和减少内存使用。量化等技术 量化等技术降低了 例如,从 32 位浮点到 8 位整数),大大降低了计算要求,而对准确性的影响却很小。 而对精度的影响却微乎其微。
  2. 模型导出:将优化后的模型转换为独立于训练框架的标准格式。 训练框架。格式如 ONNX (开放神经网络交换格式) 等格式,允许在PyTorch 中训练的模型在各种推理引擎上运行。对于特定硬件加速,开发人员 可以导出到 TensorRT或OpenVINO (NVIDIA CPU)。 Intel CPU 的Intel 。
  3. 容器化:为确保模型在不同的计算环境中运行一致,通常的做法是使用容器化。 通常的做法是使用容器化Docker等工具将模型、其 依赖关系和运行环境打包成一个轻量级单元,从而消除了 "它在我的 机器上运行 "的问题。
  4. 协调和扩展:在高需求场景中,部署的容器由 编排系统(如Kubernetes)进行管理。这些平台处理 可扩展性,自动生成新的模型 实例,以应对流量高峰并确保高可用性。

部署环境

环境的选择在很大程度上取决于应用在以下方面的要求 推理延迟、数据隐私和 连接性。

  • 云部署:在云平台上托管模型,如 AWS SageMakerGoogle Vertex AI等云平台上托管模型,可提供几乎无限的计算能力和 易扩展。这对于复杂的 大型语言模型 (LLM)或批量 处理任务的理想选择。
  • 边缘人工智能:适用于需要 实时推理的应用 的应用,模型可直接部署到本地设备上。 边缘人工智能利用紧凑型硬件,如 NVIDIA JetsonRaspberry Pi 等紧凑型硬件,在源头处理数据。这种方法能最大限度地减少 延迟,并通过在设备上保留敏感信息来提高数据隐私性。 敏感信息保存在设备上,从而提高了数据的私密性。
  • 基于浏览器TensorFlow.js等框架允许 模型完全在网络浏览器中使用客户端硬件运行。这种零安装方法非常适合 交互式网络应用和轻量级 计算机视觉 (CV)任务。

实际应用

  • 自动化生产质量控制:在工厂环境中,一个 YOLO11物体检测模型部署到与传送带上的摄像头相连的边缘设备上。 与传送带上的摄像头相连。当产品经过时,模型会执行实时 异常检测,以识别缺陷,如 裂缝或错位标签。系统会立即触发机械臂移除有缺陷的物品,从而大大提高效率。 与人工检测相比,大大提高了效率。了解更多 制造业中的人工智能
  • 智能零售分析:零售商部署 对象跟踪模型来分析顾客 店内的顾客行为。通过处理本地服务器上的视频馈送,系统可生成高客流量区域的热图,并监控排队长度。 并监控排队长度。这些数据可帮助管理人员优化店铺布局和人员配置水平。查看 零售业中的人工智能如何改变购物 体验。

相关概念:部署 vs. 服务 vs. MLOps

必须将 "模型部署 "与生态系统中的相关术语区分开来:

  • 模型部署与模型服务:部署是指将模型投入生产的总体过程。模型服务是指特定的 机制或软件(如 NVIDIA Triton 推理服务器TorchServe)侦听 API 请求并运行模型以生成预测结果。 生成预测结果。服务是部署的一个组成部分。
  • 模型部署与 MLOps MLOps:部署是更广泛的 MLOps 框架中的一个阶段。MLOps(机器学习运营)包括 整个生命周期,包括数据收集、训练、评估、部署和持续的 模型监控,以detect 诸如 数据漂移

导出模型以供部署

部署的第一步通常是将训练有素的模型导出为高度兼容的格式。下面的示例 演示了如何使用 ultralytics 软件包,使其可 可在各种平台上部署。

from ultralytics import YOLO

# Load a pretrained YOLO11 model
model = YOLO("yolo11n.pt")

# Export the model to ONNX format for broad compatibility
# This creates 'yolo11n.onnx' which can be used in deployment environments
model.export(format="onnx")

加入Ultralytics 社区

加入人工智能的未来。与全球创新者联系、协作和共同成长

立即加入