RAG实战:别被“向量数据库+LLM”的Demo给骗了
很多所谓的RAG教程把流程简化成:文档 -> Embedding -> 向量数据库 -> 检索 -> LLM。但这套逻辑在跑Demo时很流畅,一旦进入生产环境,检索质量掉得离谱,这时候你才会发现这玩意儿水深得很。
下一篇
搞大模型训练最崩溃的不是代码跑不通,而是显存爆掉的那一刻。 →
最直接的痛点就是语义检索的“不精准”。很多时候用户搜一个具体的产品型号或专业术语,向量检索反而搜不到,因为它在算余弦相似度,而不是在找精准匹配。
要解决这个问题,我尝试了混合检索(Hybrid Search)的方案,把传统的BM25关键词检索和向量检索结合起来,再加一层 Rerank(重排序)。大致的逻辑流是这样的:
一、初步召回:同时从向量库和关键词索引中拉回前 50 个候选片段。
二、权重融合:使用 RRF (Reciprocal Rank Fusion) 算法把两组结果合并,重新打分。
三、精排过滤:用一个专门的 Reranker 模型(比如 BGE-Reranker)对合并后的 Top 20 进行二次打分,只把真正相关的 Top 5 喂给大模型。
这种架构虽然增加了延迟,但能极大地缓解 LLM 的幻觉问题。另外,文档切片(Chunking)的策略也至关重要,简单的固定长度切分会导致语义断裂,建议尝试基于语义或文档结构的递归切分。
如果你发现检索出来的东西不对,先别急着换模型,大概率是召回环节就崩了。
