0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用vLLM+OpenVINO加速大语言模型推理

英特尔物联网 来源:英特尔物联网 2024-11-15 14:20 次阅读

作者:

武卓 博士 英特尔 OpenVINO 布道师

随着大语言模型的广泛应用,模型的计算需求大幅提升,带来推理时延高、资源消耗大等挑战。vLLM 作为高效的大模型推理框架,通过 OpenVINO 的优化,vLLM 用户不仅能够更高效地部署大模型,还能提升吞吐量和处理能力,从而在成本、性能和易用性上获得最佳平衡。这种优化对于需要快速响应和节省资源的云端或边缘推理应用尤为重要。目前,OpenVINO 最新版本 OpenVINO 2024.4 中已经支持与 vLLM 框架的集成,只需要一步安装,一步配置,就能够以零代码修改的方式,将 OpenVINO 作为推理后端,在运行 vLLM 对大语言模型的推理时获得推理加速。

15954672-9db3-11ef-93f3-92fbcf53809c.png

01vLLM 简介

vLLM 是由加州大学伯克利分校开发的开源框架,专门用于高效实现大语言模型(LLMs)的推理和部署。它具有以下优势:

高性能:相比 HuggingFace Transformers 库,vLLM 能提升多达24倍的吞吐量。

易于使用:无需对模型架构进行任何修改即可实现高性能推理。

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

02一步安装:搭建 vLLM+OpenVINO 阿里云ECS开发环境

下面我们以在阿里云的免费云服务器 ECS 上运行通义千问 Qwen2.5 模型为例,详细介绍如何通过简单的两步,轻松实现 OpenVINO 对 vLLM 大语言模型推理服务的加速。

在阿里云上申请免费的云服务器 ECS 资源,并选择 Ubuntu22.04 作为操作系统

159ee2fe-9db3-11ef-93f3-92fbcf53809c.png

接着进行远程连接后,登录到终端操作界面。

请按照以下步骤配置开发环境:

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“即可,效果如下图所示。

15c54458-9db3-11ef-93f3-92fbcf53809c.png

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™ 轻松加速大语言模型推理

文章出处:【微信号:英特尔物联网,微信公众号:英特尔物联网】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    压缩模型加速推理吗?

    位压缩和“无”配置下都运行了 115 毫秒,尽管精度有所下降。我认为将 float 网络参数压缩为 uint8_t 不仅可以节省内存,还可以加快推理速度。那么,压缩模型是否应该加速推理
    发表于 01-29 06:24

    如何在OpenVINO工具包中使用带推理引擎的blob?

    无法确定如何在OpenVINO™工具包中使用带推理引擎的 blob。
    发表于 08-15 07:17

    在AI爱克斯开发板上用OpenVINO加速YOLOv8目标检测模型

    《在 AI 爱克斯开发板上用 OpenVINO 加速 YOLOv8 分类模型》介绍了在 AI 爱克斯开发板上使用 OpenVINO 开发套件部署并测评 YOLOv8 的分类
    的头像 发表于 05-12 09:08 1306次阅读
    在AI爱克斯开发板上用<b class='flag-5'>OpenVINO</b>™<b class='flag-5'>加速</b>YOLOv8目标检测<b class='flag-5'>模型</b>

    自训练Pytorch模型使用OpenVINO™优化并部署在AI爱克斯开发板

    本文章将依次介绍如何将 Pytorch 自训练模型经过一系列变换变成 OpenVINO IR 模型形式,而后使用 OpenVINO Python API 对 IR
    的头像 发表于 05-26 10:23 915次阅读
    自训练Pytorch<b class='flag-5'>模型</b>使用<b class='flag-5'>OpenVINO</b>™优化并部署在AI爱克斯开发板

    AI爱克斯开发板上使用OpenVINO加速YOLOv8目标检测模型

    《在AI爱克斯开发板上用OpenVINO加速YOLOv8分类模型》介绍了在AI爱克斯开发板上使用OpenVINO 开发套件部署并测评YOLOv8的分类
    的头像 发表于 05-26 11:03 1234次阅读
    AI爱克斯开发板上使用<b class='flag-5'>OpenVINO</b><b class='flag-5'>加速</b>YOLOv8目标检测<b class='flag-5'>模型</b>

    如何将Pytorch自训练模型变成OpenVINO IR模型形式

    本文章将依次介绍如何将Pytorch自训练模型经过一系列变换变成OpenVINO IR模型形式,而后使用OpenVINO Python API 对IR
    的头像 发表于 06-07 09:31 1976次阅读
    如何将Pytorch自训练<b class='flag-5'>模型</b>变成<b class='flag-5'>OpenVINO</b> IR<b class='flag-5'>模型</b>形式

    OpenVINO™ C++ API编写YOLOv8-Seg实例分割模型推理程序

    本文章将介绍使用 OpenVINO 2023.0 C++ API 开发YOLOv8-Seg 实例分割(Instance Segmentation)模型的 AI 推理程序。本文 C++ 范例程序的开发环境是 Windows + V
    的头像 发表于 06-25 16:09 1572次阅读
    用<b class='flag-5'>OpenVINO</b>™ C++ API编写YOLOv8-Seg实例分割<b class='flag-5'>模型</b><b class='flag-5'>推理</b>程序

    在AI爱克斯开发板上用OpenVINO加速YOLOv8-seg实例分割模型

    《在 AI 爱克斯开发板上用 OpenVINO 加速 YOLOv8 目标检测模型》介绍了在 AI 爱克斯开发板上使用 OpenVINO 开发套件部署并测评 YOLOv8 的目标检测
    的头像 发表于 06-30 10:43 897次阅读
    在AI爱克斯开发板上用<b class='flag-5'>OpenVINO</b>™<b class='flag-5'>加速</b>YOLOv8-seg实例分割<b class='flag-5'>模型</b>

    主流大模型推理框架盘点解析

    vLLM是一个开源的大模型推理加速框架,通过PagedAttention高效地管理attention中缓存的张量,实现了比HuggingFace Transformers高14-24倍
    发表于 10-10 15:09 5211次阅读
    主流大<b class='flag-5'>模型</b><b class='flag-5'>推理</b>框架盘点解析

    基于OpenVINO Python API部署RT-DETR模型

    平台实现 OpenVINO 部署 RT-DETR 模型实现深度学习推理加速, 在本文中,我们将首先介绍基于 OpenVINO Python
    的头像 发表于 10-20 11:15 949次阅读
    基于<b class='flag-5'>OpenVINO</b> Python API部署RT-DETR<b class='flag-5'>模型</b>

    NNCF压缩与量化YOLOv8模型OpenVINO部署测试

    OpenVINO2023版本衍生出了一个新支持工具包NNCF(Neural Network Compression Framework – 神经网络压缩框架),通过对OpenVINO IR格式模型的压缩与量化更好的提升
    的头像 发表于 11-20 10:46 1597次阅读
    NNCF压缩与量化YOLOv8<b class='flag-5'>模型</b>与<b class='flag-5'>OpenVINO</b>部署测试

    如何加速语言模型推理

    的主要挑战。本文将从多个维度深入探讨如何加速语言模型推理过程,以期为相关领域的研究者和开发者提供参考。
    的头像 发表于 07-04 17:32 509次阅读

    LLM大模型推理加速的关键技术

    LLM(大型语言模型)大模型推理加速是当前人工智能领域的一个研究热点,旨在提高模型在处理复杂任务
    的头像 发表于 07-24 11:38 839次阅读

    使用OpenVINO C++在哪吒开发板上推理Transformer模型

    OpenVINO 是一个开源工具套件,用于对深度学习模型进行优化并在云端、边缘进行部署。它能在诸如生成式人工智能、视频、音频以及语言等各类应用场景中加快深度学习推理的速度,且支持来自
    的头像 发表于 10-12 09:55 317次阅读
    使用<b class='flag-5'>OpenVINO</b> C++在哪吒开发板上<b class='flag-5'>推理</b>Transformer<b class='flag-5'>模型</b>

    FPGA和ASIC在大模型推理加速中的应用

    随着现在AI的快速发展,使用FPGA和ASIC进行推理加速的研究也越来越多,从目前的市场来说,有些公司已经有了专门做推理的ASIC,像Groq的LPU,专门针对大语言
    的头像 发表于 10-29 14:12 332次阅读
    FPGA和ASIC在大<b class='flag-5'>模型</b><b class='flag-5'>推理</b><b class='flag-5'>加速</b>中的应用