目录
安装详细步骤在第6节
1. 为什么不直接使用网页版DeepSeek?
- 我们的需求:绝对的隐私保护和个性化知识库构建
- 场景:如果你希望大模型能根据你们企业的规章制度来回答问题,那么你一般需要上传企业规章制度的附件;但你仍然可能面临的问题有:
数据隐私问题
:联网使用大模型数据隐私性无法得到绝对保证;上传文件的限制问题
:网页版AI对于文件上传的数量、大小一般有限制并且通常需要付费方;仅通过附件扩展上下文功能有限
:每次在新对话中提问相关问题时,仍需要重新上传附件;修改删除对话中已有的附件困难;
2. 如何实现网页版DeepSeek不能实现的需求?
- 隐私保护:
- 通过对话大模型(如Deepseek)的本地部署解决隐私问题;
- 个性化知识库构建
- 使用
RAG技术(Retrieval-Auqmented Generation,检索增强生成)
构建个人知识库。为此我们需要- 本地部署RAG技术所需要的开源框架
RAGFlow
; - 本地部署
Embedding
大模型(或者直接部署自带Embedding模型的RAGFlow版本);
- 本地部署RAG技术所需要的开源框架
- 使用
3. 目标效果预览
4. 为什么要使用RAG技术?RAG和模型微调的区别?
- 大模型的
幻觉
问题; 微调技术
和RAG
技术:- 微调:在已有的预训练模型基础上,再结合特定任务的数据集进一步对其进行训练,使得模型在这一领域中表现更好(考前复习);
- RAG:在生成回答之前,通过信息检索从外部知识库中查找与问题相关的知识,增强生成过程中的信息来源,从而提升生成的质量和准确性(考试带小抄);
- 共同点:都是为了赋予模型某个领域的特定知识,解决大模型的幻觉问题。
- RAG(Retrieval-Auqmented Generation)的原理:
检索(Retrieval)
:当用户提出问题时,系统会从外部的知识库中检索出与用户输入相关的内容。增强(Augmentation)
:系统将检索到的信息与用户的输入结合,扩展模型的上下文。然后再传给生成模型(也就是Deepseek);生成(Generation)
:生成模型基于增强后的输入生成最终的回答。由于这一回答参考了外部知识库中的内容
因此更加准确可读。
5. 什么是Embedding?为什么需要“Embedding模型”?
- 检索(Retrieval)的详细过程:
- 准备外部知识库:外部知识库可能来自本地的文件、搜索引擎结果、API等等。
- 通过 Embedding (嵌入)模型,对知识库文件进行解析:Embedding 的主要作用是将
自然语言转化为机器可以理解的高维向量
,并且通过这一过程捕获到文本背后的语义信息(比如不同文本之间的相似度关系); - 通过 Embedding (嵌入)模型,对用户的提问进行处理:
用户的输入同样会经过嵌入(Embedding)处理,生成一个高维向量
。 - 拿用户的提问去匹配本地知识库:使用这个用户输入生成的这个高纬向量,去查询知识库中相关的文档片段。在这个过程中,系统会利用某些
相似度度量(如余弦相似度)去判断相似度
。
- 模型的分类:
Chat模型、Embedding模型
; - 简而言之:Embedding模型是用来对你上传的附件进行解析的;
ollama官网上可以选择不用的chat和Embedding大模型
6. 本地部署全流程
一共分为3步:
- 下载ollama,通过olama将DeepSeek模型下载到本地运行;
- 下载RAGflow源代码和Docker,通过Docker来本地部署RAGflow;
- 在RAGflow中构建个人知识库并实现基于个人知识库的对话问答。
前置条件
- CPU >= 4 核
- RAM >= 16 GB(16貌似不够用)
- Disk >= 50 GB
- Docker >= 24.0.0 & Docker Compose >= v2.26.1
下面详细讲解
需要先安装CUDA Toolkit
https://www.bilibili.com/opus/1031430460507422720
6.1 下载ollama,通过olama将DeepSeek模型下载到本地运行
6.1.1 Ollama介绍
Ollama
是一个支持在Windows、Linux和MacOS上本地运行大语言模型的工具。它允许用户非常方便地运行和使用各种大语言模型,比如Qwen
模型等。用户只需一行命令就可以启动模型。
主要特点包括:
- 跨平台支持Windows、Linux、MacOS系统。
- 提供了丰富的模型库,包括Qwen、Llama等1700+大语言模型,可以在官网model library中直接下载使用。
- 支持用户上传自己的模型。用户可以将huggingface等地方的ggml格式模型导入到ollama中使用。也可以将基于pytorch等格式的模型转换为ggml格式后导入。
- 允许用户通过编写modelfile配置文件来自定义模型的推理参数,如temperature、top_p等,从而调节模型生成效果。
- 支持多GPU并行推理加速。在多卡环境下,可以设置环境变量来指定特定GPU。
- 强大的技术团队支持,很多模型开源不到24小时就能获得支持。
总的来说,Ollama降低了普通开发者使用大语言模型的门槛,使得本地部署体验大模型变得简单易行。对于想要搭建自己的AI应用,或者针对特定任务调优模型的开发者来说,是一个非常有用的工具。它的一些特性,如允许用户自定义模型参数,对模型进行个性化适配提供了支持。
6.1.2 下载ollama平台
Ollama 官方主页:https://ollama.com/
Ollama 下载:https://ollama.com/download
Ollama 官方 GitHub 源代码仓库:https://github.com/ollama/ollama/
6.1.3 window 默认安装
直接从下载页面下载相对应系统的安装程序,Windows安装程序选择Windows的安装包,点击“Download for Windows”
如果要下载到c盘,默认安装即可
双击 下载好的exe文件,然后点击install即可
默认安装位置如下:
6.1.4 自定义的安装路径
- 下载完成后,不要直接双击运行安装程序,否则不给你选择的机会,直接装C盘。而是需要在安装包所在的目录下打开命令提示符(在文件夹地址栏输入cmd并按回车即可快速打开)。
在命令提示符中,输入以下命令来指定安装路径(将D:\Your\Path替换为你希望的安装路径):
OllamaSetup.exe /DIR="D:\Your\Path"
回车后,安装程序将按照你指定的路径进行安装。
6.1.5 环境配置
- 此电脑,属性,系统,高级系统设置
- 在“系统属性”窗口中,点击“环境变量”按钮。
- 在“环境变量”窗口中,点击“新建”按钮。
- 修改Ollama模型的存储路径
在“新建系统变量”窗口中,输入变量名OLLAMA_MODELS
,变量值为你希望的模型存储路径(例如D:\Ollama\Models
),然后点击“确定”。 - 让虚拟机里的RAGFlow能够访问到本机上的 Ollama
在“新建系统变量”窗口中,输入变量名OLLAMA_HOST
,变量值0.0.0.0:11434
- 点击“确定”保存环境变量设置。
- 再用ollama run deepseek-r1:1.5b 时,模型就会下载到你指定的目录。
6.1.6 通过ollama下载模型
建议电脑配置低的从最小的开始
从ollama网页中打开deepseek模型,选择合适大小的模型,将ollama run deepseek-r1
复制 到命令行中回车,可以看到下面的内容
现在已经实现了deepseek的本地化
6.2 下载RAGflow源代码和Docker,通过Docker来本地部署RAGflow;
6.2.1 下载 RAGflow源码
直接下载 zip解压即可
6.2.2 下载Docker
Docker 镜像是一个封装好的环境,包含了所有运行 RAGFlow 所需的依赖、库和配置。这里可以直接下载安装,也可以手动安装,自定义位置。这里可以参考
注意:但是我这里直接把路径设置为E盘才修改成功,如果是E盘下的子文件的话就会报错。
6.2.3 配置修改
路径:E:\RAG\ragflow-main\ragflow-main\docker
文件:.env
找到84行RAGFLOW_IMAGE=infiniflow/ragflow:v0.17.2-slim
并注释掉
找到87行 RAGFLOW_IMAGE=infiniflow/ragflow:v0.17.2
取消注释
如下图,因为 轻量版的不支包含 embedding model
,完整版才包含,否则需要后续自己另外在进行embedding 操作
官网git说明
6.2.4 RAGflow镜像下载
进入 docker 文件夹,利用提前编译好的 Docker 镜像启动服务器:
这个路径
直接在这里输入cmd打开 命令行,输入下面的内容
docker compose -f docker-compose-gpu.yml up -d
然后就会开始拉镜像,这里不翻会报错,就是网络原因
安装成功后
6.3 在RAGflow中构建个人知识库并实现基于个人知识库的对话问答
6.3.1 docker成功启动后,浏览器输入localhost:80来访问RAGFlow;
在浏览器中输入
localhost:80
显示下面的页面,注册登录
6.3.2 在“模型提供商”中添加我们本地部署的 deepseek-r1:1.5b 模型;
点击右上角头像,再点击左侧的模型提供商
然后再点击下面的ollama选择配置
6.3.3 在“系统模型设置”中配置Chat模型(deepseek-r1:1.5b)和Embedding模型(用RAGFlow自带的即可)
选择chat和下载的deepseek模型,这里可以在cmd中查看一下模型的全称
url地址输入的是:http://host.docker.internal:11434
api这里要随便输入一串字符
当上述过程全部设置好直接点击OK连接时,右上角出现了102报错,重启电脑后再连就没问题了
然后点击右侧的系统模型设置,选择chat和embedding模型
6.3.4 创建知识库,上传文件,解析文件
天选5p的初始配置使用7b的模型在解析文件时 cpu直接占满,内容爆了,解析失败
6.3.5开始对话
点击聊天,新建助理
设置配置
16g内存不够用,报错如下,等新内存条回来了再试试。
7. 只想迅速搭建个人知识库,可以不本地部署吗?
具体步骤:
- 下载RAGFlow源代码和docker,通过docker本地部署RAGFow(RAGFlow目前没有官方的网页版):
- 在RAGflow中配置任意的Chat模型和Embedding模型(你需要到这些模型对应的官网去付费申请apikey);
优点:
- 不用本地部署大模型,简单易操作;
- 企业大模型性能一般更优越;
缺点:
- 隐私安全问题;
- 调用企业大模型API的成本;
参考:
https://www.bilibili.com/video/BV1WiP2ezE5a/?spm_id_from=333.337.search-card.all.click&vd_source=d4e1261efd87c5ce017b4129586b6763