Xuất model YOLO26 sang TorchScript để triển khai nhanh

Việc triển khai các model computer vision trên nhiều môi trường khác nhau, bao gồm hệ thống nhúng, trình duyệt web hoặc các nền tảng hỗ trợ Python hạn chế, đòi hỏi một giải pháp linh hoạt và có tính di động cao. TorchScript tập trung vào tính di động và khả năng chạy model trong các môi trường không có sẵn toàn bộ framework Python. Điều này khiến nó trở nên lý tưởng cho các tình huống bạn cần triển khai các khả năng computer vision trên nhiều thiết bị hoặc nền tảng khác nhau.

Hãy xuất sang TorchScript để serialize các model Ultralytics YOLO26 nhằm đảm bảo khả năng tương thích đa nền tảng và tối ưu hóa quy trình 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 của mình sang định dạng TorchScript, giúp bạn sử dụng chúng dễ dàng hơn trên phạm vi ứng dụng rộng lớn hơn.

Tại sao bạn nên xuất sang TorchScript?

Tổng quan quy trình triển khai và serialize model TorchScript

Được phát triển bởi những người tạo ra 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 khác nhau. Việc xuất các model YOLO26 sang TorchScript là yếu tố then chốt để chuyển đổi 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 diễn ra suôn sẻ hơn bằng cách cho phép các model PyTorch được sử dụng trong các môi trường không hỗ trợ Python.

Quá trình này bao gồm hai kỹ thuật: tracing (truy vết) và scripting (kịch bản hóa). Tracing ghi lại các thao tác trong quá trình thực thi model, trong khi scripting cho phép định nghĩa các model bằng một tập con của Python. Các kỹ thuật này đảm bảo rằng các model như YOLO26 vẫn có thể hoạt động hiệu quả ngay cả bên ngoài môi trường Python thông thường của chúng.

So sánh giữa scripting và tracing trong TorchScript

Các model TorchScript cũng có thể được tối ưu hóa thông qua các kỹ thuật như hợp nhất toán tử (operator fusion) và tinh chỉnh cách sử dụng bộ nhớ, giúp đả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 khác nhau. Nó tạo ra một đại diện độc lập, sẵn sàng cho môi trường production của model PyTorch mà bạn có thể tích hợp vào các môi trường C++, hệ thống nhúng hoặc triển khai trong các ứng dụng web hoặc di động.

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.

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

Dưới đây là các tính năng chính khiến TorchScript trở thành một công cụ giá trị cho các nhà phát triển:

  • Thực thi đồ thị tĩnh (Static Graph Execution): TorchScript sử dụng biểu diễn đồ thị tĩnh cho quá trình tính toán của model, khác với 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 suất trong quá trình inference.

  • Serialize model: TorchScript cho phép bạn serialize các model PyTorch thành định dạng độc lập với nền tảng. Các model đã serialize có thể được tải mà không cần mã nguồn Python gốc, cho phép triển khai 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 các model PyTorch thành một 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ị mục tiêu.

  • Tích hợp đa ngôn ngữ: Với TorchScript, bạn có thể xuất các model PyTorch sang các ngôn ngữ khác như C++, Java và JavaScript. Điều này giúp dễ dàng tích hợp các model PyTorch vào các hệ thống phần mềm hiện có được viết bằng các ngôn ngữ khác nhau.

  • Chuyển đổi dần dần (Gradual Conversion): TorchScript cung cấp phương pháp tiếp cận chuyển đổi dần dần, cho phép bạn chuyển đổi từng phần của model PyTorch sang TorchScript. Sự linh hoạt này đặc biệt hữu ích khi xử lý các model phức tạp hoặc khi bạn muốn tối ưu hóa các phần cụ thể của code.

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

Trước khi tìm hiểu mã nguồn để xuất các model YOLO26 sang định dạng TorchScript, hãy tìm hiểu xem các model TorchScript thường được sử dụng ở đâu.

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

  • C++ API: Trường hợp sử dụng phổ biến nhất cho TorchScript là C++ API, cho phép bạn tải và thực thi các model TorchScript đã tối ưu hóa trực tiếp bên trong các ứng dụng C++. Đây là lựa chọn lý tưởng cho các môi trường production nơi Python có thể không phù hợp hoặc không khả dụng. C++ API cung cấp khả năng thực thi model TorchScript với độ trễ thấp và hiệu quả cao, tối đa hóa tiềm năng hiệu suất.

  • Triển khai trên di động: TorchScript cung cấp các công cụ để chuyển đổi model thành các định dạng dễ dàng triển khai trên thiết bị di động. PyTorch Mobile cung cấp một runtime để thực thi các model này trong ứng dụng iOS và Android. Điều này cho phép khả năng inference ngoại tuyến với độ trễ thấp, nâng cao trải nghiệm người dùng và data privacy.

  • Triển khai trên đám mây: Các model TorchScript có thể được triển khai trên các máy chủ dựa trên đám mây bằng các giải pháp như TorchServe. Nó cung cấp các tính năng như lập phiên bản model, tạo batch và giám sát số liệu để triển khai có thể mở rộng trong môi trường production. Triển khai trên đám mây với TorchScript có thể giúp các model của bạn có thể truy cập thông qua API hoặc các dịch vụ web khác.

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 dễ dàng sử dụng chúng ở nhiều nơi khác nhau và giúp chúng chạy nhanh hơn, 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 các model deep learning hiệu quả hơn trong các ứng dụng thực tế.

Cài đặt

Để cài đặt gói yêu cầu, 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 thực hành tốt nhất liên quan đến quy trình cài đặt, hãy xem hướng dẫn Cài đặt Ultralytics của chúng tôi. Trong quá trình cài đặt các gói cần thiết cho YOLO26, nếu gặp bất kỳ khó khăn nào, hãy tham khảo hướng dẫn về các vấn đề phổ biến để tìm giải pháp và mẹo xử lý.

Cách sử dụng

Tất cả các mô hình Ultralytics YOLO26 đều được thiết kế để hỗ trợ xuất ngay lập tức, giúp dễ dàng tích hợp chúng vào quy trình triển khai ưa thích của bạ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 tốt nhất cho ứng dụng của mình.

Cách sử dụng
from ultralytics import YOLO

# Load the 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")

Các đối số Xuất

Đối sốLoạiMặc địnhMô tả
formatstr'torchscript'Định dạng mục tiêu cho model đã xuất, xác định khả năng tương thích với các môi trường triển khai khác nhau.
imgszint hoặc tuple640Kích thước hình ảnh mong muốn cho đầu vào của model. Có thể là một số nguyên cho hình ảnh vuông hoặc một tuple (height, width) cho các kích thước cụ thể.
dynamicboolFalseCho phép các kích thước đầu vào động, tăng cường tính linh hoạt trong việc xử lý các kích thước hình ảnh khác nhau.
halfboolFalseKích hoạt lượng tử hóa FP16 (độ chính xác một nửa), giảm kích thước model và có khả năng tăng tốc suy luận trên phần cứng được hỗ trợ.
optimizeboolFalseÁp dụng tối ưu hóa cho thiết bị di động, có khả năng giảm kích thước model và cải thiện hiệu suất.
nmsboolFalseThêm Non-Maximum Suppression (NMS), cần thiết cho việc hậu xử lý phát hiện chính xác và hiệu quả.
batchint1Chỉ định kích thước suy luận batch của model xuất hoặc số lượng ảnh tối đa mà model xuất sẽ xử lý đồng thời ở chế độ predict.
devicestrNoneChỉ định thiết bị để 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 các model TorchScript YOLO26 đã xuất

Sau khi xuất thành công các model Ultralytics YOLO26 sang định dạng TorchScript, giờ đây bạn có thể triển khai chúng. Bước đầu tiên quan trọng và được khuyến nghị để chạy một model TorchScript là sử dụng phương thức YOLO("model.torchscript"), như được nêu trong đoạn mã sử dụng trước đó. Để biết hướng dẫn chi tiết về cách triển khai các model TorchScript của bạn trong các cài đặt khác, hãy xem qua các tài nguyên sau:

  • Khám phá Triển khai trên di động: Tài liệu về PyTorch Mobile cung cấp các hướng dẫn toàn diện để triển khai model trên thiết bị di động, đảm bảo ứng dụng của bạn hiệu quả và phản hồi nhanh.

  • Làm chủ Triển khai phía máy chủ: Tìm hiểu cách triển khai model ở phía máy chủ với TorchServe, cung cấp hướng dẫn từng bước cho việc phục vụ model hiệu quả và có khả năng mở rộng.

  • Triển khai C++: Đi sâu vào Hướng dẫn về cách tải Model TorchScript trong C++, tạo điều kiện tích hợp các model TorchScript của bạn vào các ứng dụng C++ để nâng cao hiệu suất và tính linh hoạt.

Tóm tắt

Trong hướng dẫn này, chúng ta đã khám phá quá trình xuất các model Ultralytics YOLO26 sang định dạng TorchScript. Bằng cách làm theo các hướng dẫn được cung cấp, bạn có thể tối ưu hóa các model YOLO26 để đạt hiệu suất cao và có được sự linh hoạt để 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 bạn muốn biết 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. 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 (FAQ)

Xuất model Ultralytics YOLO26 sang TorchScript là gì?

Việc xuất một model Ultralytics YOLO26 sang TorchScript cho phép triển khai linh hoạt, đa nền tảng. TorchScript, một phần của hệ sinh thái PyTorch, tạo điều kiện cho việc serialize các model, sau đó có thể được thực thi trong các môi trường thiếu hỗ trợ Python. Điều này khiến nó trở nên lý tưởng để triển khai các model trên hệ thống nhúng, môi trường C++, ứng dụng di động và thậm chí cả trình duyệt web. Xuất sang TorchScript cho phép đạt hiệu suất hiệu quả và khả năng ứng dụng rộng rãi hơn cho các model YOLO26 của bạn trên nhiều nền tảng đa dạng.

Làm thế nào tôi có thể xuất model YOLO26 của mình sang TorchScript bằng Ultralytics?

Để xuất model YOLO26 sang TorchScript, bạn có thể sử dụng mã mẫu sau:

Cách sử dụng
from ultralytics import YOLO

# Load the 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.

Tại sao tôi nên sử dụng TorchScript để triển khai các model YOLO26?

Sử dụng TorchScript để triển khai các model YOLO26 mang lại một số lợi thế:

  • Tính di động: Các model đã xuất có thể chạy trong môi trường không cần Python, chẳng hạn như ứng dụng C++, hệ thống nhúng hoặc thiết bị di động.
  • 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 suất model.
  • Tích hợp đa ngôn ngữ: Các model TorchScript có thể được tích hợp vào các ngôn ngữ lập trình khác, tăng cường tính linh hoạt và khả năng mở rộng.
  • Serialize: Các model có thể được serialize, 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 PyTorch Mobile, Tài liệu TorchServeHướng dẫn triển khai C++.

Các bước cài đặt để xuất model YOLO26 sang TorchScript là gì?

Để cài đặt gói cần thiết cho việc xuất model YOLO26, hãy sử dụng lệnh sau:

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

Để biết hướng dẫn chi tiết, hãy truy cập Hướng dẫn cài đặt Ultralytics. Nếu có bất kỳ vấn đề nào phát sinh trong quá trình cài đặt, hãy tham khảo Hướng dẫn về các vấn đề thường gặp.

Làm cách nào để triển khai các model TorchScript YOLO26 đã xuất của tôi?

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:

  • C++ API: Lý tưởng cho các môi trường production có độ trễ thấp và hiệu quả cao.
  • Triển khai trên di động: Sử dụng PyTorch Mobile cho các ứng dụng iOS và Android.
  • Triển khai trên đám mây: Sử dụng các dịch vụ như TorchServe để triển khai phía máy chủ có khả năng mở rộng.

Khám phá các hướng dẫn toàn diện về cách triển khai model trong các cài đặt này để tận dụng tối đa các khả năng của TorchScript.

Bình luận