使用vLLM进行Qwen2.5-VL推理的一些坑


本文主要是记录一下笔者在使用vLLM进行Qwen2.5-VL推理时踩的一些坑,希望大家不要重蹈我的覆辙。

推理代码不是我写的,所以不方便公开,大家可以自己找对应的代码~

一些debug

给vLLM重配环境

如果要使用vLLM,最好重新开一个环境给vLLM用,pytorch啥的版本都要高一些,据说是2.4以上。就不要偷懒直接用之前的旧环境了~

# 创建conda环境
conda create -n vLLM python=3.10 -y

# 激活conda环境
conda activate vLLM

# 安装pytorch
conda install pytorch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 pytorch-cuda=12.1 -c pytorch -c nvidia

我的版本是:py310cu12torch2.5

附带说一句:后面安装vLLM时似乎会覆盖掉这里的torch版本,改成2.6.0,但不影响后续跑代码,所以这里就没改了
大家如果担心后续的版本问题,可以这里就直接装torch 2.6.0版本的,flash-attn也找对应版本装,问题不大

接下来需要安装Qwen环境,装对应的flash-attn版本,以及flash infer版本

flash-attn

到官网找对应版本,这里是教程参考链接:[已解决] flash-attn报错flash_attn_2_cuda.cpython-310-x86_64-linux-gnu.so: undefined symbol-CSDN博客

我下的whl文件链接如下
flash_attn-2.7.4.post1+cu12torch2.5cxx11abiFALSE-cp310-cp310-linux_x86_64.whl

这么下载即可

# 进入资源下载路径
cd 你的路径

# 下载对应的whl文件,这个到官网找匹配版本即可
wget https://github.com/Dao-AILab/flash-attention/releases/download/v2.7.4.post1/flash_attn-2.7.4.post1+cu12torch2.5cxx11abiFALSE-cp310-cp310-linux_x86_64.whl 

# 然后安装即可
pip install whl文件的路径

flash infer

参考链接:vllm 优化:flashinfer问题 – OddMeta

pip install flashinfer-python==0.2.2

Qwen

如果是Qwen推理,还需要装一些库

安装transformers

pip install transformers -U

下载工具

pip install modelscope

脚本依赖

pip install accelerate>=0.26.0

安装qwen_vl_utils库来加速模型推理:

pip install qwen-vl-utils

整合起来就是

pip install transformers -U modelscope accelerate>=0.26.0 qwen-vl-utils

jupyter notebook

还要安装ipynb的相关库,VS Code会自己安装,等一下就好了

vLLM

乐,装完上面的还要记得装vLLM

pip install vllm

然后似乎vllm的安装直接把之前很多版本都覆盖了,torch啥的,改成了2.6.0,问题不大

decord

还要安装decord库,用于快速抽帧:Decord 全面指南:视频处理利器-CSDN博客

pip install decord

关于max_seq_len的报错

可能会爆KV cache,直接改LLM里面传入的max_model_len即可,这个传进去就是对应的max_seq_len了

先写到这,后续遇到问题再补充

关于多头注意力的头数报错

Pytorch 为什么在MultiheadAttention中嵌入维度必须能够被头数整除|极客教程

AssertionError: 3420 is not divisible by 8

设置头数刚好被整除即可,大概是设置num_processes吧,笔者还没搞懂,先挖个坑

参考链接

[已解决] flash-attn报错flash_attn_2_cuda.cpython-310-x86_64-linux-gnu.so: undefined symbol-CSDN博客
vllm 优化:flashinfer问题 – OddMeta

Decord 全面指南:视频处理利器-CSDN博客
Pytorch 为什么在MultiheadAttention中嵌入维度必须能够被头数整除|极客教程

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值