Đón xem YOLO Vision 2025!
25 tháng 9, 2025
10:00 — 18:00 BST
Sự kiện kết hợp
Yolo Vision 2024
Bảng chú giải thuật ngữ

ONNX (Open Neural Network Exchange)

Khám phá cách ONNX tăng cường 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 các mô hình Ultralytics YOLO trên các nền tảng khác nhau.

ONNX (Open Neural Network Exchange) là một định dạng mã nguồn mở để biểu diễn các mô hình học máy (ML). Được đồng phát triển bởi các công ty như Microsoft và Facebook, ONNX hoạt động như một trình dịch phổ quát, cho phép các nhà phát triển di chuyển các mô hình giữa các framework và công cụ ML khác nhau. Khả năng tương tác này rất quan trọng để hợp lý hóa hành trình từ phát triển mô hình đến sản xuất. Thay vì bị khóa vào một hệ sinh thái duy nhất, các nhóm có thể huấn luyện một mô hình trong một framework, như PyTorch, và triển khai nó để suy luận bằng một framework khác, chẳng hạn như TensorFlow hoặc một công cụ suy luận chuyên dụng. Ví dụ: các mô hình Ultralytics YOLO có thể dễ dàng được xuất sang định dạng ONNX, mang lại sự linh hoạt tối đa cho triển khai trên các nền tảng khác nhau.

Cách ONNX Hoạt Động

ONNX cung cấp một định nghĩa tiêu chuẩn cho một đồ thị tính toán, cùng với một danh sách các toán tử tích hợp. Khi bạn chuyển đổi một mô hình sang định dạng ONNX, kiến trúc của nó—bao gồm các lớp và các phép toán học—được ánh xạ tới tiêu chuẩn phổ quát này. Kết quả là .onnx tệp chứa cả cấu trúc mạng và các tham số đã được huấn luyện trọng số mô hình (model weights).

Tệp tiêu chuẩn hóa này sau đó có thể được tải bởi bất kỳ công cụ nào hỗ trợ đặc tả ONNX. Điều này bao gồm:

  • Framework học sâu: Các framework như PyTorchTensorFlow có các tiện ích để nhập và xuất các mô hình ONNX.
  • Thời gian chạy suy luận: Thời gian chạy hiệu suất cao như ONNX Runtime, OpenVINO của Intel và TensorRT của NVIDIA được thiết kế để thực thi các mô hình ONNX một cách hiệu quả trên phần cứng cụ thể, chẳng hạn như CPU hoặc GPU.
  • Dịch vụ đám mây: Các nền tảng đám mây lớn, bao gồm Azure Machine LearningAmazon SageMaker, sử dụng ONNX để đơn giản hóa việc phục vụ mô hình.

Ứng dụng thực tế của ONNX

Tính linh hoạt của ONNX làm cho nó trở nên vô giá trong nhiều tình huống thị giác máy tính và ML.

  1. Triển khai AI trên các Thiết bị Edge: Một nhà phát triển có thể huấn luyện một mô hình phát hiện đối tượng phức tạp như Ultralytics YOLO11 trên một máy tính để bàn mạnh mẽ với GPU NVIDIA. Để ứng dụng chạy trên một thiết bị edge tiêu thụ điện năng thấp như Raspberry Pi hoặc một camera thông minh được sử dụng trong phân tích bán lẻ, mô hình được xuất sang ONNX. Sau đó, nó có thể được tối ưu hóa bởi một runtime như ONNX Runtime hoặc OpenVINO để có hiệu suất hiệu quả trên phần cứng mục tiêu mà không cần môi trường PyTorch ban đầu.

  2. Tích hợp các mô hình vào các ứng dụng đa dạng: Hãy xem xét một công ty chăm sóc sức khỏe xây dựng một mô hình phân tích hình ảnh y tế bằng Python và TensorFlow. Cơ sở hạ tầng phần mềm hiện có của bệnh viện được xây dựng bằng C# và .NET. Thay vì viết lại mô hình, nhóm xuất nó sang ONNX. Ứng dụng C# sau đó có thể sử dụng ONNX Runtime cho .NET để tích hợp trực tiếp các khả năng của mô hình, giảm đáng kể thời gian và độ phức tạp của quá trình phát triển.

ONNX so với các khái niệm liên quan

Điều quan trọng là phải phân biệt ONNX với các thuật ngữ liên quan:

  • Định dạng dành riêng cho Framework: Các định dạng như của PyTorch .pt hoặc SavedModel của TensorFlow tương thích với các framework tương ứng của chúng. ONNX đóng vai trò trung gian, cho phép chuyển đổi giữa các định dạng này hoặc triển khai thông qua một runtime chung. TorchScript là một định dạng khác để tuần tự hóa mô hình PyTorch, đôi khi được sử dụng như một giải pháp thay thế hoặc tiền thân của xuất ONNX.
  • Công cụ suy luận/Thời gian chạy: Các công cụ như ONNX Runtime, TensorRT và OpenVINO là các thư viện phần mềm được thiết kế để thực thi các mô hình ML một cách hiệu quả. Nhiều công cụ trong số này có thể sử dụng các mô hình ONNX, thường áp dụng thêm các tối ưu hóa (như lượng tử hóa hoặc hợp nhất đồ thị) cho các mục tiêu phần cứng cụ thể. ONNX cung cấp đầu vào mô hình tiêu chuẩn hóa cho các công cụ này.

Tóm lại, ONNX là một tiêu chuẩn quan trọng để đảm bảo tính linh hoạt và khả năng tương tác trong quy trình vận hành machine learning (MLOps), cho phép các nhà phát triển chọn các công cụ tốt nhất để huấn luyện và triển khai mà không bị giới hạn bởi các hạn chế của framework. Các nền tảng như Ultralytics HUB tận dụng các định dạng như vậy để đơn giản hóa hành trình từ phát triển mô hình đến ứng dụng thực tế. Để tìm hiểu thêm, hãy truy cập trang web ONNX chính thức và khám phá dự án trên GitHub.

Tham gia cộng đồng Ultralytics

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
Đã sao chép liên kết vào clipboard