刚帮团队搞完一套基于大模型的客服系统,核心架构就是RAG。这玩意儿说简单也简单,其实就是给LLM配个外挂知识库,但想跑通生产环境,坑是真不少。😅
先聊向量库选型。别盲目追Milvus、Pinecone,小规模业务试试FAISS或Chroma,轻量级够用。关键是embedding模型:中文场景别用开箱即用的OpenAI接口,试试BAAI/bge-large-zh或m3e,效果能差30%以上。部署时注意分段策略,固定1024字符切分太蠢,用语义分割(比如langchain的RecursiveCharacterTextSplitter)才能保住上下文。
检索优化才是重头戏。光靠向量相似度召回经常翻车,建议叠三层buff:①关键词BM25做初筛(ES加一梭子)②交叉编码器重排(比如BGE-reranker)③动态阈值过滤,低于0.6的直接丢。别信单一余弦相似度,实践来看余弦+欧氏距离混合排序更稳。
最后说个冷门点:Prompt里显式标注“根据以下文档回答”,比隐式嵌入RAG上下文准确率提升15%+,实测有效。
提问:你们在生产环境里,RAG的检索延迟压到什么量级?有啥tricks压榨性能?来聊聊。 |