Triển khai các model Ultralytics YOLO bằng tích hợp ExecuTorch
Khám phá cách xuất các model Ultralytics YOLO như Ultralytics YOLO11 sang định dạng ExecuTorch để triển khai hiệu quả, tương thích tự nhiên với PyTorch trên thiết bị edge và di động.
Abirami Vina14 phút đọc
Một số ứng dụng computer vision, chẳng hạn như kiểm tra chất lượng tự động, drone tự hành hoặc hệ thống an ninh thông minh, hoạt động tốt nhất khi các model Ultralytics YOLO, chẳng hạn như Ultralytics YOLO11, chạy gần cảm biến ghi lại hình ảnh. Nói cách khác, các model này cần xử lý dữ liệu ngay tại nơi dữ liệu được tạo ra — trên camera, drone hoặc hệ thống nhúng — thay vì gửi dữ liệu lên cloud.
Phương pháp này, được gọi là edge AI, cho phép model thực hiện inference trực tiếp trên thiết bị ghi nhận dữ liệu. Bằng cách xử lý thông tin cục bộ thay vì phụ thuộc vào server từ xa, hệ thống có thể giảm độ trễ, tăng cường quyền riêng tư dữ liệu và cải thiện độ tin cậy, ngay cả trong môi trường có kết nối internet hạn chế hoặc không có kết nối.
Ví dụ, camera trong nhà máy kiểm tra hàng nghìn sản phẩm mỗi phút hoặc drone điều hướng trong môi trường phức tạp không thể chấp nhận độ trễ do xử lý trên cloud gây ra. Chạy Ultralytics YOLO11 trực tiếp trên thiết bị cho phép thực hiện inference tức thì ngay trên thiết bị.
Để việc chạy các model Ultralytics YOLO trên edge trở nên dễ dàng và hiệu quả hơn, tích hợp ExecuTorch mới do Ultralytics hỗ trợ cung cấp quy trình tinh gọn để export và triển khai model trực tiếp lên thiết bị di động và thiết bị nhúng. ExecuTorch là một phần của hệ sinh thái PyTorch Edge, cung cấp giải pháp đầu cuối để chạy model AI trực tiếp trên phần cứng di động và edge, bao gồm điện thoại, thiết bị đeo, bo mạch nhúng và vi điều khiển.
Tích hợp này giúp dễ dàng đưa model Ultralytics YOLO, chẳng hạn như YOLO11, từ khâu training đến triển khai trên thiết bị edge. Bằng cách kết hợp các khả năng vision của YOLO11 với runtime gọn nhẹ và pipeline export PyTorch của ExecuTorch, người dùng có thể triển khai model chạy hiệu quả trên phần cứng edge mà vẫn duy trì độ chính xác và hiệu năng của inference dựa trên PyTorch.
Trong bài viết này, chúng ta sẽ tìm hiểu kỹ hơn cách tích hợp ExecuTorch hoạt động, vì sao ExecuTorch phù hợp với các ứng dụng AI biên và cách bạn có thể bắt đầu triển khai model Ultralytics YOLO bằng ExecuTorch.
ExecuTorch là gì?#
Thông thường, khi huấn luyện model bằng PyTorch, model sẽ chạy trên các máy chủ mạnh hoặc bộ xử lý đồ họa (GPUs) trên đám mây. Tuy nhiên, để triển khai chính model đó lên thiết bị di động hoặc nhúng như điện thoại thông minh, drone hay vi điều khiển, cần có giải pháp chuyên biệt có thể xử lý giới hạn về sức mạnh tính toán, bộ nhớ và kết nối.
Đó chính là những gì ExecuTorch cung cấp. ExecuTorch là giải pháp đầu cuối được phát triển trong hệ sinh thái PyTorch Edge, cho phép thực hiện inference hiệu quả ngay trên thiết bị, trên các nền tảng di động, nhúng và edge. ExecuTorch mở rộng khả năng của PyTorch vượt ra ngoài cloud, cho phép model AI chạy trực tiếp trên thiết bị cục bộ.
Đưa inference PyTorch lên edge#
Cốt lõi của ExecuTorch là runtime C++ gọn nhẹ, cho phép thực thi model PyTorch trực tiếp trên thiết bị. ExecuTorch sử dụng định dạng model PyTorch ExecuTorch (.pte), một định dạng export được tối ưu để tải nhanh hơn, chiếm ít bộ nhớ hơn và có tính di động cao hơn.
ExecuTorch hỗ trợ XNNPACK làm backend mặc định để inference hiệu quả trên Đơn vị xử lý trung tâm (CPU), đồng thời mở rộng khả năng tương thích với nhiều backend phần cứng, bao gồm CoreML, Metal, Vulkan, Qualcomm, MediaTek, Arm EthosU, OpenVINO và các nền tảng khác.
Các backend này cho phép tăng tốc tối ưu trên thiết bị di động, thiết bị nhúng và thiết bị edge chuyên dụng. ExecuTorch cũng tích hợp với pipeline export PyTorch, hỗ trợ các tính năng nâng cao như lượng tử hóa và xử lý shape động nhằm cải thiện hiệu năng và khả năng thích ứng trong nhiều môi trường triển khai khác nhau.
Lượng tử hóa giảm kích thước model và tăng tốc inference bằng cách chuyển các giá trị có độ chính xác cao (chẳng hạn số thực 32-bit) sang giá trị có độ chính xác thấp hơn; xử lý shape động cho phép model xử lý hiệu quả các kích thước đầu vào thay đổi. Cả hai tính năng đều rất quan trọng khi chạy model AI trên thiết bị edge có tài nguyên hạn chế.

Hình 1. Tổng quan về cách ExecuTorch hoạt động (Nguồn)
Lớp hợp nhất dành cho phần cứng edge#
Ngoài vai trò là runtime, ExecuTorch còn hoạt động như một lớp trừu tượng thống nhất cho nhiều backend phần cứng. Nói đơn giản, ExecuTorch trừu tượng hóa các chi tiết đặc thù của phần cứng và quản lý cách model tương tác với những bộ xử lý khác nhau, bao gồm CPU, GPU và bộ xử lý thần kinh (NPU).
Sau khi model được export, có thể cấu hình ExecuTorch để sử dụng backend phù hợp nhất với thiết bị cụ thể. Nhà phát triển có thể triển khai model hiệu quả trên nhiều loại phần cứng mà không cần viết code riêng cho từng thiết bị hoặc duy trì các quy trình chuyển đổi riêng biệt.
Nhờ thiết kế mô-đun, khả chuyển và tích hợp chặt chẽ với PyTorch, ExecuTorch là lựa chọn phù hợp để triển khai các model thị giác máy tính như Ultralytics YOLO11 lên hệ thống di động và nhúng. ExecuTorch kết nối khoảng cách giữa huấn luyện model và triển khai trong thực tế, giúp AI biên nhanh hơn, hiệu quả hơn và dễ triển khai hơn.
Các tính năng chính của ExecuTorch#
Trước khi tìm hiểu cách xuất model Ultralytics YOLO sang định dạng ExecuTorch, hãy cùng khám phá điều gì khiến ExecuTorch trở thành lựa chọn đáng tin cậy để triển khai AI ở biên.
Dưới đây là một số tính năng nổi bật:
- Hỗ trợ lượng tử hóa: ExecuTorch hỗ trợ lượng tử hóa model, một kỹ thuật chuyển đổi các giá trị có độ chính xác cao sang độ chính xác thấp hơn nhằm giảm kích thước model và tăng tốc độ suy luận. Nhờ đó, model chạy nhanh hơn và sử dụng ít bộ nhớ hơn trên thiết bị biên mà vẫn duy trì độ chính xác gần như tương đương. Hiện tại, chức năng xuất của Ultralytics tạo ra các model FP32 cho backend XNNPACK.
- Sử dụng bộ nhớ hiệu quả: Một trong những ưu điểm lớn nhất của ExecuTorch là cách quản lý bộ nhớ. Thay vì dựa vào việc cấp phát bộ nhớ động, vốn có thể gây độ trễ và tăng mức tiêu thụ năng lượng, ExecuTorch sử dụng cơ chế lập kế hoạch bộ nhớ Ahead-of-Time (AOT). Trong quá trình export, ExecuTorch phân tích đồ thị model và tính toán trước lượng bộ nhớ cần thiết cho mỗi operation. Nhờ vậy, runtime có thể thực thi model theo kế hoạch bộ nhớ tĩnh, đảm bảo hiệu năng ổn định và ngăn tình trạng chậm hoặc crash trên thiết bị có RAM hoặc năng lực xử lý hạn chế.
- Metadata model tích hợp sẵn: Khi export bằng tích hợp do Ultralytics hỗ trợ, mỗi model sẽ có một file YAML chứa metadata quan trọng như kích thước ảnh đầu vào, tên class và tham số cấu hình. File bổ sung này giúp đơn giản hóa việc tích hợp model vào nhiều ứng dụng và đảm bảo hoạt động nhất quán trên các nền tảng edge khác nhau.
Cách export model Ultralytics YOLO sang định dạng ExecuTorch#
Giờ đây, khi đã hiểu rõ hơn về những gì ExecuTorch cung cấp, hãy cùng tìm hiểu cách export model Ultralytics YOLO sang định dạng ExecuTorch.
Bước 1: Cài đặt gói Python Ultralytics#
Để bắt đầu, bạn cần cài đặt gói Python Ultralytics bằng pip, một trình cài đặt package. Hãy chạy “pip install ultralytics” trong terminal hoặc command prompt.
Nếu đang làm việc trong môi trường Jupyter Notebook hoặc Google Colab, chỉ cần thêm dấu chấm than trước lệnh, như "!pip install ultralytics". Sau khi cài đặt, package Ultralytics cung cấp mọi công cụ cần thiết để training, kiểm thử và export model computer vision, bao gồm Ultralytics YOLO11.
Nếu gặp sự cố trong quá trình cài đặt hoặc export model, tài liệu Ultralytics chính thức và hướng dẫn về các vấn đề thường gặp cung cấp các bước khắc phục sự cố chi tiết và thực tiễn tốt nhất để giúp bạn nhanh chóng bắt đầu.
Bước 2: Export Ultralytics YOLO11#
Sau khi cài đặt package Ultralytics, bạn có thể tải một biến thể model YOLO11 và xuất model sang định dạng ExecuTorch. Ví dụ, bạn có thể dùng model được huấn luyện trước như “yolo11n.pt” và xuất model bằng cách gọi hàm export với định dạng được đặt thành “executorch”.
Thao tác này tạo thư mục có tên “yolo11n_executorch_model”, bao gồm file model đã tối ưu (.pte) và một file YAML metadata riêng chứa các thông tin quan trọng như kích thước ảnh và tên class.
Đây là code để export model:
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
model.export(format="executorch")Bước 3: Chạy inference sau khi export model#
Sau khi export, model đã sẵn sàng để triển khai trên thiết bị edge và di động bằng runtime ExecuTorch. Có thể tải file model .pte đã export vào ứng dụng để chạy inference theo thời gian thực ngay trên thiết bị mà không cần kết nối cloud.
Ví dụ, đoạn code bên dưới minh họa cách tải model đã export và chạy inference. Inference đơn giản là sử dụng model đã training để đưa ra dự đoán trên dữ liệu mới. Trong ví dụ này, model được kiểm thử trên ảnh một chiếc xe buýt lấy từ URL công khai.
executorch_model = YOLO("yolo11n_executorch_model")
results = executorch_model.predict("https://ultralytics.com/images/bus.jpg", save=True)Sau khi chạy code, bạn sẽ thấy ảnh kết quả có các đối tượng được phát hiện được lưu trong thư mục “runs/detect/predict”.

Hình 2. Phát hiện đối tượng bằng model Ultralytics YOLO11 đã export sang định dạng ExecuTorch.
Lợi ích khi sử dụng tích hợp ExecuTorch#
Khi tìm hiểu các tùy chọn export khác nhau do Ultralytics hỗ trợ, bạn có thể tự hỏi điều gì làm nên sự khác biệt của tích hợp ExecuTorch. Điểm khác biệt chính là khả năng kết hợp hiệu năng, sự đơn giản và tính linh hoạt, giúp dễ dàng triển khai trực tiếp các model AI mạnh mẽ lên thiết bị di động và edge.
Dưới đây là một số ưu điểm chính khi sử dụng tích hợp ExecuTorch:
- Tùy chọn triển khai linh hoạt: Model ExecuTorch có thể được triển khai trên ứng dụng di động, hệ thống nhúng, thiết bị IoT (Internet of Things) và phần cứng edge AI chuyên dụng. Tính linh hoạt này cho phép nhà phát triển xây dựng giải pháp AI có khả năng mở rộng, hoạt động nhất quán trên nhiều nền tảng và môi trường khác nhau.
- Hiệu năng được kiểm chứng qua benchmark: Các thử nghiệm trên thiết bị như Raspberry Pi 5 cho thấy model Ultralytics YOLO11 được export sang định dạng ExecuTorch chạy nhanh hơn khoảng 2 lần so với model PyTorch tương ứng, trong khi độ chính xác gần như giống hệt.
- API tích hợp linh hoạt: ExecuTorch cung cấp API C++, Kotlin và Objective-C cho iOS, Android và Linux nhúng, cho phép nhà phát triển tích hợp trực tiếp model YOLO vào ứng dụng native.
- Hỗ trợ tăng tốc phần cứng: ExecuTorch hỗ trợ nhiều backend tăng tốc phần cứng, bao gồm Vulkan và Metal cho GPU di động, cùng tùy chọn tích hợp OpenCL và các API riêng của nhà cung cấp khác. ExecuTorch cũng có thể tận dụng các bộ tăng tốc chuyên dụng như NPU và DSP để tăng tốc đáng kể so với inference chỉ dùng CPU.
Các ứng dụng thực tế của Ultralytics YOLO11 và tính năng export ExecuTorch#
Gần đây, Ultralytics được công nhận là câu chuyện thành công của PyTorch ExecuTorch, ghi nhận việc chúng tôi sớm hỗ trợ inference trên thiết bị và đóng góp liên tục cho hệ sinh thái PyTorch. Sự ghi nhận này phản ánh mục tiêu chung là giúp AI hiệu năng cao dễ tiếp cận hơn trên nền tảng di động và edge.
Từ cloud đến edge: ExecuTorch và Ultralytics YOLO11 đưa vision AI vào thực tiễn như thế nào#
Trong thực tế, điều này thể hiện qua các giải pháp vision AI vận hành hiệu quả trên mọi thiết bị, từ smartphone đến hệ thống nhúng. Chẳng hạn, trong sản xuất, thiết bị edge đóng vai trò quan trọng trong việc giám sát dây chuyền và phát hiện lỗi theo thời gian thực.

Hình 3. Ví dụ sử dụng Ultralytics YOLO11 để phân tích dây chuyền lắp ráp trong nhà máy. (Nguồn)
Thay vì gửi hình ảnh hoặc dữ liệu cảm biến lên cloud để xử lý — việc có thể gây độ trễ và phụ thuộc vào kết nối internet — tích hợp ExecuTorch cho phép model Ultralytics YOLO11 chạy trực tiếp trên phần cứng cục bộ. Nhờ vậy, nhà máy có thể phát hiện vấn đề về chất lượng ngay lập tức, giảm thời gian ngừng hoạt động và bảo vệ quyền riêng tư dữ liệu, đồng thời vẫn vận hành với tài nguyên tính toán hạn chế.
Dưới đây là một số ví dụ khác về cách ứng dụng tích hợp ExecuTorch và model Ultralytics YOLO:
- Thành phố thông minh: Bằng cách chạy model Ultralytics YOLO11 cục bộ với ExecuTorch, thành phố có thể đưa ra quyết định nhanh hơn dựa trên dữ liệu, từ phát hiện ùn tắc giao thông đến nhận diện nguy cơ, qua đó cải thiện khả năng lưu thông và an toàn nói chung.
- Bán lẻ và kho vận: Với inference trên thiết bị, nhà bán lẻ có thể tự động hóa việc giám sát kệ hàng, theo dõi tồn kho và kiểm tra kiện hàng nhanh chóng, an toàn mà không cần kết nối cloud.
- Robot và drone: Model Ultralytics YOLO11 được tối ưu cho edge cho phép robot và drone nhận diện đối tượng, điều hướng trong môi trường và đưa ra quyết định theo thời gian thực ngay cả khi không có kết nối internet.

Hình 4. Phát hiện và đếm ô tô trong luồng giao thông bằng YOLO11 (Nguồn)
Điểm chính cần ghi nhớ#
Export model Ultralytics YOLO sang định dạng ExecuTorch giúp dễ dàng triển khai model computer vision trên nhiều thiết bị, bao gồm smartphone, máy tính bảng và các hệ thống nhúng như Raspberry Pi. Nhờ đó, có thể chạy inference tối ưu ngay trên thiết bị mà không phụ thuộc vào kết nối cloud, cải thiện tốc độ, quyền riêng tư và độ tin cậy.
Cùng với ExecuTorch, Ultralytics hỗ trợ nhiều tích hợp, bao gồm TensorRT, OpenVINO, CoreML và nhiều nền tảng khác, mang lại cho nhà phát triển sự linh hoạt khi chạy model trên nhiều nền tảng. Khi việc ứng dụng AI thị giác ngày càng phổ biến, các tích hợp này giúp đơn giản hóa quá trình triển khai hệ thống thông minh được xây dựng để hoạt động hiệu quả trong điều kiện thực tế.
Quan tâm đến AI? Hãy xem repository GitHub của chúng tôi, tham gia cộng đồng và khám phá các tùy chọn cấp phép để bắt đầu dự án vision AI. Tìm hiểu thêm về các đổi mới như AI trong bán lẻ và computer vision trong logistics trên các trang giải pháp của chúng tôi.
Được viết bởi
Bình luận
Đặt câu hỏi, chia sẻ kết quả hoặc giúp đỡ người khác.










