RAG的基本流程,也就是检索增强生成。看起来简单,但实际优化起来可能有很多细节需要注意。提升RAG效果需要像拼积木一样,把每个环节拆开针对性优化。下面分享一些实战中验证过的策略:
数据预处理是基本功,但多数人没做透
- 文档切割别一刀切:根据内容类型调整分块大小。比如技术文档按函数说明切割(200字),新闻按段落(500字),用滑动窗口避免关键信息被切断。
- 清洗要下狠手:删广告语、乱码、重复段落。见过某企业知识库30%内容都是”点击下一页”,这种噪声比数据不足更致命。
- 给文档打标签:人工标注太贵?用规则+小模型自动打标签(如:合同类/技术类/客服对话),检索时用标签过滤,准确率立竿见影提升
检索阶段最容易挖潜
- 多路召回策略:同时用3种方式检索(关键词+向量+语义),就像买菜多逛几个摊位。某电商用关键词找商品ID+向量找相似描述,召回率提升40%
- 重排序别偷懒:BM25粗排后,加个轻量级CrossEncoder精排。相当于先海选100个,再让资深HR面谈挑5个最优的
- 上下文改造术:检索时把问题改写成”答案可能包含XX关键词”,比如把”怎么退费”改写成”退款流程步骤”
生成阶段要耍点小心机
- 提示词加开关:在prompt里埋暗号,比如”若信息不全就明确说不知道”。实测某金融场景幻觉率从35%降到12%
- 答案模板库:高频问题预存标准回答框架,比如投诉回复=致歉+处理流程+联系方式,生成时填空就行
- 让模型自己反思:第一版答案生成后,让模型自己挑刺:”这段话哪里可能不准确?”,迭代修改2-3次
持续优化的秘密武器
- 埋点收集badcase:用户点”不满意”时,自动截取当前query和上下文,建个优化池重点攻克
- AB测试分层做:新策略先在20%客服对话用,效果达标再推全量。见过某公司同时跑5种分块策略对比
- 冷启动救急法:先用规则引擎覆盖TOP100高频问题,RAG处理长尾问题,混合架构更稳妥
业务结合才是王道
- 客服场景:把用户问题分类(咨询/投诉/查询),每类用不同prompt模板
- 法律场景:给法条加时效性元数据,检索时自动排除废止条款
- 医疗场景:结构化病历数据,把”患者主诉头疼”拆解成症状关键词
最后说个大实话:没有能照搬的通用方案。某物流公司把分块大小从512调到768,效果提升比换模型还明显。关键是多做实验,记录每次改动的影响,像老中医把脉一样慢慢调出最适合自己业务的”药方”。