RAG召回率从67%到89%:chunk重构与混合检索调优实录
在构建企业知识库问答系统时,我们遭遇了召回质量瓶颈:针对技术文档的复杂查询,基于固定512字符分块的RAG召回率仅67%,且Top-5命中率不足50%。通过将分块策略改为“章节语义边界+重叠窗口”、Embedding模型从BGE-large-zh切换至BGE-M3、并引入Cohere Rerank重排序,最终将召回率提升至89%,Top-5命中率提升至78%。本文将完整记录这一调优过程,附全部核心

擅长围观技术变化,也愿意亲手验证。关注技术学习与项目实践,主要分享项目实践记录、持续成长和日常踩坑;不追求堆砌概念,只记录验证过的经验。欢迎围绕具体问题进行有信息量的讨论。
在构建企业知识库问答系统时,我们遭遇了召回质量瓶颈:针对技术文档的复杂查询,基于固定512字符分块的RAG召回率仅67%,且Top-5命中率不足50%。通过将分块策略改为“章节语义边界+重叠窗口”、Embedding模型从BGE-large-zh切换至BGE-M3、并引入Cohere Rerank重排序,最终将召回率提升至89%,Top-5命中率提升至78%。本文将完整记录这一调优过程,附全部核心
一个真实的后台查询接口,P95延迟从312ms降到38ms,吞吐量提升4.6倍。文章记录了完整的调优链路:先用cProfile和py-spy定位CPU热点,发现SQLAlchemy ORM隐式N+1查询和JSON序列化是两大元凶;随后用`explain ANALYZE`重写SQL,引入联合索引与`selectinload`;最后在Redis层做二级缓存,配合`lru_cache`做热点参数缓存。文