deepseek本地部署以及搭建知识库
可以说这一段时间deepseek可以说刷屏了,现在很多大公司也在跟进这个东西。对于我来说算是起了个大早,赶了个晚集,因为在deepseek的v1的刚开始的时候,我就知道这个,那时候还没有这么火话题度这么高。知道的情景其实是去看一个cursor的落地一个论坛,上面有人推荐这个来替代cursor的官方token,这个更便宜,但是当时没太关注的原因就是如果cursor切换别的源,只能用chat的方式,所以选择和别人共用花点钱用官方的方式。
结果快到年关,deepseek大火,主要是提供了一个开源且高效的一个模型,这时候我就比较关注deepseek的一些动态,希望他能实现一些我之前做的很难受的事情。知识库就是一个我比较关注的地方,我也做了一些相关的实践。以下是我本地部署,以及搭建知识库的相关步骤与体会。
一 deepseek的本地部署
这里会设计到下载一个ollma的工具,这是一个开源的大型语言模型平台,你可以从上面选择市面上开源的模型,deepseek也在里面,使用ollma方便管理你的模型,举个例子类似于node和nvm的关系一样。
安装成功后,在ollma官网搜索deepseek,找到R1,以及对应的下载版本,选择复制得到ollma的一条命令,在你的电脑的命令行中输入直接下载(这个过程要保证ollma一直在运行)。
关于deepseek下载版本的选择
能搜索到deepseek版本的最新的有R1和V3对比,我目前选择的是R1,一方面R发布的时间更靠后,你可以理解为版本比较新,另一方面R更适用场景是数学建模、代码生成、复杂逻辑推理任务。
在R1版本中,考虑到我用的笔记本电脑的配置,选择了最小的deepseek-r1 1.5b,有条件自然是越高越好,这在后面我们给他喂数据和让他去回答问题的效果上非常显著的。
在本地安装成功后,你可以ollma的命令行直接来提问体验本地模型。
二 关于知识库的构建
单纯的在命令行里输入问题没什么意思,我们像本地构建一个对应的知识库,帮我们总结汇总内容,同时一个好的知识库可以当作一个好的客服来使用,去回答一些内部问题,不再人工回复需要培训,或者搞个回复机器人,稍微用点套路就回答“抱歉”。
这里我选用了两套工具,一个是网页插件Page Assist一个是anythingLLM,其实都大同小异,个人推荐page assist作为一个插件更方便,相对不是那么繁琐。
作为一个webUI该有的功能都有,我们要调用本地部署的模型,可以在在page assist设置里面做如下设置
在Ollama配置好本地地址,设置好我们部署的模型名称,就可以在本地开始进行使用,我们可以选择联网不联网来回复问题。如果我要本地要配置一个·知识库,该怎么设置,我们怎么去上传资料呢。其实要在RAG设置和管理知识上去做调整。
首先RAG就是检索增强生成,RAG 可以从外部知识源(如专业数据库、最新新闻文章等)中检索相关信息,将其作为输入补充给大模型,从而让模型基于最新和最准确的知识进行回答。例如在医学领域,RAG 能从医学文献数据库中获取最新的研究成果和治疗方案,辅助大模型为用户提供更精准的医疗建议。也就是说我们想做一个自己的知识库,就需要这个。涉及到的东西主要是嵌入的模型,文本分割器,文档数量这些。
后面要创建我们自己的知识库以及补充相关的知识,这就要在管理知识那里创建和上传资料,大概如下
三 本地部署知识库的初体验
应该说非常不理想,没有达到之前的预期,回答的驴唇不对马嘴。感觉问题主要出在以下几个方面,第一就是本地的环境限制和选择的开发包,二者是相铺相成的,你本地性能越高当然就可以选择体积更大,推理能力更强的包,最基础的能运行,回答一些小问题实际上就不错了。第二我觉得我放的资料比较少或者说资料质量不好,而且从问题回复上看,感觉这个pdf文件没有正确的解析。还有就要考虑我们的提问设置是不是要调整,首先默认的是英文,回复的也是英文,这个要调整,以及中间我们忽略的小问题,分割器的选择。最后我们选择的模型除了性能不行外,在针对文本的处理,是不是可以选择deepseek的v3版本,毕竟v3在介绍中,强调了他对自然语言处理,长文本问答的优势。
以后可能我们都需要一个自己知识库,帮助我整理分析,另一方面我们也可以从别人的知识库学到东西,现在很多相关的产品都出来了,我们还可以通过付费买token的方式帮助训练自己的知识库,后面我可能会进一步选择部署优化知识库这个,因为这个对于一些组织来说确实还挺必要的,自己本地部署一个知识库,相当于多了一个任劳任怨,经验丰富的老员工,有什么问题可以直接问它,它给你更贴合对应情况的,符合自己公司策略的解决方案