最近一段时间,开源大模型deepseek火的很,笔者也进行了本地部署尝试,但是,在部署过程中查询到的部署教程,99.99%都需要进行联网处理,尤其是一些开源库和open-webui等内容。
经过一段时间的尝试,笔者终于在完全离线的情况下部署好了deepseek R1 32B的模型,采用的服务器配置如下:
CPU:2 x Intel(R) Xeon(R) Gold 6248R CPU @ 3.00GHz
内存:1TB
硬盘:Netapp 存储/本地sata ssd
显卡:Nvidia Telsa A40 48GB显存
一、预先准备
1、各类已经下载的离线的工具例如下表
名称 | 功能 | 版本 |
Cuda | nvidia显卡驱动 | 550.144.03,笔者安装的525 |
ollama | 运行大模型的工具 | 0.5.7 |
epel | 第三方源 | centos7 |
python与pip | python与源 | 3.11.11,必须是3.11版本 |
deepseek-model | 模型 | R1-32B |
2、准备一台可以联网的linux电脑或者虚拟机,要求如下
名称 | 要求 |
CPU | 主流CPU即可 |
内存 | 不小于8G |
硬盘 | 剩余必须大于30G |
3、你要准备的部署服务器的配置
名称 | 要求 |
CPU | 主流CPU即可 |
内存 | 32G以上最好 |
硬盘 | 剩余不小于100G最好 |
网络 | 百兆以上网络 |
GPU | 24G显存以上GPU,笔者部署后显存占用22G |
4、笔者已经整理好的一些工具的下载地址:
链接: https://pan.baidu.com/s/14C79t0RhtBlatvvF_7w3Bg?pwd=pygv 提取码: pygv
二、安装准备
1、上传iso并配置为本地yum源
安装前先将网盘中的epel上传到服务器并配置成本地iso
文件名为:centos7-epel.iso
上传后,新建一个目录
mkdir -p /opt/epel/ mount -o loop /xxx/xxx/centos7-epel.iso /opt/epel/
配置epel为本地yum源
touch /etc/yum.repos.d/epel.repo vim /etc/yum.repos.d/epel.repo
填写内容如下:
[epel] name=epel baseurl=file:///opt/epel/ gpgcheck=0 enable=1
保存
yum clean all yum repolist yum makecache
执行以上命令清理并重新配置缓存信息
2、安装cuda与驱动(驱动无需单独安装)
上传网盘下载的文件。
vulkan-filesystem-1.1.97.0-1.el7.noarch.rpm 这是一个cuda需要的第三方库,epel中没有
nvidia-driver-local-repo-rhel7-550.144.03-1.0-1.x86_64.rpm
安装rpm文件
rpm -ivh vulkan-filesystem-1.1.97.0-1.el7.noarch.rpm rpm -ivh nvidia-driver-local-repo-rhel7-550.144.03-1.0-1.x86_64.rpm
安装好之后,会自动配置一个本地的cuda yum源
可以通过如下命令安装cuda与驱动
yum search cuda Loaded plugins: langpacks, nvidia, product-id, search-disabled-repos, subscription-manager This system is not registered with an entitlement server. You can use subscription-manager to register. ================================================================== N/S matched: cuda ================================================================== cuda-compat-12-0.x86_64 : CUDA Compatibility Platform cuda-drivers.x86_64 : CUDA Driver meta-package nvidia-driver-branch-525-cuda.x86_64 : CUDA integration for nvidia-driver-branch-525 nvidia-driver-branch-525-cuda-libs.x86_64 : Libraries for nvidia-driver-branch-525-cuda nvidia-driver-latest-cuda.x86_64 : CUDA integration for nvidia-driver-latest nvidia-driver-latest-cuda-libs.x86_64 : Libraries for nvidia-driver-latest-cuda nvidia-driver-latest-dkms-cuda.x86_64 : CUDA integration for nvidia-driver-latest-dkms nvidia-driver-latest-dkms-cuda-libs.x86_64 : Libraries for nvidia-driver-latest-dkms-cuda cuda-drivers-fabricmanager.x86_64 : Meta-package for FM and Driver cuda-drivers-fabricmanager-525.x86_64 : Meta-package for FM and Driver
通过 yum search cuda ,我们可以看到
cuda-drivers.x86_64
那么直接
yum install cuda-drivers.x86_64
即可安装,安装后执行如下命令即可看到GPU、驱动、cuda等详细信息
nvidia-smi
因为笔者安装的是525版本的驱动,因此看到的是525版本的信息,如下:
3、安装ollama
下载百度盘中文件,其中
install.sh ollama-linux-amd64.tgz
两个文件是ollama的离线安装文件
将两个文件放在同一个目录,赋予install.sh执行权限之后运行即可
chmod u+x install.sh ./install.sh
安装好之后,执行如下命令,可以看到ollama的安装版本则表示安装成功
ollama serve ollama -v ollama version is 0.5.7
ollama与docker类似。可以通过--help来查看帮助,这里不多介绍
4、安装ffmpeg,open-webui需要
将ffmpeg安装包传输到部署服务器ffmpeg-5.1.tar.gz
解压安装
tar zcvf ffmpeg-5.1.tar.gz cd ffmpeg-5.1 ./configure --disable-x86asm make -j 40 make install
三、下载模型
由于是离线安装,无法联网,因此也无法通过部署服务器直接下载模型
这时候,我们需要使用可以联网的linux设备下载模型,也可以使用笔者的链接提供的下载好的模型文件
deepseek-r1-32b-models.tar.gz
1、如何自己下载模型(在可联网的机器上)
先修改ollama的存储位置,编辑下面的文件
vim /etc/systemd/system/ollama.service
在[Service]参数项中增加下面一行,具体目录可以自己定义,笔者使用的是/opt/ai/models
Environment="OLLAMA_MODELS=/opt/ai/models"
将models目录设置属主,必须做,否则ollama无法启动
chown ollama:ollama /opt/ai/models -R
重新加载配置文件并重启ollama
systemctl daemon-reload systemctl restart ollama
然后通过
ollama run deepseek-r1:32b
下载模型,在进度条走完后,模型下载完成,存储在/opt/ai/models目录中
打包models目录,并将整个目录迁移到部署的服务器即可
2、如何使用笔者提供的已经下载的模型,同时也是1的延续
在离线部署服务器上,修改ollama的service文件指定models目录
笔者使用了和下载服务器相同的目录
Environment="OLLAMA_MODELS=/opt/ai/models"
将models打包文件传输过来,解压覆盖
ollama list
即可看到模型
这时候,使用如下命令即可运行模型
ollama run deepseek-r1:32b
运行命令后处于terminal状态,可直接提问,模型会反馈对应结果
四、使用open-webui支持deepseek图形界面及便捷访问
1、python
必须使用3.11版本,如果使用其他版本,则会出现安装缺包的问题
2、pip
如果有本地pip源最好,如果没有,可使用笔者提供的已经下载好的whl文件
open-webui-whl-offline.tar.gz
至于如何本地安装这些whl文件,请自行百度。这里不多介绍
3、安装好open-webui之后配置环境变量
export OLLAMA_BASE_URL=http://127.0.0.1:11434 export OPENAI_API_BASE_URL=None export OPENAI_API_KEY=None
以上三个环境变量的意思分别是
设置本地ollama的接口,将openai的一些配置取消,因为是离线模式,无法连接openai,切记设置,否则open-webui很容易白屏
4、启动open-webui
如果你在安装python 3.11的版本的时候,将python 3.11的bin目录配置到了PATH中,则 open-webui可直接执行,否则需要到python 3.11 的bin目录下查找到open-webui的二进制文件
启动open-webui
open-webui serve
需要等。笔者也不是很清楚,等了大概一分钟才启动成功,大概率还是没联网的问题
看到如下info信息,则表示open-webui启动成功
通过浏览器访问(前提是防火墙要允许8080端口)
http://你的部署服务器的IP:8080 即可访问
至此,部署完成
网友留言:
Requires: libwayland-client.so.0()(64bit)
Error: Package: 3:nvidia-settings-550.144.03-1.el7.x86_64 (nvidia-driver-local-rhel7-550.144.03)
Requires: libvdpau(x86-64) ˃= 0.9
Error: Package: dkms-3.0.12-1.el7.noarch (epel)
Requires: elfutils-libelf-devel
Error: Package: 3:nvidia-driver-latest-libs-550.144.03-1.el7.x86_64 (nvidia-driver-local-rhel7-550.144.03)
Requires: libvdpau(x86-64) ˃= 0.5;为什么跟着一步一步来的会提示缺少依赖哇0-0
1、上传iso并配置为本地yum源 亲,您缺少了这一步