Khám phá Sàn giao dịch Mạng thần kinh mở (Open Neural Network Exchange) ONNX định dạng ). Tìm hiểu cách xuất Ultralytics YOLO26 đến ONNX Để triển khai nhanh chóng trên nhiều nền tảng và tối ưu hóa phần cứng.
ONNX (Open Neural Network Exchange) là một định dạng mã nguồn mở được thiết kế để biểu diễn các mô hình học máy, cho phép khả năng tương tác giữa các khung và công cụ AI khác nhau. Nó đóng vai trò như một trình dịch phổ quát cho học sâu, cho phép các nhà phát triển xây dựng mô hình trong một khung duy nhất—chẳng hạn như PyTorch , TensorFlow hoặc Scikit-learn—và triển khai chúng một cách liền mạch trong một môi trường khác được tối ưu hóa cho suy luận. Bằng cách định nghĩa một tập hợp các toán tử chung và một định dạng tệp chuẩn, ONNX Điều này loại bỏ nhu cầu về các kịch bản chuyển đổi tùy chỉnh phức tạp vốn trước đây cần thiết để chuyển các mô hình từ nghiên cứu sang sản xuất. Tính linh hoạt này rất quan trọng đối với các quy trình làm việc AI hiện đại, nơi việc huấn luyện có thể diễn ra trên các GPU đám mây mạnh mẽ trong khi việc triển khai nhắm đến nhiều phần cứng khác nhau như thiết bị biên, điện thoại di động hoặc trình duyệt web.
Trong bối cảnh trí tuệ nhân tạo đang phát triển nhanh chóng, các nhà nghiên cứu và kỹ sư thường sử dụng các công cụ khác nhau cho các giai đoạn khác nhau của vòng đời phát triển. Một nhà khoa học dữ liệu có thể thích sự linh hoạt của... PyTorch Dùng cho mục đích thử nghiệm và đào tạo, trong khi kỹ sư sản xuất cần hiệu năng tối ưu của TensorRT hoặc OpenVINO để triển khai. Nếu không có định dạng trao đổi tiêu chuẩn, việc di chuyển mô hình giữa các hệ sinh thái này sẽ khó khăn và dễ xảy ra lỗi.
ONNX Nó thu hẹp khoảng cách này bằng cách cung cấp một định nghĩa chung về đồ thị tính toán. Khi một mô hình được xuất sang ONNX Nó được tuần tự hóa thành một định dạng nắm bắt cấu trúc mạng (các lớp, kết nối) và các tham số (trọng số, độ lệch) theo cách không phụ thuộc vào khung phần mềm. Điều này cho phép các công cụ suy luận được điều chỉnh đặc biệt cho khả năng tăng tốc phần cứng — chẳng hạn như ONNX Runtime — thực thi mô hình một cách hiệu quả trên nhiều nền tảng, bao gồm Linux, Windows, macOS, v.v. Android , Và iOS .
Việc áp dụng định dạng Open Neural Network Exchange mang lại một số lợi thế chiến lược cho các dự án trí tuệ nhân tạo:
.onnx tập tin có thể được tăng tốc trên NVIDIA GPU, Intel CPU, hoặc NPU (Bộ xử lý thần kinh) di động sử dụng các công cụ như
OpenVINO hoặc CoreML .
Tính linh hoạt của ONNX Điều này khiến nó trở thành một nguyên liệu thiết yếu trong nhiều ngành công nghiệp khác nhau. Dưới đây là hai ví dụ cụ thể về ứng dụng của nó:
Hãy xem xét một ứng dụng di động được thiết kế để giám sát sức khỏe cây trồng theo thời gian thực . Mô hình có thể được huấn luyện trên một máy chủ đám mây mạnh mẽ bằng cách sử dụng một tập dữ liệu lớn gồm hình ảnh cây trồng. Tuy nhiên, ứng dụng cần phải chạy ngoại tuyến trên điện thoại thông minh của người nông dân. Bằng cách xuất mô hình đã được huấn luyện sang... ONNX Các nhà phát triển có thể tích hợp nó vào ứng dụng di động bằng cách sử dụng ONNX Runtime Mobile. Tính năng này cho phép bộ xử lý của điện thoại thực hiện phát hiện đối tượng cục bộ, xác định sâu bệnh ngay lập tức mà không cần kết nối internet.
Trong thương mại điện tử, tính năng "thử đồ ảo" có thể sử dụng ước lượng tư thế để chồng lớp quần áo lên hình ảnh từ webcam của người dùng. Việc huấn luyện mô hình này có thể diễn ra ở... Python , nhưng mục tiêu triển khai là trình duyệt web. Sử dụng ONNX Mô hình có thể được chuyển đổi và chạy trực tiếp trong trình duyệt của người dùng thông qua... ONNX Web thời gian thực. Phương pháp này tận dụng khả năng của thiết bị phía máy khách (WebGL hoặc WebAssembly) để thực hiện các tác vụ thị giác máy tính , đảm bảo trải nghiệm mượt mà và bảo vệ quyền riêng tư vì dữ liệu video không bao giờ rời khỏi máy tính của người dùng.
Việc phân biệt là rất hữu ích. ONNX từ các định dạng mô hình và công cụ khác:
Cái Ultralytics Hệ sinh thái này đơn giản hóa quá trình chuyển đổi các mô hình tiên tiến như YOLO26 thành... ONNX Định dạng. Chức năng xuất được tích hợp trực tiếp vào thư viện, tự động xử lý việc duyệt đồ thị phức tạp và ánh xạ toán tử.
Ví dụ sau đây minh họa cách xuất mô hình YOLO26 đã được huấn luyện trước sang ONNX Định dạng để triển khai:
from ultralytics import YOLO
# Load the YOLO26n model (Nano version recommended for edge deployment)
model = YOLO("yolo26n.pt")
# Export the model to ONNX format
# The 'dynamic' argument enables variable input sizes
path = model.export(format="onnx", dynamic=True)
print(f"Model exported successfully to: {path}")
Sau khi xuất khẩu, điều này .onnx Tệp này có thể được sử dụng trong
Ultralytics Nền tảng để quản lý hoặc triển khai trực tiếp đến các thiết bị biên bằng cách sử dụng ONNX Runtime, giúp cho việc xử lý hình ảnh máy tính hiệu năng cao trở nên dễ dàng tiếp cận trong hầu hết mọi môi trường.