RAG优化
本文详细解析了RAG技术在大模型应用中面临的挑战,如数据质量差、向量化信息损失和语义搜索不准确,并系统介绍了Naive RAG、Advanced RAG和Modular RAG三种范式。同时,文章基于实际工程经验,给出了从知识加工、query改写、数据召回到后置处理的完整优化实现策略,包括HyDE、RAG-Fusion、Step-Back Prompting等关键技术,为企业落地RAG提供参考。
核心洞察
如果你最近在搭 RAGRetrieval-Augmented Generation - an AI framework that combines information retrieval with language generation to produce more accurate and contextually relevant responses. 系统,建议直接翻到第五章。索引降噪、假设性问题、RRF 排序融合,这些细节没有真实业务打磨过根本写不出来。前半部分讲范式演进的内容可以扫读,后半部分才是干货。
核心结论
RAG 的核心价值在于用非参数化语料库弥补纯参数化大模型在知识局限、知识滞后、幻觉和数据安全四方面的短板,其完整流程包括索引建立、检索和生成三个阶段。
初级 RAG 的落地瓶颈集中在检索质量低(长文本索引主题不突出、query 与索引不匹配)、生成质量差(检索不到或检索质量差时模型只能靠自身发挥)和增强过程难(输出不连贯、模型过度复述检索内容)三个方面。
高级 RAG 围绕检索前、检索中、检索后三阶段优化:检索前做知识切分、索引优化和 query 改写;检索中依赖 embeddingA mathematical representation of data (text, images, etc.) in a continuous vector space where semantic similarity corresponds to spatial proximity. 模型微调或混合搜索;检索后采用提示压缩和重排序。模块化 RAG 在此基础上新增搜索、预测、记忆、融合、路由、任务适配器六大模块,且 Naive RAG基础的RAG框架,包含索引、检索、生成三个核心步骤,但面临检索精度低、生成幻觉等挑战。 是 Advanced RAG在Naive RAG基础上引入检索前优化(如数据粒度增强、索引结构优化)和检索后处理(如重排序、提示压缩)的改进框架。 的特例,Advanced RAG 是 Modular RAG模块化RAG框架,支持灵活添加或替换模块(如搜索、记忆、路由模块),以适应多样化的任务需求。 的特例。
知识加工阶段的实测优化手段包括:用固定字符切分加冗余字符控制成本;用语义理解模型按句子切分保证语义完整;用 HyDEA technique that generates hypothetical answers to improve query matching in retrieval systems. 预先为文档生成假设性问题来提升召回覆盖面;对 QA-pair 和文章片段做索引降噪(如用大模型抽取核心关键词,案例中无效相似成分超 60% 会严重干扰匹配);用摘要索引+文档块索引的多级索引降低近似检索误差。
query 改写与召回阶段的有效策略:RAG-Fusion一种查询扩展与融合排序技术,生成多个查询并融合检索结果。 通过 LLM 生成多个子查询、分别向量检索后用 RRF 倒数排序融合(对每个 question 的结果独立排序,再对所有结果综合排序);Step-Back Prompting提示技术,先提出更抽象的问题,再基于原则推理原始问题。 先抽象出更一般的问题再推理;数据召回采用向量召回+分词召回(BM25一种基于概率信息检索理论的文本检索模型,通过词频和逆文档频率对文档进行排名,考虑词项的相关性和稀有性。)+图谱召回的多路召回方式,最后经过去重合并和 Rerank 精排(如 bge-reranker)统一筛选标准。
RAG 详解:挑战、范式、工程实践与优化策略
暑期实习基本结束了,校招马上就来。
这届秋招和往年不太一样。求职的人变多,HC 变少,岗位要求还往上提了一截。与其等一个"双向奔赴",不如提前把功课做足。
最近我们整理了不少大厂的面试题,也在社群里帮球友答疑,发现 RAG 是面试高频考点,也是实际业务落地绕不开的方向。相关的面试题和答疑整理,可以看我们之前发的《大模型面试宝典》(2024 版)。
一、RAG 的背景介绍
ChatGPT 火起来之后,大语言模型重新回到聚光灯下。语言识别、理解、推理,这些能力在 NLP 领域展现出来的效果确实惊艳。政务、医疗、交通、导购,各行各业都在琢磨怎么把大模型用起来。
通义系列、GPT 系列、LLaMA 系列,在语言交互场景下表现抢眼。Gemini 这类模型甚至长出了视觉和听觉,开始往智能体方向演化。有些指标上,它们已经超过了人类。
但大模型的短板也摆在那里:
知识的局限性:模型的知识广度取决于训练数据集的广度。市面上大多数大模型的训练集来自网络公开数据,企业内部数据、特定领域或高度专业化的知识,它们学不到。
知识的滞后性:模型训练完就定格了,之后出现的新知识它不知道。大模型训练成本太高,不可能为了补知识频繁重训。
幻觉问题:所有 AI 模型的底层都在做数学概率运算,大模型也一样。遇到它不懂或不擅长的场景,就会一本正经地胡说八道。这种幻觉还不好分辨,因为你需要先具备相关领域的知识才能看出来。
数据安全性:没有企业愿意把自己的私域数据上传到第三方平台训练。完全依赖通用大模型,就不得不在数据安全和效果之间做取舍。
为了摆脱纯参数化模型的限制,语言模型可以采用半参数化方法:把非参数化的语料库和参数化模型结合起来。这个方法就是 RAG(Retrieval-Augmented Generation,检索增强生成)。
二、RAG 的挑战
RAG 通过检索大量已有知识,配合生成模型,给复杂的问答、文本摘要和生成任务带来了新解法。优势很明显,但落地过程中要面对几个坎。
2.1 数据质量差导致检索效果差
检索阶段输出什么,直接决定生成阶段的输入和最终结果。如果 RAG 的数据库里存了大量错误信息,并且这些信息被检索出来了,模型就会被带偏。这时在检索环节做再多优化,效果也有限。
2.2 数据向量化的信息损失
要做高效检索,得先把文本转成数值向量,这一步被称为数据向量化。目标是把文本映射到低维向量空间,语义相近的文本在空间里距离近,语义不同的距离远。问题在于,文本数据的复杂性和多样性很难用有限的向量完整表达。向量化一定会丢掉一些细节和特征,检索准确性因此受损。
2.3 语义搜索的不准确
语义搜索也叫数据召回,任务是根据用户问题,从文档集合里找出语义最相关的文档。难点是怎么理解用户问题和文档的语义,以及怎么衡量两者之间的相似度。主流做法是基于向量化结果,用向量空间里的距离或相似度来度量。但这种方法有局限:向量距离不一定反映真实语义相似度,空间里的噪声和异常值也会干扰结果。语义搜索的准确率没法保证百分之百。
三、RAG 通用范式
3.1 Naive RAG
原始 RAG 是最早的研究范式,流程可以拆成三步:
建立索引:这一步通常在离线状态下做。先把数据清洗、分块,再用 embedding 模型把分块后的知识转成语义向量,建好索引。
检索:用户的 query 用同一个 embedding 模型编码,计算问题向量和文档块向量的相似度,取前 K 个最相似的文档块,作为当前问题的增强上下文。
生成:把问题和检索到的相关文档合并成新的提示词,交给大语言模型生成答案。如果有历史对话,也可以拼进去,支持多轮对话。
初级 RAG 的问题集中在三个方面:检索质量低、生成质量差、增强过程难。
检索质量低:长文本直接做索引,主题不突出,核心知识被淹没在冗余信息里。用用户的原始 query 去检索,也没能突出他的真实诉求。query 和索引匹配不上,检索质量就上不去。
生成质量差:没检索到知识,或者检索到的知识质量差,大模型只能靠自己发挥。答出来的内容空洞,没法直接用,知识库失去了意义。
增强过程难:把检索到的信息和不同任务整合在一起,不是件容易的事,有时输出会不连贯、不一致。还有个风险:生成模型过度依赖增强信息,只会复述检索内容,没有自己的归纳和洞察。
要解决这些问题,需要在检索前和检索后做优化,这就引出了高级 RAG。
3.2 Advanced RAG
高级 RAG 在初级 RAG 的基础上,围绕知识检索做优化,在检索前、检索中和检索后都加了策略,对应解决索引、检索和生成的问题。
检索前优化
检索前优化集中在知识切分、索引方式和 query 改写上。
知识切分是把长文本按照语义内聚性切成小块,解决核心知识被淹没和语义截断的问题。
索引方式优化是调整数据索引的组织形式来提升检索效果。比如去掉无效数据,或者插入一些数据来提高索引覆盖度,让索引和用户问题的匹配度更高。
query 改写要理解用户想表达的意图,把原始问题转换成适合知识库检索的形式,检索精准度自然就上去了。
检索优化
检索阶段的任务是召回知识库里最相关的知识。
通常检索基于向量搜索,计算 query 和索引数据之间的语义相似度。因此多数检索优化技术都围绕 embedding 模型展开。
微调 embedding 模型,让它适配特定领域的上下文,特别是术语不断演变或罕见的领域。BAAI/bge 就是一个可以微调的高性能 embedding 模型。
动态 embedding 会根据上下文调整词的向量表示,静态 embedding 则给每个词固定一个向量。OpenAI 的 embeddings-ada-02 就是复杂的动态 embedding 模型,能捕获上下文语义。
除了向量搜索,还有混合搜索,通常指向量搜索加关键字搜索的组合。业务里需要精确的关键字匹配时,这种方案很管用。
检索后优化
检索到的上下文还要额外处理。可能超出上下文窗口限制,可能引入噪声,干扰对关键信息的关注。常用的技术有两个:
提示压缩:删掉无关内容,突出重要上下文,减小整体提示词长度。
重新排序:用机器学习模型重新计算检索到的上下文的相关性得分,把更相关的排前面。
3.3 Modular RAG
RAG 技术不断演变,突破了传统"检索-生成"框架,模块化 RAG 的概念就出现了。结构上更自由、更灵活,引入更多功能模块,比如查询搜索引擎、多回答融合。技术上把检索和微调、强化学习等手段结合起来。流程上对模块之间做设计和编排,衍生出多种 RAG 模式。
模块化 RAG 不是凭空出现的。三个范式之间是继承与发展的关系:Advanced RAG 是 Modular RAG 的一种特例,Naive RAG 又是 Advanced RAG 的一种特例。
3.3.1 新增模块
搜索模块:和相似度检索不同,它用在特定场景的特殊语料上。通常借助向量、分词、NL2SQL自然语言到结构化查询语言转换技术,允许用户使用自然语言查询数据库,系统自动生成相应的SQL语句。 或 NL2Cypher将自然语言转换为Cypher图查询语言。 等能力做检索。
预测模块:减少用户问题里的冗余和噪声,突出真实意图。这个模块不直接检索,先让 LLM 生成必要上下文。相比直接检索,LLM 生成上下文后再检索,得到的内容更可能包含相关信息。
记忆模块:留存多轮对话,下次会话时知道用户之前问了什么。
融合模块:RAG-Fusion 用 LLM 把用户查询扩展成多个查询,既捕捉显式信息,也挖掘更深层的知识。融合过程包括对原始查询和扩展查询做并行向量搜索、智能重排序,最后得到最佳结果。这样做能让搜索结果贴合用户的显式和隐式意图,找到更深层、更相关的信息。
路由模块:RAG 的检索流程会用到各种来源的内容,不同领域、不同语言、不同形式。查询路由器帮查询选择合适的数据库,可能是向量数据库、图数据库或关系数据库,也可能是层次结构索引。开发者需要预先定义好路由器的决策方式,通过 LLM 调用来执行,把查询指向选中的索引。
任务适配器模块:根据具体任务定制化 Adapter。
3.3.2 新增模式
有了上面六大模块,可以快速组合出适合自己业务的 RAG。每个模块高度可扩展,灵活性很大。
比如 RR 模式就是传统的 Naive RAG。RRRR 模式可以搭出 Advanced RAG。还可以实现基于检索结果和用户评价的奖惩机制,用来强化和纠正检索器的行为。
四、RAG 通用范式的工程实践
4.1 技术架构
我们实践中采用的 RAG 技术架构,可以概括为一底座三中心:数据管理底座、模型中心、多引擎中心、召回策略中心。
工程架构上,每个子系统按照能力划分成子模块,上层配置调度策略并统一调度,符合 Modular RAG 的技术规范。
检索技术上,围绕检索做了大量索引降噪、多路召回、知识去重、重排等操作,符合 Advanced RAG 的技术规范。
4.1.1 知识库基础数据底座
基础数据底座包含数据生产和数据加工能力。
数据生产包括数据版本、血缘管理、引擎同步等能力。
知识加工主要包括数据切片、索引优化等能力。
4.1.2 模型中心
模型中心包含生成式大模型和理解式小模型。
生成式大模型提供这些能力:
- 引用式生成:把检索到的知识和用户问题结合起来,做增强生成。
- query 改写:理解用户真实意图,改写或泛化成适合知识库检索的 query。
- Text2Cypher:把知识库元数据和用户问题转成图谱语言,支撑上层业务的图谱检索。
- NL2SQL:业务里需要访问数据库获取具体数据时,提供对应能力。
理解式小模型提供:
- 文档切块:把大块知识切成小片段。
- embedding:把知识库元数据和用户问题转成向量。
- rerank:对多路召回的数据做精排。
4.1.3 多引擎中心
多引擎中心包含向量、分词和图谱引擎,提供多种检索方式来提高知识命中率。
4.1.4 召回策略中心
召回策略中心在 RAG 建设中起到调度作用。在这里执行 query 改写、多路召回、检索后置处理,以及大模型引用式生成答案。
基于上面的架构,每个子能力模块化,上层配置调度策略,符合 Modular RAG 的技术规范。
4.2 RAG 建设路径
RAG 整体业务链路分为五个步骤:知识生产与加工、query 改写、数据召回、后置处理、大模型生产。
4.2.1 第一阶段:可运行
第一阶段的目标是保证系统能用。
知识生产与加工:先按固定字符切分,预留冗余字符来保证语义不被截断。
query 改写:结合上下文,用大模型的理解能力突出用户意图,以便更好地回答问题。
数据召回:先实现向量召回。多路召回里向量召回占比最大,也是最关键的一种召回方式。需要找一个和自身业务契合的 embedding 模型和向量数据库。
数据后置处理:因为只有向量召回这一路,用向量近似得分排序就行,按业务预期设定阈值筛选数据。筛选出的知识数据交给大模型,生成答案。
4.2.2 第二阶段:提效果
第二阶段的目标是提升 RAG 的检索效果。
知识生产与加工
- 固定字符切分虽然预留了冗余字符,还是会出现知识内聚性被破坏的情况。需要一个基于语义切分知识的模型,把上下文联系紧密的句子拆分成一条知识。
- 根据数据检索情况分析索引噪声,制定降噪措施。
query 改写
- 明确用户意图。
- 探索 RAG-Fusion 模式,根据用户 query 生成多个相似 query,分别检索数据。
- 多任务 query 抽取,把一个 query 拆分成多个子 query 来检索。
数据召回
- 在向量检索基础上,根据业务场景探索分词、图谱能力。有些业务还需要 NL2SQL 能力。
数据后置处理
- 数据去重合并。
- 建设多路召回结果的重排能力,制定统一的排序筛选标准。
4.2.3 第三阶段:高扩展
第三阶段的目标是在工程上提升可扩展性。各个业务功能做模块化设计,通过召回策略配置中心,配置出业务需要的 RAG 流程。
五、RAG 范式的优化实现策略
5.1 知识加工生成的实现策略
5.1.1 知识切片优化
文档片段过长对知识检索的影响很大,主要体现在两方面。
一是索引混淆。核心关键词被淹没在大量无效信息里,建立的索引中核心知识占的比重太小。语义匹配、分词匹配、图谱检索都很难精准命中关键数据,最终影响生成答案的质量。
二是 token 过长导致语义截断。知识数据在 embedding 时可能因为 token 超长而截断语义。检索结束后,知识片段越长,输入给大模型的信息条数越少,模型拿不到足够有价值的输入,生成质量也会受影响。
按固定字符切分
按固定字符拆分的做法,通过设置冗余字符来降低句子截断问题。一个完整句子要么在上文、要么在下文,尽量避免在句子中间断开。
这种实现方式成本最低。业务起步阶段可以先这么干。
按句子语义切分
固定字符切有时会把语义联系紧密的片段切成两条,数据质量会受影响。可以用语义理解小模型来做句子拆分,让拆分出来的知识片段语义更完整。
5.1.2 索引优化
HyDE
原始文档和用户问题一对一匹配,容错率很低。知识一次没匹配上,就无法被召回。
优化方案:处理知识数据时,预先用大模型生成一些相关的假设性问题。用户问题命中这些假设性问题时,也能搜到对应的知识数据。知识覆盖面就大了。
索引降噪
索引降噪是根据业务特点,去掉索引数据中的无效成分,突出核心知识,降低噪声干扰。QA-pair 和文章片段两类知识,处理方法类似。
QA-pair 类型知识
这类数据一般用 Q 作为索引列,和用户问题组成 QQ 搜索模式,匹配难度会低一些。但直接用原始 Q 做索引,会有无效词干扰的问题。举个例子:
用户 query:How can I start to sell on Alibaba?
匹配到的 query:How can I register an account on Alibaba.com?
这两句里无效的相似成分超过 60%,对索引匹配造成很大干扰。
优化方案:用大模型对向量索引中的 Q 做泛化,突出核心关键词,同时把 Answer 的主题也抽出来。Q 和 A 都突出关键词。
How can I register an account on Alibaba.com? 变成 register an account 加 Answer 主题。
核心主题突出了,无效数据干扰就降下来了。
文章片段类知识
文章片段篇幅长,和问题的语义差异可能较大,不好匹配。
优化方案:通过 HyDE 生成假设性问题,组装成 QA-pair 形式,再用大模型抽取核心关键词降噪。
多级索引
近似检索和传统数据库检索不同。近似检索通过聚类或 HNSW 建索引后,检索时会有近似误差。知识库很大时,检索准确度和性能都会出问题。一个有效办法是建两个索引:一个由摘要组成,一个由文档块组成。分两步搜:先用摘要过滤出相关文档,再在这个范围内细搜。
5.2 query 改写的实现策略
直接用原始 query 检索,有两个问题。
一是知识库里的数据无法直接回答问题,需要组合多条知识才能找到答案。
二是问题涉及的细节多时,大模型往往给不出高质量回答。
业界提出了 RAG-Fusion 和 Step-Back Prompting 两种优化方案。
5.2.1 RAG-Fusion
RAG-Fusion 可以理解为 MultiQueryRetriever 的进化版。先根据原始 question 从不同角度生成多个新 question,提升问题质量。然后针对每个 question 做向量检索。到这里为止,还都是 MultiQueryRetriever 的功能。区别在于,RAG-Fusion 在把结果喂给 LLM 之前,增加了一个排序步骤。
RAG-Fusion 的流程:
查询生成/改写:用 LLM 对用户初始查询进行改写,生成多个查询。
向量搜索:对每个生成的查询做向量检索,形成多路召回。
倒数排序融合:用倒数排名融合(RRF)算法,根据文档在多个查询中的相关性重新排列。
重排:用重排算法对结果再做一次排序。
输出生成:参考重排后的 TopK 结果,生成最终输出。
排序包含两个动作。一是独立对每个 question 检索返回的内容按相似度排序,确定每个 chunk 在各自候选集中的位置,相似度越高排名越靠前。二是对所有 question 返回的内容用 RRF 做综合排序。
5.2.2 Step-Back Prompting
引入一个"后退一步"的问题。这个问题通常更容易回答,围绕一个更广泛的概念或原则展开。大语言模型在回答更宽泛的问题时,能更有效地构建推理。
Step-Back Prompting 分成两步:
1)抽象。LLM 不急着回答原始问题,先提出一个关于更大概念或规则的更一般性问题,帮自己思考和查找事实。
2)推理。得到一般性问题的答案后,LLM 用这些信息去回答原始问题。这叫"抽象基础推理",利用更大视角的信息来回答更难的问题。
示例:问"一辆汽车以 100 公里/小时的速度行驶 200 公里,需要多长时间?"
大模型对数学计算可能会犯迷糊。
后退提示:给定速度和距离,计算时间的基本公式是什么?
得到公式:时间 = 距离 / 速度。
代入:时间 = 200 公里 / 100 公里/小时 = 2 小时。
5.2.3 用户 query 降噪
用户提问时,有些停用词不传递核心信息。比如 "How to register an account on Alibaba.com" 这句话,核心诉求是 register an account,"How to" 的作用不大。当业务下沉到 Alibaba 外贸场景时,"on Alibaba.com" 也不再重要,知识库里的内容天然和 Alibaba.com 相关。
处理方式是去除停用词。ES 里维护了一份停用词库,可以直接用。没有 ES 的话,可以自己维护。nltk、stopwords-iso、Rank NL 这些开源库里都有大量停用词,按需取用。
5.3 数据召回的实现策略
5.3.1 向量召回
在 NLP 领域,向量召回的地位至今无可替代。把自然语言转换成低维向量,用向量相似度来评判语义相似度,是业界的主流做法。结合前面说的向量索引降噪、假设性问题、query 优化,效果一般都不会差。
不过向量召回也有弱点。文本向量化模型训练不够好的时候,召回准确率会偏低。这时需要其他召回方式做补充。
5.3.2 分词召回
倒排索引检索是另一条路。基于 BM25 打分排序机制,找到分词上比较相似的知识数据。配合停用词去除策略,能把精准度提上去。
5.3.3 图谱召回
知识图谱在知识生产和关系提取上有独特优势。它能基于现有数据,通过关系抽象产生新知识。
举个例子。有两条知识:
1)阿里巴巴在国内采用 A 公司的物流服务。
2)阿里巴巴与物流公司 B 达成合作,为客户提供更加优质、便捷的物流服务。
经过 NL2Cypher 抽取:
alibaba-logisticsServices-A
alibaba-logisticsServices-B
基于这两条知识,可以产生一条新知识:alibaba-logisticsServices-A & B。
用户问阿里巴巴平台支持哪些物流服务时,可以直接找到 A & B。
5.3.4 多路召回
单纯靠语义向量召回,遇到模型训练不充分的情况,准确率确实上不去。一般业务会采用多路召回的方式来兜底。多路召回的结果经过模型精排,筛出优质结果。至于用几种召回策略,根据业务情况来定。
5.4 后置处理的实现策略
5.4.1 文档合并去重
多路召回可能返回同一个结果,这部分数据要去重,不然大模型的输入 token 就白浪费了。
去重后的文档,可以根据数据切分的血缘关系做合并。比如 D1、D2、D3 都来自同一个父知识片段 D,那就用 D 替换 D1、D2、D3,保证知识语义的完整性。
5.4.2 Rerank 精排
每种召回策略的打分模型都不一样,到了统一的数据筛选层面,得有一套统一的评判标准。
目前可用的重排模型不多。Cohere 提供在线模型,可以通过 API 调用。开源的有 bge-reranker-base、bge-reranker-large 等,按业务需要挑选。
六、优化经验总结
RAG 做出来容易,做好很难。每一个环节都有可能拖累最终效果。
我们在实践中也做了不少探索:
知识切分方面,做了固定字符切分的效果验证,分析索引噪声点,用大模型做了大量降噪处理。
query 改写方面,用大模型做更明确的意图抽取,探索了用户 query 降噪。
数据召回方面,对 bge、voyage、cohere 等 embedding 模型做了大量评测,尝试向量加分词组合的召回策略。
后置处理方面,做了知识去重和 rerank 的探索。
只要知识依赖和知识更新这两个问题没被解决,RAG 就有存在的价值。它还会持续演进下去。
技术交流和资料
技术这东西要学会分享和交流,闭门造车走不远。一个人走得快,一群人走得远。
我们建了一个大模型算法技术交流群,相关资料和答疑都在群里。群友已经超过 2000 人。加群时最好备注:来源 + 兴趣方向,方便找到同路人。
公众号「机器学习社区」后台回复「加群」,或者添加微信号 mlc2040,备注:技术交流。
精选
- 轻松构建聊天机器人,大模型 RAG 有了更强大的 AI 检索器
- 一文搞懂大模型训练加速框架 DeepSpeed 的使用方法
- MoE 大模型的前世今生
- 从零解读 SAM(Segment Anything Model)
- AI 绘画爆火背后:扩散模型原理及实现
- 从零开始构建和训练生成对抗网络(GAN)模型
- CLIP/LLaVA/LLaVA1.5/VILA 模型全面梳理
- 从零开始创建一个小规模的稳定扩散模型
- Stable Diffusion 模型:LDM、SD 1.0、1.5、2.0、SDXL、SDXL-Turbo 等
- 文生图模型:AE、VAE、VQ-VAE、VQ-GAN、DALL-E 等 8 模型
- 一文搞懂 BERT(基于 Transformer 的双向编码器)
- 一文搞懂 GPT(Generative Pre-trained Transformer)
- 一文搞懂 ViT(Vision Transformer)
- 一文搞懂 Transformer
- 一文搞懂 Attention(注意力)机制
- 一文搞懂 Self-Attention 和 Multi-Head Attention
- 一文搞懂 Embedding(嵌入)
- 一文搞懂 Encoder-Decoder(编码器-解码器)
常见问题(FAQ)
RAG优化有哪些方法?
RAG优化可从数据加工、query改写、数据召回、后置处理入手。关键技术包括索引降噪、假设性问题、RRF排序融合、HyDE、RAG-Fusion、Step-Back Prompting等,能有效提升检索质量与生成效果。
Naive RAG和Advanced RAG有什么区别?
Naive RAG流程为索引、检索、生成,存在检索质量低、生成质量差等问题。Advanced RAG在检索前、中、后增加优化,如知识切分、query改写、混合搜索、提示压缩和重排序,显著提升效果。
RAG面临哪些挑战?
RAG面临三大挑战:数据质量差导致检索效果差;数据向量化造成信息损失;语义搜索不准确。这些问题影响检索准确性,进而影响生成质量。
版权与免责声明:本文仅用于信息分享与交流,不构成任何形式的法律、投资、医疗或其他专业建议,也不构成对任何结果的承诺或保证。
文中提及的商标、品牌、Logo、产品名称及相关图片/素材,其权利归各自合法权利人所有。本站内容可能基于公开资料整理,亦可能使用 AI 辅助生成或润色;我们尽力确保准确与合规,但不保证完整性、时效性与适用性,请读者自行甄别并以官方信息为准。
若本文内容或素材涉嫌侵权、隐私不当或存在错误,请相关权利人/当事人联系本站,我们将及时核实并采取删除、修正或下架等处理措施。也请勿在评论或联系信息中提交身份证号、手机号、住址等个人敏感信息。



