Khám phá cách ONNX nâng cao tính di động và khả năng tương tác của mô hình AI, cho phép triển khai liền mạch Ultralytics YOLO các mô hình trên nhiều nền tảng khác nhau.
Trao đổi mạng nơ-ron mở ( ONNX ) là một tiêu chuẩn nguồn mở được thiết kế để biểu diễn các mô hình học máy (ML) theo cách đảm bảo tính di động trên các khuôn khổ và phần cứng khác nhau. Ban đầu được phát triển bởi các công ty như Microsoft và Facebook, ONNX đóng vai trò là "trình biên dịch đa năng" cho AI. Nó cho phép các nhà phát triển huấn luyện một mô hình trong một hệ sinh thái, chẳng hạn như PyTorch , và triển khai liền mạch trong một hệ sinh thái khác, chẳng hạn như TensorFlow hoặc một công cụ suy luận chuyên dụng. Khả năng tương tác này giúp loại bỏ nhu cầu xây dựng lại hoặc đào tạo lại mạng khi chuyển từ môi trường nghiên cứu sang ứng dụng sản xuất, giúp đơn giản hóa đáng kể quy trình triển khai mô hình .
Về bản chất, ONNX định nghĩa một tập hợp các toán tử chung—các khối xây dựng của mô hình học sâu (DL) và học máy—và một định dạng tệp chuẩn. Khi một mô hình được chuyển đổi thành ONNX Cấu trúc tính toán của nó được ánh xạ thành một đồ thị tính toán tĩnh. Trong đồ thị này, các nút biểu diễn các phép toán (như tích chập hoặc hàm kích hoạt), và các cạnh biểu diễn luồng dữ liệu tenxơ giữa chúng.
Bởi vì biểu diễn đồ thị này được chuẩn hóa, các nhà sản xuất phần cứng có thể xây dựng các nhà cung cấp thực thi được tối ưu hóa cho ONNX . Điều này có nghĩa là một .onnx tập tin có thể được tăng tốc trên nhiều phần cứng khác nhau, bao gồm
CPU,
GPU (Bộ xử lý đồ họa), hoặc chuyên ngành
TPU ( Tensor Đơn vị xử lý), thường sử dụng hiệu suất cao ONNX Thời gian chạy.
Đối với người dùng ultralytics gói, chuyển đổi một mô hình được đào tạo thành ONNX Định dạng là một quá trình đơn giản. Thư viện xử lý việc ánh xạ phức tạp các lớp vào ONNX tự động chuẩn. Đoạn mã sau đây minh họa cách xuất YOLO11 mô hình, chuẩn bị cho việc triển khai rộng rãi hơn.
from ultralytics import YOLO
# Load a pretrained YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to ONNX format
# This creates 'yolo11n.onnx' in the current directory
model.export(format="onnx")
Sự linh hoạt của ONNX khiến nó trở thành một thành phần quan trọng trong cơ sở hạ tầng AI hiện đại, đặc biệt là đối với các tác vụ thị giác máy tính (CV) .
Hiểu cách ONNX tương tác với các công cụ khác giúp lựa chọn chiến lược triển khai phù hợp.
.pt hoặc Keras .h5 rất tuyệt vời cho việc đào tạo và tiết kiệm
trọng số mô hình (model weights) trong hệ sinh thái cụ thể của chúng. Tuy nhiên, chúng thường yêu cầu phải cài đặt khuôn khổ gốc để chạy mô hình. ONNX tách mô hình khỏi khuôn khổ đào tạo, giúp thực hiện dễ dàng hơn
AI cạnh các lần triển khai mà việc cài đặt toàn bộ thư viện đào tạo là không thực tế do hạn chế về bộ nhớ hoặc lưu trữ.