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

OpenVINO 2023.1版本問世: 在邊緣端賦能生成式AI

   
作者:Yury Gorbachev,Intel院士、OpenVINO產品架構師

譯者:武卓、楊亦誠

在過去的一年裡,我們看到了生成式AI應用案例和模型的爆炸式成長。現在幾乎每週都有針對不同領域、值得注意的新生成式模型發佈,這些模型在不斷增加的資料集上訓練,具有各種運算複雜性。使用LoRA這樣的方法,可以在非常適度的訓練加速器上微調大模型,這解鎖了對基礎模型的更多修改。由於資源消耗,部署這些模型仍然是挑戰,並且高度依賴於在雲端部署模型。

隨著OpenVINO  2023.1版本的發佈,我們希望將生成式AI的強大功能導入常規桌上型電腦和筆記型電腦,讓這些模型可以在資源受限的本地環境中運作,並讓您嘗試整合到自己的應用程式中。我們在整個產品中針對這些場景進行了最佳化,實現了一些關鍵功能,並為我們的下一步工作計畫奠定了基礎。

也就是說,我們的變化不僅限於生成式AI,我們還改進了產品的其他部分,並希望它能使您的工作更輕鬆,並為您帶來額外的價值。以下讓我們來看看這些變化到底是什麼。

生成式AI功能

大模型的整體堆疊最佳化。來自生成式AI家族的模型有一個共同點——它們亟需資源。模型尺寸巨大,執行它們所需的記憶體量非常高,對記憶體頻寬的需求也非常大;例如不必要的權重搬運這樣簡單的問題,都可能會導致由於記憶體不足而無法運作模型。

為了更好地適應這一點,我們已經跨推論堆疊運作,包括CPU和GPU (內含整合式顯卡和獨立顯卡),目標就是最佳化我們使用這些模型的方式,涵蓋最佳化讀取和編譯模型所需的記憶體,最佳化如何處理模型的輸入和輸出張量以及其他內部結構,從而縮短模型執行時間。

大型語言模型(LLMs)的權重量化。LLM在執行時需要大量的記憶體頻寬。為了對此進行最佳化,我們在 神經網路壓縮框架(NNCF)最佳化框架和CPU推論中實現了INT8 LLM權重量化功能。

使用此功能時,NNCF將生成最佳化的IR模型檔,與精度為FP16的常規模型檔相比,該檔能夠將尺寸減小一半。IR檔將在CPU外掛程式中被執行額外的最佳化,這將改善延遲並減少運作時記憶體消耗。GPU的類似功能正在實施中,並將在後續發佈的版本中提供。

更容易轉換模型。大多數LLMs目前來自基於PyTorch的環境,要轉換這些模型,您現在可以使用我們的PyTorch直接轉換功能。對於LLMs,與我們之前透過ONNX格式進行轉換的路徑相比,這大幅加速了轉換時間並減少了記憶體需求。

整體而言,由於我們的最佳化,我們能夠在CPU和GPU上均能提高 LLM 性能。此外,我們還以倍數級減少了執行這些模型所需的記憶體量。在某些情況下,新版本OpenVINO可以讓我們執行那些以前由於記憶體不足而失敗的模型。我們一直在數十個不同規模和不同任務的LLM上驗證我們的工作,以確保我們的方法能夠妥善地擴展到我們所有的平台和支援的作業系統。

我們的轉換API和權重量化功能也整合到Hugging face optimum-intel extension中,允許您使用OpenVINO作為推論堆疊執行生成式模型,或以方便的方式將模型匯出為OpenVINO格式。

簡化您的工作流程

不再需要開發套件,提供統一的工具。從2023.1版本開始,我們不再要求您為執行時間(runtime)和開發環境分別安裝單獨的套裝軟體;我們一直致力於簡化我們的工具,並將所有必要的元件整合到單OpenVINO套裝軟體中。這也意味著模型轉換和推論可以透過所有OpenVINO分發管道以統一的方式獲得:pip、conda、brew和archive。

此外,從此版本開始,OpenVINO Python API可從所有支援最低要求Python版本(3.7)的套裝軟體中獲得。這意味著除了以往可用的pip之外,還有conda、brew和指定的apt版本。

更高效率、更友善的模型轉換。我們正在推出 OpenVINO 模型轉換工具(OVC),該工具正在取代我們眾所周知的離線模型轉換任務中的模型優化器(MO)工具。該工具以OpenVINO 套件形式提供,依靠內部模型前端來讀取框架格式,不需要原始框架來執行模型轉換。例如,如果您想將TF模型轉換為OpenVINO,則不需要安裝TensorFlow。同樣,如果您想簡單地在 OpenVINO runtime讀取此模型以進行推論而無需轉換,同樣也不需要 TensorFlow。

為了在Python腳本中轉換模型,我們進一步改善了convert_model API。舉例來說,它允許將模型從PyTorch物件轉換為 OpenVINO 模型,並編譯模型以進行推論或將其保存到 IR格式,請參見以下範例:

請注意,我們還簡化了我們的Python API,可以直接從OpenVINO命名空間獲得這些API,因此這一切變得更簡單了。您仍然可以從舊命名空間存取函數,如果您需要MO工具,可以安裝openvino-dev。這個工具本身也仍然可用,但我們建議遷移到OVC 工具。

預設切換為FP16 IR隨著轉換工具的變化,我們現在切換到使用FP16精度作為IR中的資料類型。這允許將模型大小減一半(相對FP32精度的模型),而且根據我們執行過的測試,對準確度並沒有影響。值得一提的是,IR精度不會影響硬體外掛程式的執行精度,在預設情況下,外掛程式始終以最佳性能繼續執行。

更好的PyTorch相容性

前面已經提到,直接轉換PyTorch模型的功能現在已經成熟,該方案已經被整合在我們的 HuggingFace optimum-intel中進行模型轉換。因此,現在轉換模型更容易,因為您繞過了先轉換到ONNX格式的額外步驟(這個功能我們仍然無限制地支援)。

為了讓OpenVINO更接近PyTorch生態系統,我們導入了對torch.compile和相應後端的支援。您現在可以透過OpenVINO堆疊執行您的模型,方法是以torch.compile編譯它並指定OpenVINO作為後端!

如以下範例所示:

本文為會員限定文章

立即加入會員! 全站文章無限看~

                               

已經是會員? 按此登入

只需不到短短一分鐘...

輸入您的信箱與ID註冊即可享有一切福利!

會員福利
1

免費電子報

2

會員搶先看

3

主題訂閱

4

好文收藏

武卓

Author: 武卓

武卓博士現任英特爾AI軟體佈道師

Share This Post On
468 ad

Submit a Comment

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