编译 | 于洲
今天我们介绍由北京邮电大学网络和交换技术国家重点实验室的王光宇等学者发表在arXiv上的工作,该工作提出ClinicalGPT,一个明确为临床场景设计和优化的语言模型。通过在培训过程中整合广泛和多样化的真实世界数据,如医疗记录、特定领域知识和多轮对话咨询,ClinicalGPT可以更好地处理多种临床任务。此外,该工作还引入了一个综合评估框架,包括医学知识问答、医学检查、患者咨询和医疗记录的诊断分析。结果表明,ClinicalGPT在这些任务中的表现明显优于其他模型,突出了ClinicalGPT在将大型语言模型适应医疗保健关键领域方面的有效性。
背景介绍
近年来,预训练LLMs在自然语言处理中取得了显著的成功。BERT、T5和GPT-3等模型可以通过微调和提示执行各种任务。大型语言模型可以用于对话系统、写作和编程助手。尽管其面临一些挑战,但人工智能可能会通过临床决策支持、研究和教育来改变医疗保健。本文提出了ClinicalGPT,通过对医疗数据进行培训,并对医疗任务进行评估。经过微调后,ClinicalGPT优于现有的模型,这证明了其有效性。
方法介绍
数据集
在这项研究中,本文纳入了大量不同的医疗数据集,包括cMedQA2、cMedQA-KG、MD-EHR、MEDQA-MCMLE和MedDialog,用于训练和评估本文的模型。cMedQA2数据集是一个中文医学问答数据集,由12万个问题和22.6万个答案组成。cMedQA-KG是一个基于知识图谱的医学问答数据集。它建立在三个知识图谱上:cMeKG、xywy-KG和39Health-KG,这些知识图谱涵盖了疾病、药物、症状等全面的医疗实体及其相互关系。MEDQA- MCMLE数据集是MEDQA原始数据集的一个子集,由多项选择格式的中国医学考试问题组成。由于该数据集来源于专业医学委员会考试,因此它有效地评估了应用知识、临床推理和以患者为中心的技能。MedDialog数据集是从在线平台获得的多回合医疗对话数据集。MD-EHR数据集由来自中国多中心大型医院的电子健康记录组成。该数据集包含10万条记录,涵盖了一系列疾病组,包括呼吸、消化、泌尿、精神病学、神经病学、妇科和血液学。MD-EHR数据集中的每条记录都提供了患者的投诉、病史、体检结果、辅助测试结果和最终诊断的全面概述。与T5类似,本文将病历转换为文本生成任务,方法是将病历中的笔记连接起来作为输入,并使用诊断作为输出。
微调
本文采用T5模型的策略,利用基于语言模型的文本生成来完成研究中的所有任务。为了增强LLMs对下游任务的效用,本文应用了带有监督微调(SFT)的指令调整方法。为了将特定领域的知识整合到LLMs中,本文转向特定于该领域的知识图(KGs)来构建快速响应对。KGs以结构化三元组(s, r, o)的形式获取知识,其中s表示主体,r表示关系,o表示客体。这样的一个例子可以是(咳嗽, 症状, 肺炎)。本文利用一组手工设计的模板将这些三元组转换为问答对,使它们适合于指令调优。
奖励模型
现有的研究表明,强化学习可以结合人类反馈来增强大型语言模型。例如,WebGPT是一种利用人类反馈来提高性能的浏览器辅助问答系统。InstructGPT还通过强化学习与人类反馈保持一致,以产生有益和安全的响应。本文遵循InstructGPT的工作,构建一个奖励模型(RM) rµ来提供对强化学习过程至关重要的奖励信号,并且对RM采用基于等级的培训。
强化学习
本文利用强化学习来增强微调模型,以产生高质量和有用的输出,并改进医学文本的生成,从而帮助准确描述和治疗患者的病情。本文使用训练好的奖励模型作为奖励函数。为了防止模型偏离初始状态太远,本文采用了近端策略优化(PPO)作为优化策略。具体来说,在奖励函数中加入了一个惩罚项,用于惩罚学习到的强化学习策略与原始监督模型之间的KL散度,这确保了最终模型不会过度偏离原始监督模型。
实验结果
执行细节
本文选择BLOOM-7B作为基础大型语言模型,因为它具有开源和多语言支持的优点。对于监督微调过程,本文将学习率设置为5e-5,批大小为128,最大长度为1024,epochs为3。在奖励模型的训练过程中,本文利用最终输出序列特征的最后一个特征向量作为文本表示。在微调模型中添加了一个二元分类头来输出奖励,学习率为2e-5,批大小为128,最大长度为1024,epochs为3。对于强化学习过程,本文采用了1e-5的学习率和1024的最大长度,训练了4000步。为了高效地训练大型语言模型,本文采用了参数高效的微调方法LoRA (Low-Rank Approximate Adapter),r为8,alpha为32,dropout为0.1。为了减少内存使用和提高训练速度,本文采用了ZeRO-2,同时使用了TF32(TensorFloat-32)和BF16(Bfloat16)。在实验过程中,将Clinical与几个指令微调模型进行比较,包括ChatGLM-6B、LLAMA-7B(对中英文数据进行微调)和BLOOM-7B(对跨语言任务进行微调)。
医学问诊
本文在MedDialog的测试集上对医学问诊进行了性能评估。为了解决每个医疗问诊中多轮对话的挑战,本文在某一轮随机截断对话,丢弃后续对话,并使用这一轮之前的历史对话作为输入。对话示例如表1所示。
表1:医学问诊中的对话示例
本文使用了三个评估指标:BLEU、ROUGE和GLEU来评估对话的质量。BLEU是一种常用的度量,它将候选翻译与基于n-gram精度的一个或多个参考翻译进行比较。GLEU计算不同n-gram的平均分,为生成的文本提供更全面的评价。另一方面,ROUGE是评估自动摘要和机器翻译的一个特别有用的度量,因为它通过与参考文献进行比较来关注生成摘要的召回方面。实验结果见表2。
表2:不同模型在医学会诊上的比较
实验结果表明ClinicalGPT在BLEU-1和所有ROUGE评分上都取得了出色的表现,在BLEU-2、BLEU-3和BLEU-4方面仅次于BLOOM-7B。ClinicalGPT的ROUGE得分较高,说明该模型生成的回答更有效地覆盖了参考文本提供的信息。
医学考试
在本研究中,使用MEDQA-MCMLE数据集的医学考试评估使用数据集中频率最高的类别进行评估。所选的类别包括医学伦理学、呼吸系统、消化系统、泌尿系统、血液病、风湿性免疫疾病、儿科疾病和药理学。模型以问题和选项的形式输入,生成的文本随后用于提取答案以计算准确性。回答示例如表3所示。
表3:医学考试回答示例
实验结果如表4所示,ClinicalGPT在所有评估类别中都优于LLAMA-7B、ChatGLM-6B和BLOOM-7B,平均准确率为38.4。其中ClinicalGPT表现优异,分别以19.9分、25.7分和27.2分超过ChatGLM-6B、BLOOM-7B和LLAMA- 7B的平均分。在所有类别中,ClinicalGPT在风湿病免疫方面得分最高,准确率为47.4。与此相反,它在呼吸系统和消化系统疾病方面表现不佳,准确率分别为26.1和36.9。这些发现表明,虽然ClinicalGTP在理解和产生与风湿病免疫系统相关的反应方面表现出色,但需要进一步改进以提高其在呼吸和消化系统疾病中的表现。
表4:不同模型在医学考试中的比较
诊断
本文在MD-EHR测试集上评估LLMs的诊断能力。选择疾病组进行评估,包括呼吸、消化、泌尿、精神病学、神经病学、妇科和血液学。为模型提供来自每个病历的串联笔记作为输入,并生成文本作为输出。通过将生成的文本与医疗记录中的诊断标签进行比较,计算模型的准确性。回答示例如表5所示。
表5:电子病历诊断中的回答示例
如表6所示,ClinicalGPT在所有疾病组中的表现优于ChatGLM-6B、LLAMA-7B和BLOOM-7B。ClinicalGPT在各疾病组的平均准确率为80.9%,明显高于ChatGLM-6B的40.9%、LLAMA-7B的36.6%和BLOOM-7B的60.3%。ClinicalGPT在消化和泌尿科表现尤为突出,准确率分别达到90.1%和89.9%。这表明在ClinicalGPT在理解和解释不同疾病组的医疗记录方面具有强大的能力。然而,ClinicalGPT在妇科和血液科的表现略低,准确率分别为78.6%和80.7%。这表明尽管ClinicalGPT在一系列医学专业中表现良好,但是在妇科和血液学领域仍有改进的空间。
表6:不同模型在诊断上的比较
医学问题回答
对于医学问答(QA)评估,模型使用来自cMedQA2的388个问题的数据集与其他几个模型进行基准测试。使用自动评估指标,以GPT-4作为参考模型,通过给定问题,每个模型独立地生成答案。然后使用GPT-4来评估这些反应的准确性、有用性和安全性。GPT-4对每次比较都给出了“Win”、“Tie”或“Lose”的判断。“Win”表示ClinicalGPT提供了更好的回答,“Lose”表示后者模型提供了更好的回答,“Tie”表示没有观察到明显的回答差异。
如表7所示,ClinicalGPT优于BLOOM-7B、LLAMA-7B和ChatGLM-6B。在与BLOOM-7B和LLAMA- 7B的比较中,本文的模型分别在89.7%和85.0%的示例中获胜。“Tie”的示例比例相对较小,BLOOM-7B为1.8%,LLAMA-7B为2.3%。与此同时,ClinicalGPT以67.2%的成功率战胜了ChatGLM-6B,“Tie”的比例为10.9%,“Lose”的比例为22.0%。
实验结果表明,尽管ChatGLM-6B具有值得称赞的医学知识库,并能够进行流畅的文本表达,但使用ClinicalGPT进行培训有利于增强医学问题回答的能力。
结论
本文提出了ClinicalGPT,这是一个为医疗和临床应用量身定制的大型语言模型。由于认识到通用大型语言模型在这些专门领域中存在局限性,本文采取方法来改进模型,组装全面的数据集并进行微调。这些数据集包含真实的医疗记录、患者咨询、各种医学知识和检查数据,所有这些都旨在塑造模型的知识库和响应能力。本文广泛的实验涵盖了医学领域的一系列关键任务,如医学对话、医学检查、诊断和医学问题回答。实验结果突出了ClinicalGPT在理解和产生医学和临床相关反应方面的卓越能力。
参考资料
Wang, Guangyu, Guoxing Yang, Zongxin Du, Longjun Fan, and Xiaohu Li. "ClinicalGPT: Large Language Models Finetuned with Diverse Medical Data and Comprehensive Evaluation." arXiv preprint arXiv:2306.09968 (2023).