Tối ưu hóa suy luận YOLO11 với DeepSparse Engine của Neural Magic
Khi triển khai các mô hình phát hiện đối tượng như Ultralytics YOLO11 trên các phần cứng khác nhau, bạn có thể gặp phải các vấn đề riêng như tối ưu hóa. Đây là nơi tích hợp YOLO11 với DeepSparse Engine của Neural Magic can thiệp. Nó thay đổi cách các mô hình YOLO11 được thực thi và cho phép hiệu suất cấp GPU trực tiếp trên CPU.
Hướng dẫn này chỉ cho bạn cách triển khai YOLO11 bằng DeepSparse của Neural Magic, cách chạy suy luận và cả cách đo điểm chuẩn hiệu suất để đảm bảo nó được tối ưu hóa.
SparseML EOL
Neural Magic đã được Red Hat mua lại vào tháng 1 năm 2025, và ngưng sử dụng các phiên bản cộng đồng của họ deepsparse
, sparseml
, sparsezoo
, và sparsify
thư viện. Để biết thêm thông tin, hãy xem thông báo được đăng trong Readme trên sparseml
Kho lưu trữ GitHub.
DeepSparse của Neural Magic
DeepSparse của Neural Magic là một thời gian chạy suy luận được thiết kế để tối ưu hóa việc thực thi các mạng nơ-ron trên CPU. Nó áp dụng các kỹ thuật tiên tiến như độ thưa, tỉa bớt và lượng tử hóa để giảm đáng kể các yêu cầu tính toán trong khi vẫn duy trì độ chính xác. DeepSparse cung cấp một giải pháp linh hoạt để thực thi mạng nơ-ron hiệu quả và có khả năng mở rộng trên nhiều thiết bị khác nhau.
Lợi ích của việc tích hợp DeepSparse của Neural Magic với YOLO11
Trước khi đi sâu vào cách triển khai YOLO11 bằng DeepSparse, hãy cùng tìm hiểu những lợi ích của việc sử dụng DeepSparse. Một số ưu điểm chính bao gồm:
- Tăng tốc độ suy luận: Đạt tới 525 FPS (trên YOLO11n), tăng tốc đáng kể khả năng suy luận của YOLO11 so với các phương pháp truyền thống.
- Tối ưu hóa hiệu quả mô hình: Sử dụng tỉa bớt (pruning) và lượng tử hóa (quantization) để tăng cường hiệu quả của YOLO11, giảm kích thước mô hình và yêu cầu tính toán trong khi vẫn duy trì độ chính xác.
-
Hiệu suất cao trên CPU tiêu chuẩn: Cung cấp hiệu suất tương đương GPU trên CPU, mang đến một tùy chọn dễ tiếp cận và tiết kiệm chi phí hơn cho nhiều ứng dụng khác nhau.
-
Tích hợp và triển khai được sắp xếp hợp lý: Cung cấp các công cụ thân thiện với người dùng để dễ dàng tích hợp YOLO11 vào các ứng dụng, bao gồm các tính năng chú thích hình ảnh và video.
-
Hỗ trợ nhiều loại mô hình: Tương thích với cả mô hình YOLO11 tiêu chuẩn và mô hình được tối ưu hóa độ thưa, tăng tính linh hoạt khi triển khai.
-
Giải pháp hiệu quả về chi phí và có khả năng mở rộng: Giảm chi phí vận hành và cung cấp khả năng triển khai có thể mở rộng của các mô hình phát hiện đối tượng nâng cao.
Công nghệ DeepSparse của Neural Magic hoạt động như thế nào?
Công nghệ Deep Sparse của Neural Magic được lấy cảm hứng từ hiệu quả của não người trong tính toán mạng nơ-ron. Nó áp dụng hai nguyên tắc chính từ não như sau:
-
Độ thưa thớt: Quá trình làm thưa liên quan đến việc cắt tỉa thông tin dư thừa từ các mạng học sâu, dẫn đến các mô hình nhỏ hơn và nhanh hơn mà không ảnh hưởng đến độ chính xác. Kỹ thuật này làm giảm đáng kể kích thước và nhu cầu tính toán của mạng.
-
Tính Địa Phương Tham Chiếu: DeepSparse sử dụng một phương pháp thực thi độc đáo, chia mạng thành các Cột Tensor. Các cột này được thực thi theo chiều sâu, hoàn toàn nằm trong bộ nhớ cache của CPU. Cách tiếp cận này mô phỏng hiệu quả của não bộ, giảm thiểu việc di chuyển dữ liệu và tối đa hóa việc sử dụng bộ nhớ cache của CPU.
Tạo một phiên bản thưa thớt của YOLO11 được huấn luyện trên một bộ dữ liệu tùy chỉnh
SparseZoo, một kho lưu trữ mô hình mã nguồn mở của Neural Magic, cung cấp một bộ sưu tập các điểm kiểm tra mô hình YOLO11 đã được làm thưa trước. Với SparseML, được tích hợp liền mạch với Ultralytics, người dùng có thể dễ dàng tinh chỉnh các điểm kiểm tra thưa thớt này trên các bộ dữ liệu cụ thể của họ bằng giao diện dòng lệnh đơn giản.
Xem tài liệu về SparseML YOLO11 của Neural Magic để biết thêm chi tiết.
Cách sử dụng: Triển khai YOLO11 bằng DeepSparse
Việc triển khai YOLO11 với DeepSparse của Neural Magic bao gồm một vài bước đơn giản. Trước khi đi sâu vào hướng dẫn sử dụng, hãy nhớ xem qua phạm vi các mô hình YOLO11 do Ultralytics cung cấp. Điều này sẽ giúp bạn chọn mô hình phù hợp nhất cho các yêu cầu của dự án. Dưới đây là cách bạn có thể bắt đầu.
Bước 1: Cài đặt
Để cài đặt các gói cần thiết, hãy chạy:
Cài đặt
# Install the required packages
pip install deepsparse[yolov8]
Bước 2: Xuất YOLO11 sang định dạng ONNX
DeepSparse Engine yêu cầu các mô hình YOLO11 ở định dạng ONNX. Xuất mô hình của bạn sang định dạng này là điều cần thiết để tương thích với DeepSparse. Sử dụng lệnh sau để xuất các mô hình YOLO11:
Xuất Mô hình
# Export YOLO11 model to ONNX format
yolo task=detect mode=export model=yolo11n.pt format=onnx opset=13
Lệnh này sẽ lưu yolo11n.onnx
mô hình vào ổ đĩa của bạn.
Bước 3: Triển khai và Chạy suy luận
Với mô hình YOLO11 của bạn ở định dạng ONNX, bạn có thể triển khai và chạy suy luận bằng DeepSparse. Điều này có thể được thực hiện dễ dàng với Python API trực quan của họ:
Triển khai và Chạy Suy Luận
from deepsparse import Pipeline
# Specify the path to your YOLO11 ONNX model
model_path = "path/to/yolo11n.onnx"
# Set up the DeepSparse Pipeline
yolo_pipeline = Pipeline.create(task="yolov8", model_path=model_path)
# Run the model on your images
images = ["path/to/image.jpg"]
pipeline_outputs = yolo_pipeline(images=images)
Bước 4: Đánh giá hiệu năng
Điều quan trọng là kiểm tra xem mô hình YOLO11 của bạn có hoạt động tối ưu trên DeepSparse hay không. Bạn có thể đánh giá điểm chuẩn hiệu suất mô hình của mình để phân tích thông lượng và độ trễ:
Điểm chuẩn
# Benchmark performance
deepsparse.benchmark model_path="path/to/yolo11n.onnx" --scenario=sync --input_shapes="[1,3,640,640]"
Bước 5: Các tính năng bổ sung
DeepSparse cung cấp các tính năng bổ sung để tích hợp thực tế YOLO11 vào các ứng dụng, chẳng hạn như chú thích hình ảnh và đánh giá bộ dữ liệu.
Các tính năng bổ sung
# For image annotation
deepsparse.yolov8.annotate --source "path/to/image.jpg" --model_filepath "path/to/yolo11n.onnx"
# For evaluating model performance on a dataset
deepsparse.yolov8.eval --model_path "path/to/yolo11n.onnx"
Việc chạy lệnh chú thích sẽ xử lý hình ảnh bạn chỉ định, phát hiện các đối tượng và lưu hình ảnh đã chú thích với các hộp giới hạn và phân loại. Hình ảnh đã chú thích sẽ được lưu trữ trong thư mục annotation-results. Điều này giúp cung cấp một biểu diễn trực quan về khả năng phát hiện của mô hình.
Sau khi chạy lệnh eval, bạn sẽ nhận được các số liệu đầu ra chi tiết như độ chính xác, độ phủ và mAP (độ chính xác trung bình). Điều này cung cấp một cái nhìn toàn diện về hiệu suất của mô hình của bạn trên bộ dữ liệu. Chức năng này đặc biệt hữu ích để tinh chỉnh và tối ưu hóa các mô hình YOLO11 của bạn cho các trường hợp sử dụng cụ thể, đảm bảo độ chính xác và hiệu quả cao.
Tóm tắt
Hướng dẫn này khám phá việc tích hợp YOLO11 của Ultralytics với DeepSparse Engine của Neural Magic. Nó nêu bật cách tích hợp này tăng cường hiệu suất của YOLO11 trên các nền tảng CPU, mang lại hiệu quả cấp GPU và các kỹ thuật về độ thưa thớt của mạng nơ-ron tiên tiến.
Để biết thêm thông tin chi tiết và cách sử dụng nâng cao, hãy truy cập tài liệu DeepSparse của Neural Magic. Bạn cũng có thể khám phá hướng dẫn tích hợp YOLO11 và xem phiên hướng dẫn trên YouTube.
Ngoài ra, để hiểu rõ hơn về các tích hợp YOLO11 khác nhau, hãy truy cập trang hướng dẫn tích hợp Ultralytics, nơi bạn có thể khám phá một loạt các khả năng tích hợp thú vị khác.
Câu hỏi thường gặp
DeepSparse Engine của Neural Magic là gì và nó tối ưu hóa hiệu suất YOLO11 như thế nào?
Neural Magic's DeepSparse Engine là một công cụ thời gian chạy suy luận được thiết kế để tối ưu hóa việc thực thi các mạng nơ-ron trên CPU thông qua các kỹ thuật tiên tiến như độ thưa thớt, tỉa bớt và lượng tử hóa. Bằng cách tích hợp DeepSparse với YOLO11, bạn có thể đạt được hiệu suất tương đương GPU trên các CPU tiêu chuẩn, giúp tăng đáng kể tốc độ suy luận, hiệu quả mô hình và hiệu suất tổng thể trong khi vẫn duy trì độ chính xác. Để biết thêm chi tiết, hãy xem phần DeepSparse của Neural Magic.
Làm thế nào để cài đặt các gói cần thiết để triển khai YOLO11 bằng DeepSparse của Neural Magic?
Việc cài đặt các gói cần thiết để triển khai YOLO11 với DeepSparse của Neural Magic rất đơn giản. Bạn có thể dễ dàng cài đặt chúng bằng CLI. Đây là lệnh bạn cần chạy:
pip install deepsparse[yolov8]
Sau khi cài đặt, hãy làm theo các bước được cung cấp trong phần Cài đặt để thiết lập môi trường của bạn và bắt đầu sử dụng DeepSparse với YOLO11.
Làm cách nào để chuyển đổi các mô hình YOLO11 sang định dạng ONNX để sử dụng với DeepSparse?
Để chuyển đổi các mô hình YOLO11 sang định dạng ONNX, định dạng này là cần thiết để tương thích với DeepSparse, bạn có thể sử dụng lệnh CLI sau:
yolo task=detect mode=export model=yolo11n.pt format=onnx opset=13
Lệnh này sẽ xuất mô hình YOLO11 của bạn (yolo11n.pt
) sang định dạng (yolo11n.onnx
) có thể được sử dụng bởi DeepSparse Engine. Bạn có thể tìm thêm thông tin về xuất mô hình trong Phần Xuất Mô hình.
Làm cách nào để đánh giá hiệu năng YOLO11 trên DeepSparse Engine?
Đánh giá hiệu suất YOLO11 trên DeepSparse giúp bạn phân tích thông lượng và độ trễ để đảm bảo mô hình của bạn được tối ưu hóa. Bạn có thể sử dụng lệnh CLI sau để chạy điểm chuẩn:
deepsparse.benchmark model_path="path/to/yolo11n.onnx" --scenario=sync --input_shapes="[1,3,640,640]"
Lệnh này sẽ cung cấp cho bạn các số liệu hiệu suất quan trọng. Để biết thêm chi tiết, hãy xem phần Đánh giá hiệu năng.
Tại sao tôi nên sử dụng DeepSparse của Neural Magic với YOLO11 cho các tác vụ phát hiện đối tượng?
Tích hợp DeepSparse của Neural Magic với YOLO11 mang lại một số lợi ích:
- Tăng tốc độ suy luận: Đạt tới 525 FPS, tăng tốc đáng kể khả năng của YOLO11.
- Hiệu quả Mô hình Tối ưu: Sử dụng các kỹ thuật về độ thưa thớt, cắt tỉa và lượng tử hóa để giảm kích thước mô hình và nhu cầu tính toán trong khi vẫn duy trì độ chính xác.
- Hiệu suất cao trên CPU tiêu chuẩn: Mang lại hiệu suất tương đương GPU trên phần cứng CPU tiết kiệm chi phí.
- Tích hợp được sắp xếp hợp lý: Các công cụ thân thiện với người dùng để dễ dàng triển khai và tích hợp.
- Tính linh hoạt: Hỗ trợ cả mô hình YOLO11 tiêu chuẩn và mô hình YOLO11 được tối ưu hóa độ thưa.
- Hiệu quả về chi phí: Giảm chi phí vận hành thông qua việc sử dụng tài nguyên hiệu quả.
Để tìm hiểu sâu hơn về những lợi thế này, hãy truy cập phần Lợi ích của việc tích hợp DeepSparse của Neural Magic với YOLO11.