OpenVINO工具套件權威指南(輕松實現AI模型的優化和部署)

武卓 李翊瑋 張晶

  • 出版商: 機械工業
  • 出版日期: 2025-04-01
  • 售價: $474
  • 語言: 簡體中文
  • 頁數: 188
  • ISBN: 7111777298
  • ISBN-13: 9787111777298
  • 下單後立即進貨 (約4週~6週)

商品描述

本書旨在幫助開發者應對AI推理計算性能優化這一重要挑戰。隨著深度學習模型的規模和覆雜性日益增長,如何提升推理效率已成為開發者關註的核心問題。本書詳細介紹了OpenVINOTM(Open Visual Inference and Neural Network Optimization)這款由英特爾推出的,專為深度學習模型的優化、加速推理和跨平臺部署設計的開源工具套件。通過簡單易用的功能,開發者可以快速上手,實現AI應用的高效落地。 本書涵蓋了從OpenVINO的基礎入門到高級優化的完整內容,包括設備插件、量化技術、大語言模型和生成式AI的優化與部署等,幫助開發者靈活應對不同應用場景的需求。此外,書中還介紹了端到端AI推理計算性能提升的實戰案例,以及與PyTorch、ONNX Runtime等工具的集成,確保開發者在熟悉的環境中提升開發效率。書中代碼獲取方式見前言。 本書不僅適合AI領域的初學者,也為有經驗的開發者提供了深入的技術指南。通過OpenVINO,開發者可以輕松提升AI推理計算性能,加速AI應用項目的成功落地。

目錄大綱

前言
第1章 OpenVINOTM工具套件快速入門
1.1 OpenVINOTM 工具套件簡介
1.2 OpenVINOTM 常用工具和組件
1.3 搭建OpenVINOTM Python開發環境
1.4 使用OpenVINOTM Model Converter轉換模型
1.4.1 OpenVINOTM IR模型
1.4.2 使用OVC轉換模型
1.5 使用benchmark_app評估模型推理計算性能
1.6 編寫OpenVINOTM同步推理程序
1.6.1 OpenVINOTM同步推理程序典型流程
1.6.2 創建Core對象
1.6.3 讀取並編譯模型
1.6.4 獲取圖像數據
1.6.5 數據預處理
1.6.6 執行 AI 推理計算並獲得推理結果
1.6.7 對推理結果進行後處理
1.6.8 運行完整的推理程序
1.7 本章小結
第2章 優化AI模型的推理計算性能
2.1 AI推理計算性能評價指標
2.1.1 AI模型的推理計算性能
2.1.2 端到端的AI程序推理計算性能
2.2 OpenVINOTM 設備插件
2.2.1 CPU插件、GPU插件和NPU插件
2.2.2 自動設備選擇(AUTO)
2.2.3 用代碼指定計算設備
2.3 性能提示(Performance Hints)
2.3.1 LATENCY(延遲優先)
2.3.2 THROUGHPUT(吞吐量優先)
2.3.3 CUMULATIVE_THROUGHPUT(累計吞吐量)
2.3.4 用代碼配置性能提示屬性
2.4 計算設備的屬性
2.4.1 獲得屬性
2.4.2 設置屬性
2.5 推理請求數量(Number of Infer Requests)
2.5.1 最佳推理請求數
2.5.2 用代碼設置推理請求數
2.6 自動批處理(Automatic Batching)
2.6.1 啟用自動批處理
2.6.2 設置批尺寸
2.6.3 設置自動批處理超時
2.7 模型緩存(Model Caching)
2.8 線程調度(Thread Scheduling)
2.9 共享內存(Shared Memory)
2.9.1 輸入共享內存
2.9.2 輸出共享內存
2.10 編寫帶屬性配置的OpenVINOTM同步推理程序
2.10.1 創建推理請求對象
2.10.2 阻塞式推理計算方法:infer()
2.10.3 基於YOLOv8-cls分類模型的同步推理程序
2.10.4 基於YOLOv8目標檢測模型的同步推理程序
2.10.5 基於YOLOv8-seg實例分割模型的同步推理程序
2.11 本章小結
第3章 模型量化技術
3.1 深度學習中常見的數據類型
3.1.1 如何用二進製表示浮點數
3.1.2 不同數據類型的存儲需求和計算效率
3.2 INT8量化
3.3 NNCF
3.4 搭建NNCF開發環境
3.5 基礎量化
3.5.1 準備COCO驗證數據集
3.5.2 編寫轉換函數transform_fn()
3.5.3 準備校準數據集
3.5.4 調用nncf.quantize()函數執行INT8量化
3.5.5 保存INT8量化好的模型
3.5.6 測試INT8模型性能
3.5.7 基礎量化小結
3.6 帶精度控制的量化
3.6.1 準備COCO128驗證數據集
3.6.2 編寫轉換函數transform_fn()
3.6.3 準備校準數據集和驗證數據集
3.6.4 準備驗證函數
3.6.5 調用nncf.quantize_with_accuracy_control()函數執行INT8量化
3.6.6 保存INT8量化好的模型
3.6.7 測試INT8模型性能
3.6.8 帶精度控制的量化小結
3.7 本章小結
第4章 優化端到端的AI程序推理計算性能
4.1 端到端的AI程序推理計算性能
4.2 預處理API
4.2.1 導出YOLOv8s IR模型
4.2.2 實例化PrePostProcessor對象
4.2.3 聲明用戶輸入數據信息
4.2.4 聲明原始模型輸入節點的佈局信息
4.2.5 定義預處理步驟
4.2.6 將預處理步驟嵌入原始AI模型
4.2.7 保存嵌入預處理的AI模型
4.2.8 內嵌預處理後的模型性能
4.3 torchvision預處理轉換器
4.4 使用異步推理提升AI程序的吞吐量
4.4.1 OpenVINOTM異步推理API
4.4.2 YOLOv8異步推理範例
4.5 使用AsyncInferQueue進一步提升AI程序的吞吐量
4.6 多路視頻流並行推理
4.6.1 下載無版權視頻
4.6.2 下載person-detection-0202模型並準備前、後處理函數
4.6.3 編寫推理線程
4.6.4 編寫顯示線程
4.6.5 啟動多線程
4.7 本章小結
第5章 OpenVINOTM的編程生態
5.1 指定OpenVINOTM為PyTorch 2.×後端
5.1.1 torch.compile簡介
5.1.2 OpenVINOTM後端
5.2 ONNX Runtime的OpenVINOTM執行提供者
5.2.1 搭建ONNX Runtime開發環境
5.2.2 OpenVINOTM執行提供者範例程序
5.3 Optimum Intel的OpenVINOTM後端
5.3.1 搭建開發環境
5.3.2用optimum-cli對Qwen2-1.5 B-Instruct模型進行INT4量化
5.3.3 編寫推理程序qwen2_optimum.py
5.4 LangChain的OpenVINOTM後端
5.4.1 LangChain支持OpenVINOTM後端
5.4.2 編寫推理程序qwen2_langchain.py
5.5 vLLM的OpenVINOTM後端
5.5.1 搭建OpenVINOTM+vLLM開發環境
5.5.2 vLLM的範例程序
5.6 OpenV