Ultralytics YOLO27:
Get Started

Export model YOLO26 sang TorchScript để triển khai nhanh chóng#

PyTorch sẽ ngừng hỗ trợ TorchScript

PyTorch đã deprecate TorchScript và đang dần loại bỏ các tính năng của TorchScript. Đối với các đợt triển khai mới trên thiết bị di động và thiết bị biên, hãy sử dụng tích hợp ExecuTorch được hỗ trợ. Ultralytics vẫn duy trì tính năng export TorchScript thông thường để đảm bảo khả năng tương thích với mã C++ cũ.

Việc triển khai model thị giác máy tính trong môi trường C++ không có Python đòi hỏi một dạng biểu diễn được tuần tự hóa và có tính di động. TorchScript cung cấp khả năng tương thích đó cho các ứng dụng LibTorch cũ.

Export sang TorchScript để tuần tự hóa 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 export model YOLO26 sang định dạng TorchScript, giúp bạn dễ dàng sử dụng model trong nhiều ứng dụng hơn.

Tại sao bạn nên export sang TorchScript?#

Tổng quan quy trình tuần tự hóa và triển khai model TorchScript

Được phát triển bởi những người tạo ra PyTorch, TorchScript là công cụ mạnh mẽ để tối ưu hóa và triển khai model PyTorch trên nhiều nền tảng. Export model YOLO26 sang TorchScript là bước quan trọng để chuyển từ nghiên cứu sang ứ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 diễn ra suôn sẻ hơn bằng cách cho phép sử dụng model PyTorch trong những môi trường không hỗ trợ Python.

Quy trình này sử dụng hai kỹ thuật: tracing và scripting. Tracing ghi lại các phép toán trong quá trình model thực thi, còn scripting cho phép định nghĩa model bằng một tập con của Python. Những kỹ thuật này đảm bảo 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.

So sánh scripting và tracing trong TorchScript

Model TorchScript cũng có thể được tối ưu hóa bằng các kỹ thuật như hợp nhất toán tử và tinh chỉnh mức sử dụng bộ nhớ để đảm bảo thực thi hiệu quả. Một lợi thế khác của việc export 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 dạng biểu diễn độc lập, sẵn sàng cho production của model PyTorch mà bạn có thể tích hợp vào 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 của 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 model deep learning.

Tổng quan các tính năng chính của TorchScript

Dưới đây là những tính năng chính giúp TorchScript trở thành công cụ hữu ích cho developer:

  • Thực thi đồ thị tĩnh: TorchScript sử 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. Với thực thi đồ thị tĩnh, đồ thị tính toán được xác định 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 model PyTorch sang định dạng độc lập với nền tảng. Có thể tải model đã tuần tự hóa mà không cần mã Python ban đầu, nhờ đó cho phép triển khai model trong các môi trường runtime khác nhau.

  • Biên dịch JIT: TorchScript sử dụng biên dịch Just-In-Time (JIT) để chuyển đổi model PyTorch thành dạng biểu diễn trung gian đã 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 thiết bị mục tiêu.

  • 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 xử lý model phức tạp hoặc khi bạn muốn tối ưu hóa một số phần cụ thể của mã.

Các tùy chọn triển khai trong TorchScript#

Trước khi xem mã export model YOLO26 sang định dạng TorchScript, hãy cùng tìm hiểu những nơi thường sử dụng model TorchScript.

TorchScript cung cấp nhiều tùy chọn triển khai model machine learning, chẳng hạn như:

  • C++ API: Trường hợp sử dụng TorchScript phổ biến nhất là LibTorch C++ API, cho phép bạn tải và thực thi trực tiếp model TorchScript đã tối ưu hóa trong ứ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. C++ API cho phép thực thi model TorchScript hiệu quả với overhead thấp, giúp tối đa hóa tiềm năng hiệu năng.

  • Triển khai trên thiết bị di động: Để có inference độ trễ thấp, hoạt động offline và bảo vệ 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ó thể triển khai model TorchScript lên server chạy trên cloud bằng các giải pháp như TorchServe. TorchServe cung cấp các tính năng như quản lý phiên bản model, batching và giám sát metrics để hỗ trợ triển khai có khả năng mở rộng trong môi trường production. Triển khai TorchScript trên cloud giúp các model của bạn có thể được truy cập thông qua API hoặc các dịch vụ web khác.

Các tác vụ được hỗ trợ#

Export TorchScript hỗ trợ cả bảy tác vụ của Ultralytics. Phân đoạn ngữ nghĩa và ước lượng độ sâu chỉ khả dụng với YOLO26, dòng model duy nhất có các head này.

Tác vụYOLOv8YOLO11YOLO26
Phát hiện✅✅✅
Phân đoạn✅✅✅
Ngữ nghĩa❌❌✅
Độ sâu❌❌✅
Phân loại✅✅✅
Tư thế✅✅✅
OBB✅✅✅

Export sang TorchScript: Chuyển đổi model YOLO26#

Export model YOLO26 sang TorchScript giúp bạn dễ dàng sử dụng model ở nhiều nơi, đồng thời giúp model chạy nhanh và hiệu quả hơn. Đây là lựa chọn tuyệt vời cho bất kỳ ai muốn sử dụng model deep learning hiệu quả hơn trong các ứng dụng thực tế.

Cài đặt#

Để cài đặt package cần thiết, hãy chạy:

Cài đặt
# Install the required package for YOLO26
pip install ultralytics

Để biết hướng dẫn chi tiết và các phương pháp tốt nhất về quy trình cài đặt, hãy xem 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 tham khảo hướng dẫn khắc phục sự cố thường gặp để tìm giải pháp và mẹo hữu ích.

Cách sử dụng#

Tất cả model Ultralytics YOLO26 đều được thiết kế để hỗ trợ xuất ngay từ đầu, giúp bạn dễ dàng tích hợp chúng vào quy trình triển khai mong muốn. Bạn có thể xem danh sách đầy đủ các định dạng xuất được hỗ trợ và tùy chọn cấu hình để chọn thiết lập phù hợp nhất cho ứng dụng.

Định dạng TorchScript hỗ trợ các chế độ Export, Predict và Validate. Hãy export model, sau đó tải model đã export để chạy inference hoặc xác thực độ chính xác.

Export
from ultralytics import YOLO

# Nạp model YOLO26
model = YOLO("yolo26n.pt")

# Export model sang định dạng TorchScript
model.export(format="torchscript")  # tạo 'yolo26n.torchscript'
Dự đoán
from ultralytics import YOLO

# Tải model TorchScript đã export
model = YOLO("yolo26n.torchscript")

# Chạy suy luận
results = model("https://ultralytics.com/images/bus.jpg")
Xác thực
from ultralytics import YOLO

# Tải model TorchScript đã export
model = YOLO("yolo26n.torchscript")

# # Đánh giá độ chính xác trên bộ dữ liệu COCO8
metrics = model.val(data="coco8.yaml")

Các tham số xuất model#

Đối sốKiểuMặc địnhMô tả
formatstr'torchscript'Định dạng đích của model đã xuất, xác định khả năng tương thích với nhiều môi trường triển khai.
imgszint hoặc tuple640Kích thước ảnh mong muốn cho đầu vào model. Có thể là số nguyên cho ảnh vuông hoặc tuple (height, width) để chỉ định kích thước cụ thể.
dynamicboolFalseCho phép kích thước đầu vào động, tăng tính linh hoạt khi xử lý ảnh có kích thước khác nhau.
quantizeint hoặc strNoneĐộ chính xác lượng tử hóa: 16 (FP16) yêu cầu export bằng GPU với device=0; 32/không thiết lập sẽ dùng FP32. Thay thế flag half đã bị deprecated.
nmsbool, không bắt buộcNoneChọn đầu ra thô (None, mặc định), NMS nhúng (True) hoặc head không có NMS (False).
batchint1Chỉ định kích thước batch suy luận của model khi xuất hoặc số lượng ảnh tối đa mà model đã xuất xử lý đồng thời ở chế độ predict.
devicestrNoneChỉ định thiết bị dùng để xuất: GPU (device=0), CPU (device=cpu), MPS cho Apple silicon (device=mps).

Để biết thêm chi tiết về quy trình xuất, hãy truy cập trang tài liệu Ultralytics về xuất model.

Triển khai model YOLO26 TorchScript đã export#

Sau khi export 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 chính và được khuyến nghị để chạy model TorchScript là sử dụng phương thức YOLO("model.torchscript"), như minh họa trong đoạn mã sử dụng ở phần trước. Để xem hướng dẫn chi tiết về cách triển khai model TorchScript trong các môi trường khác, hãy tham khảo các tài nguyên sau:

  • Tìm hiểu về triển khai trên thiết bị di động: Sử dụng pipeline torch.export() → .pte riêng biệt của ExecuTorch để triển khai PyTorch trên thiết bị di động theo phương thức hiện hành.

  • Làm chủ việc triển khai phía server: Tìm hiểu cách triển khai model ở phía server bằng TorchServe qua hướng dẫn từng bước, giúp phục vụ 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 model TorchScript vào ứng dụng C++ để tăng 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 export model Ultralytics YOLO26 sang định dạng TorchScript. Bằng cách làm theo hướng dẫn, bạn có thể tối ưu hóa hiệu năng của model YOLO26 và linh hoạt triển khai model trên nhiều nền tảng cũng như môi trường.

Để 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.

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

  • Export 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 để model có thể thực thi trong những 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++.

  • Để export model YOLO26 sang TorchScript, bạn có thể sử dụng mã ví dụ sau:

    Cách sử dụng
    from ultralytics import YOLO
    
    # Nạp model YOLO26
    model = YOLO("yolo26n.pt")
    
    # Export model sang định dạng TorchScript
    model.export(format="torchscript")  # tạo 'yolo26n.torchscript'
    
    # Tải model TorchScript đã export
    torchscript_model = YOLO("yolo26n.torchscript")
    
    # Chạy suy luận
    results = torchscript_model("https://ultralytics.com/images/bus.jpg")

    Để biết thêm chi tiết về quy trình export, hãy tham khảo tài liệu Ultralytics về export.

  • Sử dụng TorchScript để triển khai model YOLO26 mang lại một số ưu điểm:

    • Tính di động: Model đã export 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 Just-In-Time (JIT), giúp tối ưu hóa hiệu năng model.
    • Tích hợp đa ngôn ngữ: Có thể tích hợp model TorchScript vào các ngôn ngữ lập trình khác, giúp tăng tính linh hoạt và khả năng mở rộng.
    • Tuần tự hóa: Có thể tuần tự hóa model, cho phép tải và chạy inference độc lập với nền tảng.

    Để tìm hiểu thêm về triển khai, hãy xem Tài liệu TorchServe và Hướng dẫn triển khai C++. Để triển khai trên thiết bị di động, PyTorch hiện khuyến nghị ExecuTorch, sử dụng pipeline torch.export() → .pte riêng thay vì TorchScript.

  • Để cài đặt package cần thiết cho việc export model YOLO26, hãy sử dụng lệnh 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 sự cố trong quá trình cài đặt, hãy tham khảo Hướng dẫn xử lý sự cố thường gặp.

  • Sau khi export model YOLO26 sang định dạng TorchScript, bạn có thể triển khai chúng trên nhiều nền tảng:

    • API C++: Sử dụng LibTorch cho môi trường production yêu cầu overhead thấp và hiệu suất 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 export .pte riê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.

    Tham khảo hướng dẫn toàn diện về triển khai model trong các môi trường này để tận dụng tối đa khả năng của TorchScript.

Bình luận