最近在用LangChain + Chroma搭一个本地知识库,文档主要是PDF技术手册,大概2000多页。切块用的RecursiveCharacterTextSplitter,chunk_size=500,overlap=50。embedding用的bge-large-zh,检索top_k=5。测试的时候发现有些问题明明文档里有答案,但就是检索不到对应的chunk,换个问法又能搜到。也试过调大top_k到10,但噪音明显变多,LLM回答开始跑偏。想问下这种情况一般怎么排查?是切块粒度的问题,还是embedding模型对技术文档的语义匹配本身就不太行?有没有什么实际可操作的优化思路?
楼主
2026-09-23
RAG检索效果忽好忽坏,是embedding模型的问题吗?
请 登录 后发表回复
全部回复
共 1 条
2楼
2天前
我遇到过几乎一样的情况,后来发现八成是切块把上下文切断了,PDF技术手册里表格和跨段逻辑一断,embedding再强也白搭。可以先把chunk_size调大点或者换成按标题层级切试试,bge-large-zh对中文技术文档其实还行。另外建议加个BM25混合检索,纯向量对专有名词和型号编号经常抓瞎,混一下召回立马稳不少。top_k别急着调大,先看看召不回的那几条到底是切没了还是语义漂了。