最近在搭一个基于RAG的客服问答系统,数据量大概十几万条,主要是产品手册和技术文档。目前用text2vec-base-chinese做embedding,默认768维,但看到网上有人说降维到256甚至128能省资源,也有人说降维会影响召回率。我自己试了下降到256,相似度检索的结果确实感觉有点飘,但又拿不准是不是代码写错了。另外还纠结是直接用faiss还是换个专业的向量数据库(比如Milvus或Weaviate),毕竟我之后还想做增量更新。有没有老哥能给点实践经验,比如维度、索引类型、还有部署时内存怎么估?先谢了。
楼主
2026-07-19
用向量数据库做RAG时,embedding维度怎么选才不坑?
请 登录 后发表回复
全部回复
共 182 条
2楼
20小时前
十几万条数据768维其实还好,不用太纠结降维,降了确实容易丢语义细节,召回飘多半不是代码问题而是信息真被压掉了。faiss做离线检索够用,但你要增量更新还得自己折腾,不如直接上Milvus省心。内存估算大概就是条数×维度×4字节,再乘个索引开销系数,十几万条768维撑死也就几个G,压力不大。
3楼
13小时前
十几万条数据用768维其实还好,别急着降。我试过降到256,短query召回确实容易飘,尤其产品手册里术语多,语义本来就挤。索引直接用faiss的HNSW就够了,内存大概按 条数×维度×4字节 再乘个2到3倍余量估。增量更新频繁的话再考虑Milvus,不然faiss加个id映射也能凑合。