一、本地知识库构建思路

        DeepSeek公司于2025年1月20日推出了其第一代推理大语言模型:DeepSeek-R1,因其在后训练阶段大规模使用了强化学习技术,在仅有极少标注数据的情况下,极大提升了模型推理能力,在数学、代码、自然语言推理等任务上,性能比肩 OpenAI o1 正式版(OpenAI公司于2024年12月5日(当地时间)推出),但其输入API价格(缓存未命中)和输出API价格仅为OpenAI o1 的2/55,输入API价格(缓存命中)仅为OpenAI o1 的1/55,而备受大家关注。更难能可贵的是,DeepSeek-R1采用标准化、宽松的 MIT License,完全开源,不限制商用,无需申请,用户可以将DeepSeek-R1在本地计算机上部署后离线使用。

        DeepSeek-R1属于一款大语言模型(LLM),是一个通过大规模强化学习(RL)训练的模型,在推理方面表现卓越。DeepSeek中文为“深度求索”,可理解为对大数据的深度挖掘和探索,但大语言模型受其大规模强化学习训练的数据的局限性,例如:受知识产权保护的知识、单位或个人私有信息、未公开信息等原因,使得大语言模型无法有效处理上述知识,也即大语言模型所掌握的知识存在边界效应,当LLM被问及这些知识时,其会产生“幻觉”(生成不符合事实的内容),只能“支支吾吾,回答不到点子上”,想必用过大语言模型的用户或多或少地会有过这样的经历。

        为了解决LLM知识受限的问题,检索增强生成(Retrieval-Augmented Generation,RAG)技术应运而生。RAG技术是自然语言处理(NLP)领域的一种技术,结合了信息检索和文本生成。大语言模型在生成文本时,会从外部(本地)知识库中检索相关信息,以提高生成内容的准确性和相关性。RAG 的核心思想是将传统的大语言模型与信息检索系统结合起来,大语言模型负责生成文本,但可能受限于训练数据的时效性或知识范围,而信息检索系统负责从外部知识库(如维基百科、专业数据库、本地数据库等)中检索与输入相关的文档或片段。RAG 通过检索到的信息增强大语言模型的生成能力,使其能够生成更准确、更符合事实的文本。

        RAG 的工作流程通常分为两个阶段:检索阶段和生成阶段。在检索阶段,用户给定输入(如问题或提示),RAG 使用检索模型从外部知识库中查找相关文档或段落。这里的检索模型可以是基于密集向量检索(如使用 BERT 或 DPR)或传统的稀疏检索(如 TF-IDF 或 BM25)。在生成阶段,RAG将检索到的文档与输入一起输入到生成模型中(如 DeepSeek或GPT),然后,生成模型结合输入和检索到的信息,生成最终的文本输出。

二、DeepSeek本地部署

        所需工具:Ollama(大语言模型部署工具,俗称“小羊驼”)、DeepSeek-R1(人工智能大模型,核心大脑)

        Ollama,一款用于本地部署和运行大语言模型(LLM)的工具,特别适合在个人计算机或本地服务器上运行类似DeepSeek、LLaMA、Phi、Nomic-embed-text 等开源模型。Ollama 提供了一个简单易用的界面,支持快速加载、运行和管理模型。Ollama具有如下特点:

  • 本地运行:支持在本地计算机上运行大型语言模型,无需依赖云服务。

  • 简单易用:提供命令行工具和 API,方便用户快速上手。

  • 多模型支持:支持多种开源模型,如 LLaMA、Alpaca、Vicuna 等。

  • 高效推理:优化了模型加载和推理性能,适合在资源有限的设备上运行。

        第一步:下载Ollama

        Ollama官方下载地址:Ollama

        第二步:安装Ollama

        Ollama的安装十分简洁,点击Install后自动安装,安装完毕后自动退出,此时,在任务栏里可以看到Ollama的图标,通过CMD命令也可以查看ollama的版本信息,说明Ollama已安装成功。

ollama -v

        第三步:在Ollama官网查询安装DeepSeek-R1大语言模型的指令代码

        在Ollama官网首页点击【Models】,然后在大语言模型中点击【deepseek-r1】,根据自己的本地计算机的配置选择DeepSeek-R1模型的参数大小,经验证,常规计算机可以运行7b(70亿)参数的DeepSeek-R1模型,即选择【7b】版本,然后拷贝其右侧对应版本DeepSeek-R1模型的安装指令。如果【7b】版本运行卡顿,甚至无法运行,可以选择安装【1.5b】版本,对于显卡的显示内存(VRAM)充足的本地计算机,可以选择更高参数值的模型版本。

ollama run deepseek-r1:7b

        第四步:通过Ollama安装DeepSeek-R1大语言模型

        通过CMD命令打开【命令提示符】窗口,拷贝上述大语言模型安装指令(鼠标右击即可完成拷贝),然后,回车运行即可。由于DeepSeek-R1模型占用存储空间较大,下载需要一段时间,请耐心等待,待下载完毕后会自动安装部署,并会提示【success】说明安装成功。此时,可以尝试继续在该【命令提示符】窗口中输入一个指令,例如:【你好啊!】,查看DeepSeek-R1大语言模型的回复,如下图所示,其回复【你好!有什么我可以帮助你的吗?】,说明DeepSeek-R1大语言模型在本地安装成功。至此,完成DeepSeek-R1大语言模型的本地部署。

三、RAG检索增强生成技术实现

        自RAG 由 Facebook AI 在 2020 年提出以来,迅速成为自然语言处理领域的热门研究方向,随着大模型(如DeepSeek、GPT-3、GPT-4)的发展,RAG 技术被广泛应用于增强模型的生成能力。目前,RAG检索增强生成技术的实现工具有很多种,例如:AnythingLLM、RAGFlow、Langchain-Chatchat、QAnything、MaxKB、Dify、FastGPT、Quivr、RAG-GPT、Verba、FlashRAG、LightRAG、kotaemon、RAGapp、TurboRAG、TEN、AutoRAG,感兴趣的朋友可以对比分析其性能优劣,这里选择应用较为广泛的AnythingLLM,旨在演示其实现方式,抛砖引玉。

        第一步:下载并安装AnythingLLM

        AnythingLLM官方下载地址:AnythingLLM | The all-in-one AI application for everyone

        目前,AnythingLLM已推出了桌面版本,下载到本地后,安装即可。

        第二步:配置AnythingLLM

        启动软件,选择【Ollama】作为平台,同时,选择对应的LLM版本,下面列表里将显示本地计算机上已安装的大语言模型的版本,我这里为【deepseek-r1:7b】并选择该版本作为大语言模型(LLM)。

        由于AnythingLLM为开源且免注册软件,所以注册页面直接跳过即可,不影响正常使用。

        AnythingLLM为每个本地知识库建立一个工作区,不同工作区之间的本地知识库互不干扰,这里需为工作区起个名字,结合笔者研究领域,这里将首个工作区名称命名为【EMC】,意为【电磁兼容】。工作区的名字能够便于区分本地知识库为宜。

        点击上图中的【扳手】图标,进入软件设置页面,在外观设置栏里将显示语言设置为【Chinese】。

        第三步:构建本地知识库

        在构建本地知识库之前,先需对拟上传知识文件的工作区进行参数设置。

        点击上图中【齿轮】图标,然后在其右侧页签中选择【聊天设置】,在【聊天提示】栏里输入一段中文,旨在告诉LLM用中文反馈问题答案,设置完毕后点击下图中的【Update workspace】按钮,保存对该工作区的参数设置。

        工作区参数设置完毕后,点击下图中的【上传】(其实并未将本地文件上传)按钮,进入本地知识库构建页面。

        点击上图中的【1】处或将本地知识文件拖到该区域,可以实现本地知识库的构建,理论上AnythingLLM可以支持多种文件类型,使用户能够上传、检索和分析不同格式的文档,这里选择了若干本EMC领域的电子书(pdf格式)“上传”至本地知识库,上传完毕后,会在上图中的【2】区域查看已上传的知识文件,然后选中拟加载到该工作区的知识文件,这里选择全选,然后点击【3】处的【Move to Workspace】将已选中的知识文件加载到该工作区,如下图所示,然后点击下图中的【Save and Embed】,实现针对该EMC工作区的本地知识库的构建。

        至此,基于DeepSeek和AnythingLLM的本地知识库构建完毕。

四、本地知识库检索验证

        在已构建的本地知识库的基础上,在AnythingLLM对话框主页面内,选择拟进行本地知识库检索的工作区,然后在问题输入框内输入专业问题,这里结合刚刚构建完毕的EMC本地知识库,这里输入的问题为【电磁兼容的定义】,回车后,AnythingLLM将该问题反馈至DeepSeek-R1本地大语言模型,本地大语言模型将通过RAG技术检索本地知识库,检索结束后反馈输出结果,同时,给出该结果所引用的知识文件,即知识出处,如下图所示。

五、总结

        本文通过采用流行的DeepSeek-R1大语言模型作为通用知识检索工具,并本地部署,同时,结合AnythingLLM提供的RAG检索增强生成技术,最终实现对本地知识库的检索,同时,还能给出文献出处。


作者信息:朱赛,18210821611,zhusai@cesi.cn

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐