微信扫码
与创始人交个朋友
我要投稿
今天来分享一篇深度好文:《Golden-Retriever: High-Fidelity Agentic Retrieval Augmented Generation for Industrial Knowledge Base》,我们知道企业落地RAG系统有以下常见痛点:
而这篇文章提出了一个概念:Golden-Retriever,旨在文档检索前增加了一个基于反思的问题增强步骤,并相应地增强问题,以克服传统的LLM微调和RAG框架在特定领域术语和上下文解释方面的挑战。Golden-Retriever通过识别和澄清术语,并增强问题,实现了对文档检索前的问题增强。这种全面的增强使RAG框架能够提供清晰的上下文并解决歧义,从而显著提高了检索准确性。通过在特定领域问答数据集上进行评估,证明了Golden-Retriever的优异性能,为高效地整合和查询工业知识库提供了有力的解决方案。
当前的检索增强生成 (RAG) 技术在处理工业知识库中特定领域查询时,往往难以达到理想的效果。例如,对于一个问答问题“三星或海力士NAND芯片的PUC架构是什么?”的场景,RAG 误解了"PUC"这个专业术语,错误地将其解释为“公共事业委员会(Public Utilities Commission)”而不是正确的“细胞下外围设备(Periphery Under Cell)”。这种误解突显出了幻觉问题,即模型基于模糊的输入生成了不正确或无意义的信息。
尽管已有技术如Corrective-RAG和Self-RAG试图通过在文档检索步骤后修改响应来改进结果,但如果初始检索因误解术语或上下文缺乏而存在缺陷,则这些后处理技术无法完全修正不准确性。
此外,这些方法主要集中在改进检索后生成的响应上。然而,当检索到的文档本身不相关时,这些办法其实效果有限。它们并未直接解决根源问题,也就是用户问题和初始检索过程之间的歧义性。
另一种方法,由Kochedykov等人提出,试图通过将模糊问题解构为抽象语法树 (AST),并据此合成SQL查询以解决模糊问题。这种方法虽然提升了查询的保真度,但它只限于SQL查询,并不能推广到更广泛的问答场景。图示揭示了这一局限性,说明该方法在消除歧义和构造查询上虽然更有效,但对于重要的上下文和术语解释的普通检索任务来说,它并不适用。
我们提出了 Golden-Retriever,这是 RAG 的⼀种代理衍⽣产品,其特点是在⽂档检索之前进⾏基于反射的问题增强,使 RAG 能够检索到最相关的⽂档,尽管术语含糊不清且缺乏上下⽂。下面是对这三种方式的流程说明:
Golden-Retriever由离线和在线两部分组成。离线部分是部署知识库聊天机器人之前进行的数据预处理步骤。在线部分是每次用户提问时发生的交互过程,下面给出对应的流程图,左侧是Golden-Retriever在线推理部分的工作流程图。右侧是系统与LLM在工作流程中间步骤的示例交互。系统提示LLM生成中间响应,这些响应被保存、访问,并用于工作流程的步骤。
Golden-Retriever的离线部分专注于增强文档数据库,以提高检索到的文档的相关性。此过程首先收集公司的原始文档,例如幻灯片、嵌入文本的图像和表格,以形成知识库。这些文档的格式和内容通常各不相同,缺乏清晰的叙述,这会导致使用RAG查询时相关性得分较低。
为了解决这个问题,我们使用OCR从这些文档中提取文本,并将其拆分成更小、更易于管理的块进行处理。对于Meta-Llama-3模型,这些块每个大约有4,000个标记。然后使用LLM处理每个块,以从领域专家的角度生成摘要,利用LLM的语义理解和上下文学习能力。这些增强数据被添加到文档数据库中,使其在查询时更可能检索到相关文档。
在线流程的第一步是识别用户问题中的术语和缩写。此步骤至关重要,因为许多特定领域的问题都包含需要澄清以确保准确解释的专业术语。为了识别这些术语,我们使用了一个提示模板,该模板旨在指导LLM提取并列出输入问题中发现的所有术语和缩写。此过程可以确保识别所有可能产生歧义的术语,从而有助于在后续步骤中解决它们。已识别的术语和缩写以结构化格式输出供进一步处理。
在识别出专业术语后,确定提问的上下文非常重要,因为术语的含义在不同上下文中可能有很大差异。例如,“RAG”在人工智能的上下文中可能表示“检索增强生成”,而在遗传学中可能表示“重组激活基因”。为了准确解释上下文,我们使用了与专业术语识别类似的反思步骤,涉及设计提示模板。
虽然可以使用更简单的方法,例如基于转换器的文本分类器,对用户进行分类意图,但这将需要一个专门的训练数据集。这对于我们的应用程序来说是不切实际的,因为创建这样一个数据集需要大量的努力和资源。
相反,我们选择了“使用LLM作为后端”的方法,尽管会招致较高的计算成本,但无需专用的训练数据集,可以高效运行在本地服务器上。事先识别上下文可以帮助我们准确理解和处理用户输入。
一旦确定了术语和上下文,下一步就是查询术语词典,获取已识别术语的扩展定义、描述和注释。此步骤对于向用户提供术语的准确解释至关重要,确保扩展问题清晰无歧义。
此过程涉及使用在2.2节中确定的术语列表查询SQL数据库。术语列表被插入到SQL查询模板中,然后经过处理从术语词典中检索相关信息。检索到的信息包括扩展名称、详细描述以及任何有关术语的相关注释。
我们选择不使用LLM直接生成SQL查询,使用LLM生成SQL查询可能会带来查询质量和安全性方面的不确定性,并且还会增加推理成本。相反,通过使用基于代码的方法来合成SQL查询,我们可以确保查询是可验证的安全和可靠的。
从这一步获得的详细信息对于补充用户的原始问题至关重要。它允许准确的上下文和术语解释,这对于RAG流程检索最相关的文档并生成精确的答案至关重要。
确定了术语定义和上下文后,下一步是扩充用户的原始问题以包含这些附加信息。此扩充可确保RAG流程通过提供清晰的上下文并解决问题中的任何歧义来检索最相关的文档。
此步骤涉及将原始问题与上下文信息以及从2.3和2.4部分获得的详细术语定义相结合。增强型问题明确地陈述了上下文,并澄清了任何模棱两可的术语,从而有助于增强文档检索。
该过程是自动化的,代码将原始问题以及上下文和术语识别步骤的结果组合成一个结构化的模板。然后,增强问题将替换用户的原始问题,并用作RAG框架的输入,确保检索到最相关、最准确的文档。
在某些情况下,系统可能在词典中找不到某些术语的相关信息。为了处理这种情况,GoldenRetriever 有一个后备机制,可以合成一个响应,表明数据库由于缺少信息无法回答问题。
系统提示用户检查术语的拼写或联系知识库管理员添加新术语。此步骤可确保系统保持高保真度并避免生成不正确或误导性的响应。未识别的术语适合于响应模板,提示用户检查拼写并联系知识库管理员添加新术语。
使用针对工程师新员工培训文档中的六个不同领域的测验作为测试问题。所有问题都是多项选择题。显示的是五次试验的平均得分。最佳得分用粗体显示。
通过在特定领域的问答数据集上的评估,Golden-Retriever在多个开源LLM上表现出色,与传统的RAG方法相比,显著提高了答案的准确性。与Vanilla LLM和RAG相比,Golden-Retriever分别将Meta-Llama-3-70B的总分提高了79.2%和40.7%。在测试的所有三种大型语言模型中,平均将得分提高了57.3%。
Golden-Retriever 主要完成了两项任务:首先,它在构建企业数据库时利用LLM生成摘要信息来替代原始文档,以提高检索的召回率。其次,利用术语库重构原始问题,进行指代消歧。
在方案实现上,通过术语库重构问题确实可以避免歧义,但是这需要多次调用LLM进行术语识别、上下文理解和问题重构等操作。在实际工业落地实施中,效率和术语库的规模可能会成为关键考虑因素。
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-07-18
2024-05-05
2024-07-09
2024-05-19
2024-07-09
2024-06-20
2024-07-07
2024-07-07
2024-07-08
2024-07-09
2024-11-25
2024-11-06
2024-11-06
2024-11-05
2024-11-04
2024-10-27
2024-10-25
2024-10-21