HƯỚNG DẪN KỸ THUẬT

ONNX và khả năng tương tác mô hình

ONNX (Trao đổi mạng thần kinh mở) là một định dạng tiêu chuẩn mở để thể hiện các mô hình học máy để chúng có thể di chuyển tự do giữa các khung và thời gian chạy.

Đọc trong 2 phútCập nhật lần cuối

Tổng quan

It lets you train a model in one tool, like PyTorch, and deploy it in another environment without rewriting it.

Lặn sâu

Các mô hình lưu trữ các khung khác nhau (PyTorch, TensorFlow, scikit-learn) ở các định dạng không tương thích, khiến việc triển khai trở nên khó khăn. ONNX, được ra mắt vào năm 2017 bởi Microsoft và Facebook và hiện được quản lý bởi Linux Foundation, giải quyết vấn đề này bằng cách xác định định dạng tệp chung và một nhóm toán tử được tiêu chuẩn hóa (như Conv, MatMul, Relu) mô tả mô hình dưới dạng biểu đồ tính toán. Bạn xuất mô hình đã đào tạo sang tệp .onnx và mọi thời gian chạy tương thích đều có thể tải mô hình đó. Sau đó, ONNX Runtime thực thi biểu đồ một cách hiệu quả trên nhiều phần cứng khác nhau, áp dụng các tối ưu hóa như tổng hợp toán tử và lượng tử hóa cũng như định tuyến tính toán tới các chương trình phụ trợ như CPU, GPU NVIDIA (thông qua TensorRT) hoặc các bộ tăng tốc chuyên dụng. Điều này tách riêng việc đào tạo mô hình khỏi quá trình triển khai.

Hiểu biết kỹ thuật

Mô hình ONNX là một biểu đồ tính toán được tuần tự hóa: các nút là các toán tử được rút ra từ một tập toán tử được phiên bản (opset) và các cạnh mang các tenxơ có hình dạng và kiểu xác định. Các nhà xuất khẩu theo dõi hoặc viết kịch bản cho mô hình của bạn để ghi lại biểu đồ này. Khi suy luận, ONNX Runtime phân vùng biểu đồ theo 'nhà cung cấp thực thi' (CPU, CUDA, TensorRT, v.v.), mỗi nhà cung cấp xử lý các toán tử mà nó hỗ trợ tốt nhất và áp dụng các tối ưu hóa ở cấp độ biểu đồ như gấp liên tục và hợp nhất nút để tăng tốc mọi thứ.

Tác động chiến lược

Chi phí và ngân sách

Các quyết định về kiến ​​trúc sẽ thúc đẩy hiệu suất và chi phí vận hành trong nhiều năm.

Quyết định rõ ràng hơn

Giáo dục kỹ thuật giúp các nhóm chọn nhóm phù hợp chứ không chỉ nhóm mới nhất.

Kiểm soát chất lượng

Lựa chọn kỹ thuật tốt hơn làm giảm sự cố về độ tin cậy trong sản xuất.

Tương lai của ONNX và khả năng tương tác của mô hình

ONNX đang tự khẳng định mình là ngôn ngữ chung để triển khai mô hình, đặc biệt là phục vụ biên và đa nền tảng. Mong đợi phạm vi điều hành rộng hơn cho các mô hình ngôn ngữ lớn và máy biến áp, hỗ trợ chặt chẽ hơn cho suy luận lượng tử hóa và bit thấp, đồng thời tích hợp sâu hơn với thời gian chạy của nhà cung cấp phần cứng. Khi hệ sinh thái chip AI chuyên dụng phát triển, định dạng trung lập với nhà cung cấp như ONNX trở nên có giá trị hơn, cho phép các nhóm trao đổi phần cứng mà không cần tái thiết kế mô hình và ONNX Runtime tiếp tục mở rộng sang các mục tiêu di động và web (thông qua WebAssembly).

Triển khai trong thế giới thực

Xuất trình phân loại hình ảnh PyTorch sang ONNX và chạy nó với ONNX Runtime trên máy chủ sản xuất C++ không phụ thuộc vào Python.

Triển khai mô hình cho thiết bị di động hoặc trình duyệt thông qua ONNX Runtime Web (WebAssembly) để suy luận trên thiết bị.

Tăng tốc máy biến áp xuất khẩu với NVIDIA TensorRT với tư cách là nhà cung cấp thực thi ONNX Runtime để có độ trễ thấp hơn.

Lượng tử hóa mô hình ONNX thành int8 để thu nhỏ kích thước của nó và tăng tốc độ suy luận trên các CPU biên.

Rủi ro & lan can

Tối ưu hóa một điểm chuẩn có thể che giấu những điểm yếu của hệ thống rộng hơn.

Chi phí cơ sở hạ tầng và bảo trì thường được đánh giá thấp.

Khoảng cách về bảo mật và khả năng quan sát có thể tăng lên khi hệ thống trở nên phức tạp hơn.

Lộ trình thực hiện

1

Xác định các mục tiêu về độ trễ, chất lượng và chi phí trước khi triển khai.

2

Điểm chuẩn trong điều kiện tải và dữ liệu thực tế.

3

Giám sát thiết bị về lỗi, độ lệch và tác động của người dùng.

4

Chuẩn bị đường dẫn khôi phục và ứng phó sự cố trước khi mở rộng quy mô.

Tiếp tục khám phá

Free newsletter

Get the daily AI briefing

Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.

One email each weekday. Unsubscribe in one click. We never sell or share your address.

Test yourself

Take the ONNX and Model Interoperability quiz

Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.

Bắt đầu bài kiểm tra

Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation

Câu hỏi thường gặp

What is ONNX and Model Interoperability?

ONNX (Trao đổi mạng thần kinh mở) là một định dạng tiêu chuẩn mở để thể hiện các mô hình học máy để chúng có thể di chuyển tự do giữa các khung và thời gian chạy. Nó cho phép bạn huấn luyện mô hình trong một công cụ, như PyTorch, và triển khai nó trong môi trường khác mà không cần viết lại.

Vấn đề cốt lõi nào ONNX chủ yếu giải quyết?

ONNX xác định định dạng dùng chung để mô hình được đào tạo trong một khung có thể được triển khai trong môi trường khác mà không cần viết lại.

Tệp ONNX thể hiện mô hình như thế nào?

Mô hình ONNX là một biểu đồ tính toán có các nút là các toán tử được tiêu chuẩn hóa (như Conv, MatMul, Relu) được kết nối bằng các tensor.

Những công ty nào lần đầu ra mắt ONNX vào năm 2017?

ONNX được Microsoft và Facebook cùng giới thiệu vào năm 2017 và hiện được lưu trữ trong Linux Foundation.

Trong ONNX Runtime, 'nhà cung cấp thực thi' là gì?

Nhà cung cấp thực thi là các chương trình phụ trợ có thể cắm được (CPU, CUDA, TensorRT, v.v.) mà ONNX Runtime sử dụng để chạy các toán tử mà mỗi toán tử hỗ trợ tốt nhất.

Phiên bản 'opset' (bộ toán tử) trong mô hình ONNX xác định điều gì?

Phiên bản opset chỉ định tập hợp tiêu chuẩn và phiên bản toán tử mà mô hình dựa vào, đảm bảo thời gian chạy tương thích diễn giải chính xác.