从0.63到0.89:一次RAG检索增强生成系统的三段式调优记录
线上知识库问答的召回率长期卡在0.63,答案里经常混入无关条款。本文记录了对一个真实RAG系统的三轮优化:把固定512字符切分改为语义+递归混合chunk,召回率提升到0.74;将text-embedding-ada-002切换为bge-large-zh-v1.5并做指令前缀适配,提升到0.81;最后引入bge-reranker-large做二阶段重排,MRR从0.58涨到0.79,端到端准确率稳

接口可以超时,学习和复盘不能停。主要研究软件工程与问题排查,记录代码实现与工程实践、问题排查与调试以及那些看似简单却很容易踩坑的问题。技术会变化,解决问题的方法值得长期积累。
线上知识库问答的召回率长期卡在0.63,答案里经常混入无关条款。本文记录了对一个真实RAG系统的三轮优化:把固定512字符切分改为语义+递归混合chunk,召回率提升到0.74;将text-embedding-ada-002切换为bge-large-zh-v1.5并做指令前缀适配,提升到0.81;最后引入bge-reranker-large做二阶段重排,MRR从0.58涨到0.79,端到端准确率稳
在维护一个拥有200+路由、日均请求量50万次的中后台项目时,我遇到了 Context 导致的连锁渲染问题——一次无关的state更新竟触发了整棵组件树重绘,DevTools 显示最长帧耗时达 120ms。本文记录了从 React 19 的 useContext 和 Vue 3.5 的 provide/inject 迁移到 Zustand v5 与 Pinia v3 的完整过程,包括方案选型对比、