Thuật ngữ

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

Khám phá cách ONNX nâng cao khả năng 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 nhiều nền tảng khác nhau.

ONNX (Open Neural Network Exchange - Trao đổi Mạng Nơ-ron Mở) là một định dạng mã nguồn mở dùng để 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 biên dịch đa năng, cho phép các nhà phát triển di chuyển mô hình giữa các nền tảng và công cụ ML khác nhau. Khả năng tương tác này rất quan trọng để đơn giản hóa hành trình từ phát triển mô hình đến sản xuất. Thay vì bị bó buộc trong 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 nền tảng, như PyTorch , và triển khai nó để suy luận bằng một nền tảng 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 YOLO của Ultralytics có thể dễ dàng xuất sang định dạng ONNX , mang lại sự linh hoạt tối đa cho việc triển khai trên nhiều nền tảng khác nhau .

ONNX hoạt động như thế nào

ONNX cung cấp một định nghĩa chuẩn cho đồ thị tính toán, cùng với 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 - sẽ được ánh xạ theo tiêu chuẩn chung này. Kết quả .onnx tập tin chứa cả cấu trúc mạng và cấu trúc đã được đào tạo trọng lượng mô hình.

Sau đó, bất kỳ công cụ nào hỗ trợ thông số kỹ thuật ONNX đều có thể tải tệp chuẩn này. Bao gồm:

  • Khung học sâu : Các khung như PyTorchTensorFlow có tiện ích để nhập và xuất các mô hình ONNX.
  • Thời gian chạy suy luận : Các 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 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 cung cấp mô hình .

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

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

  1. Triển khai AI trên thiết bị biên : 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áy tính để bàn mạnh mẽ với GPU NVIDIA. Để ứng dụng chạy trên thiết bị biên công suất thấp như Raspberry Pi hoặc camera thông minh 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ằng một môi trường chạy như ONNX Runtime hoặc OpenVINO để đạt hiệu suất cao trên phần cứng mục tiêu mà không cần môi trường PyTorch gốc.

  2. Tích hợp 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ô 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 tính năng của mô hình, giúp giảm đáng kể thời gian phát triển và độ phức tạp.

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 khung: Các định dạng như PyTorch .pt hoặc SavedModel của TensorFlow là bản địa của các khuôn khổ tương ứng. ONNX hoạt động như một 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 thời gian chạy chung. Ngọn đuốc 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 cho việc 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 học máy (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 các tối ưu hóa bổ sung (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 được 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 máy học (MLOps) , cho phép các nhà phát triển lựa chọn công cụ tốt nhất để đào tạo và triển khai mà không bị giới hạn bởi các khuôn khổ. Các nền tảng như Ultralytics HUB tận dụng các định dạng nà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 chính thức của ONNX 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, cộng tác và phát triển với những nhà đổi mới toàn cầu

Tham gia ngay
Liên kết đã được sao chép vào clipboard