众所周知大模型在解决通用问题非常厉害,但是在专业问题上的回答可能会不太准确,有时候会编造信息(大模型幻觉,大模型训练的数据集中没有这类问题或者较少,对这类问题的理解不够),这时候我们可以利用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.上传本地数据库
首先使用没上传数据库的模型测试一下效果,问他相关内容
可以看他回答不出来,接下来我们进行上传,首先点击上传按钮
然后选择文件
上传向量化
然后新建一个会话向其提问,可以发现他能提取里面的内容进行回答