操作系统和显卡/nvlink
服务器的系统采用Ubuntu22.04
显卡驱动选择“使用 NVIDIA driver metapackage 来自 nvidia-driver-535(专有)”
在nvidia setting里面可以看到显卡的信息
在终端输入命令也可以查看显卡的信息
nvidia-smi
或者
nvidia-smi --loop 1
查看nvlink的工作状态,如果有显示异常的信息可以将nvlink拔下来重新插一下:
nvidia-smi nvlink --status
硬件优化
打开终端并编辑/etc/rc.local
文件:
sudo vim /etc/rc.local
将下面的内容粘贴到文件里面
#!/bin/sh -e /usr/bin/nvidia-smi -pm 1 /usr/bin/nvidia-smi -lgc 1400 /usr/bin/nvidia-smi -pl 200 exit 0
按“ESC”键,输入“:wq”保存并退出编辑模式
为文件赋予执行权限:
sudo chmod +x /etc/rc.local
这样可以每次开机的时候自动执行上面的文件中的3行命令,确保计算机的稳定性,以稳定显卡的功耗。忽视这一步骤可能会导致由于功耗波动过大而引起计算机重启。执行上述命令后,显卡的功耗将保持在当前状态,从而避免不必要的波动。这有助于提高系统的稳定性,特别是在运行资源密集的推理任务时。
*******(下面的这些内容不是正常步骤中的内容)********
如果在修改/etc/rc.local
文件后导致Ubuntu无法正常启动,我们可以通过以下步骤进行修复:
步骤一:进入恢复模式
- 重启计算机。
- 在启动时按住
Shift
键,直到出现Grub菜单。 - 在Grub菜单中,选择
Advanced options for Ubuntu
。 - 选择带有
(recovery mode)
的内核版本进入恢复模式。
步骤二:修复或者删除/etc/rc.local
文件
- 选择
root
选项进入单用户模式,你将进入一个命令行环境。 - 挂载根文件系统为读写模式:
mount -o remount,rw /
修复/etc/rc.local
文件:
vim /etc/rc.local
或删除/etc/rc.local
文件:
rm -r /etc/rc.local
步骤三:退出编辑器并重新启动系统
reboot
安装CUDA
官方地址:https://developer.nvidia.com/cuda-downloads
只需要执行Base Installer中的步骤即可!
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb sudo dpkg -i cuda-keyring_1.1-1_all.deb sudo apt-get update sudo apt-get -y install cuda-toolkit-12-5
安装miniconda
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh bash Miniconda3-latest-Linux-x86_64.sh
第二行命令输入之后,要一直按着“Enter”键阅读完它全部的license,直到出现了提示输入“yes”和“no”的输入框提示
我们直接输入“yes”进行确认!然后会然我们选择安装的路径,一般情况下我们直接按“Enter”键确认即可!
询问是否要初始化,直接输入“yes”确认
看到“Thank you…”就标志着安装完成了!
安装vllm
由于我们上面已经安装了miniconda3,我们可以直接用conda来创建虚拟环境了!
# 创建名为vllm的Python 3.10环境,并自动确认(-y) conda create -n vllm python=3.10 -y # 激活名为vllm的环境 conda activate vllm # 在激活的环境中,通过清华大学的镜像源安装vllm包 pip install vllm -i https://pypi.tuna.tsinghua.edu.cn/simple
* 如果已经安装过vllm,请保持vllm为最新版本,否则可能会出现某些报错,更新命令如下:
pip install --upgrade transformers vllm
以后运行只需要重新激活vllm虚拟环境即可!
conda activate vllm
vllm启动参考命令
python3 -m vllm.entrypoints.openai.api_server \ --model /media/arthur/新加卷/LLM/Qwen1.5-110B-Chat-GPTQ-Int4 \ #这个是模型的路径,支持中文名称 --served-model Qwen1.5-110B-Chat-GPTQ-Int4 \ #这个是模型的名称,在oneapi中要填写这个名称“Qwen1.5-110B-Chat-GPTQ-Int4”,这个名称可以自定义; --dtype float16 \ --tensor-parallel-size 4 \ #这个是显卡数量,我这里是4块显卡就填4 --quantization gptq \ #这个是量化的方法,可以是gptq、awq等,根据模型的实际情况填写 --trust-remote-code \ --gpu-memory-utilization 0.98 \ #这个是显存占用比例 --host=0.0.0.0 --port=8001 \ --max-model-len 8000 \ --max-num-seqs 2
实测中4张定制版的22G 2080ti可以流程运行“Qwen1.5-110B-Chat-GPTQ-Int4”,速度大概是23tokens/秒,这个速度是可以接收的!
四张显卡都可以满负荷工作,工作时候的电源在120W左右!
在测试中我通过局域网调用api的方式调用该服务器的api来进行翻译,800字大约耗时19秒,平均42字/秒
其他案例:
python3 -m vllm.entrypoints.openai.api_server \ --model /media/arthur/新加卷/LLM/Qwen1.5-72B-Chat-AWQ \ --served-model Qwen1.5-72B-Chat-AWQ \ --dtype float16 \ --tensor-parallel-size 4 \ --quantization awq \ --trust-remote-code \ --gpu-memory-utilization 0.98 \ --host=0.0.0.0 --port=8001 \ --max-model-len 15000 \ --max-num-seqs 2
参考文章
AI大模型本地化部署Q/A本地大模型部署篇(https://www.bilibili.com/read/cv33373992/?from=readlist)
原创文章,作者:朋远方,如若转载,请注明出处:https://caovan.com/4zhangdingzhiban22g-2080ti-dajianaifuwuqi-yongvllmkuangjiapaoqwen15-110bmoxingfeichangsihua/.html