在医疗领域,诊断错误一直是全球医疗系统面临的重大挑战。据研究表明,仅在美国,每年约有79.5万人因危险疾病的诊断错误而遭受永久性残疾或死亡。南洋理工大学LILY研究中心的研究团队开发了一种创新的医疗人工智能助手系统——MedRAG,通过将检索增强生成(RAG)与知识图谱推理相结合,显著提高了医疗诊断的准确性和特异性,特别是在处理表现相似的疾病时。本文将深入解析这一前沿技术的工作原理、核心创新点及其卓越的性能表现。
*1. 医疗AI助手的核心挑战*
医疗诊断错误主要源于认知偏见和判断失误。传统的检索增强生成(RAG)模型和医疗大模型虽然能够利用领域特定知识,但它们往往依赖启发式方法,在疾病表现相似时容易产生错误或模糊的输出。如下图所示,当患者的症状可能指向多种疾病时,传统模型难以精确区分,导致诊断精度不足。
图1:(a) 展示了传统RAG和大模型在面对相似症状(绿色高亮)时产生错误或模糊输出的情况;(b) 展示了MedRAG如何通过知识图谱增强推理能力,提供更准确、特异的诊断和主动跟进问题
*2. MedRAG:融合知识图谱的医疗RAG系统*
MedRAG是一种针对医疗领域优化的检索增强生成框架,通过知识图谱引导的推理能力,实现更准确的诊断决策和治疗建议。其核心创新在于构建了一个四层次的层级诊断知识图谱,系统地捕捉不同疾病之间的关键诊断差异,并将这些差异与从电子健康记录(EHR)数据库检索到的相似病例动态集成,在大语言模型中进行深度推理。
*2.1 整体框架*
MedRAG系统的整体框架如下图所示:
图2:MedRAG的整体框架。系统首先从结构化或非结构化输入中提取患者(红色节点)表现,分解不同的临床特征。这些特征经过嵌入表示后与诊断知识图谱匹配,识别关键诊断差异。MedRAG的知识图谱引导推理RAG模块检索相关电子健康记录,并将它们与诊断差异知识图谱集成,触发大语言模型中的推理过程,生成精确诊断、治疗建议和跟进问题。
MedRAG系统包含五个核心模块:
- 输入:患者表现描述,可以是结构化电子健康记录或非结构化文本描述
- 输出:诊断结果、治疗建议、用药指导,以及必要时的跟进问题
- 诊断知识图谱构建:系统地构建四层次层级诊断知识图谱
- 诊断差异知识图谱检索:识别关键诊断差异信息
- 知识图谱引导推理RAG:包含文档检索器和知识图谱引导推理的大语言模型引擎
*3. 技术原理深度解析*
*3.1 诊断知识图谱构建*
MedRAG构建的四层次层级诊断知识图谱是整个系统的关键基础。它的数学定义如下:
给定一个电子健康记录数据库和一个大语言模型,目标是构建一个四层次层级诊断知识图谱。从顶层到底层的多跳路径可表示为:
其中:
- 是从中提取的所有疾病(即潜在诊断)名称集合
- 表示的子类别集合
- 是的更广泛类别集合
- 每个是疾病名称或类别名称,且
- 是"is_a"关系,表示层级或从属关系
- 是疾病与其表现之间的"has_manifestation_of"关系
- 包含两个子类型:表示由大语言模型增强的疾病特定特征,表示从中提取的疾病表现分解的特征
知识图谱构建过程包括以下关键步骤:
-
疾病知识图谱构建:
其中表示应用于的聚类模型,是嵌入模型
其中是层级聚合操作符,是用于主题聚合的大语言模型
-
- 层级聚合:通过层级聚合构建四层次层级疾病知识图谱
-
- 疾病聚类:统一原始疾病描述为
-
知识图谱表现增强:
-
- 为补充中不足的知识,使用大语言模型和特定提示生成区分相似表现疾病的关键特征
这种构建方法创建了一个能够有效区分相似疾病的结构化知识体系。例如,该知识图谱能够区分腰椎管狭窄症和坐骨神经痛这两种症状相似但对坐姿有不同反应的疾病,如下图所示:
图A3:腰椎管狭窄症和坐骨神经痛之间的诊断差异知识图谱。(它们有相似的表现但对坐姿有相反的反应:前者缓解,后者加重)
*3.2 诊断差异知识图谱检索*
当有患者表现查询输入系统时,MedRAG会执行以下步骤来识别关键诊断差异:
-
表现分解:将患者表现分解为更详细的特征
-
临床特征匹配:计算每个患者特征和知识图谱中特征节点之间的语义相似度
为过滤不相关匹配,引入指示函数:
-
向上遍历:通过聚合基于图中和之间最短路径距离的投票来确定最相关的疾病子类别
-
形成诊断差异知识图谱:以为父节点,向下遍历,检索所有与相邻的及其相邻的
*3.3 主动诊断问题机制*
不准确诊断通常源于患者描述不足或不完整。MedRAG提出了主动诊断问题机制,当初始输入缺乏一些关键信息时,该机制作为副驾驶提出有针对性的跟进问题。
在诊断知识图谱中,特征的区分能力定义为其在中度中心性的倒数:
其中表示中的总数。系统计算每个特征节点的区分能力分数,并选择具有最高区分能力分数的特征:
这些高区分能力的特征用于主动引导跟进问题,以澄清诊断。
*3.4 知识图谱引导推理RAG*
知识图谱引导推理RAG是MedRAG的核心组件,利用大语言模型生成诊断、个性化治疗计划和用药建议。系统还主动提出跟进问题,帮助医生澄清缺失或模糊的患者信息。
其中是用于生成的大语言模型,是患者表现,是检索的文档,是诊断差异知识图谱,是为触发大语言模型推理能力而设计的提示。
不同于大多数专注于回答简短事实性问题的RAG系统,MedRAG针对临床场景中的复杂任务进行了优化。系统提示明确设计用于优化大语言模型的推理能力,特别是在区分表现相似的疾病方面。系统利用检索的文档和从中提取的诊断差异知识图谱进行全面推理。
*4. 实验与性能评估*
*4.1 数据集与基准模型*
研究团队使用两个不同的数据集评估MedRAG框架:
- 公开数据集DDXPlus:一个大规模合成的EHR数据集,包含49种不同诊断,超过130万患者记录
- 私有慢性疼痛诊断数据集(CPDD):来自陈笃生医院的专门EHR数据集,包含551名患者,33种不同诊断
对比基准模型包括:
- Naive RAG with COT
- FL-RAG
- FS-RAG
- FLARE
- DRAGIN
- SR-RAG
*4.2 定量比较结果*
MedRAG在所有数据集的多项指标上实现了最佳或次佳表现(仅有一个例外)。指标上的准确率是衡量MedRAG性能的最佳指标,因为更高的特异性增加了诊断难度。MedRAG在CPDD和DDXPlus数据集上的表现分别超过了次佳分数11.32%和1.23%。
Method | Model | CPDD | DDXPlus | ||||
---|---|---|---|---|---|---|---|
L1 | L2 | L3 | L1 | L2 | L3 | ||
Baselines | NaiveRAG+COT | 75.47 | 54.72 | 43.40 | 79.28 | 71.89 | 56.84 |
FS-RAG | 64.71 | 49.02 | 45.10 | 78.18 | 68.20 | 51.40 | |
FLARE | 54.84 | 48.39 | 45.16 | 71.09 | 56.70 | 31.02 | |
FL-RAG | 65.45 | 50.91 | 49.09 | 90.12 | 83.32 | 66.78 | |
DRAGIN | 78.72 | 59.57 | 40.42 | 80.51 | 70.83 | 50.24 | |
SR-RAG | 73.58 | 60.38 | 54.72 | 78.65 | 70.28 | 52.16 | |
Ours | MedRAG | 79.25 | 75.47 | 66.04 | 88.65 | 83.46 | 68.01 |
表1:定量性能比较结果
实验结果表明,大多数为更简单QA任务设计的RAG模型在更复杂的医疗领域表现不佳,这些模型通常针对生成简短直接的答案进行优化,限制了它们处理复杂医疗查询的有效性。研究发现,在查询组织阶段机制较简单的模型比一些更复杂的模型表现更好。除MedRAG外,SR-RAG和FL-RAG等模型也获得了几项次佳表现。
*4.3 兼容性、泛化性和适应性*
MedRAG展示了出色的兼容性和泛化能力,能够与各种开源和闭源大语言模型协同工作。实验表明,知识图谱引导推理显著提高了所有骨干大语言模型的诊断准确率。
Backbone LLMs | Size | w/oKG-elicited Reasoning | w/KG-elicited Reasoning | |||||
---|---|---|---|---|---|---|---|---|
L1 | L2 | L3 | L1 | L2 | L3 | |||
Open-source Models | Mixtral-8x7B | 13B | 60.38 | 32.08 | 22.34 | 84.62 | 82.69 | 63.46 |
Qwen-2.5 | 72B | 66.04 | 41.51 | 39.62 | 80.36 | 73.21 | 64.29 | |
Llama-3.1-Instruct | 8B | 75.47 | 54.72 | 43.40 | 79.25 | 75.47 | 66.04 | |
Llama-3.1-Instruct | 70B | 86.79 | 67.92 | 56.60 | 86.79 | 83.02 | 71.70 | |
Closed-sourceModels | GPT-3.5-turbo | 83.02 | 56.60 | 45.28 | 70.56 | 68.68 | 50.57 | |
GPT-4o-mini | 88.68 | 67.92 | 56.60 | 85.85 | 75.00 | 60.38 | ||
GPT-40 | 90.57 | 71.70 | 60.38 | 91.87 | 81.78 | 73.23 |
表2:MedRAG在不同大语言模型骨干上的性能表现,有无知识图谱引导推理对比
例如,Mixtral-8x7B的指标从22.34%显著提升至63.46%,展示了知识图谱引导推理对小型模型的显著效果。比较开源和闭源模型,以GPT-4o为骨干的RAG表现最佳,显示其与知识图谱集成的卓越适应性。
值得注意的是,研究者观察到一个有趣现象:当将知识图谱知识整合到参数量较小的闭源模型中时,性能反而下降。研究推断,引入相似疾病差异使推理变得复杂。GPT-3.5和GPT-4o-mini由于参数限制,难以整合高粒度信息,导致知识冲突和分类边界模糊,影响性能。而GPT-4o的更大参数规模和更强推理能力则实现了更高的准确率。
*4.4 主动诊断问题机制的效果*
主动诊断问题机制在帮助获取更完整患者信息方面表现出色。研究结果表明,随着通过有针对性的问题收集更多详细信息,诊断准确率逐步提高。
Manifestation Masking Ratio | L1 | L2 | L3 |
---|---|---|---|
100% | 60.38 | 56.60 | 52.83 |
66.6% | 69.39 | 67.35 | 55.10 |
33.3% | 71.43 | 67.35 | 61.22 |
0% | 79.25 | 75.47 | 66.04 |
表3:主动诊断问题的效果
初始阶段,当没有通过此问题过程获得特定患者信息时,准确率为52.83%,代表MedRAG仅凭其他信息和极少表现进行诊断。随着医生收集更多关键疾病表现细节,覆盖从33.3%到100%的关键表现,分数从55.10%提升至66.04%,其他层级指标也呈现同样趋势。这证明了MedRAG主动诊断问题机制的显著有效性,验证了其为医生提供有影响力问题的能力,不仅提升了诊断表现,还改善了医疗咨询过程的效率。
*4.5 消融研究*
为评估MedRAG不同组件的有效性,研究团队进行了消融研究,结果如下图所示:
图3:在CPDD数据集上使用Llama-3.1-Instruct 8B骨干的消融研究结果
研究评估了检索器和知识图谱引导推理模块在三种配置下的表现:“随机”、“有"和"无”。结果表明,检索器和知识图谱引导推理模块都显著提升了所有特异性层级的表现。最佳效果在RAG和知识图谱组件结合并对齐时实现,特别是对于需要高特异性的精细诊断任务。
当从随机到没有知识图谱知识的转变发生在随机文档检索时,和较低粒度级别的性能下降。一旦添加了正确的知识图谱增强知识,这种噪声效应得到缓解,导致所有指标准确率的提高:与随机或无知识图谱引导推理模块的基线相比,平均准确率提高18.88%,提高26.92%,提高18.89%。
对知识图谱组件的消融研究也显示出每个组件的重要性:
Configuration | L1 | L2 | L3 |
---|---|---|---|
w/augmentedfeaturenode | 79.25 | 75.47 | 67.92 |
w/o augmented feature node | 66.04 | 60.38 | 49.06 |
w/ diagnostic key difference node | 79.25 | 75.47 | 67.92 |
w/o diagnostic key difference node | 77.36 | 71.70 | 64.15 |
W/L2&L3 | 79.25 | 75.47 | 67.92 |
w/oL2&L3 | 63.64 | 57.58 | 51.52 |
表A2:知识图谱组件对MedRAG性能的影响
诊断关键差异节点、增强特征节点、患者临床特征匹配和诊断差异增强等知识图谱组件都显著贡献于MedRAG的整体有效性。此外,构建的诊断差异知识图谱的层级结构也直接影响实验结果。
*5. 系统落地与应用价值*
MedRAG可以无缝集成到医疗助手系统的用户界面设计中。医疗助手提供三种交互模式,如下图所示:
图A4:医疗助手的交互界面允许通过语音、文件和文本进行多轮医疗问答
- 咨询模式:通过监控医生和患者之间的咨询对话,系统实时提取患者表现,提供诊断建议和主动问题推荐,指导咨询。
- EHR模式:通过上传患者的电子健康记录到医疗助手系统,系统自动提取相关患者表现进行诊断。
- 打字模式:用户可以手动输入患者表现到系统。
在结果页面,医疗助手系统的输出包括诊断、指导性跟进问题、物理治疗和药物治疗,如下图所示:
图A5:医疗助手如何使用JSON格式的医疗记录输入处理腰椎管狭窄症诊断并输出相关治疗的具体示例
这一用户界面集成了源自与众多医疗从业者广泛访谈中得出的最基本功能,确保医疗助手系统满足医疗专业人员的实际需求,最终提升整体护理质量。
*6. 技术创新与未来展望*
MedRAG通过将知识图谱引导推理与RAG模型集成,显著提高了医疗领域的诊断准确率和特异性。其核心创新点包括:
- 构建了两个诊断知识图谱:一个专注于慢性疼痛,另一个基于大规模合成数据集DDXPlus。这些知识图谱包含丰富的疾病层级结构及其关键诊断差异,使疾病鉴别和诊断更精确。
- 提出了知识图谱引导推理增强的RAG方法:显著提高了RAG做出准确和高度特异性诊断决策的能力。除支持个性化治疗建议和用药指导外,还在必要时主动生成跟进问题,极大优化了复杂医疗场景中的决策过程。
- 验证了系统的有效性:在两个数据集上的综合实验证明该模型优于现有RAG和大模型方法。结果还突显了其在各种骨干大语言模型上的适用性,以及在主动生成基于推理的医疗咨询诊断问题方面的有效性。
未来研究方向包括:
- 多模态数据整合:纳入医学影像(如MRI)、生理信号数据(如ECG)和血液检测数据,提高诊断准确率并扩展适用范围。
- 临床环境部署:在真实医院环境中测试MedRAG医疗助手系统,确保其在临床环境中的有效性。
- 语音识别整合:集成语音识别模块,在医生和患者咨询期间被动监听对话,根据对话内容提供实时跟进问题建议和相关解释,帮助医生进行更全面高效的患者评估。
总之,MedRAG代表了医疗人工智能领域的重大进步,通过结合知识图谱引导推理与RAG,为减少诊断错误提供了可行的解决方案,尤其是在处理表现相似的疾病时。这一技术有望成为医疗助手系统的关键模块,为医疗实践带来实质性改进。
代码将发布在GitHub上:https://github.com/SNOWTEAM2023/MedRAG
*Q&A环节:*
*Q1:MedRAG中诊断知识图谱的构建过程是怎样的?为什么这种四层次结构对医疗诊断特别有效?*
MedRAG的核心创新在于其四层次层级诊断知识图谱,这一结构是系统识别相似疾病关键差异的基础。从数学角度看,诊断知识图谱的构建可以表述为:给定电子健康记录数据库和大语言模型,目标是构建四层次层级诊断知识图谱。这个知识图谱从顶层到底层的多跳路径表示为:
其中每一层具有明确的语义定义:
- 是从数据库中提取的所有疾病(即潜在诊断)名称集合
- 表示的子类别集合,通过聚类形成
- 是的更广泛类别集合,处于层级顶部
- 是"is_a"关系,表示层级或从属关系
- 是"has_manifestation_of"关系,连接疾病与其表现
构建过程包含两个关键步骤:疾病知识图谱构建和知识图谱表现增强。
疾病知识图谱构建首先通过疾病聚类统一原始疾病描述:
其中表示聚类模型,是嵌入模型。这一步解决了同一疾病在数据库中可能有不同表达形式的问题。例如,“腰椎间盘突出症"可能被记录为"椎间盘突出”、"腰椎突出"等不同表述。
随后通过层级聚合构建四层次层级结构:
这一过程通过大语言模型进行基于主题的聚合,提取中最相关的主题聚合成子类别。这些子类别主题进一步聚合成更高层次的类别,形成从子类别到更广泛类别的层级结构。
接下来,知识图谱表现增强步骤至关重要,它弥补了仅从数据库获取的知识的不足。系统遍历所有疾病,采用专门设计的提示引导大语言模型生成疾病的细微差别:
这些增强的临床特征形成,与从数据库分解出的特征结合:
最终的诊断知识图谱通过整合这些组件得到:
这种四层次结构设计对医疗诊断特别有效,有以下几个关键原因:
- 层级表示医学分类:与医学学科的自然分类方法一致,从广泛类别到特定疾病再到症状表现
- 区分相似表现疾病:通过和提供区分相似表现疾病的关键特征
- 知识补充机制:通过LLM增强解决仅靠数据库无法提供足够诊断差异信息的问题
- 灵活查询支持:允许从不同粒度(, , )查询疾病,满足不同特异性需求
例如,下图展示了腰椎管狭窄症和坐骨神经痛这两种症状相似但对坐姿有不同反应的疾病的诊断差异知识图谱:
图A3:腰椎管狭窄症和坐骨神经痛之间的诊断差异知识图谱。(它们有相似的表现但对坐姿有相反的反应:前者缓解,后者加重)
通过这种结构,MedRAG能够捕捉到现有医疗RAG系统无法识别的微妙诊断线索,特别是对于表现相似的疾病,这极大地提高了系统的诊断精度。
*Q2:MedRAG的诊断差异知识图谱检索机制如何工作?它是如何将患者症状与知识图谱中的诊断差异联系起来的?*
MedRAG的诊断差异知识图谱检索机制是一个多步骤过程,它将患者的症状表现与知识图谱中的诊断差异信息精确联系起来。这一过程包含四个关键步骤:表现分解、临床特征匹配、向上遍历和形成诊断差异知识图谱。
首先,表现分解步骤将患者的表现查询(可能是一段连续文本)分解为更细粒度的特征。这个过程可以表示为映射函数:
例如,原始描述"腰部疼痛,弯腰时加重,休息后减轻,左腿有麻木感"可能被分解为"腰部疼痛"、“弯腰时加重”、"休息后减轻"和"左腿麻木感"四个临床特征。这种分解使系统能够更精确地匹配每个症状特征。
接下来,临床特征匹配步骤计算每个患者特征与知识图谱中特征节点之间的语义相似度:
其中是相似度计算模型,是在相似度计算前应用于和的嵌入模型。为了过滤不相关的匹配,系统引入了指示函数:
对于每个患者特征,系统检索最相似的前个。总共,系统在知识图谱中检索个匹配节点。匹配节点集合定义为:
第三步,向上遍历确定患者最相关的疾病子类别。系统通过聚合基于图中和之间最短路径距离的投票来精确匹配患者最相关的疾病子类别。
对于每个,系统计算到每个疾病子类别的最短路径,表示为。如果表示当前的最近疾病子类别节点,则的投票数加一。系统通过指示函数累积对每个的投票:
具有最高投票数的节点被标识为:
最后,形成诊断差异知识图谱步骤以为父节点,向下遍历,检索所有与相邻的及其相邻的。给定,定义为属于的疾病节点集合。类似地,定义为链接到中疾病节点的特征节点集合。
最终的诊断差异知识图谱通过连接所有三元组形成:
这个检索机制的关键创新在于:
- 多层级匹配:不仅在症状层面匹配,还通过向上遍历确定最相关的疾病子类别,获取更广泛上下文
- 投票机制:通过累积投票找到最相关的疾病子类别,平衡多个症状的贡献
- 子图提取:只提取与患者最相关的子图,而不是整个知识图谱,提高推理效率
- 语义相似度:使用嵌入模型捕捉语义相似性,而不仅仅是关键词匹配
这种复杂的检索机制使MedRAG能够精确地将患者症状与知识图谱中的关键诊断差异联系起来,特别是在识别表现相似但病因不同的疾病时表现出色。例如,当患者描述"腰痛,坐着时加重"时,系统能够将这一特征与坐骨神经痛而非腰椎管狭窄症关联起来,因为知识图谱中捕捉到了这一关键诊断差异(如前面图A3所示)。
*Q3:MedRAG的主动诊断问题机制是如何设计的?它如何确定哪些问题对诊断最关键?*
MedRAG的主动诊断问题机制是一个创新设计,旨在解决医疗诊断中患者描述不足或不完整的常见问题。当初始输入缺乏做出精确诊断决策所需的关键信息时,该机制能够生成有针对性的跟进问题,帮助医生获取更多关键信息。这一机制基于知识图谱的结构和特性,采用了一套数学化的方法来确定最有价值的诊断问题。
在诊断知识图谱中,不同特征节点具有不同的区分能力。例如,"腰部疼痛"这一特征可能与多种疾病相关,而"疼痛在坐姿时加重"则可能是区分某些特定疾病的关键特征。MedRAG通过计算特征的区分能力分数来量化这一概念。
特征的区分能力分数定义为其在知识图谱中度中心性的倒数:
其中表示中节点的总数,表示节点的度(与它相连的边数)。这一定义意味着与较少疾病相关的特征具有更高的区分能力分数,因为它们能更有效地缩小可能的诊断范围。
在确定了每个特征的区分能力后,系统计算与当前患者相关的每个特征节点的区分能力分数,并选择具有最高区分能力分数的特征:
这些高区分能力的特征用于生成跟进问题。例如,如果系统确定"症状在坐姿时的变化"具有高区分能力(可能用于区分腰椎管狭窄症和坐骨神经痛),则会生成相关问题如"您坐下时,症状是减轻还是加重?"
为了验证这一机制的有效性,研究团队设计了一种特殊的实验方法。他们通过遮蔽患者现有表现来模拟信息缺失的场景,然后观察MedRAG生成的跟进问题是否能够识别这些被遮蔽的信息。具体来说,他们首先选择所有匹配的表现节点并根据区分能力分数对它们进行排序。然后移除具有最高区分能力分数的一定比例的节点,模拟某些关键患者特征缺失或不清楚的情况:
随后,他们将移除的节点与每个匹配,如果相似度分数超过阈值,相应的句子也被移除:
这种遮蔽方法模拟了患者信息不完整的真实临床场景。
实验结果(如下表所示)证明了主动诊断问题机制的显著有效性:
Manifestation Masking Ratio | L1 | L2 | L3 |
---|---|---|---|
100% | 60.38 | 56.60 | 52.83 |
66.6% | 69.39 | 67.35 | 55.10 |
33.3% | 71.43 | 67.35 | 61.22 |
0% | 79.25 | 75.47 | 66.04 |
表3:主动诊断问题的效果
从表中可以看出,随着通过主动问题获取更多关键信息(从100%遮蔽比例到0%),诊断准确率在各个层级(, , )都显著提高。特别是准确率从基线的52.83%提高到最终的66.04%,提升了13.21个百分点,证明了获取这些高区分能力特征对提高诊断精度的重要性。
这一机制对临床实践具有重大意义:
- 优化医患交流:帮助医生提出最具信息价值的问题,减少不必要的问询
- 个性化问题生成:基于患者已有信息生成定制化问题,而非通用问题模板
- 提高诊断效率:通过获取关键诊断线索,加速诊断过程
- 处理不确定性:在疾病表现相似时,主动寻找关键区分特征
- 教育价值:帮助新手医生了解哪些问题对特定诊断最关键
例如,当系统检测到患者可能患有腰椎管狭窄症或坐骨神经痛时,会主动询问关于坐姿对症状的影响,因为这是这两种病症的关键区分点(如前面图A3所示)。这种精准的跟进问题不仅提高了诊断准确率,还改善了整体医疗咨询过程的效率。
*Q4:MedRAG的知识图谱引导推理RAG模块如何工作?它与传统RAG方法有何关键区别?*
MedRAG的知识图谱引导推理RAG模块是整个系统的核心,它将检索到的文档与诊断差异知识图谱结合,在大语言模型中触发深度推理。这种创新方法解决了传统RAG在医疗诊断等复杂任务中的局限性,特别是在处理表现相似疾病时的精确区分能力。
从数学公式角度看,传统RAG模型的工作流程可以表示为:
其中是检索算法,是查询,是文档库,是嵌入模型,是检索到的相关文档,是生成式语言模型,是简单提示,是最终生成的答案。
而MedRAG的知识图谱引导推理RAG模块扩展了这一框架:
这里引入了两个关键额外输入:诊断差异知识图谱和专为触发推理设计的提示。包含了从前述诊断差异知识图谱检索步骤中得到的关键诊断差异信息,是专门设计用于引导大语言模型执行医疗推理的提示。
图A1:MedRAG生成模型的提示设计
MedRAG与传统RAG模型的关键区别在于:
- 结构化知识整合:传统RAG仅使用检索到的文本片段,而MedRAG同时整合了结构化的诊断差异知识图谱,提供了疾病之间的关键区别信息。
- 推理机制触发:MedRAG的提示设计专门用于触发大语言模型的推理能力,引导模型比较不同疾病的特征,而不仅仅是基于检索结果生成答案。
- 多层次特异性:传统RAG往往只能在单一层级上提供答案,而MedRAG能够提供从广泛类别()到特定疾病()的多层次诊断特异性。
- 诊断差异关注:MedRAG特别关注诊断差异,这是医疗诊断中的核心挑战,而传统RAG往往无法捕捉这些微妙区别。
- 主动问题生成:MedRAG能够在需要时生成主动诊断问题,而传统RAG通常只能回答已有信息。
消融研究(如下图所示)清楚地展示了知识图谱引导推理对MedRAG性能的显著贡献:
图3:在CPDD数据集上使用Llama-3.1-Instruct 8B骨干的消融研究结果
从图中可以看出,同时使用检索器(With Retriever)和知识图谱引导推理(With KG-elicited reasoning)时,系统在所有特异性层级(、、)上都取得了最佳表现。特别是在要求高特异性的精细诊断任务()上,这种结合方式的优势更为明显。
与其他先进RAG方法相比,MedRAG在整合知识图谱方面具有独特优势:
- FL-RAG和FS-RAG采用多轮检索方法,但缺乏结构化知识整合
- FLARE和DRAGIN基于大语言模型的不确定性触发检索,但不关注诊断差异
- SR-RAG将检索到的段落整合到输入中,但没有专门的推理机制
MedRAG通过引入知识图谱引导推理,从根本上增强了RAG系统区分相似疾病的能力。例如,当面对腰痛患者时,传统RAG可能仅基于症状相似度检索相关病例,无法捕捉到腰椎管狭窄症和坐骨神经痛对坐姿反应的关键区别;而MedRAG通过知识图谱提供的这一关键区别信息,能够引导大语言模型执行更精确的推理,提高诊断准确率。
这种知识图谱引导推理方法不仅提高了诊断准确率,还增强了系统决策的可解释性,因为每一项诊断都基于明确的疾病特征比较,这对医疗AI系统的临床接受度至关重要。
*Q5:MedRAG在不同大语言模型上的表现如何?为什么知识图谱引导推理对小型模型的性能提升更为显著?*
MedRAG展示了在不同大语言模型骨干上的广泛适用性和显著性能提升,这一特性对于实际医疗场景部署至关重要。实验结果表明,知识图谱引导推理能够显著提升从小型开源模型到大型闭源模型的各类大语言模型的诊断能力。
Backbone LLMs | Size | w/oKG-elicited Reasoning | w/KG-elicited Reasoning | |||||
---|---|---|---|---|---|---|---|---|
L1 | L2 | L3 | L1 | L2 | L3 | |||
Open-source Models | Mixtral-8x7B | 13B | 60.38 | 32.08 | 22.34 | 84.62 | 82.69 | 63.46 |
Qwen-2.5 | 72B | 66.04 | 41.51 | 39.62 | 80.36 | 73.21 | 64.29 | |
Llama-3.1-Instruct | 8B | 75.47 | 54.72 | 43.40 | 79.25 | 75.47 | 66.04 | |
Llama-3.1-Instruct | 70B | 86.79 | 67.92 | 56.60 | 86.79 | 83.02 | 71.70 | |
Closed-sourceModels | GPT-3.5-turbo | 83.02 | 56.60 | 45.28 | 70.56 | 68.68 | 50.57 | |
GPT-4o-mini | 88.68 | 67.92 | 56.60 | 85.85 | 75.00 | 60.38 | ||
GPT-40 | 90.57 | 71.70 | 60.38 | 91.87 | 81.78 | 73.23 |
表2:MedRAG在不同大语言模型骨干上的性能表现,有无知识图谱引导推理对比
从表中数据可以观察到几个关键趋势:
- 知识图谱引导推理对小型模型的提升最显著:Mixtral-8x7B在加入知识图谱引导推理后,准确率从22.34%飙升至63.46%,提升了41.12个百分点,而相比之下,Llama-3.1-Instruct-70B的提升为15.1个百分点。
- 闭源大型模型基线性能更好:GPT-4o在无知识图谱引导推理时已达到60.38%的准确率,高于所有开源模型的基线表现。
- 大型开源模型与知识图谱协同效果佳:Llama-3.1-Instruct-70B结合知识图谱引导推理达到71.70%的准确率,接近GPT-4o的73.23%。
- 小型闭源模型出现性能下降现象:GPT-3.5-turbo在加入知识图谱引导推理后准确率从83.02%下降至70.56%。
知识图谱引导推理对小型模型提升更显著的技术原因可以从以下几个方面深入分析:
1. 知识补充效应:小型模型通常受限于参数规模,其医学领域知识不如大模型丰富。知识图谱提供的结构化信息直接补充了模型在医疗诊断特别是疾病微妙差异方面的知识缺口。这种"外部知识注入"对知识相对缺乏的小模型改善更为明显。从信息论角度看,这相当于为小模型提供了高信息熵的补充知识,显著降低了不确定性。
2. 推理路径引导:小型模型的推理能力通常不如大模型强,尤其是在需要多步推理的复杂任务上。知识图谱通过提供明确的疾病关系和特征差异,为模型提供了结构化的推理路径,相当于将复杂推理任务转化为更简单的特征比对任务。数学上,这相当于降低了问题的复杂度,将需要隐式学习的关系明确表达出来。
3. 注意力焦点转移:知识图谱引导推理通过强调关键诊断差异,帮助模型将注意力集中在最相关的特征上,减少了模型需要从噪声中提取信号的认知负担。这一机制对计算资源和知识有限的小模型尤为重要。
4. 泛化能力增强:小型模型可能对训练数据过拟合,遇到新情况时泛化能力有限。知识图谱提供的结构化知识增强了模型应对未见情况的能力,提高了泛化性。
然而,实验中也观察到一个有趣现象:当知识图谱知识整合到参数较小的闭源模型(如GPT-3.5-turbo和GPT-4o-mini)时,性能反而下降。研究团队推断这是因为引入相似疾病差异使推理变得复杂。这些模型由于参数限制,难以有效处理高粒度信息,导致知识冲突和分类边界模糊,影响性能。而GPT-4o由于更大的参数规模和更强的推理能力,能够更好地整合这些信息,实现更高的准确率。
从学习理论角度看,这种现象可以解释为知识图谱提供的高粒度信息对模型形成了一种"归纳偏置"(inductive bias)。对于资源有限的小模型,这种偏置帮助其在特定任务(如精细诊断)上表现更好,但可能干扰了更基础的分类任务(如广泛类别识别)。只有具备足够强大处理能力的模型才能同时处理好多层次分类任务。
MedRAG的这种广泛适用性和对小型模型的显著增强效果具有重要实际意义:
- 资源受限环境部署:在计算资源有限的医疗环境中,可以部署小型开源模型结合知识图谱引导推理,实现接近大型闭源模型的性能
- 隐私保护优势:开源模型本地部署可以避免将敏感医疗数据发送到第三方服务
- 定制化潜力:开源模型更易于针对特定医疗场景进行适应性调整
- 成本效益:小型模型的运行成本远低于大型闭源模型,结合知识图谱后可实现性价比最优的部署方案
这些发现为医疗AI系统设计提供了重要启示:知识图谱增强可以作为提升医疗AI性能的有效路径,特别是在资源受限的应用场景中。系统架构设计应当考虑模型规模与外部知识结构的平衡,以实现最优的性能-资源权衡。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。