yyhhyy's blog

yyhhyy

VLLM简单使用

2024-04-10

VLLM简单使用

前提配置

CUDA >= 11.8

torch >= 2.1.2

我的环境:

CUDA=12.2

gpu=A800*8

model=Qwen1.5-72b-Chat | Qwen1.5-72b-Chat-GPTQ-Int4 | Qwen1.5-32b-Chat

1.安装

方式一:

直接使用pip

pip install vllm

该方法最方便,能直接把vllm所需环境和依赖都安装完成

截止到写文章日期,执行上述命令会安装torch==2.1.2 和 CUDA = 12.1的环境 并且会直接把 ncll 安装完成 非常方便

但是这边需要注意 使用 该命令 需要在 CUDA=12.1 环境下执行 否则出问题

方式二:

git clone https://github.com/vllm-project/vllm.git
cd vllm
pip install -e .

该方法体现在“追新”,能第一时间得到官方的bug修复以及特性支持(比如截止写作日期官方目前已经支持到torch 2.2.1)

该方法我在执行 pip install -e . 时会出现错误 具体是 cmake 的报错 在官方寻找相关 issue 没有得到解决

因此该方法我没测试成功

2.部署服务

需要先启动ray服务

ray start --head --port 9877
ray start --address='127.0.0.1:9877'

单卡:

python -m vllm.entrypoints.openai.api_server \
--model /data/public/Qwen1.5-32B-Chat \
--tokenizer /data/public/Qwen1.5-34B-Chat \ # 可以不写
--max-model-len 8192 \ 
--gpu-memory-utilization 0.9

多卡:

python -m vllm.entrypoints.openai.api_server \
--host 0.0.0.0 \
--port 4667 \
--served-model-name Qwen1.5-72B-Chat \
--model /data/public/Qwen1.5-72B-Chat \
--tokenizer /data/public/Qwen1.5-72B-Chat \  # 可以不写
--max-model-len 4096 \  # 这个参数有点恶心 我在72b上写8192 会卡在ray加载
--tensor-parallel-size 2 \
--gpu-memory-utilization 0.9

3.使用

使用上述方式部署的服务接口与oai接口相同,直接与oai的请求相同即可

curl http://localhost:4667/v1/chat/completions \
    -H "Content-Type: application/json" \
    -d '{
    "model": "Qwen1.5-72B-Chat",
    "messages": [
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": "Tell me something about large language models."}
    ]
    }'

4.踩过的一些坑

1.最好一开始就放下模型的路径、模型名字、几张卡这些参数信息就好,否则你可能会自我怀疑,为什么卡ray载入不动了,为什么一堆问题等等。

2.CUDA如果是11.8 需要参考官方文档 重新编译 vllm 这边就没实现了 因为没有11.8的环境

3.一定一定一定要把 ray 给起起来 不然会遇到非常非常多的bug!!!