RAG技术详解:文档对象模型图的应用与优化

2024年09月20日 由 alex 发表 22 0

OpenAI 的 ChatGPT 和其他大型语言模型(LLM)的出现标志着一个关键时刻,使生成式人工智能进入了公众的视野。现在已转向生成式人工智能技术的更实际应用。


生成式人工智能具有巨大的潜力,但对大多数团队来说,最快的应用是开发生成式问答聊天机器人。工程团队开始使用公司内容创建特定领域的聊天机器人应用程序。然而,他们很快就遇到了 LLM 的局限性,尤其是幻觉和不准确性问题。这些问题导致了检索增强生成式人工智能的出现。


检索增强生成

检索增强生成(RAG)是自然语言处理(NLP)中的一个概念。RAG 模型首先从外部来源检索相关内容或数据,然后利用这些信息生成响应或完成任务。检索步骤通过将响应建立在特定的相关信息基础上,有助于提高生成输出的质量和准确性。


虽然 RAG 模型比独立的 LLM 有所改进,但大多数人很快就意识到,向基于向量的 LLM 输送向量数据库有很大的局限性。就其本质而言,LLM 是基于随机性或概率的随机系统,而这一固有特性削弱了其准确性、精确性、可靠性和可解释性。


尝试使用生成式人工智能的公司很快认识到治理和控制的必要性。通常,开发人工智能解决方案的责任由工程团队承担,他们几乎完全把这项任务当作一个编码问题来处理。然而,这种观点忽视了内容设计和知识管理的关键作用。现在,最先进的组织都明白,成功的人工智能开发需要工程、内容和知识管理的平衡组合。


在匆忙实施 RAG 的过程中,工程团队经常从内部资源中抓取内容,而不考虑内容的质量、结构或关键任务管理要求。技术文档成了首要目标。内容团队了解内容供应链的错综复杂,但他们却被排挤到一边,往往被工程团队忽视或解雇。这种行为导致了不合格的结果。


随着人工智能系统变得越来越精确,精确度悖论也随之出现。容错率随着系统精度的提高而降低,即使是微小的错误也会变得更加明显,影响更大。这一点在企业转向自主或半自主人工智能代理时尤为重要。目前基于矢量的 RAG 模型难以达到所需的精度和可靠性水平,因此有必要转向更先进的人工智能模型。


矢量RAG与图驱动RAG的比较

基于矢量的检索增强生成(RAG)模型是依赖于相似性搜索和预测算法的人工智能模型。这些模型在这些领域具有优势,但也存在严重弱点,如不准确和幻觉,这源于其固有的随机性和概率性。


都在努力解决这些问题,试图从根本上缓解与以向量为中心的检索限制有关的问题。增加大型语言模型 (LLM) 的参数,或围绕矢量 RAG 模型建立更加复杂的基础设施,都无法改变这些系统固有的数学现实。


纯矢量 RAG 模型面临的关键挑战:

  • 缺乏神经符号推理和事实核查: LLM 和矢量数据库独立推理、推理或事实核查的能力有限。虽然它们看起来有能力完成这些任务,但实际情况并非如此。将这些能力整合到基于矢量的模型中的努力还不够。要实现稳健的推理和独立验证,需要一个外部知识源,如提供经过验证的事实的知识图谱和推理引擎,以进行查询。
  • 构建和维护知识图谱的挑战: 虽然知识图谱为矢量数据库的检索提供了一个强大的替代方案,但大规模构建和维护知识图谱(可能包括数千到数百万个节点)是一项艰巨的任务。对于大多数组织,尤其是那些管理大量内容的组织来说,手动构建知识图谱是不切实际的。目前迫切需要创新、可靠的方法来自动创建和更新经过策划和验证的知识图谱,尤其是复杂和专业的知识领域。DOM Graph RAG 模型巧妙地解决了这个棘手的问题。
  • 变更管理和内容时效性: 内容是动态的、不断发展的,尤其是在商业和技术领域。当前基于矢量的模型通常无法考虑或有效管理频繁和大量的内容更新、退役、版本、权限、受众、个性化、重复使用等问题。由于矢量存储难以管理过期或过时的内容,因此无法管理频繁的变更会给业务带来重大风险。相比之下,基于图的模型可以将元数据和状态信息嵌入图中,从而实现复杂的内容管理和变更管理流程自动化。
  • 丢失上下文: 基于矢量的模型通常需要将内容分割成块,通常是任意大小的块(例如 4K 标记)。这种方法会使原始内容支离破碎,在检索过程中很难按照原始上下文正确、有意义地重新组合内容。一些组织拥有结构良好的内容,内容开发人员多年来已将其精心分块为组件/主题内容模型,但这些组织发现,进一步分块以尝试(拙劣地)重新组合内容及其上下文既不合理,也没有必要,因为这样会丢失重要的上下文和关系。
  • 缺乏明确的实体识别: 基于向量的 RAG 模型主要使用密集嵌入来表示高维向量空间中的查询和文档。这种方法在语义相似性方面效果很好,但在识别或处理命名实体方面缺乏与基于图的方法相同粒度的显式能力。该模型可以根据向量空间中相似主题或概念的接近程度来识别它们,但不会像图那样明确地 “认识 ”或 “链接 ”实体。
  • 有限的多跳检索: 基于矢量的 RAG 通常以单跳(在嵌入空间中找到与查询最近的邻居)的方式检索文档或知识。它本质上不支持多跳推理。虽然有些基于向量的系统可能会尝试执行多步推理,但与基于图的方法相比,这一过程通常结构性较差,可靠性也较低。
  • 建议有限: 基于向量的检索模型无法捕捉实体之间的复杂关系。虽然矢量嵌入代表了实体,但却忽略了丰富的上下文联系。基于图的 RAG 模型通过将知识图谱与神经网络相结合,在生成推荐方面表现出色。在这种方法中,实体及其关系被表示为图中的节点和边,然后被转换为矢量表示(图嵌入)。神经网络可以根据查询检索相关信息,而知识图谱则提供丰富的上下文关系,从而提供更准确、更能感知上下文的推荐。神经检索和符号图推理的整合增强了模型的相关性、个性化和逻辑一致性。
  • 缺乏本地化管理: 纯矢量 RAG 模型如何管理多个国家语言变体(NLV)?这种模型是否会翻译内容并将 NLV 放入单独的矢量数据库中进行检索?这是一个混乱的选择。使用按需 MT 服务?从精度和性能上来说,这听起来都不太可行,或者我们应该使用 LLM 进行即时翻译?如果机器翻译的准确性可以接受的话,这倒是有可能的。有了 DOM Graph RAG,我们可以使用任何方法将内容翻译成任意数量的 NLV,并在每个文档对象图节点的元数据中携带语言标识符。然后,查询可以选择检索哪些 NLV。如果使用基于向量的 RAG 模型检索 NLV 已经足够复杂,那么想象一下处理版本化的 NLV 内容吧。
  • 过度拟合: 基于向量的模型容易出现过拟合。当团队过度调整模型以弥补纯向量检索的不足时,就会出现这种情况。过度拟合会导致在测试过的查询中表现出色,但在新的、未预料到的问题或任务中通用性较差。
  • 效率和性能: 与基于向量的模型相比,基于图的 RAG 模型可以提供更高的效率,尤其是在结构化检索、上下文推理、可扩展性和可解释性方面。向量数据库在多维空间中表现更好,而图数据库则擅长处理基于关系的查询。结合这些优势的混合模型可以优化性能和可扩展性。
  • 成本效益: 与基于矢量的模型相比,基于图形的 RAG 模型可以大大降低成本。这是由于检索过程更加高效,减少了对 LLM 的依赖,从而可以处理微调和嵌入所需的大量事务。基于图的方法通过向 LLM 提供更简洁、更相关的输入,减少了计算时间和资源消耗,从而节省了总体成本。


虽然基于向量的 RAG 模型有其存在价值,但它们也面临着巨大挑战,而图形驱动的 RAG 模型可以通过更好的推理、上下文理解、效率和成本效益来应对这些挑战。基于图形的方法为复杂、动态的内容环境提供了更强大的框架。


神经符号 RAG:利用综合推理和知识增强人工智能

检索增强生成(RAG)的下一个进步是神经符号 RAG,它将神经网络与符号推理、推断和事实检查整合在一起。这种方法利用了神经和符号模型的优势,使人工智能系统能够从数据中学习,并使用预定义的规则和逻辑对数据进行推理。基于知识图谱的 RAG 越来越受欢迎,因为它能有效解决基于向量的检索模型的局限性。


通过 GraphRAG 和类似的模型,微软等公司探索了使用 LLM 从文本自动生成知识图谱的方法。虽然这些自动生成的图形很有帮助,特别是对于单一的非结构化内容源,但它们往往需要更高的精确度,以避免出现精确悖论等陷阱。更有效的方法是结合传统模式和混合模式,强调深思熟虑和战略性开发。


可靠知识图谱的基石是有意构建并经过人工验证的本体。本体定义了特定领域内的概念和关系。本体一旦开发完成,就可以加载到图数据库中,然后根据本体映射物理或逻辑内容对象,创建一个全面的知识图谱。然后就可以查询该图,以检索相关内容对象并将其输入 LLM,从而确保输出结果的准确性和可信度。


人工智能模型超越传统的 RAG 方法,才能实现关键应用所需的高精度和高可靠性。文档对象模型图 RAG(DOM Graph RAG)是将组件化内容与人工智能整合在一起的一种新颖、复杂、更直接、更优雅的方法。通过利用工程、内容设计和知识工程的综合优势,DOM Graph RAG 可提供更准确、更可靠的生成式人工智能解决方案,为该领域树立了新的标准。


知识图谱和 DITA:结构化内容的协同作用

知识图谱是结构化内容的一种形式,这意味着它们以明确定义的方式对信息进行组织和分类,从而简化处理、检索和分析。在知识图谱中,数据以结构化的格式表示,实体(节点)及其关系(边)都有明确定义,通常遵循本体或模式形式的特定蓝图。这种结构化方法允许在领域内和领域间进行高效查询、推理和数据整合,使知识图谱成为组织和理解复杂信息的强大工具。


DITA(达尔文信息类型架构)是一种 XML 架构,也是结构化文档的开放式 OASIS 行业标准。DITA 具有定义明确的模式,因此很容易转换成本体网络语言 (OWL) 格式。OWL 表示有关实体、实体组及其相互关系的复杂知识,是语义解决方案的重要组成部分。


OWL 本体使用资源描述框架(RDF),以三元组(主题-谓词-对象)的形式表示信息。RDF 提供了在图中表示数据的基本结构。同时,OWL 允许定义更复杂的关系和约束,如类、属性、层次结构和规则,从而扩展了 RDF 的功能。这使得 OWL 成为创建本体的理想选择,本体可正式表示领域内的知识。与其他技术相比,RDF 图形非常适合,例如代表分层内容和链接数据的基于属性的图形。


3

图1


在图 1 中,三重表示三个实体之间的关系:主语、谓语和宾语。例如,增值税与欧洲的关系:


三倍:

  • 主题: 增值税(VAT)
  • 谓语:在
  • 对象:欧洲联盟(欧盟)


这表示增值税是一种在欧盟广泛实施的税收制度。下面是详细说明:

  • 主题: “增值税 (VAT)"--讨论的税种。
  • 谓语: ‘实施于’--增值税与实体之间的关系。
  • 对象: “欧洲联盟”(欧盟 - 适用增值税的地理或政治实体。


这种结构可以很容易地适用于其他关系或采用增值税税制的国家。


4

图2


在图 2 中,OWL 表示法以机器可读的格式表述了增值税与欧盟之间的关系。


  • 类: 税和地区被声明为类。增值税是一种税,欧盟是一种地区。
  • 个人: ValueAddedTax 属于 Tax 类,EuropeanUnion 是 Region 类的一个个体。
  • 对象属性:isImplementedIn 是连接税种(域)和地区(范围)的谓词。
  • 断言: 它声明单个 ValueAddedTax 在单个欧盟中实施。


与其他 XML 语言一样,DITA 基于文档对象模型 (DOM)。DOM 是一种编程接口,以对象树的形式表示文档结构,每个节点代表文档的一部分。这种分层的树形结构允许脚本语言和查询语言与文档的内容、结构和样式进行动态交互和操作。DITA 将面向对象的若干原则引入内容,包括包含和继承。


在 DOM 中,主题集合文件(DITAMap)是树的根,分支为各种子组件,包括子地图、主题、元素和子元素。在 DOM 中,文档实例中的所有内容都是一个容器或子容器,容器通过有意义的标记进行自我描述。每个 XML 元素都可以携带有关其容器的元数据。图将元素表示为节点,包括地图节点、主题节点、文本节点(包含这些元素中的文本)和属性节点(表示元素的属性)。这种结构是组织和处理 DITA 文档的基础。


5

图3


知识图谱和 XML 都是结构化模型,具有强大而自然的亲和力。DITA 固有的结构、隐含和显式关系、内容类型分类和可扩展性使其非常适合作为知识图谱来表示、探索和挖掘。它还为高级内容管理和检索提供了可能性。


将模式作为将内容自动映射到知识图谱的基础并不是什么新鲜事;在使用模式来表示关系数据库(RDB)时,这种做法已经司空见惯。人工智能工程师们早就认识到,与非结构化内容相比,结构化内容的工作效率更高,他们发现这种方法要简单有效得多。


将 DITA 表述为知识图谱也不是什么新想法。2013 年,科林-莫德里(Colin Maudry)发起了一个名为 “DITA RDF 项目 ”的开源项目,该项目使用 DITA 模式开发了 DITA 模型的 RDF 知识图谱。该项目旨在为作者提供详细的指标,并简化内容翻译和文档状态一致性检查等流程。Maudry在第10届本体工程和语义网暑期学校(10th Summer School on Ontology Engineering and the Semantic Web)和2013年DITA欧洲会议上展示了他的工作成果,现在仍可在网上和SourceForge上查阅。多年后,人们在探索如何将 DITA 的结构作为基于图的 RAG 模型的基础时重新发现了他的项目。


总之,知识图谱和 DITA 提供了结构化的内容组织方法,使它们高度兼容。DITA 强大的结构非常适合知识图谱表示法,可以利用这两种技术的优势实现先进的内容管理和检索功能。


6

图4


RAG 模型中的分块内容与组件化内容

在大多数以矢量为中心的 RAG 模型中,内容在存储到矢量数据库之前都要经过预处理并分成较小的单元或 “块”。当用户输入一个提示时,系统会搜索矢量数据库,检索出最相关的语块,并将其组合起来传递给 LLM 以生成响应。这种分块有两个主要目的:确保相关信息的有效存储和检索。


首先,分块可以让嵌入模型在较短的上下文窗口内有效捕捉文本的本质。通过将内容分割成小块,矢量数据库可以更准确地表示和检索文本的语义。其次,分块技术解决了基于转换器的大型语言模型(LLM)输入语境长度有限的问题。例如,OpenAI 的 GPT-3.5 模型有 4K 标记的限制。因此,只提供内容中最相关的部分并尽量减少不必要的信息至关重要。


在当今的许多内容环境中,文档源内容已经被正确地分割成各个组件,上下文保持不变。在使用 DITA 地图作为主题收集器时,文档对象模型和其他关系结构声明了主题之间的关系。因此,将这些结构良好的主题进一步分解成随机的块,丢弃精心设计的上下文和关系,只会适得其反,完全违背直觉。这样做只会导致使用一个低效且容易出错的过程,徒劳地试图使用基于向量的检索模型来正确地重新组合和恢复原始上下文,并重新建立上下文关系--所有基于向量的 RAG 模型(包括基于文本生成的知识图谱的模型)在这个过程中都存在固有的缺陷。


更有效的方法是使用现有的主题组件 DOM 模型,让它来管理关系和上下文。这种方法消除了与从矢量数据库中进行内容检索相关的缺陷和弱点,为 RAG 系统中的内容管理和检索提供了更直接、更准确、更优雅的解决方案和架构。


构建丰富的 DOM 知识图谱

下图展示了如何构建基于 DOM 的高级知识图谱。前提条件是要有 DOM 本体。第一步是创建内容图,第二步是丰富领域分类法和本体。


10

图5


前提条件:将 DITA 模式转换为本体

使用 DITA 自动生成图形的第一步和关键是将 DITA 模式转换为本体,然后将本体加载到图形数据库中。在本项目中,我们使用 Ontotext 的 GraphDB 作为图形数据库。本体是模型用来映射 DITA(或其他非 DITA)源主题并自动创建知识图谱的模式。当内容发生变化时,该过程还允许对知识图谱进行更新。


我们的实施采用了 Colin Maudry 创建的开源 DITA 本体。在本项目中,我们使用 Semantic Web Company 的 PoolParty Semantic Suite 来导入和补充 DITA 本体,以实现转换流程的自动化。


DITA 本体表示图表的内容结构(例如,任务是 DITAMap 的子项,元素 x 是元素 y 的子项,依此类推)。OWL 类、属性和约束表示 DITA 概念和关系的语义。本体可输出为 RDF/XML、Turtle、OWL/XML 或 JSON/LD,并可导入图数据库。本体捕捉顶级主题收集器(DITAMaps)及其子映射、主题和元素子树之间的关系。


11

图6


DITA 提供一套默认的主题类型: 主题、概念、任务、参考、故障排除、问答以及学习和培训。DITA 主题架构还具有可扩展性,允许组织创建继承自这些基本主题类型的新主题类型(这一过程称为专业化)。DITA 专业化也可以作为自定义本体添加,扩展默认的 DITA 本体。本体反映了这些主题类型,并沿着 DOM 树层层递进,将主题内的内容元素表示为图节点。结构如下:


12

图7


步骤 1:自动构建内容图

然后,该模型使用本体从 DITA 文档实例或其他内容格式自动创建和维护内容图或 DOM 图。DITAMap、主题、元素和子映射在 DOM 图中表示为节点,并有一个持久的 URI 链接到实际的内容文件。至于本体,本项目使用 Ontotext 的 GraphDB 作为图数据库来存储内容图。


13

图8


我们使用 DITA Open Toolkit(可在 SourceForge 上获取)来自动转换顶级 DITAMaps 所代表的内容实例。该转换将源主题文件转换为 RDF,以便输入图数据库。当 RDF 导入图数据库时,图数据库会根据 DITA 本体自动构建图。通过 XSLT 转换过程,可以控制在生成的图中以节点表示的 DOM 树的深度。例如,你可以选择将以 Markdown 或 AsciiDoc 等格式编码的主题作为 DITAMap TopicRefs,将其视为整个主题进行检索,同时为高度结构化的 DITA 和其他 XML 编码文档提供更细粒度的子主题元素检索。


同样,使用相同的方法,你可以自动重新检索新文档或更新文档。你还可以自动进行 RDF 转换,并以任何频率从内容管理系统或资源库更新内容。


与地图和主题相关的元数据,无论是嵌入其中还是从外部获取,都能提供状态元数据,以自动进行复杂的人工智能内容操作和变更管理,而这正是传统 RAG 模型普遍缺乏的。例如,我们可以通过节点将内容指定为更新、过期、退役、仅供内部使用、未发布、机密、版本、权限、本地化等。正确的内容管理可确保企业在正确的时间,以正确的体验,向正确的人提供正确的内容。


如果主题是 DITA 格式,则可以直接在主题或元素容器中包含此类元数据。对于非 DITA 主题,如 Markdown、ASCIIDoc 和其他主题格式,你可以将元数据应用到 DITAMap 中的 TopicRef 元素。TopicRef 元素本身就是一个容器。大多数基于矢量的 RAG 模型都缺乏这种关键的内容管理功能,因此随着时间的推移很容易出现不准确的情况,因为内容很少是一成不变的;内容库的添加、更改、删除和修改往往是持续而大量的。


步骤 2:丰富 DOM 图

DITA 结构和智能内容固然有益,但结合命名实体识别(NER)和命名实体提取(NEE),以及使用领域分类标准和本体对地图和主题(甚至元素)进行分类,也能进一步增强图谱在准确性、推理和推理方面的实用性。


可以手动将分类法应用到内容中,或使用推荐器进行辅助,或使用自动分类器实现完全自动化。虽然我们丰富的 DITA DOM-Graph 可以在没有推理引擎的情况下用于检索,但使用特定领域的知识模型本体对图进行扩展,可以增加强大的推理、推理和事实检查功能,这是 LLM 和基于向量的 RAG 模型所缺乏的。


步骤 3:利用图数据库

有了知识图谱,我们现在就可以对图谱进行挖掘检索,查询内容语料库,并使用图谱查询语言 SPARQL 来查询知识图谱。图数据库的选择对于可扩展性、性能和推理能力至关重要。


此外,当你想超越 DITA 内容,整合其他内容源(如电子学习数据、产品信息等)时,图模型是数据整合的完美选择。基于图模型,可以很容易地在知识图之上创建语义搜索索引或矢量数据库,并根据应用目的使用最合适的模型。


通过这种方法,我们可以充分利用 DITAMap 结构的潜力,结合 XML、分类法和本体论以及图数据库的优势,提供比传统的基于矢量的 RAG 检索模型更强大、更精确的内容检索和推理系统。


构建 DITA GraphRAG 应用程序--一个可用的聊天机器人

为了说明 DOM 图形 RAG 模型的强大功能和可行性,我们在丰富的 DOM 图形之上构建了一个图形 RAG 应用程序,以评估与传统 RAG 方法相比,这种方法是否能显著改善结果。下图概述了该应用程序的高级架构和数据流。


14

图9


为什么要加入矢量数据库

在这种图形驱动的检索模型中加入矢量数据库最初可能会让人感到困惑,需要加以说明。我们已经强调过,我们不想随意将上下文准确的主题和自描述元素分割成更小的片段,然后再尝试使用不可靠的概率矢量检索将它们重新拼凑起来--我们已经批评过这种方法缺乏精确性和上下文保护--我们并没有这样做。


由于矢量数据库在相似性搜索方面表现出色,我们应用了它们的强大功能,创建了一个混合模型。通过将矢量数据库(用于灵活的、基于意义的语义搜索)和图数据库(用于精确的、结构化的搜索)结合起来,该系统既能处理定义明确的问题,也能处理较为开放或不明确的问题。这种组合使系统更加准确,无论用户如何措辞提示,都能提供更好的答案。


矢量数据库是通过将从结构化 RDF 内容中提取的文本块转换为矢量嵌入来填充的。通过这些嵌入可以进行语义相似性搜索,并链接到存储在 Ontotext GraphDB 中的原始 RDF 三元组。相似性搜索仅依赖于矢量数据库,而不涉及 LLM。相似性引擎收到用户请求后,会使用本地嵌入模型对相似内容进行搜索和重新排序。根据这一结果,该模型收集 DITA 文档引用,并利用它们查询要发送到 LLM 的实际内容图。这种混合方法确保了结构化(RDF)和非结构化(语义相似性)内容检索能够协同工作,使系统更加强大和灵活。


在没有向量数据库的情况下,系统仍然可以发现并执行多跳检索。它依赖于图的结构和概念知识模型关系,这对于清晰和准确的问题效果很好,但对于比较模糊或复杂的问题可能会有困难。在结构和知识模型概念关系不相连的情况下,它可能会遗漏相关内容,而且在管理大量信息时可能会减慢速度。当在同一模型中混合使用结构化和非结构化内容格式(如 Markdown 或 AsciiDoc)以及 DITA 时,语义检索至关重要。


作为语义助手的矢量数据库

在标准的基于矢量的 RAG 中,模型将内容分解成随机块,将其矢量化并存储在矢量数据库中。标准的基于矢量的 RAG 模型采用相似性搜索,直接从矢量数据库中检索相关的块,并将其反馈给 LLM。


向量数据库在 DOM Graph RAG 模型中扮演着不同的补充角色。它不是用来直接向 LLM 输送内容块。相反,矢量数据库是一个语义助手,可以帮助识别上下文正确且相关的主题或元素。DOM 图模型使用 SPARQL 查询从图数据库中检索内容对象。


该架构中的矢量数据库包含由文档结构表示的文档逻辑组件的嵌入(矢量表示)。该模型从图而不是源 XML 文件或其他文档编码中获取嵌入。该模型不会像在传统的 RAG 模型中使用矢量数据库那样,为矢量数据库随机分块。相反,如图 4 所示,矢量数据库的内容保留了原始主题本地组件的原始上下文。


矢量数据库中的相似性搜索有助于根据用户查询的语义识别相关或相似的主题和元素,即使这些主题或元素没有通过图结构或分类法和本体论关系直接连接起来。


在矢量数据库识别出类似主题或元素后,它会告诉系统要检索图数据库中的哪些特定节点(主题或子元素)。用于生成答案或回复查询的内容来自使用 SPARQL 查询的图数据库。


基于结构检索的图数据库:

如前所述,图数据库仍然是检索内容的主要来源。内容以 RDF 格式存储,具有结构化关系、层次结构和分类法。这些结构化内容(如 DITA 主题和元素)通过 SPARQL 查询进行检索。


图数据库可管理结构化查询,其中的关系(层次结构、分类标准、主题之间的直接链接)都有明确定义。它非常适合检索结构中明确关联的内容,如父子关系或本体概念关系。


矢量数据库在这种混合模式中的作用:

矢量数据库的作用是帮助识别图中可能没有链接的相似或相关主题。它提供语义指导,根据查询的含义建议可能相关的内容,即使图关系没有将这些主题连接起来。


一旦矢量数据库帮助确定了这些相关节点,图形数据库就会检索实际内容(主题、子元素等)以生成答案。


没有向量数据库的本地图查询:

原生图查询还使用命名实体识别和检索来提取名词和名词串,以搜索相关主题。在纯粹基于图的模型中,我们可以根据这些提取的实体或标签建立查询,并依靠推理和推理来查找相关内容。


但是,这种方法可能会遗漏矢量数据库可以捕捉到的一些语义联系。矢量数据库有助于克服图谱没有明确连接特定主题但仍存在语义相似性的局限性。它增加了一层灵活性,而纯粹基于图的查询可能会缺乏这种灵活性,尤其是在处理模棱两可或结构较为松散的查询时。


总结一下:

  • 图数据库: 该数据库使用结构化 SPARQL 查询从结构化 RDF 图(如 DITA 主题和元素)中检索内容。
  • 矢量数据库: 充当语义助手,识别可能未在图中链接但语义相似的相关内容。它有助于指导图数据库检索哪些其他内容。
  • 最终内容: 图数据库(而非矢量数据库)包含用于生成答案的所有内容。


矢量数据库通过建议语义相关的内容来帮助图数据库,而模型则始终检索发送到 LLM 的最终有效内容。这种混合方法结合了两种系统的优势,确保了灵活性和精确性。


DOM Graph RAG 应用程序的工作原理

我们将逐步解释当用户提问时该应用会发生什么,并附上用户根据示例问题收到的结果图片。这个工作原型展示了将人工智能生成功能集成到搜索体验中的过程。这种可能性是无限的。此外,请注意图形驱动的生成式人工智能应用的成功在很大程度上取决于良好的用户体验和用户界面设计。


第一步:提示完善和辅助:

当用户输入提示时,知识图谱会在用户输入的过程中提出动态建议,以制定和改进问题,从而协助用户编写提示。知识图谱丰富了提示内容,大大减轻了用户编写提示的负担。


15


第 二 步:确定用户意图:

模型会将提示信息发送给 LLM 进行意图识别。这样,模型就能根据用户的意图定制最适合回答问题的内容,例如确定用户是否只寻求概念性信息、获取参考信息(如功能比较)、获取执行任务的特定步骤集或如何通过故障排除说明解决问题。你可能还记得,主题模型包括自描述类型主题,这些主题对其目的进行了分类。


第三步:利用向量数据库进行语义相似性搜索:

除了 LLM 处理用户提示以进行意图识别(第 2 步)外,该提示还被发送到向量数据库,以识别语义相似的信息块。这一步在处理非结构化或结构化程度较低的内容,以及处理语义相似性很重要但知识图谱中概念之间可能不存在直接联系的查询时发挥着至关重要的作用。如前所述,矢量数据库是知识图谱的语义助手,而不是直接的内容检索。请注意,图 9 中的向量数据库和 LLM 之间没有直接联系。


第 四 步:查询图以检索要发送到 LLM 的内容:

根据用户意图和相似性搜索推荐的 DITA 元素,该模型通过动态生成的 SPARQL 查询从丰富的 DOM 图形中选择相关的 DITA 元素,并将其发送到图形数据库。该查询的结构和遍历适应用户的意图,针对不同的特定元素,如整个主题、特定元素(针对 XML 主题)或两者的组合。查询还可以检索与初始元素相关的其他内容。然后,用户请求会连同 DITA 元素一起发送到 LLM,以生成初步答复。系统会通过突出显示答案中的知识模型概念来增强答案。这样,我们就可以通过提供上下文信息来改善用户体验。


16


第 五 步:

用户请求和 LLM 的回复由知识模型进一步扩展,并发送至 Poolparty 的推荐引擎,以执行词汇加权搜索,并识别与用户提示最相关的其他文档。这一过程具有高度可配置性。团队可将领域本体添加到推荐算法中,以便根据用户意图或上下文识别内容。


17


第 六 步:

最后,用户提示、LLM 提供的初步答案和推荐文件将被发送到 LLM,以生成对用户问题的答案,并对所有提供的信息进行汇总。


18


该应用程序还能生成后续问题,用户可在下一步提出更详细的问题。


19


在整个搜索过程中,知识模型自始至终为用户提供指导。由于知识模型不像 LLM 算法那样是一个黑盒子,因此它可以对请求进行定制,为发送给 LLM 的提示提供上下文,并增强用户反馈的答案,使答案更易于解释。从这个意义上说,它允许你在不训练模型的情况下,根据用户的特定领域定制答案。它提高了答案的精确度,使答案更易于解释,并帮助用户更好地进行提示工程。


这也意味着知识模型(分类法和本体)的质量起着重要作用。同样,LLM 可以帮助为分类法提出新的概念和标签,并提出与本体相关的类和关系。不过,这并不是在丰富的 DOM 图之上构建 DOM GraphRAG 应用程序的一部分。


链接到引用的网页

你可能想知道该模型是如何提供指向已发布内容和相关内容的链接以及答案的。生成这些链接非常简单。我们使用源主题中的 ID 来匹配已发布网页中的相同 ID。因此,我们可以轻松地引用或匹配相应的 XML 文件、知识图谱资源、网页和网页中的元素。


总结

大型语言模型的发展通过将生成模型置于前沿,为人工智能带来了革命。尽管最初的应用导致了一片投资热潮,但语言模型的局限性,尤其是在准确性和可靠性方面,变得明显,从而推动了检索增强生成(RAG)模型的采用。然而,基于向量的RAG模型仍然面临重要的挑战,比如幻觉、上下文丢失和由于依赖概率方法而导致的精确性不足。

文章来源:https://medium.com/@nc_mike/document-object-model-graph-rag-af8ae452b0b6
欢迎关注ATYUN官方公众号
商务合作及内容投稿请联系邮箱:bd@atyun.com
评论 登录
写评论取消
回复取消