Inference Engine
Khám phá cách một bộ suy luận (inference engine) tối ưu hóa các model học máy như Ultralytics YOLO26 để triển khai thời gian thực. Khám phá các mẹo hiệu suất cho Edge AI ngay hôm nay.
Inference engine là một thành phần phần mềm chuyên dụng được thiết kế để thực thi các model machine learning đã được huấn luyện và tạo ra các dự đoán từ dữ liệu mới. Khác với giai đoạn huấn luyện, vốn tập trung vào việc học các mô hình thông qua các quy trình tính toán chuyên sâu như backpropagation, inference engine được tối ưu hóa nghiêm ngặt cho giai đoạn vận hành được gọi là model deployment. Mục tiêu chính của nó là chạy các phép tính hiệu quả nhất có thể, giảm thiểu inference latency và tối đa hóa lưu lượng xử lý trên phần cứng mục tiêu, dù đó là cloud server có khả năng mở rộng hay thiết bị Edge AI chạy bằng pin. Bằng cách loại bỏ các chi phí tính toán không cần thiết phục vụ cho việc huấn luyện, các engine này cho phép các neural networks phức tạp hoạt động trong các ứng dụng thời gian thực.
Link to this sectionCách Inference Engine Tối ưu hóa Hiệu suất#
Việc chuyển đổi từ môi trường huấn luyện sang inference engine thường bao gồm một vài bước tối ưu hóa để tinh giản cấu trúc của model. Vì model không còn cần phải học nữa, engine có thể loại bỏ dữ liệu cần thiết cho việc cập nhật gradient, từ đó đóng băng các model weights. Các kỹ thuật phổ biến được các inference engine sử dụng bao gồm layer fusion, nơi nhiều phép toán được kết hợp thành một bước duy nhất để giảm truy cập bộ nhớ, và model quantization, chuyển đổi các trọng số từ định dạng số thực dấu phẩy động có độ chính xác cao sang các số nguyên có độ chính xác thấp hơn (ví dụ: INT8).
Những tối ưu hóa này cho phép các kiến trúc tiên tiến như Ultralytics YOLO26 chạy ở tốc độ cực cao mà không làm giảm đáng kể accuracy. Các engine khác nhau thường được tùy chỉnh cho các hệ sinh thái phần cứng cụ thể để khai thác hiệu suất tối đa:
- NVIDIA TensorRT: Mang lại hiệu suất inference cao trên các GPUs của NVIDIA bằng cách sử dụng các kernel đặc thù cho phần cứng và tối ưu hóa biểu đồ mạng (network graph).
- Intel OpenVINO: Tối ưu hóa hiệu suất deep learning trên các kiến trúc Intel, bao gồm CPUs và đồ họa tích hợp, giúp nó trở nên lý tưởng cho edge computing.
- ONNX Runtime: Một trình tăng tốc đa nền tảng hỗ trợ các model ở định dạng ONNX, đóng vai trò cầu nối giữa các framework và backend phần cứng khác nhau.
Link to this sectionCác ứng dụng trong thực tế#
Inference engine là những động cơ thầm lặng đứng sau nhiều tiện ích AI hiện đại, cho phép các hệ thống computer vision phản ứng tức thì với môi trường xung quanh.
-
Xe tự lái: Trên các dòng xe tự lái, các model object detection phải xác định người đi bộ, biển báo giao thông và các phương tiện khác trong tích tắc. Một inference engine chạy cục bộ trên phần cứng của xe đảm bảo rằng quá trình xử lý này diễn ra với tốc độ real-time inference, vì việc phụ thuộc vào kết nối cloud sẽ gây ra những độ trễ nguy hiểm.
-
Sản xuất thông minh: Các nhà máy sử dụng camera industrial IoT để kiểm tra sản phẩm trên dây chuyền lắp ráp. Một inference engine xử lý các luồng video để thực hiện anomaly detection, đánh dấu lỗi ngay lập tức. Quá trình tự động hóa này giúp giảm thiểu lãng phí và đảm bảo kiểm soát chất lượng nghiêm ngặt mà không làm chậm quá trình sản xuất.
Link to this sectionInference Engine so với Training Framework#
Việc phân biệt giữa phần mềm được sử dụng để tạo model và engine được sử dụng để chạy model rất hữu ích. Một Training Framework (như PyTorch hoặc TensorFlow) cung cấp các công cụ để thiết kế kiến trúc, tính toán loss và cập nhật các tham số thông qua supervised learning. Nó ưu tiên sự linh hoạt và các khả năng gỡ lỗi.
Ngược lại, Inference Engine lấy artifact đã hoàn thiện từ training framework và ưu tiên tốc độ thực thi cũng như hiệu quả bộ nhớ. Mặc dù bạn có thể chạy inference trong một training framework, nhưng nó hiếm khi hiệu quả bằng việc sử dụng một engine chuyên dụng, đặc biệt là khi triển khai trên điện thoại di động hoặc các thiết bị nhúng thông qua các công cụ như TensorFlow Lite hoặc Apple Core ML.
Link to this sectionSử dụng Inference Engine với YOLO26#
Gói ultralytics trừu tượng hóa phần lớn sự phức tạp của các inference engine, cho phép người dùng chạy dự đoán một cách liền mạch. Bên dưới lớp vỏ, nó xử lý việc tiền xử lý hình ảnh và thực thi model. Đối với người dùng muốn mở rộng quy mô, Ultralytics Platform đơn giản hóa quy trình huấn luyện và xuất các model sang các định dạng tối ưu tương thích với nhiều inference engine khác nhau.
Ví dụ sau đây minh họa cách load một model YOLO26 đã được huấn luyện sẵn và chạy inference trên một hình ảnh:
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()





