大模型私有化部署实践(二):vLLM 分布式推理与性能优化前置
AI大模型入门
于 2025-01-25 13:45:00 发布
阅读量1.7k 收藏 29
点赞数 11 文章标签: 分布式 性能优化 人工智能 深度学习 大数据 算法 版权 前置 前文提到大模型私有化部署实践(一):从零开始的 Ollama 部署,在私有化部署中,如果需要快速验证模型效果,Ollama 是一个不错的选择。然而,当面对生产环境的需求,尤其是在显卡资源有限或需要多机多卡协同的场景下,Ollama 就显得力不从心了。这时,vLLM 的优势便得以凸显,成为更合适的选择。 vllm简介 vLLM 是一个高性能、易扩展的大模型推理框架,专为生产环境中的大规模语言模型部署而设计。它通过创新的 PagedAttention 内存管理技术,显著提升了 GPU 的显存利用率,同时支持分布式推理,能够高效利用多机多卡资源。无论是低延迟、高吞吐的在线服务,还是资源受限的边缘部署场景,vLLM 都能提供卓越的性能表现。其简洁的 API 设计和灵活的部署方式,使得开发者能够快速集成并优化大模型推理任务,是私有化部署中不可或缺的利器。 vllm官方中文文档 vllm实践 前置安装,如果conda和nvidia驱动都安装好了可跳过这步 查看没有激活conda环境下python版本 python3 --version 我的是Python 3.10.12
1 2 3 安装nvidia驱动 这里注意如果需要deepspeed分布式环境后面还需要升级版本,当前配置可用于vllm分布式部署 先禁用nouveau echo -e "blacklist nouveau\noptions nouveau modeset=0" | sudo tee /etc/modprobe.d/blacklist-nouveau.conf
sudo update-initramfs -u
sudo reboot
1 2 3 4 5 6 无输出就说明成功了 lsmod | grep nouveau
1 2 执行如下命令
./nvidia.run
reboot
1 2 3 4 5 6 nvidia-smi显示如下就成功了
安装工具包, 然后执行看版本的命令能输出就成功了
apt install nvidia-cuda-toolkit
nvcc --version
1 2 3 4 安装conda 安装依赖包 apt install libgl1-mesa-glx libegl1-mesa libxrandr2 libxrandr2 libxss1 libxcursor1 libxcomposite1 libasound2 libxi6 libxtst6
1 2 下载anaconda, bash之后然后一路回车
chmod +x Anaconda3-2022.10-Linux-x86_64.sh
bash Anaconda3-2022.10-Linux-x86_64.sh
1 2 3 4 5 6 加环境变量 export PATH=~/anaconda3/bin PATH
source ~/anaconda3/bin/activate
source ~/.bashrc
1 2 3 4 5 6 测试下 conda list
1 2 vllm安装 快速安装vllm conda create -n vllm python=3.10 -y
conda activate vllm
pip install vllm
1 2 3 4 5 6 或者使用源码安装
cd vllm
pip install -e .
1 2 3 4 5 6 vllm实践 下载模型 export HF_ENDPOINT=https://hf-mirror.com
pip install modelscope
1 2 3 4 使用modelscope下载并缓存到/usr/local,模型地址可以改成你想要下载的 import torch from modelscope import snapshot_download, AutoModel, AutoTokenizer import os
from modelscope.hub.api import HubApi api = HubApi() # 有的地方需要,key在 modelscope.cn/models 右上角个人那边 # api.login('xxx你的账号对应的key')
model_dir = snapshot_download('Qwen/Qwen2.5-72B-Instruct-AWQ', cache_dir='/usr/local',revision='master') print(model_dir)
1 2 3 4 5 6 7 8 9 10 11 12 使用vllm推理 这边使用的是vllm的openai进行推理, 用的是Qwen2.5-72B-Instruct-AWQ,两张A10即可跑起来,如果跑别的模型可以改改, 注意这里显存有限,又要跑那么大模型,我就把模型tokenizer_config.json的max-model-len从几万改到6666了,后台启动, --model改成你自己存放大模型的地址,max-model-len看个人需求,我的conda vllm个人环境是设置的vllm conda activate vllm
export HF_ENDPOINT=https://hf-mirror.com
nohup python -m vllm.entrypoints.openai.api_server \ --model /root/.cache/huggingface/hub/models/Qwen/Qwen2-72B-Instruct-AWQ/snapshots/26975fbe12cda45e38c0b99da62f1a7deab1bf25 \ --tensor-parallel-size 2 \ --host 0.0.0.0 \ --port 5000 \ --served-model-name Qwen/Qwen-72B-AWQ \ --cpu-offload-gb 5.0 \ --quantization awq \ --max-model-len 6666 \ --gpu-memory-utilization 0.9 \ & >> out1.log 2>&1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|