兄弟们,昨天我们团队刚把RAG系统从v1升级到v3,踩的坑和结果都很有料,分享出来供大家参考。
先说核心痛点:Naive RAG(简单分块+向量检索)在长文档和跨领域查询上表现拉胯。比如我们测试金融年报,Top-5召回率只有58%,LLM还得硬编答案。
我们换了几招:
1. **分块策略**:从固定512字符换成Semantic Chunking(基于句子边界+主题分割),召回率直接涨到73%。配合Metadata Filtering(标题/章节标签),查询速度提升40%。
2. **重排序层(Reranker)**:加了个轻量级Cross-Encoder(比如BAAI/bge-reranker-v2-m3),Top-3准确率飙到89%,幻觉减少明显。记得别用LLM做rerank,太慢了。
3. **查询重写**:用户问“三季报利润”这种模糊词,我们用小模型(如GPT-3.5-turbo)自动扩写成“2023年第三季度归母净利润同比变化”,召回再涨10%。
数据说话:v3上线后,用户满意度从61%升到84%,平均响应时间从4.5秒降到2.8秒(主要是去掉了冗余检索)。
建议搞RAG的兄弟优先试Reranker和分块优化,成本低收益高。有问题楼下聊。 |