Inference Engine
了解推理引擎如何优化 Ultralytics YOLO26 等机器学习模型,以实现实时部署。探索当今边缘 AI 的性能优化技巧。
推理引擎是一种专用软件组件,旨在执行经过训练的机器学习模型,并根据新数据生成预测结果。不同于专注于通过反向传播等计算密集型过程学习模式的训练阶段,推理引擎严格针对被称为模型部署的运行阶段进行优化。其主要目标是在目标硬件上尽可能高效地执行计算,最大限度地降低推理延迟,并提高吞吐量,无论目标硬件是可扩展的云服务器,还是由电池供电的边缘 AI设备。通过去除训练所需的开销,这些引擎可以让复杂的神经网络在实时应用中运行。
推理引擎如何优化性能#
从训练环境转换到推理引擎通常需要经过多个优化步骤,以精简模型结构。由于模型不再需要学习,引擎可以丢弃梯度更新所需的数据,从而有效地冻结模型权重。推理引擎常用的技术包括层融合,即将多个操作合并为一个步骤以减少内存访问;以及模型量化,即将高精度浮点格式的权重转换为低精度整数(例如 INT8)。
这些优化使Ultralytics YOLO26等先进架构能够以极高的速度运行,同时不会显著损失准确率。不同的引擎通常针对特定的硬件生态系统进行定制,以释放最大性能:
- NVIDIA TensorRT:通过利用特定于硬件的内核并优化网络图,在 NVIDIA GPU 上提供高性能推理。
- Intel OpenVINO:优化 Intel 架构上的深度学习性能,包括CPU和集成显卡,因此非常适合边缘计算。
- ONNX Runtime:一种跨平台加速器,支持 ONNX 格式的模型,为不同框架和硬件后端之间提供桥梁。
实际应用#
推理引擎是许多现代 AI 便利功能背后的无声驱动力,使计算机视觉系统能够即时响应周围环境。
-
自动驾驶车辆:在自动驾驶汽车中,目标检测模型必须在几毫秒内识别行人、交通标志和其他车辆。在汽车硬件上本地运行的推理引擎可以确保这一处理以实时推理速度完成,因为依赖云连接会造成危险的延迟。
-
智能制造:工厂利用工业物联网摄像头检查装配线上的产品。推理引擎处理视频流以执行异常检测,即时标记缺陷。这种自动化能够减少浪费,并确保严格的质量控制,同时不会拖慢生产速度。
推理引擎与训练框架的比较#
区分用于创建模型的软件和用于运行模型的引擎会很有帮助。训练框架(如 PyTorch 或 TensorFlow)提供用于设计架构、计算损失,以及通过监督学习更新参数的工具。它优先考虑灵活性和调试能力。
相比之下,推理引擎接收训练框架生成的完整模型文件,并优先考虑执行速度和内存效率。虽然你可以在训练框架中运行推理,但其效率很少能达到专用引擎的水平,尤其是在通过 TensorFlow Lite 或 Apple Core ML 等工具部署到手机或嵌入式设备时。
将推理引擎与 Ultralytics YOLO26 搭配使用#
ultralytics 软件包抽象了推理引擎的大部分复杂性,让用户可以无缝运行预测。它会在底层处理图像预处理和模型执行。对于希望扩展应用规模的用户,Ultralytics Platform 简化了训练模型以及将模型导出为与各种推理引擎兼容的优化格式的过程。
以下示例演示了如何加载一个预训练的 YOLO26 模型,并在图像上运行推理:
from ultralytics import YOLO
# Load the YOLO26n model (nano version for speed)
model = YOLO("yolo26n.pt")
# Run inference on an image from a URL
# The 'predict' method acts as the interface to the inference process
results = model.predict("https://ultralytics.com/images/bus.jpg")
# Display the results
results[0].show()








