RM新时代网站-首页

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

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

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

利用OpenVINO部署GLM-Edge系列SLM模型

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

作者:

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

近期智譜發(fā)布了其最新的GLM-Edge系列SLM模型,GLM-Edge 系列是智譜在面向端側(cè)真實(shí)落地使用的場(chǎng)景下的一次嘗試,由兩種尺寸的大語言對(duì)話模型和多模態(tài)理解模型組成( GLM-Edge-1.5B-Chat,GLM-Edge-4B-Chat,GLM-Edge-V-2B,GLM-Edge-V-5B)。其中,1.5B / 2B模型主要面向手機(jī)、車機(jī)等平臺(tái), 4B / 5B 模型主要面向PC等平臺(tái)。

英特爾AI PC可以幫助用戶利用人工智能技術(shù)提高工作效率、創(chuàng)意、游戲、娛樂和安全等性能。它搭載 CPU、GPU 和 NPU,可在本地更高效地處理 AI 任務(wù)。其中我們可以依靠CPU來運(yùn)行較小的工作負(fù)載并實(shí)現(xiàn)低延遲,而GPU則非常適合需要并行吞吐量的大型工作負(fù)載,例如大預(yù)言模型推理任務(wù),NPU能夠以低功耗處理持續(xù)運(yùn)行 AI 工作負(fù)載,提高效率。開發(fā)者可以利用英特爾OpenVINO工具套件充分激活這些AI處理單元,更高效地部署深度學(xué)習(xí)模型,其中GLM-Edge就是一個(gè)非常適合運(yùn)行在AIPC上的端側(cè)模型系列。本文將分享如何利用OpenVINO 在本地部署最新glm-edge-chat與glm-edge-v模型。

環(huán)境安裝與配置

以下為示例環(huán)境的快速部署方式,詳細(xì)過程可以參考示例倉庫中的README文檔。

1.下載示例倉庫

git clone

https://github.com/openvino-dev-samples/glm-edge.openvino.git

2.安裝環(huán)境依賴

cd glm-edge.openvino
python3 -m venv openvino_env
source openvino_env/bin/activate
pip install -r requirements.txt

glm-edge-chat轉(zhuǎn)化與部署

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

由于glm-edge-chat的預(yù)訓(xùn)練模型是基于PyTorch框架的,因此我們可以利用Optimum-intel快速將safetensor格式的預(yù)訓(xùn)練模型轉(zhuǎn)化為OpenVINO的IR格式,并通過NNCF工具對(duì)模型進(jìn)行權(quán)重量化壓縮,以此提升推理性能,降低資源占用。

python3 glm-edge-chat/convert.py --model_id ZhipuAI/glm-edge-1.5b-chat --precision int4 --output {your_path}/glm-edge-1.5b-chat-ov --modelscope

其中:

`--model_id` - 用于設(shè)定 Huggngface/ModelScope的 模型id,或者也可以是原始模型的本地路徑。

`--output` - 轉(zhuǎn)換后模型保存的地址。

`--modelscope` - 是否通過魔搭社區(qū)下載模型。

2. Optimum-intel部署

為了方便Transformers庫用戶體驗(yàn)OpenVINO,開發(fā)者可以利用Optimum-intel所提供的類Transformers API進(jìn)行模型任務(wù)的部署。在不改變?cè)敬a邏輯的前提下,只需要將AutoModelForCausalLM對(duì)象切換為OVModelForCausalLM,便可以輕松實(shí)現(xiàn)對(duì)于推理后端的遷移,利用OpenVINO 來加速glm-edge-chat原有的pipeline。

from optimum.intel.openvino import OVModelForCausalLM
from transformers import AutoConfig, AutoTokenizer


ov_model = OVModelForCausalLM.from_pretrained(
  llm_model_path,
  device='GPU',
  config=AutoConfig.from_pretrained(llm_model_path, trust_remote_code=True),
  trust_remote_code=True,
)
tokenzier = AutoTokenizer.from_pretrained(llm_model_path, trust_remote_code=True)
input_tokens = tokenzier(prompt, return_tensors="pt", **tokenizer_kwargs)
answer = ov_model.generate(**input_tokens, max_new_tokens=1024)
tokenzier.batch_decode(answer, skip_special_tokens=True)[0]

在這個(gè)示例中,開發(fā)者可以通過運(yùn)行chat.py腳本來構(gòu)建一個(gè)簡(jiǎn)答的聊天機(jī)器人,并支持流式輸出。使用方法如下:

python3 glm-edge-chat/chat.py --model_path {your_path}/glm-edge-1.5b-chat-ov --max_sequence_length 4096 --device GPU

其中:

`--model_path` - OpenVINO IR 模型所在目錄的路徑。

`--max_sequence_length` - 輸出標(biāo)記的最大大小。

`--device` - 運(yùn)行推理的設(shè)備。例如:"CPU","GPU"。

3. 效果展示

以下視頻將展示該示例在英特爾 酷睿 Ultra 處理器(第二代)上的運(yùn)行效果:

glm-edge-v轉(zhuǎn)化與部署

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

目前glm-edge-v的推理任務(wù)還沒有被完全集成進(jìn)Optimum工具中,因此我們需要手動(dòng)搭建模型的轉(zhuǎn)換和量化任務(wù),其中包含語言模型language_model,圖像編碼模型vision_model,和文本編碼模型embedding_model。

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

python3 glm-edge-v/convert.py --model_id ZhipuAI/glm-edge-v-2b --output {your_path}/glm-edge-v-5b-ov –modelscope

其中:

`--model_id` - 用于設(shè)定 Huggngface/ModelScope的 模型id,或者也可以是原始模型的本地路徑。

`--output` - 轉(zhuǎn)換后模型保存的地址。

`--modelscope` - 是否通過魔搭社區(qū)下載模型。

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

此外在該示例中,我們也對(duì)模型的推理任務(wù)進(jìn)行封裝,通過導(dǎo)入OvGLMv對(duì)象變可以可快速部署圖像理解任務(wù)。通過以下示例腳本可以快速對(duì)模型效果進(jìn)行驗(yàn)證。

python3 qa.py --model_path {your_path}/glm-edge-v-2b-ov --query "Please describe this picture" --image_path {your_path}/your_test_image.jpg --max_sequence_length 4096 --device CPU

其中:

`--model_path` - OpenVINO IR 模型所在目錄的路徑。

`--query` - 用戶輸入的問題文本。

`--image` - 待識(shí)別的圖片文件路徑。

`--max_sequence_length` - 輸出標(biāo)記的最大大小。

`--device` - 運(yùn)行推理的設(shè)備。例如:"CPU","GPU"。

3.效果展示

以下為經(jīng)過OpenVINO 量化后的glm-edge-v-2b模型輸出結(jié)果。

文字輸入:

“請(qǐng)描述這張圖片”

模型輸出:

“這是一張照片,顯示了一輛停在一棟紅色磚墻前白色欄桿的建筑物旁邊的白色皮卡車,有四個(gè)黑色的輪胎和一個(gè)帶頂篷的駕駛室。在圖片中間可以看到停著的一輛白色皮卡車。這輛車停在路邊,其尾部有一個(gè)梯形托盤,看起來結(jié)構(gòu)堅(jiān)固,適合裝載或卸載重物。它的車頂是白色的,帶有黑色的輪胎和黑色的框架。車身顏色為白色,帶有黑色的邊框窗戶和把手。駕駛室有透明的玻璃,可以看到內(nèi)部的司機(jī)座椅。車尾部有一個(gè)梯形形狀的拖車。汽車旁邊是灰色的地磚。”

總結(jié)

通過OpenVINO封裝后的API函數(shù),開發(fā)者可以非常便捷地對(duì)預(yù)訓(xùn)練模型進(jìn)行轉(zhuǎn)化壓縮,并實(shí)現(xiàn)本地化的推理任務(wù)部署。同時(shí)基于GLM-Edge 在小語言模型場(chǎng)景下強(qiáng)大的文本與圖像理解能力,我們僅在輕薄本上便可以構(gòu)建起一個(gè)完整的語言模型應(yīng)用,在保護(hù)用戶數(shù)據(jù)隱私的同時(shí),降低硬件門檻。

聲明:本文內(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)注

    68

    文章

    19259

    瀏覽量

    229647
  • 英特爾
    +關(guān)注

    關(guān)注

    61

    文章

    9949

    瀏覽量

    171687
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10854

    瀏覽量

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

    關(guān)注

    1

    文章

    3226

    瀏覽量

    48806
  • OpenVINO
    +關(guān)注

    關(guān)注

    0

    文章

    92

    瀏覽量

    196

原文標(biāo)題:開發(fā)者實(shí)戰(zhàn)|最新端側(cè)小鋼炮!利用 OpenVINO? 部署 GLM-Edge 全家桶

文章出處:【微信號(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 ?911次閱讀
    如何使用<b class='flag-5'>OpenVINO</b> C++ API<b class='flag-5'>部署</b>FastSAM<b class='flag-5'>模型</b>

    為什么無法通過Heroku部署OpenVINO?工具套件?

    無法通過 Heroku 部署OpenVINO?工具套件: Importeror:libpython3.9.so.1.0:無法打開共享對(duì)象文件:無此類文件或目錄
    發(fā)表于 08-14 08:58

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

    ? ? ? 01 概述 ? ? 本文是OpenVINO 工具套件與百度飛槳PaddlePaddle模型轉(zhuǎn)換/部署系列的第二部。這篇文章專注于展示如何將百度飛槳PaddelSeg項(xiàng)目
    的頭像 發(fā)表于 11-22 14:58 ?9878次閱讀
    使用<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 ?4642次閱讀

    自訓(xùn)練Pytorch模型使用OpenVINO?優(yōu)化并部署在AI愛克斯開發(fā)板

    本文章將依次介紹如何將 Pytorch 自訓(xùn)練模型經(jīng)過一系列變換變成 OpenVINO IR 模型形式,而后使用 OpenVINO Pyth
    的頭像 發(fā)表于 05-26 10:23 ?926次閱讀
    自訓(xùn)練Pytorch<b class='flag-5'>模型</b>使用<b class='flag-5'>OpenVINO</b>?優(yōu)化并<b class='flag-5'>部署</b>在AI愛克斯開發(fā)板

    AI愛克斯開發(fā)板上使用OpenVINO加速YOLOv8目標(biāo)檢測(cè)模型

    《在AI愛克斯開發(fā)板上用OpenVINO加速YOLOv8分類模型》介紹了在AI愛克斯開發(fā)板上使用OpenVINO 開發(fā)套件部署并測(cè)評(píng)YOLOv8的分類
    的頭像 發(fā)表于 05-26 11:03 ?1238次閱讀
    AI愛克斯開發(fā)板上使用<b class='flag-5'>OpenVINO</b>加速YOLOv8目標(biāo)檢測(cè)<b class='flag-5'>模型</b>

    如何將Pytorch自訓(xùn)練模型變成OpenVINO IR模型形式

    本文章將依次介紹如何將Pytorch自訓(xùn)練模型經(jīng)過一系列變換變成OpenVINO IR模型形式,而后使用OpenVINO Python AP
    的頭像 發(fā)表于 06-07 09:31 ?1979次閱讀
    如何將Pytorch自訓(xùn)練<b class='flag-5'>模型</b>變成<b class='flag-5'>OpenVINO</b> IR<b class='flag-5'>模型</b>形式

    基于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 ?958次閱讀
    基于<b class='flag-5'>OpenVINO</b> Python API<b class='flag-5'>部署</b>RT-DETR<b class='flag-5'>模型</b>

    如何使用OpenVINO Python API部署FastSAM模型

    象的位置和邊界。本文將介紹如何使用 OpenVINO Python API 部署 FastSAM 模型,以實(shí)現(xiàn)快速高效的語義分割。
    的頭像 發(fā)表于 10-27 11:04 ?729次閱讀

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

    RT-DETR 是在 DETR 模型基礎(chǔ)上進(jìn)行改進(jìn)的,一種基于 DETR 架構(gòu)的實(shí)時(shí)端到端檢測(cè)器,它通過使用一系列新的技術(shù)和算法,實(shí)現(xiàn)了更高效的訓(xùn)練和推理,在前文我們發(fā)表了《基于 OpenVINO
    的頭像 發(fā)表于 11-03 14:30 ?829次閱讀
    基于<b class='flag-5'>OpenVINO</b> C++ API<b class='flag-5'>部署</b>RT-DETR<b class='flag-5'>模型</b>

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

    RT-DETR 是在 DETR 模型基礎(chǔ)上進(jìn)行改進(jìn)的,一種基于 DETR 架構(gòu)的實(shí)時(shí)端到端檢測(cè)器,它通過使用一系列新的技術(shù)和算法,實(shí)現(xiàn)了更高效的訓(xùn)練和推理,在前文我們發(fā)表了《基于 OpenVINO
    的頭像 發(fā)表于 11-10 16:59 ?753次閱讀
    基于<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 ?1602次閱讀
    NNCF壓縮與量化YOLOv8<b class='flag-5'>模型</b>與<b class='flag-5'>OpenVINO</b><b class='flag-5'>部署</b>測(cè)試

    如何在MacOS上編譯OpenVINO C++項(xiàng)目呢?

    英特爾公司發(fā)行的模型部署工具 OpenVINO 模型部署套件,可以實(shí)現(xiàn)在不同系統(tǒng)環(huán)境下運(yùn)行,且發(fā)布的 O
    的頭像 發(fā)表于 01-11 18:07 ?891次閱讀
    如何在MacOS上編譯<b class='flag-5'>OpenVINO</b> C++項(xiàng)目呢?

    使用OpenVINO Model Server在哪吒開發(fā)板上部署模型

    OpenVINO Model Server(OVMS)是一個(gè)高性能的模型部署系統(tǒng),使用C++實(shí)現(xiàn),并在Intel架構(gòu)上的部署進(jìn)行了優(yōu)化,使用Open
    的頭像 發(fā)表于 11-01 14:19 ?270次閱讀
    使用<b class='flag-5'>OpenVINO</b> Model Server在哪吒開發(fā)板上<b class='flag-5'>部署</b><b class='flag-5'>模型</b>

    在設(shè)備上利用AI Edge Torch生成式API部署自定義大語言模型

    我們很高興地發(fā)布 AI Edge Torch 生成式 API,它能將開發(fā)者用 PyTorch 編寫的高性能大語言模型 (LLM) 部署至 TensorFlow Lite (TFLite) 運(yùn)行時(shí)
    的頭像 發(fā)表于 11-14 10:23 ?415次閱讀
    在設(shè)備上<b class='flag-5'>利用</b>AI <b class='flag-5'>Edge</b> Torch生成式API<b class='flag-5'>部署</b>自定義大語言<b class='flag-5'>模型</b>
    RM新时代网站-首页