【本地私有化部署大模型】ubuntu+ragflow+deepseek-r1的部署过程以及问题记录
ubuntu+ragflow+deepseek-r1的部署过程以及问题记录
- 配置说明
- RagFlow安装和部署
- 配置Ollama大模型启动引擎
- 配置ragflow+ollama实现deepseek-r1本地部署
- 可能存在的问题汇总
记录在ubuntu系统上本地私有化deepseek大模型
配置说明
- 软件配置说明
- cuda工具配置说明
- ubuntu系统版本说明
- 硬件配置说明
CPU:Intel 12400F
DRAM:32G
GPU:NVIDIA 4060Ti 16G
主存容量:512G
RagFlow安装和部署
前置条件
- CPU >= 4 核
- RAM >= 16 GB
- Disk >= 50 GB
- Docker >= 24.0.0 & Docker Compose >= v2.26.1
docker的安装可以参考 Install Docker Engine ,官方给出的文章自行安装进去后里面可以在Supported platforms这个标题下选择对应的系统安装,这里我选择的ubuntu系统,接着根据官方的教程一步一步安装即可。
【tips】在完成docker的安装以后,建议提前更换docker使用的镜像源,在/etc/docker/daemon.json文件中添加对应的源,具体教程可以在网上寻找一下,当然也可以跟着ragflow官方的教程走,有更换源的操作。此处有一个不便利之处,因为本人的ubuntu用户账号未添加root权限,所以在这里可以将docker添入root用户组,默认拥有sudo权限,这样就不用在每次使用docker命令时,需要添加sudo关键字
$ sudo groupadd docker
$ sudo gpasswd -a ${USER} docker
$ sudo service docker restart
安装
- 拉取ragflow项目
$ git clone https://github.com/infiniflow/ragflow.git
【tips】这一步如果说通过git拉取速度不快的话,建议直接采用魔法方法:ragflow项目界面>code>Download ZIP直接下载,或者找国内的其他网站如gitee等网站,下载到本地需要存放的位置,然后解压缩。
- 进入 docker 文件夹,利用提前编译好的 Docker 镜像启动服务器:
$ cd ragflow/docker
$ docker compose -f docker-compose.yml up -d
【tips】根据官方教程,运行上述命令会自动下载 RAGFlow slim Docker 镜像 v0.17.0-slim
。请参考原文查看不同 Docker 发行版的描述。如需下载不同于 v0.17.0-slim
的 Docker 镜像,请在运行 docker compose
启动服务之前先更新 ragflow/docker/.env 文件内的 RAGFLOW_IMAGE
变量。比如,你可以通过设置 RAGFLOW_IMAGE=infiniflow/ragflow:v0.17.0
来下载 RAGFlow 镜像的 v0.17.0
完整发行版。
- slim和非slim版本之间的区别在于,是否自带embedding模型,这两个版本之间的大小差距在7-10GB之间,因此在下载之前需要考虑本地磁盘容量是否足够,本人下载使用的非
slim
版本,大小为18.3GB,slim
版本大概在9-10GB上下
此外还需要注意,在镜像拉取完成之后,需要注意这里是否对应的镜像已经完整了,使用docker images
命令查看镜像是否齐全,权限不够的在命令前面添加sudo docker images
查看即可。
- 查看docker容器内组件运行情况
$ docker logs -f ragflow-server
在docker
镜像拉取以后,默认会启动镜像内容,接着就可以通过上述命令查看是否启动成功 ,启动成功应该是如下标志:
【tips】如果发现没有出现这个界面,可以进入ragflow/docker/ragflow-logs
这个路径,查看ragflow_server.log
文件中的内容,这里记录了ragflow运行过程中出现的问题,再进行逐一排查。
- 需要注意在上述工作完成之后,不是要进入如下的两个网址:
- http://127.0.0.1:9380
- http://本地IP:9380
而是要进入:http://localhost:80
先注册账号,是下面这个页面,账号符合邮箱地址,密码随便设置,反正数据都是保存在本地的:
-
注册登录
在上图的界面中注册,然后登录就来到如下界面:
-
配置模型
搭建好ragflow之后,我们就需要考虑为ragflow挑选LLM模型,通过点击>右上角头像>左侧菜单栏模型提供商,选择合适的模型启动引擎即可,这里因为本地配置了ollama,所以使用ollama直接使用即可:
配置Ollama大模型启动引擎
- 从官网下载Ollama模型加载器,官网给出的Linux下载命令是,其他系统的根据官网提示即可:
$ curl -fsSL https://ollama.com/install.sh | sh
【tips】使用这个下载的速度会非常慢,可能会卡死或者提示下载几天,建议可以从国内第三方网站下载,如魔塔社区等,通过这种方式下载的模型,就需要ollama文件中,通过命令行的方式安装ollama,这里我以魔搭社区中的提示为例:
$ cd ollama-linux
$ sudo chmod 777 ./ollama-modelscope-install.sh
$ ./ollama-modelscope-install.sh
安装完成后,一般系统会自动运行,输入以下命令,查看ollama是否已经安装完成:
$ ollama -v
安装成功会出现如下标志:
$ ollama version is 0.6.0
-
修改配置
在下载完成ollama模型后,不要急着去下载模型,建议在本地修改以下配置后在考虑下载模型:
① 因为ollama默认下载的位置会将模型下载至如下地址
/usr/share/ollama/.ollama/models
,非常不利于我们查看和修改对应的信息,而且通常一个LLM模型的存储空间占用都是大几个GB或者几十GB起,最好根据自己的实际情况,放在相对安心的位置比较好;
②考虑到接下来,ollama在启动模型后是需要在本地部署并支持被外部访问,因此还需要添加ollama的本地地址使用0.0.0.0,否则默认启动会启用只有本机系统可用的127.0.0.1回环端口,这也就意味着前面在docker中部署的ragflow作为外部应用无法访问。
基于上述问题,特此在/etc/systemd/system/ollama.service
中的[Service]
这一个下面导航栏下,添加以下信息:
# 模型下载地址设置,其中/xxx/可以根据自己的实际情况设置绝对地址或相对地址
Environment="OLLAMA_MODELS=/xxx/ollama/models"
# 访问端口设置
Environment="OLLAMA_HOST=0.0.0.0"
修改完上述文件后,对ollama重新加载并更新配置:
# 刷新配置
$ sudo systemctl daemon-reload
# 重启ollama
$ sudo systemctl restart ollama.service
# 查看一下重启后的ollama运行状态
$ sudo systemctl status ollama
-
下载模型
在完成上述内容之后,可以开始在ollama官网寻找对应的大模型进行下载:
一般说来,采用的命令如下:
$ ollama run deepseek-r1:14b
等待命令完成后,在前面设置的模型存放路径下,就可以发现对应的模型参数文件。
默认模型下载完成后,会进入模型加载模式,输入/bye
即可退出
配置ragflow+ollama实现deepseek-r1本地部署
-
配置端口
在前文RagFlow安装和部署 的5.配置端口标题
中界面所示,选中ollama模型>添加模型,即可出现当前界面,模型类型选择chat(聊天模型),模型名称通过ollama ls
命令中所展示NAME列即可。
【tips】需要注意的是对于基础Url的选择,由于我的RagFlow配置采用的docker方式,所以说对应的url选择上就需要采用host.docker.internal:11434的方式访问 -
配置本地知识库
接下来我们就可以创建知识库了
关于嵌入模型的选择上,选择一个前文所提到的非slim
自带的嵌入模型即可,但是由于ragflow自带的embedding模型似乎只会调用cpu进行解析,所以这里建议可以使用ollama自己部署,步骤同上,即可通过gpu调用的形式加载embedding模型,加快文档解析速度。
之后点击数据集>新增文件>本地文件或者新建空文件,即可实现文件上传,解析文件后,在聊天界面实现和模型畅快的聊天。
可能存在的问题汇总
- 【划重点】善用日志排查问题
- ollama运行过程中遇到问题,使用如下命令查看ollama日志:
$ journalctl -u ollama -f
- ragflow运行过程中遇到问题,同前文【tips】中所示,查看对应的日志文件即可
- ragflow提示某个镜像组件未启动
如Can’t connect redis,无法链接redis库
# 查看已经启动的docker容器
$ docker ps
# xxx表示对应的ragflow需要的组件
$ docker start ragflow-xxx
- ragflow提示缺少某个组件
问题描述:如Failed to resolve ‘minio’ ([Errno -3] Temporary failure in name resolution)
解决方法:docker中重新抓一个镜像组件下来
$ docker pull ragflow-minio
- 常用docker和ollama的帮助命令:
$ docker -h
$ ollama -h