目录
5.什么是Embedding?为什么需要“Embedding模型”?
下载 ollama,通过ollama将 DeepSeek 模型下载到本地运行
4. ollama下载运行deepseek-r1模型
下载 RAGflow 源代码和 Docker,通过 Docker 来本地部署RAGflow
在RAGflow中构建 个人知识库 并实现基于个人知识库的对话问答
2. 模型配置
1.为什么不直接使用网页版deepseek?
- 需求: 绝对的隐私保护 和 个性化知识库构建
- 场景: 如果你希望大模型能根据你们企业的规章制度来回答问题,那么你一般需要上传企业规章制度的附件; 但你仍然可能面临的问题有:
- 数据隐私问题: 联网使用大模型数据隐私性无法得到绝对保证
- 上传文件的限制问题: 网页版AI对于文件上传的数量、大小一般有限制并且通常需要付费
- 仅通过附件扩展上下文功能有限: 每次在新对话中提问相关问题时,仍需要重新上传附件修改删除对话中已有的附件困难
2.如何实现网页版DeepSeek不能实现的需求?
- 隐私保护
- 通过对话大模型(如DeepSeek)的 本地部署 解决隐私问题
- 个性化知识库构建
- 使用 RAG技术 (Retrieval-Augmented-Generation,检索增强生成) 构建个人知识库。为此我们需要:
- 本地部署RAG技术所需要的开源框架 RAGFlow
- 本地部署 Embedding大模型 (或者直接部署自带Embedding模型的RAGFlow版本)
- 使用 RAG技术 (Retrieval-Augmented-Generation,检索增强生成) 构建个人知识库。为此我们需要:
3.目标效果预览
- 知识库:
- 根据知识库问答:
4.为什么要使用RAG技术?RAG和模型微调的区别?
- 大模型的幻觉问题
- 在面对某些输入时,生成的内容不准确、不完整或误导性的现象
- 微调技术和RAG技术:
- 微调: 在已有的预训练模型基础上,再结合特定任务的数据集进一步对其进行训练,使得模型在这一领域中表现更好(考前复习)
- RAG: 在生成回答之前,通过信息检索从外部知识库中查找与问题相关的知识,增强生成过程中的信息来源,从而提升生成的质量和准确性(考试带小抄)
- 共同点: 都是为了赋予模型某个领域的特定知识,解决大模型的幻觉问题
- RAG (Retrieval-Augmented Generation) 的原理:
- 检索(Retrieval): 当用户提出问题时,系统会从外部的知识库中检索出与用户输入相关的内容
- 增强(Augmentation): 系统将检索到的信息与用户的输入结合,扩展模型的上下文。然后再传给生成模型(也就是Deepseek)
- 生成(Generation): 生成模型基于增强后的输入生成最终的回答。由于这一回答参考了外部知识库中的内容,因此更加准确可读
5.什么是Embedding?为什么需要“Embedding模型”?
- 检索(Retrieval) 的详细过程:
- 准备外部知识库: 外部知识库可能来自本地的文件、搜索引擎结果、API等等
- 通过 Embedding (嵌入) 模型,对知识库文件进行解析: Embedding 的主要作用是将自然语言转化为机器可以理解的高维向量,并且通过这一过程捕获到文本背后的语义信息(比如不同文本之间的相似度关系)
- 通过 Embedding(嵌入) 模型,对用户的提问进行处理: 用户的输入同样会经过嵌入(Embedding)处理,生成一个高维向量
- 拿用户的提问去匹配本地知识库: 使用用户输入生成的这个高纬向量,去查询知识库中相关的文档片段。在这个过程中,系统会利用某些相似度度量(如余弦相似度)去判断相似度
- 模型的分类: Chat模型、Embedding模型;
- 简而言之: Embedding模型是用来对你上传的附件进行解析的
6.本地部署全流程
下载 ollama,通过ollama将 DeepSeek 模型下载到本地运行
- 下载ollama平台
- ollama是一个用于本地运行和管理大语言模型(LLM)的工具。
- 配置环境变量
- OLLAMA_HOST : 0.0.0.0:11434
- 作用:让虚拟机里的RAGFlow能够访问到本机上的 Ollama
- 如果配置后虚拟机无法访问,可能是你的本机防火墙拦截了端口11434
- 不想直接暴露 11434 端口: SSH 端口转发来实现;
- 更新完两个环境变量记得重启;
- OLLAMA_MODELS : 自定义位置
- 作用:ollama 默认会把模型下载到C盘,如果希望下载到其他盘需要进行配置
- OLLAMA_HOST : 0.0.0.0:11434
- 通过ollama下载模型deepseek-r1:7b
- ollama run deepseek-r1:7b
详细步骤:
1. ollama下载
下载链接:Ollama
2. ollama安装
检测是否安装成功,cmd-ollama 如出现以下内容,则安装成功
3. ollama环境变量配置
4. ollama下载运行deepseek-r1模型
下载 RAGflow 源代码和 Docker,通过 Docker 来本地部署RAGflow
- 下载RAGflow源代码
- 下载Docker
- Docker 镜像是一个封装好的环境,包含了所有运行 RAGFlow 所需的依赖、库和配置
- 如果安装遇到踩坑,可以自行搜索一下报错或者问一下gpt
- 如果镜像拉不下来,尝试修改docker的镜像源
详细步骤:
1. docker下载
下载链接:Docker: Accelerated Container Application Development
2. docker安装
检测是否安装成功,cmd-docker 如出现以下内容,则安装成功
3. docker镜像源配置
4. RAGflow下载
下载链接:ragflow/README_zh.md at main · infiniflow/ragflow · GitHub
$ git clone https://github.com/infiniflow/ragflow.git
5. RAGflow配置文件修改
我们需要使用带有embedding models 的版本
打开.env文件,将slim版本注释,完整版注释打开
6. docker运行ragflow
$ cd ragflow
$ docker compose -f docker/docker-compose.yml up -d
使用docker ps 查看已经运行启动的镜像,如下则表示运行成功
在RAGflow中构建 个人知识库 并实现基于个人知识库的对话问答
- docker成功启动后,浏览器输入 localhost:80 来访问RAGFlow
- 在 “模型提供商” 中添加我们本地部署的 deepseek-r1:7b 模型
- 在 “系统模型设置” 中配置Chat模型 (deepseek-r1:7b) 和 Embedding模型 (用RAGFlow自带的即可)
- 创建知识库,上传文件,解析文件
- 创建聊天助手 (注意prompt和tokens的配置)
- 开始对话
详细步骤:
1. 注册及登录,第一个注册的用户为管理员
2. 模型配置
3. 知识库配置
4. 问答助手配置及问答
开始聊天:
7.只想迅速搭建个人知识库,可以不本地部署吗?
- ——当然可以!这样实现起来更简单,而且效果一般来说会更好
- 具体步骤:
- 下载RAGFlow源代码和docker,通过docker本地部署RAGFlow(RAGFlow目前没有官方的网页版)
- 在RAGFlow中配置任意的Chat模型和Embedding模型(你需要到这些模型对应的官网去付费申请apiKey)
- 优点:
- 不用本地部署大模型,简单易操作
- 企业大模型性能一般更优越
- 缺点:
- 隐私安全问题
- 调用企业大模型API的成本
详细步骤:
我们找到想要使用的API模型,去官网申请API-KEY配置后即可,以通义千问为例: