赞
踩
由于踩了不少坑,花了相当多的时间与精力,特地记录一下整个流程,能帮到一位算一位。
如果还是有我未涉及到的坑,请务必在下面留言评论。
由于篇幅原因,这里假设大家已经安装好如下基础环境:
重要补充:本博文仅仅介绍安装好 nvidia 30系列 与 40系列显卡的个人电脑。
温馨提示: 整个过程可能遇到类似于网络超级慢,安装过程突然中断,安装docker镜像时PULL时间超级漫长等等问题。请务必耐心处理一个一个问题,不要杂电脑与键盘还有鼠标(自画像),因为它们都是无辜的(狗头)。
打开 windows 的命令行,输入如下命令:
wsl --version
请确保 WSL 版本 >= 2.x 。
输入以下命令安装子系统:
wsl --update
接着输入
wsl --install
验证过程
wsl --list
使用ubuntu系统
在自己的windows 系统下找到 ubuntu 系统,双击后会进入一个命令行窗口
特别要注意,我们不要在子系统中安装 docker ,切记切记
请在 WSL2 命令行中
,输入如下命令,删除已有的一些库文件:
sudo apt-key del 7fa2af80
windows 系统浏览器下载离线驱动包
由于我多次尝试,发现网络问题使用在线安装很容易很容易报错(我是真的真的没成功过),所以这里我们使用离线安装的方法。
首先 使用自己的windows系统下的浏览器,访问 nvidia 官网驱动下载地址:https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&Distribution=WSL-Ubuntu&target_version=2.0&target_type=runfile_local
因为我在 WSL2 上使用 wget
命令下载离线安装包时总是报错,所以我使用windows下的浏览器,访问这个链接,并下载这个离线包,请访问 https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&Distribution=WSL-Ubuntu&target_version=2.0&target_type=runfile_local 并根据实际情况下载 runfile
,由于版本更新问题这里不直接给下载链接了。
下载后,注意你的下载地址,我们接下来需要将这个文件挪到 WSL2 的地址,方便安装。
下载完成以后,我们执行运行这个文件,或者可以考虑 cp 到我们 WSL2 的目录下使用。
找到可执行文件的路径,一般情况下,我们原系统的C盘会被挂载到 /mnt 目录下,后面的路径就跟我们的下载路径一样了。当然,若下载的文件在D盘或者其他路径,也是同样的操作。在 WSL2 控制台中输入如下命令(根据实际情况修改
):
# 根据自己的下载文件的路径操作。需要修改如下命令
ls /mnt/c/Users/MSN/Downloads/cuda*
找到路径以后,copy 一份到我们的 WSL2 的路径下,便于操作。在 WSL2 控制台中输入如下命令(根据实际情况修改
):
# 根据实际情况修改
cp /mnt/c/Users/MSN/Downloads/cuda_12.5.1_555.42.06_linux.run ~
复制完成以后,接着就可以安装我们的显卡驱动。需要根据实际驱动版本型号修改,在 WSL2 命令行中输入:
sudo sh cuda_12.5.1_555.42.06_linux.run
执行以后,如果你遇到错误提示如下:
说明需要安装 gcc ,在 WSL2 中执行命令如下:
sudo apt-get install gcc
然后重新执行上面的安装驱动的命令(sudo sh cuda_12.5.1_555.42.06_linux.run),会发现提示如下:
此时已经证明我们安装驱动完成 。
编辑 WSL2 的 ~/.bashrc
添加环境变量就像安装完驱动控制台输出内容一样(官方的建议)
我们使用 vi
命令编辑 .bashrc
文件,写入环境变量如下:
export PATH=/usr/local/cuda-12.5/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-12.5/lib64:$LD_LIBRARY_PATH
vi 的命令不熟悉,可以使用 vim 等等其他命令。
最后一个步骤是我们需要激活环境变量:
source ~/.bashrc
验证方法
输入
echo LD_LIBRARY_PATH
将会打印我们上面配置的环境变量地址。
输入 nvidia-smi
nvidia-smi
会输出显卡的相关信息
输入 nvcc -V
nvcc -V
会输出 nvidia cuda 驱动相关信息
三个过程请都验证一下,避免以后出现乱七八遭的问题
配置方法比较简单,请参考如下截图:
配置完成以后,一般情况下 windows下的docker 会重新启动,确保重启正常完成。
之所以不直接安装 open webui ,是因为代价有点大,如果docker镜像不能正常访问GPU,那么添加 open webui 过程太浪费时间了。
在 WSL2 命令行中
,输入内容如下:
sudo docker run --gpus all nvcr.io/nvidia/k8s/cuda-sample:nbody nbody -gpu -benchmark
安装完成以后,我们需要注意,在windows
的 docker-desktop 中查看启动日志。
请特别注意,日志中包括 CUDA 的相关内容,足够证明 docker 镜像中能使用 CUDA,也就是能使用GPU。
这里我们不分别安装两次了,我们使用官方提供了的方法,一个镜像包括了 open webui 与 ollama3,更加方便。
在 WSL2 的命令行中输入如下命令:
sudo docker run -d -p 3000:8080 --gpus=all -v ollama:/root/.ollama -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:ollama
这是一个比较漫长的过程,可以去洗个澡,吃个饭,玩会儿手机,看会儿书,打扫家里卫生,吃点零食,喝点茶,逗逗宠物,洗洗衣服,伸伸懒腰,踢踢腿,打打拳,做一套广播体操。
成功安装完成以后,我们前去查看 docker 的容器启动日志:
我们可以看到日志中提示 CUDA 可用,说明一切正常,安装成功。
使用浏览器访问本地的 3000 端口,可以看到内容如下,
注册一个账号,非常简单,没有什么限制
注册登录后,通过设置可以使用中文,效果如下:
点击 管理员设置
以后,找到 模型
,输入模型的编号即可自动下载模型。
这里以 qwen2 为例
下载的过程比较漫长,我们可以去洗个澡,吃个饭,玩会儿手机,看会儿书,打扫家里卫生,吃点零食,喝点茶,逗逗宠物,洗洗衣服,伸伸懒腰,踢踢腿,打打拳,做一套广播体操。
接着回到主界面,我们可以下拉 “选择一个模型”,如下图所示(我总共下载了三个模型)
接着就可以正常聊天了 ~
在 windows 下,使用快捷键 Ctrl
+ Shift
+ Esc
,弹出如下 任务管理器窗口,接着选择左边导航栏中的 性能
可以看到如下内容:
接着我们在 open webui
中输入一个相对复杂的对话,让大模型推断时间久一些,然后同时观察 刚刚打开的窗口中 GPU
的变化情况。
重启一下我们的个人电脑,重新启动我们前面创建的 container ,可以看到模型依然存在,之前完成的内容并不会因此而失效。
本文记录了自己安装部署 Ollama3 + open webui 并基于GPU推断的整个过程,由于篇幅问题,没有办法将所有我遇到的问题都记录下来,但可以基本确定的是,按照如上步骤完成部署安装,一般情况下是可以正常运行的。
感谢小伙伴们点赞支持 ~
Smileyan
2024.07.13 23:01
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。