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

news2024/12/26 10:02:58

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

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

大模型在医疗领域的应用仍相对有限,通用领域模型在提供医疗建议时常常出现错误。为了解决这一问题,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.coloradmin.cn/o/2265781.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

GitLab 停止中国区用户访问,为用户提供60天的迁移期

近日,全球知名的代码托管平台 GitLab 宣布了一个重大变化:将停止为中国大陆、香港及澳门地区的用户提供访问服务,建议用户访问授权国内的产品极狐 GitLab.cn。 极狐 GitLab.cn 是 GitLab 授权的独立中国公司,之前该公司还发生过举…

H3C MPLS跨域optionB

实验拓扑 实验需求 如图,VPN1 和 VPN2 分别通过运营商 MPLS VPN 连接各自分支机构按照图示配置 IP 地址,VPN1 和 VPN2 连接同一个 PE 设备的私网 IP 网段存在地址复用,使用多 VRF 技术来防止 IP 冲突AS 100 和 AS 200 内部的公共网络中各自运行 OSPF 使 AS 内各设备的 Loo…

Flink SQL Cookbook on Zeppelin 部署使用

简介:对于初学者来说,学习 Flink 可能不是一件容易的事情。看文档是一种学习,更重要的是实践起来。但对于一个初学者来说要把一个 Flink SQL 跑起来还真不容易,要搭各种环境,真心累。很幸运的是,Flink 生态…

6、mysql的MHA故障切换

MHA的含义 MHA:master high availability,建立在主从复制基础上的故障切换的软件系统。 主从复制的单点问题: 当主从复制当中,主服务器发生故障,会自动切换到一台从服务器,然后把从服务器升格成主&…

基于单片机的智能递口罩机器人设计

本设计是一款智能递口罩机器人,主控器采用STM32单片机,ESP32协同控制,在支持MicroPython的OpenMV机器视觉模块的控制下,实现人脸搜索与识别,进而控制小车的运动及机械臂递口罩动作。这款机器人拥有温湿度传感器&#x…

实训项目-人力资源管理系统-1Company子模块

目录 前言: 用例图设计: 系统设计 开发方式: 技术架构 系统结构: API文档: 工程搭建: 搭建父项目 pom: 创建公共子模块: 返回实体: 分布式id生成器: …

前端bug调试

报错和Bug,是贯穿程序员整个编程生涯中,无法回避的问题。而调试,就是帮助程序员定位问题、解决问题的重要手段,因此,调试是每个程序员必备技能。 调试基本流程 核心原则:最重要的就是不断地缩小范围&…

【落羽的落羽 C语言篇】自定义类型——联合体、枚举

文章目录 一、联合体1. 联合体类型的声明2. 联合体的特点3. 联合体的大小4. 联合体和结构体的对比 二、枚举1. 枚举类型的声明2. 枚举类型的优点 一、联合体 1. 联合体类型的声明 联合体像结构体一样,也是由一个或多个成员构成,这些成员可以是不同的类…

大数据技术-Hadoop(二)HDFS的介绍与使用

目录 1、HDFS简介 1.1 什么是HDFS 1.2 HDFS的优点 1.3、HDFS的架构 1.3.1、 NameNode 1.3.2、 NameNode的职责 1.3.3、DataNode 1.3.4、 DataNode的职责 1.3.5、Secondary NameNode 1.3.6、Secondary NameNode的职责 2、HDFS的工作原理 2.1、文件存储 2.2 、数据写…

学习threejs,THREE.CircleGeometry 二维平面圆形几何体

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️THREE.CircleGeometry 圆形…

替换 Docker.io 的 Harbor 安全部署指南:域名与 IP 双支持的镜像管理解决方案

经过验证 替换 Docker.io 的方式失败了, 以下的过程中还是需要设置 registry-mirrors 才行 以下是一篇详细教程,展示如何基于 openssl.conf 配置生成域名为 registry-1.docker.io 和 IP 地址为 172.16.20.20 的证书,构建 Harbor 服务。 环境准备 系统环境…

【源码编译】windows下mingw64安装以及cmake调用

最近因为安装MIRTK库,太多第三方依赖了,太折磨了,学习了使用Cmake,有些库又需要Fortran编译器,VS2022里面装了但又调用不了,也不知道为什么,最后装的mingw64,记录一下。 1、mingw64安…

【机器学习(九)】分类和回归任务-多层感知机(Multilayer Perceptron,MLP)算法-Sentosa_DSML社区版 (1)111

文章目录 一、算法概念111二、算法原理(一)感知机(二)多层感知机1、隐藏层2、激活函数sigma函数tanh函数ReLU函数 3、反向传播算法 三、算法优缺点(一)优点(二)缺点 四、MLP分类任务…

基于AI IDE 打造快速化的游戏LUA脚本的生成系统

前面写了一篇关于使用AI IDE进行C安全开发的博客《使用AI IDE 助力 C 高性能安全开发!》, 得到许多同学们的喜欢,今天我们来继续在游戏开发中扩展一下AI的能力,看看能不能给游戏研发团队一些启发。 在游戏研发中,Lua曾…

系统思考VS过度管理

业绩没起来,领导者最容易做的就是抓管理。这样的“抓管理”真的有效吗?当业务还没起飞的时候,过度管理其实是一种伤害。就像一条呼啸而过的鞭子,看起来让团队更“整齐”,但实际上可能打散了协作的节奏。管理的本质是支…

IT运维的365天--021 服务器上的dns设置后不起作用

之前在内网搭建了一个和外网同域名的网站,开发同事今天告诉我,程序调试发现可能服务器不能正常访问自己内网的网站内容。于是,今天的故事开始了。 前面的文章在下面列出,当然不看也问题不大,今天的主题是:…

机器人C++开源库The Robotics Library (RL)使用手册(二)

由于RL库采用跨平台CMake源码,可以轻松在win、ubantu等平台部署、编译,win通常用VS编译器,为了便于使用、阅读,需要将CMake编译成VS工程。 1、准备三个工具:CMake、VS、QT 为了在Windows上编译RL和依赖项,您需要安装一个编译器(例如。,Visual Studio 2017)和跨平台构…

ShaderJoy ——一种可交互的翻页效果【GLSL】

效果视频 Shader 特效——可与鼠标交互的翻页效果 效果图 完整代码 #define pi 3.14159265359 #define radius .1#iChannel0 "file://./images/Woolly_3.png" #iChannel1 "file://./images/Woolly_4.png"void mainImage( out vec4 fragColor, in vec2 fra…

oracle怎样使用logmnr恢复误删除的数据

如果有同事误删除数据了,可以用logmnr挖掘归档日志,生成回滚sql,快速恢复数据,比用整个库的备份恢复要快得多。 一 操作步骤 1.1 创建目录 su - oracle mkdir logmnr create directory logmnr_dir as /home/oracle/logmnr; …

LeetCode:3218. 切蛋糕的最小总开销 I(贪心 Java)

目录 3218. 切蛋糕的最小总开销 I 题目描述: 实现代码与解析: 贪心 原理思路: 3218. 切蛋糕的最小总开销 I 题目描述: 有一个 m x n 大小的矩形蛋糕,需要切成 1 x 1 的小块。 给你整数 m ,n 和两个数…