0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

利用OpenVINO部署Qwen2多模態(tài)模型

英特爾物聯(lián)網(wǎng) ? 來源:英特爾物聯(lián)網(wǎng) ? 2024-10-18 09:39 ? 次閱讀

作者

楊亦誠英特爾 AI 軟件工程師

Ekaterina Aidova AI 框架工程師

多模態(tài)大模型的核心思想是將不同媒體數(shù)據(jù)(如文本、圖像、音頻視頻等)進(jìn)行融合,通過學(xué)習(xí)不同模態(tài)之間的關(guān)聯(lián),實(shí)現(xiàn)更加智能化的信息處理。簡(jiǎn)單來說,多模態(tài)大模型可以可以理解多種不同模態(tài)的輸入數(shù)據(jù),并輸出相應(yīng)反饋結(jié)果,例如圖像理解,語音識(shí)別,視覺問題等。

多模態(tài)大模型都會(huì)將文本生成模型作為底座模型,以支持對(duì)話能力,其中千問團(tuán)隊(duì)近期發(fā)布的 Qwen2-Audio 和 Qwen2-VL 便是以 Qwen2 為底座的多模態(tài)大模型,分別支持語音/文本以及圖像/文本作為多模態(tài)輸入,相比上一代的 Qwen-VL 和 Qwen-Audio ,基于 Qwen2 的多模態(tài)模型具備更強(qiáng)大的視覺理解以語音理解能力,并實(shí)現(xiàn)了多語種的支持。本文將分享如何利用 OpenVINO 工具套件在輕薄本上部署 Qwen2-Audio 以及 Qwen2-VL 多模態(tài)模型。

1Qwen2-VL

1. 模型轉(zhuǎn)換與量化

目前 Qwen2-VL 的推理任務(wù)還沒有被完全集成進(jìn) Optimum 工具中,因此我們需要手動(dòng)完成模型的轉(zhuǎn)換和量化,其中包含語言模型 lang_model,圖像編碼模型 image_embed,文本 token 編碼模型 embed_token 模型以及圖像特征映射模型 image_embed_merger。

為了簡(jiǎn)化轉(zhuǎn)化步驟,我們提前對(duì)這些轉(zhuǎn)化任務(wù)行進(jìn)行了封裝,開發(fā)者只需要調(diào)用 Qwen2-VL 示例地址中提供的函數(shù)便可完成這些模型的轉(zhuǎn)換,并對(duì)其中負(fù)載最大的語言模型進(jìn)行量化。這里以 Qwen2-VL-2B-Instruct 為例。

from ov_qwen2_vl import convert_qwen2vl_model
import nncf


compression_configuration = {  
  "mode": nncf.CompressWeightsMode.INT4_ASYM,  
  "group_size": 128,  
  "ratio": 1.0,
}


convert_qwen2vl_model("Qwen/Qwen2-VL-2B-Instruct", model_dir, compression_configuration)

2.圖片內(nèi)容理解

此外在該示例中,我們也對(duì)模型的推理任務(wù)進(jìn)行封裝,通過以下代碼便可快速部署圖像理解任務(wù),并實(shí)現(xiàn)文字的流式輸出。由于 Qwen2-VL 對(duì)于輸入數(shù)據(jù)有格式上的要求,因此我們需要提前將圖片和文本包裝為指定的字典格式,并調(diào)用模型自帶的 processor 腳本將其轉(zhuǎn)換為 prompt 輸入。

question = "Describe this image."


messages = [
  {
    "role": "user",
    "content": [
      {
        "type": "image",
        "image": f"file://{example_image_path}",
      },
      {"type": "text", "text": question},
    ],
  }
]

你可以將以下推理代碼中的 device 設(shè)置為“GPU“,以激活系統(tǒng)中 Intel 集顯或是獨(dú)顯的能力。

from ov_qwen2_vl import OVQwen2VLModel
model = OVQwen2VLModel(model_dir, device)


processor = AutoProcessor.from_pretrained(model_dir, min_pixels=min_pixels, max_pixels=max_pixels)


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",
 )
 
generated_ids = model.generate(**inputs, max_new_tokens=100, streamer=TextStreamer(processor.tokenizer, skip_prompt=True, skip_special_tokens=True))

示例輸出效果如下:

Question:

Describe this image.

Answer:

The image depicts a woman sitting on a sandy beach with a large dog. The dog is standing on its hind legs, reaching up to give the woman a high-five. The woman is smiling and appears to be enjoying the moment. The background shows the ocean with gentle waves, and the sky is clear with a soft light, suggesting it might be either sunrise or sunset. The scene is serene and joyful, capturing a heartwarming interaction between the woman and her dog.

3. 視頻內(nèi)容理解

由于 Qwen2-VL 可以同時(shí)支持對(duì)多個(gè)圖像輸入,因此可以基于這一特性實(shí)現(xiàn)視頻內(nèi)容理解,實(shí)現(xiàn)方法也特別簡(jiǎn)單,僅需對(duì)視頻文件抽幀后保存為圖片,并將這些圖片基于 Qwen2-VL 提供的預(yù)處理腳本合并后,轉(zhuǎn)化為 Prompt 模板,送入模型流水線進(jìn)行推理。值得注意的是,當(dāng)你將"type"設(shè)置為 "video"后,processor 會(huì)自動(dòng)將兩張圖片拼接為一張,進(jìn)行處理,以優(yōu)化推理性能,并降低多圖任務(wù)的內(nèi)存占用。

question = "描述一下這段視頻"
messages = [
  {
    "role": "user",
    "content": [
      {
        "type": "video",
        "video": [
          "file://./examples/keyframe_1.jpg",
          "file://./examples/keyframe_2.jpg",
          "file://./examples/keyframe_3.jpg",
          "file://./examples/keyframe_4.jpg",
        ],
        "fps": 1.0,
      },
      {"type": "text", "text": question},
    ],
  }
]

2Qwen2-Audio

1. 模型轉(zhuǎn)換與量化

針對(duì) Qwen2-Audio,我們同樣在 Qwen2-VL 示例地址中對(duì)模型的轉(zhuǎn)換和量化步驟進(jìn)行了接口封裝,其中包含語言模型 lang_model,音頻編碼模型 audio_embed,文本 token 編碼模型 embed_token 模型以及音頻特征映射模型 projection。使用方法如下:

from ov_qwen2_audio_helper import convert_qwen2audio_model
import nncf
compression_configuration = {
  "mode": nncf.CompressWeightsMode.INT4_ASYM,
  "group_size": 128,
  "ratio": 1.0,
}
convert_qwen2audio_model("Qwen/Qwen2-Audio-7B-Instruct", model_dir, compression_configuration)

2. 語音對(duì)話

Qwen2-Audio 提供語音對(duì)話和音頻分析兩種任務(wù)模式。在語音對(duì)話模式中,用戶只需輸入語音而無需輸入文字,指令則通過語音直接傳達(dá)給模型。下面則是一個(gè)音頻分析的例子。

conversation = [
  {"role": "system", "content": "You are a helpful assistant."},
  {
    "role": "user",
    "content": [
      {"type": "audio", "audio_url": audio_chat_url},
    ],
  },
]
text = processor.apply_chat_template(conversation, add_generation_prompt=True, tokenize=False)
audios = [librosa.load(audio_chat_file, sr=processor.feature_extractor.sampling_rate)[0]]
inputs = processor(text=text, audios=audios, return_tensors="pt", padding=True)
generate_ids = ov_model.generate(**inputs, max_new_tokens=50, streamer=TextStreamer(processor.tokenizer, skip_prompt=True, skip_special_tokens=True))

和 Qwen2-VL 一樣,我們需要在構(gòu)建輸入 Prompt 前,提前準(zhǔn)備好字典格式的數(shù)據(jù),可以看到在語音對(duì)話模式下,我們僅需提供音頻文件的地址或路徑。該示例的輸出如下:

Answer:

Yes, I can guess that you are a female in your twenties.

從輸出結(jié)果可以看到 Qwen2-Audio 不光可以理解音頻內(nèi)容,并且可以識(shí)別對(duì)話者的音色和語調(diào)。

3. 音頻分析

在音頻分析模式下,Qwen2-Audio則支持多模態(tài)輸入,此時(shí)我們可以將文本和音頻拼接在一起,作為prompt送入模型中進(jìn)行推理。

question = "What does the person say?"
conversation = [
  {"role": "system", "content": "You are a helpful assistant."},
  {
    "role": "user",
    "content": [
      {"type": "audio", "audio_url": audio_url},
      {"type": "text", "text": question},
    ],
  },
]

示例輸入結(jié)果:

Answer:

The person says: 'Mister Quilter is the apostle of the middle classes, and we are glad to welcome his gospel.'

3總結(jié)與展望

通過 OpenVINO 封裝后的 API 函數(shù),開發(fā)者可以非常便捷地對(duì)預(yù)訓(xùn)練模型進(jìn)行轉(zhuǎn)化壓縮,并實(shí)現(xiàn)本地化的推理任務(wù)部署。同時(shí)基于 Qwen2 系列多模態(tài)模型強(qiáng)大的音頻與圖像理解能力,我們僅在輕薄本上便可以構(gòu)建起一個(gè)完整的語言模型應(yīng)用,在保護(hù)用戶數(shù)據(jù)隱私的同時(shí),降低硬件門檻。后期我們也計(jì)劃將 Qwen2 多模態(tài)系列模型的流水線集成進(jìn) Optimum 組件中,方便開發(fā)者更靈活地進(jìn)行調(diào)用,敬請(qǐng)期待。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 英特爾
    +關(guān)注

    關(guān)注

    60

    文章

    9814

    瀏覽量

    171111
  • AI
    AI
    +關(guān)注

    關(guān)注

    87

    文章

    29347

    瀏覽量

    267630
  • 模型
    +關(guān)注

    關(guān)注

    1

    文章

    3054

    瀏覽量

    48569
  • OpenVINO
    +關(guān)注

    關(guān)注

    0

    文章

    81

    瀏覽量

    155

原文標(biāo)題:如何利用 OpenVINO? 部署 Qwen2 多模態(tài)模型|開發(fā)者實(shí)戰(zhàn)

文章出處:【微信號(hào):英特爾物聯(lián)網(wǎng),微信公眾號(hào):英特爾物聯(lián)網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何使用OpenVINO C++ API部署FastSAM模型

    象的位置和邊界。本文將介紹如何使用 OpenVINO C++ API 部署 FastSAM 模型,以實(shí)現(xiàn)快速高效的語義分割。在前文中我們發(fā)表了《基于 OpenVINO Python A
    的頭像 發(fā)表于 11-17 09:53 ?780次閱讀
    如何使用<b class='flag-5'>OpenVINO</b> C++ API<b class='flag-5'>部署</b>FastSAM<b class='flag-5'>模型</b>

    使用OpenVINO? 部署PaddleSeg模型庫中的DeepLabV3+模型

    Movidius MyraidX VPU上,請(qǐng)參考第一篇文章: Ubuntu20.04環(huán)境下使用OpenVINO部署BiSeNetV2模型 ? 那么我們重述一下什么是語義分割: ?
    的頭像 發(fā)表于 11-22 14:58 ?9760次閱讀
    使用<b class='flag-5'>OpenVINO</b>? <b class='flag-5'>部署</b>PaddleSeg<b class='flag-5'>模型</b>庫中的DeepLabV3+<b class='flag-5'>模型</b>

    在C++中使用OpenVINO工具包部署YOLOv5模型

    下載并轉(zhuǎn)換YOLOv5預(yù)訓(xùn)練模型的詳細(xì)步驟,請(qǐng)參考:《基于OpenVINO?2022.2和蝰蛇峽谷優(yōu)化并部署YOLOv5模型》,本文所使用的Open
    的頭像 發(fā)表于 02-15 16:53 ?4398次閱讀

    VisCPM:邁向多語言模態(tài)模型時(shí)代

    可以大致分為兩類: 1. 在圖生文(image-to-text generation)方面,以 GPT-4 為代表的模態(tài)模型,可以面向圖像進(jìn)行開放域?qū)υ捄蜕疃韧评恚?2. 在文生圖
    的頭像 發(fā)表于 07-10 10:05 ?664次閱讀
    VisCPM:邁向多語言<b class='flag-5'>多</b><b class='flag-5'>模態(tài)</b>大<b class='flag-5'>模型</b>時(shí)代

    基于OpenVINO Python API部署RT-DETR模型

    平臺(tái)實(shí)現(xiàn) OpenVINO 部署 RT-DETR 模型實(shí)現(xiàn)深度學(xué)習(xí)推理加速, 在本文中,我們將首先介紹基于 OpenVINO Python API
    的頭像 發(fā)表于 10-20 11:15 ?848次閱讀
    基于<b class='flag-5'>OpenVINO</b> Python API<b class='flag-5'>部署</b>RT-DETR<b class='flag-5'>模型</b>

    基于OpenVINO C# API部署RT-DETR模型

    Python API 部署 RT-DETR 模型 | 開發(fā)者實(shí)戰(zhàn)》和《基于 OpenVINO C++ API 部署 RT-DETR 模型
    的頭像 發(fā)表于 11-10 16:59 ?657次閱讀
    基于<b class='flag-5'>OpenVINO</b> C# API<b class='flag-5'>部署</b>RT-DETR<b class='flag-5'>模型</b>

    NNCF壓縮與量化YOLOv8模型OpenVINO部署測(cè)試

    OpenVINO2023版本衍生出了一個(gè)新支持工具包NNCF(Neural Network Compression Framework – 神經(jīng)網(wǎng)絡(luò)壓縮框架),通過對(duì)OpenVINO IR格式模型的壓縮與量化更好的提升
    的頭像 發(fā)表于 11-20 10:46 ?1367次閱讀
    NNCF壓縮與量化YOLOv8<b class='flag-5'>模型</b>與<b class='flag-5'>OpenVINO</b><b class='flag-5'>部署</b>測(cè)試

    簡(jiǎn)單兩步使用OpenVINO?搞定Qwen2的量化與部署任務(wù)

    英特爾 OpenVINO? 工具套件是一款開源 AI 推理優(yōu)化部署的工具套件,可幫助開發(fā)人員和企業(yè)加速生成式人工智能 (AIGC)、大語言模型、計(jì)算機(jī)視覺和自然語言處理等 AI 工作負(fù)載,簡(jiǎn)化深度學(xué)習(xí)推理的開發(fā)和
    的頭像 發(fā)表于 04-26 09:39 ?1455次閱讀
    簡(jiǎn)單兩步使用<b class='flag-5'>OpenVINO</b>?搞定<b class='flag-5'>Qwen2</b>的量化與<b class='flag-5'>部署</b>任務(wù)

    阿里通義千問Qwen2模型發(fā)布

    阿里巴巴最近發(fā)布了其通義千問系列的新成員——Qwen2模型,并在Hugging Face和ModelScope兩大平臺(tái)上實(shí)現(xiàn)了同步開源。這一舉措無疑為人工智能領(lǐng)域的研究者和開發(fā)者們提供了更多選擇和可能。
    的頭像 發(fā)表于 06-07 15:59 ?673次閱讀

    阿里通義千問Qwen2模型發(fā)布并同步開源

    阿里巴巴集團(tuán)旗下的通義千問團(tuán)隊(duì)宣布,全新的Qwen2模型正式發(fā)布,并在全球知名的開源平臺(tái)Hugging Face和ModelScope上同步開源。這一里程碑式的事件標(biāo)志著中國在人工智能領(lǐng)域的又一次重要突破。
    的頭像 發(fā)表于 06-11 15:33 ?985次閱讀

    Qwen2強(qiáng)勢(shì)來襲,AIBOX支持本地化部署

    Qwen2是阿里通義推出的新一代多語言預(yù)訓(xùn)練模型,經(jīng)過更深入的預(yù)訓(xùn)練和指令調(diào)整,在多個(gè)基準(zhǔn)評(píng)測(cè)結(jié)果中表現(xiàn)出色,尤其在代碼和數(shù)學(xué)方面有顯著提升,同時(shí)拓展了上下文長(zhǎng)度支持,最高可達(dá)128K。目前
    的頭像 發(fā)表于 06-27 08:02 ?889次閱讀
    <b class='flag-5'>Qwen2</b>強(qiáng)勢(shì)來襲,AIBOX支持本地化<b class='flag-5'>部署</b>

    基于Qwen-Agent與OpenVINO構(gòu)建本地AI智能體

    Qwen2 是阿里巴巴集團(tuán) Qwen 團(tuán)隊(duì)研發(fā)的大語言模型和大型模態(tài)模型系列。
    的頭像 發(fā)表于 07-26 09:54 ?680次閱讀
    基于<b class='flag-5'>Qwen</b>-Agent與<b class='flag-5'>OpenVINO</b>構(gòu)建本地AI智能體

    阿里Qwen2-Math系列震撼發(fā)布,數(shù)學(xué)推理能力領(lǐng)跑全球

    阿里巴巴近期震撼發(fā)布了Qwen2-Math系列模型,這一系列模型基于其強(qiáng)大的Qwen2 LLM構(gòu)建,專為數(shù)學(xué)解題而生,展現(xiàn)了前所未有的數(shù)學(xué)推理能力。
    的頭像 發(fā)表于 08-12 15:19 ?630次閱讀

    通義千問發(fā)布第二代視覺語言模型Qwen2-VL

    。Qwen2-VL系列模型模態(tài)處理領(lǐng)域取得了突破性進(jìn)展,于多個(gè)權(quán)威測(cè)評(píng)中嶄露頭角,刷新了多項(xiàng)最佳成績(jī)記錄,展現(xiàn)出強(qiáng)大的視覺理解與語言交互能力。
    的頭像 發(fā)表于 09-03 16:31 ?470次閱讀

    號(hào)稱全球最強(qiáng)開源模型 ——Qwen2.5 系列震撼來襲!PerfXCloud同步上線,快來體驗(yàn)!

    最新的大規(guī)模數(shù)據(jù)集上進(jìn)行了預(yù)訓(xùn)練,該數(shù)據(jù)集包含多達(dá)18Ttokens。相較于Qwen2Qwen2.5獲得了顯著更多的知識(shí)(MMLU:85+),并在編程能力(Human
    的頭像 發(fā)表于 09-25 16:52 ?397次閱讀
    號(hào)稱全球最強(qiáng)開源<b class='flag-5'>模型</b> ——<b class='flag-5'>Qwen</b>2.5 系列震撼來襲!PerfXCloud同步上線,快來體驗(yàn)!