推理引擎
了解推理引擎如何通过提供实时预测、优化模型和实现跨平台部署来驱动AI。
推理引擎是一个专门的软件组件,旨在执行训练有素的机器学习模型,并生成
机器学习模型,并根据新数据生成
预测。与专注于从海量数据集中学习模式的训练框架不同,推理引擎
推理引擎纯粹是为运行阶段(即模型部署)而优化的。
模型部署。它的主要目标是尽可能高效地运行这些
尽可能高效地运行这些模型
推理延迟,并在目标硬件上实现最大吞吐量。
目标硬件,无论是功能强大的云服务器还是资源受限的
边缘人工智能设备。
推理引擎如何工作
从训练有素的模型到部署就绪的应用程序,通常需要一个推理引擎作为
运行环境。一旦模型在类似
PyTorch或
TensorFlow的数据结构对学习有用,但对预测却没有必要。
结构对学习有用,但对预测却没有必要。推理引擎可以去除这些开销,并
对计算图进行严格优化。
关键优化技术包括:
-
图层融合:引擎将多个层(如卷积、批量规范化和
激活)合并为单一操作。这样可以减少内存访问,加快执行速度。
-
减少精度:通过
模型量化,引擎会将权重从高精度 32 位浮点格式(FP32
权重从高精度 32 位浮点格式 (FP32) 转换为 INT8 或 FP16 等低精度格式。这
大幅减少了模型大小和内存带宽使用,而不会明显影响
精度。
-
内核自动调整引擎,如
NVIDIA TensorRT等引擎会自动选择最高效的
算法和硬件内核。
GPU选择最高效的算法和硬件内核。
-
内存管理:高效的内存重用策略可最大限度地减少运行时分配和取消分配内存的开销。
内存的开销。
实时推理至关重要。
常见推理引擎
不同的引擎针对特定的硬件生态系统和性能目标而定制:
-
NVIDIA ®)TensorRT: NVIDIA )GPU 的高性能深度学习推理优化器和运行时。
它广泛应用于数据中心和汽车应用。您可以轻松地
将Ultralytics 模型导出至TensorRT,以获得最高的
速度。
-
Intel OpenVINO
开放式可视推理和神经网络优化
工具包为Intel 硬件优化模型,包括
CPU和集成 GPU。它允许在英特尔生态系统中采用 "一次编写,随处部署 "的方法、
随处部Intel "的方法。
-
ONNX Runtime: Microsoft 开发的跨平台引擎,支持
ONNX格式的跨平台引擎。它允许
能在各种硬件后端高效运行。
-
TensorFlow Lite:专为移动和物联网设备设计、
TensorFlow Lite可在Android、iOS 和
嵌入式系统上实现低延迟推理。
实际应用
推理引擎是现代人工智能应用的隐形支柱,使其能够对世界做出即时反应。
-
自动驾驶:在汽车行业,车辆依靠计算机视觉进行安全导航。
安全导航。汽车车载计算机上运行的推理引擎会处理视频馈送,以执行以下操作
行人、其他
车辆和交通标志。使用类似 YOLO11,
该引擎可确保在几毫秒内完成这些预测,从而使汽车能够实时自动刹车或转向。
实时。
-
智能制造:生产线使用推理引擎进行自动质量控制。
高速摄像头捕捉传送带上的产品图像,推理引擎处理这些图像,以
detect 裂缝或错位等缺陷。这种高吞吐量系统可防止有缺陷的产品出货,并降低人工检测成本。
并降低人工检测成本。
推理引擎与训练框架
必须区分用于创建模型的工具和用于运行模型的工具。
-
训练框架(如PyTorch、Keras):这些框架旨在实现灵活性和实验性。
它们支持反向传播、梯度更新和动态图。
但计算成本高昂。
-
推理引擎(如TensorRT、ONNX Runtime):这些引擎旨在提高速度和效率。它们
将模型视为需要尽快执行的静态操作集。它们通常不支持
训练或学习新模式。
导出推理
要使用特定的推理引擎,通常需要
将训练好的模型导出为兼容格式。例如
例如,将YOLO11 模型导出为ONNX 格式后,它就可以由ONNX Runtime 运行或导入其他引擎。
from ultralytics import YOLO
# Load a trained YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to ONNX format for use with ONNX Runtime
# This creates 'yolo11n.onnx' optimized for inference
model.export(format="onnx")
通过利用推理引擎,开发人员可以释放其人工智能模型的全部潜能,确保它们在从云集群到电池供电的边缘设备等生产环境中顺利运行。
在从云集群到电池供电的边缘设备等各种生产环境中顺利运行。