再也不用切环境了,wsl2安装运行vllm指南
千文发布了多模态模型 Qwen2.5-VL模型 想要在本地尝试一下 ,一般这种模型还是推荐在linux系统上进行尝试,win上经常会碰到莫名奇妙的坑,虽然机器上有win+ubuntu双系统 但总是切来切去很蛮烦 而且大部分文件都存在win上,所以又捡起了几年千试过的wsl(当时安装时还是wsl刚推出,安装cuda 又没官方文档只有几个帖子最后还是失败了) 这次安装下来发现 和丝滑,在不追求性能下是个好东西
wsl
wsl 全称 Windows Subsystem for Linux 可用于在 Windows 计算机上运行 Linux 环境 主要有两个版本wsl1 和wsl2 主要区别是wsl还是在win上运行linux系统 wsl2则是使用了hyperivisor技术,linux内核和window内核都是运行在hyperivisor上的
wsl1 和wsl2之间的区别
本次因为要使用到gpu 需要使用底层的硬件,所以需要安装wsl2,wsl2运行在hyperivisor 所以可以完美支持docker 也可以运行nvidia-docker 切换各个cuda版本
步骤
1.首页要开机时进bios 开启虚拟化
2. 安装wsl2及相关配置
wsl --install
设置用户及密码
sudo passwd root //设置root密码
3.安装cuda 环境 查看是否有nvida驱动
nvidia-smi.exe
或者
nvidia-smi
安装cuda
这边选择的版本是cuda12.4 cudnn是 8.9.7
由于是在wsl上上安装 选择wsl版本
-cuda12.4下载地址
之后按指示
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda-repo-wsl-ubuntu-12-4-local_12.4.0-1_amd64.deb
sudo dpkg -i cuda-repo-wsl-ubuntu-12-4-local_12.4.0-1_amd64.deb
sudo cp /var/cuda-repo-wsl-ubuntu-12-4-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda-toolkit-12-4
再安装cudnn -cudnn下载地址
sudo cp cudnn-linux-x86_64-8.9.7.29_cuda12-archive/include/cudnn*.h /usr/local/cuda/include
sudo cp -P cudnn-linux-x86_64-8.9.7.29_cuda12-archive/lib/libcudnn* /usr/local/cuda/lib64/
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
4.安装 conda 并设置清华源
wget https://repo.anaconda.com/archive/Anaconda3-2024.02-1-Linux-x86_64.sh
bash Anaconda3-2024.02-1-Linux-x86_64.sh
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda config --set show_channel_urls yes
然后顺便把pip的源也换了
pip config set global.index-url https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
5. 设置魔法 要能下载huggingface 上的模型 必然要使用魔法 宿主机使用clash使用魔法端口为7890 并开启,局域网代理, 由于win对于wsl在网络层面处理不是很优雅,导致wsl2的ip 并不是局域网的ip 需要修改~/.bash
export hostip=$(cat /etc/resolv.conf |grep -oP '(?<=nameserver\ ).*')
export https_proxy="http://${hostip}:7890"
export http_proxy="http://${hostip}:7890"
当然如果上层网络直接能使用软路由代理也是一个不错的方法 6. 宿主机pycharm 连wsl的python环境 python解析器选择wsl-> 选择conda环境->选择对应的conda env 最后小跑一个vllm例子看安装是否成功
from vllm import LLM, SamplingParams
# 推理数据以List[str]格式组织
prompts = [
"Hello, my name is",
"The president of the United States is",
"The capital of France is",
"The future of AI is",
]
# 设置采样参数
sampling_params = SamplingParams(temperature=0.8, top_p=0.95)
# 加载模型
llm = LLM(model="facebook/opt-125m")
# 执行推理
outputs = llm.generate(prompts, sampling_params)
# 输出推理结果
for output in outputs:
prompt = output.prompt
generated_text = output.outputs[0].text
print(f"Prompt: {prompt!r}, Generated text: {generated_text!r}")
当然在最后一步可能出现 代理不通 下载不了huggingface上的模型 可以在环境变量上加上 我们的代理地址
最后欢迎关注我的公众号