HuatuoGPT模型介绍

news2024/11/29 4:28:27

文章目录

  • HuatuoGPT 模型介绍
  • LLM4Med(医疗大模型)的作用
  • ChatGPT 存在的问题
  • HuatuoGPT的特点
  • ChatGPT 与真实医生的区别
  • 解决方案
    • 用于SFT阶段的混合数据
    • 基于AI反馈的RL
  • 评估
    • 单轮问答
    • 多轮问答
    • 人工评估

HuatuoGPT 模型介绍

HuatuoGPT(华佗GPT)是香港中文大学(深圳)和深圳市大数据研究院的王本友教授团队训练并开源了一个新的医疗大模型,以使语言模型具备像医生一样的诊断能力和提供有用信息的能力

论文地址:https://arxiv.org/pdf/2305.15075.pdf
github 地址:https://github.com/FreedomIntelligence/HuatuoGPT
Demo 地址:https://www.huatuogpt.cn/

HuatuoGPT的核心是在监督微调阶段利用来自ChatGPT的提取数据和来自医生的真实世界数据。ChatGPT的回答虽然具有流畅性和全面性,但它在一些方面不能像医生一样表现,例如在综合诊断方面。作者认为,可以在SFT阶段将来自医生的真实数据将与来自ChatGPT的提取数据进行互补,而为了更好地利用两种数据的优势,作者训练了一个奖励模型,以使语言模型与两种数据带来的优点保持一致,并遵循RLAIF(从人工智能反馈中强化学习)。

LLM4Med(医疗大模型)的作用

LLM4Med的预期目的是医疗和健康建议、分诊、诊断、开药、解释医疗报告等。一般来说,任何医疗或健康信息都可以合并到在线聊天过程中,类似于使用ChatGPT。在线医疗咨询提供了许多优势,包括:

  • 成本效益:以在线方式为多个用户服务的成本与为单个用户服务的成本不成线性比例。一旦对模型进行了训练,这种可扩展性就可以实现经济高效的扩展。
  • 减少医院拥挤:最近的疫情凸显了医院人满为患的风险,因为许多人即使不需要立即就医也会寻求线下咨询。通过提供在线替代方案,可以缓解医院的压力,以减轻未来流行病的风险。
  • 解决心理障碍:一些人可能因为恐惧或迷信而不寻求医疗帮助或治疗。在线聊天平台可以为这些人提供一个更舒适的环境来讨论他们的担忧。
  • 医疗平等:中国的医疗保健不平等是一个重大问题。一线城市居民与小城市和农村地区居民在医疗条件方面的差异非常显著。

ChatGPT 存在的问题

虽然 ChatGPT对一些非垂直领域的问题的回答通常是流畅和全面的,但在医疗领域存在以下问题:

  • ChatGPT在医学领域表现不佳,尤其是在中文领域;
  • ChatGPT因道德和安全问题拒绝诊断和开药;
  • ChatGPT的表现不如医生,例如,它从不提问,即使患者的情况不完整,医生通常会询问更多细节。在这种情况下,ChatGPT会给出一个通用的响应,而不是专门的响应。

HuatuoGPT的特点

  • HuatuoGPT是第一个使用RLAIF来利用真实数据和提取数据(包括指令和会话数据)的优点的医学语言模型。
  • 人类评估显示,HuatuoGPT优于现有的开源LLM和ChatGPT(GPT-3.5-turbo)。其性能与医生最相似。

ChatGPT 与真实医生的区别

下图为ChatGPT 与医生回复的区别。
在这里插入图片描述
医疗咨询中ChatGPT回复(左)和医生回复(右)的示例对话,将文本从中文翻译成英文。图中蓝色表示的是医生们提出的问题,下划线表示的是医学诊断。可以看出,ChatGPT通常不会提出问题以回应病人或像医生一样提供医疗诊断。且ChatGPT回复的数据的质量可能会有波动,表现为生成的对话中的不正确或模棱两可的信息。

ChatGPT的回复:在医疗领域,大规模语言模型(LLM)具有广阔的应用潜力。尽管像 ChatGPT 这样的语言模型能够生成内容详实、表述流畅、逻辑清晰的回复,但其在回应患者描述症状时,缺乏专业性和对患者输入的精确解读。其回复常常包含多种可能性,并以较高层次的建议形式呈现,但往往缺少深入的上下文理解能力,使得其帮助患者的具体情况有限。

真实医生的回复:相比之下,现实世界中医生与患者的互动数据能够更准确地反映医疗情景的复杂性,并提供准确无误的诊断建议,具有极高的专业性。然而,由于时间的限制,医生的回应常常简洁至不能充分传达信息,甚至有时会显得不连贯。若仅依靠这些数据来训练模型,得到的模型难以流畅地应对多样的指令或对话,其生成的回应也会显得短小、表述不佳,有时信息含糊,这对患者并不友好。

论文提出的语言模型训练方法结合了医生和 ChatGPT 的数据,充分发挥它们的互补作用,既保留真实医疗数据的专业性和准确性,又借助 ChatGPT 的多样性和内容丰富性的特点。

解决方案

流行的医学模型中数据源和训练方法的比较。
在这里插入图片描述
HuatuoGPT 的示意图
在这里插入图片描述
从上图可以看出,HuatuoGPT侧重于整合医生和ChatGPT的特征,通过两阶段训练策略提高医疗咨询中的反应质量:混合数据的SFT和人工智能反馈的RL。首先利用精心选择的混合数据(包含提取的指令数据和对话数据,以及真实的指令数据和对话数据),通过监督微调来训练模型,然后通过人工智能的反馈来加强所需响应的生成。使得最终得到的模型具有四个特点:类似医生,对患者友好,指令跟踪和交互式诊断

用于SFT阶段的混合数据

从ChatGPT提取指令数据:遵循self-instruct的工作构建了一组医疗指导数据,旨在使模型能够遵循用户的医疗指导。不同之处在于,采用了自上而下的方式来创造更自然、更全面的应对措施。作者设计了一个分类法来收集或手动创建基于角色和用例的种子指令。根据每个角色或用例,使用自我指导分别生成指令。这可以提供广泛的说明,同时为每个角色或用例保留足够的说明。最后,将所有的种子指令混合在一起,进行自我指导;这可能有助于生成更加多样化的指令。
在这里插入图片描述

从医生获取真实世界指令:真实世界的指令数据来源于医生和患者之间的问答。医生的回答是专业知识,具有高度的相关性和简洁性。因此,通过提炼真实的医患QA对,进一步提高了single-turn指令数据的质量和可靠性。
在这里插入图片描述
从ChatGPT获取对话:提取的对话由两个ChatGPT生成,每个ChatGPT使用精心设计的提示与一个角色(医生或患者)进行关联。首先,利用第三方医学诊断数据库作为生成合成对话数据的医学知识和专业知识的来源。基于患者的基本背景和医生的最终诊断,两个ChatGPT被要求逐一生成对话。在这些对话中,LLM产生的回答通常信息丰富、详细、呈现良好,并遵循一致的风格;格式和信息通常对患者友好。

在这里插入图片描述在这里插入图片描述
从医生获得真实世界对话:真实世界的对话是从真实的场景中收集的,医生的反应通常需要不同的能力,包括长期推理和提出问题来指导患者描述自己的症状。然而,这种数据有时过于简洁和口语化。为了解决这一问题,作者利用语言模型来增强和细化基于原始内容的数据,从而生成高质量的真实对话数据集。

通过以上四种方式生成的数据如下:

在这里插入图片描述

基于AI反馈的RL

在监督微调(SFT)阶段,作者引入了一个多样化的数据集,旨在使HuatuoGPT能够模仿医生的询问和诊断策略,同时保持LLM反应的丰富、逻辑和连贯特征。为了进一步使模型的生成偏好与人类需求相一致,建议将强化学习与人工智能反馈相结合,以提高模型响应(response)的质量。此前,OpenAI引入了带有人类反馈的强化学习,以使LLM与人类偏好保持一致,但需要付出大量的时间和人力成本。作者设计了一个新的奖励模型,以迫使模型在不偏离医生诊断的情况下生成信息和逻辑响应。

奖励模型的构建

使用真实的指令和对话作为训练数据,从微调的模型中采样多个响应。对于多回合对话,提供对话历史,以调整模型的响应生成。然后,这些response由LLM(如ChatGPT)进行评分,考虑到信息性、连贯性、对人类偏好的遵守以及基于给定真实医生诊断的事实准确性。评分LLM评估每个响应并分配一个分数。使用这些成对的响应数据来训练奖励模型,使用微调模型作为其主干,以更好地泛化。

在RL过程中,通过对当前策略 π \pi π 对给定query x x x k k k 个不同response { y 1 , … , y k } \left\{y_1, \ldots, y_k\right\} {y1,,yk}进行采样。每个response y i y_i yi被送到奖励模型以得到奖励分数 r R M r_{R M} rRM。为了确保模型不会偏离初始状态 π 0 \pi_0 π0 太远,作者添加了经验估计的KL惩罚项,最终的奖励函数如下: r = r R M − λ K L D K L ( π ∥ π 0 ) r=r_{R M}-\lambda_{K L} D_{K L}\left(\pi \| \pi_0\right) r=rRMλKLDKL(ππ0)其中 λ K L \lambda_{K L} λKL是KL惩罚的超参数, D K L D_{K L} DKL 是KL函数。 λ K L \lambda_{K L} λKL通常设置为0.05。输入查询被消除重复并从剩余的SFT混合数据中采样。这确保了输入的多样性,同时在单轮指令和多轮对话场景中都保留了模型的response偏好。

评估

在评估 HuatuoGPT 的性能表现上,团队成员采用了自动评估人工评估两种方式相互验证,在单轮问答场景和多轮交互式诊断场景中分别进行了评估。

单轮问答

针对单轮问答场景,团队成员精心收集了涵盖 10 个医疗领域意图的 100 个问题,并利用 GPT-4 进行自动评估。具体来说,团队提供了两个模型对同一问题生成回复,并使用 GPT-4 对每个模型的回复进行分析和打分。最终的测试结果显示,相较于基于 LLaMa 和 ChatGLM 的开源中文医疗模型,HuatuoGPT 表现显著优秀(以 HuatuoGPT 为基准)。这一优势得益于 HuatuoGPT 同时使用了从 ChatGPT 蒸馏的数据和真实世界数据进行训练,并借助来自 ChatGPT 和专业医生的混合反馈进行了优化。
在这里插入图片描述

多轮问答

对于多轮问诊场景,团队成员收集了涵盖 20 个科室的 100 个多轮对话进行了评估。评估结果显示,HuatuoGPT 不仅全面优于目前的开源中文医疗模型,而且在大部分科室的表现上均优于 GPT-3.5-turbo,这为 HuatuoGPT 在处理更加复杂的多轮问诊场景中的优异性能提供了有力的证据。
在这里插入图片描述

人工评估

在人工评估方面,团队成员使用了自动评估中的样本进行评估验证。团队成员邀请专业医生为模型的输出结果进行人工评估。下表是单轮问答场景和多轮诊断场景的评估结果。评估结果表明,无论是单轮的人工评测还是多轮的人工评测结果都与自动评估的结果保持了一致,这充分验证了模型性能评估的一致性和可靠性。

单轮对话
在这里插入图片描述
多轮对话
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1322214.html

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

相关文章

JavaSE 排序

目录 1 概念1.1 排序1.2 稳定性 2 常见基于比较排序算法总览3 插入排序3.1 直接插入排序3.1.1 思想3.1.2 实现3.1.3 性能分析 3.2 折半插入排序3.2.1 思想3.2.2 实现3.2.3 性能分析 3.3 希尔排序3.3.1 思想3.3.2 实现3.3.3 性能分析 4 选择排序4.1 选择排序4.1.1 思想4.1.2 实现…

构建可扩展的网校平台:在线教育系统源码设计与架构最佳实践

随着科技的不断发展,在线教育系统在教育领域扮演着越来越重要的角色。本文将深入探讨如何构建一个可扩展的网校平台,重点关注在线教育系统的源码设计和架构最佳实践。 一、引言 在当前信息时代,教育已经超越了传统的教学方式,转…

cleanmymac有必要买吗 macbook空间不足怎么办 清理macbook磁盘空间

大家早上好,中午好,下午好,晚上好。 文章有点长,建议先收藏。 macbook是一款非常受欢迎的笔记本电脑,它拥有优秀的性能和设计,但是也有一个常见的问题,就是磁盘空间不足。如果你的macbook经常…

意外之喜!5款小巧工具助你轻松面对繁忙生活

​ 在繁忙的日常中,简单而巧妙的小工具能够带来意外的惊喜。这五款工具或许正是你所需要的,不妨一试。 1.图片背景移除——PhotoScissors ​ PhotoScissors是一款图片背景移除工具,可以使用人工智能技术自动识别图片的前景和背景&#xff0…

从gitlab上拉代码出现很多修改文件。

问题描述: 从gitlab上拉一个项目,出现以下非常多的已修改文件, 问题解决: Unix/Linux 系统使用的是 LF 用作换行符。Windows 一直使用的 CRLF(即,回车 CR和换行 LF)作为换行符。然而&#xf…

Next.js 学习笔记(四)——数据获取

数据获取 数据获取、缓存和重新验证 数据获取是任何应用程序的核心部分。本页介绍如何在 React 和 Next.js 中获取、缓存和重新验证数据。 有四种方法可以获取数据: 在服务器上,使用 fetch在服务器上,使用第三方库在客户端上,…

Java最全面试题专题---4、并发编程(1)

基础知识 并发编程的优缺点 为什么要使用并发编程(并发编程的优点) 充分利用多核CPU的计算能力:通过并发编程的形式可以将多核CPU的计算能力发挥到极致,性能得到提升方便进行业务拆分,提升系统并发能力和性能&#…

网络游戏需要资质

网络游戏需要资质 介绍一、ICP许可证或者ICP备案二、《网络出版服务许可证》三、网络游戏的出版前置审批四、《网络文化经营许可证》 介绍 前段时间一直在忙着给公司做APP的ICP备案所以一直也没有更新文章,去办这个APP的ICP备案也是踩了些坑,今天来讲一…

安全运营之安全加固和运维

安全运营是一个将技术、流程和人有机结合的复杂系统工程,通过对已有安全产品、工具和服务产出的数据进行有效的分析,持续输出价值,解决安全问题,以确保网络安全为最终目标。 安全加固和运维是网络安全运营中的两个重要方面。 安全…

使用栈的特性实现多位计算器

创建一个栈: //定义一个ArrayStack 表示栈 class ArrayStack2 {private int maxSize; //栈的大小private int[] stack; //定义一个栈private int top -1; //定义一个栈顶指针public ArrayStack2(int size) {maxSize size;stack new int[maxSize];}//栈满public …

黑马头条--day04--文章审核

目录 一.审核 1.流程 2.内容安全第三方接口 3.百度AI审核 3.1首先注册百度云账号,然后完成个人信息认证 3.2开启文本审核和图像审核功能 3.3添加sdk依赖 3.4构建测试类 3.5文本审核 3.6图片审核 3.7对百度云审核的封装 3.7.1在自媒体服务的config目录下面…

【1.8计算机组成与体系结构】磁盘管理

目录 1.磁盘基本结构与存取过程1.1 磁盘基本结构1.2 磁盘的存取过程 2.磁盘优化分布存储3.磁盘单缓冲区与双缓冲区4.磁盘移臂调度算法 1.磁盘基本结构与存取过程 1.1 磁盘基本结构 磁盘:柱面,磁道,扇区。 1.2 磁盘的存取过程 存取时间寻…

C#调用阿里云接口实现动态域名解析,支持IPv6(Windows系统下载可用)

电信宽带一般能申请到公网IP,但是是动态的,基本上每天都要变,所以想到做一个定时任务,随系统启动,网上看了不少博文很多都支持IPv4,自己动手写了一个。 (私信可全程指导) 部署步骤…

原生JS实现组件切换(不刷新页面)

这是通过原生Es6实现的组件切换,代码很简单,原理和各种框架原理大致相同。 创建文件 ├── component:存放组件 │ ├── home1.js:组件1 │ ├── home2.js:组件2 ├── index.html ├── index.js初始化ht…

台湾虾皮本土店铺:如何在台湾虾皮本土店铺开展电商业务

在台湾地区,虾皮(Shopee)是一款备受欢迎的电商平台。虾皮拥有强大的技术团队、丰富的电商经验和对市场的深刻理解。虾皮本土店铺凭借其在出售、物流、回款、售后、仓储等方面的一条龙服务,为广大卖家提供了全方位的保障和支持。如…

VSCode报错插件Error lens

1.点击左侧扩展图标→搜索“error lens”→点击“安装” 2.安装成功页面如下: 3.代码测试一下:书写代码的过程中会出现红色提醒或红色报错 4.另外推荐小伙伴们安装中文插件,学习过程中会比较实用方便,需要安装中文插件的小伙伴请点…

【性能测试】资深老鸟带你,一篇打通负载与压力测试的区别...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 负载测试 是通过…

【lesson17】MySQL表的基本操作--表去重、聚合函数和group by

文章目录 MySQL表的基本操作介绍插入结果查询(表去重)建表插入数据操作 聚合函数建表插入数据操作 group by(分组)建表插入数据操作 MySQL表的基本操作介绍 CRUD : Create(创建), Retrieve(读取),Update(更新)&#x…

2.vue学习(8-7)

文章目录 8.数据绑定9.el与data的2种写法 8.数据绑定 单向数据绑定就是我们学的v-bind的方式,vue对象变了,页面才变。但是页面变了,vue对象不会变。 双向数据绑定需要用v-model,就能实现双向的改变。 注意:不是所有的…

我的4096创作纪念日

机缘 岁月如梭,时光一晃已经在CSDN扎根4096天了。第一次注册CSDN好像还是在2012年,那会还没大学毕业。初入CSDN,只是把他当作自己编程时遇到问题的在线笔记记录而已,没想到无意间还帮助了其他遇到同样问题困扰的同学。而在这4096…