【大模型】大模型推理部署工具之vLLM的使用(1)

大模型推理部署工具之vLLM系列文章:

前言

首先介绍一下vLLM是什么?

vLLM 是一个快速且易用的用于 LLM 推理和服务的库。vLLM最初由UC Berkeley的Sky Computing Lab 开发,现已发展成为一个由学术界和工业界共同贡献的社区驱动项目。

vLLM 的速度很快,因为它具有以下几个特点:

  • 最先进的服务吞吐量
  • 使用 PagedAttention 对注意力键和值内存进行高效管理
  • 对传入请求进行连续批处理
  • 使用 CUDA/HIP 图进行快速模型执行
  • 量化:GPTQ、AWQ、INT4、INT8 和 FP8
  • 优化的 CUDA 内核,包括与 FlashAttention 和 FlashInfer 的集成。
  • 推测解码
  • 分块预填充

一、vLLM的使用

1.1 安装方式

  • Linux环境基于pip安装
pip install vllm

注意:为了提高性能,vLLM 必须编译许多 CUDA 内核。不幸的是,编译会引入与其他 CUDA 版本和 PyTorch 版本的二进制不兼容性,即使对于具有不同构建配置的相同 PyTorch 版本也是如此。

因此,建议使用 全新的conda环境 安装vLLM。如果你使用的是不同版本的CUDA,或者想要使用现有的PyTorch安装,你需要从源代码构建vLLM。请参阅以下说明。

  • 推荐用 全新的conda环境 来安装vLLM,不然很可能出现PyTorch 版本不兼容的情况,出现报错。
  • 整个vllm库的安装时间比较长,需要耐心等待。
  • 基于源代码构建
git clone https://github.com/vllm-project/vllm.git
cd vllm
pip install -e .  # This may take 5-10 minutes.

1.2 离线批处理推理(Offline Inference)

这里我们以 GLM-4-9BGLM-4-9B-Chat 模型为例,来具体讲解如何使用vLLM进行推理及部署。

GLM-4-9B 官方Github地址:https://github.com/THUDM/GLM-4
官方提供了两种快速调用的方式:使用 transformers 后端进行推理使用 vLLM 后端进行推理。本篇博客主要关注 使用 vLLM 后端进行推理 的方式。

(1)vLLM官方示例

参照vLLM官方示例,这里我们以 GLM-4-9B 基础版本 为例,给出了vLLM的推理方式,实现代码如下:

主要过程为:

  1. 从 vLLM 导入 LLM 和 SamplingParams 类。LLM 类是使用 vLLM 引擎进行离线推理的主要类。SamplingParams 类指定了采样过程的参数。

  2. 调用 llm.generate 生成输出。它将输入提示添加到 vLLM 引擎的等待队列中,并执行 vLLM 引擎以高吞吐量生成输出。

  3. 输出以 RequestOutput 对象列表的形式返回,其中包含所有输出标记。

示例代码如下:

from transformers import AutoTokenizer
from vllm import LLM, SamplingParams

prompts = [
    "Hello, my name is",
    "The president of the United States is",
    "The capital of France is",
    "The future of AI is",
]
sampling_params = SamplingParams(temperature=0.8
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值