作者:
劉力 算力魔方創(chuàng)始人
前面我們分享了《三步完成Llama3在算力魔方的本地量化和部署》。2024年9月25日,Meta又發(fā)布了Llama3.2:一個(gè)多語(yǔ)言大型語(yǔ)言模型(LLMs)的集合,其中包括:
大語(yǔ)言模型:1B和3B參數(shù)版本,僅接收多種語(yǔ)言文本輸入。
多模態(tài)模型:11B和90B參數(shù)版本,既能接收文本輸入又能接收?qǐng)D像輸入。
本文將介紹使用OpenVINO 2024.4在算力魔方上部署Llama-3.2-1B-Instruct模型。
1.1Llama 3.2簡(jiǎn)介
Llama 3.2的1B和3B參數(shù)版本是一個(gè)支持多種語(yǔ)言大型語(yǔ)言模型,其指令調(diào)優(yōu)純文本模型Llama-3.2-1B-Instruct和Llama-3.2-3B-Instruct,針對(duì)多語(yǔ)言對(duì)話用例進(jìn)行了優(yōu)化,包括代理檢索和摘要任務(wù),性能參數(shù)如下圖所示。

Llama3.2官方正式支持的語(yǔ)言包括英語(yǔ)、德語(yǔ)、法語(yǔ)、意大利語(yǔ)、葡萄牙語(yǔ)、印地語(yǔ)、西班牙語(yǔ)和泰語(yǔ)。
請(qǐng)讀者用下面的命令把Llama-3.2-1B-Instruct模型的預(yù)訓(xùn)練權(quán)重下載到本地待用。
git clone https://www.modelscope.cn/LLM-Research/Llama-3.2-1B-Instruct.git
1.2算力魔方簡(jiǎn)介
算力魔方是一款可以DIY的迷你主機(jī),采用了抽屜式設(shè)計(jì),后續(xù)組裝、升級(jí)、維護(hù)只需要拔插模塊。通過(guò)選擇不同算力的計(jì)算模塊,再搭配不同的 IO 模塊可以組成豐富的配置,適應(yīng)不同場(chǎng)景。
性能不夠時(shí),可以升級(jí)計(jì)算模塊提升算力;IO 接口不匹配時(shí),可以更換 IO 模塊調(diào)整功能,而無(wú)需重構(gòu)整個(gè)系統(tǒng)。
本文以下所有步驟將在帶有英特爾i7-1265U處理器的算力魔方上完成驗(yàn)證。
1.3三步完成Llama-3.2-1B-Instruct的INT4量化和本地部署
把Llama-3.2-1B-Instruct模型的預(yù)訓(xùn)練權(quán)重下載到本地后,接下來(lái)本文將依次介紹基于Optimum Intel工具將Llama-3.2-1B-Instruct進(jìn)行INT4量化,并完成本地部署。
Optimum Intel作為T(mén)ransformers和Diffusers庫(kù)與Intel提供的各種優(yōu)化工具之間的接口層,它給開(kāi)發(fā)者提供了一種簡(jiǎn)便的使用方式,讓這兩個(gè)庫(kù)能夠利用Intel針對(duì)硬件優(yōu)化的技術(shù),例如:OpenVINO、IPEX等,加速基于Transformer或Diffusion構(gòu)架的AI大模型在英特爾硬件上的推理計(jì)算性能。
Optimum Intel代碼倉(cāng)連接:https://github.com/huggingface/optimum-intel
1.3.1 第一步,搭建開(kāi)發(fā)環(huán)境
請(qǐng)下載并安裝Anaconda,然后用下面的命令創(chuàng)建并激活名為llama32的虛擬環(huán)境:
conda create -n llama32 python=3.11#創(chuàng)建虛擬環(huán)境 conda activate llama32#激活虛擬環(huán)境 python -m pip install --upgrade pip #升級(jí)pip到最新版本
然后安裝Optimum Intel和其依賴(lài)項(xiàng)OpenVINO:
pip install optimum-intel[openvino]
1.3.2 第二步,用optimum-cli對(duì)Llama-3.2-1B-Instruct模型進(jìn)行INT4量化
optimum-cli是Optimum Intel自帶的跨平臺(tái)命令行工具,可以不用編寫(xiě)量化代碼,實(shí)現(xiàn)對(duì)Llama-3.2-1B-Instruct模型的量化。
執(zhí)行命令將Llama-3.2-1B-Instruct模型量化為INT4 OpenVINO格式模型:
optimum-cli export openvino --model D:llama3Meta-Llama-3-8B --task text-generation-with-past --weight-format int4 --group-size 128 --ratio 0.8 --sym llama3_int4_ov_model

1.3.3第三步:編寫(xiě)推理程序llama3_2_int4_ov_infer.py
基于Optimum Intel工具包的API函數(shù)編寫(xiě)Llama3的推理程序,非常簡(jiǎn)單,只需要調(diào)用五個(gè)API函數(shù):
編譯并載入Llama-3.2模型到指定DEVICE:OVModelForCausalLM.from_pretrained()
實(shí)例化Llama-3.2模型的Tokenizer:tok=AutoTokenizer.from_pretrained()
將自然語(yǔ)言轉(zhuǎn)換為T(mén)oken序列:tok(question, return_tensors="pt", **{})
生成答案的Token序列:ov_model.generate()
將答案Token序列解碼為自然語(yǔ)言:tok.batch_decode()
完整范例程序如下所示,下載鏈接:git clone
https://gitee.com/Pauntech/llama3.git
import openvino as ov
from transformers import AutoConfig, AutoTokenizer
from optimum.intel.openvino import OVModelForCausalLM
ov_config = {"PERFORMANCE_HINT": "LATENCY", "NUM_STREAMS": "1", "CACHE_DIR": ""}
model_dir = "d:\llama3_2_1B_int4" #llama3.2 1B int4模型路徑
DEVICE = "CPU" #可更換為"GPU", "AUTO"...
# 編譯并載入Llama3.2模型到指定DEVICE
ov_model = OVModelForCausalLM.from_pretrained(
model_dir,
device=DEVICE,
ov_config=ov_config,
config=AutoConfig.from_pretrained(model_dir, trust_remote_code=True),
trust_remote_code=True,
)
# 實(shí)例化Llama3.2模型的Tokenizer
tok = AutoTokenizer.from_pretrained(model_dir, trust_remote_code=True)
# 設(shè)置問(wèn)題
question = "What's the OpenVINO?"
# 將自然語(yǔ)言轉(zhuǎn)換為T(mén)oken序列
input_tokens = tok(question, return_tensors="pt", **{})
# 生成答案的Token序列
answer = ov_model.generate(**input_tokens, max_new_tokens=128)
# 將答案Token序列解碼為自然語(yǔ)言
print(tok.batch_decode(answer, skip_special_tokens=True)[0])
運(yùn)行l(wèi)lama3_2_int4_ov_infer.py:
python llama3_2_int4_ov_infer.py
運(yùn)行結(jié)果,如下所示:

1.4總結(jié)
Optimum Intel工具包簡(jiǎn)單易用,僅需三步即可完成開(kāi)發(fā)環(huán)境搭建、Llama-3.2-1B-Instruct模型INT4量化和推理程序開(kāi)發(fā)?;贠ptimum Intel工具包開(kāi)發(fā)Llama3推理程序僅需調(diào)用五個(gè)API函數(shù),方便快捷的實(shí)現(xiàn)將Llama-3.2-1B-Instruct本地化部署在基于英特爾處理器的算力魔方上。
-
模型
+關(guān)注
關(guān)注
1文章
3749瀏覽量
52091 -
Meta
+關(guān)注
關(guān)注
0文章
322瀏覽量
12450 -
算力
+關(guān)注
關(guān)注
2文章
1526瀏覽量
16737 -
OpenVINO
+關(guān)注
關(guān)注
0文章
118瀏覽量
767
原文標(biāo)題:三步完成Llama3.2在算力魔方的INT4量化和部署|開(kāi)發(fā)者實(shí)戰(zhàn)
文章出處:【微信號(hào):英特爾物聯(lián)網(wǎng),微信公眾號(hào):英特爾物聯(lián)網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
使用 NPU 插件對(duì)量化的 Llama 3.1 8b 模型進(jìn)行推理時(shí)出現(xiàn)“從 __Int64 轉(zhuǎn)換為無(wú)符號(hào) int 的錯(cuò)誤”,怎么解決?
【CIE全國(guó)RISC-V創(chuàng)新應(yīng)用大賽】基于 K1 AI CPU 的大模型部署落地
介紹在STM32cubeIDE上部署AI模型的系列教程
使用OpenVINO?在算力魔方上加速stable diffusion模型
在OpenNCC上部署人臉檢測(cè)模型
NNCF壓縮與量化YOLOv8模型與OpenVINO部署測(cè)試
Optimum Intel三步完成Llama3在算力魔方的本地量化和部署
Meta發(fā)布Llama 3.2量化版模型
用Ollama輕松搞定Llama 3.2 Vision模型本地部署
使用NVIDIA TensorRT提升Llama 3.2性能
C#中使用OpenVINO?:輕松集成AI模型!
基于算力魔方與PP-OCRv5的OpenVINO智能文檔識(shí)別方案
使用OpenVINO 2024.4在算力魔方上部署Llama-3.2-1B-Instruct模型
評(píng)論