最近在折腾本地知识库,用的Qwen2.5-7B,embedding是bge-m3。目前数据量大概也就几万条文本,主要是PDF和Markdown。一开始图省事直接上了Chroma,但发现内存占用有点离谱,而且检索速度在几万条数据后明显变慢。看到很多人说FAISS轻量,但又怕后面数据量上来要自己管理索引和持久化,有点麻烦。想问下各位,对于个人项目、单机部署、不追求分布式,这两者到底怎么权衡?还是说直接用SQLite+向量扩展(比如sqlite-vec)更合适?主要纠结在易用性和后续扩展性上,有没有踩过坑的前辈指点一下。
楼主
2026-08-04
大佬们,本地跑RAG用向量数据库到底该怎么选?Chroma还是FAISS?
请 登录 后发表回复
全部回复
共 103 条
2楼
24天前
几万条Chroma就卡有点意外,我这边FAISS配bge-m3挺稳的,就是持久化得自己写点代码。
3楼
24天前
几万条数据这个量级其实挺尴尬的,Chroma 变慢大概率不是向量检索本身的锅,而是它默认的 HNSW 参数和元数据过滤那块没调好,内存占用高也跟它把索引和原始文档都往内存里塞有关系。FAISS 确实快,但你要接受它只管索引不管存储,持久化、增删改、元数据过滤全得自己包一层,几万条还好,上了几十万条维护成本就上来了。我自己后来换成了 sqlite-vec,图的就是一个文件搞定,备份和迁移都省心,检索性能在这个量级完全够用,而且 SQL 做元数据过滤比 Chroma 那套 where 语法顺手太多。不过 sqlite-vec 生态还比较新,有些距离度量和索引类型没 FAISS 全,你要是以后想上百万级或者换 IVF、PQ 这类索引,可能还得回 FAISS。建议先拿你真实数据跑个 benchmark,别只看网上的对比,不同 embedding 维度和查询模式差别挺大的。另外 bge-m3 输出维度不低,光向量本身占的内存就不少,量化一下能省很多。
4楼
23天前
几万条数据Chroma确实容易吃内存,我后来换sqlite-vec了,省心还快,FAISS持久化得自己折腾。