【CUDA】如何在 windows 上安装 Ollama 3 + open webui (docker + WSL 2 + ...

鼠扑  金牌会员 | 2024-8-13 20:06:49 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 701|帖子 701|积分 2103

由于踩了不少坑,花了相称多的时间与精力,特地记载一下整个流程,能帮到一位算一位。
如果还是有我未涉及到的坑,请务必在下面留言批评。
  

1. 环境准备与整体过程概述

1.1 环境准备

由于篇幅缘故原由,这里假设大家已经安装好如下底子环境:


  • windows 10 / 11 操作体系(64位);
  • docker-desktop 最新版(为了制止一些没须要遇到的坑,请尽量保持能更新到最新版)。
  • WSL 2, 确保勾选Hyper-V、虚拟机平台、Linux子体系, 安装与设置也比较简朴,请自行安装好这个环境;
  • 在windows 体系中,安装好 NVIDIA 驱动,就是平凡的那种驱动即可,通过此驱动可以配置分辨率等等。
重要增补:本博文仅仅介绍安装好 nvidia 30系列 与 40系列显卡的个人电脑。


  • 如果个人电脑未安装显卡,无法完成以下介绍的各个步调;但是基于 CPU 也同样可以部署,方法简朴,不在此文介绍范围内;
  • 如果个人电脑安装的不是 nvidia 显卡或者显卡的版本不在30系列与40系列内,不在本文讨论范围内。
1.2 步调概述


  • 基于 WSL2 安装子体系,安装好 Ubuntu 子体系;
  • 在子体系 WSL2 中安装好 Nvidia 驱动;
  • 配置windows下的 docker-desktop,让 WSL2 作为 docker 的 backend;
  • 重启一下设备,确保 WSL2 与 windows 下的 docker 已经连通无误;
  • 安装镜像,验证docker镜像能通过WSL2以及WSL2下安装的驱动,利用显卡;
  • 安装 Ollama3 + open webui 的 docker 镜像,验证可以正常利用;
  • 基于 open webui 安装 Ollama3 模子,验证可以正常利用GPU。
  • 重启一下验证无误,万事大吉 !
温馨提示: 整个过程可能遇到类似于网络超等慢,安装过程忽然中断,安装docker镜像时PULL时间超等漫长等等题目。请务必耐烦处置惩罚一个一个题目,不要杂电脑与键盘另有鼠标(自画像),因为它们都是无辜的(狗头)。
2. 安装子体系以及子体系下的显卡驱动

2.1 验证 WSL2 安装无误

打开 windows 的下令行,输入如下下令:
  1. wsl --version
复制代码
请确保 WSL 版本 >= 2.x 。

2.2 安装子体系 ubuntu

   这个地方需要注意,有可能docker安装了子体系(识别到 wsl 环境可能会默认安装子体系),如图所示:

这样我们可以利用已经安装好的子体系,也可以考虑利用本身安装的 ubuntu 体系。
  输入以下下令安装子体系:
  1. wsl --update
复制代码
接着输入
  1. wsl --install
复制代码
验证过程
  1. wsl --list
复制代码

利用ubuntu体系
在本身的windows 体系下找到 ubuntu 体系,双击后会进入一个下令行窗口


2.3 安装显卡驱动(离线安装包的方法)

特别要注意,我们不要在子体系中安装 docker ,切记切记

   参考地址:https://docs.nvidia.com/cuda/wsl-user-guide/index.html
  请在 WSL2 下令行中,输入如下下令,删除已有的一些库文件:
  1. 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 控制台中输入如下下令(根据实际环境修改):
  1. # 根据自己的下载文件的路径操作。需要修改如下命令
  2. ls /mnt/c/Users/MSN/Downloads/cuda*
复制代码

找到路径以后,copy 一份到我们的 WSL2 的路径下,便于操作。在 WSL2 控制台中输入如下下令(根据实际环境修改):
  1. # 根据实际情况修改
  2. cp /mnt/c/Users/MSN/Downloads/cuda_12.5.1_555.42.06_linux.run ~
复制代码

复制完成以后,接着就可以安装我们的显卡驱动。需要根据实际驱动版本型号修改,在 WSL2 下令行中输入:
  1. sudo sh cuda_12.5.1_555.42.06_linux.run
复制代码

实行以后,如果你遇到错误提示如下:

说明需要安装 gcc ,在 WSL2 中实行下令如下:
  1. sudo apt-get install gcc
复制代码

然后重新实行上面的安装驱动的下令(sudo sh cuda_12.5.1_555.42.06_linux.run),会发现提示如下:



此时已经证明我们安装驱动完成 。
2.4 配置环境变量

编辑 WSL2 的 ~/.bashrc 添加环境变量就像安装完驱动控制台输出内容一样(官方的发起)

我们利用 vi 下令编辑 .bashrc 文件,写入环境变量如下:
  1. export PATH=/usr/local/cuda-12.5/bin:$PATH
  2. export LD_LIBRARY_PATH=/usr/local/cuda-12.5/lib64:$LD_LIBRARY_PATH
复制代码

   vi 的下令不熟悉,可以利用 vim 等等其他下令。
  末了一个步调是我们需要激活环境变量:
  1. source ~/.bashrc
复制代码
验证方法
输入
  1. echo LD_LIBRARY_PATH
复制代码
将会打印我们上面配置的环境变量地址。
输入 nvidia-smi

  1. nvidia-smi
复制代码
会输出显卡的相干信息
输入 nvcc -V

  1. nvcc -V
复制代码
会输出 nvidia cuda 驱动相干信息
三个过程请都验证一下,制止以后出现乱七八遭的题目

2.5 配置 docker-desktop 与 WSL2 密切绑定

配置方法比较简朴,请参考如下截图:



配置完成以后,一般环境下 windows下的docker 会重新启动,确保重启正常完成。
2.6 基于docker 安装 cuda-sample 验证 cuda 可用

之所以不直接安装 open webui ,是因为代价有点大,如果docker镜像不能正常访问GPU,那么添加 open webui 过程太浪费时间了。
在 WSL2 下令行中,输入内容如下:
  1. sudo docker run --gpus all nvcr.io/nvidia/k8s/cuda-sample:nbody nbody -gpu -benchmark
复制代码
安装完成以后,我们需要注意,在windows 的 docker-desktop 中查看启动日志。

请特别注意,日志中包括 CUDA 的相干内容,足够证明 docker 镜像中能利用 CUDA,也就是能利用GPU。


2.7 安装 open webui + ollama3

这里我们不分别安装两次了,我们利用官方提供了的方法,一个镜像包括了 open webui 与 ollama3,更加方便。
在 WSL2 的下令行中输入如下下令:
  1. 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 端口,可以看到内容如下,

注册一个账号,非常简朴,没有什么限定

注册登录后,通过设置可以利用中文,结果如下:

2.8 添加模子与选择模子


点击 管理员设置 以后,找到 模子 ,输入模子的编号即可自动下载模子。

这里以 qwen2 为例


下载的过程比较漫长,我们可以去洗个澡,吃个饭,玩会儿手机,看会儿书,扫除家里卫生,吃点零食,喝点茶,逗逗宠物,洗洗衣服,伸伸懒腰,踢踢腿,打打拳,做一套广播体操。

接着回到主界面,我们可以下拉 “选择一个模子”,如下图所示(我总共下载了三个模子)

接着就可以正常谈天了 ~

2.9 验证大模子推断过程是基于GPU完成

在 windows 下,利用快捷键 Ctrl + Shift + Esc ,弹出如下 使命管理器窗口,接着选择左边导航栏中的 性能 可以看到如下内容:

接着我们在 open webui 中输入一个相对复杂的对话,让大模子推断时间久一些,然后同时观察 刚刚打开的窗口中 GPU 的变化环境。

2.10 验证重启后,模子依然存在

重启一下我们的个人电脑,重新启动我们前面创建的 container ,可以看到模子依然存在,之前完成的内容并不会因此而失效。
3. 参考资料



  • https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&Distribution=WSL-Ubuntu&target_version=2.0&target_type=runfile_local
  • https://docs.nvidia.com/cuda/wsl-user-guide/index.html
  • https://github.com/open-webui/open-webui/tree/main
4. 总结

本文记载了本身安装部署 Ollama3 + open webui 并基于GPU推断的整个过程,由于篇幅题目,没有办法将所有我遇到的题目都记载下来,但可以基本确定的是,按照如上步调完成部署安装,一般环境下是可以正常运行的。
感谢小伙伴们点赞支持 ~
   Smileyan
2024.07.13 23:01

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

鼠扑

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表