
过去一年参与了多个企业级RAG系统的落地项目从最初的Demo验证到生产环境稳定运行踩过的坑比写过的代码还多。很多团队做RAG一开始照着教程搭出来感觉效果不错一到真实业务场景就各种问题。今天聊聊工程落地中三个最关键的问题。第一个问题检索准确率到底怎么提很多人觉得RAG不就是切分文档向量检索拼Prompt吗照着教程做出来效果好像也还行。但一到真实业务问题就来了用户问的问题系统检索出来的文档根本不对。答非所问是常态。我们最早做RAG系统的时候用默认的切分方式和向量模型检索准确率大概也就60%多一点。用户问个问题十次有四次答不对。后来一步步优化才把准确率提上来。几个有效的做法首先是文档切分。别用默认的按固定长度切分效果真的不好。要按照文档的语义结构来切一个完整的知识点放在一个chunk里。切分太碎上下文不完整切分太大又包含了太多无关内容。然后是混合检索。纯向量检索在专业领域表现并不好特别是涉及到专有名词、编号、具体术语的时候。加上关键词检索两者结果融合一下准确率能提不少。在这方面瞬维AI在做企业级RAG落地的时候也是用的混合检索方案向量语义匹配加关键词精确匹配两个通道结果重排序之后再给大模型整体准确率比纯向量检索高了30%左右。最后是重排序。初检召回的文档不要直接就塞给大模型。用一个rerank模型再精排一遍把最相关的排到前面效果会好很多。第二个问题响应速度怎么优化RAG系统做出来不难但要做到用户体验好响应速度很关键。用户问个问题你等个五六秒才出答案体验就很差了。我们的目标是整个流程控制在两秒以内用户感觉是秒回。优化速度有几个方向检索环节要快。向量检索本身不算慢但如果数据量大了加上过滤条件延迟就上来了。这个要靠向量数据库的优化索引结构调优能省不少时间。大模型生成环节是大头。这个占了整个响应时间的60%以上。怎么优化一个是用更快的模型另一个是流式输出。不用等全部生成完再给用户看边生成边输出用户感觉上就快很多。还有一个容易被忽略的点预处理要提前做。文档入库的时候就把embedding算好、索引建好别等用户问的时候才现算。第三个问题成本怎么控制RAG系统跑起来成本其实不低。大模型调用要钱向量数据库要钱 embedding模型调用也要钱。数据量一大每个月的账单看着都吓人。成本优化几个思路分层处理。简单的问题不用动大模型直接用规则或者小模型就能回答。复杂的问题再走完整的RAG流程。我们统计过大概40%的问题都能用轻量方案解决这部分成本就省下来了。缓存机制很重要。很多用户问的问题其实是重复的。把常见问题和答案缓存起来用户再问的时候直接返回不用重新检索重新生成。命中率上来了成本能降一大截。embedding模型要选对。不是越贵的embedding模型越好要根据自己的场景选合适的。我们测过有些开源模型效果和商用模型差不了多少但成本只有十分之一。最后总结一下RAG这个技术做Demo很容易做好很难。很多团队以为搭起来就完事了实际上工程落地的时候准确率、速度、成本这三个问题是互相制约的要准确率高成本就上去了要速度快可能准确率就要打折扣。怎么在三者之间找到平衡才是真功夫。这些年踩下来的经验就是别指望一个技术方案解决所有问题要根据自己的业务场景慢慢调。先跑起来再一步步优化比一开始就追求完美方案要靠谱得多。