使用deepseek r1模型打造本地化RAG知识库

众所周知大模型在解决通用问题非常厉害,但是在专业问题上的回答可能会不太准确,有时候会编造信息(大模型幻觉,大模型训练的数据集中没有这类问题或者较少,对这类问题的理解不够),这时候我们可以利用RAG(Retrieval-Augmented Generation)增强信息检索和生成模型,能够从大规模知识库中检索相关信息并生成高质量的反馈,在对抗大模型幻觉、高效管理用户本地文件以及数据安全保护等方面具有独到的优势。

在这里插入图片描述
如图所示为RAG的流程,红色虚线为不使用RAG流程直接向大模型提问的普通流程。

ollama

ollama是一个用于本地管理和运行大模型的工具,首先到官网下载并安装ollama。
由于我是linux系统,所以运行命令
在这里插入图片描述
当报如下的错,则说明没安装curl,按照图中命令按照一下
在这里插入图片描述
权限不够可能有时候sudo运行还是有的权限不足,直接su进root账户就可以了。
在这里插入图片描述

下载deepseek模型

命令ollama run deepseek-r1:70b
这里我使用的是70b最大参数量的,根据电脑配置来选择模型大小。

下载embedding模型

使用nomic对私有数据embedding。
命令ollama pull nomic-embed-text
也可以使用别的不同的模型,推荐几个比较常用的
在这里插入图片描述
比如bge模型下载命令ollama pull bge-m3

下载AnythingLLM

用于构建基于大模型的私有化应用程序。
首先去官网下载,我是linux需要运行命令curl -fsSL https://cdn.anythingllm.com/latest/installer.sh | sh,下载完运行命令启动./AnythingLLMDesktop/start

搭建RAG本地知识库

首先准备了个文档,记录了当时本人的学习过程,将其上传作为本地知识库。
首先打开AnythingLLM新检个工作区,然后打开设置
在这里插入图片描述

1.选择大模型

在这里插入图片描述
提供商选择ollama,然后选择刚才下载的大模型,点右上角保存。

2.选择embedding模型

在这里插入图片描述
选择刚才下载的nomic模型然后保存。

3.上传本地数据库

首先使用没上传数据库的模型测试一下效果,问他相关内容
在这里插入图片描述
可以看他回答不出来,接下来我们进行上传,首先点击上传按钮
在这里插入图片描述
然后选择文件
在这里插入图片描述
上传向量化
在这里插入图片描述
然后新建一个会话向其提问,可以发现他能提取里面的内容进行回答
在这里插入图片描述

### 使用 DeepSeek-R1 构建本地化 RAG知识库 #### 准备工作 为了成功构建基于 DeepSeek-R1本地化 RAG (检索增强生成) 系统以及相应的知识库,前期准备工作至关重要。这包括但不限于获取必要的软件组件和技术资源。 - **模型准备**:选择合适的预训练语言模型作为基础架构的一部分[^1]。 - **部署环境设置**:确保拥有稳定的计算平台来运行这些复杂的算法流程;对于 Windows 用户来说,则可以通过官方提供的 OllamaSetup.exe 来简化这一过程[^2]。 ```bash wget https://github.com/ollama/ollama/releases/download/v0.5.11/OllamaSetup.exe chmod +x OllamaSetup.exe ./OllamaSetup.exe ``` #### 安装与配置 完成上述准备工作之后,接下来就是具体实施阶段: - **安装 Ollama 工具链**:按照指引执行安装程序,并根据提示完成初始化设定。 - **加载嵌入式模型**:通过指定路径导入预先训练好的向量表示形式文件至系统内核中以便后续操作调用。 #### 文档处理及索引建立 针对目标领域内的资料集进行清理加工,去除冗余信息并统一格式标准,随后借助自然语言处理手段将其转化为结构化的特征表达——即所谓的“向量化”。最终形成可供快速查询匹配的知识图谱或数据库实例。 - 将收集到的数据源经过清洗、分词等一系列预处理步骤后输入给定框架下的编码器部分; - 输出的结果会被存储于特定位置等待下一步骤的应用场景需求触发访问请求时提供服务支持。 #### 实现高效检索与生成能力 当一切就绪以后,就可以着手开发应用程序接口(API),允许外部系统提交查询指令并通过内部机制找到最贴切的答案片段返回给用户端展示出来。与此同时,在线学习模块也会不断积累经验教训从而优化整个系统的性能表现。 ```python from ollama import EmbeddingModel, Retriever model = EmbeddingModel.load("path/to/embeddings") # 加载已有的嵌入模型 retriever = Retriever(model) query_vector = model.encode(["example query"]) results = retriever.search(query_vector) for result in results: print(result['text']) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值