RAG 效果优化的关键策略与工程实践详解
在大模型实际落地过程中,常面临以下核心问题:
- 缺少垂直领域知识:虽然大模型压缩了大量人类知识,但在特定垂直场景上存在短板,需要专业化服务解决特定问题。
- 存在幻觉与合规风险:大模型生成内容可能存在事实性错误(幻觉)及合规问题,缺乏现成的方案来管理非结构化文本、进行测试和运营。
- 重复建设严重:各业务线孤立摸索,资产无法沉淀,导致低水平重复建设,ROI 较低。
为了解决上述问题,检索增强生成(Retrieval-Augmented Generation, RAG)成为了一种相对有效的技术方案。它通过结合检索系统和生成模型,能够在生成响应时引入外部知识,提高内容的准确性和信息丰富度。
RAG 基础介绍
RAG 是 Retrieval-Augmented Generation 的缩写。相比直接使用长文本上下文,使用向量数据库的成本更低且效率更高。在应用过程中,部分公司会使用微调后的 Embedding Model 增强检索能力,也有选择使用知识图谱或 Elasticsearch 等非向量数据库的方法。
开发者通常使用集成好的框架(如 LlamaIndex、LangChain)或直接使用 LLMOps 内建的 RAG 工具。
相关优化论文综述
1. RAPTOR (Recursive Abstractive Processing for Tree-Organized Retrieval)
传统 RAG 方法通常仅检索较短的连续文本块,限制了对整体文档上下文的全面理解。RAPTOR 通过递归嵌入、聚类和总结文本块,构建自底向上的树形结构,在不同抽象层次上整合来自长文档的信息。
核心流程:
- 树形结构构建:将语料库分割成短文本块 -> 使用 SBERT 嵌入并聚类 -> 对聚类后文本生成摘要 -> 重新嵌入并继续聚类,直至无法进一步聚类。
- 查询方法:
- 树遍历:从根层开始,逐层选择与查询向量余弦相似度最高的节点,直到叶节点,拼接选中节点文本。
- 平铺遍历:将树结构平铺为单层,同时比较所有节点,选出相似度最高节点直至达到 Token 上限。
实验表明,RAPTOR 在涉及复杂多步推理的问答任务中显著优于传统方法,在 QuALITY 基准上与 GPT-4 结合后准确率提高了 20%。
2. Self-RAG (Self-Reflective Retrieval-Augmented Generation)
Self-RAG 是一种新框架,通过让语言模型在生成过程中进行自我反思,提高生成质量和事实正确性,同时不损失多样性。
主要过程:
- 输入:接收输入提示 (x) 和之前生成的文本 (y<t)。
- 检索预测:模型预测是否需要检索(Retrieve)。
- 检索判断:若需检索,则检索相关段落,评估相关性 (ISREL)、支持性 (ISSUP) 和有用性 (ISUSE),排序后生成;若不需检索,直接生成并评估有用性。
相比传统 RAG 先检索固定数量文档再生成的模式,Self-RAG 按需检索并评估质量,提高了准确性。
3. CRAG (Corrective Retrieval Augmented Generation)
CRAG 旨在解决大模型生成过程中的虚假信息问题。其核心思想是设计轻量级检索评估器评估文档质量,基于结果触发不同操作。
具体方法:
- 评估步骤:计算每个问题 - 文档对的相关性得分,得出最终置信度。
- 动作触发:
- CORRECT:提取内部知识并细化。
- INCORRECT:进行网络搜索获取外部知识。
- AMBIGUOUS:结合内部和外部知识。
- 知识重组算法:对高相关性结果分解为细粒度片段,过滤无关片段后重组。
- 网络搜索:当静态语料库检索失败时,引入大规模网络搜索补充知识源。
4. Dense X Retrieval
该研究探讨了密集检索中检索单元粒度的重要性,提出'命题'(proposition)作为新的检索单元。命题定义为文本中的原子表达,包含独立事实,具有最小化、独立意义和上下文自包含的特性。
实施步骤:
- 分割段落为命题。
- 创建 FactoidWiki(命题化处理器)。
- 比较不同粒度检索单元的效果。
- 在开放域问答任务中验证。
通过 Prompt 将段落分解为清晰简洁的命题列表,可显著提升检索精度。
常见工程实践优化策略
1. Chunking 优化
文本切割是优化性能的关键。传统的基于物理位置的切割(字符级、递归字符级)可能无法有效组织语义信息。
五种切割层次:
- 字符级切割:按字符数量固定切割。
- 递归字符切割:考虑换行符、段落等物理结构。
- 文档特定切割:针对 Markdown、代码等使用特定分隔符。
- 语义切割:利用嵌入向量分析文本意义确定切割点。
- 基因性切割:使用 Agent 智能决定如何切割文本。
建议根据数据类型和任务性质定制切割策略,多向量索引可提供更丰富的表示。
2. Query 重写与分解
基本流程:
- 输入问题。
- 生成多个子查询(Query Decomposition)。
- 分别检索相关文档。
- 合并并重排序文档。
- 输出答案。
其他策略:
- 递归回答:将问题、先前响应和上下文传递,适合复杂查询。
- 并行回答:将提示分解为细致部分并行解决,组合后回答用户查询。
Query 处理细节:
- 分析结构:分词、NER(命名实体识别)。
- 纠正错误:自动纠正拼写或语法错误。
- 联想语义:使用 HyDE 或 RAG-Fusion 进行改写。
- 扩充上下文:补全省略内容或解析指代关系。
3. Hybrid Retrieval(混合检索)
结合稀疏检索(Sparse Retrieval)和稠密检索(Dense Retrieval)的优势。
- 稀疏检索:基于倒排索引(BM25/TF-IDF),速度快,可解释性强,但处理同义词效果有限。
- 稠密检索:基于深度神经网络映射到向量空间,捕捉语义信息好,但构建成本高,速度较慢。
混合检索能兼顾关键词匹配和语义理解,提高召回率和准确率。
4. Small to Big 检索策略
一种渐进式多粒度检索方法。先从小粒度(句子、段落)开始检索,逐步扩大到大粒度(文档、集合),直到获得足够相关信息。
优点:
- 提高效率:快速锁定大致位置,避免全文搜索耗时。
- 提高准确性:保证相关性的同时获取完整上下文。
- 减少干扰:过滤大部分不相关文本。
5. Embedding & Rerank 模型优化
选择合适的 Embedding 模型和重排序(Rerank)模型对最终效果至关重要。针对垂直领域微调 Embedding 模型通常能带来显著收益。Rerank 阶段用于对初步检索结果进行精细排序,进一步提升 Top-K 结果的准确性。
效果评估
RAG 评估系统是模型开发、优化和应用过程中不可或缺的一部分。通过统一的评估标准,可以公平地比较不同 RAG 模型或优化方法之间的差异,识别最佳实践。评估指标通常包括检索命中率(Recall@K)、生成内容的相关性、事实准确性以及端到端的任务完成度。
总结
在 RAG 系统的实际应用中,需要工程和算法等多方参与。理论上有很多优化方法,实践中仍需大量实验对比和验证。常见问题包括异构数据源的加载处理、知识展示形态(文本、图片、表格)的融合回答体验提升,以及建立自动化评估机制。此外,模型的持续迭代和大小模型的训练支持也是长期发展的关键。
通过系统性地应用上述论文提出的架构改进和工程实践策略,可以显著提升 RAG 系统在垂直领域的表现,降低幻觉风险,提高业务 ROI。