news 2026/2/17 10:40:41

Naive RAG 到Advanced RAG 的优化

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Naive RAG 到Advanced RAG 的优化

**Naive RAG 与 Advanced RAG 的核心区别在于:**Naive RAG 只是“取相似段落 + 拼接给大模型”,而 Advanced RAG 则引入多层过滤、压缩和知识增强,使检索更准、上下文更干净、回答更可靠。Naive RAG 使用单次向量检索,容易受到噪声片段、长文档稀释和幻觉影响;Advanced RAG 则通过多路召回(BM25 + Embedding)、段落切分优化、ReRank 重新排序、Selective Context/LLMLingua 压缩无关信息,以及检索后推理(ReAct / GraphRAG / Query Rewrite)来保证模型只看到最有用、最精炼的知识,从而大幅提高准确率、减少幻觉并显著降低 Token 成本。

**简单说:**Naive RAG 是“把文档喂给模型”,Advanced RAG 是“挑最 relevant + 最精华的上下文,让模型以最小的成本说最正确的话”。

Advanced RAG的索引优化

检索前的优化

  • **数据粒度优化:**修订简化内容确保正确性,删除不相关信息消除歧义,维护上下文连贯性

  • 优化索引结构:

    • chunk大小调整:根据场景特性动态切割文本,过大导致噪声增加,过小丢失上下文关联
    • 图数据索引(知识图谱):建立节点关系网络实现跨索引查询,如感冒药有哪些副作用?查询场景中,先用问题丢给向量数据库得到一些文档,再通过图谱找到"感冒药1/2/3"相关的知识,把这些知识丢给向量数据库再得到一些文档,最后把这些文档融合到一起,在丢给大模型给我们回答

  • 层级索引构建:构建多层索引结构以提高检索效率,先生成文档摘要层(20字代替1000字),快速定位后再精查具体chunk

  • **加入元数据信息:**如对会议纪要、新闻等时效数据标注日期,标题等加入元数据
  • **混合检索与对齐优化:**对一份文档预设用户可能会提问的问题,用户查询时,先把用户的问题对文档预设问题进行相似度的检索,这和多层索引有点像(多层索引是提炼文档的摘要,这里是提炼可能会问的问题)

检索中的优化

  • 微调Embedding模型:利用特定场景的语料去微调embedding模型将知识嵌入到模型中,但比较少用
    • 领域适配微调:使用金融/医疗等垂直语料微调向量模型,提升专业术语捕捉能力
    • 冷启动方案:先用通用模型检索,积累足够数据后再进行微调迭代
    • 效果边界:当领域术语占比超30%时建议微调,否则可能带来过拟合

检索后的优化

  • **ReRank机制:**用BERT等模型对Top100结果重排序,比如拿到前3个最相关
  • **Prompt Compression:**对ReRank机制后的3个结果,再进行压缩无关上下文、突出关键段落、减少整体上下文长度,Selective Context (利用小模型(或稀疏模型)对文本进行片段级评分)和 LLMLingua (LLMLingua 是由微软发布的一种 大模型 Prompt 压缩框,利用小模型对文本做逐句重要性评估)等方法利用小语言模型来做
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/11 21:58:06

静态网页如何国际化

test.html<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8" /><title>i18next Static</title> </head> <body><!-- 静态 DOM --> <h1 data-i18n"title"></h1>…

作者头像 李华
网站建设 2026/2/12 11:40:33

Anaconda创建环境时指定Python版本

Anaconda创建环境时指定Python版本 在深度学习项目开发中&#xff0c;一个看似简单的操作——“创建虚拟环境”——往往隐藏着影响整个项目成败的关键细节。你是否曾遇到过这样的场景&#xff1a;代码在本地运行正常&#xff0c;换到同事机器上却报错 ModuleNotFoundError&…

作者头像 李华
网站建设 2026/2/17 2:08:26

字节三面被问RAG原理,5分钟就出来了…

大型语言模型&#xff08;LLMs&#xff09;已经成为我们生活和工作的一部分&#xff0c;它们以惊人的多功能性和智能化改变了我们与信息的互动方式。 然而&#xff0c;尽管它们的能力令人印象深刻&#xff0c;但它们并非无懈可击。这些模型可能会产生误导性的 “幻觉”&#xf…

作者头像 李华
网站建设 2026/2/16 4:57:11

使用PyTorch进行金融时间序列预测实战

使用PyTorch进行金融时间序列预测实战 在量化交易与智能投研日益兴起的今天&#xff0c;如何从噪声重重的金融市场中捕捉可预测的模式&#xff0c;成为众多研究者和工程师的核心挑战。股票价格、汇率波动、大宗商品走势等金融时间序列数据&#xff0c;往往表现出高度非线性、强…

作者头像 李华
网站建设 2026/2/7 10:09:02

python 第八章 练习

# 1&#xff09;消息&#xff1a;编写一个名为display_message()的函数&#xff0c;打印一条消息&#xff0c;指出本章的主题是什么。调用这个函数&#xff0c;确认现实的信息正确无误。def display_message():print("This chapter is about functions.")display_mes…

作者头像 李华
网站建设 2026/1/29 20:22:06

Markdown换行与段落控制排版细节

Markdown换行与段落控制排版细节 在技术文档、博客文章或代码仓库的 README 文件中&#xff0c;你是否曾遇到过这样的尴尬&#xff1a;明明写好了文字和图片说明&#xff0c;发布后却发现所有内容挤成一团&#xff1f;图文之间毫无间距&#xff0c;操作步骤连成一片&#xff0c…

作者头像 李华