开发者实战丨用 OpenVINO™ + vLLM 在 酷睿™ Ultra 处理器上部署大语言模型(LLMs)...

点击蓝字

关注我们,让开发变得更有趣

作者 | 虞晓琼 博士 东莞职业技术学院

OpenVINO™

vLLM 简介

vLLM 是一个由加州大学伯克利分校开发的用于快速实现的大语言模型 (LLMs) 推理和部署的开源框架,其优点有:

  • 高性能:实验结果显示,相比于最流行的 LLM 库 HuggingFace Transformers (HF),vLLM 能够提供高达 24 倍的吞吐量提升。

  • 易于使用:vLLM 不需要对模型架构进行任何修改就能实现高性能的推理。

  • 低成本:vLLM 的出现使得大规模语言模型的部署变得更加经济实惠。

当前,vLLM已支持OpenVINO™ 后端:https://docs.vllm.ai/en/stable/

b9b3663fcfbd63402fcdd4c6c5da9929.png

OpenVINO™

搭建 OpenVINO™ +vLLM 开发环境

当前 vLLM 仅支持 Linux 操作系统,本文推荐安装 Ubuntu22.04 LTS 操作系统。若您的 AIPC 笔记本上已经安装了 Windows,可以在 Windows 上使用 WSL2 安装 Ubuntu22.04 LTS,参见:

https://learn.microsoft.com/zhcn/windows/wsl/install

安装好 Ubuntu22.04 LTS 后,请升级 apt 工具,然后安装 Python3,建立并激活虚拟环境 vllm_ov,和升级 pip 工具。

sudo apt-get update  -y
sudo apt-get install python3
sudo apt install 
python3.10-venvpython3 -m venv vllm_ov
source vllm_ov/bin/activate

c0ed6cecb6feabff4b68909f290d5be0.png

搭建好虚拟环境后,请将 vllm 代码仓克隆到本地,然后安装依赖项:

git clone https://github.com/vllm-project/vllm.git
cd vllm
pip install -r requirements-build.txt --extra-index-url https://download.pytorch.org/whl/cpu

8857126226d863b55d8cf12cfbab4cf4.png

最后,安装以 OpenVINO™ 为后端的 vLLM:

PIP_EXTRA_INDEX_URL="https://download.pytorch.org/whl/cpu https://storage.openvinotoolkit.org/simple/wheels/pre-release" VLLM_TARGET_DEVICE=openvino python -m pip install -v .

9b07f15461228373feda87d22cb18f4c.png

到此,OpenVINO™+vLLM 开发环境搭建完毕。

OpenVINO™

英特尔® 酷睿™ Ultra 处理器简介

英特尔® 酷睿™ Ultra 处理器内置 CPU+GPU+NPU 的三大 AI 引擎,赋能 AI 大模型在不联网的终端设备上进行推理计算。

e634b83f5d56d9bfe0963ed7557e2c3a.png

OpenVINO™

用 vLLM 实现大模型推理计算

带 OpenVINO™ 后端的 vLLM 使用以下环境变量来控制行为:

  • VLLM_OPENVINO_KVCACHE_SPACE:用于指定键值缓存(KV Cache)的大小。例如,设置 VLLM_OPENVINO_KVCACHE_SPACE=40 表示为 KV 缓存分配 40 GB 的空间。较大的设置可以让 vLLM 支持更多的并发请求。此参数应该根据硬件配置和用户的内存管理方式来设定。

  • VLLM_OPENVINO_CPU_KV_CACHE_PRECISION:用于控制 KV 缓存的精度。默认情况下,根据平台的不同,会使用 FP16 或 BF16 精度。可以通过设置 VLLM_OPENVINO_CPU_KV_CACHE_PRECISION=u8 来使用 u8(无符号 8 位整数)精度。

  • VLLM_OPENVINO_ENABLE_QUANTIZED_WEIGHTS:用于启用模型加载阶段的 U8 权重压缩。默认情况下,权重压缩是关闭的。通过设置 VLLM_OPENVINO_ENABLE_QUANTIZED_WEIGHTS=ON 来开启权重压缩。

为了提高 TPOT(Token Processing Over Time)和 TTFT(Time To First Token)的延迟性能,可以使用 vLLM 的分块预填充功能 (--enable-chunked-prefill)。根据实验结果,推荐的批处理大小是 256 (--max-num-batched-tokens=256)。

默认情况下,vLLM 会从 HuggingFace 下载模型。若您习惯从 Hugging Face 下载模型,则可以在设置完环境变量后,直接运行 vllm 自带的范例程序:vllm/examples/offline_inference.py 即可。

export VLLM_OPENVINO_KVCACHE_SPACE=40 
export VLLM_OPENVINO_CPU_KV_CACHE_PRECISION=u8 
export VLLM_OPENVINO_ENABLE_QUANTIZED_WEIGHTS=ON
python3 vllm/examples/offline_inference.py

offline_inference.py 完整代码,如下所示:

3a4b8bca860f8f2772dca7ee3f4fa8a6.png

如果您希望使用 ModelScope 中的模型,请先查阅带 OpenVINO™  后端的 vLLM 支持的大语言模型列表如下所示:

https://docs.vllm.ai/en/stable/models/supported_models.html

然后从 ModelScope 下载,例如:下载 Phi-3-mini-4k-instruct 模型,请先到 ModelScope 中找到该模型的页面:https://www.modelscope.cn/models/LLM-Research/Phi-3-mini-4k-instruct,然后使用模型页面给出的命令下载模型。

b8c795e0549a775af579194903c15f3f.png

最后,把 offline_inference.py 程序中第14行的模型路径改为 Phi-3-mini-4k-instruct 模型的本地路径,如下图所示,然后运行即可。

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

f94ba783d5a655973735565c3d91305a.png

export VLLM_OPENVINO_KVCACHE_SPACE=40 
export VLLM_OPENVINO_CPU_KV_CACHE_PRECISION=u8 
export VLLM_OPENVINO_ENABLE_QUANTIZED_WEIGHTS=ON 
python3 vllm/examples/offline_inference.py

9ca9492228aa3c0b195498a30333fcb7.png

OpenVINO™

总结

带 OpenVINO™ 后端的 vLLM 易学易用,很容易把在已支持模型列表中的 AI 大模型本地化部署在 英特尔® 酷睿™ Ultra 处理器上。

OpenVINO™

👇欢迎在留言区与我们互动哦,

点击小程序 留言区 即可参与

---------------------------------------

*OpenVINO and the OpenVINO logo are trademarks of Intel Corporation or its subsidiaries.

-----------------------------

 OpenVINO 中文社区 

微信号 : openvinodev

B站:OpenVINO中文社区

“开放、开源、共创”

致力于通过定期举办线上与线下的沙龙、动手实践及开发者交流大会等活动,促进人工智能开发者之间的交流学习。

○ 点击 “ 在看 ”,让更多人看见

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值