Graph-Cot:图上迭代推理

news2024/9/24 9:28:30

Graph-Cot:图上迭代推理

    • 提出背景
    • GRAPH-COT 对比 MindMap
    • GRAPH-COT 和 MindMap 多链推理方法结合
      • 案例一:复杂症状的诊断
      • 案例二:罕见病的诊断
      • 案例三:治疗方案的制定
    • 解法拆解
      • 目的
      • 问题
      • 解法
    • GRAPH-COT 医学问诊

论文:https://arxiv.org/pdf/2404.07103

代码:https://github.com/PeterGriffinJin/Graph-CoT

提出背景

GRAPH-COT框架提出的背景和目的:

  • 解决的类别问题:GRAPH-COT框架是为了解决那些需要在大量相互关联的文本单元中进行深入推理的问题。

这类问题通常出现在知识密集型任务中,如学术研究、法律分析、医疗诊断等领域,其中涉及的信息不仅包含在单个文本中,还蕴含在文本之间的联系和结构中。

  • 解决的具体问题:具体来说,GRAPH-COT旨在解决大型语言模型(LLMs)在处理这类任务时出现的两个主要问题:
    • 幻觉问题(Hallucinations):LLMs有时会生成看起来合理但缺乏事实依据的内容。
    • 缺乏基础性知识(Lack of Grounded Knowledge):LLMs虽然能够参数化地记忆世界知识,但它们难以引用具体的知识源。

GRAPH-COT通过在图上进行迭代推理,帮助LLMs更好地利用外部知识库,从而提高其在复杂知识任务上的表现和准确性。

你有一堆拼图,每块拼图都是一个故事的一部分,但是它们都是混在一起的。

GRAPH-COT就像一个神奇的规则,它帮助你一步步地找出哪块拼图应该放在哪里,直到整个故事变得清晰。

在这里插入图片描述

├──  GRAPH-COT【Graph Chain-of-Thought 框架】
│      ├── 框架概述【Overview】
│      │      └── 目的:增强大型语言模型通过在图上进行推理【Purpose】
│      ├── 输入【Input】
│      │      └── 问题:需要解答的查询【Question】
│      ├── 处理过程【Process】
│      │      ├── LLM reasoning【推理】
│      │      │      └── 确定需要从图中获取的信息【Determine Information】
│      │      ├── LLM-graph interaction【交互】
│      │      │      ├── 根据推理结果与图交互【Interact based on reasoning】
│      │      │      └── 使用预定义的图函数【Use predefined graph functions】
│      │      └── Graph execution【执行】
│      │              ├── 执行图函数并获取信息【Execute functions and retrieve information】
│      │              └── 返回结果以供下一步推理使用【Return results for reasoning】
│      ├── 输出【Output】
│      │      └── 最终答案:LLM推理的结论【Final Answer】
│      └── 技术与方法的衔接【Integration】
│           ├── LLM reasoning 到 LLM-graph interaction【Transition】
│           │      └── 基于推理结果生成交互查询【Generate queries from reasoning】
│           ├── LLM-graph interaction 到 Graph execution【Transition】
│           │      └── 将LLM的查询转化为图操作【Translate queries to graph operations】
│           ├── Graph execution 到 LLM reasoning【Feedback】
│           │      └── 将图操作结果反馈给LLM【Feedback results to LLM】
│           └── 迭代过程:直到得出最终答案【Iteration】
│               └── 循环上述步骤直到收敛【Loop until convergence】

GRAPH-COT 对比 MindMap

当比较GRAPH-COT与基于思维导图的多链推理方法(MindMap)时,我们可以从各自的特性和处理流程来进行分析:

  1. 框架基础

    • GRAPH-COT:专门设计用于与图结构数据交互,强调在图上进行迭代推理,以提取和利用图中的节点和边所蕴含的知识。
    • MindMap:侧重于使用思维导图来组织和可视化信息,构建推理图来支持多链推理。
  2. 输入处理

    • GRAPH-COT:通过LLM与图的交互,逐步探索和执行图上的操作,以收集信息。
    • MindMap:从证据子图中提取信息,转换成自然语言描述,构建推理图。
  3. 推理方法

    • GRAPH-COT:采用迭代的方法,LLM在每个迭代中进行推理、与图交互,然后执行图上的操作。
    • MindMap:使用Langchain技术,支持多链推理,同时探索多个推理路径。
  4. 知识利用

    • GRAPH-COT:主要依赖图结构中的显式知识,通过图的遍历和节点特征的检索来进行推理。
    • MindMap:结合了LLM内部的隐含知识和外部证据图中的显式知识。
  5. 推理过程

    • GRAPH-COT:LLM通过与图的交互来逐步构建答案,每次迭代都可能需要新的图上操作。
    • MindMap:通过构建思维导图来组织推理过程,直观地展示不同推理链。
  6. 输出结果

    • GRAPH-COT:最终输出是LLM得出的答案,可能包括推理过程中的关键步骤摘要。
    • MindMap:提供总结性答案、推理过程描述以及可视化的思维导图。
  7. 技术特点

    • GRAPH-COT:强调图结构数据的直接操作和LLM的迭代交互。
    • MindMap:侧重于使用思维导图作为推理过程的组织和可视化工具。
  8. 适用场景

    • GRAPH-COT:适用于需要深入分析和利用图结构数据的场景,如学术研究、法律分析等。
    • MindMap:适用于需要广泛探索不同推理路径并需要直观展示推理过程的场景。

GRAPH-COT与MindMap的多链推理方法在处理复杂问题时都采用了迭代和多步骤的推理过程,但它们在信息组织、知识利用和推理可视化方面各有侧重。

GRAPH-COT更专注于图结构数据的深入分析,而MindMap方法则提供了一个更为直观的推理过程可视化表示。

GRAPH-COT 和 MindMap 多链推理方法结合

案例一:复杂症状的诊断

背景:患者出现多种症状,如发热、咳嗽和乏力,这些症状可能与多种疾病相关。

GRAPH-COT应用

  1. 构建图结构:将症状、疾病、检查结果等医学信息构建成图结构,其中节点代表实体(如症状、疾病),边代表关系(如“可能导致”、“常见于”)。
  2. 迭代推理:使用GRAPH-COT进行迭代推理,每次迭代中,根据当前症状和已识别的疾病,查询图中相关的进一步症状或疾病。

MindMap应用

  1. 构建推理图:将GRAPH-COT中得到的实体和关系转换为自然语言描述,构建思维导图的推理图。
  2. 多链推理:在思维导图中同时探索多个推理链,例如,发热可能与感冒、肺炎等多种疾病相关。

结合使用

  • 使用GRAPH-COT深入挖掘图结构数据中的潜在联系。
  • 利用MindMap将这些联系和推理过程可视化,帮助医生全面考虑所有可能性。

案例二:罕见病的诊断

背景:患者出现不常见的症状组合,难以直接诊断。

GRAPH-COT应用

  1. 利用图结构:在医学知识图谱中,探索罕见症状与已知疾病之间的关系。
  2. 深度交互:通过GRAPH-COT框架,深入查询与罕见症状相关的医学文献和案例报告。

MindMap应用

  1. 整合隐含知识:结合医生的经验和隐含知识,构建包含多种可能的推理路径的思维导图。
  2. 消歧和识别:在思维导图中识别和消歧不同的疾病实体,确保正确的诊断方向。

结合使用

  • GRAPH-COT提供了一个结构化的方法来探索和验证假设。
  • MindMap帮助医生整合非结构化的经验和直觉,提供一个更全面的视角。

案例三:治疗方案的制定

背景:确诊后,需要制定个性化的治疗方案。

GRAPH-COT应用

  1. 药物相互作用查询:在药物和疾病图谱中,使用GRAPH-COT查询不同药物之间的相互作用。
  2. 患者特征分析:考虑患者的年龄、性别、过敏史等特征,使用GRAPH-COT进行个性化治疗推荐。

MindMap应用

  1. 整合治疗方案:在思维导图中整合不同的治疗选项、药物副作用和患者偏好。
  2. 多角度评估:探索治疗的经济、心理和社会影响。

结合使用

  • GRAPH-COT提供了基于数据的治疗选项和相互作用分析。
  • MindMap帮助医生和患者理解各种治疗方案的利弊,做出更全面的决策。

GRAPH-COT提供了一个基于数据和图结构的推理框架,而MindMap则提供了一个直观和全面的思维工具,两者结合使用可以提高医学问诊的效率和准确性。

解法拆解

目的

  • 增强大型语言模型(LLMs)在知识密集型任务中的性能,尤其是在需要利用外部知识库进行推理的场景。

问题

  • LLMs在处理某些任务时可能会产生幻觉(hallucinations),即生成看似合理但缺乏事实依据的内容。
  • LLMs可能缺乏对具体知识源的引用能力,导致其在知识密集型任务中表现不佳。

解法

  • 解法:迭代图推理框架(因为需要逐步利用图结构数据进行推理)

子解法拆解:

  1. 子解法1:图结构构建(因为存在大量结构化数据)

    • 通过将知识库中的信息构建成图结构,节点表示实体,边表示关系。

     
    例子:在医学领域,可以将疾病、症状、药物等作为节点,它们之间的关系如“导致”、“治疗”等作为边。

  2. 子解法2:LLM与图交互(因为需要结合LLM的推理能力与图数据)

    • 使LLM能够提出问题或假设,并在图中检索相关信息。

     
    例子:如果LLM提出一个问题“某种症状可能由哪些疾病引起?”,系统将在图上检索与该症状相关联的疾病节点。

  3. 子解法3:迭代推理(因为复杂问题可能需要多步骤推理)

    • 通过迭代过程,LLM逐步收集信息,直到得出结论。

     
    例子:在诊断过程中,根据患者的症状,LLM可能需要多次迭代,每次迭代都可能发现新的相关症状或需要进行的检查。

  4. 子解法4:图执行(因为需要在图上执行具体操作以获取信息)

    • 在图上执行操作,如节点检索、邻居查找、路径跟踪等,以收集信息。

     
    例子:为了找出两种疾病之间的关联,系统可能需要执行路径跟踪操作,找出连接这两个疾病节点的所有可能路径。

  5. 子解法5:结果反馈与调整(因为需要根据反馈优化推理过程)

    • 将图推理的结果反馈给LLM,并根据结果调整后续的推理方向。

     
    例子:如果初步推理结果指向了一个不太可能的疾病,医生可以根据临床经验反馈给系统,系统据此调整搜索策略或提出新的假设。

之所以使用这些子解法,是因为它们共同构成了一个系统化的框架,能够有效地结合LLM的文本处理能力和图结构数据的丰富关系,以解决复杂的知识推理任务。

每个子解法针对的是问题解决过程中的一个特定方面,从数据结构化到信息检索,再到迭代推理和结果反馈,形成了一个闭环的解决问题流程。

GRAPH-COT 医学问诊

  1. 逻辑推理与 LLMs

    • 医生输入一个复杂病例的问题,例如:“患者出现头痛、发热和乏力,可能是什么疾病?”
    • LLMs 进行逻辑推理,确定需要从医学知识图谱中获取哪些信息,例如确定需要检索与这些症状相关的疾病信息。
  2. LLMs 与图谱的交互

    • 根据逻辑推理的结果,LLMs 与医学知识图谱进行交互,使用预定义的图谱函数来检索信息:
      • RetrieveNode("头痛") 检索与头痛相关的疾病节点。
      • NeighborCheck("发热", "症状") 检查与发热相关的其他症状节点。
      • NodeDegree("疾病节点ID", "症状") 确定某个疾病节点与多少种症状相关联,以评估可能性。
  3. 图谱上的执行

    • 执行上述函数调用,图谱返回相关信息,如相关疾病列表和它们的症状。
    • LLMs 根据返回的信息进行进一步的逻辑推理,比如比较不同疾病的相似性和差异性。
  4. 迭代过程

    • 如果第一次迭代未能得出确切的诊断,LLMs 将基于当前信息进行下一轮的逻辑推理,可能需要考虑更多的症状或排除某些疾病。
    • 例如,如果初步怀疑是流感,但患者有其他不寻常的症状,LLMs 可能需要考虑其他罕见疾病。
  5. 得出结论

    • 经过几轮迭代后,LLMs 根据收集到的信息和逻辑推理,得出最可能的疾病诊断。
    • 例如,最终诊断可能是:“根据患者的症状和医学知识图谱中的信息,最可能的诊断是登革热。”
  6. 与 LLM 代理的连接

    • 在整个过程中,LLMs 作为代理,使用预定义的图谱函数与医学知识图谱环境交互,探索可能的诊断,并回答医生的查询。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

(BO)Bayes-CNN多变量时序预测 基于贝叶斯算法-卷积神经网络多变量时序预测(多输入单输出)Matlab代码

Bayes-CNN多变量时序预测 基于贝叶斯算法-卷积神经网络多变量时序预测(多输入单输出)Matlab代码 程序已经调试好,无需更改代码替换数据集即可运行!!!数据格式为excel!(如下) 需要其他的都可以…

CSS3下拉菜单实现

导航菜单&#xff1a; <nav class"multi_drop_menu"><!-- 一级开始 --><ul><li><a href"#">Power</a></li><li><a href"#">Money</a></li><li><a href"#"…

【数模修炼之旅】02 多目标规划 深度解析(教程+代码)

【数模修炼之旅】02 多目标规划 深度解析&#xff08;教程代码&#xff09; 接下来 C君将会用至少30个小节来为大家深度解析数模领域常用的算法&#xff0c;大家可以关注这个专栏&#xff0c;持续学习哦&#xff0c;对于大家的能力提高会有极大的帮助。 1 多目标规划介绍及应…

百度智能云发布3款轻量级+2款场景大模型

文心大模型ERNIE 3.5是目前百度智能云千帆大模型平台上最受欢迎的基础大模型之一。针对用户的常见通用的对话场景&#xff0c;ERNIE 3.5 在指令遵循、上下文学习和逻辑推理能力三方面分别进行了能力增强。 ERNIE Speed作为三款轻量级大模型中的“大个子”&#xff0c;推理场景…

解决连接不上Linux和服务器中的Nacos(Windows中能连接但是Linux中却不行)

报错 com.alibaba.nacos.shaded.io.grpc.StatusRuntimeException: UNKNOWN: Uncaught exception in the SynchronizationContext. Re-thrown. at com.alibaba.nacos.shaded.io.grpc.Status.asRuntimeException(Status.jav 2024-08-13T10:21:52.93708:00 ERROR 27764 --- …

ArduPilot开源代码之FMU+IOMCU设计

ArduPilot开源代码之FMUIOMCU设计 1. 源由2. 设计概念3. FMU & IOMCU特点3.1 FMU&#xff08;Flight Management Unit&#xff09;的主要功能3.2 IOMCU&#xff08;Input/Output Microcontroller Unit&#xff09;的主要功能3.3 主要差异 4. 主/辅助(MAIN/AUX) PWM输出5. 软…

【北京仁爱堂】痉挛性斜颈的早期症状,你了解吗?

在日常生活中&#xff0c;您可能很少听到“痉挛性斜颈”这个名词&#xff0c;但它却是一种不容忽视的疾病。今天&#xff0c;就让我们一起来了解一下痉挛性斜颈的早期症状&#xff0c;以便能够及时发现并采取相应的措施。 痉挛性斜颈是一种局限性肌张力障碍疾病&#xff0c;主要…

Gitlab搭建服务器好做吗 Gitlab搭建服务器操作指南

GitLab是一个强大的开源代码托管和CI/CD工具&#xff0c;广泛用于软件开发的版本控制和自动化构建。对于许多公司和开发团队来说&#xff0c;自行搭建GitLab服务器是一个既具挑战性又有很多好处的选择。本文将详细讨论搭建GitLab服务器的难易程度&#xff0c;提供一份详尽的操作…

死信队列.

“死信”是指在RabbitMQ中那些因为某些原因无法被正常处理的消息。

OpenCV图像滤波(11)中值滤波medianBlur函数的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 功能描述 该函数使用中值滤波器对图像进行模糊处理。 该函数采用 ksizeksize 的窗口尺寸对图像进行平滑处理。对于多通道图像&#xff0c;每个通道将被独…

Linux发行版深度对比:Ubuntu、CentOS与Fedora

在Linux的广阔世界中&#xff0c;Ubuntu、CentOS和Fedora作为三大主流发行版&#xff0c;各自拥有独特的生态系统、用户基础和开发理念。它们不仅在技术架构上有着显著的差异&#xff0c;更在用户体验、社区支持、软件更新策略以及安全性能等方面展现出各自的特色。本文将对这三…

红黑树R-B Tree

文章目录 概述红黑树的特性红黑树的原理应用为什么设计红黑树红黑树左旋与右旋的区别 概述 红黑树&#xff08;Red Black Tree&#xff09;是一种自平衡的二叉查找树&#xff0c;在计算机科学中广泛使用&#xff0c;其典型的用途是实现关联数组。R-B Tree&#xff0c;全称是 R…

[C++][opencv]基于opencv实现photoshop算法亮度和对比度调整

【测试环境】 vs2019 opencv4.8.0 【效果演示】 【核心实现代码】 #include <iostream> #include "opencv2/core.hpp" #include "opencv2/imgproc.hpp" #include "opencv2/highgui.hpp"using namespace std; using namespace cv;#defi…

【区块链+食品安全】食药产业全流程可追溯平台 | FISCO BCOS应用案例

为响应国家强化食品安全追溯监管的号召&#xff0c;吉科软信息技术有限公司基于 FISCO BCOS 联盟链开源技术&#xff0c;推出了 食药产业全流程可追溯平台&#xff0c;并应用于吉林省白山市。该平台建立了从食药产品种养殖、生产加工、冷链运输、 流通到消费的全链条可追溯体系…

掌握Python eval()函数:解析动态代码执行的神奇之处

eval() 是 Python 提供的一个内置函数&#xff0c;用于动态执行字符串形式的表达式。 虽然它功能强大&#xff0c;但同时也伴随着一定的风险和局限性。在本文中&#xff0c;我们将详细介绍 eval() 的用法、注意事项以及一些常见的应用场景。 一、eval() 函数的基本用法 基本语…

SpringIOC和SpringAOC

lombok插件 XML<!-- 加载资源文件 --><context:property-placeholder location"classpath:jdbc.properties"></context:property-placeholder><!-- 注入数据源 --><bean id"dataSource" class"com.mchange.v2.c3p0.ComboP…

Supervision 计算机视觉工具

简介 Supervision库是Python计算机视觉低代码工具&#xff0c;旨在为用户提供便捷高效的接口&#xff0c;以便处理数据集并直观地展示检测结果。绘制检测结果&#xff0c;统计指定区域内检测目标数量Supervision都提供了相应的接口 安装库 要求Python版本>3.8 1.安装无图像…

【机器学习】反向传播算法的直观解释、微积分原理以及反向传播中的链式法则

引言 正如有句话说的好&#xff0c;neurons-that-fire-together-wire-together&#xff08;一同激活的神经元关联在一起&#xff09; 文章目录 引言一、反向传播算法的直观解释1.1 前向传播1.2 计算误差1.3 反向传播误差1.4 更新权重 二、微积分原理2.1 损失函数 L L L2.2 链式…

javaEE WebServlet、SpringWebMVC、SpringBoot实现跨域访问的4种方式及优先级

文章目录 1. 前置知识2. 原理和解决方案总结2.1. 跨域不通过原理流程图2.2. 实现原理&#xff1a;添加以下http响应头2.3. 四种跨域实现方式及优先级&#xff08;从高到低&#xff09; 3. 具体实现代码3.1. 跨域全局配置方式-Filter(全适用)3.2. 跨域全局配置方式-SpringMvc3.3…

数字孪生模型制作教程虚拟现实城市模型制作3dmax数字城市glb/gltf

需要做数字孪生可以QQ可以联系这里&#xff0c;谢谢 下面开始教程 1打开3dmax软件&#xff0c;和需要做的建筑图片 2 在3dmax安图片先建一个长方体框架 3先给长方体贴一个墙体贴图 4在ps做贴图 5 做好贴图贴到3dmax中 6 然后ps再做下一张贴图 7 做好贴图贴到3dma…