Model Serving
了解模型服务如何弥合训练模型与生产环境之间的差距。探索在 Ultralytics Platform 上部署 Ultralytics YOLO26 的策略。
模型服务是托管经过训练的机器学习模型,并通过网络接口向软件应用提供其功能的过程。它充当了存储在磁盘上的静态模型文件与处理真实世界数据的实时系统之间的桥梁。模型完成机器学习(ML)训练阶段后,必须集成到生产环境中,以便接收图像、文本或表格数据等输入并返回预测结果。通常的做法是将模型封装在应用程序编程接口(API)中,使其能够与 Web 服务器、移动应用或 IoT 设备通信。
模型服务在 AI 中的作用#
模型服务的主要目标是有效地将预测建模能力投入实际运行。训练侧重于准确率和损失最小化,而服务侧重于延迟(返回预测结果的速度)和吞吐量(每秒可处理的请求数)等性能指标。稳健的服务基础设施可确保计算机视觉(CV)系统在高负载下仍然可靠运行。这通常涉及使用 Docker 等工具进行容器化,将模型及其依赖项打包在一起,以确保其在不同计算环境中的行为一致。
实际应用#
模型服务通过基于数据实现即时决策,为各行各业普及的 AI 功能提供支持。
- 智能制造: 在工业环境中,制造业中的 AI系统使用经过服务化的模型检查装配线。组件的高分辨率图像会发送到本地服务器,由 YOLO26 模型检测划痕或错位等缺陷,并立即触发警报以移除不合格品。
- 零售自动化: 零售商利用零售业中的 AI来提升客户体验。由目标检测模型提供服务的摄像头会识别结账区域内的商品,自动统计总价,无需人工扫描条形码。
实际实现#
为了有效地提供模型服务,通常最好将模型导出为 ONNX 等标准化格式,从而促进不同训练框架和服务引擎之间的互操作性。以下示例演示了如何加载模型并使用 Python 运行推理,模拟服务端点内部的执行逻辑。
from ultralytics import YOLO
# Load the YOLO26 model (this typically happens once when the server starts)
model = YOLO("yolo26n.pt")
# Simulate an incoming API request with an image source URL
image_source = "https://ultralytics.com/images/bus.jpg"
# Run inference to generate predictions for the user
results = model.predict(source=image_source)
# Process results (e.g., simulating a JSON response to a client)
print(f"Detected {len(results[0].boxes)} objects in the image.")选择合适的策略#
服务策略的选择很大程度上取决于具体用例。在线服务通过 REST 或 gRPC 等协议提供即时响应,这对于面向用户的 Web 应用至关重要。相反,批量服务离线处理大量数据,适用于生成夜间报告等任务。对于需要隐私保护,或需要在不依赖互联网的情况下实现低延迟的应用,边缘 AI会将服务过程直接转移到设备上,并利用 TensorRT 等优化格式,最大限度地提升受限硬件上的性能。许多组织借助 Ultralytics Platform,将这些模型部署到各种端点(包括云 API 和边缘设备),从而简化部署流程。
与相关术语的区别#
尽管关系密切,“模型服务”不同于模型部署和推理。
- 模型部署: 这是指将模型发布到生产环境中的更广泛生命周期阶段。服务是执行已部署模型的具体机制或软件,例如 NVIDIA Triton 推理服务器或 TorchServe。
- 推理: 这是根据输入计算预测结果的数学过程。模型服务提供基础设施(网络、可扩展性和安全性),使推理能够可靠地面向终端用户执行。
- 微服务: 服务通常采用一组微服务的架构,模型作为独立服务运行,应用的其他部分可以向其发出查询,并通常使用 JSON 等轻量级格式交换数据。









