知识科普
-
为什么不直接使用网页版 DeepSeek?
- 我们的需求:绝对的隐私保护和个性化知识库构建。
- 场景:若希望大模型能根据企业规章制度来回答问题,一般需上传企业规章制度的附件,但仍可能面临问题。
- 数据隐私问题:联网使用时大型数据隐私性无法得到绝对保证。
- 上传文件的限制问题:网页版 AI 对于文件上传的数量、大小一般有限制并且通常需要付费。
- 仅通过附件扩展上下文功能有限:每次在新对话中提问相关问题时,仍需要重新上传附件;修改删除对话中已有的附件困难。
-
如何实现网页版 DeepSeek 不能实现的需求?
- 隐私保护:通过对话大模型(如 DeepSeek)的本地部署解决隐私问题。
- 个性化知识库构建:使用 RAG 技术(Retrieval - Augmented Generation,检索增强生成)构建个人知识库。为此需要:
- 本地部署 RAG 技术所需要的开源框架 RAGFlow。
- 本地部署 Embedding 大模型(或者直接部署自带 Embedding 模型的 RAGFlow 版本)。
为什么使用RAG技术
- 模型微调:在已有预训练模型基础上,结合特定任务数据集进一步训练,让模型在该领域表现更好,类似考前复习。
- RAG 技术:
- 原理:在生成回答前,通过信息检索从外部知识库查找相关知识,增强生成过程信息来源,提升生成质量和准确性,解决模型幻觉问题。
- 流程:
- 检索:用户提问时,系统从外部知识库检索相关内容。
- 增强:将检索信息与用户输入结合,扩展模型上下文,再传给生成模型(如 DeepSeek)。
- 生成:生成模型基于增强后的输入生成最终回答,因参考外部知识库内容,更准确可读。
什么是 Embedding?为什么除了 DeepSeek、RAGFlow 外我还需要 “Embedding 模型”?
- 检索(Retrieval)的详细过程:
- 准备外部知识库:外部知识库可能来自本地的文件、搜索引擎结果、API 等。
- 通过 Embedding(嵌入)模型,对知识文件进行解析:Embedding 的主要作用是将自然语言转化为机器理解的高维向量,并且通过这一过程捕获到文本背后的语义信息(比如不同文本之间的相似关系)。
- 通过 Embedding(嵌入)模型,对用户的提问进行处理:用户的输入同样会经过嵌入(Embedding)处理,生成一个高维向量。
- 拿用户的提问去匹配本地知识库:使用这个用户输入生成的高维向量,去查询知识库中相关的文档片段。在这个过程中,系统会利用某些相似度度量(如余弦相似度)去判断相似度。
- 模型的分类:Chat 模型、Embedding 模型;
- 简言之,Embedding 模型是用来对上传的附件进行解析的。
本地部署的全流程
- 下载 ollama,借助 ollama 将 DeepSeek 模型下载到本地运行。
- 下载 RAGflow 源代码和 Docker,利用 Docker 本地部署 RAGflow。
- 在 RAGflow 中构建个人知识库,并实现基于个人知识库的对话问答。
Ollama安装以及配置
下载
官网:Ollama
注册并下载,下载完成后直接运行exe程序进行安装。
安装完成后
添加系统配置
OLLAMA_HOST将ollama的端口暴露出来。
OLLAMA_MODELS配置ollama下载模型的存储位置(配置完重启电脑才能生效)
下载大模型(以deepseek r1 1.5b为例)
复制命令
ollama run deepseek-r1:1.5b
打开cmd执行命令完成下载
下载RAGflow源代码
GitHub的中文文档的
iragflow/README_zh.md at main · infiniflow/ragflowinfiniflow/ragflow: RAGFlow is an open-source RAG (Retrieval-Augmented Generation) engine based on deep document understanding.
如果不会用git的话可以直接跳到code页面下载压缩包
下载 Docker
Docker 镜像是封装好的环境,含运行 RAGflow 所需依赖、库和配置。
若安装遇问题可自行搜索报错或询问 gpt;
若镜像拉不下来,可尝试修改 docker 的镜像源。
修改RAGflow的docker配置
如何不修改配置,docker会默认下载轻量的版本,轻量级的版本是没有embedding的。
进行修改