ollama+Dify+MaxKB部署DeepSeek
一、准备工作
-
操作系统:Ubuntu22.04.2
-
DeepSeek离线环境包:离线环境包中包含了ollama、docker、docker compose、MaxKB、Dify离线包(Dify运行所依赖的docker镜像需要联网拉取)
-
DeepSeek-R1模型:联网拉取模型比较慢,提前准备模型文件可大大缩短部署时间
二、安装GPU驱动及CUDA
1、安装前准备工作
1.1 确认GPU型号和操作系统版本
1.2 准备gpu驱动和CUDA软件包
在nvidia官网进行驱动包下载
#GPU驱动下载链接: https://www.nvidia.cn/Download/index.aspx?lang=cn #linux系统均选择 Linux 64-bit #CUDA Toolkit选择最新版本
#CUDA下载链接: https://developer.nvidia.com/cuda-downloads #选择合适的操作系统版本进行下载,本次下载runfile文件安装
1.3 检查服务器GPU识别情况
安装GPU驱动之前需要在操作系统下查看GPU卡是否能够完全识别,如不能识别需要进行重新插拔、对调测试等步骤进行硬件排查。
#确保可以查看到所有的GPU lspci | grep -i nvidia
1.4 安装gcc、g++编译器
GPU驱动安装时需要gcc编译器。
cuda安装samples测试程序进行make时需要g++,但安装cuda软件包时不需要。
#检查版本 gcc -v g++ -v #软件包安装 apt-get install gcc apt-get install g++ apt-get install make #软件包检查 dpkg -l gcc dpkg -l g++ dpkg -l make
1.5 禁用系统自带的nouveau模块
检查nouveau模块是否加载,已加载则先禁用
lsmod | grep nouveau #返回内容则表示nouveau模块未禁用,无内容返回则表示nouveau模块已禁用
vi /etc/modprobe.d/blacklist.conf #在文本最后添加以下内容: blacklist nouveau options nouveau modeset=0 #保存退出 按Esc后输入 :wq #执行以下命令使配置文件生效: update-initramfs -u #重启操作系统 reboot
1.6 修改系统运行级别为文本模式
若使用Ubuntu-server系统最小化安装,则已经处于文本模式,可跳过该步骤
若使用Ubuntu-desktop安装带有GUI界面的系统,则需要切换到文本模式
#切换为文本模式 init3 #切换回GUI界面 init5
2、GPU驱动安装
2.1 root用户下进行GPU驱动安装
chmod +x NVIDIA-xxx.run ./NVIDIA-Linux-x86_64-390.46.run --no-opengl-files --ui=none --no-questions --accept-license
2.2 配置GPU驱动内存常驻模式
#GPU驱动模式设置为常驻内存: nvidia-smi -pm 1 #设置开机自启动 vim /etc/rc.local #在文件中添加一行 nvidia-smi -pm 1 #赋予/etc/rc.local文件可执行权限 chmod +x /etc/rc.local
2.3 检查驱动是否安装成功
安装完GPU驱动后,可以使用nvidia-smi命令进行GPU状态查看及相关配置
nvidia-smi
3、CUDA安装
3.1 安装CUDA
chmod +x cuda-xxx.run ./cuda-xxx.run --no-opengl-libs
注意Driver选项,表示是否安装GPU驱动,如果之前已经安装了GPU驱动,这里不要再勾选。
3.2 配置环境变量
vim /etc/profile #添加以下内容到/etc/profile文件中 export PATH=/usr/local/cuda/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH #使/etc/profile文件生效 source /etc/profile #测试cuda安装是否正确,环境变量是否识别成功 nvcc -V
三、安装ollama
1、安装ollama
ollama在线安装因网络问题,安装速度较慢,这里使用离线安装的方式。
将离线安装包ollama-linux-amd64.tgz和安装脚本拷贝至同一目录下,执行安装脚本即可:
chmod +x install.sh ./install
安装完成后需要对ollama配置文件进行调整
vim /etc/systemd/system/ollama.service #该配置表示让ollama能识别到第几张显卡,以下为2张GPU卡 Environment="CUDA_VISIBLE_DEVICES=0,1" #配置多张卡均衡使用 Environment="OLLAMA_SCHED_SPREAD=1" #模型一直加载, 不自动卸载 Environment="OLLAMA_KEEP_ALIVE=-1" #ollama监听地址,0.0.0.0是对IP没有限制,若服务器可访问互联网,务必把监听地址设置为服务器地址,否则存在安全风险 Environment="OLLAMA_HOST=0.0.0.0" #ollama监听端口,默认端口“11434” Environment="OLLAMA_PORT=11434" #重启ollama,使配置文件生效 systemctl daemon-reload systemctl restart ollama #以下为其他环境变量参数,根据实际需求增加 #调用分散模式 多显卡的情况 处理多并发的情况下 可以减少时间 Environment="OLLAMA_SCHED_SPREAD=true" #最大线程数,同时允许的最大处理并发数 Environment="OLLAMA_NUM_PARALLEL=15" #最大模型数,同时可以加载最多几个模型 Environment="OLLAMA_MAX_LOADED_MODELS=1" #模型存储路径 Environment="OLLAMA_MODELS=/mnt/rayse/files/ollama/models" #启动服务的指令 ExecStart=/usr/bin/ollama serve #设置服务停止后重新启动的时间间隔 RestartSec=3 #指定运行服务的用户,服务将以 ollama 用户的身份运行 User=ollama #指定运行服务的用户组,服务将属于 ollama 用户组 Group=ollama #配置服务异常停止后的自动重启 Restart=always #模型加载后保留的时间,超过1小时,就卸载了,就要从新加载模型 Environment="OLLAMA_KEEP_ALIVE=1h"
2、拉取模型(网络状况良好或未准备模型文件时选择)
#ollama拉取模型的命令为 ollama pull [model name],以DeepSeek-R1:7B为例 ollama pull deepseek-r1:7b #ollama运行模型使用 ollama run [model name],若本地不存在模型,则在线拉取模型,本地存在模型则直接运行 ollama run deepseek-r1:7b #退出模型对话 /bye
3、加载离线模型文件(推荐)
ollama模型文件默认存储在/usr/share/ollama/.ollama/models目录中,该目录下有blobs和manifests目录
以DeepSeek-R1:7B离线模型上传至/home为例
cd /home/DeepSeek-R1:7B/blobs #把/home/DeepSeek-R1:7B/blobs目录下模型文件全部拷贝至/usr/share/ollama/.ollama/models/blobs目录下 cp -r ./* /usr/share/ollama/.ollama/models/blobs/ #给模型文件赋权 chmod -R 777 /usr/share/ollama/.ollama/models/blobs/ #运行模型以测试模型是否可以正常使用 ollama run deepseek-r1:7b #退出模型对话 /bye
四、离线部署docker&docker compose
1、docker安装
1.1 docker离线包下载
#离线包下载链接:https://link.zhihu.com/?target=https%3A//download.docker.com/linux/ubuntu/dists/focal/pool/stable/amd64/ dpkg -i ./containerd.io_1.6.21-1_amd64.deb ./docker-ce_24.0.2-1~ubuntu.20.04~focal_amd64.deb ./docker-ce-cli_24.0.2-1~ubuntu.20.04~focal_amd64.deb ./docker-buildx-plugin_0.13.1-1~ubuntu.20.04~focal_amd64.deb ./docker-compose-plugin_2.24.2-1~ubuntu.20.04~focal_amd64.deb
1.2 使用dpkg -i *.deb安装目录下所有.deb包
cd /docker root@inspur:/home/DeepSeek离线部署/docker# ll total 171092 drwxr-x--x 2 root root 4096 Mar 23 04:40 ./ drwxr-x--x 6 root root 4096 Mar 23 04:40 ../ -rw-r----- 1 root root 29612784 Mar 23 04:40 containerd.io_1.7.25-1_amd64.deb -rw-r----- 1 root root 35255696 Mar 23 04:40 docker-buildx-plugin_0.21.1-1~ubuntu.20.04~focal_amd64.deb -rw-r----- 1 root root 19129400 Mar 23 04:40 docker-ce_28.0.1-1~ubuntu.20.04~focal_amd64.deb -rw-r----- 1 root root 15744320 Mar 23 04:40 docker-ce-cli_28.0.1-1~ubuntu.20.04~focal_amd64.deb -rw-r----- 1 root root 61475103 Mar 23 04:40 docker-compose-linux-x86_64 -rw-r----- 1 root root 13951180 Mar 23 04:40 docker-compose-plugin_2.33.1-1~ubuntu.20.04~focal_amd64.deb -rw-r----- 1 root root 2985 Mar 23 04:40 README.txt dpkg -i *.deb
1.3 将用户权限添加到docker中
groupadd docker #添加docker用户组 gpasswd -a $USER docker #将登陆用户加入到docker用户组中 newgrp docker #更新用户组 docker images #测试docker命令是否可以使用sudo正常使用
2、安装docker compose
2.1 docker compose离线包下载
#离线包下载链接:https://link.zhihu.com/?target=https%3A//github.com/docker/compose/releases/tag/v2.25.0
docker compose安装
mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose docker-compose -v
3、 设置docker开机启动
#docker设置为开启启动 systemctl list-units --type=service UNIT:服务单元名称 LOAD:表示systemd是否正确解析了单元的配置并将该单元加载到内存中 ACTIVE:表示单元的高级激活状态,此信息表示单元是否已经成功启动 SUB:表示单元的低级别激活状态,此信息指示有关该单元的更多详细信息 DESCRIPTION:表示单元的简短描述 #启动命令 systemctl start docker #查看是否设置开机启动 $ sudo systemctl list-unit-files | grep docker #或者使用查看status $ sudo systemctl status docker.service #显示enabled,说明docker服务已设置开机启动 ,如果未设置,则执行命令: systemctl enable docker.service #容器设置开机自动启动 # 在启动命令中添加 --restart=always docker run -d --restart=always --name=nginx 605c77e624dd 参数说明: --restart=always :表示容器退出时,docker会总是自动重启这个容器 --restart=on-failure:3 :表示容器的退出状态码非0(非正常退出),自动重启容器,3是自动重启的次数。超过3此则不重启 --restart=no :默认值,容器退出时,docker不自动重启容器 --restart=unless-stopped :表示容器退出时总是重启,但是不考虑docker守护进程运行时就已经停止的容器 #将运行中的容器改为自动启动 docker update --restart=always [容器id或name]
4、 修改docker镜像源为国内源
#方法一
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.imgdb.de",
"https://docker-0.unsee.tech",
"https://docker.hlmirror.com",
"https://cjie.eu.org"
]
}
EOF
#方法二
#修改daemon.json
nano /etc/docker/daemon.json
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.imgdb.de",
"https://docker-0.unsee.tech",
"https://docker.hlmirror.com",
"https://cjie.eu.org"
]
}
#重启docker
systemctl daemon-reload
systemctl restart docker
五、安装Dify
1、配置Dify
#解压Dify源码包 tar -xzvf dify-1.1.2.tar.gz #进入dify/docker目录 cd dify-1.1.2/docker/ #复制配置环境文件 cp .env.example .env #在.env文件961行之后添加以下内容 # 启用自定义模型 CUSTOM_MODEL_ENABLED=ture #指定Ollama的API地址(根据部署环境调整IP)OLLAMA_API_BASE_URL=host.docker.internal:11434
2、启动Dify容器
docker compose up -d #第一次启动Dify容器,会自动拉取Dify运行所需的组件 docker compose down #停止Dify容器服务 #在dify/docker目录下执行 docker compose down
3、访问Dify
#Dify默认使用80端口 #服务器本机环境 http://localhost #从其他主机访问 http://your_server_ip #例如 http://192.168.1.104
首次访问需要配置管理员账号
4、配置模型ollama部署的模型
4.1 安装ollama插件
使用管理员账号登录,进入设置后选择模型供应商,找到ollama后安装
4.2 配置ollama API
在模型供应商里面找到ollama插件,选择添加模型
根据提示填写ollama模型信息
-
模型类型:选择LLM
-
模型名称:填写ollama部署的模型名称
-
基础URL:填写服务器IP及ollama端口号(http://ip:11434)
-
模型类型:选择对话
-
模型上下文长度:可查询当前模型所支持的最大长度根据需求填写
-
最大token上限:可查询当前模型所支持的最大token长度填写
六、安装MaxKB
1、在线安装
MaxKB 支持一键启动,执行以下命令进行安装:
docker run -d --name=maxkb --restart=always -p 8080:8080 -v ~/.maxkb:/var/lib/postgresql/data -v ~/.python-packages:/opt/maxkb/app/sandbox/python-packages registry.fit2cloud.com/maxkb/maxkb
2、离线安装
2.1 解压安装包
tar -xzvf undefined_3.gz
2.2 安装配置(可选)
MaxKB 安装目录、服务运行端口、数据库配置等信息可在安装包解压后中的 install.conf 文件进行配置
## 安装目录 MAXKB_BASE=/opt ## Service 端口 MAXKB_PORT=8080 ## docker 网段设置 MAXKB_DOCKER_SUBNET=172.19.0.0/16 # 数据库配置 ## 是否使用外部数据库 MAXKB_EXTERNAL_PGSQL=false ## 数据库地址 MAXKB_PGSQL_HOST=pgsql ## 数据库端口 MAXKB_PGSQL_PORT=5432 ## 数据库库名 MAXKB_PGSQL_DB=maxkb ## 数据库用户名 MAXKB_PGSQL_USER=root ## 数据库密码 MAXKB_PGSQL_PASSWORD=Password123@postgres
注意:首次安装之前可在 install.conf文件中的修改参数,安装时则根据修改后的参数执行安装。完成安装后如需再次修改配置参数,则需要在 ${MAXKB_BASE}/maxkb/.env(默认是 /opt/maxkb/.env)文件中进行修改,并且在修改完后需执行
mkctl reload命令重新加载配置文件。
2.3 执行安装脚本
# 进入安装包解压缩后目录 cd maxkb-v1.2.0-offline # 执行安装命令 bash install.sh
3、访问MaxKB
待所有容器状态显示为healthy后,即可通过浏览器访问地址 http://目标服务器 IP 地址:8080,并使用默认的管理员用户和密码登录 MaxKB。
用户名:admin 默认密码:MaxKB@123..

4、配置ollama部署的模型
选择系统设置-模型设置-添加模型-ollama
-
模型名称:填写ollama中部署的deepseek模型名称
-
权限:根据需求选择,需要设置为公有非管理员用户才能使用模型
-
模型类型:选择大语言模型
-
基础模型:选择ollama中部署的deepseek模型,若选项中没有,直接输入即可
-
API URL:填写服务器IP及ollama端口号(http://ip:11434)
-
API Key:ollama部署过程中为设置API Key,该项填写任意内容即可
七、补充内容
deepseek模型为大语言模型,可用于创建聊天助手等chat类型应用即可,创建知识库建议部署向量模型;
向量模型更适合用于文本分析、语义搜索、问答系统等应用。
更多推荐




所有评论(0)