手把手教你喂养 DeepSeek 本地模型
上篇文章《手把手教你部署 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 本地模型的更多相关文章
- 手把手教你玩转SOCKET模型之重叠I/O篇(下)
四. 实现重叠模型的步骤 作 了这么多的准备工作,费了这么多的笔墨,我们终于可以开始着手编码了.其实慢慢的你就会明白,要想透析重叠结构的内部原理也许是要费点功夫,但是只是学会 如何来使用它,却 ...
- 转:变手把手教你玩转SOCKET模型之重叠I/O篇
手把手教你玩转SOCKET模型之重叠I/O篇 “身为一个初学者,时常能体味到初学者入门的艰辛,所以总是想抽空作点什么来尽我所能的帮助那些需要帮助的人.我也希望大家能把自己的所学和他人一起分享,不要去鄙 ...
- 手把手教你使用HarmonyOS本地模拟器
2021年的华为开发者大会(HDC2021)上,我们随DevEco Studio 3.0 Beta1版本发布首次推出了本地模拟器(也称为Local Emulator),支持模拟手机品类. 我们通过下面 ...
- GitHub 手把手教你如何把本地项目或代码提交到Github托管
GitHub 手把手教你如何把项目或代码提交到Github托管 启动Git Bash命令行 重点内容 1.首先打开你的github,点击新建项目,点击new repositories ,然后直接给项目 ...
- 手把手教你玩转SOCKET模型之重叠I/O篇(上)
“身为一个初学者,时常能体味到初学者入门的艰辛,所以总是想抽空作点什么来尽我所能的帮助那些需要帮助的人.我也希望大家能把自己的所学和他人一起分享,不要去鄙视别人索取时的贪婪,因为最应该被鄙视的是不肯付 ...
- 手把手教你 Apache DolphinScheduler 本地开发环境搭建 | 中英文视频教程
点击上方 蓝字关注我们 最近,一些小伙伴反馈对小海豚的本地开发环境搭建过程不太了解,这不就有活跃的贡献者送来新鲜的视频教程!在此感谢@Tianqi-Dotes 的细致讲解 贡献者还贴心地录制了中英文两 ...
- 手把手教你Chrome扩展开发:本地存储篇
手把手教你开发chrome扩展一:开发Chrome Extenstion其实很简单 手把手教你开发Chrome扩展二:为html添加行为 手把手教你开发Chrome扩展三:关于本地存储数据 HTML5 ...
- 手把手教你开发Chrome扩展三:关于本地存储数据
手把手教你开发chrome扩展一:开发Chrome Extenstion其实很简单 手把手教你开发Chrome扩展二:为html添加行为 手把手教你开发Chrome扩展三:关于本地存储数据 HTML5 ...
- 网络编程懒人入门(八):手把手教你写基于TCP的Socket长连接
本文原作者:“水晶虾饺”,原文由“玉刚说”写作平台提供写作赞助,原文版权归“玉刚说”微信公众号所有,即时通讯网收录时有改动. 1.引言 好多小白初次接触即时通讯(比如:IM或者消息推送应用)时,总是不 ...
- 手把手教你开发chrome扩展
转载:http://www.cnblogs.com/walkingp/archive/2011/04/04/2003875.html 手把手教你开发chrome扩展一:开发Chrome Extenst ...
随机推荐
- @RequestParam @RequestBody @PathVariable 等参数绑定注解详解()
转载自:http://blog.csdn.net/walkerjong/article/details/7946109 学习了下,对@RequestBody,@SessionAttributes,@M ...
- Laravel环境搭建之HomeStead
开发laravel,官方推荐使用HomeStead虚拟环境进行搭建. Linux: 1. 安装virtualbox(https://www.virtualbox.org/) 1)可以找到可供下载的镜像 ...
- fastadmin-自定义
1.样式重置 渲染完毕后再展示 [v-cloak]{ display: none; } <div id="app" v-cloak></div> 去除内置的 ...
- WxPython跨平台开发框架之表格数据导出到Excel并打开
在 Python 中使用 wxPython 导出实体类列表数据到 Excel,通常可以借助 openpyxl 或 pandas 库来实现.本篇随笔由浅入深,逐步介绍导出Excel文件的操作,然后结合跨 ...
- C# Linq 的三种去重方式(Distinct)
前言 关于C#中默认的Distinct方法在什么情况下才能去重,这个就不用我再多讲,针对集合对象去重默认实现将不再满足,于是乎我们需要自定义实现来解决这个问题,接下来我们详细讲解几种常见去重方案,孰好 ...
- 谈谈Python中的接口与抽象基类
接触Python比较早的朋友可能都有这样的体会,Python语言虽然也支持面向对象的编程方式, 但是,不像那些纯面向对象的语言(比如Java和.NET)那样严格和规范. 随着项目的规模逐步扩大之后,想 ...
- 智能存储 | 超质感 HDR 生产,激活你的视神经
视频平台尊贵的会员可以享受 4K HDR 超清视界,各类新型旗舰机都具备拍摄 HDR 视频的能力,3C 产品发布会必提 HDR 超清显示.想必各位看官感受到视觉逐渐被 HDR 浪潮侵袭了,那 HDR ...
- axios 取消请求 (2023-10-10更新)
axios 文档 配置局部取消请求 这种相当于局部的取消请求,作用于单个请求中 import axios from 'axios' const source = axios.cancelToken.s ...
- 助推乡村振兴,四川农担X中电金信大数据智能风控平台彰显“榜样的力量”
在2024年3月召开的两会上,政府工作报告首次提到了要大力发展科技金融.绿色金融.普惠金融.养老金融.数字金融,为深入推进金融高质量发展,走中国特色金融发展之路指明了方向.其中,四川农担作为一家专注 ...
- .NET 9 New features-JSON序列化
.NET 9已经发布有一段时间了,近期整理一下.NET 9的新特性,今天重点分享.NET 9 JSON序列化方面的改进. 先引用官方的说明: 在 System.Text.Json 中,.NET 9 提 ...