Yolo Tầm nhìn Thâm Quyến
Thâm Quyến
Tham gia ngay
Bảng chú giải thuật ngữ

ONNX (Trao đổi mạng nơ-ron mở)

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.

Vai trò của ONNX trong Trí tuệ nhân tạo hiện đại

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 .

Những lợi ích chính khi sử dụng ONNX

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:

  • Khả năng tương tác giữa các framework: Các nhà phát triển có thể chuyển đổi giữa các framework mà không bị ràng buộc vào một hệ sinh thái duy nhất. Bạn có thể huấn luyện một mô hình bằng API Python thân thiện với người dùng của Ultralytics và xuất nó để sử dụng trong ứng dụng C++ hoặc môi trường JavaScript dựa trên web.
  • Tối ưu hóa phần cứng: Nhiều nhà sản xuất phần cứng cung cấp các nhà cung cấp thực thi chuyên dụng để giao tiếp với... ONNX Điều này có nghĩa là một .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 .
  • Suy luận nhanh hơn: ONNX Runtime áp dụng các tối ưu hóa đồ thị—chẳng hạn như hợp nhất nút và gấp hằng số—có thể giảm đáng kể độ trễ suy luận . Điều này rất cần thiết cho các ứng dụng thời gian thực như xe tự hành hoặc dây chuyền sản xuất tốc độ cao.
  • Đơn giản hóa quy trình triển khai: Thay vì duy trì các quy trình triển khai riêng biệt cho từng khung đào tạo, các nhóm kỹ thuật có thể chuẩn hóa quy trình này. ONNX Với định dạng phân phối này, ModelOps sẽ được tối ưu hóa quy trình.

Các Ứng dụng Thực tế

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ó:

1. Trí tuệ nhân tạo biên trên thiết bị di động

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.

2. Suy luận Web đa nền tảng

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.

So sánh với các thuật ngữ liên quan

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:

  • so với TensorRT : Trong khi ONNX là một định dạng trao đổi , TensorRT là một công cụ suy luận và tối ưu hóa dành riêng cho NVIDIA GPU. Một quy trình làm việc phổ biến bao gồm việc xuất mô hình sang GPU. ONNX trước tiên, rồi sau đó phân tích cú pháp đó ONNX tệp vào TensorRT để đạt được thông lượng tối đa trên NVIDIA phần cứng.
  • So với TensorFlow SavedModel : SavedModel là định dạng tuần tự hóa gốc của TensorFlow . Mặc dù mạnh mẽ trong phạm vi... Google hệ sinh thái này có khả năng tương thích phổ quát thấp hơn so với các hệ sinh thái khác. ONNX Thường có các công cụ để chuyển đổi SavedModels thành... ONNX để nhận được sự hỗ trợ rộng rãi hơn từ các nền tảng khác.
  • So với CoreML : CoreML là khung phần mềm của Apple dành cho học máy trên thiết bị. Mặc dù khác biệt, các mô hình thường được chuyển đổi từ CoreML. PyTorch ĐẾN ONNX và sau đó từ ONNX ĐẾN CoreML (hoặc trực tiếp) để chạy hiệu quả trên iPhone và iPad.

Xuất sang ONNX với Ultralytics

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.

Tham gia Ultralytics cộng đồng

Tham gia vào tương lai của AI. Kết nối, hợp tác và phát triển cùng với những nhà đổi mới toàn cầu

Tham gia ngay