应对过度处方挑战:为药物推荐任务微调大语言模型(Xiangnan He)

Abstract

药物推荐系统因其有潜力根据患者的临床数据提供个性化且有效的药物组合,在医疗保健领域备受关注。然而,现有方法在适应不同的电子健康记录(EHR)系统以及有效利用非结构化数据方面面临挑战,导致其泛化能力有限,性能欠佳。

最近,人们对在医疗领域运用大语言模型(LLMs)来辅助医疗专业人员并改善患者护理的兴趣日益浓厚。尽管医学大语言模型不断涌现,且在医学问答等任务中取得了可观的成果,但它们在临床环境中的实际应用,尤其是在药物推荐方面,往往还缺乏深入探索。

在本研究中,我们评估了通用大语言模型和医学专用大语言模型在药物推荐任务中的表现。我们的研究结果显示,大语言模型常常面临过度处方的问题,这会增加临床风险,降低药物推荐的准确性。为解决这一问题,我们提出了语言辅助药物推荐(LAMO)方法,该方法采用参数高效微调的方式,对开源大语言模型进行调整,使其在药物推荐场景中实现最佳性能。LAMO充分利用了临床笔记中丰富的临床信息,而这些信息在传统方法中常常未得到充分利用。通过我们的方法,LAMO在内部验证的准确性上比先前的先进方法高出10%以上。此外,时间验证和外部验证表明,LAMO在不同的时间和医院环境中具有强大的泛化能力。另外,分布外药物推荐实验表明,即使面对训练数据之外的药物,LAMO仍具有出色的准确性。

1 Introduction

随着电子健康记录(EHR)的迅速发展 [1],药物推荐在辅助医疗决策方面的重要性日益凸显 [2]。这一任务需要利用患者的病情和临床专业知识,帮助医疗保健专业人员开出精准有效的药物组合。传统上,医生在开药时依赖他们的临床直觉和经验。然而,药品种类的不断增加对医生的处方习惯产生了重大影响。此外,医疗资源分配不均,尤其是在亚洲、非洲和拉丁美洲等地区 [3],给公平获得医疗服务带来了挑战。在这种情况下,药物推荐系统成为减轻医疗服务提供者负担、优化医疗资源分配的宝贵工具,尤其在医疗资源匮乏的地区。

尽管已经取得了显著进展 [4, 5],但现有的药物推荐方法仍面临两大主要挑战。首先,它们的泛化能力不足。目前的模型通常将医学编码转换为多热向量 [6 - 8]。然而,临床编码系统的动态性以及不同医疗机构之间的差异构成了重大障碍。例如,在 MIMIC - IV 数据集中,临床编码系统从 ICD - 9 过渡到了 ICD - 10 [9]。这种差异阻碍了传统方法在新的医疗环境或新型药物中的无缝应用,并且随着时间的推移,这些方法容易过时。其次,非结构化数据未得到充分利用。当前的药物推荐方法主要依赖于从电子健康记录系统获取的结构化数据,而这些数据可能无法充分体现患者临床特征的复杂性 [10]。研究表明,电子健康记录系统中约 80% 的临床数据是以非结构化格式存在的,缺乏预定义或标准化的模式 [11]。值得注意的是,临床文档,如病历记录和出院小结,就是这种非结构化数据的典型代表,它们为了解患者的病情提供了宝贵的文本信息,而这一方面往往被传统方法所忽视。

近年来,大语言模型(LLMs)在各个领域都展现出了卓越的能力,从自然语言处理到生物医学应用等任务中都彰显了其强大的实力 [12]。凭借其处理自由文本信息的能力和泛化能力,大语言模型在解决现有药物推荐系统所面临的挑战方面具有巨大的潜力。在医学领域,大语言模型越来越多地用于生物医学对话和问答等任务 [13, 14]。例如,MedPaLM [13] 和 MedPaLM - 2 [15] 在美国医师执照考试(USMLE)中取得了与人类专家相当的成绩。然而,尽管这些模型在各种场景下表现出色,但它们在临床环境中的实际应用,特别是在药物推荐任务方面,却相对缺乏研究和关注 [16]。

在这项研究中,我们首先评估了大语言模型在药物推荐方面的性能。尽管充分利用了患者的非结构化数据,但我们的研究结果显示,通用大语言模型和医学导向的大语言模型在药物推荐任务中的准确性都不理想。此外,我们还观察到大语言模型存在令人担忧的过度处方问题。例如,使用 GPT4 [17] 时,平均为每位患者推荐超过 80 种药物,是医生处方数量的三倍多。这种过度处方现象不仅增加了医疗费用,还提高了药物不良反应和抗生素耐药性产生的风险 [18]。

为应对这一关键挑战,我们提出了语言辅助药物推荐(LAMO)方法,这是一种新颖的方法,它采用参数高效微调技术 [19] 来使大语言模型适应药物推荐场景的特定需求。通过这样做,LAMO 旨在缓解过度处方问题,同时提高大语言模型在这一特定领域的有效性。

我们在多个数据集上进行实验,以证明我们的 LAMO 模型的有效性。该模型在广泛使用的电子健康记录数据集 MIMIC - III 上进行了微调 [20]。首先,在 MIMIC - III 上进行的内部验证展示了我们提出的 LAMO 方法的卓越性能。具体而言,我们的方法在 F1 分数和杰卡德指数方面分别比现有最先进(SOTA)的方法高出 8.6% 和 12.1%。此外,我们还在另外两个数据集上进行了时间验证和外部验证:MIMIC - IV [9],它是在与 MIMIC - III 相同的医院环境中后续收集的;以及 eICU [21],这是一个包含 200 多家医院数据的多中心数据集。这些实验凸显了 LAMO 在不同时间和医院环境中的强大泛化能力。此外,我们的分析还包括一项关于分布外药物的实验,结果表明,即使面对训练数据集中不存在的药物,LAMO 仍具有出色的准确性。

2 Results

2.1 现有大语言模型面临的过度处方问题
在这里插入图片描述
图1. 现有大语言模型在用药推荐上的表现。(a) 每个模型的推荐准确率,以及 (b) 每个模型的平均推荐药物数量。具体而言,我们使用OpenAI API的gpt - 3.5 - turbo - 1106代表GPT - 3.5,使用OpenAI API的gpt - 4 - 0613代表GPT - 4,使用Qwen - 14B - Chat代表Qwen,使用MedAlpaca - 13B代表MedAlpaca,使用PMCLLaMA - 13B代表PMC LLaMA,使用Llama - 2 - 7B代表LLaMA - 2,使用Meta - Llama - 3 - 8B代表LLaMA - 3。“传统SOTA”表示RAREMd的性能。

我们基于著名的电子健康记录(EHR)数据集MIMIC - III [20] 对大语言模型(LLMs)在用药推荐方面的有效性进行了评估,以评估它们在用药推荐中的表现。从图1所示的实验结果中,得出两个关键观察结果。

首先,如图1(a)所示,现有的大语言模型在用药推荐准确性方面表现不佳。特别是,GPT - 4在所有评估模型中准确率最高,F1值达到0.3542。这一发现与早期在医疗大语言模型基准测试中的研究结果 [22] 相符。然而,这一准确率明显落后于传统的最先进(SOTA)方法,传统方法的F1值为0.5794。令人惊讶的是,即使是医学领域广为人知其疗效的大语言模型,在用药推荐方面也显示出较低的准确性。这一结果突显了医学问答(QA)与用药推荐之间的显著差距,强调了进一步研究大语言模型在用药推荐中面临的具体挑战和局限性的必要性。

其次,如图1(b)所示,我们观察到大多数大语言模型存在普遍的过度处方问题。值得注意的是,这些模型倾向于为患者推荐数量明显更多的药物,其中LLaMA [23] 尤其倾向于为每个患者推荐几乎所有的候选药物。这种过度处方的倾向似乎导致了推荐准确性的下降,这一趋势不仅在通用大语言模型 [17, 23 - 25] 中出现,在医学大语言模型 [26, 27] 中也存在。过度处方问题带来了药物不良反应、多重用药 [28] 和医疗成本增加 [29] 等额外风险,突显了在开发和部署用于临床决策支持的大语言模型时解决这一问题的重要性。

2.2 大语言模型在医学知识表示与提取中的能力分析
在本小节中,我们进一步探究大语言模型(LLMs)在处理不同临床代码表示时的性能。在MIMIC - III数据库中,疾病和医疗程序使用国际疾病分类(ICD)代码表示,这些代码伴有两种文本标题:“长标题”和“短标题”。我们比较使用这些不同标题长度所产生的性能差异。此外,我们提出了一种新颖的临床代码表示方法,该方法在简洁性和信息性之间取得平衡,使大语言模型能够更好地理解临床代码与相关文本标题(即伴随ICD代码的文本标题)之间的关联。实验细节和相应结果在D.1节中给出。

此外,我们评估大语言模型是否具备做出准确用药推荐所需的全面医学知识。结果显示,当前大语言模型在理解微妙的医学关系方面存在显著局限,突显了进一步微调与增强的迫切需求,以弥合理论知识与用药推荐实际应用之间的差距。特定的处理流程和方法在C.6节中详细说明,相应结果在D.2节中呈现。

2.3 LAMO 的卓越准确性与泛化能力
                 表1不同模型的药物推荐准确率。在这里插入图片描述
更高的F1值、杰卡德指数、召回率和精确率表明用药推荐的准确性更好,而与真实值(以药物数量衡量)的差异越小则表明性能越好。性能评估指标使用了多种模型,包括用于GPT - 3.5的OpenAI API gpt - 3.5 - turbo - 1106、用于GPT - 4的OpenAI API gpt - 4 - 0613、用于Qwen的Qwen - 14B - Chat、用于ChatGLM的ChatGLM - 6B、用于MedAlpaca的MedAlpaca - 13B、用于PMC LLaMA的PMCLLaMA - 13B、用于LLaMA - 2的LLaMA - 2 - 7b以及用于LLaMA - 3的Meta - LLaMA - 3 - 8B。

内部验证我们在MIMIC - III的测试集上对通用大语言模型、医学大语言模型、传统模型以及我们的LAMO进行了全面实验。根据表1所示的结果,我们有以下观察:

首先,现有的通用和医学专用大语言模型在用药推荐方面表现不佳,这从它们较低的准确率可以看出。此外,这些大语言模型,包括GPT、LLaMA、MedAlpaca和PMC - LLaMA,往往为患者推荐过多的药物,导致严重的过度处方问题。而ChatGLM很少推荐药物,这使得它在这种场景下意义不大。

相比之下,与上述大语言模型相比,传统方法表现更好。值得注意的是,忽略临床代码之间相互作用的LR,以及未能考虑程序顺序的LEAP,在这个领域都表现不佳。相反,通过整合疾病和程序信息,以及电子健康记录(EHR)图和药物分子结构等外部知识来源,GAMENet和SafeDrug等模型取得了更好的性能。此外,COGNet和MICRON利用特定的历史信息,显示出了改进的准确率。最近也有一些显著的进展,比如MoleRec,它利用药物子结构来增强药物表示,从而提高性能。然而,令人惊讶的是,尽管LEADER采用了基于LLaMA的微调策略,但在我们的基准测试中表现相对较低。这突显了在用药推荐中纳入非结构化临床信息的重要性。最近,RAREMed通过利用预训练 - 微调范式,成功解决了罕见病患者的公平性问题,取得了更好的性能。

我们的LAMO在准确率方面优于所有基线方法,具有更高的杰卡德系数、F1值、召回率和精确率。这突显了我们模型设计的独特性和有效性,使其与先前的工作区分开来,成功利用了大语言模型的强大能力,使其与医学推荐任务保持一致。这一成就归因于我们模型精细的方法,即纳入输入临床状况,同时利用大语言模型强大的理解能力及其庞大的知识库。至关重要的是,我们对推荐药物平均数量的分析表明,LAMO提供的药物数量适中,类似于特定领域的传统模型,如SafeDrug [7]和MoleRec [4]。这一关键发现表明,LAMO成功应对了过度处方的挑战。

时间验证随着时间的推移,临床环境在不断演变。电子健康记录系统中的代码系统可能会更新,这使得传统的用药推荐系统随着时间的推移容易过时。以MIMIC数据集系列为例,MIMIC - III于2001 - 2012年期间从贝斯以色列女执事医疗中心重症监护病房的患者中收集,使用国际疾病分类第九次修订版(ICD - 9)来编码疾病和程序。而在2008 - 2019年期间从同一机构收集的MIMIC - IV,逐渐将临床代码系统从ICD - 9转换为ICD - 10,这给用药推荐带来了巨大挑战。在我们的研究中,我们在MIMIC - IV上对几个代表性模型进行时间验证,以研究它们的时间泛化能力。如图2(a)所示,我们发现随着时间的推移,所有模型的用药推荐准确率都会下降,验证了上述挑战。然而,LAMO在所有组中都表现出优越的性能。此外,与最强的基线RAREMed相比,LAMO显示出不断提高的改进比率,证明了其强大的时间泛化能力。这种稳健性对于开发在医疗实践和编码标准不断演变的情况下仍有效的可靠临床决策支持系统至关重要。
在这里插入图片描述
图2. (a) 使用LAMO以及几种代表性方法在MIMIC - IV数据集[9]上进行了时间验证。该数据集根据入院时间将患者分为五组。除了评估F1值之外,我们还展示了LAMO相较于最强基线RAREMed的提升情况。(b) 在eICU数据集[21]上进行了外部验证,这是一个多中心数据集,收集自不同的医院。© 进行了零样本迁移分布实验,我们展示了在源药物上训练时,在目标药物上的相对性能(表示为零样本迁移性能相对于原始性能的百分比)。药物名称根据其类型进行颜色编码:橙色代表精神药物,紫色代表支气管扩张剂,绿色代表营养补充剂。

外部验证外部验证对于评估我们的用药推荐系统在原始训练环境之外的稳健性和泛化能力至关重要。为此,我们在eICU协作研究数据库上进行了外部验证,这是一个从美国各地不同医院收集的多中心数据集,涵盖了不同的患者群体和临床实践。在我们的研究中,我们评估了几个代表性模型的性能,包括我们提出的LAMO,在eICU数据集上的表现。如图2(b)所示,我们的结果显示出一种一致的模式,即与它们在MIMIC - III数据集上的结果相比,所有模型的性能都有所下降。这种下降凸显了在不同临床环境和数据编码方案中进行泛化的挑战。尽管整体性能有所差异,但我们的LAMO模型显著优于其他模型,包括最强的基线GPT - 4,表明它在不同临床环境中的稳健性。通过进行严格的外部验证,我们确认我们的模型不仅在受控的单中心环境中有效,而且在多个医疗环境中稳健可靠,从而提高了其临床实用性,并为更广泛的实施铺平了道路。

药物转换中的零样本迁移评估模型对未见数据的泛化能力至关重要,尤其是在药物类型发生变化时。在这项研究中,我们通过在源药物上训练我们的模型LAMO,并在不同的目标药物上进行测试,来评估其零样本迁移性能。对于此评估,我们选择了一组多样化的药物,并将LAMO在这些目标药物上的性能与其在源药物上的性能进行了比较。如图2©所示,LAMO在同一组内的不同药物上表现出很强的迁移能力。然而,其在不同组药物上的性能并非最优。这表明LAMO有效地学习了相似药物之间的一般模式,使其能够适应训练集中不存在的新药物。这种能力对于开发强大且通用的临床决策支持系统至关重要,这些系统能够在广泛的临床环境和不断演变的医疗实践中保持高性能。

2.4 不同输入临床因素的贡献

输入因素对性能的影响在我们的研究中,我们通过整合临床笔记和人口统计细节等额外数据源,拓宽了临床代码的传统应用方式。为了弄清每个信息组件对用药推荐准确性的影响,我们使用以下模型进行了一项消融研究:

  • “w/o history”:该模型排除了所有就诊的历史信息,仅提供当前入院的临床数据。
  • “w/o note”:该模型从输入中移除了所有临床笔记。
  • “w/o code”:该模型从模型输入中去除了临床代码,包括疾病和医疗程序代码。
  • “w/o disease”:该模型从模型输入中省略了疾病代码。
  • “w/o procedure”:该模型从模型输入中排除了医疗程序代码。
  • 在这里插入图片描述
    - 图3. (a) LAMO不同变体在从模型输入中移除相应因素后的性能比较。(b) 精神科药物与普通药物的准确性比较。“w/o His.&Note”表示从模型输入中移除历史信息和所有临床笔记的模型变体。类似地,“MoA”表示“入院用药(Medications on Admission)”,“HPI”表示“现病史(History of Present Illness)”,“PMH”表示“既往病史(Past Medical History)”。© 具有不同数量LoRA适配器的LAMO的性能。(d) LAMO在各种精神科药物上的性能,其中从模型输入中移除了相应因素。

如图3(a)所示的结果分析揭示了以下关键观察结果:

  • w/o history:正如预期的那样,“w/o history”模型性能的下降突显了将历史信息纳入大语言模型用药推荐的优势。这一发现与先前关于传统模型的研究[8, 32]得出的结论一致。
  • w/o note:与完整模型相比,该方法表现出显著的性能不足,强调了临床笔记在利用大语言模型进行用药推荐中的关键作用。我们将在接下来的部分讨论临床笔记的组成部分。
  • w/o code:性能的显著下降表明,临床代码在大语言模型用于用药推荐的输入中起着至关重要的作用。换句话说,大语言模型不能仅仅基于临床笔记准确捕捉临床状况。
  • w/o disease:移除疾病代码会导致性能明显下降,这表明疾病代码在用药推荐中的重要性。
  • w/o procedure:移除医疗程序代码也会导致性能降低,这与先前研究[34]的结果一致。值得注意的是,“w/o disease”的性能与“w/o procedure”相当,而如[34]中所述,前者的性能比后者差得多。这种差异可能归因于临床笔记中存在的不同信息内容,其中疾病信息更为普遍,而医疗程序信息则不那么突出。

临床笔记的综合分析为了阐明临床笔记在通过大语言模型进行用药推荐领域中的关键作用,我们的研究进行了全面分析,重点关注临床记录的四个重要组成部分。这些组成部分的介绍可在补充信息B.2中找到。为了评估它们的影响,我们在推理阶段进行了消融研究,系统地移除四个组成部分中的一个,以衡量其对总体推荐准确性的影响。此外,还进行了案例研究以获得更深入的理解。

关于总体效果,如图3(b)的“Overall”线所示,我们发现“入院用药(Medications on Admission)”是四个临床笔记组成部分中最重要的因素,“w/o MoA”模型性能的显著下降证明了这一点。此外,“现病史(History of Present Illness)”也带来了相当大的性能提升,而“既往病史(Past Medical History)”和“过敏史(Allergies)”对总体准确性的提升较小。这可能是因为“入院用药”包含了可能未在诊断疾病或病史中明确列出的疾病用药。这将在后续的案例研究中进一步阐述。此外,“入院用药”对于避免药物 - 药物不良反应也很重要[35]。“现病史”提供了对当前临床状况的更深入理解,因此在用药推荐方面显示出更大的改进。虽然“既往病史”可能与诊断更相关,而不是当前就诊的处方[36],因此对用药推荐准确性的贡献较小。令人惊讶的是,“过敏史”对总体用药准确性的贡献很小,这可能归因于大多数患者的“过敏史”项为空,如表SI.2中所示的过敏史列表的平均长度较低就证明了这一点。

为了更深入地了解这一现象,我们进行了一项案例研究,特别关注在没有历史信息和临床笔记的情况下大语言模型准确率得分为0的药物。值得注意的是,这些药物中有很大一部分是精神药物(如抗抑郁药)。随后,我们检查了不同模型变体的性能。如图3(d)所示,当利用临床笔记时,这些药物的推荐准确性有所提高。同样,“入院用药”在四个组成部分中成为影响最大的因素。我们将这种改进归因于当前入院诊断疾病列表中不存在慢性疾病,特别是抑郁症和双相情感障碍等心理健康状况。这些状况及其相应的药物通常记录在历史用药记录中,如既往病史和入院用药[37]。当提供全面的语义信息时,LAMO的优越性能证明了这一点。值得注意的是,在几种选定的药物上,“w/o MoA”的表现甚至比“w/o Note”更差。这表明了嘈杂的输入文本对模型有效性的不利影响。因此,它突显了精心选择和优化模型输入的至关重要性。

总之,我们的研究结果突显了临床笔记在提高大语言模型辅助的用药推荐准确性方面的关键作用。这种细致入微的理解为正在进行的关于优化医疗决策支持系统的讨论做出了贡献。此外,从另一个角度来看,这些分析也为发现用药理由开辟了可能性,具体来说是通过识别患者状况中最关键的术语。这种双重理解突显了利用临床数据改善医疗决策过程所具有的多方面潜力。

2.5 模型效率潜力
LoRA数量的影响在LAMO的开发过程中,我们为每种药物单独训练了一个独特的LoRA适配器。在本小节中,我们探究减少LoRA适配器数量的可行性,以降低微调过程中的计算和存储成本。具体而言,我们根据药物在训练集中的出现频率将其分为K组,然后使用组内所有药物的合并数据为每组训练一个LoRA适配器。根据图3(b)所示的实验结果,我们观察到,即使LoRA适配器的数量减少到5个或10个,LAMO仍然具有竞争力,并且优于最先进的传统方法。这表明了开发针对此任务的、效率更高的大语言模型的潜力。

3 Discussion

大语言模型(LLMs)的发展为利用电子健康记录(EHRs)中庞大的文本数据存储库用于临床应用提供了变革性机遇,尤其是在用药推荐这一关键领域。在这项研究中,我们提出了一个专门设计的全面基准数据集,用于评估大语言模型在用药推荐方面的性能——这是一项在先前医学大语言模型研究中大多被忽视的关键临床任务。我们的研究结果突显了当前大语言模型的一个重大局限性:存在明显的过度处方倾向,这损害了它们在用药推荐任务中的有效性。此外,我们对医学知识表示和提取任务的深入分析强调了微调大语言模型以增强其在用药推荐工作流程中的理解和执行能力的迫切需求。

为应对这些挑战,我们引入了一种新颖的基于微调的框架,该框架经过定制,使基础大语言模型能够适应用药推荐的专业需求。我们的实验结果证明了该框架的卓越性能,突显了其在现实临床应用中的潜力,以及它在弥合人工智能能力与实际医疗保健需求之间差距方面的能力。

意义与更广泛的影响这项研究对科学界和全球医疗保健系统都具有深远的意义。通过解决过度处方这一关键问题并提高用药推荐的准确性,我们的框架有可能显著改善患者的治疗效果,并减少药物不良反应事件,据估计,这些事件约占医院住院人数的3.5% [38]。在资源有限的环境中,如撒哈拉以南非洲地区,那里专业医疗保健人员稀缺,我们基于大语言模型的框架可以作为决策支持工具,使全科医生能够做出明智的用药决策,并减轻不堪重负的医疗保健系统的负担。例如,在疟疾和结核病等传染病高发地区,我们的模型可以优化治疗方案,即使在没有专科医生会诊的情况下,也能确保及时准确的干预措施。

此外,我们的工作有望应对与罕见和被忽视疾病相关的挑战,这些疾病往往缺乏临床专业知识和研究关注。通过利用大语言模型中编码的大量知识,我们的框架可以为恰加斯病或利什曼病等疾病提供定制的用药推荐,这些疾病对边缘化人群的影响尤为严重。这种能力可以使高质量医疗服务的获取更加普及,特别是在这些疾病流行的低收入和中等收入国家。

从更广泛的角度来看,我们的研究为日益增多的人工智能驱动的医疗保健解决方案研究做出了贡献,提供了一个可扩展且适应性强的框架,该框架可以扩展到用药推荐之外的其他临床领域。通过证明微调大语言模型以执行专业任务的可行性,我们为个性化医疗、临床决策支持和全球健康公平方面的未来创新铺平了道路。这项工作符合联合国可持续发展目标3(良好健康与福祉),并突显了人工智能在应对现代医疗保健中一些最紧迫挑战方面的变革潜力。

4 Methods

在这里插入图片描述

4.1 Benchmark development
任务制定用药推荐任务旨在基于患者的电子健康记录(EHR)数据,为患者生成合适的药物组合 m ^ \hat{m} m^,这些数据包括患者当前诊断的疾病、实施的医疗程序以及各种临床笔记。请注意,患者可能有多次住院就诊经历,并且同一患者在不同就诊期间开具的药物可能非常相似 [8],因此考虑历史信息也很重要。在评估方面,我们衡量预测的药物组合与医疗专业人员实际开具的处方之间的相似度。我们认识到实际处方中可能存在错误和偏差,并将对这类处方的优化确定为未来研究的一个领域。关于评估指标的更多详细信息见补充信息C.5。

电子健康记录数据处理我们的数据处理可分为两部分:结构化数据和非结构化笔记,如图4(a) 所示。结构化数据包括患者的人口统计信息和临床代码。患者人口统计信息包括年龄和性别,认识到它们在指导用药处方决策方面的潜在重要性 [39]。临床代码是传统用药推荐模型 [6 - 8, 31, 33, 40, 41] 经常使用的关键组成部分,涵盖疾病、医疗程序和药物清单。然而,结构化数据在全面捕捉患者概况方面存在局限性。医疗保健专业人员通常需要结构化数据之外的见解,例如近期症状和详细病史,这些通常以自由文本格式记录。整合这些额外信息对传统模型构成重大挑战。

我们使用“出院总结”作为非结构化数据源,它是MIMIC - III [20] 中临床笔记的组成部分之一。然而,使用原始临床文本对大语言模型来说也存在挑战。虽然必须将相关信息纳入模型输入,但临床文本往往冗长,可能包含噪声信息,如无法识别的代码,因此需要简化。此外,出院总结提供了广泛的概述,包括入院前患者状况和入院后记录,这可能引入标签泄露的风险。临床笔记的不规则格式进一步增加了提取特定术语的复杂性。为应对预处理用于用药推荐的临床笔记的复杂性,我们建议使用大语言模型(LLMs)²。我们的方法在补充信息B.1 中有详细说明,包括应用于临床笔记原始文本的三个关键步骤。首先,我们将任何超过GPT - 3.5输入长度限制的笔记文本分割成多个部分,每个部分都保持在最大序列阈值以下。随后,使用GPT - 3.5从每个部分提炼出五个关键术语:现病史、既往病史、过敏史、入院用药和出院用药。我们仔细分离出院用药,以避免它们意外包含在入院用药列表中。此过程由补充信息B.2 中提供的详细提示模板支持。最后,对于超过GPT - 3.5输入容量且需要分割的笔记,我们汇总提取的数据,为每个患者编制全面的临床概况。这种整合确保了对每个病例相关临床因素的整体呈现,如补充信息B.3 中所述。

最后,通过整合患者人口统计信息、疾病和医疗程序清单以及处理后的笔记文本,我们对患者当前就诊的临床状况进行了全面描述。此外,我们将在这项任务中已被证明有效的历史信息 [8] 纳入我们的模型输入。具体来说,如果不是首次入院,我们纳入患者上次就诊的信息。上次就诊的信息不仅包括人口统计信息、临床代码和临床笔记,还包括上次就诊期间开具的药物,遵循先前的研究 [8, 33]。已建立描述的详细示例可在补充信息B.4 中找到。

4.2 Modeling
在本节中,我们将介绍大语言模型以及使它们适应用药推荐任务的方法。

主干模型选择随着大语言模型的快速发展,出现了越来越多的模型,包括GPT系列 [25]、PaLM [42]、T5 [43] 和LLaMA [23] 等知名模型。然而,值得注意的是,某些大语言模型,如PaLM和GPT,并不提供公开可用的模型权重,这限制了基于这些模型进行微调的可行性。最近,LLaMA系列 [23, 44] 通过微调过程 [45 - 48] 在各种推荐场景中证明了其有效性,并且还有公开可用的训练数据这一额外优势。在本研究的背景下,我们遵循这些已有的做法,选择LLaMA - 2 - 7b [23] 作为我们的主干模型。

指令微调在我们的工作中,我们基于选定的主干模型进行指令微调,使用经过整理的电子健康记录(EHR)数据使其适应用药推荐场景。在大语言模型训练的背景下,“指令微调”是一种关键技术,涉及使用人工标注的指令和回复 [49]。该过程通常包括四个步骤,如表SI.20所示。步骤1涉及定义任务并使用自然语言阐述“任务指令”,其中包括清晰的任务定义和具体的解决方案。步骤2用自然语言制定“任务输入”和“任务输出”。步骤3将“任务指令”和“任务输入”整合形成“指令输入”,而“任务输出”则成为每个微调样本对应的“指令输出”。步骤4涉及基于格式化的“指令输入”和“指令输出”对大语言模型进行指令微调。

指令微调数据构建为了有效地指导大语言模型理解用药推荐的复杂性,我们精心设计了全面的指令模板,如补充信息C.2所示。具体而言,“任务指令”旨在让大语言模型深入理解用药推荐任务,“任务输入”则详细说明了患者的临床状况,包括历史和当前就诊信息。此外,“任务输入”还包括一个待确定的候选药物。最后,我们将“任务指令”和“任务输入”组件整合起来,形成连贯的“指令输入”,并根据规定的药物清单将预期的“指令输出”设置为“是”或“否”,以用于后续的微调过程。

参数高效微调直接对大语言模型的所有参数进行微调的过程以计算强度高和耗时著称。鉴于这些挑战,我们采用参数高效微调(PEFT)技术,这是一种在大语言模型微调中广泛使用的轻量级策略 [19]。这种方法在微调过程中对模型参数进行策略性优化,确保在保持有效性的同时合理分配计算资源。具体来说,我们利用低秩自适应方法,即LoRA [50],对基础大语言模型进行定制以适应用药推荐任务。LoRA涉及冻结预训练模型的参数,并在Transformer模块的每一层中引入可训练的低秩矩阵来更新模型参数。具体而言,如图4(b)所示,我们为每个药物组训练一个LoRA适配器,每个组包含一种或多种药物。在推理过程中,所有LoRA适配器都用于对相应药物进行预测,以形成最终的推荐列表。详细的实验配置见补充信息C.1。

Data availability

MIMIC - III数据集可在https://physionet.org/content/mimiciii/1.4/获取。
如2.3节所述用于时间验证的MIMIC - IV数据集,可在https://physionet.org/content/mimiciv/2.0/获取。
在2.3节中用于外部验证的eICU协作研究数据库,可在https://physionet.org/content/eicu - crd/2.0/获取。
在C.6节中用于知识评估的PrimeKG数据集,可在https://dataverse.harvard.edu/dataset.xhtml?persistentId=doi:10.7910/DVN/IXA7BM获取。

Code availability

https://github.com/zzhUSTC2016/LAMO

致谢

本研究还得到了中国科学技术大学超级计算中心提供的先进计算资源的支持。

作者贡献

Z.Z.和C.F.在研究方法、数据分析以及论文撰写方面做出了贡献。C.G.参与了论文的修订工作。F.F.和X.H.对项目进行了指导,并在概念构思、研究方法以及论文修订方面有所贡献。

利益冲突

作者声明不存在利益冲突。

A Related works

医学大语言模型鉴于通用大语言模型取得的显著成功,人们对医学大语言模型的开发和应用兴趣激增,旨在协助医疗保健专业人员并改善患者护理 [12, 16]。这些医学大语言模型大致可分为三类:从头开始预训练的模型、从现有通用大语言模型微调而来的模型,以及通过提示使通用大语言模型与医学领域对齐而直接获得的模型。

预训练方法涉及使用大量医学文本语料库训练大语言模型。例如,BioGPT [51] 和BioMedLM [52] 使用PubMed [53] 数据集进行预训练,该数据集包含超过3000万篇生物医学研究文章,而在预训练GatorTron [54] 和GatorTronGPT [55] 时进一步引入了佛罗里达大学健康中心的内部临床语料库(电子健康记录)。

微调方法涉及使用医学数据优化通用大语言模型,以获得专业的医学大语言模型,与预训练相比,这是一种计算效率更高的选择。例如,DoctorGLM [56] 和ChatDoctor [57] 分别是通过对ChatGLM [30] 和LLaMA [23] 在医患对话数据上进行有监督微调而获得的。MedAlpaca [26] 使用来自各种医学语料库的超过160,000个医学问答对进行微调。Clinicalcamel [58] 整合医患对话、临床文献和医学问答对来优化LLaMA2模型。

尽管与预训练相比,微调方法在计算效率上有所提高,但它们仍然需要计算资源和高质量的微调数据集。因此,人们设计了提示方法,以使通用大语言模型与医学领域对齐,而无需训练模型参数。值得注意的是,MedPaLM [13] 通过向通用大语言模型PaLM [42] 提供最少数量的下游示例(如医学问答对),显著提高了下游性能。

虽然现有的医学大语言模型已显示出有前景的结果,但大多数倾向于集中在生物医学自然语言处理(NLP)任务上,如对话和问答。遗憾的是,它们在临床环境中的实际效用在一定程度上被忽视了 [12],这凸显了当前研究以及大语言模型在医学领域应用中的一个差距。

用药推荐用药推荐的发展涉及两条主要路径:纳入更多临床信息和利用额外知识。最初,早期方法 [31, 41, 59] 仅关注疾病和医疗程序代码,这在全面理解患者临床状况方面带来了挑战。因此,近期的方法通过考虑患者的历史临床状况来解决这一限制 [6, 7, 34]。值得注意的是,研究人员观察到同一患者在不同就诊期间的用药处方之间存在密切关系,这导致在推荐模型中纳入了历史用药清单 [8]。

在第二条发展路径中,由于用药推荐任务需要对疾病和药物等医学概念有深入理解,人们提出了各种方法来利用额外知识。例如,GAMENet [6] 引入了药物 - 药物相互作用(DDI)图来减轻不良药物相互作用。SafeDrug [7]、DrugRec [40] 和MoleRec [4] 利用分子结构来提高推荐的安全性和准确性。SMR [60] 和GraphCare [61] 使用知识图谱嵌入来纳入更全面的医学知识。LEADER [33] 为大语言模型适配一个输出层并实施知识蒸馏以降低计算成本,但未能利用交叉粒度的临床笔记。RAREMed [5] 提出了一种预训练 - 微调框架,以有效地从电子健康记录中提取领域知识。

尽管这些方法取得了相当大的进展,但现有模型在有效利用电子健康记录中存在的大量文本信息方面面临挑战。同时,这些模型所包含的医学知识的深度和广度仍然相对有限。

B Additional Details on the Benchmark Construction

B.1 Example of Raw Clinical Notes

为了清晰地展示文本结构,我们给出一个出院总结示例,概述见表SI.7。一份典型的临床笔记涵盖关键细节,包括:

  • 患者人口统计信息和入院详情:入院日期、科室、过敏情况和主诉等相关信息。
  • 病史:全面的细节,包括现病史、既往医疗和手术史、相关检查结果、住院过程的简要概述以及入院时使用的药物。
  • 检查结果:体格检查结果的详细描述,包括生命体征和一般检查结果。
  • 结局和处置:与出院相关的关键信息,包括出院日期、处置方式、诊断、出院时的状况、出院医嘱和随访指导。

B.2 Prompts for Factor Extraction

从患者出院总结中提取关键因素的详细模板见表SI.8。在这个模板中,用双花括号“{{}}”括起来的占位符在输入模型时会被替换为特定元素。我们确定了用药推荐必不可少的四个关键组成部分,即现病史、既往病史、过敏史和入院用药情况。

在这些组成部分中,现病史涵盖患者人口统计学信息、当前疾病的演变轨迹、主诉、症状、治疗史、正在进行的医疗干预措施以及先前的检查结果。既往病史提供了关于患者先前疾病状况、治疗史、检查结果和家族病史的详细信息。过敏史汇集了患者有过敏反应的药物的详尽清单,而入院用药情况记录了患者入院时正在服用的药物。这些笔记文本的示例见补充信息表SI.10。每个组成部分都经过简洁概括,以去除无关信息,并符合大语言模型的输入长度限制。值得注意的是,出院用药情况被明确分离出来,以防止它们意外包含在入院用药情况中。这一预防措施有助于降低标签泄露的潜在风险,确保推荐过程的完整性。

B.3 Strategies for Consolidating Extraction Results

在笔记超过GPT输入容量并进行分割的情况下,分割后的片段可能会产生多个不同的组成部分。例如,一条笔记可能被分成两个片段,每个片段都包含一个过敏清单(其中一个或两个都可能为空)。为了有效地整合这些提取的结果,我们开发了优化后的提示词,旨在无缝融合分割后的信息,详见表SI.9。

B.4 Data Consolidation and Historical Context Establishment

表SI.10对患者的历史和当前临床信息进行了说明性描述。基于之前阐述的步骤,我们将表示已诊断疾病和医疗程序的临床代码与处理后的临床笔记相结合,以评估大语言模型的当前临床状况。此外,对于有过既往就诊记录的患者,我们将人口统计信息与临床代码以及上次就诊时的处方药物清单整合在一起,以提供历史背景。为降低超过大语言模型输入长度限制的风险,我们选择从历史信息中排除临床笔记。

C Additional Details on the Experimental Setup

C.1 Model Configurations

在微调LAMO模型时,我们采用了5e - 4的学习率,并结合逆平方根调度器,使用的批量大小为64。LoRA适配器的秩指定为8,alpha设置为16, dropout率为0.05,目标模块包括“q_proj”和“v_proj”。每32个批次在验证集上进行一次F1值评估,当连续十次评估显示准确率没有提升时,训练停止。对于模型推理,统一对所有模型应用温度值为0,以确保实验的可重复性。所有其他参数保持其默认设置。

C.2 Prompting Templates for Medication Recommendation

为评估各种大语言模型在用药推荐方面的表现而设计的综合模板见表SI.13 - SI.19。在这些模板中,占位符“{{}}”代表历史背景和当前临床状况,随后会用表SI.10中提供的相应示例进行替换。

值得注意的是,大多数大语言模型往往避免提供直接的医疗建议,而是建议咨询专业医生。为解决这个问题,我们加入了指令:“你现在正在参加一场医学考试”,旨在引导大语言模型生成医疗推荐。

C.3 Datasets

在这里插入图片描述

在我们的研究中,我们使用了MIMIC - III数据集,这是一个公认的真实电子健康记录(EHR)来源。该数据集对我们的模型LAMO的训练及其后续评估起到了重要作用。与先前的研究一致,我们对数据集进行了预处理,并以4:1:1的比例将其随机分为训练集、验证集和测试集。处理后数据集的统计信息详见表SI.1。除了传统的数据处理外,我们还从临床笔记中进一步提取关键信息,具体内容如4.1节所述。我们在基准LAMed中提供了处理后的临床笔记和最终提示的详细统计信息,见表SI.2。在这里插入图片描述

对于时间验证,我们使用了MIMIC - IV数据集,采用了与MIMIC - III相同的数据处理和临床笔记提取方法。我们根据患者表中的“anchor_year_group”字段进一步分割数据,将其分为四个不同的时间段用于评估。处理后的MIMIC - IV数据集的统计信息记录在表SI.3中,而表SI.4详细说明了处理后的临床笔记和最终提示的统计信息。
在这里插入图片描述

在这里插入图片描述

C.4 Baseline Details

我们全面概述了基线方法,包括通用和医学大语言模型,以及用于用药推荐的传统模型:

  • LR:是一种标准的逻辑回归技术,其中输入表示为多热向量,推荐问题被表述为多标签分类任务。
  • LEAP [31]:是一种基于实例的方法,它使用长短期记忆(LSTM)模型来生成用药序列。
  • GAMENet [6]:使用记忆神经网络和图卷积神经网络对历史电子健康记录(EHR)数据进行编码。
  • SafeDrug [7]:利用药物分子图来确保用药推荐的安全性。
  • COGNet [8]:使用一种新颖的复制或预测机制,在编码器 - 解码器框架内将药物推荐构建为序列生成问题。
  • MICRON [32]:是一种循环残差学习模型,将用药变化作为输入,然后根据用药变化和上次就诊的用药组合进行用药推荐。
  • MoleRec [4]:对分子子结构之间的相互作用以及患者健康状况与分子子结构之间的依赖关系进行建模。
  • LEADER [33]:将传统模型的输入转换为文本格式,并实施来自大语言模型的知识蒸馏,以增强语义理解和医学知识。
  • RAREMed [5]:采用预训练 - 微调框架来改进代码表示,从而为罕见病患者提供更准确的用药推荐,并解决此类系统中的公平性问题。
  • ChatGLM - 6B [30]:是基于通用语言模型(GLM)框架的开源双语模型,有62亿个参数。ChatGLM - 6B使用与ChatGPT类似的技术,针对中文问答和对话进行了优化。该模型在约1万亿个中文和英文语料库的标记上进行训练,并通过有监督微调、反馈引导和人类反馈强化学习进行补充。
  • Qwen - 14B - Chat [24]:是阿里巴巴集团Qwen系列的开源模型,参数规模为140亿。Qwen - 14B是一个基于大规模Transformer的语言模型,在广泛的预训练数据上进行训练,包括各种网络文本、专业书籍和代码。
  • LLaMA - 2 - 7B [23]:是Meta发布的一种自回归语言模型,使用优化的Transformer架构。LLaMA - 2 - 7B在包含2万亿个标记的新的公开可用在线数据混合集上进行预训练。
  • GPT - 3.5 [25]和GPT - 4 [17]:是OpenAI发布的商业模型,在包括医学在内的各种领域的广泛自然语言处理任务中表现出卓越的性能。
  • MedAlpaca - 13b [26]:是在Alpaca [62]上使用医学指令数据进一步微调的模型。它们专注于辅助医学对话和问答任务。
  • PMC_LLAMA_13B [27]:是一个为辅助医学对话和问答而设计的医学大语言模型。它通过整合480万篇生物医学学术论文和3万条医学文本指令对LLaMA进行知识注入,并进行全面微调以与特定领域对齐。

C.5 Evaluation Metrics

在本小节中,我们阐述实验中使用的指标:杰卡德相似系数(Jaccard)、召回率(Recall)、精确率(Precision)和F1值(F1)。 m \mathbf{m} m m ^ \hat{\mathbf{m}} m^ 是二进制向量,分别表示为患者开具的药物和预测的药物。

  • 杰卡德相似系数(Jaccard)
    在这里插入图片描述
  • 召回率(Recall)
    在这里插入图片描述
  • 精确率(Precision)
    在这里插入图片描述
  • F1值(F1)
    在这里插入图片描述

C.6 知识测试的提示模板

详细的提示模板见表SI.21 - SI.24。类似地,占位符“{{}}”在使用时需要进行替换。具体来说,“{{drug}}”和“{{disease}}”分别被药物名称和疾病名称替换,对应于PrimeKG中的节点。此外,“{{choices}}”可能包括诸如“{{A.适应症 B.禁忌症}}”、“{{A.适应症 B.禁忌症 C.超说明书用药}}”或“{{A.适应症 B.禁忌症 C.超说明书用药 D.未知}}”等选项,随着选项数量的增加,难度也会增加。

我们从全面的生物医学知识图谱PrimeKG [63] 中选择三元组进行知识问答。具体来说,我们提取疾病和药物之间的关系,即“适应症”、“禁忌症”和“超说明书用药”,以评估大语言模型是否具备与用药推荐相关的完整医学知识。

D Supplementary Experimental Results

D.1 临床代码表示分析

在本节中,我们对临床代码表示进行详细分析。临床代码,包括疾病代码和医疗程序代码,是传统模型捕捉患者临床状况的基本组成部分。传统上,这些代码被转换为多热向量 [6 - 8],这种表示缺乏语义深度。大语言模型(LLMs)的出现使得能够利用临床代码文本表示中固有的语义细微差别,特别是疾病名称中的语义。

然而,医学数据库中使用的命名法可能并非最适合大语言模型,往往存在过度缩写或冗余的问题。例如,在MIMIC - III数据库中,疾病和医疗程序使用国际疾病分类(ICD)代码表示。ICD代码伴有两种类型的文本标题:“长标题”和“短标题”。先前的研究 [33] 使用了短标题,虽然简洁,但由于简短而存在信息丢失的风险。相反,长标题提供了详细信息,但可能包含无关的噪声。³

为解决这一问题,在简洁性和信息性之间取得平衡以优化临床代码对大语言模型的效用至关重要。我们提出一种方法,即由医学专家精心设计一个少样本提示,使用GPT - 4来处理临床代码名称。随后,我们比较长标题、短标题和处理后的标题(此后称为“简洁标题”)。结果见表SI.5,表明简洁标题在捕捉关键语义信息方面具有优势,同时保持简洁性和与大语言模型理解的相关性。
在这里插入图片描述

将临床代码从“长标题”处理为“简洁标题”的详细提示见表SI.11 - SI.12。我们采用少样本策略来提高代码处理的精度。

D.2 大语言模型在疾病 - 药物关系分类方面的熟练程度分析

在本小节中,我们探究大语言模型(LLMs)是否具备准确进行用药推荐所需的全面医学知识。为此,我们给出详细的知识测试结果,见表SI.25 - 表SI.32。这些知识测试的任务定义和处理工作流程在C.6节中概述。

我们的评估特别侧重于评估大语言模型在辨别疾病 - 药物关系方面的熟练程度,尤其是它们区分适应症、禁忌症和超说明书用药的能力。这些关系对于确保安全有效的用药推荐至关重要。尽管我们的测试条件经过简化,但研究结果显示,除了GPT - 4 [17] 之外,所有大语言模型都未能达到令人满意的准确率水平。这凸显了它们在处理复杂医学知识的能力上存在显著差距,即使是在可控场景中也是如此。这突显了当前大语言模型在理解微妙的医学关系方面的局限性,并强调了进一步微调与增强大语言模型的迫切需求,以弥合理论知识与用药推荐任务中实际应用之间的差距。解决这些局限性对于提高基于大语言模型的医疗决策系统的可靠性和安全性至关重要。

表SI.6展示了各种模型在此二分类任务上的准确率。值得注意的是,GPT [17, 25] 表现出色,特定于医学的模型由于在专业数据集上进行训练,表现也很好。这些模型在这个领域超越了通用大语言模型。
在这里插入图片描述

详细结果进一步表明模型响应存在显著差异。例如,ChatGLM [30] 主要将场景分类为“适应症”,而Qwen [24] 在缺乏明确“禁忌症”知识的情况下,常常默认判断为“适应症”。这种差异凸显了当前模型在确保药物推荐安全性方面的局限性,强调了进一步改进的必要性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Swee1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值