OpenVINO 2024.0來了!我們很高興在這個版本推出一系列強化功能,目標是在快速發展的AI領域賦予開發者更強大的能力;新版本透過動態量化、改善的GPU最佳化以及對混合專家(Mixture of Expert)模型架構的支援,增強了大語言模型(LLM)的性能。OpenVINO 2024.0讓開發者能有效利用AI加速,這也要感謝來自社群的持續貢獻。
大語言模型推論性能的改善
LLM方興未艾,各種模型和應用案例不斷湧現;我們將繼續我們的使命,以加速模型並使這些模型的推論更加經濟實惠。
性能和準確性的提升
在OpenVINO 2024.0版本中,我們一直致力於提高LLM的開箱即用性能,並對Runtime和工具進行了一些重要修改。
首先,我們導入了CPU平台的動態量化和KV緩衝記憶體(KV Cache)機制。KV Cache 壓縮功能讓我們以更節省資源、高效率的方式進行大型序列生成。動態量化通常能改善模型其他部分──嵌入映射(embedding projections)和前饋網路(feed-forward network)──的運算和記憶體消耗。
對於GPU平台,我們透過在核心(kernel)和整個堆疊中導入最佳化,來改善生成特性。我們還實現了更高效率的緩衝記憶體處理,這有助於使用集束搜尋(beam search)進行生成。
其次,雖然性能一直是被討論的話題,但準確性也至關重要。我們提高了NNCF中權重壓縮演算法的準確性,導入使用資料集統計資料壓縮權重的能力,並導入AWQ演算法的實現,以進一步提高準確性。此外,藉由與Hugging Face Optimum Intel的整合,現在可以直接透過Transformers API壓縮模型,如下圖所示:
注意:使用設置為True的load_in_4bit選項,並在對from_pretrained方法的呼叫中傳遞quantiation_config許可權,將為你完成所有壓縮工作。更重要的是,我們已經為大多數熱門的模型添加了量化配置,其中包括Llama2、StableLM、ChatGLM和QWEN等模型;因此,對於這些模型,不需要透過傳遞config來獲得4位元壓縮。
想了解關於我們的演算法品質更多資訊,請參考OpenVINO文件或者 GitHub上的NNCF 文件。
對混合專家模型架構的支援
混合專家(MoE)模型代表了下一個主流架構演變,為LLM帶來更高準確度和性能;它從Mixtral開始,迅速發展到更多的模型和框架,允許從現有模型創建基於MoE的模型。
在整個2024.0版本,我們一直致力於實現這些架構並提升性能,不僅對這些模型進行了有效的轉換,還修改了一些內部結構,以更妥善處理Runtime的動態專家選擇。我們正將在這些改變上溯至Hugging Face Optimum-Intel,讓這些模型的轉換透明可見。
新平台的改變以及對現有平台的強化
對Intel NPU更廣泛的支援
隨著Intel Core Ultra的發佈,我們的NPU加速器終於跟廣大的開發者見面了。從軟體和硬體的角度來看,這是一款持續演進的產品,我們對它將實現的功能感到興奮。你可能已經看到了一些在NPU上運作的OpenVINO Notebooks範例(OpenVINO notebooks running on NPU)。
在最新版本中,當你透過我們最熱門的發行通路PyPI安裝OpenVINO時,我們將提供NPU支援。以下幾點需要注意:
- NPU要求在系統中安裝驅動程式,因此如果您打算使用它,請確保遵循此簡易指南。
- NPU目前不包括在自動裝置選擇(Automatic Device Selection)邏輯中,因此如果你打算在NPU上執行模型,請確保明確指定裝置名稱(例如NPU),如以下程式碼:
compiled_model = core.compile_model(model=model, device_name=”NPU”)
對Arm CPU支援的改善
執行緒(threading)是我們在Arm平台上沒有有效實現的事情之一,這拖累了我們的性能。我們與oneTBB團隊(我們的預設執行緒引擎供應者)合作,改變了對Arm的支援並顯著提升了我們的性能。同時,在對某些運作的精度進行了一些研究後,我們在Arm CPU上預設的推論精度為fp16。
整體說來,這意味著ARM CPU的性能更高,也意味著OpenVINO Streams功能的實現,該功能允許在多核心平台上取得更高的處理量。
刪除部分遺留項目
2024.0是我們的下一個主要版本,傳統上這是我們從工具套件中刪除過時元件的時候。
兩年前,我們大幅度修改了API以跟上深度學習領域的發展,但為了最大限度減少目前使用OpenVINO之開發者和產品的影響,我們仍支援API 1.0。從那以後發生了很多變化,現在我們正在完全刪除舊的API;更重要的是,我們還將刪除標記為棄用的工具,包括:
- 訓練後量化工具(Post-Training Optimization Tool),簡稱POT;
- 準確度檢查框架(Accuracy Check Framework);
- 部署管理器(Deployment Manager)。
這些工具是openvino-dev套件的一部分,該套件已經有一段時間沒有強制使用了。我們將為那些繼續使用我們的離線模型轉換工具Model Optimizer的使用者保留它。
如果你無法遷移到新的API,可以繼續使用我們的一個長期支持版本,例如2023.3。
全新及修訂後的Notebooks
我們將繼續展示AI領域最重要的更新,以及如何利用OpenVINO來加速這些場景。以下是我們一直在做的工作:
- Mobile language assistant with MobileVLM
- Depth estimation with DepthAnything
- Multimodal Large Language Models (MLLM) Kosmos-2
- Zero-shot Image Classification with SigLIP
- Personalized image generation with PhotMaker
- Voice tone cloning with OpenVoice
- Line-level text detection with Surya
- Zero-shot Identity-Preserving Generation with InstantID
- LLM chatbot 和 LLM RAG pipeline已透過新模型的整合進行了更新:minicpm-2b-dpo、gemma-7b-it、5-7b-chat、baichuan2-7b-chat
感謝開發者夥伴們的貢獻!
在OpenVINO的歷史上,我們看到了許多激勵人心的專案,從經典的物件偵測到新奇的面試準備工具等應用;為此我們決定收集那些以OpenVINO實現、令人驚艷的專案,並製作一個列表,而上面的專案數量正繼續快速增加!如果你也想加入,從Github平台發一個Pull Request (PR),在你的專案上使用「mentioned in Awesome」徽章,與我們分享你的創意吧!
我們的開發者社群持續成長,感謝所有成員夥伴帶來的變化與進步;令人驚訝的是,在你們之中有些人已經明確表示「正在忙著幫忙改善OpenVINO」,謝謝你們!其中一個貢獻者的案例是openSUSE平台對OpenVINO的支援。
不過在過去幾個星期,我們面臨一個重大難題——無法以足夠快的速度填充Good First Issues並審查大家的PR請求;我們已經意識到這個問題,會更努力解決,也希望大家持續關注。另外我們也在為Google夏日程式碼大賽(Google Summer of Code)做準備,還有時間,期待能看到各位夥伴的有趣提案。
最後我們將對OpenVINO 2024.0版本貢獻卓著的開發者夥伴名單發表在 GitHub頁面。
(參考原文:Introducing OpenVINO 2024.0: Empowering Developers with Enhanced Performance and Expanded Support;責編:Judith Cheng)
- LLM性能再強化 OpenVINO 2024.3隆重發佈! - 2024/08/21
- OpenVINO全新GenAI API:幾行程式碼就能快速建立GenAI App! - 2024/08/14
- 以LLaVA-NeXT和NNCF先進量化技術掌握多模態AI - 2024/06/18