【论文阅读】MEDICAL GRAPH RAG: TOWARDS SAFE MEDICAL LARGE LANGUAGE MODEL VIA

news2024/12/27 3:49:49

论文地址:https://arxiv.org/abs/2408.04187#:~:text=We%20introduce%20a%20novel%20graph-based%20Retrieval-Augmented

代码地址:

GitHub - MedicineToken/Medical-Graph-RAG: Medical Graph RAG: Graph RAG for the Medical Data

1 研究背景:

LLM(如GPT-4和ChatGPT)虽然在自然语言处理和日常应用中取得了巨大进展,但在医学等需要高度精确和专业知识的领域中仍然存在显著局限性,主要包括:

  1. 长上下文处理的复杂性:LLM在面对大量复杂数据时难以处理过长的上下文,同时对特定数据集进行微调代价高昂且不现实。

  2. 幻觉问题:在需要高准确度的领域(如医学),LLM可能会产生“幻觉”,即生成看似准确但实际上错误的信息。这在医疗场景中尤为危险。

  3. 简单回答缺乏深入性:LLM往往给出简单或常规的答案,不能提供足够的新见解,而医学领域需要高水平的推理能力以提供正确的答案。

传统的RAG方法在汇总语义概念或从大数据集中提取新的见解时表现不佳,难以应对复杂的医学场景。为了应对这些挑战,本文提出了一种面向医学领域的图检索增强生成(Graph RAG)方法,即MedGraphRAG该方法通过图结构和LLM结合,旨在提升LLM在医学领域中的表现,生成基于证据的响应,增强其安全性和可靠性。

2 研究贡献

  • 提出了一个全面的图检索增强生成(Graph RAG)框架,专门应用于医疗领域,这是该领域中的首创。

  • 开发了独特的图构建和数据检索方法使得LLM能够利用全面的私有数据生成基于证据的响应,增强了响应的准确性和可靠性。

  • 通过验证实验,证明该方法在多个主流医疗问答基准上达到了最新的最先进水平(SOTA)性能,并在不同模型变体上展现了优越表现。

3 研究方法:

MedGraphRAG 框架:混合语义文档分割、实体提取和层次化的图谱构建来增强大语言模型(LLM)在医疗领域的应用。文章提出了一个三层结构的医学图谱:从用户提供的文档中提取实体,将其链接到医学书籍和文献中的知识,再进一步连接到权威的医学术语系统(如UMLS)。通过这种方式,MedGraphRAG能够准确检索并生成基于证据的响应,提高了医疗数据处理的精确性和安全性

3.1 医疗图谱构建

3.1.1 Semantic Document Segmentation - 混合语义文档分割:

传统的基于token size和fixed characters的方法,导致分块后无法完整捕捉到文档的语义上下文。这种方式可能会导致部分信息的丢失,特别是在处理复杂的医学文档时。为了克服该问题,作者提出了a mixed method of character separation coupled with topic-based segmentation,一种混合静态语义分割方法

step 1 静态字符分隔:通过符号(如换行符)将文档初步分隔为段落。

step 2 基于主题的语义分割(TODO:看下源码):应用主题识别技术(proposition transfer?),提取独立的命题,并基于这些命题进行更精确的分块。这种方法通过zero-shot LLM判断某个命题是否应与已有的块合并或生成新块。此外,使用sliding window来保持主题一致性,从而提高分块的准确性和语义完整性。

 chunk完成后,会根据每一个data chunk来构建知识图谱。

3.1.2 Element Extraction 元素提取

基于大语言模型(LLM)提示的自动化元素提取方法。具体包括以下步骤:

  1. 设计LLM prompt(TODO:看下源码):通过为LLM提供设计好的prompt,模型可以自动识别文本中的相关实体(如医学术语、症状等)。对于每个实体,LLM会输出(name, type, description)

  2. 多次迭代提取:为了提高提取质量并减少噪声,采用多次迭代的方式,确保模型能够捕捉到初始提取过程中遗漏的实体。

这种方法减少了人为干预,提高了提取的准确性和泛化能力,同时还能根据上下文更好地理解并提取复杂的医学术语。

3.1.3 层次化链接-Hierarchy Linking

实体层次划分:通过不同层次的实体,确保从私有数据到权威医学知识的链接,从而增强模型的知识覆盖面。

  • 第一层:用户提供的文档(如医院的医疗报告),包含高度机密的医疗数据。
  • 第二层:常见的医学书籍和学术文章中的知识,作为基础信息。
  • 第三层:权威医学词典和知识图谱(如UMLS),包含精确的医学术语及其语义关系。

层次化图谱结构通过多层次的语义链接保证了每个实体的权威性和准确性,减少了模型生成幻觉的风险。

  • 从第一层文档中提取实体提取的实体包括名称、类型和描述,每个实体都被分配一个唯一的ID,用于追踪源文件和段落。
  • 实体链接:将第一层提取的实体与第二层的基础医学实体进行链接。链接的依据是LLM检测到的语义相似性,通过比较文本嵌入(如余弦相似度)来确定相关性。
  • 与医学词典的连接:第二层的实体进一步链接到第三层的医学词典(如UMLS)。每个医学术语都具有详细的定义和语义关系,确保高精度的医学知识引用。

3.1.4 关系链接 - Relationship Linking

通过relationship的明确标注和评分,确保图谱中的实体关系具有清晰的语义结构。

  • 识别实体之间的关系:LLM被提示识别出各实体之间的关系,基于每个实体的名称、描述、定义及其下级基础知识来建立这些关系。
  • 关系描述与评分:对于每一对实体,LLM会生成关系的描述(如“高度相关”、“中等相关”等),并对关系的紧密程度进行评分。最终生成加权有向图,将这些实体及其关系组织起来。

对于每一个data chunk,得到了一个有向无环图(meta-graph)

3.1.5 图谱合并 - Tags generation and merge the graphs

合并策略既保证了全局语义一致性,又保持了高效检索性能。

  • 合并元图(meta-graphs):通过语义相似度,将多个元图合并成更大的图谱。LLM会根据预定义的医学类别(如症状、病史、功能等)为每个元图生成摘要标签(tags),这些标签用于计算元图之间的相似度,进而决定是否合并。
  • 控制合并过程:为了避免过度合并导致细节丢失,实际操作中限制了合并次数(如24次),确保最终生成的全局图谱能保持足够的细节。

3.2 图谱检索方法

U-retrieve: top-down retrieval, bottom-up response generation

从全局图到元图检索:通过从全局到局部的逐层索引,系统能够高效地处理大规模数据集,保持上下文相关性。

  • 顶层匹配:检索过程从全局图(包含多个元图的较大图)开始。系统首先对顶层图的tag进行匹配,确定与查询相关的部分。
  • 逐层索引:通过标签描述,系统逐步向下索引到更小的元图,逐步锁定与查询相关的子图。这个过程确保了全局上下文的一致性,同时避免了无关信息的干扰。

从底层向顶层生成:通过自底向上生成的策略,系统能够整合不同层次的图谱信息,从而生成内容丰富且具有全局视野的响应。

  • 检索相关实体和关系:在找到相关的元图后,系统会继续检索与查询相关的实体,并同时检索这些实体的TopK相关实体及其关系。
  • 生成中间结果:系统基于检索到的的实体和相关的知识生成一个中间结果。这个中间结果由与查询最相关的信息组成,通常包含原始的医学知识和解释。
  • 综合生成最终结果:中间结果与更高层次图谱中的tag信息结合,进一步生成详细或精炼的最终结果。生成采用自底向上的方式,确保上下文信息的完整性和准确性。

4 实验

4.1 数据集

4.1.1 问答数据源

Top-level Data

  • 数据来源:主要来自用户提供的私有信息,例医院的医疗报告和电子健康记录(EHR)。
  • 代表性数据集MIMIC-IV,公开的电子健康记录数据集,包含从 2008 年到 2019 年期间病人住院的数据。
  • 数据特点:这层数据具有高度私密性,信息更新频率较高,主要用于特定用户的个性化医疗场景。这些数据包含详细的患者记录、诊断、治疗和临床笔记,具有较强的个性化和实时性。

Medium-level Data

  • 数据来源:主要来自经过同行评审的医学书籍和学术论文
  • 代表性数据集MedC-K 数据集,包括 480 万篇生物医学领域的学术论文和 3 万本医学教科书。这些数据集通过清理和去重处理后,形成了大规模的医学知识库。
  • 数据特点:这些数据提供最新的医学进展和研究成果,帮助确保生成的响应基于最新的知识。该层数据通常每年更新一次,以保持其前沿性。

Bottom-level Data

  • 数据来源:来自权威的医学词典和知识库,主要用于定义医学术语及其语义关系
  • 代表性数据集:UMLS(统一医学语言系统),这是一个整合了超过 200 个医学词汇表的大型数据集,包括 SNOMED CT 和 ICD-10。
  • 数据特点:这层数据定义了医学术语的语义关系,主要用于确保每个医学实体的定义和关联具有权威性。这些数据更新频率较低,大约每 5 年或更久更新一次。

4.1.2 验证数据集

PubMedQA

  • 数据来源:该数据集来自 PubMed 摘要,专门用于生物医学研究问答。
  • 数据集内容:主要关注通过多项选择(是、否、可能)的方式回答研究问题。数据集包含三部分:
    • PQA-L:1000 个经过人工标注的问答对,用于测试。
    • PQA-U:61,200 个未标注的问题对(不用于评估)。
    • PQA-A:211,300 个通过自动化方式生成的问题对。
  • 数据特点PubMedQA 专注于通过文献摘要回答医学研究相关的问题,测试模型在处理生物医学文献中的表现

MedMCQA

  • 数据来源该数据集由印度医学院入学考试(AIIMS 和 NEET-PG)的练习题和考试题组成。
  • 数据集内容:数据集分为训练集和测试集:
    • 训练集:182,822 道多项选择题。
    • 测试集:4,183 道多项选择题,每道题提供 4 个可能的答案。
  • 数据特点:MedMCQA 测试的是医学知识,尤其是针对医学考试的多项选择问题,非常适合测试医学领域的基础知识理解和推理能力。

USMLE

  • 数据来源:该数据集来自美国医学执照考试(USMLE)的多项选择题。
  • 数据集内容:题目专为测试医疗专业人员的资格认证准备。该数据集是多语言的,涵盖了英语、简体中文和繁体中文版本,但评估时仅使用了英语部分的数据。
    • 英语部分包含 10,178 + 1,273 + 1,273 个问题数据。
  • 数据特点:USMLE 以评估医学专业人员的准备情况为目标,涵盖从简单到复杂的医学问题。它是一个多语言数据集,适合跨语言评估模型的表现。

4.2 模型

  • LLaMA2LLaMA3:开源模型系列,经过进一步优化,适合广泛的语言任务和应用场景。
  • GPT-4:OpenAI 的旗舰模型,擅长处理复杂对话和生成任务,尤其适合医疗问答等高要求任务。
  • Gemini:Google 开发的对话系统模型,着重于自然语言理解和生成,适合对话式应用。

4.3 实验结果

4.3.1 MedGraphRAG相比于原生模型的提升

MedGraphRAG相对于pretrained模型均有提升

4.3.2   MedGraphRAG提供基于证据的回答

对复杂的医疗问题产生基于证据的回应,提高安全性和可解释性

 4.3.3 对比SOTA医疗大模型

GPT-4 LLM + MedGraohRAG超越SOTA模型Medprompt 1.1%

4.3.4 消融实验 

消融实验,针对混合文档分割策略,层次化图构建和U-Retrival方法进行验证,每种方法都能带来效果提升,结合使用效果更佳

5 结论

 MedGraphRAG,通过多层次的图结构和检索策略,成功解决了 LLM 在处理复杂医学问题时的精确性、安全性和可靠性问题,未来可以探索该框架在更多领域和实时应用中的潜力,进一步推动医学领域 LLM 的发展和应用。

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

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

相关文章

LARA:多语言多轮对话意图分类的新突破

人工智能咨询培训老师叶梓 转载标明出处 多轮对话意图分类面临的主要挑战在于对话的复杂性和上下文的不断变化。如图 1 所示。在多轮对话中,意图可能随着对话的进展而变化,这就需要注释者不仅要理解每条消息的内容,还要把握整个对话的上下文…

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-09-27

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-09-27 目录 文章目录 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-09-27目录1. VisScience: An Extensive Benchmark for Evaluating K12 Educational Multi-modal Scientific Reasoning VisScience:…

Android开发国家手机号归属地列表

Android开发国家手机号归属地列表 国家手机号归属地列表需求不多,但是还是有一些 一、思路: 本地的国家归属号json 二、效果图: 三、关键代码: // 联系:893151960 public class ChooseCountryActivity extends Ap…

golang 获取证书的生效及过期时间

测试样例 func TestGetCertVaildTime(t *testing.T) {certPEM, err : ioutil.ReadFile("aa.bbb.com.crt")if err ! nil {fmt.Println("读取证书文件出错:", err)return}// 解码PEM格式的证书block, _ : pem.Decode(certPEM)if block nil {fmt.Println(&q…

Deep Tone Mapping Operator for High DynamicRange Images

Abstract 计算快速的色调映射算子 (TMO) 可以快速适应各种高动态范围 (HDR) 内容,对于在电影屏幕或标准显示器等各种低动态范围 (LDR) 输出设备上进行可视化至关重要。 现有的 TMO 只能成功地对有限数量的 HDR 内容进行色调映射,并且需要进行广泛的参数…

Mac通过ssh连接工具远程登录服务器( Royal TSX安装及使用)

一、Royal TSX软件下载地址 Royal Apps 二、Royal TSX 汉化 汉化包地址:GitCode - 全球开发者的开源社区,开源代码托管平台 三、基础配置 Royal TSX 是一款基于插件的应用,刚安装时还不具备使用条件,需要进行一些基础配置 1 安装基础插件…

银行CRM系统的核心功能解析与应用价值

在当今竞争激烈的金融市场中,银行业务的成功与否,越来越依赖于高效而精准的客户关系管理系统(CRM)。Zoho CRM系统不仅帮助银行提升服务质量、增强客户满意度,还能有效地促进业务发展和风险控制。为了帮助读者更好地理解…

蓝鹏螺纹钢测径仪的三大测量要点 纵肋 横肋 基圆

关键字:螺纹钢测径仪,螺纹钢纵肋测量,螺纹钢横肋测量,纵肋间隙测量,横肋间隙测量,螺纹钢基圆测量, 螺纹钢测径仪在测量螺纹钢时,主要关注纵肋、横肋和基圆这三大要点。以下是针对这三个方面的详细测量要点: 一、纵肋的测量要点 纵肋是螺纹钢表面上的凹陷…

Ktor快速上手1 - 第一个服务端项目

Ktor 快速上手 第一个APP 工程创建 首先你需要创建一个Ktor工程,这里有两种办法创建: 网页创建后下载包到本地,作为工程打开:Ktor: Project Generator直接在IDEA里面创建Ktor工程 为了方便操作,这里直接在IDEA里面…

SpringAOP学习

面向切面编程&#xff0c;指导开发者如何组织程序结构 增强原始设计的功能 oop:面向对象编程 1.导入aop相关坐标&#xff0c;创建 <!--spring依赖--><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spri…

数学建模研赛总结

目录 前言进度问题四分析问题五分析数模论文经验分享总结 前言 本文为博主数学建模比赛第五天的内容记录&#xff0c;希望所写的一些内容能够对大家有所帮助&#xff0c;不足之处欢迎大家批评指正&#x1f91d;&#x1f91d;&#x1f91d; 进度 今天已经是最后一天了&#xf…

MySQL 慢查询日志:洞察性能瓶颈的利器

在 MySQL 数据库的管理和优化中&#xff0c;慢查询日志是一个非常有用的工具。它可以帮助我们找出执行时间较长的查询语句&#xff0c;从而针对性地进行优化&#xff0c;提高数据库的性能。那么&#xff0c;什么是 MySQL 的慢查询日志呢&#xff1f;又该如何配置和使用它呢&…

广西容县霞烟鸡,品牌兴农,助力乡村振兴!

在两广与港澳地区,流传着一句深入人心的饮食谚语——“无鸡不成宴”,它不仅是一种习俗的体现,更是对餐桌礼仪与待客之道的深刻诠释。每逢家宴欢聚、祭祖庆典或盛宴宾客,一只精心烹制的鸡总是不可或缺的主角,其缺席往往被视为对宾客的不敬。在这片美食文化的沃土上,广西容县的霞…

spark-sql建表数据同步到hive

1、基础环境 组件版本备注hadoop3.4.0官方下载hive3.1.3自编译sparkspark-3.5.3-bin-hadoop3官方下载&#xff0c;需要内置hive的jar相关内容paimon0.9.0Maven官方下载jdk1.8.0_41maven3.9.6固定版本 2、停止服务、清理日志 先停止&#xff0c;清理数据 sudo kill -9 $(ps -ef…

kafka 换盘重平衡副本 操作流程

一、起因 kakfa某块数据盘损坏&#xff0c;且数据无法恢复&#xff0c;需清空换新盘 二、梳理操作流程 查看topic信息 sh ./kafka-topics --bootstrap-server ***:9092 --list --exclude-internal 查看某个topic数据分布情况 sh ./kafka-topics --bootstrap-server ***:…

vscode+stfp插件,实现远程自动同步文件代码

概述 远程同步代码&#xff0c;将本地代码实时保存到同一局域网内的另一台电脑&#xff08;linux系统&#xff09;&#xff0c;这里的本地代码也可以是远程服务上的代码&#xff0c;即从一个远程ip同步到另一台远程ip服务器。 工具 vscode&#xff0c;SFTP插件 安装 vscod…

优可测白光干涉仪:激光陀螺仪提升良率与精度的关键

在当今科技日新月异的时代&#xff0c;高精度导航与定位技术已成为航空航天、军事防御、海洋勘探、自动驾驶乃至日常生活中不可或缺的一部分。而在这背后&#xff0c;激光陀螺仪作为核心元件之一&#xff0c;以其卓越的稳定性和极高的精度&#xff0c;正引领着导航技术的新一轮…

Java设计模式概述

设计模式&#xff08;Design pattern&#xff09;代表了最佳的实践&#xff0c;通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。…

python 自定义多线程的传参方式是什么

在 Python 中&#xff0c;threading 模块提供了多线程编程的支持&#xff0c;允许我们通过创建线程类的方式来实现并发操作。当我们自定义线程类时&#xff0c;可以通过修改类的构造方法和运行逻辑来传递和处理参数。 以下面这个实际的代码片段为例来说明&#xff1a; import…

BootROM清除密码

目录 一、组网需求 二、操作步骤 1. console连接设备 2.重启设备 3. 进入BootROM菜单 a. 选择第4项&#xff0c;进入Startup Select菜单 查看系统使用的配置信息 重命名系统使用的配置文件 启动设备 停止Auto-Config 将重命名的配置文件改为可执行文件 恢复配置 重…