Xuất model YOLO26 sang TorchScript để triển khai nhanh#
PyTorch đã khai tử TorchScript và đang dần loại bỏ các tính năng của nó. Đối với các hoạt động triển khai mới trên thiết bị di động và edge, hãy sử dụng tích hợp ExecuTorch được hỗ trợ. Ultralytics vẫn duy trì chức năng xuất TorchScript thông thường để đảm bảo tương thích với C++ legacy.
Việc triển khai các model thị giác máy tính trong môi trường C++ không có Python yêu cầu một dạng biểu diễn đã được tuần tự hóa và có tính portable. TorchScript cung cấp khả năng tương thích đó cho các ứng dụng LibTorch legacy.
Xuất sang TorchScript để tuần tự hóa các model Ultralytics YOLO26, đảm bảo khả năng tương thích đa nền tảng và đơn giản hóa việc triển khai. Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách xuất các model YOLO26 sang định dạng TorchScript, giúp bạn dễ dàng sử dụng chúng trên nhiều loại ứng dụng hơn.
Tại sao nên xuất sang TorchScript?#

Được phát triển bởi các nhà sáng tạo PyTorch, TorchScript là một công cụ mạnh mẽ để tối ưu hóa và triển khai các model PyTorch trên nhiều nền tảng. Việc xuất các model YOLO26 sang TorchScript rất quan trọng để chuyển từ nghiên cứu sang các ứng dụng thực tế. TorchScript, một phần của framework PyTorch, giúp quá trình chuyển đổi này trở nên thuận lợi hơn bằng cách cho phép sử dụng các model PyTorch trong những môi trường không hỗ trợ Python.
Quy trình này bao gồm hai kỹ thuật: tracing và scripting. Tracing ghi lại các phép toán trong quá trình thực thi model, trong khi scripting cho phép định nghĩa model bằng một tập con của Python. Các kỹ thuật này đảm bảo rằng những model như YOLO26 vẫn có thể hoạt động hiệu quả ngay cả bên ngoài môi trường Python quen thuộc.

Các model TorchScript cũng có thể được tối ưu hóa thông qua những kỹ thuật như hợp nhất operator và tinh chỉnh việc sử dụng bộ nhớ, đảm bảo thực thi hiệu quả. Một ưu điểm khác của việc xuất sang TorchScript là khả năng tăng tốc thực thi model trên nhiều nền tảng phần cứng. TorchScript tạo ra một dạng biểu diễn độc lập, sẵn sàng cho production của model PyTorch, có thể tích hợp vào các môi trường C++.
Các tính năng chính của model TorchScript#
TorchScript, một thành phần quan trọng trong hệ sinh thái PyTorch, cung cấp các tính năng mạnh mẽ để tối ưu hóa và triển khai các model deep learning.

Dưới đây là các tính năng chính khiến TorchScript trở thành một công cụ hữu ích cho developer:
-
Thực thi đồ thị tĩnh: TorchScript sử dụng dạng biểu diễn đồ thị tĩnh cho phép tính của model, khác với cơ chế thực thi đồ thị động của PyTorch. Trong thực thi đồ thị tĩnh, đồ thị tính toán được định nghĩa và biên dịch một lần trước khi thực thi thực tế, giúp cải thiện hiệu năng trong quá trình inference.
-
Tuần tự hóa model: TorchScript cho phép bạn tuần tự hóa các model PyTorch thành một định dạng độc lập với nền tảng. Các model đã được tuần tự hóa có thể được tải mà không cần mã Python ban đầu, cho phép triển khai trong nhiều môi trường runtime khác nhau.
-
Biên dịch JIT: TorchScript sử dụng biên dịch đúng lúc (JIT) để chuyển đổi các model PyTorch thành một dạng biểu diễn trung gian được tối ưu hóa. JIT biên dịch đồ thị tính toán của model, cho phép thực thi hiệu quả trên các thiết bị đích.
-
Chuyển đổi từng bước: TorchScript cung cấp phương pháp chuyển đổi từng bước, cho phép bạn chuyển đổi dần từng phần của model PyTorch sang TorchScript. Tính linh hoạt này đặc biệt hữu ích khi làm việc với các model phức tạp hoặc khi bạn muốn tối ưu hóa những phần code cụ thể.
Các tùy chọn triển khai trong TorchScript#
Trước khi xem code để xuất các model YOLO26 sang định dạng TorchScript, hãy cùng tìm hiểu những nơi model TorchScript thường được sử dụng.
TorchScript cung cấp nhiều tùy chọn triển khai cho các model machine learning, chẳng hạn như:
-
API C++: Trường hợp sử dụng phổ biến nhất của TorchScript là API C++ LibTorch, cho phép bạn tải và thực thi trực tiếp các model TorchScript đã tối ưu hóa trong các ứng dụng C++. Đây là lựa chọn lý tưởng cho môi trường production, nơi Python có thể không phù hợp hoặc không khả dụng. API C++ cung cấp khả năng thực thi các model TorchScript với overhead thấp và hiệu quả cao, tối đa hóa tiềm năng hiệu năng.
-
Triển khai trên thiết bị di động: Để inference có độ trễ thấp, hoạt động offline và đảm bảo quyền riêng tư dữ liệu trên thiết bị di động, hãy sử dụng ExecuTorch, giải pháp thay thế TorchScript Mobile của PyTorch.
-
Triển khai trên cloud: Các model TorchScript có thể được triển khai lên các server dựa trên cloud bằng những giải pháp như TorchServe. Giải pháp này cung cấp các tính năng như versioning model, batching và giám sát metric để triển khai có khả năng mở rộng trong môi trường production. Triển khai TorchScript trên cloud có thể giúp các model của bạn truy cập được thông qua API hoặc các web service khác.
Các Task được hỗ trợ#
Việc xuất TorchScript hỗ trợ tất cả bảy task của Ultralytics. Phân đoạn ngữ nghĩa và ước lượng độ sâu chỉ khả dụng với YOLO26, family duy nhất được phát hành kèm các head đó.
Xuất sang TorchScript: Chuyển đổi model YOLO26 của bạn#
Việc xuất các model YOLO26 sang TorchScript giúp sử dụng chúng dễ dàng hơn ở nhiều nơi khác nhau, đồng thời giúp chúng chạy nhanh và hiệu quả hơn. Đây là lựa chọn hữu ích cho bất kỳ ai muốn sử dụng các model deep learning hiệu quả hơn trong những ứng dụng thực tế.
Cài đặt#
Để cài đặt package bắt buộc, hãy chạy:
# Install the required package for YOLO26
pip install ultralyticsĐể xem hướng dẫn chi tiết và các best practice liên quan đến quy trình cài đặt, hãy tham khảo hướng dẫn Cài đặt Ultralytics. Nếu gặp khó khăn khi cài đặt các package cần thiết cho YOLO26, hãy xem hướng dẫn Các vấn đề Thường gặp để tìm giải pháp và mẹo xử lý.
Cách sử dụng#
Tất cả model Ultralytics YOLO26 đều được thiết kế để hỗ trợ xuất ngay khi cài đặt, giúp dễ dàng tích hợp vào quy trình triển khai mà bạn lựa chọn. Bạn có thể xem danh sách đầy đủ các định dạng xuất và tùy chọn cấu hình được hỗ trợ để chọn thiết lập phù hợp nhất cho ứng dụng của mình.
Định dạng TorchScript hỗ trợ các mode Export, Predict và Validate. Hãy xuất model của bạn, sau đó tải model đã xuất để chạy inference hoặc xác thực độ chính xác.
from ultralytics import YOLO
# Load a YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to TorchScript format
model.export(format="torchscript") # creates 'yolo26n.torchscript'from ultralytics import YOLO
# Load the exported TorchScript model
model = YOLO("yolo26n.torchscript")
# Run inference
results = model("https://ultralytics.com/images/bus.jpg")from ultralytics import YOLO
# Load the exported TorchScript model
model = YOLO("yolo26n.torchscript")
# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")Đối số Export#
| Đối số | Kiểu | Mặc định | Mô tả |
|---|---|---|---|
format | str | 'torchscript' | Định dạng đích của model đã export, xác định khả năng tương thích với nhiều môi trường triển khai. |
imgsz | int hoặc tuple | 640 | Kích thước ảnh mong muốn cho input của model. Có thể là một số nguyên đối với ảnh vuông hoặc một tuple (height, width) cho các kích thước cụ thể. |
dynamic | bool | False | Cho phép kích thước input động, tăng tính linh hoạt khi xử lý các kích thước ảnh khác nhau. |
quantize | int hoặc str | None | Độ chính xác lượng tử hóa: 16 (FP16) yêu cầu xuất trên GPU với device=0; 32/không đặt là FP32. Thay thế cho flag half đã bị khai tử. |
nms | bool, tùy chọn | None | Chọn đầu ra thô (None, mặc định), NMS tích hợp (True), hoặc phần đầu không có NMS (False). |
batch | int | 1 | Chỉ định batch inference size của model export hoặc số image tối đa mà model đã export sẽ xử lý đồng thời trong mode predict. |
device | str | None | Chỉ định thiết bị dùng để export: GPU (device=0), CPU (device=cpu), MPS cho Apple silicon (device=mps). |
Để biết thêm chi tiết về quy trình export, hãy truy cập trang tài liệu Ultralytics về export.
Triển khai các model YOLO26 TorchScript đã xuất#
Sau khi xuất thành công các model Ultralytics YOLO26 sang định dạng TorchScript, bạn có thể triển khai chúng. Bước đầu tiên và được khuyến nghị để chạy một model TorchScript là sử dụng phương thức YOLO("model.torchscript"), như đã trình bày trong đoạn code sử dụng trước đó. Để xem hướng dẫn chuyên sâu về cách triển khai các model TorchScript trong những bối cảnh khác, hãy tham khảo các tài nguyên sau:
-
Khám phá triển khai trên thiết bị di động: Sử dụng pipeline riêng
torch.export()→.ptecủa ExecuTorch cho hoạt động triển khai PyTorch trên thiết bị di động hiện tại. -
Làm chủ việc triển khai phía server: Tìm hiểu cách triển khai model phía server với TorchServe, qua một hướng dẫn từng bước để cung cấp model hiệu quả và có khả năng mở rộng.
-
Triển khai C++: Tìm hiểu sâu về hướng dẫn Tải model TorchScript trong C++, hỗ trợ tích hợp các model TorchScript vào ứng dụng C++ để cải thiện hiệu năng và tính linh hoạt.
Tóm tắt#
Trong hướng dẫn này, chúng ta đã tìm hiểu quy trình xuất các model Ultralytics YOLO26 sang định dạng TorchScript. Bằng cách làm theo hướng dẫn được cung cấp, bạn có thể tối ưu hóa các model YOLO26 để đạt hiệu năng cao và có được sự linh hoạt khi triển khai chúng trên nhiều nền tảng và môi trường khác nhau.
Để biết thêm chi tiết về cách sử dụng, hãy truy cập tài liệu chính thức của TorchScript.
Ngoài ra, nếu muốn tìm hiểu thêm về các tích hợp Ultralytics YOLO26 khác, hãy truy cập trang hướng dẫn tích hợp của chúng tôi. Tại đó, bạn sẽ tìm thấy nhiều tài nguyên và thông tin hữu ích.
FAQ#
Việc xuất một model Ultralytics YOLO26 sang TorchScript cho phép triển khai linh hoạt trên nhiều nền tảng. TorchScript, một phần của hệ sinh thái PyTorch, hỗ trợ tuần tự hóa model, sau đó model có thể được thực thi trong các môi trường không hỗ trợ Python. Điều này giúp TorchScript hữu ích khi triển khai model trong môi trường C++.
Để xuất một model YOLO26 sang TorchScript, bạn có thể sử dụng đoạn code ví dụ sau:
Cách sử dụngfrom ultralytics import YOLO # Load a YOLO26 model model = YOLO("yolo26n.pt") # Export the model to TorchScript format model.export(format="torchscript") # creates 'yolo26n.torchscript' # Load the exported TorchScript model torchscript_model = YOLO("yolo26n.torchscript") # Run inference results = torchscript_model("https://ultralytics.com/images/bus.jpg")Để biết thêm chi tiết về quy trình xuất, hãy tham khảo tài liệu Ultralytics về xuất model.
Sử dụng TorchScript để triển khai các model YOLO26 mang lại một số ưu điểm:
- Tính portable: Các model đã xuất có thể chạy trong ứng dụng C++ mà không cần Python.
- Tối ưu hóa: TorchScript hỗ trợ thực thi đồ thị tĩnh và biên dịch đúng lúc (JIT), giúp tối ưu hóa hiệu năng model.
- Tích hợp đa ngôn ngữ: Các model TorchScript có thể được tích hợp vào những ngôn ngữ lập trình khác, tăng tính linh hoạt và khả năng mở rộng.
- Tuần tự hóa: Các model có thể được tuần tự hóa, cho phép tải và inference độc lập với nền tảng.
Để biết thêm thông tin về triển khai, hãy truy cập Tài liệu TorchServe và Hướng dẫn triển khai C++. Đối với triển khai mobile trên thiết bị, PyTorch hiện khuyến nghị ExecuTorch, sử dụng pipeline
torch.export()→.pteriêng thay vì TorchScript.Để cài đặt package cần thiết cho việc xuất các model YOLO26, hãy sử dụng command sau:
Cài đặt# Install the required package for YOLO26 pip install ultralyticsĐể xem hướng dẫn chi tiết, hãy truy cập hướng dẫn Cài đặt Ultralytics. Nếu gặp bất kỳ vấn đề nào trong quá trình cài đặt, hãy tham khảo hướng dẫn Các vấn đề thường gặp.
Sau khi xuất các model YOLO26 sang định dạng TorchScript, bạn có thể triển khai chúng trên nhiều nền tảng khác nhau:
- API C++: Sử dụng LibTorch cho môi trường production có overhead thấp và hiệu quả cao.
- Triển khai trên thiết bị di động: Sử dụng ExecuTorch, giải pháp thay thế được PyTorch hỗ trợ với pipeline xuất
.pteriêng. - Triển khai trên cloud: Sử dụng các dịch vụ như TorchServe để triển khai phía server có khả năng mở rộng.
Khám phá các hướng dẫn toàn diện về việc triển khai model trong những bối cảnh này để tận dụng tối đa các khả năng của TorchScript.