兄弟们,最近社区里好多人问RAG,搞得好像装上就能让模型变百科全书似的。我直接说吧,RAG不是万能药,核心在“检索”这块,搞不好就是垃圾进垃圾出。😤
先说说最常见的问题:很多人随便用个开源的Embedding模型,比如`text2vec-base-chinese`,然后扔一堆文档进去。结果模型一问三不知?大概率是Embedding向量没对齐!中文场景下,千万别迷信英文模型,`m3e-large`或`bge-large-zh`实测更稳。部署时注意batch size调小点(32起步),不然显存直接炸。
然后是Chunk粒度。别傻乎乎地按固定长度切500字,得看文档结构。比如技术文档按段落切,法律合同按条款切,不然语义断裂,检索出来全是碎片。我用`LangChain`的`RecursiveCharacterTextSplitter`加`separators`参数,效果比硬切好一倍。
最后,检索完别直接塞Prompt。加个“重排序”层,像`Cohere`或`BAAI/bge-reranker-v2`,把Top-5结果按相关性重新排序,模型回答质量立马飙升。我生产环境试过,准确率从65%提到85%。🚀
总结:RAG靠三样——选对Embedding、切好Chunk、加Reranker。别偷懒,一步错步步错。
提问:你们在RAG里用哪个检索算法?BM25还是向量混合?有没有踩过“检索延迟高”的坑?来聊聊优化方案。👇 |