Bỏ để qua phần nội dung

Intel OpenVINO Xuất khẩu

OpenVINO Hệ sinh thái

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')
# Export a YOLOv8n PyTorch model to OpenVINO format
yolo export model=yolov8n.pt format=openvino  # creates 'yolov8n_openvino_model/'

# Run inference with the exported model
yolo predict model=yolov8n_openvino_model source='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

  1. 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.
  2. 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.).
  3. 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.
  4. 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:

  1. Tệp XML: Mô tả cấu trúc liên kết mạng.
  2. Tệp BIN: Chứa weights and biases dữ liệu nhị phân.
  3. 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:

  1. Khởi tạo OpenVINO bằng cách tạo core = Core().
  2. Tải mô hình bằng cách sử dụng core.read_model() phương pháp.
  3. Biên dịch mô hình bằng cách sử dụng core.compile_model() chức năng.
  4. Chuẩn bị đầu vào (hình ảnh, văn bản, âm thanh, v.v.).
  5. 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.

Điểm chuẩn GPU Flex
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.

Điểm chuẩn GPU Arc
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.

Điểm chuẩn CPU Xeon
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.

Điểm chuẩn CPU lõi
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ụ

from ultralytics import YOLO

# Load a YOLOv8n PyTorch model
model = YOLO('yolov8n.pt')

# Benchmark YOLOv8n speed and accuracy on the COCO8 dataset for all all export formats
results= model.benchmarks(data='coco8.yaml')
# Benchmark YOLOv8n speed and accuracy on the COCO8 dataset for all all export formats
yolo benchmark model=yolov8n.pt data=coco8.yaml

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), ordata = '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)

Ý kiến