最近社区里不少兄弟开始上RAG,但翻车率不低。说句大实话:RAG不是把文档丢进向量库就完事了,这里头坑多着呢。
先说检索这块。很多人以为塞进去就万事大吉,结果模型输出一堆“根据我的知识...”。核心问题在分块策略:块太小丢上下文,块太大噪声爆炸。实践下来,滑动窗口+重叠分块(比如512tokens步长256)配合Embedding模型重排序,召回率能提升25%以上。
再说生成环节。别指望模型自动知道该用哪些片段。建议在Prompt里显式声明:“请严格依据以下参考内容作答,如果信息不足,直接说不知道”。很多翻车案例都是因为模型“脑补”过度,把不相关内容混进来了。
部署优化方面,推荐用BM25+向量检索的混合检索方案。纯语义检索在专业术语匹配上经常翻车,BM25可以补位。另外,缓存热点查询的向量结果,能省一半推理成本,尤其是QA类高频场景。
最后说个血的教训:RAG不是万能的!它对结构化数据、时间敏感信息(比如实时股价)基本白给。改改Prompt就能搞定的事,别硬上RAG。
提问:各位在测试RAG时,有没有遇到“检索结果明明相关,但模型就是不用”的情况?你们是怎么排查的? |