
对话数据合成:清华利用多Agent合成大量医疗对话数据显著提升LLM在医疗场景效果
大家好,我是HxShine
今天分享一篇来自清华的一篇利用Agent合成数据的文章,标题为《Agent Hospital: A Simulacrum of Hospital with Evolvable Medical Agents》。这篇文章介绍了一种名为Agent Hospital的仿医院模拟系统,该系统中患者、护士和医生都是由LLM驱动。文章的核心目标是使医生Agent能够在模拟环境中学习如何治疗疾病,从而验证社会模拟过程是否可以提高LLMAgent在特定任务上的性能。实验表明,随着在模拟过程中积累的样本越来越多,其在测试集上的表现也稳步提升。令人supprised的是其在外部数据MedQA数据集的准确率也达到了93.06%,超过了现有最好的模型。
这项研究验证了通过设计模拟环境可以增强LLMAgent在特定任务上的表现,为医疗场景下的大模型应用提供了新的研究方法。同时也是利用多Agent模拟虚拟环境,在模拟对话的过程中,合成了非常多的真实数据。这篇文章的做法是利用合成数据作为RAG知识来提升诊断的效果,这种合成数据的方法我相信也可以用于LLM微调等其他场景,有着非常好的借鉴意义。
一、概述
•Title: Agent Hospital: A Simulacrum of Hospital with Evolvable Medical Agents
•URL: https://arxiv.org/pdf/2405.02957v1
•Authors: Junkai Li, Siyu Wang, Meng Zhang, Weitao Li, Yunghwei Lai, Xinhui Kang, Weizhi Ma, and Yang Liu
•研究机构: 清华大学人工智能研究院
•Code: https://github.com/LibertFan/AI_Hospital
•官方解读: https://air.tsinghua.edu.cn/info/1007/2246.htm
1.Motivation
•当前情况:已有研究利用智能体技术实现了真实世界模拟,包括“斯坦福小镇”、“狼人杀游戏”等交互和博弈场景,但这个过程大都依赖于高质量人工标注数据的支持。
•本文研究的问题:真实环境模拟能否助力智能体的任务处理能力提升,真实的模型环境是否能够助力智能体的任务能力提升和进化。
• 医疗场景被广泛认为是AI技术可以显著改进的理想场景,改进后的LLM Agent是否可以通过社会模拟环境提升其在医疗场景中的实际应用效果还需要验证。
2.Methods
省流版总结:
虚拟环境构建: 开发一个名为Agent Hospital的综合模拟环境,模拟医院内几乎所有的医疗过程,包含两类Agent:居民(潜在患者)和医疗专业人员。 MedAgent-Zero训练策略: 在Agent Hospital中,通过模拟医生-患者互动过程来训练医生Agent,采用无标注数据,通过成功病例积累记录和失败病例总结经验,不断进化。
详细方法和步骤:
1)环境设置:设计了一个医院沙盒模拟环境,其中包括**分诊(Triage)、挂号(Registration)、会诊(Consultation)、检查(Medical Examination)、诊断(Diagnosis)、治疗(Medicine Dispensary)、随访(Convalescence)**等多个医疗流程,由患者Agent和医生Agent完成循环。
2)角色设计:医疗专业Agent和居民患者Agent。医疗专业Agent负责疾病诊断和治疗计划的制定,居民Agent则在特定时间点决定是否去医院就诊。
3)患者事件/互动:包括疾病发作、分诊、挂号、会诊、医学检查、诊断、治疗推荐和康复(随访)等八大主要事件。
4)医生事件:主要包括实践活动(在医院内学习)和学习活动(业余时间读书学习)。
5)MedAgent-Zero策略:这一无参数、无标注数据的策略包括医学记录库和经验库两个模块。通过历史医疗记录和经验总结,帮助医生Agent在新的模拟环境中做出更好的医疗决策。
Q1: 如何生成医疗对话数据?
Q2: 如何评价Agent的诊断能力?
Q3: MedAgent-Zero 智能体如何自我进化?
Q4: MedAgent-Zero的进化方式是什么?
Q5: 输入的医疗数据长啥样?
Q6: 如何根据已有电子病历数据生成对话数据?
答:通过prompt,根据医疗电子病历数据来提问,但是不知道诊疗结果。
Q7: 医生如何回复?
答:通过prompt,根据症状,检查检查结果等,给出诊断结果,诊断依据,和治疗方案,后面通过需要进行的检查、所患疾病类型和疾病严重程度判断三个指标评估诊疗准确率。
Q8: 生成的医疗对话数据长啥样?
3.Conclusion
•结论1: MedAgent-Zero策略显著提升了医生Agent在三大任务(检查判断、诊断、治疗方案)上的性能,训练后的累计准确率不断上升。
•结论2: 通过模拟无标签医疗病例,MedAgent-Zero策略使医生Agent在短时间内完成实际医生数年才能完成的病例诊疗,具有高效性。
•结论3: 医院模拟环境和MedAgent-Zero策略可使医生Agent在模拟病例和真实世界的评估中表现出色,验证了社会模拟可以提升LLMAgent在特定任务上的性能。
4.Limitation
• 尽管患者的健康记录和检查结果生成严格遵循医疗逻辑,但与真实世界记录仍可能存在差异。
二、详细内容
1. 随着训练样本的增加,在三种任务上效果不断提升
•训练集表现
•测试集表现
•实验设置:
a.包括甲流、乙流、新冠等8个呼吸道相关疾病,涉及十余种不同的医学检查。
b.构造样本数量:构造了上万名虚拟病人的病历用于医学智能体的自主进化实验,按照人类医生一周治疗约100名病人计算,人类医生可能需要花两年诊断10000名病人,但是智能体医生只需要几天就可以完成。
•结论:
•结论1: 随着生成训练样本的增加,在三大任务(检查判断、诊断、治疗方案)上的性能也逐渐增加。
•结论2(测试集表现): 针对500个测试病历的实验则发现(图7),在诊疗病人数量增加的过程中智能体准确率略有波动,但整体呈现上升趋势。
2. 积累的正确和错误诊断的经验数量和生成样本数量的关系
• 可以看出,随着生成样本越来越多,错误的经验和正确的经验都越来越多,不过犯错的经验更多一些,后续利用这些数据做RAG的语料,既能从成功的经验中学习,也能从失败的经验中学习。
3. 进化后在各疾病的准确率有了显著的提升
•医学智能体进化前后在各个疾病上的诊断准确率
•外部数据集MedQA的呼吸道疾病子集上的表现(进化前后)
•结论1: 无论是在内部数据集还是外部数据集,进化前后准确率发现均有大幅提升,验证了其自主进化的有效性。
• 结论2: 在外部数据MedQA数据集上,在诊疗近万名病人后,医学智能体能够在该数据集上超越当前最好的方法,达到了最高93.06%的准确率。
4.消融实验
•结论1: 不管是从成功中积累的样例还是从失败中总结的经验都有助于提升模型的医学能力。
•结论2: GPT4能比GPT3.5高10个点左右,基座模型的能力也比较关键。
三、总结
本文通过Agent Hospital验证了社会模拟环境下医生Agent的自我进化能力,验证了无需手动标注数据就能有效提升LLMAgent在医疗场景中的应用性能。后续希望该方法也可以适应于其他场景。
结论1: Agent Hospital成功模拟了一个包含完整医疗流程的虚拟医院。 这一虚拟医院能够有效合成医疗对话数据,促进医疗LLM的应用,相对于医院接诊效率存在天然瓶颈,模拟医院能够短时间内产生大量数据。
结论2: MedAgent-Zero的自我进化策略能够显著提升医生Agent的诊疗能力。 利用成功病例积累和失败经验总结,医生Agent在无需人工标注数据的情况下,实现自我进化。
结论3: 在真实世界的评估中,MedAgent-Zero策略同样表现出色。 即使不采用任何手工标注的数据,这一策略在MedQA数据集上的表现也达到了最先进水平。
未来工作:
1. 覆盖的更多的疾病种类和医疗部门,进一步贴近真实医院的综合服务。
2. 增强Agent的社会模拟能力,如加入完整的医疗专业人员晋升系统、疾病分布的时间变化和患者病历记录等。
3. 优化基础LLM模型的选择和实现,提升模拟过程的执行效率。
本文转载自NLP PaperWeekly,作者: NLP PaperWeekly
