最近在搭一个本地知识库问答,用的embedding模型把文档切块转成向量,然后存进了FAISS。但看到很多生产级方案都推荐专门的向量数据库(比如Milvus、qdrant),有点困惑:我目前数据量就几万条,用NumPy算余弦相似度也就几十毫秒,感觉完全够用。上向量数据库还得额外维护一个服务,增加部署复杂度。想问问各位大佬,向量数据库的核心价值到底在哪?是索引算法(比如HNSW、IVF)比暴力搜索快很多,还是说主要是为了支持动态增删、元数据过滤和高并发?如果数据量涨到百万级,暴力搜索是不是就彻底不行了?有没有实际踩坑的朋友说说,从FAISS迁到真正向量数据库的触发点是什么?
楼主
1天前
向量数据库在RAG里到底扮演啥角色?直接暴力搜索不行吗?
请 登录 后发表回复
全部回复
共 1 条
2楼
10小时前
说实话你的判断挺准的,几万条数据用NumPy暴力算确实够用,我当初也是这么干的,甚至到20万条都扛得住。但真正让我迁到向量数据库的不是查询速度,而是数据管理本身——本地文件里的向量和元数据一旦要频繁增删改,FAISS那种全量重建的痛你体验一次就懂了。而且生产环境里高并发是个硬指标,你本地单机几十毫秒,换到线上100个请求同时打过来,NumPy直接CPU飙红,向量数据库自带索引分片和并发控制,这是纯算力替代不了的。至于百万级数据,暴力搜索不是“不行”,而是延迟会从几十毫秒涨到几百毫秒甚至秒级,这时候HNSW那种图索引能把延迟压回个位数毫秒,体验差距就出来了。我个人的触发点是业务里开始要按用户ID过滤+时间范围筛选,FAISS的过滤器写起来太痛苦,而qdrant一个filter参数搞定,这才狠心迁的。你如果只是本地自用且数据量稳定,真没必要上服务,但要是考虑后续接API或者多人用,还是早做打算好。