点击蓝字
关注我们,让开发变得更有趣
作者 | 虞晓琼 博士 东莞职业技术学院
OpenVINO™
vLLM 简介
vLLM 是一个由加州大学伯克利分校开发的用于快速实现的大语言模型 (LLMs) 推理和部署的开源框架,其优点有:
高性能:实验结果显示,相比于最流行的 LLM 库 HuggingFace Transformers (HF),vLLM 能够提供高达 24 倍的吞吐量提升。
易于使用:vLLM 不需要对模型架构进行任何修改就能实现高性能的推理。
低成本:vLLM 的出现使得大规模语言模型的部署变得更加经济实惠。
当前,vLLM已支持OpenVINO™ 后端:https://docs.vllm.ai/en/stable/
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
搭建好虚拟环境后,请将 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
最后,安装以 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 .
到此,OpenVINO™+vLLM 开发环境搭建完毕。
OpenVINO™
英特尔® 酷睿™ Ultra 处理器简介
英特尔® 酷睿™ Ultra 处理器内置 CPU+GPU+NPU 的三大 AI 引擎,赋能 AI 大模型在不联网的终端设备上进行推理计算。
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 完整代码,如下所示:
如果您希望使用 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,然后使用模型页面给出的命令下载模型。
最后,把 offline_inference.py 程序中第14行的模型路径改为 Phi-3-mini-4k-instruct 模型的本地路径,如下图所示,然后运行即可。
git clone https://www.modelscope.cn/LLM-Research/Phi-3-mini-4k-instruct.git
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
OpenVINO™
总结
带 OpenVINO™ 后端的 vLLM 易学易用,很容易把在已支持模型列表中的 AI 大模型本地化部署在 英特尔® 酷睿™ Ultra 处理器上。
OpenVINO™
👇欢迎在留言区与我们互动哦,
点击小程序 留言区 即可参与
---------------------------------------
*OpenVINO and the OpenVINO logo are trademarks of Intel Corporation or its subsidiaries.
-----------------------------
OpenVINO 中文社区
微信号 : openvinodev
B站:OpenVINO中文社区
“开放、开源、共创”
致力于通过定期举办线上与线下的沙龙、动手实践及开发者交流大会等活动,促进人工智能开发者之间的交流学习。
○ 点击 “ 在看 ”,让更多人看见