在英特尔酷睿Ultra7处理器上优化和部署Phi-3-min模型

描述

作者:王一凡

英特尔边缘计算创新大使

1Phi-3-mini模型简介

2024年4月23日,微软研究院公布Phi-3系列AI大模型,包含三个版本:mini(3.8B参数)、small(7B参数)以及medium(14B参数)。phi-3-mini是一个拥有3.8B参数规模的模型,其训练数据集基于Phi-2所使用数据集的扩大版本,由大量过滤后的网络数据和合成数据组成,经过3.3T tokens的训练,表现可以与Mixtral 8x7B和GPT-3.5等模型相媲美(例如,phi-3-mini在MMLU测试中达到了69%的准确率,在MT-bench上的得分为8.38)。

英特尔

请用下面的命令把Llama3-Chinese-8B-Instruct模型的预训练权重下载到本地待用。

 

git clone https://www.modelscope.cn/LLM-Research/Phi-3-mini-128k-instruct.git

 

2英特尔 酷睿 Ultra处理器简介

英特尔 酷睿 Ultra系列处理器是英特尔公司于2023年6月推出的一个高端处理器系列,其第一代产品代号为Meteor Lake。这款处理器标志着英特尔在处理器设计上的重大革新,它采用了先进的Intel 4制造工艺(先前称为7nm),并利用了EUV(极紫外光刻)技术,这带来了显著的性能提升和能效优化。

英特尔 酷睿 Ultra系列处理器内置CPU、锐炫 GPU和NPU,非常适合在端侧运行AI大模型。本文将在英特尔酷睿 Ultra 7 155H处理器上完成验证。

3搭建开发环境

首先,在https://www.anaconda.com/download下载并安装Anaconda,然后创建并激活名为phi3的虚拟环境:

 

conda create -n phi3 python=3.11  #创建虚拟环境
conda activate phi3                #激活虚拟环境
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

 

最后,安装构建WebUI的工具包:

 

pip install gradio mdtex2html streamlit

 

4对Phi-3-mini-4k-instruct模型进行INT4量化

optimum-cli是Optimum Intel自带的跨平台命令行工具,可以不用编写量化代码,实现对Phi-3-mini-4k-instruct模型的量化。

执行命令将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推理程序的关键代码,如下所示,主要实现载入Phi-3模型和对应的分词器,然后将提示词Token化后输入模型,最后解码模型生成的Token序列。

完整代码请参考:https://github.com/WangAria/OpenVINO/blob/main/phi3_webui.py

 

model_dir = "C:\Users\ASUS\phi3_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, 结果如下:

 

python phi3_webui.py

 

英特尔

6总结

Phi-3模型是微软公司新近推出的一系列小型语言模型(SLM),旨在以更小的规模实现与大型语言模型(LLM)相媲美的性能,特别是在语言处理、推理、编码和数学基准测试方面;英特尔 酷睿 Ultra系列处理器是英特尔公司新近推出高端处理器,相对前代有显著的AI性能提升和能效优化;二者相互结合,使得广大的端侧设备都能受益于日益先进的AI技术。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分