0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用OpenVINO解鎖AI更輕松部署和加速的潛力

SDNLAB ? 來源:英特爾物聯(lián)網(wǎng) ? 2023-07-04 16:21 ? 次閱讀

OpenVINO

2023.0

最新版來襲

隨著 OpenVINO5周年紀(jì)念日的臨近,我們想花點(diǎn)時(shí)間對(duì)您在過去五年中對(duì)OpenVINO的持續(xù)使用表示最深切的感謝。到目前為止,這是一段不可思議的旅程,我們很自豪您能成為我們社區(qū)中的一員。社區(qū)的持續(xù)支持使我們的下載量超過了 100 萬次。

在我們紀(jì)念這一重要里程碑之際,我們激動(dòng)地發(fā)布我們的最新版本OpenVINO2023.0,它具有一系列新的特性和功能,將使開發(fā)人員能夠更輕松地部署和加速人工智能。

2023.0 版本的重點(diǎn)是通過最大限度地減少離線轉(zhuǎn)換、擴(kuò)大模型支持和推進(jìn)硬件優(yōu)化來改善開發(fā)者之旅。完整的發(fā)布說明可在此獲得:

亮點(diǎn)包括:

盡量減少 AI 開發(fā)者在采用和維護(hù)代碼時(shí)的代碼修改并更好的與各深度學(xué)習(xí)框架保持一致

全新的 TensorFlow 體驗(yàn):簡(jiǎn)化從訓(xùn)練到部署 TensorFlow 模型的工作流程

現(xiàn)在可用 Conda Forge!對(duì)于習(xí)慣使用 Conda的 C++ 開發(fā)人員來說,更容易安裝 OpenVINO運(yùn)行時(shí)庫

更廣泛的處理器支持:當(dāng)前 ARM 處理器支持包括 OpenVINOCPU 推理計(jì)算,動(dòng)態(tài)輸入,完整的處理器性能和廣泛的示例代碼 Notebook 教程覆蓋

擴(kuò)展 Python 支持:增加了對(duì) Python 3.11 的支持,以獲得更多潛在的性能改進(jìn)

在包括 NLP 在內(nèi)的更多模型上輕松實(shí)現(xiàn)優(yōu)化和部署,并通過新的硬件特性能力獲得更多的 AI 加速

更廣泛的模型支持:支持生成式 AI 模型、文本處理模型、Transformer 模型等

GPU 上支持動(dòng)態(tài)輸入:當(dāng)使用 GPU 時(shí),不需要將模型輸入改為靜態(tài)輸入,這在編寫代碼時(shí)提供了更多的靈活性,特別是對(duì)于 NLP 模型

NNCF 是首選的量化工具:將訓(xùn)練后量化(POT)集成到神經(jīng)網(wǎng)絡(luò)壓縮框架(NNCF)中,有了它,通過模型壓縮,更容易獲得巨大的性能提升

通過自動(dòng)設(shè)備發(fā)現(xiàn),負(fù)載平衡和跨 CPU, GPU等的動(dòng)態(tài)推理并行,可以直接看到性能的提升

CPU 插件中的線程調(diào)度:通過在第12代英特爾酷睿 處理器及以上版本的 CPU 的能效核、性能核或能效核 + 性能核上運(yùn)行推理來優(yōu)化性能或能效。

默認(rèn)推理精度:默認(rèn)為不同的格式,以在 CPU 和 GPU 上提供最佳性能。

模型緩存擴(kuò)展:減少 GPU 和 CPU 的首次推理延遲

現(xiàn)在,讓我們深入研究一下上面介紹的一些新功能。

探索 OpenVINO 2023.0 中的新功能

全新的 TensorFlow 體驗(yàn)

現(xiàn)在,TensorFlow 開發(fā)人員可以更容易地從模型訓(xùn)練轉(zhuǎn)移到模型部署。無需離線將 TensorFlow 或 TensorFlow Lite 格式的模型文件轉(zhuǎn)換為 OpenVINO IR 格式-這會(huì)在運(yùn)行時(shí)自動(dòng)發(fā)生?,F(xiàn)在,您可以開始試驗(yàn) Model Optimizer,以改善有限范圍模型的轉(zhuǎn)換時(shí)間,或者直接在 OpenVINO Runtime 或 OpenVINOModel Server 中加載標(biāo)準(zhǔn) TensorFlow 或 TensorFlow Lite 模型

下圖顯示了一個(gè)簡(jiǎn)單的示例:

7b315c88-1721-11ee-962d-dac502259ad0.png

圖 1. 部署 TensorFlow/TensorFlow Lite 模型的通用工作流程

更廣泛的模型支持

AI 開發(fā)者可以找到更多的對(duì)生成式 AI 模型支持,例如:

CLIP

BLIP

Stable Diffusion 2.0

帶 ControlNet 的 Stable Diffusion

對(duì)文本處理模型的支持,對(duì) Transformer 模型的支持,例如,S-BERT,GPT-J 等,對(duì) Detectron2,Paddle Slim,Segment Anything Model(SAM),YOLOv8,RNN-T 等模型的支持。

圖 2. 由 stable-diffusion-2-inpainting 模型生成的無限變焦視頻效果

圖 3. 基于兩個(gè)條件生成的圖像,用 OpenPose 從輸入圖像提取關(guān)鍵點(diǎn)的 ControlNet 工作流程,然后作為額外條件與文本提示詞一起輸入到 Stable Diffusion 模型

圖 4. 用 Segment Anything Model (SAM) 模型分割給定圖片的一切

默認(rèn)推理精度

最新的更新包括在各種設(shè)備上的推理性能的顯著提高,這些設(shè)備現(xiàn)在默認(rèn)以高性能模式運(yùn)行。這意味著對(duì)于 GPU 設(shè)備,使用 FP16 推理,而 CPU 設(shè)備使用 BF16 推理(如果可用)。

關(guān)于 BF16 推理請(qǐng)?jiān)L問:

以前,用戶必須自己將 IR 轉(zhuǎn)換為 FP16,才能使 GPU 在 FP16 模式下執(zhí)行?,F(xiàn)在,所有設(shè)備都可以自動(dòng)選擇默認(rèn)推理精度,并且此選擇與 IR 精度沒有關(guān)系。在極少數(shù)情況下,使用默認(rèn)模式可能會(huì)影響推理準(zhǔn)確性,此時(shí)用戶也可以通過接口手動(dòng)調(diào)整推理精度。

此外,開發(fā)者可以單獨(dú)控制 IR 精度。默認(rèn)情況下,我們建議將其設(shè)置為 FP16,以便為浮點(diǎn)模型減少 2 倍的模型大小。值得注意的是,IR 精度并不影響設(shè)備執(zhí)行模型的方式,而是通過降低權(quán)重精度來壓縮模型。

7d3faf98-1721-11ee-962d-dac502259ad0.png

圖 5. 自動(dòng)轉(zhuǎn)換 IR 模型為默認(rèn)推理精度

NNCF 作為首選的量化工具

NNCF 為 OpenVINO 中的神經(jīng)網(wǎng)絡(luò)推理優(yōu)化提供了一套先進(jìn)的算法,并具有最小的精度損失。它支持對(duì) PyTorch,TensorFlow,ONNX 和 OpenVINO 模型對(duì)象進(jìn)行量化 。

在這之前,OpenVINO有單獨(dú)的工具用于訓(xùn)練后優(yōu)化(POT)和量化感知訓(xùn)練。我們將這兩種方法合并到 NNCF 中,其中提供的壓縮算法如下所示,見圖 6。這有助于減少模型大小、內(nèi)存占用和延遲,并提高計(jì)算效率。

7d4b20f8-1721-11ee-962d-dac502259ad0.png

圖 6. NNCF 提供的壓縮算算法

訓(xùn)練后量化算法從代表性數(shù)據(jù)集中獲取樣本,并將其輸入到網(wǎng)絡(luò)中,然后根據(jù)所得的權(quán)重和激活值對(duì)網(wǎng)絡(luò)進(jìn)行校準(zhǔn)。一旦校準(zhǔn)完成,網(wǎng)絡(luò)中的值就被轉(zhuǎn)換為 8 位整型格式。NNCF 的基本訓(xùn)練后量化流程是將 8 位量化應(yīng)用于模型的最簡(jiǎn)單方法:

設(shè)置環(huán)境并安裝依賴項(xiàng)

pip install nncf

準(zhǔn)備校準(zhǔn)數(shù)據(jù)集

import nncf


calibration_loader = torch.utils.data.DataLoader(...)
def transform_fn(data_item):
  images, _ = data_item
  return images
calibration_dataset = nncf.Dataset(calibration_loader, transform_fn)

向右滑動(dòng)查看完整代碼

運(yùn)行以獲取量化模型

model = ... #OpenVINO/ONNX/PyTorch/TF object
quantized_model = nncf.quantize(model, calibration_dataset)

向右滑動(dòng)查看完整代碼

關(guān)于如何使用 NNCF 進(jìn)行模型量化和壓縮的教程可以在這里找到,其中我們驗(yàn)證了將訓(xùn)練后量化應(yīng)用于 YOLOv5 模型,精度幾乎沒有下降(圖7):

image.png

圖 7. 將訓(xùn)練后量化應(yīng)用于 YOLOv5 模型,精度幾乎沒有下降

CPU 插件中的線程調(diào)度

提升英特爾 平臺(tái)的多線程調(diào)度。

有了新的 ov::scheduling_core_type屬性,可以通過選擇在 {ov::ANY_CORE, ov::PCORE_ONLY, ov::ECORE_ONLY}上運(yùn)行推理來配置性能優(yōu)先或能效優(yōu)先,用于第12代英特爾酷睿及以上的 CPU,HYBRID 平臺(tái)。

通過將ov::enable_hyper_threading屬性設(shè)置為 "True",物理核和邏輯核都可以在英特爾平臺(tái)的性能核上啟用,因此通過這種配置帶來性能提升。

7dbc3edc-1721-11ee-962d-dac502259ad0.gif

圖 8. 啟用 "SCHEDULING_CORE_TYPE "和 "ENABLE_HYPER_THREADING",在CPU插件中提升了多線程。

另一個(gè)新屬性是 ov::enable_cpu_pinning。默認(rèn)情況下,ov::enable_cpu_pinning 被設(shè)置為 “True”, 這意味著用于運(yùn)行多個(gè)深度學(xué)習(xí)模型的推理請(qǐng)求的多個(gè)線程將由 OpenVINO運(yùn)行時(shí)(TBB)調(diào)度。在這種模式下,具有多個(gè)線程的一個(gè)深度學(xué)習(xí)模型的推理將被視為一個(gè)整體圖,其中每個(gè)線程將綁定到 CPU 處理器,而不會(huì)引起緩存丟失和額外的開銷。但是,在同時(shí)運(yùn)行兩個(gè)神經(jīng)網(wǎng)絡(luò)的推理的情況下,可能在相同的 CPU 處理器上調(diào)度不同深度學(xué)習(xí)模型推理請(qǐng)求的多個(gè)線程,從而導(dǎo)致對(duì)相同處理器資源上的競(jìng)爭(zhēng)(如圖 9 所示)。

7dd73c1e-1721-11ee-962d-dac502259ad0.png

圖 9. 在 CPU 插件中設(shè)置 "ENABLE_CPU_PINNING "為 "True",為多線程啟用 TBB 調(diào)度

為了避免 CPU 處理器資源競(jìng)爭(zhēng),我們可以通過將 ov::enable_cpu_pinning 設(shè)置為 “False”來禁用處理器綁定屬性,并讓操作系統(tǒng)為神經(jīng)網(wǎng)絡(luò)的每個(gè)線程調(diào)度處理器資源。在這種模式下,同一深度學(xué)習(xí)模型不同層上的推理可能會(huì)在不同的處理器之間切換,從而導(dǎo)致緩存丟失和額外的開銷(如圖 10 所示),此時(shí)開發(fā)者可以根據(jù)實(shí)際的測(cè)試結(jié)果,選擇最合適的方案進(jìn)行部署。

7e1328e6-1721-11ee-962d-dac502259ad0.png

7e2b65fa-1721-11ee-962d-dac502259ad0.png

圖 10. 在 CPU 插件中設(shè)置 "ENABLE_CPU_PINNING "為 "False",由操作系統(tǒng)調(diào)度多線程

升級(jí)到 OpenVINO 2023.0

OpenVINO從頭到尾都能讓您的 AI 應(yīng)用發(fā)揮最大的作用。有了您的持續(xù)支持,我們可以為各地的開發(fā)人員提供有價(jià)值的升級(jí)。憑借其智能和全面的功能,OpenVINO就像在您身邊有自己的性能工程師。

您可以使用以下命令升級(jí)到 OpenVINO2023.0:

但是請(qǐng)確保檢查所有的依賴項(xiàng),因?yàn)樯?jí)可能會(huì)更新 OpenVINO之外的其他包。如果您希望安裝 C/ C++ API,拉取預(yù)構(gòu)建的 Docker 鏡像或從其他存儲(chǔ)庫下載,請(qǐng)?jiān)L問下載頁面以找到適合您的需求的包。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    18927

    瀏覽量

    227228
  • 英特爾
    +關(guān)注

    關(guān)注

    60

    文章

    9748

    瀏覽量

    170647
  • AI
    AI
    +關(guān)注

    關(guān)注

    87

    文章

    28877

    瀏覽量

    266225
  • 模型
    +關(guān)注

    關(guān)注

    1

    文章

    3032

    瀏覽量

    48359
  • python
    +關(guān)注

    關(guān)注

    53

    文章

    4753

    瀏覽量

    84078

原文標(biāo)題:使用OpenVINO?解鎖 AI 更輕松部署和加速的潛力

文章出處:【微信號(hào):SDNLAB,微信公眾號(hào):SDNLAB】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何使用OpenVINO C++ API部署FastSAM模型

    象的位置和邊界。本文將介紹如何使用 OpenVINO C++ API 部署 FastSAM 模型,以實(shí)現(xiàn)快速高效的語義分割。在前文中我們發(fā)表了《基于 OpenVINO Python API
    的頭像 發(fā)表于 11-17 09:53 ?733次閱讀
    如何使用<b class='flag-5'>OpenVINO</b> C++ API<b class='flag-5'>部署</b>FastSAM模型

    為什么無法通過Heroku部署OpenVINO?工具套件?

    無法通過 Heroku 部署OpenVINO?工具套件: Importeror:libpython3.9.so.1.0:無法打開共享對(duì)象文件:無此類文件或目錄
    發(fā)表于 08-14 08:58

    英特爾OpenVINO?將全力助力極視角AI推理加速

    在模型開發(fā)和部署方面,極市平臺(tái)集成了最新版本的OpenVINO工具,助力開發(fā)者在最小化代碼修改的條件下加速AI算法在各類生產(chǎn)環(huán)境中規(guī)?;?b class='flag-5'>部署
    的頭像 發(fā)表于 09-22 16:19 ?1691次閱讀
    英特爾<b class='flag-5'>OpenVINO</b>?將全力助力極視角<b class='flag-5'>AI</b>推理<b class='flag-5'>加速</b>

    OpenVINO加速多領(lǐng)域AI產(chǎn)業(yè)創(chuàng)新發(fā)展

    科技”)、一起教育科技及復(fù)旦大學(xué)的行業(yè)大咖還圍繞“OpenVINO 如何助力推動(dòng)多領(lǐng)域AI產(chǎn)業(yè)創(chuàng)新發(fā)展以及智能化轉(zhuǎn)型”進(jìn)行了多維度的分享與交流。此次大會(huì)不僅為業(yè)內(nèi)開發(fā)者提供了絕佳的交流學(xué)習(xí)機(jī)會(huì),也充分展示了OpenVINO 自推
    的頭像 發(fā)表于 07-03 14:35 ?1224次閱讀

    AI愛克斯開發(fā)板上用OpenVINO?加速YOLOv8目標(biāo)檢測(cè)模型

    《在 AI 愛克斯開發(fā)板上用 OpenVINO 加速 YOLOv8 分類模型》介紹了在 AI 愛克斯開發(fā)板上使用 OpenVINO 開發(fā)套件
    的頭像 發(fā)表于 05-12 09:08 ?1151次閱讀
    在<b class='flag-5'>AI</b>愛克斯開發(fā)板上用<b class='flag-5'>OpenVINO</b>?<b class='flag-5'>加速</b>YOLOv8目標(biāo)檢測(cè)模型

    AI愛克斯開發(fā)板上使用OpenVINO加速YOLOv8目標(biāo)檢測(cè)模型

    《在AI愛克斯開發(fā)板上用OpenVINO加速YOLOv8分類模型》介紹了在AI愛克斯開發(fā)板上使用OpenVINO 開發(fā)套件
    的頭像 發(fā)表于 05-26 11:03 ?1077次閱讀
    <b class='flag-5'>AI</b>愛克斯開發(fā)板上使用<b class='flag-5'>OpenVINO</b><b class='flag-5'>加速</b>YOLOv8目標(biāo)檢測(cè)模型

    AI愛克斯開發(fā)板上用OpenVINO?加速YOLOv8-seg實(shí)例分割模型

    《在 AI 愛克斯開發(fā)板上用 OpenVINO 加速 YOLOv8 目標(biāo)檢測(cè)模型》介紹了在 AI 愛克斯開發(fā)板上使用 OpenVINO 開發(fā)
    的頭像 發(fā)表于 06-05 11:52 ?856次閱讀
    在<b class='flag-5'>AI</b>愛克斯開發(fā)板上用<b class='flag-5'>OpenVINO</b>?<b class='flag-5'>加速</b>YOLOv8-seg實(shí)例分割模型

    AI愛克斯開發(fā)板上用OpenVINO?加速YOLOv8-seg實(shí)例分割模型

    《在 AI 愛克斯開發(fā)板上用 OpenVINO 加速 YOLOv8 目標(biāo)檢測(cè)模型》介紹了在 AI 愛克斯開發(fā)板上使用 OpenVINO 開發(fā)
    的頭像 發(fā)表于 06-30 10:43 ?770次閱讀
    在<b class='flag-5'>AI</b>愛克斯開發(fā)板上用<b class='flag-5'>OpenVINO</b>?<b class='flag-5'>加速</b>YOLOv8-seg實(shí)例分割模型

    OpenVINO賦能BLIP實(shí)現(xiàn)視覺語言AI邊緣部署

    ,使用 OpenVINO 輕松文生圖》中,我們介紹了利用 OpenVINO 運(yùn)行 Stable Diffusion 模型,快速實(shí)現(xiàn)文生圖應(yīng)用。讓人人可以成為繪畫大師,利用 AI 隨心作
    的頭像 發(fā)表于 09-01 10:26 ?2319次閱讀

    OpenVINO? 賦能 BLIP 實(shí)現(xiàn)視覺語言 AI 邊緣部署

    通過視覺和語言感知世界。人工智能的一個(gè)長(zhǎng)期目標(biāo)是構(gòu)建智能體,通過視覺和語言輸入來理解世界,并通過自然語言與人類交流。比如,在《幾行代碼加速StableDiffusion,使用OpenVINO輕松文生
    的頭像 發(fā)表于 09-04 16:21 ?580次閱讀
    <b class='flag-5'>OpenVINO</b>? 賦能 BLIP 實(shí)現(xiàn)視覺語言 <b class='flag-5'>AI</b> 邊緣<b class='flag-5'>部署</b>

    簡(jiǎn)化和加速部署承運(yùn)人聚合

    簡(jiǎn)化和加速部署承運(yùn)人聚合
    的頭像 發(fā)表于 09-27 14:49 ?303次閱讀
    簡(jiǎn)化<b class='flag-5'>和加速</b><b class='flag-5'>部署</b>承運(yùn)人聚合

    基于OpenVINO Python API部署RT-DETR模型

    平臺(tái)實(shí)現(xiàn) OpenVINO 部署 RT-DETR 模型實(shí)現(xiàn)深度學(xué)習(xí)推理加速, 在本文中,我們將首先介紹基于 OpenVINO Python API
    的頭像 發(fā)表于 10-20 11:15 ?779次閱讀
    基于<b class='flag-5'>OpenVINO</b> Python API<b class='flag-5'>部署</b>RT-DETR模型

    簡(jiǎn)單三步使用OpenVINO?搞定ChatGLM3的本地部署

    英特爾 OpenVINO? 工具套件是一款開源 AI 推理優(yōu)化部署的工具套件,可幫助開發(fā)人員和企業(yè)加速生成式人工智能 (AIGC)、大語言模型、計(jì)算機(jī)視覺和自然語言處理等
    的頭像 發(fā)表于 04-03 18:18 ?1827次閱讀
    簡(jiǎn)單三步使用<b class='flag-5'>OpenVINO</b>?搞定ChatGLM3的本地<b class='flag-5'>部署</b>

    簡(jiǎn)單兩步使用OpenVINO?搞定Qwen2的量化與部署任務(wù)

    英特爾 OpenVINO? 工具套件是一款開源 AI 推理優(yōu)化部署的工具套件,可幫助開發(fā)人員和企業(yè)加速生成式人工智能 (AIGC)、大語言模型、計(jì)算機(jī)視覺和自然語言處理等
    的頭像 發(fā)表于 04-26 09:39 ?1326次閱讀
    簡(jiǎn)單兩步使用<b class='flag-5'>OpenVINO</b>?搞定Qwen2的量化與<b class='flag-5'>部署</b>任務(wù)

    解鎖LLM新高度—OpenVINO? 2024.1賦能生成式AI高效運(yùn)行

    LLM 的發(fā)展仍保持著驚人的速度。盡管現(xiàn)有的 LLM 已經(jīng)具備強(qiáng)大的功能,但通過 OpenVINO? 的優(yōu)化和推理加速,可以對(duì)這些復(fù)雜模型的執(zhí)行進(jìn)行精煉,實(shí)現(xiàn)更快、更高效的處理,減少計(jì)算開銷并最大限度發(fā)揮硬件潛力,這將直接導(dǎo)致
    的頭像 發(fā)表于 05-10 10:36 ?380次閱讀