基于vllm 0.3.0部署 llama2-70B模型

写在前面

VLLM框架升级了!

0.3.0版本,拥有更高的推理速度(实测解析input的速度+40%),支持S-LoRA(一个主模型外套多个LoRA模型),很值得升级。

本篇文章将会记录升级过程中遇到的坑爹事情

 

硬件环境

主板:PCIE 4.0 x16

GPU:8x 3090

内存: DDR4 768GB

CPU:Intel(R) Xeon(R) Gold 6330 CPU
实测中,VLLM环境下,对CPU和主板PCIE带宽的要求都较高,这两个部分尽量不要省钱。

这里和开deepspeed+ZeRO3的训练基本上表现出了一样的问题?(瓶颈不在GPU而是在PCIE带宽上)

 

环境安装

为了更好地兼容其他的环境,本次采用venv进行安装。

VLLM 0.3.0版本中,由于使用了Python 3.9的特殊语法,因此需要一个python 3.9的环境。

但是我其他的代码,都运行在python 3.8的环境中,因此,我需要先安装python 3.9

1 apt install python3.9
2 python3.9 --version
3 apt install python3.9-venv

第一行代码为安装python3.9

第二行代码为输出当前python3.9的版本(用于验证是否安装正确)

第三行为安装python3.9-venv,需要专门安装对应版本的venv环境

接着,我们安装一个所需的venv环境

1 python3.9 -m venv venv-vllm
2 venv-vllm/bin/pip install wheel
3 venv-vllm/bin/pip install vllm==0.3.0 -i https://pypi.tuna.tsinghua.edu.cn/simple

第一行代码为新建一个venv环境(python 3.9下),注意必须加3.9,不然你会得到一个3.8版本的venv

第二行为在这个venv环境中,安装wheel(一个补丁,似乎在这种情况下必须额外安装wheel,不然无法进行一些包的安装)

第三行为安装vllm,且使用清华的镜像(实测可以跑到30MB/s的下载速度)

我们就安装好了一个vllm的venv环境,且不和其他的环境冲突

 

运行代码

venv-vllm/bin/python -m vllm.entrypoints.openai.api_server \
    --model="/hy-tmp/tigerbot-70b-chat-v4-4k" \
    --tensor-parallel-size 8 \
    --served-model-name "tigerbot" \
    --chat-template /hy-tmp/tiger_template.jinja \
    --gpu-memory-utilization 0.85 \
    --host 0.0.0.0 \
    --port 8080 

大家可以来看这一篇文章,讲解了每个参数的含义,以及硬件环境:8卡3090GPU云服务器上采用VLLM部署中文llama2-70b模型及OpenAI格式接口 - AlphaInf - 博客园 (cnblogs.com)

命令整体上和之前的几乎一致,不同点主要有两点:

1. 采用了venv-vllm的环境运行

2. 额外设置了--gpu-memory-utilization 0.85的参数,这个参数默认是0.9,实测如果采用默认值会爆(bug?)

我们就可以开始运行了。

 

启用LoRA

此处未完待续

下面是一些关于LoRA的吐槽。

vllm 0.3.0似乎并没有让OpenAI接口实现LoRA,需要手动进行一些调整,documentation也并没有及时地进行更新,所以这一部分还在摸索。

个人感觉,可以学习OpenAI,通过不同的model_name来实现不同的LoRA模型的访问,甚至还可以增加动态上传LoRA adapter的机制?

挖个配置LoRA的坑,后续回来填。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章