作者:
介紹
近期阿里通義實(shí)驗(yàn)室在 Hugging Face 和 ModelScope 上開(kāi)源了 Qwen2.5-VL 的 Base 和 Instruct 模型,包含 3B、7B 和 72B 在內(nèi)的 3 個(gè)模型尺寸。其中,Qwen2.5-VL-7B-Instruct 在多個(gè)任務(wù)中超越了 GPT-4o-mini,而 Qwen2.5-VL-3B 作為端側(cè) AI 的潛力股,甚至超越了之前版本 的Qwen2-VL 7B 模型。Qwen2.5-VL 增強(qiáng)了模型對(duì)時(shí)間和空間尺度的感知能力,在空間維度上,Qwen2.5-VL 不僅能夠動(dòng)態(tài)地將不同尺寸的圖像轉(zhuǎn)換為不同長(zhǎng)度的 token,使用圖像的實(shí)際尺寸來(lái)表示檢測(cè)框和點(diǎn)等坐標(biāo),這也使得Qwen2.5-VL模型可以直接作為一個(gè)視覺(jué) Agent,推理并動(dòng)態(tài)地使用工具,具備了使用電腦和使用手機(jī)的能力。
本文將分享如何利用英特爾 OpenVINO 工具套件在本地加速Q(mào)wen2.5-VL系列模型的推理任務(wù)。
內(nèi)容列表
環(huán)境準(zhǔn)備
模型下載和轉(zhuǎn)換
加載模型
準(zhǔn)備模型輸入
運(yùn)行圖像理解任務(wù)
1環(huán)境準(zhǔn)備
該示例基于Jupyter Notebook編寫(xiě),因此我們需要準(zhǔn)備好相對(duì)應(yīng)的Python環(huán)境?;A(chǔ)環(huán)境可以參考以下鏈接安裝,并根據(jù)自己的操作系統(tǒng)進(jìn)行選擇具體步驟。
https://github.com/openvinotoolkit/openvino_notebooks?tab=readme-ov-file#-getting-started
圖:基礎(chǔ)環(huán)境安裝導(dǎo)航頁(yè)面
此外本示例將依賴(lài)qwen-vl-utils以及optimum-intel組件,其中安裝optimum-intel過(guò)程中將自動(dòng)安裝OpenVINOruntime, NNCF及Transformers等相關(guān)依賴(lài)庫(kù)。
2模型下載和轉(zhuǎn)換
這一步中,我們需要完成將Qwen2.5-VL .safetensor格式模型轉(zhuǎn)化為OpenVINO IR格式,并對(duì)其進(jìn)行INT4權(quán)重量化,實(shí)現(xiàn)對(duì)模型體積的壓縮。為了達(dá)到這一目的,optimum-intel提供了命令行工具:optimum-cli,基于該工具,我們只需一行命令便可實(shí)現(xiàn)上述步驟:
optimum-cli export openvino --model Qwen/Qwen2.5-VL-3B-Instruct Qwen2.5-VL-3B-Instruct/INT4 --weight-format int4
其中“—model”參數(shù)后的“Qwen/Qwen2.5-VL-3B-Instruct”為模型在HuggingFace上的model id,這里我們也提前下載原始模型,并將model id替換為原始模型的本地路徑,針對(duì)國(guó)內(nèi)開(kāi)發(fā)者,推薦使用ModelScope魔搭社區(qū)作為原始模型的下載渠道,具體加載方式可以參考ModelScope官方指南:https://www.modelscope.cn/docs/models/download
3加載模型
接下來(lái)需要完成對(duì)模型推理任務(wù)的初始化,并將模型載入到指定硬件的內(nèi)存中,同樣的,我們可以利用optimum-intel封裝好的OpenVINO視覺(jué)多模態(tài)任務(wù)對(duì)象 OVModelForVisualCausalLM 對(duì)象完成該操作。
from optimum.intel.openvino import OVModelForVisualCausalLM model = OVModelForVisualCausalLM.from_pretrained(model_dir, device.value)
如示例代碼所示,通過(guò)OVModelForVisualCausalLM的from_pretrained函數(shù)接口,可以很方便地根據(jù)用戶(hù)提供的模型路徑,將模型載入到指定的硬件平臺(tái),完成視覺(jué)多模態(tài)任務(wù)的初始化。
4準(zhǔn)備模型輸入
第四步需要根據(jù)Qwen2.5-VL模型要求的prompt template準(zhǔn)備模型的輸入數(shù)據(jù)。數(shù)據(jù)格式如下:
messages = [ { "role": "user", "content": [ { "type": "image", "image": f"file://{example_image_path}", }, {"type": "text", "text": question}, ], } ]
其中:
“role“字段用于指定對(duì)話(huà)角色,包括system, user以及assistant三種類(lèi)型;
"content"字段表示對(duì)話(huà)角色輸出的內(nèi)容,其中”type”為內(nèi)容類(lèi)別,包含image,video,text三種類(lèi)型,支持多張image輸入。
接下來(lái)可以通過(guò)Qwen官方提供的方法將用戶(hù)輸入的text和image編碼為模型的輸入tensor。
text = processor.apply_chat_template(messages, tokenize=False, add_generation_prompt=True) image_inputs, video_inputs = process_vision_info(messages) inputs = processor( text=[text], images=image_inputs, videos=video_inputs, padding=True, return_tensors="pt", )
5運(yùn)行圖像理解任務(wù)
最后一步需要調(diào)用模型對(duì)象的generation函數(shù),進(jìn)行答案生成,這里可以通過(guò)添加TextStreamer迭代器的方式,在命令行中流式輸出文本內(nèi)容。
from transformers import TextStreamer generated_ids = model.generate(**inputs, max_new_tokens=100, streamer=TextStreamer(processor.tokenizer, skip_prompt=True, skip_special_tokens=True))
6總結(jié)
Qwen2.5-VL 系列模型的發(fā)布帶來(lái)了更精準(zhǔn)的視覺(jué)定位,文字理解以及Agent智能體能力。OpenVINO 則可以以更低的資源占用,高效地在本地運(yùn)行Qwen2.5-VL視覺(jué)多模態(tài)模型,激發(fā)AIPC異構(gòu)處理器的潛能。相信構(gòu)建面向桌面操作系統(tǒng)的本地智能體應(yīng)用已不再遙遠(yuǎn)。
-
英特爾
+關(guān)注
關(guān)注
61文章
10141瀏覽量
173573 -
模型
+關(guān)注
關(guān)注
1文章
3464瀏覽量
49819 -
OpenVINO
+關(guān)注
關(guān)注
0文章
112瀏覽量
380
原文標(biāo)題:開(kāi)發(fā)者實(shí)戰(zhàn)|如何利用OpenVINO? 在本地運(yùn)行Qwen2.5-VL系列模型
文章出處:【微信號(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)推薦
基于C#和OpenVINO?在英特爾獨(dú)立顯卡上部署PP-TinyPose模型
英特爾CPU部署Qwen 1.8B模型的過(guò)程
將英特爾?獨(dú)立顯卡與OpenVINO?工具套件結(jié)合使用時(shí),無(wú)法運(yùn)行推理怎么解決?
請(qǐng)問(wèn)OpenVINO?工具套件英特爾?Distribution是否與Windows? 10物聯(lián)網(wǎng)企業(yè)版兼容?
為什么Caffe模型可以直接與OpenVINO?工具套件推斷引擎API一起使用,而無(wú)法轉(zhuǎn)換為中間表示 (IR)?
為什么無(wú)法檢測(cè)到OpenVINO?工具套件中的英特爾?集成圖形處理單元?
為什么選擇加入英特爾?
介紹英特爾?分布式OpenVINO?工具包
怎么安裝適用于Linux *的OpenVINO?工具包的英特爾?發(fā)布版?
安裝OpenVINO工具套件英特爾Distribution時(shí)出現(xiàn)錯(cuò)誤的原因?
英特爾推出了OpenVINO
英特爾? FPGA AI套件搭配OpenVINO?工具包
已有超過(guò)500款A(yù)I模型在英特爾酷睿Ultra處理器上得以?xún)?yōu)化運(yùn)行
使用PyTorch在英特爾獨(dú)立顯卡上訓(xùn)練模型

評(píng)論