Intel OpenVINO Xuất khẩu
Trong hướng dẫn này, chúng tôi đề cập đến việc xuất khẩu YOLOv8 mô hình cho OpenVINO định dạng, có thể cung cấp tốc độ CPU lên đến 3x, cũng như tăng tốc YOLO suy luận về GPU Intel và phần cứng NPU .
OpenVINO, viết tắt của Open Visual Inference & Neural Network Optimization toolkit, là một bộ công cụ toàn diện để tối ưu hóa và triển khai các mô hình suy luận AI. Mặc dù tên chứa Hình ảnh, OpenVINO Cũng hỗ trợ các tác vụ bổ sung khác nhau bao gồm ngôn ngữ, âm thanh, chuỗi thời gian, v.v.
Xem: Cách xuất và tối ưu hóa Ultralytics YOLOv8 Mô hình suy luận với OpenVINO.
Ví dụ sử dụng
Xuất một YOLOv8n Mô hình để OpenVINO định dạng và chạy suy luận với mô hình đã xuất.
Ví dụ
from ultralytics import YOLO
# Load a YOLOv8n PyTorch model
model = YOLO('yolov8n.pt')
# Export the model
model.export(format='openvino') # creates 'yolov8n_openvino_model/'
# Load the exported OpenVINO model
ov_model = YOLO('yolov8n_openvino_model/')
# Run inference
results = ov_model('https://ultralytics.com/images/bus.jpg')
Lập luận
Chìa khoá | Giá trị | Sự miêu tả |
---|---|---|
format |
'openvino' |
định dạng để xuất sang |
imgsz |
640 |
Kích thước hình ảnh dưới dạng vô hướng hoặc danh sách (h, w), tức là (640, 480) |
half |
False |
Lượng tử hóa FP16 |
Lợi ích của OpenVINO
- Hiệu suất: OpenVINO cung cấp suy luận hiệu suất cao bằng cách sử dụng sức mạnh của CPU Intel, GPU tích hợp và rời rạc cũng như FPGA.
- Hỗ trợ thực hiện không đồng nhất: OpenVINO cung cấp API để ghi một lần và triển khai trên bất kỳ phần cứng Intel nào được hỗ trợ (CPU, GPU, FPGA, VPU, v.v.).
- Trình tối ưu hóa mô hình: OpenVINO cung cấp Trình tối ưu hóa mô hình nhập, chuyển đổi và tối ưu hóa các mô hình từ các khung học tập sâu phổ biến như PyTorch, TensorFlow, TensorFlow Lite, Keras, ONNX, PaddlePaddlevà Caffe.
- Dễ sử dụng: Bộ công cụ đi kèm với hơn 80 máy tính xách tay hướng dẫn (bao gồm YOLOv8 tối ưu hóa) giảng dạy các khía cạnh khác nhau của bộ công cụ.
OpenVINO Cơ cấu xuất khẩu
Khi bạn xuất mô hình sang OpenVINO định dạng, nó dẫn đến một thư mục chứa những điều sau đây:
- Tệp XML: Mô tả cấu trúc liên kết mạng.
- Tệp BIN: Chứa weights and biases dữ liệu nhị phân.
- Tệp ánh xạ: Giữ ánh xạ các tensor đầu ra mô hình ban đầu thành OpenVINO tensor Tên.
Bạn có thể sử dụng các tệp này để chạy suy luận với OpenVINO Công cụ suy luận.
Sử dụng OpenVINO Xuất khẩu trong triển khai
Khi bạn có OpenVINO tệp, bạn có thể sử dụng OpenVINO Thời gian chạy để chạy mô hình. Thời gian chạy cung cấp một API thống nhất để suy luận trên tất cả các phần cứng Intel được hỗ trợ. Nó cũng cung cấp các khả năng nâng cao như cân bằng tải trên phần cứng Intel và thực thi không đồng bộ. Để biết thêm thông tin về cách chạy suy luận, hãy tham khảo Suy luận với OpenVINO Hướng dẫn thời gian chạy.
Hãy nhớ rằng, bạn sẽ cần các tệp XML và BIN cũng như bất kỳ cài đặt dành riêng cho ứng dụng nào như kích thước đầu vào, hệ số tỷ lệ để chuẩn hóa, v.v., để thiết lập và sử dụng chính xác mô hình với Thời gian chạy.
Trong ứng dụng triển khai của bạn, bạn thường sẽ thực hiện các bước sau:
- Khởi tạo OpenVINO bằng cách tạo
core = Core()
. - Tải mô hình bằng cách sử dụng
core.read_model()
phương pháp. - Biên dịch mô hình bằng cách sử dụng
core.compile_model()
chức năng. - Chuẩn bị đầu vào (hình ảnh, văn bản, âm thanh, v.v.).
- Chạy suy luận bằng cách sử dụng
compiled_model(input_data)
.
Để biết các bước và đoạn mã chi tiết hơn, hãy tham khảo OpenVINO tài liệu hoặc hướng dẫn API.
OpenVINO YOLOv8 Điểm chuẩn
YOLOv8 Điểm chuẩn dưới đây được điều hành bởi Ultralytics Nhóm trên 4 định dạng mô hình khác nhau đo tốc độ và độ chính xác: PyTorch, TorchScript, ONNX và OpenVINO. Điểm chuẩn được chạy trên GPU Intel Flex và Arc và trên CPU Intel Xeon ở độ chính xác FP32 (với half=False
lập luận).
Ghi
Kết quả đo điểm chuẩn dưới đây là để tham khảo và có thể thay đổi dựa trên cấu hình phần cứng và phần mềm chính xác của hệ thống, cũng như khối lượng công việc hiện tại của hệ thống tại thời điểm chạy điểm chuẩn.
Tất cả các điểm chuẩn chạy với openvino
Python Phiên bản gói 2023.0.1.
Intel Flex GPU
Intel® Data Center GPU Flex Series là một giải pháp linh hoạt và mạnh mẽ được thiết kế cho đám mây trực quan thông minh. GPU này hỗ trợ nhiều khối lượng công việc bao gồm phát trực tuyến phương tiện, chơi game trên đám mây, suy luận trực quan AI và khối lượng công việc Cơ sở hạ tầng máy tính để bàn ảo. Nó nổi bật với kiến trúc mở và hỗ trợ tích hợp cho mã hóa AV1, cung cấp ngăn xếp phần mềm dựa trên tiêu chuẩn cho các ứng dụng kiến trúc chéo, hiệu suất cao. GPU Flex Series được tối ưu hóa về mật độ và chất lượng, cung cấp độ tin cậy, tính khả dụng và khả năng mở rộng cao.
Điểm chuẩn dưới đây chạy trên Intel® Data Center GPU Flex 170 ở độ chính xác FP32.
Mẫu | Định dạng | Tình trạng | Kích thước (MB) | mAP50-95(B) | Thời gian suy luận (ms/im) |
---|---|---|---|---|---|
YOLOv8n | PyTorch | ✅ | 6.2 | 0.3709 | 21.79 |
YOLOv8n | TorchScript | ✅ | 12.4 | 0.3704 | 23.24 |
YOLOv8n | ONNX | ✅ | 12.2 | 0.3704 | 37.22 |
YOLOv8n | OpenVINO | ✅ | 12.3 | 0.3703 | 3.29 |
YOLOv8s | PyTorch | ✅ | 21.5 | 0.4471 | 31.89 |
YOLOv8s | TorchScript | ✅ | 42.9 | 0.4472 | 32.71 |
YOLOv8s | ONNX | ✅ | 42.8 | 0.4472 | 43.42 |
YOLOv8s | OpenVINO | ✅ | 42.9 | 0.4470 | 3.92 |
YOLOv8m | PyTorch | ✅ | 49.7 | 0.5013 | 50.75 |
YOLOv8m | TorchScript | ✅ | 99.2 | 0.4999 | 47.90 |
YOLOv8m | ONNX | ✅ | 99.0 | 0.4999 | 63.16 |
YOLOv8m | OpenVINO | ✅ | 49.8 | 0.4997 | 7.11 |
YOLOv8l | PyTorch | ✅ | 83.7 | 0.5293 | 77.45 |
YOLOv8l | TorchScript | ✅ | 167.2 | 0.5268 | 85.71 |
YOLOv8l | ONNX | ✅ | 166.8 | 0.5268 | 88.94 |
YOLOv8l | OpenVINO | ✅ | 167.0 | 0.5264 | 9.37 |
YOLOv8x | PyTorch | ✅ | 130.5 | 0.5404 | 100.09 |
YOLOv8x | TorchScript | ✅ | 260.7 | 0.5371 | 114.64 |
YOLOv8x | ONNX | ✅ | 260.4 | 0.5371 | 110.32 |
YOLOv8x | OpenVINO | ✅ | 260.6 | 0.5367 | 15.02 |
Bảng này thể hiện kết quả điểm chuẩn cho năm mô hình khác nhau (YOLOv8n, YOLOv8s, YOLOv8m, YOLOv8l, YOLOv8x) trên bốn định dạng khác nhau (PyTorch, TorchScript, ONNX, OpenVINO), cho chúng tôi trạng thái, kích thước, số liệu mAP50-95 (B) và thời gian suy luận cho mỗi kết hợp.
Intel Arc GPU
Intel® Arc™ đại diện cho bước đột phá của Intel vào thị trường GPU chuyên dụng. Dòng Arc™, được thiết kế để cạnh tranh với các nhà sản xuất GPU hàng đầu như AMD và Nvidia, phục vụ cho cả thị trường máy tính xách tay và máy tính để bàn. Sê-ri bao gồm các phiên bản di động cho các thiết bị nhỏ gọn như máy tính xách tay và các phiên bản lớn hơn, mạnh mẽ hơn cho máy tính để bàn.
Sê-ri Arc™ được chia thành ba loại: Arc™ 3, Arc™ 5 và Arc™ 7, với mỗi số cho biết mức hiệu suất. Mỗi danh mục bao gồm một số kiểu máy và chữ 'M' trong tên kiểu GPU biểu thị một biến thể tích hợp, di động.
Các đánh giá ban đầu đã ca ngợi dòng Arc™, đặc biệt là GPU A770M tích hợp, vì hiệu suất đồ họa ấn tượng. Tính khả dụng của dòng Arc™ thay đổi theo khu vực và các mô hình bổ sung dự kiến sẽ sớm được phát hành. GPU Intel® Arc™ cung cấp các giải pháp hiệu suất cao cho một loạt các nhu cầu điện toán, từ chơi game đến sáng tạo nội dung.
Điểm chuẩn dưới đây chạy trên GPU Intel® Arc 770 ở độ chính xác FP32.
Mẫu | Định dạng | Tình trạng | Kích thước (MB) | số liệu/mAP50-95(B) | Thời gian suy luận (ms/im) |
---|---|---|---|---|---|
YOLOv8n | PyTorch | ✅ | 6.2 | 0.3709 | 88.79 |
YOLOv8n | TorchScript | ✅ | 12.4 | 0.3704 | 102.66 |
YOLOv8n | ONNX | ✅ | 12.2 | 0.3704 | 57.98 |
YOLOv8n | OpenVINO | ✅ | 12.3 | 0.3703 | 8.52 |
YOLOv8s | PyTorch | ✅ | 21.5 | 0.4471 | 189.83 |
YOLOv8s | TorchScript | ✅ | 42.9 | 0.4472 | 227.58 |
YOLOv8s | ONNX | ✅ | 42.7 | 0.4472 | 142.03 |
YOLOv8s | OpenVINO | ✅ | 42.9 | 0.4469 | 9.19 |
YOLOv8m | PyTorch | ✅ | 49.7 | 0.5013 | 411.64 |
YOLOv8m | TorchScript | ✅ | 99.2 | 0.4999 | 517.12 |
YOLOv8m | ONNX | ✅ | 98.9 | 0.4999 | 298.68 |
YOLOv8m | OpenVINO | ✅ | 99.1 | 0.4996 | 12.55 |
YOLOv8l | PyTorch | ✅ | 83.7 | 0.5293 | 725.73 |
YOLOv8l | TorchScript | ✅ | 167.1 | 0.5268 | 892.83 |
YOLOv8l | ONNX | ✅ | 166.8 | 0.5268 | 576.11 |
YOLOv8l | OpenVINO | ✅ | 167.0 | 0.5262 | 17.62 |
YOLOv8x | PyTorch | ✅ | 130.5 | 0.5404 | 988.92 |
YOLOv8x | TorchScript | ✅ | 260.7 | 0.5371 | 1186.42 |
YOLOv8x | ONNX | ✅ | 260.4 | 0.5371 | 768.90 |
YOLOv8x | OpenVINO | ✅ | 260.6 | 0.5367 | 19 |
Intel Xeon CPU
CPU Intel® Xeon® là bộ xử lý cấp máy chủ, hiệu suất cao được thiết kế cho khối lượng công việc phức tạp và đòi hỏi khắt khe. Từ điện toán đám mây và ảo hóa cao cấp đến trí tuệ nhân tạo và các ứng dụng học máy, CPU Xeon® cung cấp sức mạnh, độ tin cậy và tính linh hoạt cần thiết cho các trung tâm dữ liệu ngày nay.
Đáng chú ý, CPU Xeon® cung cấp mật độ tính toán và khả năng mở rộng cao, khiến chúng trở nên lý tưởng cho cả doanh nghiệp nhỏ và doanh nghiệp lớn. Bằng cách chọn CPU Intel® Xeon®, các tổ chức có thể tự tin xử lý các tác vụ điện toán đòi hỏi khắt khe nhất của họ và thúc đẩy sự đổi mới trong khi vẫn duy trì hiệu quả chi phí và hiệu quả hoạt động.
Điểm chuẩn dưới đây chạy trên CPU Intel® Xeon® Scalable thế hệ thứ 4 với độ chính xác FP32.
Mẫu | Định dạng | Tình trạng | Kích thước (MB) | số liệu/mAP50-95(B) | Thời gian suy luận (ms/im) |
---|---|---|---|---|---|
YOLOv8n | PyTorch | ✅ | 6.2 | 0.3709 | 24.36 |
YOLOv8n | TorchScript | ✅ | 12.4 | 0.3704 | 23.93 |
YOLOv8n | ONNX | ✅ | 12.2 | 0.3704 | 39.86 |
YOLOv8n | OpenVINO | ✅ | 12.3 | 0.3704 | 11.34 |
YOLOv8s | PyTorch | ✅ | 21.5 | 0.4471 | 33.77 |
YOLOv8s | TorchScript | ✅ | 42.9 | 0.4472 | 34.84 |
YOLOv8s | ONNX | ✅ | 42.8 | 0.4472 | 43.23 |
YOLOv8s | OpenVINO | ✅ | 42.9 | 0.4471 | 13.86 |
YOLOv8m | PyTorch | ✅ | 49.7 | 0.5013 | 53.91 |
YOLOv8m | TorchScript | ✅ | 99.2 | 0.4999 | 53.51 |
YOLOv8m | ONNX | ✅ | 99.0 | 0.4999 | 64.16 |
YOLOv8m | OpenVINO | ✅ | 99.1 | 0.4996 | 28.79 |
YOLOv8l | PyTorch | ✅ | 83.7 | 0.5293 | 75.78 |
YOLOv8l | TorchScript | ✅ | 167.2 | 0.5268 | 79.13 |
YOLOv8l | ONNX | ✅ | 166.8 | 0.5268 | 88.45 |
YOLOv8l | OpenVINO | ✅ | 167.0 | 0.5263 | 56.23 |
YOLOv8x | PyTorch | ✅ | 130.5 | 0.5404 | 96.60 |
YOLOv8x | TorchScript | ✅ | 260.7 | 0.5371 | 114.28 |
YOLOv8x | ONNX | ✅ | 260.4 | 0.5371 | 111.02 |
YOLOv8x | OpenVINO | ✅ | 260.6 | 0.5371 | 83.28 |
Intel Core CPU
Dòng Intel® Core® là một loạt các bộ vi xử lý hiệu suất cao của Intel. Dòng sản phẩm bao gồm Core i3 (cấp nhập cảnh), Core i5 (tầm trung), Core i7 (cao cấp) và Core i9 (hiệu năng cực cao). Mỗi dòng phục vụ cho các nhu cầu điện toán và ngân sách khác nhau, từ các tác vụ hàng ngày đến khối lượng công việc chuyên nghiệp đòi hỏi khắt khe. Với mỗi thế hệ mới, các cải tiến được thực hiện đối với hiệu suất, hiệu quả năng lượng và các tính năng.
Điểm chuẩn dưới đây chạy trên CPU Intel® Core® i7-13700H thế hệ thứ 13 ở độ chính xác FP32.
Mẫu | Định dạng | Tình trạng | Kích thước (MB) | số liệu/mAP50-95(B) | Thời gian suy luận (ms/im) |
---|---|---|---|---|---|
YOLOv8n | PyTorch | ✅ | 6.2 | 0.4478 | 104.61 |
YOLOv8n | TorchScript | ✅ | 12.4 | 0.4525 | 112.39 |
YOLOv8n | ONNX | ✅ | 12.2 | 0.4525 | 28.02 |
YOLOv8n | OpenVINO | ✅ | 12.3 | 0.4504 | 23.53 |
YOLOv8s | PyTorch | ✅ | 21.5 | 0.5885 | 194.83 |
YOLOv8s | TorchScript | ✅ | 43.0 | 0.5962 | 202.01 |
YOLOv8s | ONNX | ✅ | 42.8 | 0.5962 | 65.74 |
YOLOv8s | OpenVINO | ✅ | 42.9 | 0.5966 | 38.66 |
YOLOv8m | PyTorch | ✅ | 49.7 | 0.6101 | 355.23 |
YOLOv8m | TorchScript | ✅ | 99.2 | 0.6120 | 424.78 |
YOLOv8m | ONNX | ✅ | 99.0 | 0.6120 | 173.39 |
YOLOv8m | OpenVINO | ✅ | 99.1 | 0.6091 | 69.80 |
YOLOv8l | PyTorch | ✅ | 83.7 | 0.6591 | 593.00 |
YOLOv8l | TorchScript | ✅ | 167.2 | 0.6580 | 697.54 |
YOLOv8l | ONNX | ✅ | 166.8 | 0.6580 | 342.15 |
YOLOv8l | OpenVINO | ✅ | 167.0 | 0.0708 | 117.69 |
YOLOv8x | PyTorch | ✅ | 130.5 | 0.6651 | 804.65 |
YOLOv8x | TorchScript | ✅ | 260.8 | 0.6650 | 921.46 |
YOLOv8x | ONNX | ✅ | 260.4 | 0.6650 | 526.66 |
YOLOv8x | OpenVINO | ✅ | 260.6 | 0.6619 | 158.73 |
Tái tạo kết quả của chúng tôi
Để tái tạo Ultralytics Điểm chuẩn ở trên trên tất cả các định dạng xuất đều chạy mã này:
Ví dụ
Lưu ý rằng kết quả đo điểm chuẩn có thể thay đổi dựa trên cấu hình phần cứng và phần mềm chính xác của hệ thống, cũng như khối lượng công việc hiện tại của hệ thống tại thời điểm chạy điểm chuẩn. Để có kết quả đáng tin cậy nhất, hãy sử dụng tập dữ liệu có số lượng hình ảnh lớn, tức là data='coco128.yaml' (128 val images), or
data = 'coco.yaml'' (5000 hình ảnh val).
Kết thúc
Kết quả benchmark thể hiện rõ lợi ích của việc xuất khẩu YOLOv8 mô hình cho OpenVINO định dạng. Trên các mô hình và nền tảng phần cứng khác nhau, các OpenVINO Định dạng luôn vượt trội hơn các định dạng khác về tốc độ suy luận trong khi vẫn duy trì độ chính xác tương đương.
® Đối với Intel Data Center GPU Flex Series, OpenVINO Định dạng có thể cung cấp tốc độ suy luận nhanh hơn gần 10 lần so với bản gốc PyTorch định dạng. Trên CPU Xeon, OpenVINO Định dạng nhanh gấp đôi so với PyTorch định dạng. Độ chính xác của các mô hình vẫn gần như giống hệt nhau trên các định dạng khác nhau.
Các điểm chuẩn nhấn mạnh tính hiệu quả của OpenVINO như một công cụ để triển khai các mô hình deep learning. Bằng cách chuyển đổi các mô hình sang OpenVINO Định dạng, các nhà phát triển có thể đạt được những cải tiến hiệu suất đáng kể, giúp triển khai các mô hình này trong các ứng dụng trong thế giới thực dễ dàng hơn.
Để biết thêm thông tin chi tiết và hướng dẫn sử dụng OpenVINO, tham khảo chính thức OpenVINO tài liệu.
Đã tạo 2023-11-12, Cập nhật 2024-04-18
Tác giả: glenn-jocher (9), abirami-vina (1), RizwanMunawar (1), Burhan-Q (1)