MEDAIDE: Towards an Omni Medical Aide via Specialized LLM-based Multi-Agent Collaboration
论文直链:https://arxiv.org/pdf/2410.12532
作者及研究单位:
发表期刊:尚未接收(Arxiv预印本)
一、提出的问题
以下以⭐标注的问题,为该论文实际做出贡献的问题
- 个性化推荐和诊断分析的缺乏:尽管LLMs在多个领域表现出色,但在高度专业化的医疗应用中,通常缺乏个性化的医疗建议和诊断分析能力。这使得模型容易产生【幻觉】,即生成不符合实际情况的回答,进而影响其在复杂医疗情境中的性能。
- ⭐复杂意图理解的不足:当前的LLMs在理解用户查询背后的复杂意图方面仍然有显著不足。面对【多维的医疗意图】,现有模型难以精确解析和匹配,导致处理效果不理想。
- ⭐信息管理和响应生成的限制:现有的模型在管理和生成包含多种医疗信息的响应时,常常存在【信息冗余】、【遗漏关键细节】或【生成不一致回答】的问题。这在医疗应用中尤其严重,因为稍有不慎就可能严重影响病人的健康。
- ⭐多代理协作机制的缺乏:当前大多数医疗助手系统缺乏多代理的协作机制,无法根据不同的医疗需求动态调用专门的子系统进行联合处理。这样会限制系统的综合性能,难以满足多样化的医疗需求。
- 自动决策分析能力的不足:在生成最终决策和康复计划时,现有系统往往缺乏有效的方法来整合多种来源的信息和分析结果。这会导致生成的治疗方案不够全面和个性化。
- 性能和可靠性的平衡:提升模型性能的同时,要保障其在真实医疗应用中的可靠性和安全性,尤其是当系统提供的推荐直接影响到患者的健康时。这需要更严格和全面的测试与评估,确保系统输出的每一个建议都符合医疗标准。
- 数据隐私和伦理的挑战:将LLMs应用于医疗领域,涉及大量的患者隐私数据,如何有效保护数据隐私、避免伦理问题,是当前急需解决的问题。
二、本文主要贡献
-
第一个提出基于大型语言模型(LLM)的全向多智能体协作框架全方位医疗助手框架MEDAIDE
这是首个以多agent合作为基础的医疗框架,旨在处理复杂医疗意图在真实场景中的应用,展示了推进个性化医疗交互系统的潜力。
-
增强了LLMs在复杂对话目标下的战略推理能力
通过多代理协作和反馈机制,MEDAIDE有效提升了LLMs在处理复杂医疗情境中的整体表现,包括意图识别、诊断分析和决策制定。
-
引入查询重写和上下文编码器进行细粒度意图识别
MEDAIDE通过查询重写补充和分解多维医疗意图,并使用上下文编码器从多方面指令中学习意图原型嵌入,通过相似性匹配来识别细粒度目标意图。
-
开发了多种专用代理进行动态医疗服务响应:
- 预诊断agent:利用患者历史记录数据库进行健康评估和潜在风险识别。
- 诊断agent:集成高质量病例数据库,通过混合检索提供精确治疗建议。
- 药物agent:使用从PubMed库中提取的药物数据进行综合用药咨询。
- 后诊断agent:提供个性化康复建议和情感支持,并更新患者恢复进程。
-
提出了决策分析模块(DAM):结合链式思维(CoT)的特点,整合各个代理输出和患者医疗历史,动态调整治疗方案并形成综合性的康复计划。
三、方法论
该论文方法图示如下:
3.1 查询重写
3.1.1 初步查询解析–实体映射抽取
对于查询query,使用extractor去抽取【实体——关键信息】,比如说症状、情况描述等,然后形成一个【实体映射集合 E i \mathrm E_i Ei】。同时,提取【患者实际问题】。
3.1.2 检索增强生成(Retrieval-Augmented Generation, RAG)
- 检索阶段:从预先准备的医疗知识库或数据库中检索相关信息。知识库可能包括医学文献(如PubMed)、病例数据库、药物数据库等。检索方式可以是关键词检索或采用向量检索(通过语义嵌入匹配)。
- 生成阶段:结合检索到的信息,通过生成模型(如GPT-3或其他LLMs)重写初步查询,使其更为准确和详细。这一步骤将信息融合并重组,使查询更符合医疗情境的需求。
3.2 意图识别(Intent Recognition)
3.2.1 上下文编码器
使用上下文编码器进行深度解析,从而生成意图原型嵌入。
- 数据预处理:对输入查询进行文本清理和规范化处理,如去除停用词、处理拼写错误等。
- 语义嵌入生成:利用上下文编码器(如基于Transformer的模型)生成查询的语义向量表示。这些嵌入将用于后续的相似性匹配。
3.2.2 意图识别模型训练
训练一个监督学习模型来识别意图。该模型通过大量的标注数据(医疗对话和意图标签)进行训练,以便在实际应用中能够精确识别出复杂的医疗意图。
3.2.3 相似性匹配
利用意图原型嵌入与预设的意图模板进行相似性匹配。
- 构建意图库:预先定义一系列常见的医疗意图模板(模板数量与agent数量相同),并生成【重写后的query】的语义嵌入。
- 距离度量:通过计算【余弦相似度】,得到【重写后的query嵌入】与【意图模板嵌入】之间的相似度。
- 阈值判断:设置相似性匹配阈值,当相似度超过阈值 τ \tau τ 时,确定用户意图。
3.3 多智能体协作
3.3.1 本文提出的agent简介及实现
-
预诊断代理(Pre-diagnosis Agent):
在【患者医疗历史数据和常见症状库】中查找数据,用来评估健康状况、识别相应的潜在风险以及就诊推荐。
-
诊断代理(Diagnosis Agent):
该部分提出了【组合检索】:关键字检索 和 向量检索
首先在文档集合【病例数据库、诊断案例、医学文献和标准诊疗指南】中提取包含query关键字的片段 D s l i c e \mathrm {D_{slice}} Dslice,形成片段如下公式所示:
D slice = { d ∈ D ∣ KeywordMatch ( Q , d ) = T r u e } D_{\text{slice}}=\{d\in D\mid\text{KeywordMatch}(Q,d)=True\} Dslice={ d∈D∣KeywordMatch(Q,d)=True}然后,通过计算【余弦相似度】,保留文档集合中,相似度大于阈值 τ \tau τ的文本片段形成子集 D m a t c h D_\mathrm{match} Dmatch。如下公式所示:
S ( Q , d ) = E Q ⋅ E D ∥ E Q ∥ ∥ E D ∥ , D m a t c h = { d ∈ D ∣ S ( Q , d ) > τ } . S(Q,d)=\frac{E_Q\cdot E_D}{\|E_Q\|\|E_D\|},\\ D_{\mathrm{match}}=\{d\in D\mid S(Q,d)>\tau\}. S(Q,d)=∥EQ∥∥ED∥EQ⋅ED,Dmatch={ d∈D∣S(Q,d)>τ}. 随后我们将两种检索方法检索到的内容进行合并,可以为我们的诊断提供经验支持:
D f i n a l = D s l i c e ∪ D m a t c h D_{\mathrm{final}}=D_{\mathrm{slice}}\cup D_{\mathrm{match}} Dfinal=Dslice∪Dmatch -
药物代理(Medication Agent):
该agent利用从PubMed库中提取的药物数据,通过关键字和语义组合检索提供全面的用药咨询。
全面的用药咨询包括药物使用、剂量建议、药物相互作用和禁忌评估等。
此外,它还能帮助患者了解潜在的副作用,并建议最佳用药时机以优化治疗效果
-
后诊断代理(Post-diagnosis Agent):
agent利用康复指南和患者反馈数据,提供个性化的康复建议和情感支持,并跟踪更新患者的恢复进程。
3.3.2 决策分析模块(DAM)
- 响应整合与分析:
- 决策分析模块(DAM)接收各激活代理的初步响应,并结合链式思维(Chain of Thought, CoT)的特点,进行综合分析。
- DAM通过结合患者历史数据和上下文信息,对各初步响应进行优选和调整。
- 综合治疗方案生成:
- DAM根据综合分析结果,生成最终的治疗建议和康复计划。这个过程包括整合各代理的贡献,并根据实际需要动态调整治疗方案。
给定决策prompt,各子功能agent的输出 D i D_\mathrm{i} Di和 D f i n a l D_\mathrm{final} Dfinal生成最终的决策方案:
A n s w e r = D A M ( A i , p r o m p t , D f i n a l ) . Answer=\mathrm{DAM}(A_i,\mathrm{prompt},D_{\mathrm{final}}). Answer=DAM(Ai,prompt,Dfinal).
四、结论
本文介绍了 MEDAIDE,一个用于复杂医疗场景的多智能体框架。 MEDAIDE 利用查询重写、意图识别和代理协作,增强了模型对医疗意图的理解,并在多个基准测试中展示了有效性。