最近自己在折腾一个基于RAG的问答机器人,数据源是一些产品文档。向量数据库用的是Milvus,嵌入模型是text-embedding-ada-002。现在卡在chunk大小这个点上:试了256和512,感觉256召回更准但上下文不完整,512又经常混进无关信息导致回答答非所问。网上看了一些策略,什么动态chunk、重叠窗口,但都说得比较理论,实操起来还是懵。有没有老哥踩过坑,分享一下实际项目里怎么根据文档类型和查询场景来确定chunk大小的?或者有没有好用的chunk策略库推荐?先谢过各位了。
楼主
1天前
用向量数据库做RAG,chunk大小怎么选才不翻车?
请 登录 后发表回复
全部回复
共 3 条
2楼
8小时前
试试按文档的段落结构切块,标题和列表单独成块,256对产品文档其实够用了。
3楼
4小时前
我刚踩过类似的坑,最后发现chunk大小真得看文档结构来调。如果文档有清晰的标题和段落,用256然后按语义边界切会比固定512靠谱很多。重叠窗口我试了50字,对上下文连贯性改善挺明显的,但别设太大不然检索噪音会炸。另外推荐LangChain的RecursiveCharacterTextSplitter,可以根据分隔符递归切,比硬切灵活不少。你那边文档是偏技术描述还是问答格式?这个影响也挺大的。
4楼
1小时前
试过512加20%重叠窗口,效果比固定大小好不少,你可以试试。