I
IAI 编辑部 · 官方 Official
IAI 编辑部 · 技术话题 / Tech topic
最近 @AI_Frontier 的 Dify / FastGPT 对比帖(https://www.iaiforum.com/t/37 )提到:知识库效果的差距主要不在框架,而在分段长度、重叠率和 rerank 的配置。编辑部整理一份调参清单,供大家参考和补充。
一、先有评测集,再调参
- 准备一批带“正确出处”标注的问答对,并包含“资料里没有答案”的问题。搭法可参考 @ai_chen 的 RAG 评估帖:https://www.iaiforum.com/t/23
- 一次只改一个变量,每次记录召回命中率(Recall@k)和答案忠实度,否则无法判断哪项改动起了作用。
二、建议的调参顺序
1. 文档解析:先确认 PDF、表格、扫描件被正确转成文本,解析错了后面都白调。
2. 分段长度:按文档结构(标题、段落)切分通常优于固定字数切分;分段过短丢上下文,过长稀释相关性。
3. 重叠率:重叠能减少答案被切断的情况,但会增加索引体积和重复召回,建议在评测集上对比几档取舍。
4. 混合检索:向量检索擅长语义相近,关键词检索(BM25)擅长产品型号、专有名词等精确匹配,两者结合通常更稳。
5. Rerank:先多召回(如 top 20–50),再用 rerank 模型精排取前几条。开源可选 BAAI/bge-reranker-v2-m3:https://huggingface.co/BAAI/bge-reranker-v2-m3
三、一个可参考的公开实验
Anthropic 在《Introducing Contextual Retrieval》中提出:在切分后的每个片段前补一段说明它在原文中位置和背景的上下文,再做向量和 BM25 索引。文中报告该方法使检索失败率降低 49%,再结合 rerank 降低 67%(数字为其自有实验结果,建议在自己的数据上复测):https://www.anthropic.com/news/contextual-retrieval
四、English summary
Build an eval set first, change one variable at a time, and tune in this order: parsing, chunk size, overlap, hybrid (vector + BM25) retrieval, then reranking.
讨论:你们的分段长度和重叠率最后定在多少?rerank 带来的提升有多大?欢迎附上测试条件分享。
——
IAI 编辑部(iaiforum.com 官方编辑账号 · Official editorial account of IAI Forum)
最近 @AI_Frontier 的 Dify / FastGPT 对比帖(https://www.iaiforum.com/t/37 )提到:知识库效果的差距主要不在框架,而在分段长度、重叠率和 rerank 的配置。编辑部整理一份调参清单,供大家参考和补充。
一、先有评测集,再调参
- 准备一批带“正确出处”标注的问答对,并包含“资料里没有答案”的问题。搭法可参考 @ai_chen 的 RAG 评估帖:https://www.iaiforum.com/t/23
- 一次只改一个变量,每次记录召回命中率(Recall@k)和答案忠实度,否则无法判断哪项改动起了作用。
二、建议的调参顺序
1. 文档解析:先确认 PDF、表格、扫描件被正确转成文本,解析错了后面都白调。
2. 分段长度:按文档结构(标题、段落)切分通常优于固定字数切分;分段过短丢上下文,过长稀释相关性。
3. 重叠率:重叠能减少答案被切断的情况,但会增加索引体积和重复召回,建议在评测集上对比几档取舍。
4. 混合检索:向量检索擅长语义相近,关键词检索(BM25)擅长产品型号、专有名词等精确匹配,两者结合通常更稳。
5. Rerank:先多召回(如 top 20–50),再用 rerank 模型精排取前几条。开源可选 BAAI/bge-reranker-v2-m3:https://huggingface.co/BAAI/bge-reranker-v2-m3
三、一个可参考的公开实验
Anthropic 在《Introducing Contextual Retrieval》中提出:在切分后的每个片段前补一段说明它在原文中位置和背景的上下文,再做向量和 BM25 索引。文中报告该方法使检索失败率降低 49%,再结合 rerank 降低 67%(数字为其自有实验结果,建议在自己的数据上复测):https://www.anthropic.com/news/contextual-retrieval
四、English summary
Build an eval set first, change one variable at a time, and tune in this order: parsing, chunk size, overlap, hybrid (vector + BM25) retrieval, then reranking.
讨论:你们的分段长度和重叠率最后定在多少?rerank 带来的提升有多大?欢迎附上测试条件分享。
——
IAI 编辑部(iaiforum.com 官方编辑账号 · Official editorial account of IAI Forum)

