翻譯:武卓 英特爾AI軟件布道師;楊亦誠 英特爾 AI軟件工程師
在過去的一年里,我們看到了生成式AI用例和模型的爆炸式增長?,F(xiàn)在幾乎每周都會針對不同的領(lǐng)域發(fā)布新的值得注意的生成式模型,這些模型在不斷增加的數(shù)據(jù)集上訓(xùn)練,具有各種計算復(fù)雜性。使用像LoRA這樣的方法,可以在非常適度的訓(xùn)練加速器上微調(diào)大模型,這解鎖了對基礎(chǔ)模型的更多修改。由于資源消耗,部署這些模型仍然是挑戰(zhàn),并且高度依賴于在云端部署模型。
隨著 OpenVINO 2023.1 版本的發(fā)布,我們希望將生成式 AI 的強大功能引入常規(guī)臺式機和筆記本電腦,讓這些模型可以運行在在資源受限的本地環(huán)境中,并被您嘗試集成到自己的應(yīng)用程序中。我們在整個產(chǎn)品中針對這些場景進行了優(yōu)化,實現(xiàn)了一些關(guān)鍵功能,并為我們的下一步工作計劃奠定了基礎(chǔ)。
也就是說,我們的變化不僅限于生成式AI,我們還改進了產(chǎn)品的其它部分,并希望它能使您的工作更輕松,并為您帶來額外的價值。讓我們來看看這些變化到底是什么。
生成式AI功能
大模型的整體堆棧優(yōu)化。來自生成式AI家族的模型有一個共同點——它們亟需資源。模型尺寸巨大,運行它們所需的內(nèi)存量非常高,對內(nèi)存帶寬的需求也非常大。例如不必要的權(quán)重搬運這樣簡單的問題,都可能會導(dǎo)致由于內(nèi)存不足而無法運行模型。
為了更好地適應(yīng)這一點,我們已經(jīng)跨推理堆棧工作,包括 CPU 和 GPU(集成顯卡和獨立顯卡),目標就是優(yōu)化我們使用這些模型的方式,包括優(yōu)化讀取和編譯模型所需的內(nèi)存,優(yōu)化如何處理模型的輸入和輸出張量以及其他內(nèi)部結(jié)構(gòu),從而縮短模型執(zhí)行時間。
大型語言模型的權(quán)重量化。LLM 在執(zhí)行時需要大量的內(nèi)存帶寬。為了對此進行優(yōu)化,我們在 NNCF(神經(jīng)網(wǎng)絡(luò)壓縮框架)優(yōu)化框架和 CPU 推理中實現(xiàn)了 int8 LLM 權(quán)重量化功能。
使用此功能時,NNCF 將生成優(yōu)化的 IR 模型文件,與精度為 fp16 的常規(guī)模型文件相比,該文件能夠?qū)⒊叽鐪p小一半。IR 文件將在 CPU 插件中被執(zhí)行額外的優(yōu)化,這將改善延遲并減少運行時內(nèi)存消耗。GPU 的類似功能正在實施中,并將在后續(xù)發(fā)布的版本中提供。
更容易轉(zhuǎn)換模型。大多數(shù)LLM目前來自基于PyTorch的環(huán)境。要轉(zhuǎn)換這些模型,您現(xiàn)在可以使用我們的直接 PyTorch 轉(zhuǎn)換功能。對于LLM,與我們之前通過ONNX格式的路徑相比,這大大加快了轉(zhuǎn)換時間并減少了內(nèi)存需求。
總體而言,由于我們的優(yōu)化,我們能夠在CPU和GPU上均能提高 LLM 性能。[WZ1]此外,我們還按 倍數(shù)級減少了運行這些模型所需的內(nèi)存量。在某些情況下,新版本OpenVINO可以讓我們運行那些以前由于內(nèi)存不足而失敗的模型。我們一直在數(shù)十個不同規(guī)模和不同任務(wù)的LLM上驗證我們的工作,以確保我們的方法能夠很好地擴展到我們所有的平臺和支持的操作系統(tǒng)。
我們的轉(zhuǎn)換API和權(quán)重量化功能也集成到Hugging Face optimum-intel擴展中,允許您使用OpenVINO作為推理堆棧運行生成式模型,或以方便的方式將模型導(dǎo)出為OpenVINO格式。
簡化您的工作流
不再需要開發(fā)包,提供統(tǒng)一的工具。從 2023.1 版本開始,我們不再要求您為運行時和開發(fā)環(huán)境分別安裝單獨的軟件包。我們一直致力于簡化我們的工具,并將所有必要的組件集成到單個 OpenVINO軟件包中。這也意味著模型轉(zhuǎn)換和推理可以通過所有OpenVINO分發(fā)機制以統(tǒng)一的方式獲得:pip,conda,brew和archive。
此外,從此版本開始,OpenVINO Python API 可從所有支持最低要求 Python 版本 (3.7) 的軟件包中獲得。這意味著除了以前可用的 pip 之外,還有conda、brew和指定的 apt 版本。
更高效、更友好的模型轉(zhuǎn)換。我們正在推出OpenVINO模型轉(zhuǎn)換工具 (OVC),該工具正在取代我們眾所周知的離線模型轉(zhuǎn)換任務(wù)中的模型優(yōu)化器 (MO) 工具。該工具以O(shè)penVINO包形式提供,依靠內(nèi)部模型前端來讀取框架格式,不需要原始框架來執(zhí)行模型轉(zhuǎn)換。例如,如果您想將TF模型轉(zhuǎn)換為OpenVINO,則不需要安裝TensorFlow。同樣,如果您想簡單地在 OpenVINO運行時中讀取此模型以進行推理而無需轉(zhuǎn)換,同樣也不需要 TensorFlow。
為了在 Python 腳本中轉(zhuǎn)換模型,我們進一步改進了convert_model API。例如,它允許將模型從 PyTorch 對象轉(zhuǎn)換為 OpenVINO模型,并編譯模型以進行推理或?qū)⑵浔4娴?IR格式,請參見以下示例:
請注意,我們還簡化了我們的Python API,可以直接從OpenVINO命名空間獲得這些API,因此這一切變得更簡單了。您仍然可以從舊命名空間訪問函數(shù),如果您需要 mo 工具,可以安裝 OpenVINO-dev。這個工具本身也仍然可用,但我們建議遷移到 ovc 工具。
默認切換到 fp16 IR。隨著轉(zhuǎn)換工具的變化,我們現(xiàn)在切換到使用 fp16 精度作為 IR 中的數(shù)據(jù)類型。這允許將模型大小減小 一半(相對FP32精度的模型),并且根據(jù)我們執(zhí)行的測試對準確性沒有影響。值得一提的是,IR 精度不會影響硬件插件的執(zhí)行精度,默認情況下,插件始終以最佳性能繼續(xù)執(zhí)行。
更好的PyTorch兼容性
前面已經(jīng)提到,直接轉(zhuǎn)換PyTorch模型的功能現(xiàn)在已經(jīng)成熟,該方案已經(jīng)被集成在我們的 HuggingFace optimum-intel中進行模型轉(zhuǎn)換。因此,現(xiàn)在轉(zhuǎn)換模型更容易,因為您繞過了 ONNX 格式的額外步驟(我們?nèi)匀粺o限制地支持)。
為了使OpenVINO更接近PyTorch生態(tài)系統(tǒng),我們引入了對torch.compile和相應(yīng)后端的支持。您現(xiàn)在可以通過 OpenVINO堆棧運行您的模型,方法是通過torch.compile編譯它并指定 OpenVINO 作為后端!
如下例所示:
此功能正在積極增強,我們期待更好的性能和操作覆蓋范圍,但它已經(jīng)在我們的集成中使用,例如Stable Diffusion WebUI。
令人興奮的新Notebook用例
為了展示您可以直接從筆記本電腦上試用的新功能,我們制作了一些Jupyter notebooks示例并更新了現(xiàn)有notebooks。以下是最令我們興奮的:
基于大語言模型的聊天機器人(LLM Chatbot):
文生圖模型StableDiffusion XL:
文生圖模型 Tiny SD:
生成音樂模型 MusicGen:
生成視頻模型Text-to-video:
審核編輯:湯梓紅
-
英特爾
+關(guān)注
關(guān)注
61文章
10007瀏覽量
172228 -
AI
+關(guān)注
關(guān)注
87文章
31493瀏覽量
270075 -
pytorch
+關(guān)注
關(guān)注
2文章
808瀏覽量
13338 -
OpenVINO
+關(guān)注
關(guān)注
0文章
95瀏覽量
222
原文標題:介紹OpenVINO? 2023.1:在邊緣端賦能生成式AI|開發(fā)者實戰(zhàn)
文章出處:【微信號:英特爾物聯(lián)網(wǎng),微信公眾號:英特爾物聯(lián)網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論