作者:王一凡
英特爾邊緣計算創(chuàng)新大使
1、Phi-3-mini模型簡介
2024年4月23日,微軟研究院公布Phi-3系列AI大模型,包含三個版本:mini(3.8B參數(shù))、small(7B參數(shù))以及medium(14B參數(shù))。phi-3-mini是一個擁有3.8B參數(shù)規(guī)模的模型,其訓練數(shù)據(jù)集基于Phi-2所使用數(shù)據(jù)集的擴大版本,由大量過濾后的網(wǎng)絡數(shù)據(jù)和合成數(shù)據(jù)組成,經(jīng)過3.3T tokens的訓練,表現(xiàn)可以與Mixtral 8x7B和GPT-3.5等模型相媲美(例如,phi-3-mini在MMLU測試中達到了69%的準確率,在MT-bench上的得分為8.38)。
請用下面的命令把Llama3-Chinese-8B-Instruct模型的預訓練權(quán)重下載到本地待用。
git clone https://www.modelscope.cn/LLM-Research/Phi-3-mini-128k-instruct.git
2、英特爾? 酷睿? Ultra處理器簡介
英特爾? 酷睿? Ultra系列處理器是英特爾公司于2023年6月推出的一個高端處理器系列,其第一代產(chǎn)品代號為Meteor Lake。這款處理器標志著英特爾在處理器設計上的重大革新,它采用了先進的Intel 4制造工藝(先前稱為7nm),并利用了EUV(極紫外光刻)技術(shù),這帶來了顯著的性能提升和能效優(yōu)化。
英特爾? 酷睿??Ultra系列處理器內(nèi)置CPU、銳炫??GPU和NPU,非常適合在端側(cè)運行AI大模型。本文將在英特爾?酷睿? Ultra 7 155H處理器上完成驗證。
3、搭建開發(fā)環(huán)境
首先,在https://www.anaconda.com/download下載并安裝Anaconda,然后創(chuàng)建并激活名為phi3的虛擬環(huán)境:
conda create -n phi3 python=3.11 ?#創(chuàng)建虛擬環(huán)境
conda activate phi3 ? ? ? ? ? ? ? ?#激活虛擬環(huán)境
python -m pip install --upgrade pip ? ? ? ? ? #升級pip到最新版本
然后,安裝Optimum Intel和其依賴項OpenVINO?與NNCF:
python -m pip install "optimum-intel[openvino,nncf]"@git+https://github.com/huggingface/optimum-intel.git
最后,安裝構(gòu)建WebUI的工具包:
pip install gradio mdtex2html streamlit
4、對Phi-3-mini-4k-instruct模型進行INT4量化
optimum-cli是Optimum Intel自帶的跨平臺命令行工具,可以不用編寫量化代碼,實現(xiàn)對Phi-3-mini-4k-instruct模型的量化。
執(zhí)行命令將Phi-3-mini-4k-instruct模型量化為INT4 OpenVINO格式模型:
optimum-cli export openvino --model Phi-3-mini-4k-instruct --task text-generation-with-past --weight-format int4 --group-size 128 --ratio 0.8 --trust-remote-code phi3_ov
5、編寫Phi-3-Mini的WebUI對話程序
Phi-3-Mini推理程序的關(guān)鍵代碼,如下所示,主要實現(xiàn)載入Phi-3模型和對應的分詞器,然后將提示詞Token化后輸入模型,最后解碼模型生成的Token序列。
完整代碼請參考:https://github.com/WangAria/OpenVINO/blob/main/phi3_webui.py
model_dir = "C:UsersASUSphi3_ov" ?#Phi-3-mini-4k-instruct int4模型路徑
DEVICE = "GPU" #可更換為"CPU", "AUTO"...
# 編譯并載入Phi-3-mini-4k-instruct int4模型到指定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,
)
# 實例化Phi-3-mini-4k-instruct int4模型的Tokenizer
tok = AutoTokenizer.from_pretrained(model_dir, trust_remote_code=True)
運行phi3_webui.py, 結(jié)果如下:
python phi3_webui.py
6、總結(jié)
Phi-3模型是微軟公司新近推出的一系列小型語言模型(SLM),旨在以更小的規(guī)模實現(xiàn)與大型語言模型(LLM)相媲美的性能,特別是在語言處理、推理、編碼和數(shù)學基準測試方面;英特爾? 酷睿? Ultra系列處理器是英特爾公司新近推出高端處理器,相對前代有顯著的AI性能提升和能效優(yōu)化;二者相互結(jié)合,使得廣大的端側(cè)設備都能受益于日益先進的AI技術(shù)。