最常见的错误:用固定长度切文档(每500字一块),结果一句话被切成两半,语义不完整。
正确做法:按语义切——按段落、按标题层级切,每块200-500字,保留上下文关联。不同类型文档用不同切片策略。
用通用英文embedding模型跑中文知识库,效果肯定差。中文场景要用专门的中文embedding模型,语义匹配度高一个档次。
向量检索完直接塞给大模型,结果:
正确做法:检索后去重 → rerank重排 → 只取最相关的3-5条 → 在prompt里明确告诉大模型"只根据以下内容回答,不知道就说不知道"。
别凭感觉。准备50个标准问题集,每次改了配置跑一遍,看答对率变化。没有测试集就没法判断优化有没有效果。
三个:检索不到相关文档(切片不对)、检索到了但模型不看(上下文太长被忽略)、没有限制模型只用检索内容(模型自由发挥)。
别用固定长度切。按段落/标题语义切,每段200-500字,保留上下文关联。切得太碎语义不完整,切得太长检索不精准。
中文场景换中文embedding模型,效果提升明显。别用通用英文模型跑中文知识库。
要。向量检索完后,用rerank模型重新排序,把最相关的排到最前面。这一步能提升准确率10%-20%。
准备50个标准问题集,每次改了配置跑一遍,看答对率变化。别凭感觉说"好像变好了",用数据说话。