大模型讲师叶梓分享前沿论文:ChatDoctor——基于大模型的医疗聊天机器人

server/2024/12/26 13:12:12/

人工智能咨询培训老师叶梓 转载标明出处

人工智能讲师培训咨询老师叶梓分享前沿技术:基于大模型医疗聊天机器人

大模型医疗领域的应用仍相对有限,通用领域模型在提供医疗建议时常常出现错误。为了解决这一问题,Li等人提出了一个名为ChatDoctor的医疗聊天模型,该模型基于Meta-AI(LLaMA)大模型进行微调,并结合了医疗领域知识,以提高医疗咨询的准确性。

想要掌握如何将大模型的力量发挥到极致吗?叶老师带您深入了解 Llama Factory —— 一款革命性的大模型微调工具(限时免费)。

1小时实战课程,您将学习到如何轻松上手并有效利用 Llama Factory 来微调您的模型,以发挥其最大潜力。

CSDN教学平台录播地址:https://edu.csdn.net/course/detail/39987

材料和方法

在ChatDoctor模型的开发过程中,重点关注了两个核心环节:数据集的收集与准备以及外部知识数据库的创建。

数据集收集与准备

HealthCareMagic100k数据集:收集了约100,000个医患互动对话,这些对话来自在线医疗咨询网站HealthCareMagic。对话数据经过自动和手动筛选,自动筛选排除了过短的对话,手动筛选修正了回答中的错误内容。为保护隐私,所有识别医生或患者身份的信息被移除,并使用LanguageTool纠正了语法错误。FIGURE 1展示了收集医患对话数据集的过程和ChatDoctor模型训练的步骤。

iCliniq数据集:另外从iCliniq网站收集了约10,000个对话,以测试模型性能。这些数据随机分层选择,以确保涵盖多个医学专业领域,并确保所选数据不包含可识别患者信息。

外部知识数据库的创建

为了提高大模型医疗领域的准确性,创建了一个包含疾病、症状、相关医疗测试/治疗程序和潜在药物信息的数据库。这个数据库作为ChatDoctor的外部知识大脑,可以不断更新而无需重新训练模型。FIGURE 2提供了基于外部知识大脑的信息检索的ChatDoctor模型的概览。

数据库构建:利用MedlinePlus构建了这个疾病数据库,但也可以使用其他可靠的数据源。此外,Wikipedia等在线信息源可以补充模型的知识库。FIGURE 3展示了一些包含症状、临床测试/治疗方法和药物建议的样本。

自主ChatDoctor与知识大脑的开发

ChatDoctor模型结合外部知识大脑,通过检索可靠信息来更准确地回答患者咨询。模型设计了关键词挖掘提示,从患者查询中提取关键术语,然后使用术语匹配检索系统从知识大脑中检索信息。FIGURE 4展示了自动提取关键词进行信息检索的过程。

考虑到大模型的词限制,将待阅读的文本分成等份,并根据关键词命中次数排名。ChatDoctor模型顺序阅读前N个部分,通过提示选择和总结相关信息。FIGURE 5展示了通过提示从疾病数据库自动检索信息的过程。最终,模型处理并编译所有知识条目以生成最终回答。FIGURE 6指导ChatDoctor阅读检索到的领域知识并提供可靠答案。这种方法确保患者收到精确、信息丰富的回答,并可以作为ChatDoctor生成回答的验证方法。

模型训练

ChatDoctor模型基于Meta的LLaMA-7B模型开发,该模型使用仅解码器结构的Transformers。尽管参数相对较少,但LLaMA模型在多个NLP基准测试中表现出与更大的GPT-3模型相当的性能。这一性能提升是通过多样化训练数据而非增加网络参数实现的。LLaMA模型在CommonCrawl和arXiv文档等公开数据源上训练了1.0万亿个token。使用HealthCareMagic-100k对话微调LLaMA模型,遵循Stanford Alpaca训练方法。模型首先使用Alpaca的数据进行微调以获得基本的对话技能,然后进一步在HealthCareMagic-100k上进行微调,使用6 * A100 GPUs进行三小时训练。训练过程遵循以下超参数:总批量大小为192,学习率为*,3个周期,最大序列长度为512个token,预热比率为0.03,无权重衰减。

结果

为了评估自主ChatDoctor模型的能力,使用了一系列当代医疗查询进行测试。这些测试包括了对“Monkeypox”(简称Mpox)的问题,FIGURE 7展示了ChatGPT和ChatDoctor在回答新型医疗疾病/术语方面的比较。ChatGPT无法识别“Mpox”一词,而ChatDoctor能够从Wikipedia中提取有关猴痘的相关信息,并给出精确的答案。

同样地,对于更普遍的医疗咨询,如“Otitis”,FIGURE 8显示了ChatDoctor在检索相关知识后能够提供可靠的回答。在另一个例子中,关于“Daybue”(一种在2023年3月获得FDA批准的药物)的问题,ChatDoctor在自主检索相关信息后能够准确回答,FIGURE 9展示了ChatDoctor相对于ChatGPT的优势。

为了定量评估ChatDoctor的性能,使用了独立来源的iCliniq数据库中的问题作为输入,以实际人类医生的回答作为基准或“真实情况”。使用BERTScore计算了ChatDoctor和ChatGPT的精确度、召回率和F1分数。BERTScore利用预训练的BERT通过余弦相似性匹配候选句子和参考句子中的单词,选择BERTScore是因为它能够评估模型回答和参考句子之间的语义相似性,这在医疗环境中至关重要。这种评估方法与人类在句子和系统层面的判断紧密对齐。在所有三个指标中,更高的值表示更好的匹配。

TABLE 1显示了ChatDoctor模型在所有三个指标上都优于ChatGPT,具体的对话示例详细说明了这一点。

FIGURE 10提供了ChatDoctor与ChatGPT的具体对话示例,展示了ChatDoctor在不同医疗查询中的表现。在这些示例中,ChatDoctor能够更准确地模拟人类医生的回答,而ChatGPT则在某些情况下无法提供准确的诊断或建议。

经过医学数据微调的ChatDoctor大模型在初步患者评估、自动化案例判定和积极医疗措施等方面具有广泛的潜在应用。然而,由于医学信息的复杂性,任何诊断和健康建议中隐藏的不准确性都可能导致严重后果。大模型偶尔会产生关于其知识专长领域之外的虚假和有害断言(幻觉),可能导致医疗事故。

为了减轻这种情况,ChatDoctor使用真实的医患互动进行训练,以更好地理解患者的问题并提供更有知识的回答。为了使模型能够回答关于最新医学术语的问题(这些术语可能不在训练数据集中),并引入额外的外部参考以进行验证,还为ChatDoctor模型配备了自主检索外部知识大脑中的信息以提供答案的能力,进一步提高了模型的可信度。

这种外部知识检索可以通过输入预配置的提示来调用模型。在未来的发展中,ChatDoctor模型的内部先验知识(通过训练获得)和外部知识大脑可以进一步结合,通过训练ChatDoctor选择更可信的答案,或者合并和融合两个答案或提供替代意见。

需要强调的是,当前的ChatDoctor模型仍处于研究阶段,仅用于学术研究。实际临床使用可能存在模型输出错误答案的风险,而且目前仅使用大模型进行医疗诊断仍然受到假阳性和假阴性的困扰。需要额外的安全措施,包括自动参考检查和人类专家评估,以交叉验证ChatDoctor提供的答案,标记潜在不准确的答案并防止幻觉。这些安全措施的确切设计、开发和部署仍是未来研究的重要课题。

论文名:ChatDoctor: A Medical Chat Model Fine-Tuned on a Large Language Model Meta-AI (LLaMA) Using Medical Domain Knowledge

作者:Yunxiang Li, Zihan Li, Kai Zhang, Ruilong Dan, Steve Jiang, You Zhang

单位:

  1. Department of Radiation Oncology, University of Texas Southwestern Medical Center, Dallas, USA
  2. Department of Computer Science, University of Illinois at Urbana-Champaign, Illinois, USA
  3. Department of Computer Science and Engineering, The Ohio State University, Columbus, USA
  4. College of Computer Science and Technology, Hangzhou Dianzi University, Hangzhou, CHN

https://arxiv.org/abs/2303.14070

https://github.com/Kent0n-Li/ChatDoctor


http://www.ppmy.cn/server/153323.html

相关文章

Java全栈项目 - 智能考勤管理系统

项目介绍 智能考勤管理系统是一个基于 Java 全栈技术开发的现代化企业考勤解决方案。该系统采用前后端分离架构,实现了员工考勤、请假管理、统计分析等核心功能,旨在帮助企业提高人力资源管理效率。 技术栈 后端技术 Spring Boot 2.6.xSpring Securi…

golang实现yaml配置文件的解析

原文地址:golang实现yaml配置文件的解析 – 无敌牛 欢迎参观我的个人博客:无敌牛 – 技术/著作/典籍/分享等 代码 需要建立3个文件,目录结构如下: 配置文件 conf.yaml redis: host: "127.0.0.1"port: 6379db: 11 …

后端接口返回文件流,前端下载(java+vue)

各位小伙伴们大家好,欢迎来到这个小扎扎的专栏 总结 | 提效 | 拓展,在这个系列专栏中记录了博主在学习期间总结的大块知识点,以及日常工作中遇到的各种技术点 ┗|`O′|┛ ?? 内容速览 后端获取前端下载 本身前端是可以直接通过文…

鸿蒙UI开发——自定义主题色

1、概述 ArkTs提供了应用内主题切换功能,支持全局主题切换,也支持局部主题切换,效果如下。本文针对主题切换做简单介绍。 2、主题色 ArkTs提供了一套内置主题配色,有Colors对象持有,它包含了默认情况下,关…

IntelliJ IDEA 基本使用教程及Spring Boot项目搭建实战

​ 目录 ​一、简介 二、IntelliJ IDEA 基本使用 三、Spring Boot 项目搭建 一、简介 IntelliJ IDEA 是由 JetBrains 开发的一款强大的 Java 集成开发环境(IDE),广泛用于 Java、Kotlin、Groovy、Scala、Spring 和 Android 等项目的开发。…

Docker 安装Mysql

1.打开docker目录 cd /usr/local/mkdir docker2.创建mysql文件夹 cd /usr/local/dockermkdir mysql3.打开mysql文件夹 cd mysql/4.创建配置文件目录 mkdir config5.打开config cd config/6.编写配置文件 vim my.cnf复制如下: [client] # 端口号 port3306[mysq…

「Java EE开发指南」如何用MyEclipse构建一个Web项目?(一)

在本文中您将找到有关Web项目的信息,将了解: Web项目结构和参数Web开发高效率工具JSP代码完成和验证 这些功能在MyEclipse中可用。 MyEclipse v2024.1离线版下载 一、Web项目结构 用最简单的术语来说,MyEclipse Web项目是一个Eclipse Ja…

LabVIEW软件项目设计方案如何制定

制定LabVIEW软件项目设计方案需要综合考虑需求分析、架构设计、功能模块划分和时间预算等多个方面,确保项目开发过程高效、可控且最终满足目标要求。以下是一个详细的制定流程: ​ 1. 需求分析 目标定义:明确项目的目标,例如数据采…