最近在用开源模型搭一个本地知识库问答,向量数据库选的Milvus,模型用的bge-large-zh。但遇到个头疼的问题:文档切块时,chunk大小设256还是512?重叠设20%还是50%?我试了几组参数,发现chunk小了召回的内容太碎片,大了又容易混进不相关的信息。而且不同文档类型(比如技术手册和聊天记录)好像差别挺大。有没有大佬分享下实际项目里的调参经验?或者有没有什么自动化方法能快速找到最优参数组合?先谢过了。
最近在用开源模型搭一个本地知识库问答,向量数据库选的Milvus,模型用的bge-large-zh。但遇到个头疼的问题:文档切块时,chunk大小设256还是512?重叠设20%还是50%?我试了几组参数,发现chunk小了召回的内容太碎片,大了又容易混进不相关的信息。而且不同文档类型(比如技术手册和聊天记录)好像差别挺大。有没有大佬分享下实际项目里的调参经验?或者有没有什么自动化方法能快速找到最优参数组合?先谢过了。
我一般按文档结构来切,技术手册这种按标题层级切,chunk设512效果比256稳,聊天记录反而得切小点,300左右加30%重叠比较合适。你这种多类型混着用的场景,建议先按文档类型分桶,各自跑一组参数对比召回效果,别硬凑一套通用值。自动化的话可以看下ragas或者自己写脚本扫参数,但评估集得先标好,不然调出来的数没意义。
我一般按文档结构切,技术手册512带标题,聊天记录256按对话轮,重叠10%够用。