老铁们,最近群里一堆人问RAG部署翻车的事。别慌,这篇帖子帮你把坑踩平了。
先说核心:RAG不是简单把文档扔进向量库就完事。**检索质量决定生成质量**。我试过用openai的text-embedding-ada-002做千篇文档的检索,结果模型乱引用——问题出在分块策略太糙。
🔧 关键点:
1. **分块要细**:别用固定512 token切,遇到长文档直接裂开。推荐按段落或语义边界分,配合重叠窗口(比如前后各留50token)。
2. **检索要狠**:只用top-k向量相似度不够,加个MMR重排序能过滤冗余结果。实测Recall能提15%以上。
3. **生成要稳**:给prompt加个“如果检索为空,直接说不知道”的指令,能防模型瞎编。别问我怎么知道的,血泪教训。
💻 部署建议:本地用LlamaIndex+ChromaDB够用,生产环境上Milvus或Weaviate。别图省事全塞内存,百万级文档直接炸。
🤔 抛个问题:你们在RAG里用reranker时,是选交叉编码器还是双塔模型?我试了Cohere rerank-v3,延迟感人,求推荐轻量方案。 |