作者:
武卓 博士 英特尔 OpenVINO 布道师
随着大语言模型的广泛应用,模型的计算需求大幅提升,带来推理时延高、资源消耗大等挑战。vLLM 作为高效的大模型推理框架,通过 OpenVINO 的优化,vLLM 用户不仅能够更高效地部署大模型,还能提升吞吐量和处理能力,从而在成本、性能和易用性上获得最佳平衡。这种优化对于需要快速响应和节省资源的云端或边缘推理应用尤为重要。目前,OpenVINO 最新版本 OpenVINO 2024.4 中已经支持与 vLLM 框架的集成,只需要一步安装,一步配置,就能够以零代码修改的方式,将 OpenVINO 作为推理后端,在运行 vLLM 对大语言模型的推理时获得推理加速。
01vLLM 简介
vLLM 是由加州大学伯克利分校开发的开源框架,专门用于高效实现大语言模型(LLMs)的推理和部署。它具有以下优势:
高性能:相比 HuggingFace Transformers 库,vLLM 能提升多达24倍的吞吐量。
易于使用:无需对模型架构进行任何修改即可实现高性能推理。
低成本:vLLM 的出现使得大模型的部署更加经济实惠。
02一步安装:搭建 vLLM+OpenVINO 阿里云ECS开发环境
下面我们以在阿里云的免费云服务器 ECS 上运行通义千问 Qwen2.5 模型为例,详细介绍如何通过简单的两步,轻松实现 OpenVINO 对 vLLM 大语言模型推理服务的加速。
在阿里云上申请免费的云服务器 ECS 资源,并选择 Ubuntu22.04 作为操作系统。
接着进行远程连接后,登录到终端操作界面。
请按照以下步骤配置开发环境:
1. 更新系统并安装 Python 3 及虚拟环境:
sudo apt-get update -y sudo apt-get install python3 python3.10-venv -y
2. 建立并激活 Python 虚拟环境:
python3 -m venv vllm_env source vllm_env/bin/activate
3. 克隆 vLLM 代码仓库并安装依赖项:
git clone https://github.com/vllm-project/vllm.git cd vllm pip install --upgrade pippip install -r requirements-build.txt --extra-index-url https://download.pytorch.org/whl/cpu
4. 安装 vLLM 的 OpenVINO 后端:
PIP_EXTRA_INDEX_URL="https://download.pytorch.org/whl/cpu" VLLM_TARGET_DEVICE=openvino python -m pip install -v .
至此,环境搭建完毕。
03魔搭社区大语言模型下载
接下来,去魔搭社区下载最新的通义千问2.5系列大语言模型,这里以 Qwen2.5-0.5B-Instruct 模型的下载为例。
模型下载地址为:
https://www.modelscope.cn/models/Qwen/Qwen2.5-0.5B-Instruct
魔搭社区为开发者提供了多种模型下载的方式,这里我们以“命令行下载“方式为例。
首先用以下命令安装 modelscope:
pip install modelscope
接着运行以下命令完成模型下载:
modelscope download --model Qwen/Qwen2.5-0.5B-Instruct
下载后的模型,默认存放在以下路径中:
/root/.cache/modelscope/hub/Qwen/Qwen2___5-0___5B-Instruct
本次运行的推理脚本,我们以 vllm 仓库中 examples 文件夹中的 offline_inference.py 推理脚本为例。由于 vLLM 默认的脚本是从 Hugging Face 平台上直接下载模型,而由于网络连接限制无法从该平台直接下载模型,因此我们采用上面的方式将模型从魔搭社区中下载下来,接下来使用以下命令,修改脚本中第14行,将原脚本中的模型名称“"facebook/opt-125m"”替换为下载后存放Qwen2.5模型的文件夹路径”
/root/.cache/modelscope/hub/Qwen/Qwen2___5-0___5B-Instruct“即可,效果如下图所示。
04一步配置:配置并运行推理脚本
接下来,在运行推理脚本,完成 LLMs 推理之前,我们再针对 OpenVINO 作为推理后端,进行一些优化的配置。使用如下命令进行配置:
export VLLM_OPENVINO_KVCACHE_SPACE=1 export VLLM_OPENVINO_CPU_KV_CACHE_PRECISION=u8 export VLLM_OPENVINO_ENABLE_QUANTIZED_WEIGHTS=ON
VLLM_OPENVINO_KVCACHE_SPACE:用于指定键值缓存(KV Cache)的大小(例如,VLLM_OPENVINO_KVCACHE_SPACE=100 表示为 KV 缓存分配 100 GB 空间)。较大的设置可以让 vLLM 支持更多并发请求。由于本文运行在阿里云的免费 ECS 上空间有限,因此本次示例中我们将该值设置为1。实际使用中,该参数应根据用户的硬件配置和内存管理方式进行设置。
VLLM_OPENVINO_CPU_KV_CACHE_PRECISION=u8:用于控制 KV 缓存的精度。默认情况下,会根据平台选择使用 FP16 或 BF16 精度。
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 使用 OpenVINO 后端运行大语言模型推理的效果,运行命令如下:
python offline_inference.py
除了运行以上配置,可以利用 OpenVINO 在 CPU 上轻松实现 vLLM 对大语言模型推理加速外,也可以利用如下配置在英特尔集成显卡和独立显卡等 GPU 设备上获取 vLLM 对大语言模型推理加速。
export VLLM_OPENVINO_DEVICE=GPU export VLLM_OPENVINO_ENABLE_QUANTIZED_WEIGHTS=ON
05结论
通过在 vLLM 中集成 OpenVINO 优化,用户能够显著提升大语言模型的推理效率,减少延迟并提高资源利用率。简单的配置步骤即可实现推理加速,使得在阿里云等平台上大规模并发请求的处理变得更加高效和经济。OpenVINO 的优化让用户在保持高性能的同时降低部署成本,为 AI 模型的实时应用和扩展提供了强有力的支持。
-
英特尔
+关注
关注
61文章
9941浏览量
171677 -
大模型
+关注
关注
2文章
2407浏览量
2622 -
OpenVINO
+关注
关注
0文章
92浏览量
195
原文标题:开发者实战|一步安装,一步配置:用 vLLM + OpenVINO™ 轻松加速大语言模型推理
文章出处:【微信号:英特尔物联网,微信公众号:英特尔物联网】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论