尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

RAG系统实战:从分块、嵌入到重排序与多路融合的六脉神剑

RAG系统实战:从分块、嵌入到重排序与多路融合的六脉神剑 1. 从“六脉神剑”到检索增强一个架构师的实战视角最近和团队里的几个工程师聊天发现一个挺有意思的现象大家一提到RAG检索增强生成脑子里蹦出来的第一反应往往是“向量检索大模型”。这当然没错但就像把“降龙十八掌”简化成“一掌拍出去”一样虽然核心动作是那个但中间的劲力变化、招式衔接、临敌应变全丢了。我们正在做的很多项目无论是内部知识库问答、智能客服还是复杂的行业文档分析遇到的瓶颈恰恰不在“检索”或“生成”本身而在于检索前、检索中、检索后那一系列被忽视的“增强”环节。标题里提到的“分块、Embedding、Rerank、GraphRAG与多路融合”在我看来就是构成一套高可用、高精度RAG系统的“六脉神剑”每一“脉”都解决一个特定的痛点合起来才能剑气纵横无往不利。这篇文章我想从一个一线架构和开发者的角度抛开那些华而不实的理论深入聊聊这六个核心环节在实际落地中我们到底该怎么选、怎么做、怎么避坑。我会结合我们最近在金融研报分析和智能合同审查项目中的真实案例把每个环节的技术选型、参数调优、以及那些只有踩过坑才知道的“潜规则”掰开揉碎讲清楚。目标很简单让你看完之后不仅能理解这“六脉”分别是什么更能知道在你的下一个RAG项目里如何根据数据特性、业务场景和性能要求灵活地组合运用它们真正构建出属于自己的“检索增强六脉”。2. 第一脉分块Chunking—— 检索的基石远不止按字数切割几乎所有RAG教程的开篇都会讲分块但大多数都停留在“设置一个chunk_size和chunk_overlap”的层面。在实际项目中分块策略的优劣直接决定了后续检索效果的天花板。粗糙的分块就像用渔网捞金鱼要么漏掉关键信息要么捞上一堆无关的杂物。2.1 分块的核心矛盾语义完整性与检索粒度分块的本质是在“语义完整性”和“检索粒度”之间寻找最佳平衡点。块太大包含的信息多语义可能更完整但也会引入噪声并且被检索到的概率会降低因为块内可能只有一小部分相关。块太小检索粒度细容易定位到精确信息但可能破坏一个完整逻辑比如将一个因果关系的“因”和“果”切到了两个块里导致检索到的片段无法被大模型正确理解。我们早期在一个法律条款查询项目中就栽过跟头。最初采用固定的512字符分块结果经常出现这样的问题用户问“合同单方解除权需要满足什么条件”系统检索到了一个以“享有单方解除权”结尾的块而具体的“条件”列举却在下一个块里。大模型拿到这个不完整的上下文生成的答案自然也是残缺的。踩坑心得不要一上来就纠结于chunk_size500还是1000。首先应该花时间分析你的文档结构。是技术手册章节分明、会议纪要松散对话、还是法律合同条款严谨不同的结构需要不同的分块策略。2.2 超越简单分块基于语义与结构的智能切分固定长度的滑动窗口分块是最简单的方法但往往不是最优的。在实践中我们通常会采用分层或基于解析的分块策略。递归式分块这是LangChain等框架里常用的方法。先尝试按大段落\n\n分如果段落太长再按句子.、!、?分如果句子还太长最后再按固定长度分。这种方法比纯固定长度更能保持语义边界。# 伪代码示例递归分块逻辑 from langchain.text_splitter import RecursiveCharacterTextSplitter text_splitter RecursiveCharacterTextSplitter( chunk_size500, # 目标块大小 chunk_overlap50, # 块间重叠字符保持上下文连贯 separators[\n\n, \n, 。, , , , , , ] # 分隔符优先级 ) chunks text_splitter.split_text(long_document)关键在separators的顺序它定义了分割的优先级。对于中文我们通常会把句号、感叹号、问号放在换行符之后。基于文档解析的分块对于高度结构化的文档如PDF、Word这是更高级的策略。我们使用PyMuPDF用于PDF、python-docx等库先解析出文档的层级结构。标题感知分块确保每个块都附带其所属的章节标题作为元数据。这样在检索时不仅可以匹配内容还可以匹配标题精度更高。表格/图表特殊处理将表格和图表内容单独提取并分块为其生成描述性文本如“下表展示了2023年Q1至Q4的营收数据”并将描述文本与原始数据CSV格式一起存入向量库。这能极大改善对表格数据的检索能力。保留元数据除了内容每个块还应携带来源文件、页码、章节号等元数据。这在最终生成答案时用于引用溯源至关重要。语义分块这是前沿探索方向。利用嵌入模型或小型语言模型来判断哪里是自然的语义边界。例如计算句子间的嵌入相似度在相似度骤降的地方进行切分。或者使用经过微调的模型来预测分段点。这种方法成本较高但对某些类型文档如文学小说、访谈记录效果显著。在我们的金融研报项目中我们最终采用的是一种混合策略先用PyMuPDF解析PDF识别出章节标题基于字体大小和样式然后以章节为粗粒度单位。在每个章节内部使用递归式分块但将separators调整为优先按段落\n再按句子。同时我们会特别标记出“摘要”、“风险提示”、“财务数据表”等部分对这些部分采用更保守块更大或更特殊如表格描述的分块策略。这样当用户问“请总结XX公司的投资风险”时系统能更精准地定位到“风险提示”章节下的相关块。3. 第二脉嵌入Embedding—— 从通用到领域定制的“理解力”跃迁分块之后就是为这些文本块生成向量表示即嵌入。这一步决定了你的向量检索系统“理解”文本的能力。很多团队直接选用开源的text-embedding-ada-002或BGE系列这没错但在特定领域这可能只是60分的方案。3.1 嵌入模型选型的三维评估能力、速度、成本选择嵌入模型时我们需要在三个维度上权衡维度说明典型代表与考量嵌入能力模型对语义的理解深度、对领域术语的把握、在多语言和长文本上的表现。通用强者OpenAI的text-embedding-3系列、Cohere的embed系列、 Voyage的专用模型。它们综合能力强评测榜常客。开源翘楚BAAI的BGE系列、GTE系列。在MTEB等基准测试上表现优异且免费。领域专用在金融、法律、医疗等语料上进一步微调过的模型。理解专业术语和上下文的能力更强。推理速度生成一个向量所需的时间直接影响数据预处理和查询响应的延迟。开源模型通常可以在本地GPU甚至CPU上快速推理。商用API则受网络延迟影响。对于百万级文档库预处理速度是关键。使用成本包括API调用费用和本地部署的算力成本。商用API按调用次数计费量大时成本可观。开源模型免费但需要自备算力GPU/CPU和运维。我们曾经在智能客服项目初期全部使用OpenAI的嵌入API当知识库文档达到十万级别时仅一次性生成嵌入向量的成本就高达数百美元且后续每次扩容都要重新计费。后来我们切换为本地部署的BGE-large-zh-v1.5模型在保证效果小幅下降通过后续的Rerank弥补的前提下实现了零边际成本并且推理速度因为省去了网络往返而更快。3.2 为什么以及如何进行领域微调通用嵌入模型是在海量互联网文本上训练的它理解“苹果”是一种水果或一家公司但它可能无法区分金融术语“头寸”和“仓位”的细微差别或者法律文件中“要约”和“承诺”的紧密关联。领域微调的核心价值让模型学会在特定领域的语义空间中将相关的专业概念映射得更近将不相关的概念推得更远。例如在医疗领域“流感”和“抗生素”虽然常一起出现但语义并不相似一个是病一个是药。而“二甲双胍”和“糖尿病”则应该非常接近。如何进行轻量级微调我们通常采用对比学习的方法需要准备一个高质量的领域句子对数据集正例对语义相同或高度相关的句子。例如两个不同描述但指向同一法律条款的句子。负例对语义不相关的句子。可以是随机负例也可以是困难负例例如涉及相同实体但主题不同的句子。使用框架利用SentenceTransformers库可以很方便地微调BERT类模型。关键步骤是构建InputExample然后使用MultipleNegativesRankingLoss或CosineSimilarityLoss进行训练。# 伪代码示例使用SentenceTransformers微调 from sentence_transformers import SentenceTransformer, InputExample, losses from torch.utils.data import DataLoader model SentenceTransformer(BAAI/bge-base-zh) # 加载基础模型 # 准备训练数据 train_examples [ InputExample(texts[甲方有权单方解除合同, 合同解除权归属于甲方], label1.0), InputExample(texts[甲方有权单方解除合同, 乙方应在三日内支付货款], label0.0), # ... 更多正负例对 ] train_dataloader DataLoader(train_examples, shuffleTrue, batch_size16) train_loss losses.CosineSimilarityLoss(model) model.fit(train_objectives[(train_dataloader, train_loss)], epochs3, ...)我们的实践在法律合同项目中我们收集了数万条合同条款及其解释、关联案例摘要构建了正负例对对BGE-base-zh模型进行了微调。微调后的模型在合同条款相似性判断任务上的准确率提升了超过15%。这意味着当用户用口语化提问“如果对方不付钱怎么办”时系统能更准确地检索到合同中关于“付款违约”和“违约责任”的条款。重要提示微调嵌入模型需要高质量的标注数据且存在过拟合风险。对于大多数项目优先使用强大的通用模型如text-embedding-3-large或BGE-large并搭配后续的Rerank模块往往是性价比更高的选择。微调更适合领域知识壁垒高、且有充足数据资源的场景。4. 第三脉重排序Rerank—— 召回精度从“不错”到“精准”的关键一跃向量检索召回阶段我们通常从向量数据库中取出Top K个相关块比如K10。但向量检索的本质是近似最近邻搜索它基于嵌入向量的余弦相似度。这个相似度是一个“粗粒度”的相关性打分它可能因为以下原因出错词汇不匹配用户问“如何配置服务器”文档中是“服务器部署步骤”。语义鸿沟用户问“心情低落怎么办”文档中是“抑郁症的自我调节方法”。向量模型可能无法建立强关联。长尾问题对于非常专业或生僻的查询通用嵌入模型表现不稳定。这时就需要重排序模型出场了。它的任务是对召回到的K个候选文档进行更精细化的相关性打分重新排序只把最相关的少数几个比如Top 3送给大模型生成答案。4.1 重排序模型的工作原理与选型重排序模型通常是一个交叉编码器。它与用于生成嵌入的双编码器不同双编码器查询和文档分别编码为向量通过向量相似度如余弦计算得分。优势是快可以预先计算文档向量适合海量检索。交叉编码器将查询和文档拼接在一起送入模型直接输出一个相关性分数。优势是准因为模型能同时看到查询和文档的完整信息进行深度的注意力交互。劣势是慢不能预先计算需要实时推理。目前常用的重排序模型/服务包括Cohere Rerank公认效果最好的商用服务之一简单易用。BGE Reranker智源开源的优秀重排序模型有中英文版本支持本地部署。SentenceTransformers Cross-Encoder可以使用cross-encoder模型进行重排序例如cross-encoder/ms-marco-MiniLM-L-6-v2。4.2 实战配置与效果对比在我们的系统中重排序是一个独立的服务。流程如下用户查询进入系统。向量数据库召回Top 10的文档块。将查询和这10个文档块组成10个(query, document)对发送给重排序模型。重排序模型为每个对打分例如0-1之间的分数。按分数降序排列选取Top 3的文档块连同查询一起送入大模型生成最终答案。一个具体的性能对比实验 我们在金融QA测试集上对比了“仅向量检索”和“向量检索 BGE Reranker”的效果。评估指标仅向量检索 (Top 3)向量检索 BGE Reranker (Top 3)提升Hit Rate 378%92%14%MRR 30.650.850.20平均生成答案准确率71%88%17%解释Hit Rate3 表示正确答案出现在前3个召回结果中的比例。MRR平均倒数排名越高表示正确答案的排名越靠前。可以看到引入重排序后效果提升非常明显。这相当于用少量的计算开销对10个候选进行重排换来了生成答案质量的大幅提升避免了将不相关文档送入大模型导致的幻觉或答非所问。实操建议对于生产级RAG系统重排序模块几乎是必选项。如果你的查询精度要求高或者发现大模型经常基于不相关的上下文生成答案优先考虑增加重排序。可以从Cohere的API开始尝试对效果和延迟满意后为了成本和可控性可以迁移到本地部署的BGE Reranker。5. 第四脉图检索增强GraphRAG—— 让知识“活”起来建立深度关联传统的向量检索是“扁平化”的每个文档块是一个孤立的点。但真实世界的知识是高度关联的人物、事件、概念、实体之间存在着复杂的网络关系。GraphRAG的核心思想就是先从文档中提取出实体和关系构建一个知识图谱然后利用图谱进行检索。5.1 GraphRAG vs. 传统向量检索解决不同的问题假设你的知识库是关于一个公司历史的文档。用户问“创始人A和CEO B在项目X上的合作是怎样的”传统向量检索可能会分别检索到包含“创始人A”、“CEO B”、“项目X”的文档块。但大模型需要自己从这些分散的块中拼凑出“合作”关系容易出错或遗漏。GraphRAG知识图谱中已经存在(创始人A)-[参与]-(项目X)和(CEO B)-[领导]-(项目X)的关系。通过图谱查询可以直接找到连接A、B、X的路径检索到“他们在项目X上是领导与参与的合作关系”这个结构化信息并将其作为上下文提供给大模型。GraphRAG的优势在于多跳推理可以回答需要连接多个事实的问题例如“A的导师的同事是谁”。关系查询直接查询实体间的关系类型和强度。社区发现发现紧密关联的实体群组用于概括性问答。5.2 如何构建和利用知识图谱进行RAGGraphRAG的流程比传统RAG更复杂可以分为离线构建和在线查询两个阶段。离线构建阶段实体与关系抽取使用大模型如GPT-4或专用信息抽取模型如UIE从文档中抽取三元组(头实体关系尾实体)。例如从句子“张三在2023年创立了ABC公司”中抽取(张三创立ABC公司)。知识图谱存储将抽取的三元组存入图数据库如Neo4j、NebulaGraph或JanusGraph。每个实体是节点关系是边可以附加属性如创立时间。文本关联最关键的一步必须建立图谱节点与原始文本块之间的链接。通常为每个三元组记录其来源的文档块ID。这样当从图谱中检索到相关节点/路径时能快速定位到支撑这些关系的原文。在线查询阶段查询理解当用户查询到来时先用大模型或NER模型识别出查询中的关键实体。图谱检索在图数据库中执行查询。这可能包括实体检索找到与查询实体直接相关的节点和边。路径查询查找连接多个实体的最短路径。邻居拓展获取某个实体的多度邻居信息。上下文组装根据图谱检索到的节点和路径找到它们关联的原始文本块。将这些文本块作为增强的上下文。答案生成将“用户查询 图谱检索到的结构化关系描述 关联的原始文本块”一起送入大模型生成最终答案。我们在人物传记分析项目中的实践我们处理了数百篇科技领袖的传记文章。构建的知识图谱包含了人物、公司、产品、时间、事件等实体以及“创立”、“投资”、“任职于”、“发布”等关系。当用户查询“马斯克和贝佐斯在太空领域的竞争有哪些关键事件”时系统识别实体“马斯克”、“贝佐斯”、“太空领域”。在图谱中查找与这两个人都相关的“公司”节点SpaceX, Blue Origin以及连接这些公司的“竞争”关系边。沿着这些边找到记载了具体竞争事件如火箭回收、卫星互联网的原文块。将这些事件按时间线组织成上下文送给大模型生成一个脉络清晰的竞争历史概述。这个效果是单纯向量检索难以实现的因为它需要将分散在不同文档中、关于不同公司的信息通过“人物-公司-事件”的图谱网络串联起来。重要考量GraphRAG的构建成本高涉及复杂的流水线抽取、消歧、融合。它并非替代向量检索而是强有力的补充。适用于知识实体密集、关系复杂的领域如学术文献、人物关系、产品知识库等。对于一般性的文档问答传统向量检索Rerank可能更简单高效。6. 第五脉多路召回与融合Hybrid Search—— 不把鸡蛋放在一个篮子里不同的检索方式各有优劣。向量检索擅长语义匹配但可能忽略精确关键词。关键词检索如BM25擅长精确匹配字面词但无法处理语义变化。GraphRAG擅长关系推理。多路召回融合的核心思想就是同时使用多种检索器进行召回然后融合它们的结果取长补短。6.1 常见的召回路径与融合策略一个典型的混合检索系统可能包含以下路径路径A密集向量检索使用嵌入模型召回语义相似的Top K个文档。路径B稀疏向量检索使用BM25、TF-IDF等算法召回关键词匹配度高的Top K个文档。路径C知识图谱检索如上节所述召回与查询实体相关的路径和文本。路径D元数据过滤基于日期、作者、标签等结构化字段进行筛选。融合策略是混合检索的精华所在常见的有加权分数融合为每一路的检索结果打分如向量检索的余弦相似度、BM25的分数、图谱检索的置信度然后为每路分配一个权重计算加权总分后重新排序。最终分数 α * 向量检索分数 β * 关键词检索分数 γ * 图谱检索分数权重α, β, γ需要根据你的数据和查询类型进行调优。通常向量检索权重最高。RRF倒数排序融合这是一种简单却非常有效的无参数融合方法。它不关心每路的具体分数只关心排名。对于每个文档计算它在各路结果中的排名倒数之和RRF分数 Σ (1 / (k rank_i))其中rank_i是文档在第i路结果中的排名k是一个常数通常取60。按RRF分数重新排序。这种方法能公平地给予各路结果中排名靠前的文档以高权重。学习排序将多路检索的特征各路分数、排名、文本特征等输入到一个机器学习模型如LambdaMART中训练一个排序模型。这是最复杂但可能效果最好的方法需要大量标注数据。6.2 实战中的融合方案设计在我们的通用企业知识库项目中我们实现了一个简单的加权融合方案主要结合了向量检索和关键词检索。架构用户查询Q进入。并行召回向量检索器使用BGE模型召回Top 20的文档块得到列表V_results带余弦相似度分数归一化到0-1。关键词检索器使用Elasticsearch的BM25召回Top 20的文档块得到列表K_results带BM25分数需进行归一化。分数归一化由于两路分数尺度不同我们使用最小-最大归一化将它们统一到[0, 1]区间。对于BM25这种理论上无上界的分数我们采用当前批次结果的最大最小值进行归一化。加权融合我们设定权重α0.7,β0.3偏向语义检索。对于每个同时出现在两路结果中的文档D其融合分数为S_fused 0.7 * S_vector 0.3 * S_bm25。对于只出现在一路结果中的文档则用该路分数乘以对应权重。重排序对融合后的Top 15个结果再用BGE Reranker进行精排选出最终的Top 5送入大模型。为什么这样设计并行召回减少延迟两路检索互不依赖。权重偏向向量因为我们的查询多为语义查询如“如何申请报销”而非精确关键词查询。保留BM25用于捕捉精确的产品型号、错误代码、特定人名等。例如查询“ERROR-1005怎么解决”BM25能精准命中而向量模型可能将其泛化为“错误代码解决”。最终用Reranker加权融合是粗排Reranker是精排确保最终上下文的质量。这个方案显著提升了检索的鲁棒性。在测试中对于语义查询向量检索主导对于关键词查询BM25发挥作用对于混合型查询如“帮我找一下张三上个月提交的关于项目‘凤凰’的周报”两者互补效果最好。调优建议融合权重不是一成不变的。建议在开发集上针对不同类型的查询语义型、关键词型、混合型进行A/B测试动态调整权重甚至可以考虑根据查询的意图分类来动态选择融合策略。7. 第六脉多路融合的终极形态与系统化工程实践将前五“脉”——分块、嵌入、重排序、图检索、多路召回——有机地组合在一起就构成了一个完整的、强大的RAG系统。但这不仅仅是技术的堆砌更是一个系统工程需要考虑编排、评估和持续优化。7.1 构建可编排的检索流水线现代RAG框架如LangChain、LlamaIndex提供了构建这种复杂流水线的能力。我们的系统核心是一个有向无环图每个节点是一个检索或处理组件。一个简化的高级流水线设计如下用户查询 | v [查询理解/改写] (可选用于处理模糊、简写查询) | v |-----------------------| | | v v [向量检索] [关键词检索] | | |-----------------------| | v [分数归一化与加权融合] | v [知识图谱检索] (可选并行或基于实体触发) | v [重排序 (Reranker)] | v [上下文压缩/提炼] (可选处理超长上下文) | v [大模型生成答案] | v [引用溯源与输出]关键工程考量异步与并行向量检索、关键词检索、图谱检索可以并行执行以降低延迟。条件执行例如只有当查询中检测到特定实体时才触发图谱检索分支。降级策略当某一检索路径如Reranker服务失败时系统应有降级方案如直接使用融合后的结果。缓存对频繁出现的查询及其检索结果进行缓存能极大提升响应速度和降低成本。7.2 如何评估你的“六脉”RAG系统没有评估优化就无从谈起。RAG系统的评估是多维度的检索模块评估命中率正确答案出现在召回结果Top K中的比例。平均倒数排名衡量正确答案排名的指标越高越好。这些指标需要在代表真实用户问题的测试集上计算。生成模块评估忠实度生成答案是否严格基于提供的上下文是否出现幻觉可以用基于NLI的模型自动评估或人工评判。相关性答案是否直接回答了问题流畅度答案是否通顺、符合语言习惯引用准确性答案中的引用是否确实支持所述内容端到端评估构造一个包含(问题 真实答案 上下文)的测试集。使用GPT-4等强大模型作为裁判对比系统输出和真实答案在忠实度、相关性、信息完整性等方面进行评分。人工评估仍然是黄金标准定期进行抽样评估至关重要。我们的评估流程我们建立了三个测试集1) 简单事实型QA2) 多跳推理型QA3) 汇总分析型QA。每周在更新知识库或调整参数后都会自动运行评估流水线监控各项指标的变化。任何核心组件如嵌入模型的升级都必须通过评估保证指标不下降。7.3 持续迭代从“能用”到“好用”一个RAG系统上线只是开始。我们通过以下方式持续迭代日志分析与bad case挖掘记录每一次问答的查询、检索到的上下文、生成的答案。定期分析bad case答错、幻觉、不相关找出是哪个环节出了问题分块不当检索不准模型生搬硬套。用户反馈闭环在产品界面提供“答案是否有用”的反馈按钮。将用户标记为“无用”的案例自动加入待分析队列。A/B测试对于重大的策略变更如切换嵌入模型、调整融合权重、引入新的分块策略进行线上A/B测试用真实用户流量评估效果。知识库主动优化根据高频查询和未命中查询发现知识库的空白或薄弱领域主动补充或优化相关文档。8. 总结与个人实践中的几点深刻体会走完这“六脉”的构建和优化之路再回头看最初那个简单的“向量检索LLM”的框架感触很深。RAG不是一个开箱即用的技术而是一个需要精心设计和持续调优的复杂系统。每个环节的细微调整都可能对最终效果产生蝴蝶效应。最后分享几点在实战中积累的、可能不会写在官方文档里的体会数据质量永远大于模型精度。再好的嵌入模型和排序算法也无法从杂乱无章、充满错误的数据中检索出精准答案。在构建RAG前花大力气清洗、整理、结构化你的知识文档事半功倍。我们曾用一个周末的时间优化了合同文档的解析规则让后续所有环节的效果提升了20%以上。“分块”是最大的杠杆点。它成本最低几乎零计算开销但对下游影响最大。多花时间分析你的文档特性设计甚至定制分块策略其回报率远高于苦苦调优嵌入模型或换用更强大的LLM。有时候仅仅是把分块重叠从50字符增加到100字符就能解决答案不连贯的问题。重排序是性价比最高的“增强”。如果你的RAG已经能工作但精度不尽如人意第一个应该考虑的升级点就是增加一个重排序模块。它的实现相对简单计算开销可控只对少量候选排序但带来的精度提升往往是立竿见影的。GraphRAG不是银弹而是特种武器。它适用于关系型知识但构建和维护成本高。不要为了用图而用图。如果你的知识主要是非结构化的叙述文本传统向量检索可能更合适。可以先从简单的实体链接在文本块中标注出实体并链接到知识库开始尝试。评估体系是导航仪。没有量化评估所有的优化都是盲目的。建立一套从检索到生成的自动化评估流水线哪怕最初很简单比如只有几十个测试问题也能让你清晰地知道每一次改动是前进还是倒退。保持简单逐步复杂。不要一开始就试图构建一个包含所有“脉”的复杂系统。从一个简单的、基于高质量分块和通用嵌入模型的基线系统开始。让它跑起来收集数据和反馈。然后像中医诊脉一样哪里是瓶颈检索不准幻觉多就对哪一“脉”进行增强。可能是加一个Reranker也可能是引入混合检索。这种迭代式的方法能让你更稳健地构建出真正解决业务问题的RAG系统。检索增强生成的“六脉”每一脉都对应着解决一类特定问题的方法论。理解它们熟练地运用它们并根据实际场景灵活组合你就能打造出不再是“玩具”级别而是真正能在生产环境中稳定、可靠、精准地提供知识服务的智能系统。这条路没有终点随着数据和需求的变化优化将持续进行但这正是技术工作的魅力所在。
返回列表