Tree-of-Traversals:结合知识图谱与大模型,通过树遍历和回溯寻找高置信度推理路径

Tree-of-Traversals:结合知识图谱与大模型,通过树遍历和回溯寻找高置信度推理路径

    • Tree-of-Traversals算法解析
    • 对比 MindMap
      • 1. 与知识图谱(KGs)的整合
      • 2. 推理方法
      • 3. 灵活性与可扩展性
      • 4. 在医学诊断中的应用
    • 速度和准确
      • 1. 速度
      • 2. 推理的全面性
      • 3. 准确性
      • 总结

 


论文:Tree-of-Traversals: A Zero-Shot Reasoning Algorithm for Augmenting Black-box Language Models with Knowledge Graphs

代码:https://github.com/amazon-science/tree-of-traversals

随着强大的 LLMs 新功能的涌现,结合知识图谱的兴趣也随之复苏。最近的一系列调查和论文强调了结合使用 LLMs 和 KGs 的巨大潜力。目前,LLMs 与 KGs 的结合方式多样,如在预训练阶段集成,进行微调或后期适配,但这些方法都存在局限。

尤其是,训练或微调大型语言模型不仅成本高昂,而且在很多情况下,模型的权重并不是公开可获取的。

此外,最大的知识图谱需要独立的服务器托管,无法直接在内存中与语言模型集成。以前的研究也未涉及同时与多个知识图谱结合的场景。

我们提出了一种创新的推理算法——“树遍历”,它允许在不重新训练或微调的情况下,将任意数量的知识图谱以零次射击方式加入到强大的黑盒式大型语言模型中。

这种方法使得客户可以安全地结合使用黑盒 LLM API 和专门领域的内部知识图谱,或者通过各种可通过 API 访问的知识图谱将深入的领域知识融入其中,而无需担心使用个人数据训练模型可能带来的风险。

我们的研究成果主要包括以下几个方面:

  1. 我们提出了“树遍历”算法,这是一种创新的零次射击推理算法,它可以增强任何强大的大型语言模型,并利用树状搜索进行高级知识图谱推理。
  2. 我们在两个广泛使用的基准测试集上对“树遍历”进行了评估,并将其性能与现有基线进行了比较。
  3. 我们还开发了一个新的数据集,用于测试在通用及特定领域知识图谱上的综合推理能力,并在这一数据集上对“树遍历”算法进行了测试和评估。

我们提出的“树遍历”算法主要包括三个部分:

  • 首先,知识图谱接口允许与一个或多个知识图谱进行交互;
  • 其次,动作状态机(ASM),这是一个有限状态机,它定义了可行的动作、状态和在大型语言模型与知识图谱互动扩展本地知识图谱子图时使用的提示模板;
  • 最后,树形搜索算法决定了整体的搜索路径,包括最优先搜索、错误后的回溯以及找到答案时的终止。
├── 2 树遍历(Tree-of-Traversals)算法【技术核心】
│      ├── 输入【开始数据】
│      │      ├── 问题查询:来自用户的问题【问题输入】
│      │      └── 知识图谱数据:包含实体及其关系的结构化信息【数据输入】
│      ├── 处理过程【算法执行】
│      │      ├── 初始化【处理步骤】
│      │      │      ├── 提取实体:从问题中识别关键实体【技术应用】
│      │      │      └── 建立本地子图:在KG中形成相关的实体和关系子集【技术应用】
│      │      ├── 动作状态机(ASM)【处理步骤】
│      │      │      ├── 定义可能的动作:根据问题确定可执行的动作【决策过程】
│      │      │      └── 管理状态转换:控制从一个状态到另一个状态的过渡【状态管理】
│      │      └── 树搜索算法【处理步骤】
│      │             ├── 生成思考路径:利用LLM产生可能的思考路径和动作【推理生成】
│      │             ├── 执行动作:根据生成的路径在KG中执行操作【动作执行】
│      │             └── 评估和选择:对产生的结果进行评估,选择最佳路径【结果评估】
│      └── 输出【结果产出】
│             ├── 答案生成:LLM根据最终的KG状态生成答案【输出内容】
│             └── 更新的知识图谱:展示处理过程中对KG的更新或扩展【输出内容】
│
└── LLMs与KGs的整合【应用领域】├── 增强推理能力,更新LLMs的能力而无需重新训练【应用效果】└── 自动化复杂的决策过程,改善如问答等数据驱动的任务【应用效果】

针对这个实际的医学问诊问题:“医生,我最近经常牙疼,刷牙的时候经常出血,是不是牙龈出问题了?”,我们可以通过穿越树(Tree-of-Traversals)算法来演示如何进行分析和诊断。

患者询问:“医生,我最近经常牙疼,刷牙的时候经常出血,是不是牙龈出问题了?”

  1. 输入
  • 问题查询:“我最近经常牙疼,刷牙的时候经常出血,是不是牙龈出问题了?”
  • 知识图谱数据:包含有关牙科疾病(如牙龈炎、牙周炎)、症状、治疗方法以及相关生活习惯信息的医学知识图谱。
  1. 处理过程
  • 初始化

    • 提取实体:识别“牙疼”和“刷牙出血”作为关键症状。
    • 建立本地子图:构建涉及这些症状及可能相关疾病如牙龈炎和牙周炎的知识子图。
  • 动作状态机(ASM)

    • 定义可能的动作:包括查询牙龈疾病的病因、症状、并发症和治疗方法。
    • 管理状态转换:从识别症状到关联病因和推荐治疗。
  • 树搜索算法

    • 生成思考路径:模拟可能的医疗诊断路径,例如探索牙龈炎引起的症状与治疗。
    • 执行动作:在知识图谱中执行搜索,更新关于牙龈状况的信息。
    • 评估和选择:评估不同诊断的可信度,选择最匹配患者描述的诊断结果。
  1. 输出
  • 答案生成:可能的诊断结果,如“牙龈炎可能是导致您牙疼和刷牙时出血的原因。”
  • 更新的知识图谱:包括关于牙龈炎及其治疗的最新医学信息,可能还包括预防措施和日常护理建议。

技术和方法解释及衔接

  • 知识图谱的使用:为算法提供牙科相关的详细医学背景,使算法能够基于实际情况进行深入的医学推理。
  • 动作状态机和树搜索算法的结合:通过ASM提供明确的动作指南和状态管理,以及树搜索算法的推理能力,确保从患者症状到可能的病因之间的逻辑推理精确且高效。
  • 零样本推理的优势:算法能够在没有特定训练样本的情况下处理复杂的医疗问题,适应各种未知或新出现的症状描述。

这幅图是一个关于如何使用一种名为“树遍历”的算法来解决一个具体问题的示例。这个问题是查询在两部电影《盗梦空间》和《星际穿越》中都有演出的演员。这个过程通过与知识图谱的交互完成,分以下几个步骤说明:

  1. 初始化:算法开始时,会根据问题中提到的电影《盗梦空间》和《星际穿越》,在知识图谱中标记出这两个实体。
  2. 选择操作:算法会决定是直接尝试回答问题,还是继续在知识图谱中寻找更多信息(称为“扩展KG”)。在这个例子中,算法选择了“扩展KG”以获取更多信息。
  3. 细化搜索:算法接着选择特定的实体(电影),并决定探索与这些电影相关的哪种信息(例如导演或演员)。
  4. 回溯:如果选定的路径没有产生有价值的信息(即答案的价值低),算法会退回到之前的步骤,选择其他可能的路径。
  5. 得出答案:最终,算法收集所有需要的信息后,会生成答案。在这个例子中,正确的答案是演员迈克尔·凯恩,因为他在这两部电影中都有出演。

每个步骤都用不同的方框和箭头表示,显示了从问题到答案的整个决策过程。这种方法可以帮助算法在复杂的查询中找到准确的答案,通过不断在知识图谱中搜索和回溯来提高回答问题的准确性。

Tree-of-Traversals算法解析

目的:提高大型语言模型(LLMs)在处理复杂查询时的推理能力和准确性,通过结合知识图谱(KGs),使LLMs能够更有效地处理和解答具体领域的问题。

问题:单独的LLMs在没有足够具体领域知识支持时,可能无法准确回答或推理出特定领域(如医学、法律等)的详细问题,因为它们的训练数据可能不包含足够的领域特定信息,或者信息已经过时。

解法:通过结合知识图谱和动态的搜索算法(树搜索算法)来增强LLMs的问题解决能力,使其能够访问和利用最新的、结构化的领域知识。

  1. 知识图谱接口(子解法1)

    • 特征:提供了结构化的、领域特定的知识,如实体、属性、关系等。
    • 之所以用知识图谱接口,是因为这些结构化的信息可以直接增强LLMs的知识库,使其对领域内的具体问题有更深入的理解。例如,医学领域的知识图谱可以帮助LLM更好地理解疾病和症状之间的关系。
  2. 动作状态机(ASM)(子解法2)

    • 特征:管理和维护可能的动作和状态,提供决策支持。
    • 之所以用动作状态机(ASM),是因为它可以根据当前的查询和可用的知识图谱信息确定最佳的行动路径。例如,面对一个关于药物副作用的查询,ASM能确定是否需要进一步查询特定药物与其他疾病的关联。
  3. 树搜索算法(子解法3)

    • 特征:执行复杂的推理和搜索任务,通过模拟多种可能的推理路径来寻找最佳答案。
    • 之所以用树搜索算法,是因为它可以在可能的解答空间内有效地导航,找到最准确的回答。例如,在处理法律相关查询时,树搜索算法可以评估不同法律规则的适用性并选择最相关的法条。

对比 MindMap

在医学诊断领域对比“树遍历”算法与“MindMap”时,几个关键方面凸显了它们的方法、优势和潜在应用:

1. 与知识图谱(KGs)的整合

  • 树遍历:

    • 无需重新训练或微调LLMs,便可与一个或多个知识图谱动态整合。此方法采用零次射击方式,根据特定查询上下文与知识图谱进行交互。
    • 侧重于使用基于树的搜索方法在知识图谱中导航,有效利用结构化知识进行推理。
  • MindMap:

    • 同样动态连接到知识图谱,但强调使用知识图谱提示来激发LLM内部的思维图。这增强了LLM的自然语言处理能力及其整合和推理新的、结构化信息的能力。
    • 使用可视化思维图来增加透明度,并提供可追溯的推理路径,这在医学诊断中至关重要,有助于理解模型的决策过程。

2. 推理方法

  • 树遍历:

    • 利用动作状态机(ASM)和树搜索算法来确定查询解决的最佳路径。这包括生成潜在的推理路径,执行知识图谱中的动作,并根据评估选择最佳结果。
    • 旨在通过动态导航一系列可能解决方案的树来处理复杂查询,使其高度适应不同的诊断场景。
  • MindMap:

    • 结合大型语言模型的能力和知识图谱来执行复杂的、多步骤的逻辑推理。专注于通过模拟类人思维过程的方式增强LLM的推理能力。
    • 在生成决策解释方面表现强劲,这在医学诊断中非常有益,为每个诊断建议提供清晰的理由。

3. 灵活性与可扩展性

  • 树遍历:

    • 高度灵活,允许与任意数量的知识图谱整合,且不依赖于模型重训练。这使得它能够在不同领域内扩展,无需额外的显著成本。
    • 该算法的回溯和探索多路径的能力确保了在复杂的诊断场景中的鲁棒性,特别是在可能有多个可行诊断时。
  • MindMap:

    • 通过动态更新其知识库的能力,也显示出在整合新知识领域时的显著灵活性,这在医学等快速发展的领域中尤为重要。
    • 系统的模块化在添加或修改知识领域时快速适应新的应用,使其在大规模医疗应用中既可扩展又高效。

4. 在医学诊断中的应用

  • 树遍历:

    • 其树搜索方法可以系统地探索各种诊断假设,评估它们,并在必要时进行回溯,类似于医疗专业人员如何权衡不同的诊断可能性。
    • 零样本学习方法确保了系统可以在没有针对特定医疗数据训练的情况下部署在医疗场景中,从而尊重隐私问题和数据敏感性。
  • MindMap:

    • 通过创建可视化思维图,MindMap能为医疗专业人员提供清晰且可解释的推理过程视图,帮助在需要多个专家合作和理解AI决策过程的复杂案例中。
    • 其能够结合并推理大量的医疗数据使其特别适用于深入诊断,理解症状、疾病和治疗之间的关系至关重要。

速度和准确

在比较“树遍历”和“MindMap”这两种技术在速度、推理全面性和准确性方面时,每种方法都有其独特的优势和局限。这些差异主要源于它们对知识图谱的不同使用方式和推理策略。

1. 速度

  • 树遍历:

    • 优势: 由于树遍历算法采用了零次射击(zero-shot)方法,无需预训练或微调,可以直接与多个知识图谱动态交互。这使得在不需要长时间加载或处理大量数据的情况下快速响应。
    • 局限: 虽然响应速度快,但复杂查询的处理速度可能因需要进行多次树形搜索和回溯而变慢,尤其是在面对广泛的知识图谱数据时。
  • MindMap:

    • 优势: MindMap通过构建可视化的思维图,增强了信息的透明度和可追踪性,但这种方法在处理速度上可能不如树遍历快,尤其是在构建和更新复杂思维图时。
    • 局限: 在生成详尽的推理路径时,可能需要更多的计算资源和时间,特别是当涉及到大规模或复杂的知识图谱时。

2. 推理的全面性

  • 树遍历:

    • 优势: 通过树搜索算法,能够探索多个潜在的推理路径,提供多方案的解决策略,这在处理复杂和多变的医疗诊断问题时尤其重要。
    • 局限: 尽管可以探索多条路径,但全面性的保证依赖于算法能否全面覆盖所有相关的知识图谱节点和连接,这可能受限于知识图谱的完整性和算法的搜索深度。
  • MindMap:

    • 优势: 通过结合知识图谱和大型语言模型的自然语言处理能力,MindMap在生成推理过程时能够考虑更多的上下文和连接,提供更为全面和深入的推理。
    • 局限: 虽然推理过程全面,但其效率和全面性同样受限于所使用知识图谱的质量和更新频率。

3. 准确性

  • 树遍历:

    • 优势: 能够动态地从多个知识图谱中获取信息,并通过实时的树形搜索确保根据最新和最相关的数据生成答案,增强了准确性。
    • 局限: 准确性在一定程度上依赖于搜索算法的有效性和知识图谱的质量。如果搜索算法未能覆盖所有相关数据或知识图谱存在缺陷,则可能影响结果的准确性。
  • MindMap:

    • 优势: 通过生成可视化的思维图和结合LLM的理解能力,MindMap可以提供非常详细和准确的推理结果,尤其是在需要深入分析的医学诊断中。
    • 局限: 准确性虽高,但如同全面性一样,也依赖于知识图谱的更新和准确度。此外,复杂的推理图可能在某些情况下导致过度复杂化,影响决策的速度和直观性。

总结

选择“树遍历”或“MindMap”依赖于特定应用的需求。如果项目需要快速响应和能够处理多来源信息的能力,可能倾向于选择“树遍历”。而在需要高度透明和详细解释推理过程的应用,尤其是在医疗诊断等领域,"MindMap"可能更为合适。

两者都能提供高准确性,但其效果依赖于所依赖知识图谱的质量和完整性。

“树遍历”和“MindMap”都为整合知识图谱与大型语言模型以增强医学诊断提供了坚实的框架。

选择哪一种将取决于特定需求,如需要透明度(MindMap)、灵活地与多个知识图谱整合的能力(树遍历),以及系统的推理风格如何与预期的医疗应用相匹配。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/390981.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第十一章:Kubernetes API服务器的安全防护

本章内容包括: 了解认证机制ServiceAccounts是什么及使用的原因了解基于角色(RBAC)的权限控制插件使用角色和角色绑定使用集群角色和集群角色绑定了解默认角色及其绑定 1 了解认证机制 在前面的内容中,我们说到API服务器可以配置一个到多个认证的插件(授…

数据结构链表2(常考习题1)(C语言)

移除链表元素: . - 力扣(LeetCode) 题目: 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val val 的节点,并返回 新的头节点 。 解题思路: 情况1: 情…

python dash框架

Dash 是一个用于创建数据分析型 web 应用的 Python 框架。它由 Plotly 团队开发,并且可以用来构建交互式的 web 应用程序,这些应用能够包含图表、表格、地图等多种数据可视化组件。 Dash 的特点: 易于使用:Dash 使用 Python 语法…

深入解析 KMZ 文件的处理与可视化:从数据提取到地图展示项目实战

文章目录 1. KMZ 文件与 KML 文件简介1.1 KMZ 文件1.2 KML 文件 2. Python 环境配置与依赖安装3. 代码实现详解3.1 查找 KMZ 文件3.2 解压 KMZ 文件3.3 解析 KML 文件3.4 可视化 KMZ 数据 4. 项目实战4.1. 数据采集4.2. 项目完整代码 5. 项目运行与结果展示6. 总结与展望 在处理…

将后台传来的数据,转成easyui-tree所需格式

easyui 中文文档 EasyUI Tree组件需要一个包含特定属性(如id, text, children等)的JSON对象数组来初始化。 而后台返回的数据,它可能不是我们直接能拿来用的。 方式一:使用loadFilter函数处理来自Web Services的JSON数据。 $(#…

功能实现——通过阿里云 OSS 实现文件管理

目录 1.需求分析2.阿里云 OSS 开通与配置2.1.登录阿里云官网2.2.搜索 OSS 服务并开通2.3.OSS 配置 3.在项目使用阿里云 OSS3.1.项目环境搭建3.2.代码实现3.2.1.将本地文件上传到阿里云 OSS3.2.2.将前端传入的文件上传到阿里云 OSS3.2.3.下载文件到本地2.3.4.流式下载3.2.4.OSSC…

本地部署文生图模型 Flux

本地部署文生图模型 Flux 0. 引言1. 本地部署1-1. 创建虚拟环境1-2. 安装依赖模块1-3. 创建 Web UI1-4. 启动 Web UI1-5. 访问 Web UI 0. 引言 2024年8月1日,blackforestlabs.ai发布了 FLUX.1 模型套件。 FLUX.1 文本到图像模型套件,该套件定义了文本到…

【收录率高丨最快会后3-4个月EI检索 | 往届均已EI检索】第四届光学与通信技术国际学术会议(ICOCT 2024,8月9-11)

欢迎参加第四届光学与通信技术国际学术会议(ICOCT 2024),该会议将于2024年8月9-11日在南京举办。自2021年首次会议以来,ICOCT已经发展成为光学和通信领域较有影响力的国际会议之一,聚焦最前沿的技术进展与未来发展趋势…

【Redis 进阶】哨兵 Sentinel(重点理解流程和原理)

Redis 的主从复制模式下,一旦主节点由于故障不能提供服务,需要人工进行主从切换,同时大量的客户端需要被通知切换到新的主节点上,对于上了一定规模的应用来说,这种方案是无法接受的,于是 Redis 从 2.8 开始…

“八股文“在现代编程面试中的角色重塑:助力、阻力还是桥梁?

🌈所属专栏:【其它】✨作者主页: Mr.Zwq✔️个人简介:一个正在努力学技术的Python领域创作者,擅长爬虫,逆向,全栈方向,专注基础和实战分享,欢迎咨询! 您的点…

AI人工智能开发环境配置

AI人工智能 为什么使用Python来开发AI 人工智能被认为是未来的趋势技术。 已经有了许多应用程序。 因此,许多公司和研究人员都对此感兴趣。 但是这里出现的主要问题是,在哪种编程语言中可以开发这些 AI 应用程序? 有各种编程语言&#xff0c…

Python 实现股票指标计算——LON

LON - 铁龙长线 1 公式 LC : REF(CLOSE,1); VID : SUM(VOL,2)/(((HHV(HIGH,2)-LLV(LOW,2)))*100); RC : (CLOSE-LC)*VID; LONG : SUM(RC,0); DIFF : SMA(LONG,10,1); DEA : SMA(LONG,20,1); LON : DIFF-DEA; LONMA : MA(LON,10); LONT : LON, COLORSTICK; 2 数据准备…

练题模块环境搭建

文章目录 1.数据库表设计1.practice_set 套卷2.practice_set_detail 套卷细节3.practice_info 练习信息4.practice_detail 练习详情5.E-R图 2.架构设计(三层架构)3.练题微服务架构搭建1.创建一个练题微服务模块1.创建一个maven项目2.把src删除&#xff0…

Halcon 二维匹配

匹配:在训练图像中呈现一个所谓的模板。系统从这个模板中派生出一个模型,通过使用该模型来定位于搜索图像中的相似模板对象。此方法能够处理打光、杂乱、位置和旋转变换的图像。 匹配优点:鲁棒性和灵活性。匹配不需要对目标进行任何形式的分割…

假期BUUCTF小练习3

文章目录 [极客大挑战 2019]BuyFlag[BJDCTF2020]Easy MD5[HCTF 2018]admin第一种方法 直接登录第二种方法 flack session伪造第三种方法Unicode欺骗 [MRCTF2020]你传你🐎呢[护网杯 2018]easy_tornadoSSTI注入 [ZJCTF 2019]NiZhuanSiWei [极客大挑战 2019]BuyFlag 一…

vmware虚拟机linux服务器的IP需要重启才能生效问题

vmware虚拟机linux服务器的IP需要重启才能生效问题 问题说明处理办法关闭&禁用网络管理 再次重启linux服务器,IP显示正常 问题说明 用vmware虚拟的linux服务器,配置了静态IP,但是每次重启liunx,IP都不是设置的静态IP&#xf…

[GWCTF 2019]我有一个数据库1

打开题目,一串乱码,不认识的汉字 打开题目地址,用dirsearch对网站进行扫描,发现几个目录。 打开,其中一个显示为是一个MySQL数据库Version 4.8.1。 发现该数据给具有文件包含漏洞,输入以下代码验证存在 h…

java面向对象编程入门

一、前言: 在Java中,面向对象编程(Object-Oriented Programming, OOP)是一种核心的编程范式。Java的设计和开发都是基于面向对象的思想。面向对象编程的主要目的是提高代码的可重用性、灵活性和可维护性。以下是Java面向对象编程…

Neutralinojs教程项目实战初体验(踩坑指南),干翻 electron

Neutralinojs 项目实战初体验(踩坑指南),干翻 electron 大家好我是csdn的red润 Neutralinojs 官方文档 卧槽卧槽,!这个年轻人居然用浏览器把电脑关机了_哔哩哔哩_bilibili正是在下 本教程搭建的是纯原生项目&#x…

LeetCode每日一题_3143.正方形中的最多点数

解题思路:自己:先把points里的点拿来求出坐标系的离原点最远的点,然后根据最远距离新建一个数组,然后把points的点都在新建的数组上标记出来。然后再便利从边长为0的正方形开始,里面是否有重复的标签。但是代码写不出来…