【啟動AI Maker世代 】2024 MAI 開發者社群大會(5/16-17)
|

【活動報導】OpenVINO讓AI模型量化成為簡單任務

   

由英特爾(Intel)推出、專為邊緣裝置AI推論應用部署所打造的開放源碼工具套件OpenVINO在2023年歡慶5歲生日;為讓廣大開發者社群朋友充分了解OpenVINO的優勢與最新進展,Intel與MakerPRO在7月中旬共同舉辦了2023年首場DevCon系列線上講座,邀請到來自Intel的專業講者以「聚焦新版OpenVINO 2023.0與生成式AI模型」為題,與近300位聽眾分享其中技術細節並進行實作示範,獲得熱烈迴響。

延續第一場講座的精彩內容,在9月初舉辦的DevCon系列講座第二場,同樣來自Intel的OpenVINO AI 軟體傳教士武卓博士、AI軟體工程師楊亦誠,先帶領聽眾認識深度學習量化技術,再示範以OpenVINO實作智慧排隊系統Smart Queue。

模型量化是提升邊緣AI應用部署效能關鍵

在講座開場,Intel平台研發協理王宗業還透露了兩個新訊息:其一是OpenVINO繼今年3月達到100萬次下載的紀錄之後,在不到半年的時間內又達成了Python套件(package)超過200萬次下載的新里程碑,這顯示OpenVINO受到越來越多開發者的關注與應用,他也預期下載次數的成長速度將會越來越快。

其二是即將正式發布的OpenVINO下一個版本2023.1已悄悄在GitHub預發佈,支援更多最新的影像分析、大型語言模型(LLM)以及生成式AI模型,這些都會統一放在OpenVINO Notebooks供開發者使用;此外新版本也進行了更多強化軟硬體加乘效果的性能最佳化,包括模型量化。

要將AI模型部署於資源(運算性能與耗電續航力)有限的邊緣裝置中,如何在維持一定準確度的情況下讓推論任務執行速度更快,一直是相關應用開發上的一大挑戰,更別說還需要考量軟硬體整合、整體應用可擴展性、資料管理與預處理、安全與隱私保護等等問題。對此楊亦誠表示,將模型做最妥善的量化──也就是性能最佳化──是關鍵的第一步。

模型量化做得好,就意味著能以更低規格硬體來部署推論性能表現相當的終端應用,也能因此降低開發專案的成本。但,「量化」到底是什麼?

根據《維基百科》的解釋,量化(數位訊號處理領域)是指:「將訊號的連續取值(或者大量可能的離散取值)近似為有限多個(或較少的)離散值的過程;主要應用於連續訊號到數位訊號的轉換,當連續訊號經過採樣成為離散訊號,離散訊號經過量化即成為數位訊號。」

楊亦誠解釋,以一個大語言模型為例,可以將之想像成一個很大的訊號波形,必須要縮減其尺寸,才能讓它能在運算資源以及記憶體資源相較於資料中心伺服器小很多的一般PC上執行;而縮減尺寸的過程,就是在該訊號波形上進行連續採樣,取得離散值並經過量化。

在量化的過程中,考量不同終端硬體的運算性能與儲存容量來選擇合適的採樣頻率,以盡可能將縮小尺寸波形近似原始波形(輪廓、平滑度)是一大重點。目前AI模型量化的一個主流採樣頻率為INT8,而量化過程就是將原始模型FP32精度浮點參數透過演算法映射至INT8定點表達區間,在其中有兩個重要的值,代表縮放程度的scale與映射偏移值zero-point,可視為對模型量化後準確度的評估標準。

目前業界採用的量化方法包括偽量化、後訓練量化(PTQ)、準確度感知量化(Accuracy-Aware Quantization)、量化感知訓練(Quantization-Aware Training)等;其中一個最簡單常用的是後訓練量化。楊亦誠介紹,這種量化方式不需要對模型進行重新訓練或是微調,而是以一個校驗資料集(dataset)來計算scale與zero-point值;該資料集可直接運用實際場域中涉及的圖片、音訊或語句等,以得出最後的INT8模型。

若量化後的模型準確度不符合專案部署的預設容忍度,則可以採用準確度感知量化方法。楊亦誠表示,準確度感知量化與後訓練量化的框架邏輯其實差異性不大,只是額外導入了準確度下降容忍值(Accuracy Drop Allowance),即在量化的過程中預設一個容忍值,以強化最終輸出的準確性。量化感知訓練則是一個更強調準確度、在商業應用上較常被使用的方法,但量化過程涉及一些第三方訓練框架,也需要在過程中對模型重新訓練或調整。

OpenVINO讓模型量化過程更簡單輕鬆

著眼於量化對深度學習AI模型部署的重要性,OpenVINO也在量化工具上持續精進,讓使用者能在應用開發過程中輕鬆實現模型的最佳化。根據武卓的介紹,OpenVINO提供的量化工具有兩種,其一是模型轉換(model convention) API,另一個則是神經網路壓縮框架(NNCF)。

武卓解釋,模型轉換API是針對已經訓練好的深度學習模型,無論是ONNX、TensorFlow或PyTorch格式,只需要簡單的兩行指令,就可轉換為OpenVINO的IR模型格式。NNCF則是簡化了將不同格式模型進行壓縮的量化過程,同樣只需要幾行程式碼,就能將大尺寸模型縮減為需要的尺寸,同時能符合終端應用所需的預設準確度。

為了讓聽眾更了解OpenVINO的強大功能,武卓與楊亦誠以在大型零售賣場部署的Smart Queue智慧排隊系統為案例,透過實作的方式展現該工具的開發效益。所謂智慧排隊系統,就是透過在客流量大的賣場中準確統計每一個收銀通道的排隊等候顧客數,以評估需要多少加開多少個收銀台與人手支援,還有是否需要補充架上商品等,提升營運效率並達到成本與人員調配的最佳化。(實作內容歡迎點此YouTube連結觀看)

在講座最後的問答時間,Intel的專業講師也與線上聽眾針對模型格式轉換、量化過程中對模型準確度的影響,以及生成式AI模型的量化等等問題進行了熱烈的交流。各位讀者若想要了解更多相關技術細節,歡迎參考MakerPRO的OpenVINO專欄文章,也敬請期待近期即將再次舉行的DevCon系列技術講座,一起在線上學習!

 

judith
Cheng Judith

Author: judith

20年經驗半導體/電子技術領域長期觀察員與報導者,見證科技社群持續成長茁壯、Maker/工程師們以創新改變世界!

Share This Post On
468 ad

Submit a Comment

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *