目标
本次部署的目标是在本地服务器上部署DeepSeek。但是该服务不能连接外网,因此只能使用离线部署的方式。为了一次完成部署。现在云服务器上进行尝试。
云服务器部署尝试
云服务器配置
- CentOS7
- 2080Ti 11GB
安装准备
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与驱动
nvidia-smi 命令 显示cuda与驱动即可
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
或者
chown a10:a10 /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启动成功
本地服务器
本地服务器已经有CUDA了,并且是12.4,CentOS7能支持的最高版本
本地已经有ollama了。但是在部署过程中由于ollma版本低。并不支持deepseek-r1 70b模型了
所有文件上传到 /home/a10/Downloads下了
1、ollma升级
下载百度盘中文件,其中
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来查看帮助,这里不多介绍
2、deepseek模型部署
/home/a10/ 下创建 deepseek文件夹
1、上传 deepseek-r1-70b-models.tar.gz
解压文件夹
2、修改ollama配置文件
vim /etc/systemd/system/ollama.service
修改Environment=“OLLAMA_MODELS=/home/a10/deepseek/models”
[Unit]
Description=Ollama Service
After=network-online.target
[Service]
ExecStart=/usr/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
Environment="OLLAMA_HOST=0.0.0.0:11434"
Environment="OLLAMA_MODELS=/home/a10/deepseek/models"
Environment="OLLAMA_KEEP_ALIVE=-1"
Environment="CUDA_VISIBLE_DEVICES=0,1,2,3,4,5"
#Environment="CUDA_VISIBLE_DEVICES=0,1,2,3"
[Install]
WantedBy=default.target
将models目录设置属主,必须做,否则ollama无法启动
chown a10:a10 /home/a10/deepseek/models -R
重新加载配置文件并重启ollama
systemctl daemon-reload
systemctl restart ollama
查看 deepseek模型是否存在
ollama list
存在,运行即可
ollama run deepseek-r1:70b
运行命令后处于terminal状态,可直接提问,模型会反馈对应结果
ollama 可以通过 http://服务器ip:11434/ 测试是否启动
3、python升级3.11.9
注意: 一定要是用python 3.11 因为 open-webui需要
我是用下面的方法安装的3.11.9但是里面有坑 比如 ssl 就没有。还有这个教程是 将python的版本升级成3.11.9。而python3的没变
- Linux系统安装python3.11.1
4、安装open-webui
三步教会你完全离线搭建openwebui 这个不好用
可以跟下面的教程:
- centos部署open-webui
- centos部署open-webui的完整流程记录
出现错误:
1)在 /home/a10/Downloads/open-webui-whl-offline文件夹下运行下面代码出错
pip install --no-index --find-links=. open_webui-0.5.10-py3-none-any.whl
出错原因:
Processing ./nest_asyncio-1.6.0-py3-none-any.whl (from unstructured-client->unstructured==0.16.11->open-webui==0.5.10)
INFO: pip is looking at multiple versions of google-api-core[grpc] to determine which version is compatible with other requirements. This could take a while.
ERROR: Could not find a version that satisfies the requirement grpcio-status<2.0.dev0,>=1.33.2; extra == "grpc" (from google-api-core[grpc]) (from versions: 1.63.0rc1)
ERROR: No matching distribution found for grpcio-status<2.0.dev0,>=1.33.2; extra == "grpc"
这是由于 单个文件他获取不到导致的。比如 grpcio_status-1.63.0rc1-py3-none-any.whl 是存在的。但是由于rc1是预装的,pip不会主动安装它。因此可以先手动安装。
pip install --no-index --find-links=. grpcio_status-1.63.0rc1-py3-none-any.whl
再进行安装
pip install --no-index --find-links=. open_webui-0.5.10-py3-none-any.whl
2)如果中间遇到某一个tar.gz的包无法安装成功,可以解压缩,进入到解压缩后的目录,用包中的setup单独安装下:
python setup.py install
源码编译安装python3.12没有ssl模块,python3.12 ModuleNotFoundError: No module named ‘_ssl‘
3)运行 open-webui serve时,总是提示SQLite 版本低。明明已经配置了。
NotSupportedError: (sqlite3.NotSupportedError) deterministic=True requires SQLite 3.8.3 or higher
(Background on this error at: https://sqlalche.me/e/20/tw8g)
解决方法:
- centos部署open-webui
- centos部署open-webui的完整流程记录
参考连接
- Centos7/Redhat7下离线部署ollama与deepseek-R1-32B模型
- centos7离线安装cuda,cudnn,torch(一)
- Linux系统安装python3.11.1
- 三步教会你完全离线搭建openwebui 这个不好用
- 源码编译安装python3.12没有ssl模块,python3.12 ModuleNotFoundError: No module named ‘_ssl‘
- centos部署open-webui
- centos部署open-webui的完整流程记录