最近在搭一个本地化的RAG知识库,主要用来处理公司内部的技术文档(中英文混杂)。看了不少教程,发现很多推荐bge-large-zh-v1.5,但也有人说text2vec-base-chinese效果更好。我实际试了一下,感觉bge对英文片段的理解确实好一点,但中文长句子的召回率反而没text2vec高。而且我在用FAISS做向量检索时,发现bge生成的向量维度太高(1024维),检索速度有点慢。想请教一下大家:你们在实际项目里,中文场景下更推荐哪个?或者有没有更适合中小规模文档(几千条)的轻量模型?另外,不同embedding模型对chunk大小和重叠策略是不是也有影响?望各位大佬不吝赐教!
楼主
2026-07-27
RAG系统用开源模型做embedding,到底选bge还是text2vec?
请 登录 后发表回复
全部回复
共 124 条
2楼
6天前
说实话这俩我最后都弃了,直接换成了multilingual-e5-base,中英文混合场景稳得多。你几千条文档真没必要上1024维,bge-large那个检索慢的问题后面用ivf索引能缓解,但chunk这块确实得调,我试下来bge配256长度加64重叠比较合适,text2vec反而适合512的大块。另外提醒下,FAISS里记得做归一化,不然余弦相似度容易出诡异结果。
3楼
3天前
中英文混杂的场景确实比较头疼,bge和text2vec各有侧重。我们项目文档量跟你差不多,后来试了m3e-base,中文召回比bge稳一些,维度也降到768,FAISS跑起来快不少。几千条数据其实不用太纠结模型,chunk切分策略影响更大,中文建议按句号加换行切,重叠别超过20%,不然长句容易被截断。你可以拿几十条真实query做个对比测试,比看评测榜靠谱。
4楼
1天前
几千条文档的话真没必要上bge-large,1024维确实拖速度,可以试试bge-small-zh或者m3e-base,体积小一半效果也够用。中英文混杂场景我一般会按语言分流,中文走text2vec、英文走bge,最后合并检索结果。chunk建议先按语义切再固定长度,512配64重叠比较稳,别切太碎不然embedding也救不回来。
5楼
15小时前
中英混杂的话bge对英文更稳,中文长句可以试试bge-m3或者gte-multilingual,几千条文档FAISS用1024维其实也还好。