作者:英特爾AI軟件布道師 武卓 博士
在人工智能的飛速發展中,大語言模型,如Stable-Zephyr-3b,已成為研究和應用的熱點。這些模型以其強大的文本理解和生成能力在多個領域大放異彩。然而,大多數高性能模型通常需要昂貴的計算資源,使得它們的應用受限于有限的環境。本文將探討在OpenVINO的賦能下,如何在不足千元的AI開發板上部署Stable-Zephyr-3b模型,構建聊天機器人,成為實現AI無處不在愿景的重要組成部分之一。
Stable Zephyr 3B是一個先進的大語言模型,擁有30億參數,它在多個語言處理任務上顯示出了優異的性能。這個模型特別是在大小相對較小的情況下,比許多流行模型都要出色,這表明了它高效的參數使用和強大的學習能力。該模型的訓練靈感來自于HugginFaceH4的Zephyr 7B訓練管道,這是一個專注于高效訓練和性能優化的系統。Stable Zephyr 3B是在混合的數據集上進行訓練的,包括了公開可用的數據集和通過直接偏好優化(DPO)技術生成的合成數據集。DPO是一種優化技術,它直接在模型的偏好上施加約束,以產生更高質量的數據供模型學習。
該模型的性能評估是基于MT Bench和Alpaca Benchmark,這兩個基準都是在業界公認的,用以衡量語言模型在多種任務上的效能。通過這些嚴格的評估,Stable Zephyr 3B展現了其在理解和生成語言方面的卓越能力。更多關于模型的架構、訓練過程、使用的數據集以及在各項評估中的表現的信息可以在模型卡片中找到。
此文使用了研揚科技針對邊緣AI行業開發者推出了哪吒(Nezha)開發套件以信用卡大小(85 x 56mm)的開發板-哪吒(Nezha)為核心,哪吒采用Intel N97處理器(Alder Lake-N),最大睿頻3.6GHz,IntelUHD Graphics內核GPU,可實現高分辨率顯示;板載LPDDR5內存、eMMC存儲及TPM 2.0,配備GPIO接口,支持Windows和Linux操作系統,這些功能和無風扇散熱方式相結合,為各種應用程序構建高效的解決方案,適用于如自動化、物聯網網關、數字標牌和機器人等應用。
要在這些資源有限的設備上運行如Stable-Zephyr-3b這樣的大型模型,模型的壓縮和優化是關鍵。借助OpenVINO提供的模型優化工具NNCF,可以將模型量化壓縮為INT4精度的模型,從而可以大幅度減少模型的大小和計算需求,而保持相對較高的性能。接下來,就讓我們通過我們常用的OpenVINO Notebooks倉庫中關于Stable Zephyr 3B模型的Jupyter Notebook代碼和拆解,來進一步了解具體步驟吧。(Jupyter notebook代碼地址:
https://github.com/openvinotoolkit/openvino_notebooks/tree/main/notebooks/273-stable-zephyr-3b-chatbot )
第一步:安裝相應工具包
為了方便模型轉換步驟和模型性能評估,我們將使用llm_bench(https://github.com/openvinotoolkit/openvino.genai/tree/master/llm_bench/python )工具,該工具提供了一種統一的方法來估計大語言模型(LLM)的性能。它基于由Optimum-Intel提供的管道,并允許使用幾乎相同的代碼來估計Pytorch和OpenVINO模型的性能。
首先git clone llm_bench所在的代碼倉庫:
from pathlibimport Path
import sys
genai_llm_bench = Path("openvino.genai/llm_bench/python")
ifnot genai_llm_bench.exists():
!git clone https://github.com/openvinotoolkit/openvino.genai.git
sys.path.append(str(genai_llm_bench))
并進行相關Python包的安裝:
%pip uninstall -q -y optimum-intel optimum
%pip install -q --extra-index-url https://download.pytorch.org/whl/cpu -r ./openvino.genai/llm_bench/python/requirements.txt
%pip uninstall -q -y openvino openvino-dev openvino-nightly
%pip install -q openvino-nightly
第二步:將模型轉換為OpenVINO IR格式,并利用NNCF將模型權重壓縮為INT4精度
llm_bench提供了一個轉換腳本,用于將大語言模型轉換為與Optimum-Intel兼容的OpenVINO IR格式。它還允許使用NNCF將模型權重壓縮為INT8或INT4精度。要啟用INT4的權重壓縮,我們應該使用--compress_weights 4BIT_DEFAULT 參數。權重壓縮算法旨在壓縮模型的權重,并可用于優化大模型的占用空間和性能。與INT8壓縮相比,INT4壓縮進一步提高了性能,但會引入輕微的預測質量下降。
model_path = Path("stable-zephyr-3b/pytorch/dldt/compressed_weights/OV_FP16-4BIT_DEFAULT")
convert_script = genai_llm_bench / "convert.py"
!python $convert_script --model_id stabilityai/stable-zephyr-3b --precision FP16 --compress_weights 4BIT_DEFAULT --output stable-ze
第三步:評估模型性能
openvino.genai / llm_bench / python / benchmark.py腳本允許在特定輸入提示上估計文本生成管道的推理,給定最大生成分詞的數量。模型性能評估以時延為主。
benchmark_script = genai_llm_bench /"benchmark.py"
!python $benchmark_script -m $model_path -ic512 -p"Tell me story about cats"
運行結果如下:
![wKgaomWyIQ6AGxQ-AAS7PdK1uEA461.png](https://file1.elecfans.com/web2/M00/BF/58/wKgaomWyIQ6AGxQ-AAS7PdK1uEA461.png)
第四步:應用狀態變換來自動處理模型狀態
Stable Zephyr是一種自回歸的解碼器變換器模型,它通過緩存先前計算的隱藏狀態來優化生成過程和內存使用,避免每次生成新令牌時重復計算。隨著模型和注意力塊的增大,處理長序列的緩存策略可能對內存系統構成挑戰。因此,OpenVINO提出了一種轉換策略,將緩存邏輯內置于模型中以降低內存消耗并優化性能。您可以通過在轉換步驟中使用--stateful標志添加有狀態轉換來估計模型性能。
stateful_model_path = Path("stable-zephyr-3b-stateful/pytorch/dldt/compressed_weights/OV_FP16-4BIT_DEFAULT")
!python $convert_script --model_id stabilityai/stable-zephyr-3b --precision FP16 --compress_weights 4BIT_DEFAULT --output stable-zephyr-3b-stateful --force_convert --stateful
第五步:利用Optimum-Intel加載模型并在基于Gradio搭建的用戶界面上運行模型
同樣地,這個模型也可以用Optimum-Intel工具包里定義的OVModelForCausalLM 流水線來加載模型和運行推理,代碼如下:
from utils.ov_model_classesimport register_normalized_configs
from optimum.intel.openvinoimport OVModelForCausalLM
from transformers import AutoConfig
# Load model into Optimum Interface
register_normalized_configs()
ov_model = OVModelForCausalLM.from_pretrained(model_path, compile=False, config=AutoConfig.from_pretrained(stateful_model_path, trust_remote_code=True), stateful=True)
和我們的很多大預言模型和生成式AI的Notebook示例代碼一樣,在這個Notebook中,我們也提供了基于Gradio編寫的用戶友好的使用界面。最終在我們的哪吒開發板上運行該模型的推理。
整個的步驟就是這樣!現在就開始跟著我們提供的代碼和步驟,動手試試用OpenVINO在哪吒開發板上運行基于大語言模型的聊天機器人吧。
-
AI
+關注
關注
87文章
31536瀏覽量
270350 -
人工智能
+關注
關注
1796文章
47683瀏覽量
240311 -
OpenVINO
+關注
關注
0文章
95瀏覽量
228
發布評論請先 登錄
相關推薦
AI開發平臺如何賦能開發者
《HarmonyOS第一課》煥新升級,賦能開發者快速掌握鴻蒙應用開發
NVIDIA發布小巧高性價比的Jetson Orin Nano Super開發者套件
云端AI開發者工具怎么用
使用英特爾哪吒開發套件部署YOLOv5完成透明物體目標檢測
![使用英特爾<b class='flag-5'>哪吒</b><b class='flag-5'>開發套件</b>部署YOLOv5完成透明物體目標檢測](https://file1.elecfans.com/web2/M00/0D/3E/wKgaomdEQQmAcfF4AAB6yHq2BWc795.png)
OpenVINO? C++ 在哪吒開發板上推理 Transformer 模型|開發者實戰
![<b class='flag-5'>OpenVINO</b>? C++ 在<b class='flag-5'>哪吒</b><b class='flag-5'>開發</b>板上推理 Transformer <b class='flag-5'>模型</b>|<b class='flag-5'>開發者</b><b class='flag-5'>實戰</b>](https://file1.elecfans.com/web1/M00/F4/FB/wKgaoWc0TKiAEKYmAACQrFY_nwY571.png)
NVIDIA RTX AI套件簡化AI驅動的應用開發
2024 TUYA全球開發者大會盛大啟幕,Cube AI大模型重磅首發!
![2024 TUYA全球<b class='flag-5'>開發者</b>大會盛大啟幕,Cube <b class='flag-5'>AI</b>大<b class='flag-5'>模型</b>重磅首發!](https://file1.elecfans.com/web2/M00/EA/52/wKgZomZX0yiAW_YSAACm-5uqG20783.jpg)
聯發科發布天璣AI開發套件,賦能終端生成式AI應用
英特爾開發套件『哪吒』在Java環境實現ADAS道路識別演示 | 開發者實戰
![英特爾<b class='flag-5'>開發套件</b>『<b class='flag-5'>哪吒</b>』在Java環境實現ADAS道路識別演示 | <b class='flag-5'>開發者</b><b class='flag-5'>實戰</b>](https://file1.elecfans.com/web2/M00/05/66/wKgZombZanCAW8XjAAEIdtytdjQ129.png)
【轉載】英特爾開發套件“哪吒”快速部署YoloV8 on Java | 開發者實戰
![【轉載】英特爾<b class='flag-5'>開發套件</b>“<b class='flag-5'>哪吒</b>”快速部署YoloV8 on Java | <b class='flag-5'>開發者</b><b class='flag-5'>實戰</b>](https://file1.elecfans.com/web2/M00/04/E0/wKgZombVIV-AW0slAAEH1ZLR7Gc388.png)
基于英特爾哪吒開發者套件平臺來快速部署OpenVINO Java實戰
![基于英特爾<b class='flag-5'>哪吒</b><b class='flag-5'>開發者</b><b class='flag-5'>套件</b>平臺來快速部署<b class='flag-5'>OpenVINO</b> Java<b class='flag-5'>實戰</b>](https://file1.elecfans.com/web2/M00/C6/3A/wKgaomX8C3eAcDboAAAbg6PGr-s511.png)
評論