作者:
Whitney Foster OpenVINO產(chǎn)品專家
Yury Gorbachev 英特爾院士 OpenVINO 產(chǎn)品架構(gòu)師
翻譯:
武卓博士 英特爾OpenVINO軟件布道師
在過(guò)去的一年里,大語(yǔ)言模型(LLM)徹底改變了文本處理,為文本摘要、重寫、文檔分析等提供了解決方案。然而,我們每天與之交互的數(shù)據(jù)不僅僅是文本,而是多模態(tài)的,包括視頻、音頻和圖像。多模態(tài)的存在非常普遍,事實(shí)上在安全、監(jiān)控或醫(yī)療保健等某些領(lǐng)域至關(guān)重要。它代表了從處理文本到處理不同輸入和生成不同形式輸出的重大演變。例如,多模態(tài)模型可以接收長(zhǎng)視頻,并以圖像或音頻片段的形式輸出關(guān)鍵信息。
為了滿足多模態(tài) AI 的需求,OpenVINO2024.5 引入了新的流水線,使開發(fā)者能夠輕松部署處理語(yǔ)音、圖像和視頻以及文本的解決方案。讓我們探討一下這些新功能是如何工作的,以及如何從今天開始使用它們。
OpenVINO 2024.5 中的
主要多模態(tài) AI 流水線
文生圖
通過(guò)文生圖流水線(Text2ImagePipeline),利用擴(kuò)散模型,比如 Stable Diffusion 以及 Stable Diffusion XL 模型, 從輸入的文本提示詞中生成圖像。
輸出示例:從一個(gè)描述性的文本提示詞生成一張現(xiàn)實(shí)圖像。
語(yǔ)音到文本轉(zhuǎn)換
通過(guò) WhisperPipeline 利用 Whisper 模型家族,將語(yǔ)音音頻轉(zhuǎn)換成文字。
使用場(chǎng)景示例:轉(zhuǎn)錄訪談或播客,以實(shí)現(xiàn)高效的文檔記錄。
視覺(jué)語(yǔ)言處理
用諸如 LLaVA 以及 miniCPMV 的視覺(jué)語(yǔ)言模型(VLMs)通過(guò) VLMPipeline 處理圖像。
應(yīng)用示例:用文本描述注釋和分析醫(yī)學(xué)圖像。
提升部署效率
流水線支持 C++ 以及 Python,以實(shí)現(xiàn)更靈活的集成。
模型可以使用 optimum-intel 由 Hugging Face 導(dǎo)出并利用神經(jīng)網(wǎng)絡(luò)壓縮框架(NNCF)壓縮。為獲得最優(yōu)性能,將模型壓縮至 INT4 格式。
預(yù)覽版特性:這些功能正在預(yù)覽支持中。其它經(jīng)過(guò)驗(yàn)證的模型和流水線優(yōu)化正在進(jìn)行中。查看我們的 GitHub 文檔以獲取更新。有關(guān)支持的模型和流水線的最新列表,您可以在此處查看我們的 Github 存儲(chǔ)庫(kù)。
在流水線中支持 LoRA 適配器
大模型的訓(xùn)練異常困難且所需資源密集。LoRA 適配器允許使用很少的資源快速有效地微調(diào)模型。這使您可以根據(jù)新的圖像生成風(fēng)格或特定領(lǐng)域的任務(wù)自定義流行的 AI 模型,而無(wú)需重新訓(xùn)練整個(gè)模型,AI 社區(qū)中有許多預(yù)制的適配器和庫(kù)可供您直接使用。
OpenVINO 2024.5 引入了預(yù)覽版功能為文本和圖像生成模型加載 LoRA 適配器,而無(wú)需在編譯前將這些適配器融合到主模型中??梢詾橥荒P图虞d多個(gè) LoRA 適配器,并根據(jù)目標(biāo)場(chǎng)景在每次生成調(diào)用的運(yùn)行時(shí)在這些適配器之間動(dòng)態(tài)切換。
例如,可以通過(guò)具有多個(gè)自定義 LoRA 的文生圖流水線 Text2ImagePipeline 編譯模型,然后選擇在運(yùn)行時(shí)應(yīng)用哪種樣式的圖像,而無(wú)需重新編譯模型。這種定制化的切換對(duì)性能的影響是有較小的,我們正在努力進(jìn)一步完善它。
以下是我們提供的 LLM 流水線的基本 LoRA 使用代碼片段。您可以在我們的倉(cāng)庫(kù)中找到 python 的完整示例和類似示例。
using namespace ov::genai; //path to adapter (safetensors file) Adapter adapter(adapter_path); // compile pipeline and register all required adapters during compilation LLMPipeline pipe(models_path, device, adapters(adapter)); //Generate with LoRA adapter and alpha set to 0.75 std::cout << pipe.generate(prompt, max_new_tokens(100), adapters(adapter, 0.75)); //Now, generate without LoRA adapter std::cout << pipe.generate(prompt, max_new_tokens(100), adapters());
通過(guò)推測(cè)性解碼獲得高效文本生成
推測(cè)性解碼已被證明可以通過(guò)使用兩個(gè)模型而不是一個(gè)模型來(lái)提高生成性能。簡(jiǎn)而言之,一個(gè)非常小的草稿模型會(huì)生成文本,并由一個(gè)全尺寸的文本生成模型定期進(jìn)行校正。
從 2024.5 版本開始,通過(guò)一個(gè)推測(cè)性解碼的算法實(shí)現(xiàn),開發(fā)者可以在大語(yǔ)言模型流水線 LLMPipeline 中使用兩個(gè)模型。這意味著在創(chuàng)建流水線的時(shí)候,開發(fā)者可以給它傳遞附加的草稿模型。以下是一段簡(jiǎn)化后的代碼片段:
//compiling pipeline with draft model and configuration for generation options ov::LLMPipeline pipe( main_model_path, main_device, ov::draft_model(draft_model_path, draft_device), ov::scheduler_config(scheduler_config)); //running generation pipe.generate(prompt, config);
你可以在我們的樣例倉(cāng)庫(kù)這里找到 python 示例以及全部示例。
當(dāng)在 AI PC 中運(yùn)行一個(gè)應(yīng)用的時(shí)候,有許多推理選項(xiàng)可用。比如,草稿模型和主模型可以都運(yùn)行在集成顯卡上,或者以組合的方式運(yùn)行在 CPU 以及集成顯卡上。根據(jù)草稿模型和主模型的模型大小以及部署的限制,不同的組合方式效率會(huì)更高。我們發(fā)現(xiàn),在 CPU 上運(yùn)行草稿模型以及在集成顯卡上運(yùn)行主模型提供了最具性能的生成方式。
草稿模型并非廣泛適用于所有公共模型,典型的限制是草稿模型的訓(xùn)練方式應(yīng)與大模型相似;至少,分詞器應(yīng)該匹配。
我們已經(jīng)與英特爾研究院一起,通過(guò)使用一項(xiàng)叫做 FastDraft 的新技術(shù),研發(fā)了幾個(gè)高效的小型草稿模型,這里有詳細(xì)的論文描述。
Phi-3.5 以及 Llama 的高效的草稿模型(Phi-3.5草稿模型大小50MB)已經(jīng)放在我們?cè)?Hugging Face 的模型倉(cāng)庫(kù)中,可以從那里下載快照。
在英特爾 NPU 上支持 LLM
我們的 GitHub 上有很多關(guān)于英特爾NPU 上支持 LLM 的請(qǐng)求,現(xiàn)在, Llama 3 8B、Llama 2 7B、Mistral-v0.2-7B、Qwen2-7B-Instruct 和 Phi-3 Mini 的文本生成模型均被添加了這一支持。
現(xiàn)在,當(dāng)您通過(guò) OpenVINO GenAI API 大語(yǔ)言模型流水線 LLMPipeline文檔鏈接編譯模型時(shí),您可以將 NPU 指定為目標(biāo)設(shè)備。如果 NPU 存在于系統(tǒng)中,底層代碼將為 NPU 編譯模型,后續(xù)調(diào)用將通過(guò) NPU 運(yùn)行時(shí)堆棧運(yùn)行。
使用 NPU 時(shí),目前的建議是使用 Channel-Wise 壓縮算法壓縮模型。這在性能方面更有效率。您可以在我們的文檔中找到如何操作。
致謝!
時(shí)光飛快!又到了一年的年末,我們想對(duì)所有貢獻(xiàn)者和 OpenVINO 社區(qū)的持續(xù)支持表示感謝。您的貢獻(xiàn)和反饋幫助我們共同推進(jìn)了 OpenVINO 的發(fā)展之旅。我們期待在2025年一起揭開下一步的面紗!
-
英特爾
+關(guān)注
關(guān)注
61文章
9964瀏覽量
171763 -
流水線
+關(guān)注
關(guān)注
0文章
120瀏覽量
25737 -
AI
+關(guān)注
關(guān)注
87文章
30887瀏覽量
269065 -
OpenVINO
+關(guān)注
關(guān)注
0文章
93瀏覽量
201
原文標(biāo)題:OpenVINO? 2024.5 新發(fā)布:使用流水線簡(jiǎn)易部署多模態(tài) AI
文章出處:【微信號(hào):英特爾物聯(lián)網(wǎng),微信公眾號(hào):英特爾物聯(lián)網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論