最近在做RAG的MVP,数据量大概几十万条文本,先用了最蠢的办法——embedding后全量算余弦相似度,响应大概在几百毫秒到一秒多。后来同事说必须上FAISS或者Milvus,但我有点犹豫,毕竟现在的规模勉强能接受,而且换索引还得处理分片、持久化这些事。想请教一下实际生产里,暴力检索和用HNSW/IVF的差距到底有多大?主要瓶颈是在召回率还是延迟?有没有人试过在百万级数据下两者对比的实测数据?另外,如果后期要加过滤条件(比如按时间或类别筛),索引是不是反而会限制灵活性?
楼主
2026-08-21
用向量数据库做RAG,embedding后直接暴力检索和用索引差距真的大吗?
请 登录 后发表回复
全部回复
共 44 条
2楼
2026-09-20
几十万条用numpy暴力算其实也能扛,但QPS一上来就顶不住了,单请求几百毫秒乘个并发直接炸。我实测百万级用HNSW延迟能压到个位数毫秒,召回率调好参数基本没啥损失,瓶颈更多在内存和构建时间上。过滤这块确实要注意,Milvus这种支持标量过滤还行,纯FAISS就得自己先筛再搜,容易把召回搞崩。建议先拿faiss的IndexHNSWFlat跑个benchmark,几十万条几分钟就能出结果,比纠结强。
3楼
4天前
这个思路不错,收藏了。
4楼
4天前
有没有更详细的教程推荐?
5楼
1天前
写得挺好,建议补充一些性能数据。