本文主要介绍如何在Linux环境下部署和安装Qwen 1.5 72B版本,包括安装VLLM(一个大型语言模型库)及其依赖项,特别是CUDA和cudnn。
此外,还将介绍如何通过Openai API服务的方式启动Qwen 72B模型,并进行硬件配置和并发访问测试的步骤。
准备工作
在开始之前,确保你的系统已经安装了Anaconda,以便创建隔离的Python环境。
安装过程
- 创建conda虚拟环境
使用conda create的方式创建conda虚拟环境。
conda create -n vllm2 python=3.10
conda activate vllm2
下载CUDA 12.1安装包(cuda_12.1.1_530.30.02_linux.run)进行纯离线安装。
下载CUDNN 8.9.7 (cudnn-linux-x86_64-8.9.7.29_cuda12-archive.tar.xz)并安装(解压后,拷贝.h和.so文件到对应的cuda目录即可)。
如果系统中已存在多个版本的CUDA,需要正确配置环境变量PATH、LD_LIBRARY_PATH和CUDA_HOME,以指向CUDA 12.1的安装路径。这些配置可添加至~/.bashrc文件中。
export PATH=/usr/local/cuda-12.1/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-12.1/lib64:/home/health/anaconda3/lib:$LD_LIBRARY_PATH
export CUDA_HOME=/usr/local/cuda-12.1
- 安装PyTorch 2.1.2
为了确保兼容性,使用下列命令安装指定版本的PyTorch、TorchVision和TorchAudio。
pip install torch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 --index-url https://download.pytorch.org/whl/cu121
- pip install VLLM
可以直接使用命令安装。
pip install vllm
ModelScope是一个重要的组件,用于模型的管理和优化。使用以下命令安装:
pip install modelscope
为了让vllm从modelscope下载模型,还需要配置一下环境变量,可以配置在~/.bashrc中。
export VLLM_USE_MODELSCOPE=True
启动QWen 72B模型
在完成所有必要的安装后,你可以通过以下命令启动Qwen 1.5 72B模型,该命令将以OpenAI API服务的形式运行模型,使用了modelscope的模型,所以在第一次启动时会从modelscope中下载,会需要比较长的时间,建议使用screen的方式挂在后台执行:
python3 -m vllm.entrypoints.openai.api_server --model Qwen/Qwen1.5-72B-Chat-AWQ --max-model-len 16000 --quantization awq --dtype half --tensor-parallel-size 4 --gpu-memory-utilization 0.99 --enforce-eager --swap-space 16 --max-num-batched-tokens 16000
硬件说明和并发访问测试
我们使用了4张NVIDIA GeForce RTX 3090显卡,没有使用NVLink桥接。
为了获取系统的并发能力,我们开发了一个简单的并发测试脚本,通过该脚本进行并发测试。
从图中可以看出,单线程的吞吐量为10左右,但是随着并发数量增加,单线程吞吐量也在降低,当并发数量为32时,单线程吞吐量降低到8左右,总体来说3090跑Qwen 72B模型基本可以接受,而且并发数量控制在16左右即可,32 个并发后单线程吞吐量下降比较多。
另外需要指出的是目前VLLM支持最大上下文总量为16K,而Qwen可以到32K,所以这点比较遗憾。
还有VLLM为了获取高性能,会预先占用大量GPU的显存(可以通过参数设置gpu-memory-utilization),因此,如果有别的应用也要使用GPU资源,最好和VLLM区分开来。
测试过2卡3090的情况,不过由于模型仅仅可以加载进去,设置的上下文长度只有900左右,只能基本跑起来,无法实际使用。
3卡3090目前VLLM无法支持,涉及到要修改一个head token的参数。
下一个目标会测试一下fastllm对于72B的支持。
本文暂时没有评论,来添加一个吧(●'◡'●)