![](https://i-blog.csdnimg.cn/img_convert/e578ad215652f6239e6b92f8d8cad0f8.png)
![](https://i-blog.csdnimg.cn/img_convert/c2aa3dd1f7f584e271d0236176e0df48.jpeg)
"老板说,这个项目得上Deepseek,还得再做个知识库..."
还有哪个开发者,最近没听到这样的抱怨?
Deepseek爆火,推理端的智能提速,算力成本急剧下降,让不少原本不想用大模型,用不起大模型的企业,一夕之间全部拥抱AI,开启了降本增效。在这个过程中,对于大部分拥有优质私有数据,敏感数据的企业来说,如果不想数据泄露,那么部署本地知识库,就成了拥抱大模型的必经之路。
可是当你真正开始调研的时候,就会发现这事儿没那么简单:
想用开源的蒸馏版模型?效果差强人意,连基本的问答准确度都难以保证。
比如,前不久,我们推出了基于Deepseek 7b+Milvus的本地部署教程,就有不少开发者反应,7B版本,即使加上了向量数据库,也依然效果差强人意。
可是上满血版的大模型?满血的R1,参数有671B,即使已经是FP16精度,需要的显存也高达1342GB,换算成80G的A100,也需要足足17张。而个人电脑,即使采用顶配的24GB的4090,需要的数量也足足高达56张(MoE+量化会降低实际显存需求)......
很显然,别说个人,就是一些中小企业,也没这么多显卡。
那就用开源方案搭建?光是配置环境就够喝一壶的:向量库选型、模型部署、前端界面...每一步都像是在考验你的耐心。
难道就没有一个简单可行的方案吗?
被老板抓着加班部署了一个月后,相信我,Deepseek+Milvus+AnythingLLM,绝对是你部署本地知识库的最优解!
这个方案不仅解决了性能问题,更重要的是,它真的做到了"零门槛",只需要30分钟,就能搭建一个具备企业级性能的私有知识库。而且,整个过程真的像搭积木一样简单,小白也能快速上手。
01
选型思路
首先我们来看一下,这次选型,为什么采用Deepseek+Milvus+AnythingLLM这个组合,它主要解决了目前RAG落地的三大痛点:
1.1 模型性能问题
用过ollama提供的蒸馏版Deepseek的朋友,应该都有同感,虽然也是Deepseek,但效果实在不怎么聪明。总结来说,就是7B太智障,671B用不起。
所以,在这里,我们推荐使用硅基流动以及一些云服务企业的API服务,通过API调用的方式,我们可以用很低的成本获得满血版Deepseek的算力支持。而且,最近一段时间,新注册用户还有免费的额度尝鲜。
1.2 部署难度问题
市面上开源的RAG方案不少,但要么需要复杂的环境配置,要么需要大量的运维工作。而AnythingLLM则提供完整的UI界面,天然的支持向量数据库Milvus以及各种类型的大模型接口,降低了入门用户的使用门槛。
而Milvus在召回效率、支持的数量规模等方面,也是业内毋庸置疑的第一梯队,与此同时,Milvus也是目前github上向量数据库方向,star数量最多的开源产品,属于大部分AI开发者的入门基础课程。
1.3 扩展性问题
这个组合最大的亮点在于它的灵活性。可以轻松切换不同的大语言模型,Milvus支持亿级数据的高性能检索,AnythingLLM的插件机制让功能扩展变得简单。
总的来说,这个组合方案既保证了效果,又降低了使用门槛,还具备良好的扩展性。对于想要快速搭建私有知识库的个人来说,是一个非常理想的选择。
![](https://i-blog.csdnimg.cn/img_convert/224febc420ef6d27b96dba84298e3278.png)
02
实战:搭建本地RAG
环境配置要求说明:
本文环境均以MacOS为例,Linux和Windows用户可以参考对应平台的部署文档。
docker和ollama安装不在本文中展开。
本地部署配置:最低CPU:4核、内存8G,建议 CPU:8核、内存16G
(1)Milvus部署
1.1下载Milvus部署文件
ruby
bash-3.2$ wget https://github.com/milvus-io/milvus/releases/download/v2.5.4/milvus-standalone-docker-compose.yml -O docker-compose.yml
go
1.2修改配置文件
说明:anythingllm对接milvus时需要提供milvus账号密码,因此需要修改docker-compose.yml文件中的username和password字段。
properties
version: '3.5'
services:
etcd:
container_name: milvus-etcd
image: registry.cn-hangzhou.aliyuncs.com/xy-zy/etcd:v3.5.5
environment:
- ETCD_AUTO_COMPACTION_MODE=revision
- ETCD_AUTO_COMPACTION_RETENTION=1000
- ETCD_QUOTA_BACKEND_BYTES=4294967296
- ETCD_SNAPSHOT_COUNT=50000
volumes:
- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/etcd:/etcd
command: etcd -advertise-client-urls=http://127.0.0.1:2379 -listen-client-urls http://0.0.0.0:2379 --data-dir /etcd
healthcheck:
test: ["CMD", "etcdctl", "endpoint", "health"]
interval: 30s
timeout: 20s
retries: 3
minio:
container_name: milvus-minio
image: registry.cn-hangzhou.aliyuncs.com/xy-zy/minio:RELEASE.2023-03-20T20-16-18Z
environment:
MINIO_ACCESS_KEY: minioadmin
MINIO_SECRET_KEY: minioadmin
ports:
- "9001:9001"
- "9000:9000"
volumes:
- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/minio:/minio_data
command: minio server /minio_data --console-address ":9001"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 30s
timeout: 20s
retries: 3
standalone:
container_name: milvus-standalone
image: registry.cn-hangzhou.aliyuncs.com/xy-zy/milvus:v2.5.4
command: ["milvus", "run", "standalone"]
security_opt:
- seccomp:unconfined
environment:
ETCD_ENDPOINTS: etcd:2379
MINIO_ADDRESS: minio:9000
COMMON_USER: milvus
COMMON_PASSWORD: milvus
volumes:
- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/milvus:/var/lib/milvus
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9091/healthz"]
interval: 30s
start_period: 90s
timeout: 20s
retries: 3
ports:
- "19530:19530"
- "9091:9091"
depends_on:
- "etcd"
- "minio"
networks:
default:
name: milvus
1.3启动并检查Milvus服务
ruby
bash-3.2$ docker-compose up -d
![](https://i-blog.csdnimg.cn/img_convert/c495c4360c4b32de3f364e1d0d57affc.png)
(2)ollama下载向量模型
2.1 下载查看向量模型
ruby
bash-3.2$ ollama pull nomic-embed-text
cpp
bash-3.2$ ollama list
![](https://i-blog.csdnimg.cn/img_convert/41d6151613c53ab1bc5f591acc2a2fcf.png)
(3)注册硅基流动获取API密钥
官网:https://siliconflow.cn/zh-cn/
![](https://i-blog.csdnimg.cn/img_convert/ab003ac1ba94f791fc90cfc93a183a4c.png)
3.1复制满血版deepseek模型名称
![](https://i-blog.csdnimg.cn/img_convert/f17cedf99378d35f0b0f047f79581190.png)
3.2 创建API密钥并记录
![](https://i-blog.csdnimg.cn/img_convert/d3956415be4032952fc23646e5c890dc.png)
(4)下载安装AnythingLLM
![](https://i-blog.csdnimg.cn/img_convert/58beba5760e3bbbac36398f85fdb7fc8.png)
4.1 安装时点击GetStarted
![](https://i-blog.csdnimg.cn/img_convert/9ac01a72b762b0886527c1f40826f4aa.png)
4.2 暂不配置先点下一步
![](https://i-blog.csdnimg.cn/img_convert/59836370812223817d5bb559e9f18bcc.png)
4.3 点击Skip跳过
![](https://i-blog.csdnimg.cn/img_convert/e756b60a138cccd3fbcf05a9ccd4d507.png)
4.4 部署完成进入首页
![](https://i-blog.csdnimg.cn/img_convert/d709787b26ccd15a339182bda9b1f1df.png)
(5)配置AnythingLLM
5.1添加deepseek模型
说明:点击LLM首选项选择提供商Generic OpenAI并填入刚才注册的API密钥、baserul、deepseek模型名称并保存
![](https://i-blog.csdnimg.cn/img_convert/a928a4571ce79e7ef8978307ee0d0d98.png)
5.2 添加milvus向量数据库
说明:点击向量数据库选项选择Milvus并填入刚才部署好的milvus的地址、用户名、密码并保存
![](https://i-blog.csdnimg.cn/img_convert/e147b50055da741a65e6ccf506bba29d.png)
5.3 添加embeding模型
说明:点击Embedder首选项选择ollama并填入刚才部署好的ollama的URL和模型名称并保存
![](https://i-blog.csdnimg.cn/img_convert/c1e73dbe64de7ed0835dfabe9a57bd67.png)
(6)效果演示
6.1 回到首页新建工作区
![](https://i-blog.csdnimg.cn/img_convert/f28842da75904f096a2810071bc34a45.png)
6.2 上传测试数据集
说明:数据集可以从huggingface上获取 网址:https://huggingface.co/datasets
![](https://i-blog.csdnimg.cn/img_convert/7a2744d48a74d0ea9f9370c68c492153.png)
上传区域传入数据集并点击Move向量化后存入milvus
![](https://i-blog.csdnimg.cn/img_convert/d1fe81accab3fe7886ea21bee0c59465.png)
![](https://i-blog.csdnimg.cn/img_convert/489bf510dc16e7d276bab096130677f4.png)
![](https://i-blog.csdnimg.cn/img_convert/c40967d99d151955e4ef81c01f55c8f9.png)
6.3 测试问答效果
说明:对话框中输入"怎么实现向量检索检索?"得到的回复是符合预期的,可以看到回复中引用了本地知识库中的内容。
![](https://i-blog.csdnimg.cn/img_convert/0ce99af7edcc4fa62fbd316c9f802c3f.png)
![](https://i-blog.csdnimg.cn/img_convert/b86ac5227df1578a7c4295df324d785b.png)
03
写在结尾:RAG落地的思考与展望
看到这里,相信你已经成功搭建起了自己的知识库系统。不过除了具体的搭建步骤,我觉得这个方案背后还有一些值得分享的思考。
1.架构设计的前瞻性
这套方案采用了"模型服务+向量数据库+应用前端"的解耦设计。这种架构的好处是显而易见的:
当新的大模型出现时,我们只需要替换模型服务
数据规模扩大时,可以单独升级向量库
业务需求变化时,前端界面也能独立演进
这种松耦合的设计理念,让系统具备了持续进化的能力。在AI技术快速迭代的今天,这一点尤为重要。
2.技术选型的平衡之道
在选择技术栈时,我们需要在多个维度之间找到平衡:
性能与易用性:通过API调用满血版模型,而不是本地部署蒸馏版
开发效率与扩展性:选择开箱即用的AnythingLLM,但保留了插件扩展能力
成本与效果:利用硅基流动等云服务,避免了高昂的硬件投入
这些选择背后,体现的是一种务实的工程思维。
3.RAG应用的演进趋势
从更大的视角来看,这套方案的出现其实反映了几个重要的行业趋势:
知识库建设正在从企业级需求向个人需求扩展
RAG技术栈正在标准化、组件化,降低了使用门槛
云服务的普及让高性能AI能力变得触手可及
未来,随着更多优秀的开源组件出现,RAG的应用场景会越来越丰富。我们可能会看到:
更多细分领域的专业知识库方案
更智能的数据处理和检索算法
更便捷的部署和运维工具
总的来说,这个"Deepseek+Milvus+AnythingLLM"的组合不仅解决了当前的实际需求,也为未来的演进预留了空间。对于想要探索RAG应用的个人和团队来说,现在就是最佳的入局时点。
如对以上案例感兴趣,或想对Milvus做进一步了解,欢迎扫描文末二维码交流进步。
作者介绍
![](https://i-blog.csdnimg.cn/img_convert/a6a1bac91008db9c591566277fb2b9a0.jpeg)
Zilliz 黄金写手:尹珉
推荐阅读