作者:王一凡,英特尔边缘计算创新大使
1.1 Phi-3-mini模型简介
2024年4月23日,微软研究院公布Phi-3系列AI大模型,包含三个版本:mini(3.8B参数)、**all(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
1.2 英特尔® 酷睿™ Ultra处理器简介
英特尔® 酷睿™ Ultra系列处理器是英特尔公司于2023年6月推出的一个高端处理器系列,其第一代产品代号为Meteor Lake。这款处理器标志着英特尔在处理器设计上的重大革新,它采用了先进的Intel 4制造工艺(先前称为7nm),并利用了EUV(极紫外光刻)技术,这带来了显著的性能提升和能效优化。
英特尔®酷睿™ Ultra系列处理器内置CPU、锐炫™GPU和NPU,非常适合在端侧运行AI大模型。本文将在英特尔®酷睿™ Ultra 7 155H处理器上完成验证。
1.3 搭建开发环境
首先,请下载并安装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
1.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
1.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
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
下载sample视频并运行,链接:phi3.mp4 。
1.6 总结
Phi-3模型是微软公司新近推出的一系列小型语言模型(SLM),旨在以更小的规模实现与大型语言模型(LLM)相媲美的性能,特别是在语言处理、推理、编码和数学基准测试方面;英特尔® 酷睿™ Ultra系列处理器是英特尔公司新近推出高端处理器,相对前代有显著的AI性能提升和能效优化;二者相互结合,使得广大的端侧设备都能受益于日益先进的AI技术。