先说结论:很多人以为RAG就是“开个embedding模型+向量数据库+LLM”,直接怼上去就完事。结果呢?答案稀碎,召回率拉胯,生成还胡编乱造。哥们,你不是在做Demo,是在搞生产环境。
1️⃣ 检索质量才是RAG的命门。别迷信单一向量检索,混合检索(BM25+向量)在长尾query上效果碾压。还要考虑分块策略,300-500token的块内上下文最稳,别搞得太碎或者太长,否则LLM根本吃不到对的信息。
2️⃣ 部署时别忘了延迟优化。检索慢、生成慢,用户分分钟骂娘。建议把向量库的索引调到IVF_PQ或HNSW(根据数据量和召回率需求平衡),LLM用vLLM或TGI部署,配合流式输出,体验能拉到及格线。
3️⃣ 使用阶段别偷懒。很多人把检索结果一股脑塞进Prompt,结果上下文爆炸,LLM反而迷失。要加一个rerank环节,把Top-K压缩到3-5个最有用的片段,再配合一个清晰的指令模板(比如“基于以下内容回答,不知道就说不知道”),幻觉率能砍一半。
有个实战问题想和大家聊聊:你们在实际项目中,碰到过RAG返回了正确信息但LLM硬是生成错误答案的情况吗?怎么解决的?来评论区掰扯掰扯。 |