上篇文章《手把手教你部署 DeepSeek 本地模型》首发是在公众号,但截止目前只有500多人阅读量,而在自己博客园BLOG同步更新的文章热度很高,目前已达到50000+的阅读量,流量是公众号的100倍。

不管怎样,看来大家还是更喜欢这种真正手把手的教学模式。

在高流量加持下,也得到了更多读者的反馈,从评论区看到大家部署成功后都很兴奋,普遍认为这类教程对新手的帮助很大。

但也有困惑,就是成功部署本地模型之后,除了能在断网模式下也可以和deepseek聊天之外,还有哪些优势呢?

其实从BLOG的评论区已经有读者指出,迫切的想知道下一步究竟该如何喂养这个本地模型,让它可以成为一个更有用的本地私密知识库。

下面就开始 DeepSeek 手把手系列第二篇:《手把手教你喂养 DeepSeek 本地模型》

  • 1.基本概念科普
  • 2.下载 AnythingLLM 软件
  • 3.配置 nomic-embed-text 模型
  • 4.演示如何正确喂养个人数据
  • 5.喂养前后效果对比和缺陷

1.基本概念科普

这里先给AI小白简单科普一下基本概念,便于更好地理解本文中的动手操作。

为什么我这里叫“喂养”DeepSeek 本地模型,是因为大模型再强大也有它天然的局限性,比如训练数据不可能包含你的私域数据,而打造自己的本地私域知识库,就需要检索这些数据,具体采用的是RAG(检索增强生成)方法。

RAG,英文全称是Retrieval-Augmented Generation。简单来讲,采用RAG就需要把你的私域数据向量化,然后存储到向量数据库中,支持向量检索配合LLM大模型一起提供更专业的回复。

2.下载 AnythingLLM 软件

官方网站:

下载符合你系统平台的软件,我这里是Apple Intel:

下载好的AnythingLLMDesktop.dmg,dmg文件约300M多点,双击安装并拖至应用程序中:

拖动时可以看到AnythingLLM安装程序有1G大小:

然后打开AnythingLLM,欢迎界面如下:

点击Get Started配置首选LLM,这里我们选择上一篇文章已经教大家配置好的Ollama:

这里注意,需要确保你的Ollama正常运行,否则会报错找不到provider endpoint,如下图:

此时就需要检查你的ollama以及可用的本地模型:

修复好之后就可以看到AnythingLLM已经可以正确识别到本地部署的模型:

之后可以看到LLM模型选择了Ollama,Embedding默认是AnythingLLM的Embedder,Vector Database默认是LanceDB:

为了不给新手加难度,Embedding和Vector Database我这里都没有进行修改,直接先进入到下一步,是一个survey,笔者是个i人,实在没啥可说的,这里直接跳过了:

下一步选择工作区名称,你可以随便起名字,我这里就用自己的英文名演示了:

然后就终于进入了主界面:

呼呼,迫不及待的开始测试。

我这里直接设计了一个大模型不可能知道的问题,就是拿我的中文名字去做测试,直接问他“赵靖宇是谁?”

果然,它不知道!

马上开始上传一段TXT文本QA-Test.TXT,其实就是简单包含了我之前在讲公开课时的一段个人介绍,全文也没几句话。开始期待它的表现,上传方式如下,可以看到上传后文件就会自动Embedded!

可是…… 这里不太顺利,它居然还是不知道!呜呜呜,我都把小抄给你了你还说不知道,笔者已哭晕……

此时只能转而troubleshooting,检索发现不少人都有遇到类似问题,有人甚至直接发结论说本地大模型的模式下,AnythingLLM根本无法识别上传的个人文件,甚至力劝大家别折腾了。。

3.配置 nomic-embed-text 模型

笔者属于不撞南墙不回头的类型,想深挖下问题到底出在哪里?开始逐一检查可能的配置:

1)聊天设置模型选择肯定是没问题,本地大模型 DeepSeek:

2)向量数据库默认的,向量数量为1:

3)代理配置依然选择了本地大模型 DeepSeek:

笔者初步判断:

  • 1)本地大模型肯定没问题,因为上篇使用Chatbox调用都OK,AnythingLLM对应配置也再次确认了,均正确。
  • 2)向量数据库虽然我有更好的选择,笔者就是从事数据库行业,但这里显然还没到那个阶段,默认的即便再拉跨也不至于一个这么简单的文本向量化都搞不定。
  • 3)那就剩下 Embedding 用的模型,虽然开始也没怀疑过,但是这样排除下来就这个可能性最大了。要不,换一个试试?

目前 Embedding 采用的是默认的 AnythingLLM Embedder:

简单research了下,选了另一个Ollama下的nomic-embed-textEmbedding 模型,官方网站:

我们可以在terminal下使用ollama直接拉取ollama pull nomic-embed-text

然后再回到Embedder首选项,在嵌入引擎提供商,选择Ollama,然后在下面的Ollama Embedding Model选择刚刚下载的最新nomic-embed-text:8192,如下图:

选择好之后点击蓝色的按钮保存更改,会弹出一个比较醒目的Warning,如下图:

主要是警告你要做的这个更改Embedding模型的操作会重置先前所有embedded的文档,且不可逆转。我这之前的根本没效果,重置就重置,赶紧点击Confirm,迫不及待想看下这个新的Embedder是否有用?

4.演示如何正确喂养个人数据

使用跟之前同样的操作方法,同样的问题赵靖宇是谁?,喂养文本QA-Test.TXT,终于起作用了!

于是兴奋地继续追问:他有几年的工作经验?,又不知道了,当然这个正常,因为我提供的信息里就没有明确提到,可以继续上传其他个人数据,比如说来份PDF格式的个人简历:

然后继续问些更细节的问题:你知道他的博客地址是什么吗?赵靖宇有公众号吗?



效果还是比较给力的,均给出了正确答案。明确说出我的公众号名称赵靖宇,以及Blog的url地址:https://www.cnblogs.com/jyzhao/,尤其是网址能准确给出还是比较惊喜的。

5.喂养前后效果对比和缺陷

上面已经看到了喂养后的效果显著,但这是否就高枕无忧了呢?

其实不是的,比如我继续测试时发现,当让它帮我总结下简历信息,就看到了较明显的缺陷:

这里有两处明显的错误:而且有一个错误,还是之前单独问它时,回答正确的,具体如下图:

其实这个回复中大部分信息都还OK,可瑕疵也是极为明显的,比如它居然说我是人工智能聊天机器人,然后把之前曾正确回答出的博客网址又给答错了。

这些讹误和不稳定性,原因可能是受限于我本地部署的模型太小,本身能力不足,也可能是Embedding向量化的工作做的还不够好,但总体来说,对于我这台个人电脑能达到这样的效果,已经很是知足了。

OK,到这里,就已经完成了 DeepSeek 手把手系列的第二篇教程《手把手教你喂养 DeepSeek 本地模型》,之前说感兴趣的读者们也抓紧hands-on起来吧!

手把手教你喂养 DeepSeek 本地模型的更多相关文章

  1. 手把手教你玩转SOCKET模型之重叠I/O篇(下)

    四.     实现重叠模型的步骤 作 了这么多的准备工作,费了这么多的笔墨,我们终于可以开始着手编码了.其实慢慢的你就会明白,要想透析重叠结构的内部原理也许是要费点功夫,但是只是学会 如何来使用它,却 ...

  2. 转:变手把手教你玩转SOCKET模型之重叠I/O篇

    手把手教你玩转SOCKET模型之重叠I/O篇 “身为一个初学者,时常能体味到初学者入门的艰辛,所以总是想抽空作点什么来尽我所能的帮助那些需要帮助的人.我也希望大家能把自己的所学和他人一起分享,不要去鄙 ...

  3. 手把手教你使用HarmonyOS本地模拟器

    2021年的华为开发者大会(HDC2021)上,我们随DevEco Studio 3.0 Beta1版本发布首次推出了本地模拟器(也称为Local Emulator),支持模拟手机品类. 我们通过下面 ...

  4. GitHub 手把手教你如何把本地项目或代码提交到Github托管

    GitHub 手把手教你如何把项目或代码提交到Github托管 启动Git Bash命令行 重点内容 1.首先打开你的github,点击新建项目,点击new repositories ,然后直接给项目 ...

  5. 手把手教你玩转SOCKET模型之重叠I/O篇(上)

    “身为一个初学者,时常能体味到初学者入门的艰辛,所以总是想抽空作点什么来尽我所能的帮助那些需要帮助的人.我也希望大家能把自己的所学和他人一起分享,不要去鄙视别人索取时的贪婪,因为最应该被鄙视的是不肯付 ...

  6. 手把手教你 Apache DolphinScheduler 本地开发环境搭建 | 中英文视频教程

    点击上方 蓝字关注我们 最近,一些小伙伴反馈对小海豚的本地开发环境搭建过程不太了解,这不就有活跃的贡献者送来新鲜的视频教程!在此感谢@Tianqi-Dotes 的细致讲解 贡献者还贴心地录制了中英文两 ...

  7. 手把手教你Chrome扩展开发:本地存储篇

    手把手教你开发chrome扩展一:开发Chrome Extenstion其实很简单 手把手教你开发Chrome扩展二:为html添加行为 手把手教你开发Chrome扩展三:关于本地存储数据 HTML5 ...

  8. 手把手教你开发Chrome扩展三:关于本地存储数据

    手把手教你开发chrome扩展一:开发Chrome Extenstion其实很简单 手把手教你开发Chrome扩展二:为html添加行为 手把手教你开发Chrome扩展三:关于本地存储数据 HTML5 ...

  9. 网络编程懒人入门(八):手把手教你写基于TCP的Socket长连接

    本文原作者:“水晶虾饺”,原文由“玉刚说”写作平台提供写作赞助,原文版权归“玉刚说”微信公众号所有,即时通讯网收录时有改动. 1.引言 好多小白初次接触即时通讯(比如:IM或者消息推送应用)时,总是不 ...

  10. 手把手教你开发chrome扩展

    转载:http://www.cnblogs.com/walkingp/archive/2011/04/04/2003875.html 手把手教你开发chrome扩展一:开发Chrome Extenst ...

随机推荐

  1. docker部署java项目

    1.首先你需要提前准备好jar包或者war包,并想办法放入Linux环境(或虚拟机)中: 2.java项目的部署需要用到Tomcat或者Jetty,docker可以直接拉取他俩的镜像,这里以Tomca ...

  2. Java内存泄露测试及工具

    声明:这是转载的. 测试类: Element.java package com.memoryleak.demo; public class Element { private byte[] data; ...

  3. Impala学习--Impala概述,Impala系统架构

    Imapla概述 Impala是Cloudera公司的一个实时海量查询产品.是对于已有Hive产品的补充.Impala采用了和Hive相同的类SQL接口,但并没有采用MapRed框架执行任务,而是采用 ...

  4. python开发包之远程隧道链接sshtunnel

    缘起: 公司很多的数据库的链接都是本地连接或者指定ip地址可以访问, 如果你没有该ip权限, 但是你可以登录该数据库所在的服务器, 这个时候就可以使用ssh链接上这个服务器,以此为跳板进行数据库的链接 ...

  5. 2019GPLT

    2019GPLT 7-2 6翻了 从左到右扫描输入的句子:如果句子中有超过 3 个连续的 6,则将这串连续的 6 替换成 9:但如果有超过 9 个连续的 6,则将这串连续的 6 替换成 27.其他内容 ...

  6. uniapp使用EventBus实现页面间数据传递

    前情 最近在做小程序项目,选用是当前比较火的uniapp技术栈,经常会遇到页面间消息传递的需求. 为什么要这么做? uniapp页面间数据通信方式有很多:通过url传参,状态管理库vuex/pinia ...

  7. Nginx转发解析长域名多路径域名为一级域名

    ​Nginx解析短域名,例如:访问 http://192.168.1.23 可直接跳转到 http://192.168.1.23/webroot/decision server { listen 90 ...

  8. Shiro简单入门+个人理解

    身为一个刚刚进入开发行业的学生,进入公司就开始了Shiro框架的应用,特此在这里写下收获. Shiro是apache旗下一个开源安全框架,它将软件系统的安全认证相关的功能抽取出来,实现用户身份认证,权 ...

  9. 中电金信:数字经济时代,AI+金融技术应用与未来发展

  10. Java线程 interrupt 方法使用异常

    背景 需要在异步任务中中断任务的执行,故选择通过调用 interrupt 方法对线程设置中断信号. 在比较耗时的业务代码增加判断 Thread.currentThread().isInterrupte ...