AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


HuatuoGPT,朝向驯服语言模型成为医生
发布日期:2024-07-03 07:47:20 浏览次数: 1761



摘要

在本文中,我们介绍了HuatuoGPT,一个用于医疗咨询的大型语言模型(LLM)。HuatuoGPT的核心方法是在监督微调阶段利用ChatGPT的蒸馏数据和医生的实况数据。ChatGPT的响应通常详细、表达良好且富有信息性,但在许多方面无法像医生那样表现,例如综合诊断。我们认为,医生的实况数据在某种意义上是对蒸馏数据的补充,因为前者可以将蒸馏语言模型驯服得像医生一样表现。为了更好地利用这两种数据的优势,我们训练了一个奖励模型,以使语言模型与这两种数据带来的优点对齐,遵循RLAIF(基于AI反馈的强化学习)的方式。为了评估和基准测试模型,我们提出了一个全面的评估方案(包括自动和人工指标)。实验结果表明,HuatuoGPT在GPT-4评估、人工评估和医学基准数据集的医疗咨询方面取得了开源LLMs中的最先进成果。值得注意的是,通过使用额外的实况数据和RLAIF,蒸馏语言模型(即,HuatuoGPT)在大多数情况下都超过了其教师模型ChatGPT。我们的代码、数据和模型在https://github.com/FreedomIntelligence/HuatuoGPT上公开可用。在线演示可在https://www.HuatuoGPT.cn/获得。

1 引言

医学领域的大型语言模型

医学是人类存在的基石,具有深远的意义。医学领域高度依赖经验知识,经验丰富的医生在许多方面都胜过新手。然而,随着生成式人工智能(AI)系统(如ChatGPT和DALLE)的出现,这些系统也能够从过去的经验和外部来源学习,这为经验驱动型职业带来了变革性的时代。越来越明显的是,智能医学(或称之为“数据驱动型医学”)是一种不可阻挡的趋势,尽管它带来了需要考虑的伦理问题。医学是一项深刻的人类事业,语言在促进临床医生、研究人员和患者之间的互动中扮演着关键角色。巧合的是,人工智能领域出现的大型语言模型(LLMs)正是以语言为驱动的。这为大型语言模型在医学领域的显著贡献提供了巨大的机会。通过弥合医学和大型语言模型之间的鸿沟,我们称之为医学领域的大型语言模型(LLM for Medicine或LLM4Med),大型语言模型能够给人类生活带来变革性的变化。这种影响之一是通过在线方式向全世界的人们提供高质量医疗资源的平等获取机会。这符合互联网时代的初衷,并实现了人工智能的愿望。考虑到医疗资源在国家间甚至在单一国家内部的巨大差异,医学领域的大型语言模型有潜力解决这些不平衡问题,并促进全人类的平等。想象一下,由于医疗资源匮乏、医疗救治不及时或医疗费用高昂,每天在欠发达地区有数千人失去生命,这是令人痛心的。医学领域的大型语言模型有望解决这些问题,为所有人提供更好的医疗服务。

ChatGPT在医学领域是否足够?

简短的回答是“不够”。根据最近的研究[1],观察发现ChatGPT甚至GPT-4在垂直领域如医学中表现出相对较差的性能。这种现象的一个促成因素可能是标注者在医学知识方面的熟练度不足。因此,在这个领域还存在进一步探索和改进的巨大机会。另一方面,在线医学常常呈现出定制化和本地化的挑战。例如,中医与西医在根本上有所不同,印度医学和其他许多医学体系也是如此。然而,作为一个通用语言模型,ChatGPT缺乏广泛的定制能力。此外,将用户的医疗数据托付给私营公司也引发了担忧,强调了私有部署以确保本地数据存储的必要性。开发一个完全开源且具有商业可行性的医学ChatGPT将对个人的福祉大有裨益。

LLM4Med的用例和优点

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

• 成本效益:以在线方式服务多个用户的边际成本并不与服务单个用户的成本成正比。这种可扩展性允许在模型训练完成后以成本效益的方式扩展。

• 减少医院拥挤:最近的大流行病突显了医院过度拥挤的风险,因为许多即使不需要立即医疗治疗的人也寻求线下咨询。通过提供在线替代方案,可以减轻医院的压力,以减轻未来大流行的风险。

• 解决心理障碍:有些人可能因为恐惧或迷信而避免寻求医疗帮助或治疗,在中国这种现象被称为“讳病忌医”。在线聊天平台可能为这些人提供一个更舒适的环境来讨论他们的担忧。

我们在中国的医疗领域大型语言模型实践

众所周知,中国医疗保健不平等是一个重大问题。一线城市居民与小城市和农村地区居民之间的医疗条件差异显著。例如,上海的平均预期寿命大约为82岁,而在贵州等相对经济劣势的地区,预期寿命显著下降到73岁。在这里,我们提出了一个新的中国医疗领域大型语言模型,称为“HuatuoGPT”,以纪念著名的中国医生华佗[3]。与许多以前的从真实世界医疗数据训练的语言模型不同,一个简单的方法是从ChatGPT[2, 3]中提取,因为它可以快速装备一个语言模型,使其能够流畅地聊天并生成格式良好的响应。然而,在医疗领域从ChatGPT中提取是有问题的,因为教师模型(即ChatGPT)存在以下问题:

• ChatGPT在医疗领域,尤其是在中文方面的表现并不理想[1]。• 由于伦理和安全问题,ChatGPT拒绝进行诊断和开药。

• ChatGPT无法像医生那样表现。例如,即使病人的情况对于医疗决策来说不够完整,它也从不提问,而医生通常会要求更多的细节。在这种情况下,ChatGPT给出的是一般性的回应,而不是专业化的回答。• 由于自动回归的性质,ChatGPT在避免虚构信息方面存在困难。

为了克服上述问题,HuatuoGPT的核心方法是在监督微调(SFT)阶段同时利用来自医生的实况数据和来自ChatGPT的蒸馏数据;这两种数据都包括医疗指导数据和医疗对话数据[3]。来自ChatGPT的蒸馏数据用于驯服语言模型,使其遵循医疗指导并流畅地交谈。额外的实况医疗数据不仅向语言模型注入医疗知识,而且还驯服语言模型进行医疗诊断或开药,像医生一样行动并提供准确的信息。实况医疗数据和蒸馏数据之间的互补性将在第2节中进一步讨论。

为了利用这两种数据(即实况数据和蒸馏数据)的优势,同时减轻它们的弱点,我们在SFT阶段之后设计了一个定义良好的基于AI反馈的强化学习(RLAIF)[4]方法。它用于奖励那些不仅对病人友好(从ChatGPT学习到更好的展示质量、内容丰富、信息量大、遵循指示的能力和流畅的聊天),而且像医生一样(从医生那里学习到专业和互动式的诊断)的生成响应。技术上,我们使用LLMs来评分生成响应,根据它们的正确性、丰富性、逻辑一致性和诊断能力,使我们的模型与ChatGPT和医生的优势对齐。

在评估我们模型在医疗咨询中的表现时,我们精心设计了一个涵盖自动和手动评估的评价方案。当使用GPT-4在自动评估中进行评估时,HuatuoGPT在来自CBLUE的一系列100个问题(涉及十个不同的医疗意图)上始终优于现有的中国医疗模型。更令人印象深刻的是,我们的模型在大多数评估案例中超过了GPT-3.5-turbo的表现。对于更复杂的多轮对话评估,我们的HuatuoGPT模型在20个部门中的超过60%的情况下明显优于ChatGPT,展示了我们在融合实况和蒸馏数据以及有效应用强化学习技术方面的专业能力。此外,HuatuoGPT还在CmedQA、webmedQA和Huatuo26M数据集等多个医疗基准上实现了最先进的(SOTA)性能。

为了确保我们评估的完整性和精确性,我们纳入了对我们模型在单轮和多轮对话场景中表现的手动评估。这些手动评估的结果证实了我们自动评估的发现,从而加强了我们的模型性能的可靠性和一致性。

HuatuoGPT的意义

HuatuoGPT的贡献是多方面的:

• HuatuoGPT是第一个使用RLAIF利用实数据和蒸馏数据(包括指导和对话数据)优点的医疗语言模型。

• 这是首批在医疗LLMs中进行系统评估的工作之一。

• 人类评估显示,HuatuoGPT优于现有的开源LLMs和ChatGPT(GPT-3.5-turbo)。其性能最接近于医生。

• 我们在https://github.com/FreedomIntelligence/HuatuoGPT上开源了我们的训练数据、代码、HuatuoGPT模型和奖励模型。

2 动机

2.1 从人类还是从ChatGPT学习?

纯粹从真实世界的对话中训练语言模型是一种常见的做法[5-8]。然而,这种做法存在低质量数据的问题。例如,真实世界对话中的回应可能不具有信息性、简短且表达不清晰。更重要的是,这些数据中的价值观不一致,甚至相互矛盾。与从人类学习相比,纯粹从人类学习通常会导致一个不满意的基于聊天的语言模型,与ChatGPT相比。

图1:医疗咨询对话中ChatGPT回复(左)和医生回复(右)的例子,其中文本从中文翻译成英文。医生提出的问题用蓝色表示,医学诊断用下划线表示。请注意,ChatGPT通常不会对病人提出问题,或像医生那样提供医疗诊断。

最近的研究倾向于从ChatGPT中提取语言模型,无论是通过模仿ChatGPT对单轮指令的回应[12],还是通过与人类互动聊天学习ChatGPT的回应[2]。通过从ChatGPT中提取输出,模型可以迅速获得令人印象深刻的遵循指令的能力和无缝的对话技巧。此外,以其多样性和快速生成而著称的ChatGPT-distilled数据可以覆盖各种医疗对话,包括各种疾病、症状和治疗方式。这种广泛性和多样性极大地提高了模型的预测性能和泛化能力。

2.2 在医学领域中从医生和ChatGPT两者学习

ChatGPT和医生之间的互补性

然而,从ChatGPT中提取可能不适合医学领域的大型语言模型,因为ChatGPT的回应与医生的回应之间存在根本的差距,如图1和表1所示。蒸馏数据的质量可能波动,表现为生成对话中的错误或模糊信息。相比之下,从真实的医患互动中收集的实况数据为实际医疗场景的复杂性提供了不可或缺的视角。它可以准确反映患者的真实意图分布,并包含医生的准确诊断。实况数据的主要优势在于其高度的准确性和专业性。

表1:ChatGPT与医生在各方面的行为差异。我们认为,向ChatGPT和医生学习是互补的。

医生的回应

当咨询医生我们的医疗状况时,他们的回应通常展现出专业性,以满足个性化的咨询。他们擅长询问症状并提供准确的诊断。然而,由于时间限制,他们的回复通常是非正式的、简洁的,有时甚至是不连贯的。我们的初步研究显示,仅从医患互动数据中训练可能不够:1)它无法流畅地遵循多样的指令或聊天;2)回应简短、表达不佳,有时不具有信息性,这对患者来说不够友好。

ChatGPT的回应

另一方面,尽管ChatGPT通常生成信息丰富、表达良好和逻辑严谨的回应,但它通常倾向于列举多种可能性并提供一般性和高层次的建议。由于ChatGPT不提出问题并指导患者描述他们的症状,它缺乏患者输入,这些输入可以用来生成专业的回应。总的来说,它的回应往往缺乏医生所拥有的上下文理解,导致抽象的回应,对患者提供的实质性帮助很少。总的来说,ChatGPT在执行互动诊断方面不像医生那样表现。

2.3 我们的解决方案

考虑到这些挑战,我们建议结合蒸馏数据(来自ChatGPT)和实况数据(来自医生)的优势,如图2所示。目标是驯服医学LLM以表现像医生一样。例如,它不仅应该提供详细、信息丰富和表达良好的内容,而且还应该进行准确和互动的诊断(通常提出澄清性问题)就像医生一样。为此,我们的方法首先在监督微调阶段混合蒸馏和实况数据。然后,我们使用AI反馈的强化学习(RLAIF)来利用这两种数据的优势,同时减轻它们的弱点。

3 方法论

我们的方法侧重于通过两阶段训练策略整合医生和ChatGPT的特征,以提高医疗咨询中回应的质量:SFT混合数据和RLAI反馈。我们首先使用精心挑选的混合数据通过监督微调来训练模型,然后通过AI的反馈来增强生成期望的回应,如图2所示。

表2:跨流行医学模型的数据源和训练方法的比较。

图2:华土GPT的示意图。

3.1 使用混合数据的SFT

在第一阶段,我们使用蒸馏数据和实况数据的混合,利用两种数据的优势赋予模型医生般和患者友好的特性。在每个数据类别中,我们都收集了指导数据和对话数据,以使模型具备遵循指令和互动诊断的能力。

从ChatGPT中蒸馏的指令

我们遵循自指令的工作[13, 12, 3],构建了一套旨在使模型能够遵循用户医疗指令的医疗指导数据。不同之处在于,我们采用自上而下的方式来创建更自然和全面的响应。我们设计了一个分类法来收集或手动创建基于角色和使用案例的种子指令。基于每个角色或使用案例,我们使用自指令[13]分别生成指令。这可以为每个角色或使用案例提供广泛的指令,同时保持足够的指令。最后,我们将所有种子指令混合在一起并执行自指令;这可能有助于生成更多样化的指令。详情请参阅附录A.1。

来自医生的实况指导数据

实况指导数据是从医生和患者之间的问答中衍生出来的。医生的回应具有专业性,相关性强且简洁。因此,我们通过精炼真实的医患问答对来进一步提高单轮指令数据的质量和可靠性。详情请参阅附录A.2。

从ChatGPT中蒸馏的对话

蒸馏对话是通过两个ChatGPT生成的,每个ChatGPT都与一个角色(医生或患者)相关联,使用一个精心设计的提示。首先,我们利用第三方医疗诊断数据库作为生成合成对话数据的有价值来源,该数据库包含了医疗知识和专业性。基于患者的背景和医生的最终诊断,两个ChatGPT被要求逐个生成对话表达。在这些对话中,LLM生成的回应通常具有信息性、详细性、表达良好,并保持一致的风格;格式和信息通常对患者友好。详情请参阅附录A.3。

来自医生的实况对话

实况对话是从真实场景中收集的,其中医生的回应往往需要多样化的能力,包括长程推理和提问以指导患者描述他们的症状。然而,这种类型的数据有时会过于简洁和过于口语化。为了解决这个问题,我们使用语言模型根据原始内容增强和精炼数据,从而获得高质量的实况对话数据集。详情请参阅附录A.3。

表3:混合SFT数据的详细信息。

3.2 使用AI反馈的强化学习

在监督微调(SFT)阶段,我们引入了一个多样化的数据集,旨在使HuatuoGPT能够模仿医生的询问和诊断策略,同时保持LLM响应的丰富性、逻辑性和连贯性。为了进一步调整模型生成的偏好以满足我们的需求,我们提出使用AI反馈的强化学习来提高模型响应的质量。此前,OpenAI引入了人类反馈的强化学习[14],以使LLM与人类偏好对齐,但成本高昂,需要大量时间和劳动力【4】。展示了,通过精心设计的提示,AI能够模仿人类偏好,并为生成的响应给出相对一致的评分。受这些对齐方法的启发,我们设计了一个新的流程,迫使模型生成信息丰富且逻辑严谨的响应,同时不偏离医生的诊断。

奖励模型

我们训练了一个奖励模型,使其与医生和LLM的特点对齐。我们使用真实指令和对话作为训练数据,从我们微调的模型中采样多个响应。对于多轮对话,我们提供对话历史,以使我们的模型响应生成与医生对齐。这些响应然后由LLM(如ChatGPT)评分,考虑信息性、连贯性、遵循人类偏好和基于给定真实医生诊断的事实准确性。评分LLM评估每个响应并分配一个分数。我们使用这些配对的响应数据来训练奖励模型,使用微调的模型作为其基础,以提高泛化能力。

强化学习

在强化学习过程中,我们通过当前策略π从给定查询x中采样个不同的响应。每个响应都被馈入我们的奖励模型,以提供奖励分数。为了确保模型不会偏离初始状态太远,我们添加了经验估计的KL惩罚项,最终的奖励函数如下:

其中是KL惩罚的超参数,是KL惩罚函数。在我们的实验中,设置为0.05。输入查询从剩余的SFT混合数据中去除重复并采样。这确保了输入的多样性,同时保留了模型在单轮指令和多轮对话场景中的响应偏好。

4 实验

在本节中,我们首先介绍训练实现(第4.1节),然后展示评估方式和结果,包括自动评估(第4.2节)和人工评估(第4.3节)。

4.1 训练细节

我们的模型使用PyTorch实现,并采用了Accelerate5和trlx6包,以Bloomz-7b1-mt [15]作为基础架构。7我们利用ZeRO-3 [17]将模型分布在8个A100 GPU上进行训练。在监督式微调过程中,我们将学习率、批大小和最大上下文长度分别设置为2e-5、128和2048。所有模型都训练了3个epochs,并在验证集上表现最好的权重被保存。在强化学习过程中,我们只更新最后两层的参数。总步数为16,000,学习率为8e-6。此外,为了增强模型在通用领域中的对话和指令遵循能力,我们融入了中文指令数据(中文Alpaca数据集[18]和对话数据(ShareGPT8)。这增强了模型在多种对话场景中有效理解和生成响应的能力,并准确遵循不同领域的指令。

4.2 自动评估

4.2.1 医学基准

我们选择了三个现有的中文医学QA数据集作为示例,分别是cMedQA2 [19]、webMedQA [20]和Huatuo-26M [21],并将结果与现有基线进行比较。cMedQA2是一个基于中文医学问题和答案的公开可用数据集,包含108,000个问题和203,569个答案。webMedQA是一个从在线健康咨询网站收集的真实世界中文医学QA数据集,包含63,284个问题。Huatuo-26M [21]是最大的中文医学QA数据集,它包含了来自在线医疗咨询、知识库和百科全书的2600万对QA对。

表4:中国医疗质量保证数据集[21]的基准测试。GPT-3.5-turbo(ChatGPT)和HauttuoGPT为零射击,T5为微调。

4.2.2 使用GPT4评估

我们对不同意图的单轮问题和来自不同部门的 多轮对话进行了自动化评估,以观察模型在不同场景下的表现。

评估数据集

对于单轮问题,我们从中国生物医学语言理解评估 (CBLUE [22])10 中的基于知识的通用自动知识提取查询意图分类 (KUAKE-QIC) 验证集中提取了代表 10 个意图(疾病诊断、病因分析、治疗方案、医疗建议、指标解释、疾病描述、后果描述、预防措施、疗效、医疗费用)的 100 个问题。KUAKE-QIC 是从搜索引擎查询中收集的,这使得它适合于单轮问题。为了过滤掉噪声数据,这些问题最初由 ChatGPT 评分,并进行了人工筛选过程,以选择较高质量的候选问题作为测试集。对于多轮问题,我们使用了[8]中的患者病例。我们选择了 20 个科室,每个科室随机抽取 5 个患者病例,总共得到了 100 个真实患者病例。这些病例被提供给 ChatGPT,它扮演患者的角色,与每个医生模型互动以获得诊断结果。

评估方面和指标

我们使用 GPT-4 作为裁判员来审查模型输出的质量。我们提示它考虑医生般的语言、症状询问能力、治疗建议和处方的效果和可靠性,以及对患者的帮助程度。给定问题以及两个模型对应的答案,GPT-4 被要求首先比较每个输出的优点并分析对患者的帮助程度,然后请求它分别为每个响应提供评分。这样,我们可以得到每个模型对比对的 100 个问题的评估分数。我们计算所有问题的平均分数,并计算每个对比模型的性能比率(即对比模型的整体评分除以比较对中的 HuatuoGPT 的评分)。

基线

我们主要将 HuatuoGPT 与两个最受欢迎的通用模型 ChatGPT 和 GPT4 11 以及两个最具代表性的开源中文医疗大型语言模型:BenTsao(从 LLaMA 调整)12、DoctorGLM(从 ChatGLM 调整)13 进行比较。对于单轮问题评估,我们与所有提到的四个模型进行比较。对于多轮对话评估,由于 GPT-4 的引用限制,我们只将我们的模型与 DoctorGLM 和 GPT-3.5-turbo 进行比较。我们报告了所有模型在所有单轮问题和多轮对话上的性能比率。

表5:每个类别对GPT-4审查的100个单回合问题的得分和每个模型对的总体得分。

表6:GPT-4回顾的100个多回合对话中每个类别的得分和每个模型对的总体得分。

结果

对于单轮问题的评估,所有模型在每个类别中的性能结果如表5所示。每个类别中模型间的比较如图3所示,它们整体性能的比较如图4所示,其中将HuatuoGPT的性能设置为1.0。根据GPT-4的评估,HuatuoGPT在所有类别中都比BenTsao和DoctorGPT表现更好。与GPT-3.5-turbo相比,HuatuoGPT在三个类别(指标解释、疾病诊断和医疗费用)中表现更佳,在两个类别(疗效和疾病描述)中表现相似。然而,HuatuoGPT在几乎所有类别中仍然不如GPT-4,只在两个类别(疗效和医疗费用)中达到了与GPT-4相似的性能。对于多轮对话的评估,情况类似,HuatuoGPT在超过60%的案例中总体性能超过了GPT-3.5-turbo。每个类别以及总体性能的比较分别显示在表6、图5和图6中。

图3:GPT4对100个单轮问题的模型性能比,各类别评审。华土gpt的性能设置为1.0。

4.3 人工评估

4.3.1 评估数据集和指标

我们使用了100个KUAKE-QIC问题(与自动化评估中使用的相同)作为单轮问题评估的测试集,并从自动化评估中使用的100个测试案例中随机抽取了50个患者病例用于多轮对话的人工评估。在HuatuoGPT的人工评估中,我们认为特别是在医疗咨询和药物处方方面,应该考虑以下三个方面的因素,并将它们作为评估的指导原则:

诊断准确性

这一方面评估模型在诊断患者症状时的准确性和全面性。评估者提供一组医疗病例或症状描述,并评估模型的诊断的正确性、相关性和合理性。可以与医疗专业人员的评估进行比较,以确保模型的准确性。治疗建议准确性。这一方面评估模型对患者治疗建议的准确性和适当性。评估者提供一组医疗病例或症状描述,并评估模型的治疗建议是否与医疗知识以及实际应用中有效且可靠地符合患者的主要病情和问题。

图4:GPT-4回顾了100个单轮问题的整体模型性能比率。华土gpt的性能设置为100%。

药物知识和处方准确性

这一方面评估模型对药物的理解及其处方建议的准确性。评估者提供一组医疗病例或症状描述,并评估根据医疗知识和指南,药物推荐的准确性和可靠性。

我们向医生提供了上述考虑因素,使他们能够调整他们的评估准则。这允许对同一场景下不同模型的输出进行细致的比较。

在评估过程中,医疗专家被要求对不同响应提供评估。每位医生仅负责评估一对模型的输出,确保每条响应数据都被严格地打乱和匿名化。与自动评估一致,我们在单轮问题评估中选择BenTsao、DoctorGLM、ChatGPT和GPT4作为基线,在多轮对话评估中选择DoctorGLM、ChatGPT作为基线。

4.3.2 结果

如表7所示,HuatuoGPT在对抗BenTsao、DoctorGLM时表现非常出色,甚至略微超过了ChatGPT,这突显了其诊断准确性、治疗建议和药物知识的稳健性。多轮评估的结果显示在表8中,这表明HuatuoGPT在扩展对话语境中表现卓越,通过与DoctorGLM的86%胜率和对ChatGPT的58%胜率得到了证明。这表明HuatuoGPT在患者咨询场景中具有更突出的交互式诊断能力。

表7:在单轮医疗咨询中对模型性能的人工评估。

图5: GPT4审查的100个多轮对话中每个类别的模型性能比率。HuatuoGPT的性能设置为1.0。

表8: 在多轮医疗咨询中模型性能的人工评估。

5讨论

5.1 消融研究

在本节中,我们探讨了两种数据类型对模型的影响。我们训练了两个不同的模型,分别是HuatuoGPT(使用真实数据)和HuatuoGPT(使用蒸馏数据),分别使用真实世界的数据和蒸馏数据。我们彻底比较了两个模型对同一组问题的响应变化,如表9所示。HuatuoGPT(使用真实数据)倾向于向患者提出澄清性问题,表现如预期,类似于医生。然而,一个小的缺陷是响应简短,内容看起来不够有条理。另一方面,HuatuoGPT(使用蒸馏数据)生成了有条理、详细且信息丰富的内容。尽管如此,它的响应更侧重于提供建议,而不是做出诊断决定。因此,HuatuoGPT(使用蒸馏数据)更像是一个“非医生朋友”,而不是医生。为了评估RLAIF(辅助信息反馈的强化学习)的影响,我们还比较了两个模型:默认模型HuatuoGPT和一个变种模型HuatuoGPT(无RLAIF),后者不使用RLAIF。值得注意的是,后者模型HuatuoGPT(无RLAIF)没有向患者提出额外问题。这可能归因于其训练数据可能偏向于ChatGPT数据,而真实世界的数据可能被忽视了。相比之下,我们的默认模型HuatuoGPT使用RLAIF,可以通过向患者提出后续问题来获得更准确的诊断,像医生一样发挥作用。

图6: GPT-4审查的100个多轮对话中模型的总体性能比率。HuatuoGPT的性能设置为100%。

5.2 局限性

我们强调基于生成的医疗咨询所关联的潜在风险。主要的担忧在于验证生成内容的准确性和正确性方面的挑战。在医疗领域,误导信息的传播可能会带来严重的伦理影响。尽管生成式问答(QA)已经显示出前景,特别是像ChatGPT这样的模型的取得的成功,但它们在生物医学领域的实际部署尚未完全准备就绪。虽然当前的生成方法具有巨大的潜力,但在将它们部署到实际应用之前,行使谨慎是重要的。需要进一步的研究和发展来完善这些模型,提高它们的准确性,并建立强大的准确性检查和错误更正机制。只有通过仔细审查和不断改进,我们才能最小化基于生成的医疗QA所关联的风险和伦理问题。

6 在医学领域的LLMs(大型语言模型)

医学领域的语言模型一直是研究者的关注焦点。早期的模型主要是基于GPT-2系列模型在域内继续进行预训练。BioMedLM14是一个针对生物医学的特定领域的大型语言模型,由27亿个GPT-2令牌训练而成。它是在Pile数据集的PubMed摘要和PubMed Central部分上进行训练的,该数据集包含约500亿个令牌,涵盖了大约1600万篇摘要和500万篇全文文章的生物医学文献。同样,BioGPT [23]是一个中型的GPT-2模型,它在从官方PubMed网站收集的医疗数据上进行预训练。对于下游任务,它使用软提示进行微调训练。

最近,许多努力尝试使用指令微调来增强大型语言模型(>6B)的医学咨询能力,如表2所示。MEDALPACA[24]16是一个在Medical Meadow上训练的LLaMA模型,包含两大类,一是以指令调整格式重新格式化的已建立的医学NLP任务集合,二是对各种互联网资源的爬取。ChatDoctor [25]17也是一个在HealthCareMagic-100k数据集上基于LLaMA模型训练的医学LLM。HealthCareMagic-100k数据集包含来自在线医疗咨询网站的10万个真实世界的患者-医生对话。ChatDoctor通过访问实时和权威信息以及基于诸如Wikipedia等数据库回答患者问题,从而具有自主知识检索能力,以提高模型响应的准确性。Baize-healthcare18是Baize的一个变体,它在医疗数据(Quora Dialogs和Medical Dialogs)上进行了微调。与之相关的技术报告尚未发布,因此只能提供有限的细节,因为只发布了模型权重。Visual Med-Alpaca19在LLaMA-7B模型上使用由模型生成的数据集进行微调,该数据集包含54,000个经过手工筛选的生物医学示例用于指令调整目的,另外还在Radiology Objects in Context (ROCO)数据集上微调了Microsoft GIT模型,以融入视觉模态。最近,Med-PaLM2 [26]发布了,它是基于PaLM2并在MultiMedQA上进行微调,用于专家级别的医学问答。

表9:来自四个模型的样本响应。

表10:流行的医学语言模型、培训数据源和模型规范。

在中国,DoctorGLM [27]20是一个基于ChatGLM训练的中文医学LLM,它在多个医学QA数据集上进行训练。它通过翻译利用了ChatDoctor的训练数据,并融入了涵盖五个部门QA和MedDialog聊天数据的中文医学对话作为训练数据的一部分。BenTsao [28]21是一个在超过8K条指令上训练的知识增强型中文医学LLM。这些指令是通过ChatGPT API从CMeKG 22生成的。MedicalGPT-zh [29]是一个基于ChatGLM-6B LoRA的中文医学通用模型,带有16位指令微调。训练该模型的数据库来源于中文医学知识问答对和来自28个医学部门的临床指南文本。

7 结论

总之,本文提出了一种全面的方法,通过利用互补数据源并融入人工智能模型的反馈,通过强化学习来训练一个可靠且具有对话能力的医疗保健模型。所提出的方法解决了仅依赖真实或合成数据的局限性,并允许创建一个结合了两种数据源优势的模型。通过不断根据反馈优化其响应,模型可以在保持医疗应用所需的可靠性的同时,提高其对话能力。在这一领域进一步研究对于推进医疗保健领域的人工智能和改善患者结果具有重大潜力。

A 方法论细节

A.1 来自ChatGPT的蒸馏指令

遵循以前的工作,我们使用自我指令从ChatGPT生成指令,我们手动构建的医疗种子指令,以及下面的提示:

你被要求设计20个不同的<角色,指令,输入>三元组,第一行是角色,第二行是该角色希望GPT帮助他提升生活工作效率的指令,第三行是该指令对应的输入。

要求:

1.角色可以很具体,需要跟医疗场景有关,如果是医生的话,甚至可以细化到医疗科室,例如“呼吸内科医生”。

2.每个指令的描述应该是多样化的,指令的类型应该是多样化,动词尽量不要重复,以最大限度地提高多样性。每个指令应该是GPT语言模型能够完成的事情,不能生成绘制图片,不能阅读音频和网页链接; 指令应该是1到2句话的长度,既可以是命令句,也可以是疑问句;指令通常有一个占位符,placeholder,例如“下面这个”或者“某个”,“输入”字段会指定。

3.输入应该为指令的具体例子,提供真实的实质性内容,因为指令可能很空洞,需要用一个具体的输入来限定,输入不能是只有一个链接或者文件名,或者没有特指的“一篇论文”,而应该是具体的内容。输入最好不要超过200字。

4.角色、指令和输入大多是中文的,角色、指令和输入都不要重复。指令是必须需要,请尽量提供角色和输入。输入可以为空

20个三元组的清单如下:

翻译如下:

You are asked to design 20 different triplets of<characters, instructions,input>. The first line is the character, the second line is the instructionthat the character wants GPT to help him improve his work efficiency, andthe third line is the corresponding input for the instruction.

requirement:

1.The role can be very specific and needs to be related to the medical scene.If it is a doctor, it can even be refined to the medical department,such as "respiratory physician".

2.The description of each instruction should be diverse, and the types of instructions should be diverse. Verbs should be avoided as much aspossible to maximize diversity. Each instruction should be somethingthat the GPT language model can accomplish, unable to generate anddraw images, unable to read audio and webpage links; Instructionsshould be 1-2 sentences in length, which can be either commandsentences or interrogative sentences; Instructions usually have aplaceholder, placeholder, such as "this below" or "some", and the"input" field will be specified.

3.The input should be a specific example of the instruction, providingreal substantive content, as the instruction may be empty and need tobe qualified with a specific input. The input should not be just alink or file name, or an unspecified ’paper’, but rather specificcontent. It is recommended to input no more than 200 words.

4.The roles, instructions, and inputs are mostly in Chinese, and the roles,instructions, and inputs should not be repeated. Instructions aremandatory, please provide roles and inputs as much as possible.

Input can be empty

The list of 20 triples is as follows:

与原来的自指令不同,我们生成了角色增强指令,并将用于生成以下提示的输出。

假设你是一名经验丰富的[Medical Role],会对患者给予非常耐心且全面的回答,并且语气温柔亲切,非常受患者喜欢。如果患者没有提供给你足够的信息判断,你会反问他相关问题。而且在诊断最后,你还会给予他一些额外的建议。如果患者提问:

{问题}

那么,你会回答:

翻译内容如下:

Assuming you are an experienced [Medical Role], you will provide verypatient and comprehensive answers to patients, and your tone will begentle and friendly, which is very popular with patients. If thepatient does not provide you with enough information to make ajudgment, you will ask them relevant questions. And at the end of thediagnosis, you will also give him some additional advice. If thepatient asks:

{Question}

you will answer:

A.2 来自医生的真实世界指令

在实验中,我们从网络收集真实世界的问答数据,并抽样一组高质量的问答对用于训练。每一对问答都由LLMs进行精炼。提示如下:

<患者问题>:{Patient_Question}

<回复参考>:{Doctor_Response}

你是HuatuoGPT人工智能模型,基于患者的问题,请你参考回复然后对患者的问题给出回复,说话方式要像医生,并且语气温柔亲切,对患者的询问要回复的更详细更有帮助,在必要时如果无法明确诊断患者的疾病,可以询问患者更多的信息。

<HuatuoGPT回复>:

The translation is as below:

<Patient Question>:{Patient_Question}

<Response Reference>:{Doctor_Response}

You are HuatuoGPT AI model, based on the patient’s question, please referto the response and then give a reply to the patient’s question, speak likea doctor and have a gentle and kind tone, reply to the patient’s query in amore detailed and helpful way, and ask the patient for more informationif necessary if you cannot clearly diagnose the patient’s disease.

<HuatuoGPT Response>:

A.3 与医生的真人对话

我们展示了用于患者LLM和医生LLM的提示。患者LLM的提示:

你是一名患者,下面是你的病情,你正在向HuatuoGPT智能医生咨询病情相关的问题,请记住这是一个多轮咨询过程,每次询问要精炼一些,第一次询问要尽可能简单点、内容少一点。

{medical_case}

当你认为整个问诊应该结束的时候请说:再见

Prompt for doctor LLM:

你是一名经验丰富的医生,会对患者给予非常耐心且全面的回答,说话方式像医生,并且语气温柔亲切,非常受患者喜欢,对患者的询问要回复的更详细更有帮助。如果患者没有提供足够的信息用以诊断,你要反问他相关问题来获取更多信息来做出诊断,做出诊断后你还会给予他一些额外详细的建议。注意,你只能接收患者的描述没法看到图片之类的材料或附件。

如果无法做出明确的诊断,请询问出患者更多的病情信息,最后给出的诊断结果可以是:

{doctor_diagnosis}

A.4关于获取人工智能反馈的提示

以下是聊天历史:[历史]{history}[历史结束]这是最后的问题和标准答案:[问题]{query}[问题结束][标准答案]{doctor_response}[标准答案结束]基于聊天历史、用户问题和标准答案,请根据准确性、简洁性和与标准答案的相似性,对以下两个AI响应进行1到10的评分。请以以下格式提供评分:"评分A:[分数];评分B:[分数]"。[助手A]{Response_A}[助手A结束][助手B]{Response_B}[助手B结束]


53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询