【vllm/瞎折腾】在内网wsl上安装vllm并尝试多节点部署(失败了)
目录
- 说在前面
- miniconda安装
- 外网创建虚拟环境
- 创建节点一的虚拟环境
- 创建节点二的虚拟环境
- 内网配置环境
- 配置节点一的环境
- 配置节点二的环境
- vllm多节点配置
- 节点一(主节点)配置
- 节点二配置
- 部署LLM(失败)
- 补充:wsl2设置ulimit
- 补充:wsl安装libcuda
- 补充:wsl2端口绑定
- 问题
- 吐槽
说在前面
- 操作系统(外网):win11 wsl2
- miniconda版本:25.1.1 (该版本的python版本为3.12.9)
- 操作系统(内网节点一):win10 wsl 4060ti 16g
- 操作系统(内网节点二):win10 wsl 2070s 8g
- 其他:llama.cpp它不香吗,折腾这个?
miniconda安装
- 官网
- 安装
# 最好到用户目录下创建文件夹 cd ~ # 创建一个目录 mkdir miniconda3 cd miniconda3 # 下载安装脚本 wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O .miniconda.sh bash miniconda.sh -b -u -p .
- 创建虚拟环境
conda create -n vllm conda activate vllm
- 注意不要在
base
环境中直接安装vllm
外网创建虚拟环境
创建节点一的虚拟环境
- 由于
ray
的集群需要保持ray
版本以及python
版本一致,而节点二的机器比较老,所以这里选择的python
版本为3.10 - 创建虚拟环境
conda create -n vllm1 python=3.10 conda activate vllm1 pip install vllm
- 节点一的cuda环境比较新,为12.x,所以直接安装vllm即可
- 安装完后,使用
conda-pack
打包pip install conda-pack conda-pack
- 注意,这里安装的
ray
版本为2.44.1
- 注意不要在
base
环境中打包
创建节点二的虚拟环境
- 创建虚拟环境
conda create -n vllm2 python=3.10 conda activate vllm2
- 节点二的cuda版本为11.x,需要指定版本安装
export VLLM_VERSION=0.6.1.post1 export PYTHON_VERSION=310 pip install https://github.com/vllm-project/vllm/releases/download/v${VLLM_VERSION}/vllm-${VLLM_VERSION}+cu118-cp${PYTHON_VERSION}-cp${PYTHON_VERSION}-manylinux1_x86_64.whl --extra-index-url https://download.pytorch.org/whl/cu118
- 这样安装后的
ray
版本为2.44.0
,与节点一不一致,要升个级pip install --upgrade ray==2.44.1
- 同样,安装完后,使用
conda-pack
打包pip install conda-pack conda-pack
- 注意不要在
base
环境中打包
内网配置环境
配置节点一的环境
- 导入打包后的虚拟环境到内网
- 解压
mkdir vllm tar -xzf vllm1.tar.gz -C vllm
- 激活虚拟环境
source vllm/bin/activate
- 还原虚拟环境
conda-unpack
配置节点二的环境
- 操作与上一步一致
vllm多节点配置
节点一(主节点)配置
- 先进入虚拟环境
conda activate vllm
- 确定本机IP
hostname -I xxx.xxx.xxx.xxx
- 启用ray
VLLM_HOST_IP=xxx.xxx.xxx.xxx ray start --head --block --port 6379 --num-gpus=1 --resources='{"node:{xxx.xxx.xxx.xxx}":1}' # num-gpus 表示本节点的gpu数量 折腾过程中有次填了个2 直接一堆奇奇怪怪的问题
节点二配置
- 先进入虚拟环境
conda activate vllm
- 确定本机IP
hostname -I yyy.yyy.yyy.yyy
- 启用ray
VLLM_HOST_IP=yyy.yyy.yyy.yyy ray start --block --address xxx.xxx.xxx.xxx:6379 --num-gpus=1 --resources='{"node:{yyy.yyy.yyy.yyy}":1}'
部署LLM(失败)
- 惨遭滑铁卢,以下可忽略,不是主要原因
- wsl不支持
SO_REUSADDR
,而ray的cluster通信用的是grpc
- 相关issue1
- 相关issue2
- 不过看样子好像ray解决了这个问题
- wsl不支持
- 可能还是wsl2的网络设置有问题,两边访问不到一块
补充:wsl2设置ulimit
- 编辑
/etc/security/limits.conf
sudo vi /etc/security/limits.conf
- 添加以下内容
* soft nofile 65535 * hard nofile 65535
- 重新su一下
su 用户名 # 输入密码 ulimit -n
补充:wsl安装libcuda
-
正常来讲,新版的显卡驱动默认支持wsl2
-
如果是老版本的,可能需要自己手动安装下,下载页
不要选错了(装完windows版本的发现还是不行,吐血三升) -
例如
wget https://developer.download.nvidia.com/compute/cuda/11.2.0/local_installers/cuda_11.2.0_460.27.04_linux.run sudo sh cuda_11.2.0_460.27.04_linux.run
补充:wsl2端口绑定
- 这里
问题
- 在创建环境
conda --no-plugins create -n vllm python=3.10
时出现OSError: [Errno 40] Too many levels of symbolic links:
miniconda
安装的时候不要安装在/mnt
目录下,安装到/home/user
下 - 在安装
vllm
时出现PermissionError: [Errno 13] Permission denied:
同上,miniconda
安装的时候不要安装在/mnt
目录下,安装到/home/user
下 libcuda.so.1: cannot open shared object file: no such file or directory
cuda tookit
没有安装,去官网选择对应版本安装
注意,windows主机上如果安装了最新的显卡驱动,那么正常来讲就会在/usr/lib/wsl/lib
下生成对应的libcuda.so
,但是,重点来了,必须先装显卡驱动,再安装linux发行版本- 遇到一堆
ray
的问题,大部分和自己的配置有关,所以vllm
上的教程直接让用docker
,真难折腾- [Installation]: pynvml.NVMLError_InvalidArgument: Invalid Argument
- error helper for TypeError: _extractNVMLErrorsAsClasses…gen_new…new() takes 1 positional argument but 2 were given
- Error: No available node types can fulfill resource request
吐槽
vllm
多节点真不好用,不像llama.cpp
那样开箱即用,主要依赖ray
,这个东东真的一言难尽
原文地址:https://blog.csdn.net/qq_33446100/article/details/146571891
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mrgr.cn/news/96365.html 如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mrgr.cn/news/96365.html 如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!