掌桥专利:专业的专利平台
掌桥专利
首页

一种智能医疗助手的实现方法及相关装置

文献发布时间:2024-04-29 00:47:01


一种智能医疗助手的实现方法及相关装置

技术领域

本申请涉及人工智能技术领域,特别是涉及一种智能医疗助手的实现方法及相关装置。

背景技术

随着人工智能的发展,在医疗信息化领域,为了降低线上人工服务的成本,提高服务效率,AI医疗助手(AI Medical Assistant),又称智能医助,逐渐在互联网医院、各大医院患者线上服务端、线上药房等场景中得到了广泛应用。

为了保证AI医疗助手的回复准确性,现有工作通常采用面向任务的对话模型。面向任务的对话模型要求为患者提供的医疗服务事先要明确范围,目前主要的医助服务包括症状初诊断、用药指导、医生推荐、科普文章推荐等服务。这种方式虽然能对服务范围内的特定问题给出比较准确的回复,但一旦超出这一范围则无法向患者输出有价值的回复语句,输出的回复语句常常模板化、趋同化且易出现过于专业的医学术语,导致回复语句的可读性较差;同时在患者刚开始使用或者服务需求不明确的情况下,这种方式很难提供较好的用户对话体验,整体可交互性受到极大限制。随着AI医疗助手的广泛使用,患者对线上医疗服务的种类和要求越来越高,产品在保证回复准确性的前提下,开始追求与真人对话相近的体验,以吸引更多的客户使用,这就对智能医疗助手的可交互性提出了更高的要求。

大语言模型的成熟使得开放式对话系统在可读性和可交互性上已经达到了AI智能助手的应用级别要求。在医疗领域,基于大语言模型的开放式AI医疗助手已经成为了近些年医疗人工智能研究的一大热点。大语言模型很好地改善了患者的使用体验,可以实现支持开放式对话的智能医助。但为了达到医疗领域对回复准确性的要求,这些模型不能只在医患对话数据上进行简单的微调,而是需要针对特定医疗服务的大量数据在大规模计算机资源在上对大语言模型进行再训练,同时还需要医疗专家团队对输出结果进行强化学习校正。这种规模的训练需要耗费大量的金钱成本和人力成本,一般的开发团队和医疗机构都难以承受。

由此,如何能以较低的成本,在获得大语言模型对话的可读性、智能医疗助手可交互性的同时,还能保证智能医疗助手在特定医疗服务上的对话回复准确性,成为一个需要解决的问题。

发明内容

基于上述问题,本申请提供了一种智能医疗助手的实现方法及相关装置。首先,通过直接使用已有的开源医疗大语言模型,而非对大语言模型进行再训练,以确保能以较低成本来提升对话系统可交互性;同时,在特定医疗服务上仍然使用面向任务对话的系统,以保证在该服务上的对话回复具有很高的准确性。

本申请实施例公开了如下技术方案:

第一方面,本申请实施例提供了一种智能医疗助手的实现方法,所述方法包括:

获取历史对话信息以及当前用户输入语句;

在第一时段内,将所述历史对话信息以及所述当前用户输入语句输入基于大语言模型的第一智能医助模块,所述第一智能医助模块输出响应于所述当前用户输入语句的第一回复语句;所述第一时段为输出第一任务转换语句之前的时段;

将所述历史对话信息以及所述当前用户输入语句输入基于意图监测模型的转换模块,所述转换模块识别用户的第一目标意图,基于所述第一目标意图输出第一任务转换语句;

在第二时段内,将所述第一目标意图、所述历史对话信息以及所述当前用户输入语句输入基于面向任务的对话模型的第二智能医助模块,所述第二智能医助模块输出响应于所述当前用户输入语句的第二回复语句;所述第二时段为输出第一任务转换语句之后的时段。

可选地,所述在第一时段内,将所述历史对话信息以及所述当前用户输入语句输入基于大语言模型的第一智能医助模块,所述第一智能医助模块输出响应于所述当前用户输入语句的第一回复语句,包括:

在第一时段内,将所述历史对话信息以及所述当前用户输入语句输入基于大语言模型的第一智能医助模块;

所述第一智能医助模块将所述当前用户输入语句填充至预设的状态跟踪提示词模板,得到提示词prompt;

所述第一智能医助模块中的多个大语言模型分别生成响应于所述当前用户输入语句的直接回复语句,以及响应于所述提示词prompt的状态跟踪回复语句;

抽取所述状态跟踪回复语句中的关键信息,得到第一历史对话信息;

通过所述第一智能医助模块中预先训练的回复选择器,从多个直接回复语句中选择最优项作为第一回复语句;

输出所述第一回复语句。

可选地,所述在第二时段内,将所述第一目标意图、所述历史对话信息以及所述当前用户输入语句输入基于面向任务的对话模型的第二智能医助模块,所述第二智能医助模块输出响应于所述当前用户输入语句的第二回复语句,包括:

在第二时段内,将所述第一目标意图、所述历史对话信息以及所述当前用户输入语句输入第二智能医助模块;所述第二智能医助模块包括基于预定义流程的任务对话模型以及基于自然语言理解与生成的任务对话模型;

基于预先设定的目标意图与预定义对话流程的对应关系,查找所述第一目标意图对应的预定义对话流程;

若存在与所述第一目标意图对应的预定义对话流程,则所述基于预定义流程的任务对话模型根据所述第一目标意图对应的预定义对话流程、第一目标意图、历史对话信息以及当前用户输入语句,输出响应于所述当前用户输入语句的第二回复语句;

若不存在与所述第一目标意图对应的预定义对话流程,则所述基于自然语言理解与生成的任务对话模型根据第一目标意图、历史对话信息以及当前用户输入语句,输出响应于所述当前用户输入语句的第二回复语句。

可选地,所述方法还包括:

在第二时段内,响应于所述第一目标意图以及历史对话信息,检索专科知识图谱,得到第一关联知识;

所述将所述第一目标意图、所述历史对话信息以及所述当前用户输入语句输入基于面向任务的对话模型的第二智能医助模块,所述第二智能医助模块输出响应于所述当前用户输入语句的第二回复语句,包括:

将所述第一目标意图、所述历史对话信息、所述第一关联知识以及所述当前用户输入语句输入基于面向任务的对话模型的第二智能医助模块,所述第二智能医助模块输出响应于所述当前用户输入语句的第二回复语句。

可选地,所述方法还包括:

在第二时段内,获取用户标识;基于所述用户标识检索预先配置的病例库,得到与所述用户标识对应的用户信息;

所述将所述第一目标意图、所述历史对话信息以及所述当前用户输入语句输入基于面向任务的对话模型的第二智能医助模块,所述第二智能医助模块输出响应于所述当前用户输入语句的第二回复语句,包括:

将所述第一目标意图、所述历史对话信息、所述用户信息以及所述当前用户输入语句输入基于面向任务的对话模型的第二智能医助模块,所述第二智能医助模块输出响应于所述当前用户输入语句的第二回复语句。

可选地,所述基于所述第一目标意图输出第一任务转换语句之后,所述方法还包括:

所述转换模块响应于任务切换请求,基于历史对话信息以及当前用户输入语句确定用户的第二目标意图;基于所述第二目标意图,输出第二任务转换语句;输出所述第二任务转换语句后的时段为第三时段;

在所述第三时段内,将所述第二目标意图、历史对话信息以及当前用户输入语句输入所述第二智能医助模块,所述第二智能医助模块输出响应于当前用户输入语句的第二回复语句。

可选地,所述基于所述第一目标意图输出第一任务转换语句之后,所述方法还包括:

所述转换模块响应于任务结束请求,输出第三任务转换语句;输出所述第三任务转换语句后的时段为第四时段;

在所述第四时段内,将历史对话信息以及当前用户输入语句输入基于大语言模型的第一智能医助模块,所述第一智能医助模块输出响应于当前用户输入语句的第一回复语句。

第二方面,本申请实施例提供了一种智能医疗助手的实现装置,所述装置包括:第一智能医助模块,转换模块以及第二智能医助模块;

所述第一智能医助模块,用于在第一时段内,获取历史对话信息以及当前用户输入语句;基于所述历史对话信息以及所述当前用户输入语句,输出响应于所述当前用户输入语句的第一回复语句;所述第一时段为输出第一任务转换语句之前的时段;

所述转换模块,用于获取所述历史对话信息以及所述当前用户输入语句;基于所述历史对话信息以及所述当前用户输入语句,识别用户的第一目标意图,基于所述第一目标意图输出第一任务转换语句;

所述第二智能医助模块,用于在第二时段内,获取所述第一目标意图、所述历史对话信息以及所述当前用户输入语句;基于所述第一目标意图、所述历史对话信息以及所述当前用户输入语句,输出响应于所述当前用户输入语句的第二回复语句;所述第二时段为输出第一任务转换语句之后的时段。

第三方面,本申请实施例提供了一种智能医疗助手的实现设备,所述设备包括:存储器和处理器;

所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;

所述处理器用于根据所述程序代码执行第一方面中任一实施方式所述的智能医疗助手的实现方法的步骤。

第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当所述计算机程序在智能医疗助手的实现设备上运行时,所述智能医疗助手的实现设备执行第一方面中任一实施方式所述的智能医疗助手的实现方法的步骤。

相较于现有技术,本申请具有以下有益效果:

本申请实施例提供了一种智能医疗助手的实现方法,该方法包括:获取历史对话信息以及当前用户输入语句;在第一时段内,将历史对话信息以及当前用户输入语句输入基于大语言模型的第一智能医助模块,第一智能医助模块输出响应于当前用户输入语句的第一回复语句;第一时段为输出第一任务转换语句之前的时段;将历史对话信息以及当前用户输入语句输入基于意图监测模型的转换模块,转换模块识别用户的第一目标意图,基于第一目标意图输出第一任务转换语句;在第二时段内,将第一目标意图、历史对话信息以及当前用户输入语句输入基于面向任务的对话模型的第二智能医助模块,第二智能医助模块输出响应于当前用户输入语句的第二回复语句;第二时段为输出第一任务转换语句之后的时段。由此,在智能医疗助手工作的过程中,使基于大语言模型的第一智能医助模块与基于面向任务的对话模型的第二智能医助模块相结合,融合了大语言模型和面向任务的对话模型各自在可交互性和准确性上的优点,先采用第一智能医助模块与用户对话,以大语言模型为交互前端,增强了医疗服务问答的可交互性,提升了患者使用线上医疗服务的体验;在识别出用户的第一目标意图后,转为采用第二智能医助模块与用户对话,相比于训练大语言模型所需要耗费的巨额机器和人力成本,面向任务的对话模型既可以满足对回复语句准确性的要求,又不需要高昂的成本来对其进行再训练,从而提供了低开发成本、高可交互性和高准确性的智能医疗助手的实现方法。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的一种智能医疗助手的实现方法流程图;

图2为本申请实施例提供的第一智能医助模块结构示意图;

图3为本申请实施例提供的一种状态跟踪提示词模板;

图4为本申请实施例提供的大语言模型提示词prompt生成器输出列表示意图;

图5为本申请实施例提供的一种第一目标意图识别过程示意图;

图6为本申请实施例提供的一种预定义目标意图示意图;

图7为本申请实施例提供的一种预定义流程示意图;

图8为本申请实施例提供的一种基于预定义流程的任务对话模型的运行效果示意图;

图9为本申请实施例提供的一种基于自然语言理解与生成的任务对话模型的结构示意图;

图10为本申请实施例提供的一种自然语言理解模型的输出内容示意图;

图11为本申请实施例提供的另一种智能医疗助手的实现方法流程图;

图12为本申请实施例提供的一种强化学习过程示意图;

图13为本申请实施例提供的一种强化学习奖励机制示意图;

图14为本申请实施例提供的一种基于奖励进行强化学习训练的原理图;

图15为本申请实施例提供的一种A3C算法结构示意图;

图16为本申请实施例提供的一种智能医疗助手的实现装置示意图;

图17为本申请实施例提供的一种智能医疗助手的实现设备结构图。

具体实施方式

本申请提供的一种智能医疗助手的实现方法及相关装置可用于人工智能领域,上述仅为示例,并不对本申请提供的一种智能医疗助手的实现方法及相关装置的应用领域进行限定。

本申请说明书和权利要求书及附图说明中的术语“第一”、“第二”、“第三”以及“第四”等是用于区别不同对象,而不是用于限定特定顺序。

在本申请实施例中,“作为示例”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“作为示例”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“作为示例”或者“例如”等词旨在以具体方式呈现相关概念。

本申请的实施方式部分使用的术语仅用于对本申请的具体实施例进行解释,而非旨在限定本申请。

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

参见图1,该图为本申请实施例提供的一种智能医疗助手的实现方法流程图,该方法包括:

S101:获取历史对话信息以及当前用户输入语句。

本申请实施例中,通过由第一智能医助模块、转换模块以及第二智能医助模块组成智能医疗助手,历史对话信息以及当前用户输入语句均输入至智能医疗助手。

可选地,历史对话信息可以包括基于历史用户输入语句以及历史回复语句提取的包括例如名称、类型以及时长等的第一历史对话信息,以及包括用户操作信息以及槽值信息等的第二历史对话信息;也可以包括历史用户输入语句以及历史回复语句。

可以理解的是,本申请实施例所实现的智能医疗助手虽然主要面向患者,但非患者身份的其他用户,例如医生或测试人员等,也可以向该智能医疗助手输入用户输入语句。

S102:在第一时段内,将历史对话信息以及当前用户输入语句输入基于大语言模型的第一智能医助模块,第一智能医助模块输出响应于当前用户输入语句的第一回复语句。

具体地,第一时段为基于意图监测模型的转换模块输出第一任务转换语句之前的时段。

示例性地,第一智能医助模块由多个大语言模型、大语言模型提示词prompt生成器以及回复选择器组成。其中,大语言模型可以包括例如Chatdoctor、DoctorGPT以及MedicalGPT等开源英文医疗大语言模型以及例如Huatuo、MING以及QiZhenGPT等开源中文医疗大语言模型。

参见图2,该图为本申请实施例提供的第一智能医助模块结构示意图,在第一时段内,历史对话信息以及当前用户输入语句将输入基于大语言模型的第一智能医助模块;第一智能医助模块中的大语言模型提示词prompt生成器可以将当前用户输入语句填充至例如图3所示的预设的状态跟踪提示词模板,得到提示词prompt。其中,状态跟踪提示词模板可以分为三个部分:第一部分是用户输入语句,用双引号隔离,以便与其他部分分开;第二部分是任务描述,描述需要大语言模型执行的任务,例如:识别出文中的症状名称、症状时长、疾病名称、疾病时长、药品名称等;第三部分是具体实例列举,也就是大语言模型中的shot,比如一个实例就叫one-shot,两个实例就叫tow-shot,没有实例就叫zero-shot。任务描述和具体实例列举的内容填充可以根据不同开源大语言模型的具体情况来进行设置。

参见图4,该图为本申请实施例提供的大语言模型提示词prompt生成器输出列表示意图。大语言模型提示词prompt生成器可以先将历史对话信息以及当前用户输入语句输入各个大语言模型,得到响应于当前用户输入语句的多个直接回复语句,其中,历史对话信息的参与可以使模型能够更好地理解当前对话的背景和情境,提供更准确的回答,并确保对话的连贯性;而后将得到的提示词prompt输入各个大语言模型,得到响应于提示词prompt的多个状态跟踪回复语句。大语言模型提示词prompt生成器可以抽取状态跟踪回复语句中的关键信息,得到第一历史对话信息;例如,可以从状态跟踪回复语句中抽取症状名称、症状时长、疾病名称、疾病时长、药品名称等信息。

最后,通过第一智能医助模块中预先训练的回复选择器,可以从多个直接回复语句中选择最优项作为第一回复语句,并向用户输出第一回复语句。具体地,回复选择器可以接收由大语言模型Prompt生成器得到的直接回复列表,其中,直接回复列表包含所有医疗大语言模型的回复结果;而后选择最优回复结果返回给用户,作为第一智能医助模块与用户的一次交互。

具体地,回复选择器可以利用强化学习机制来进行训练,通过收集整个对话过程的反馈结果来优化模型,而不只是根据当前结果来确定应该选择哪个回复。如果中间某些对话难以选择,也可以通过获取用户对输出的第一回复语句的满意度来间接获得奖励,以对回复选择器的选择机制进行优化。在最初的冷启动阶段,可以先人工标注一部分数据来训练一个简单的分类模型,进行自动回复选择,然后通过强化学习机制来逐渐优化结果;也可以随机选择一个结果回复,然后通过强化学习机制来逐渐优化结果。

以图4中的直接回复列表为例,第一智能医助模块中集成了3个开源医疗大语言模型,接收到当前用户输入语句后,大语言模型1给出的回复语句过于简单和笼统,而大语言模型2和大语言模型3给出的回复语句更像是医生,因此回复选择器可以在大语言模型2和大语言模型3给出的回复语句中进行选择。其中,大语言模型2的回复语句提供了手抖的原因,偏向于医学科普,而大语言模型3的回复语句则进一步询问用户的其他症状,以明确诊断。因此,如果第一智能医助模块的能力是偏医学科普,则回复选择器将选择大语言模型2的回复语句,如果第一智能医助模块的能力是偏问诊,则回复选择器将选择大语言模型3的回复语句。

本申请实施例中提供的第一智能医助模块中采用了多个开源的医疗大语言模型,而开源的医疗大语言模型能够较为准确地理解用户所表达的内容以及捕捉用户输入语句中的关键信息,从而生成可读性接近人类的回复语句。由此,基于大语言模型的第一智能医助模块不仅可以提供较高的可交互性,而且由于仅在未识别出用户目标意图的情况下使用第一智能医助模块,无需针对特定医疗服务为患者提供医疗信息和服务,因此对其回复语句的准确性要求较低,不必对其中开源的大语言模型进行额外的再训练,需要耗费的训练成本也较低。

S103:将历史对话信息以及当前用户输入语句输入基于意图监测模型的转换模块,转换模块识别用户的第一目标意图,基于第一目标意图输出第一任务转换语句。

具体地,转换模块可以包括意图监测模型和任务转换语句生成模型。

参见图5,该图为本申请实施例提供的一种第一目标意图识别过程示意图。意图监测模型可以是多分类的机器学习模型,针对每个目标意图训练一个二分类模型,每个二分类模型可以基于输入的历史对话信息以及当前用户输入语句输出对应目标意图的可能性,将可能性最高的目标意图作为最终的第一目标意图,输出至任务转换语句生成模型。例如,意图监测模型包括症状诊断咨询意图识别二分类模型、用药指导意图识别二分类模型、医生推荐意图识别二分类模型以及科普文章推荐意图识别二分类模型,当前用户输入语句为“我最近老手抖,这一年多经常记不住东西,请问是什么原因”,此时,每个二分类模型分别输入对应目标意图的可能性,例如,目标意图为症状诊断咨询的可能性为82.5%,而症状诊断咨询意图识别二分类模型所输出的可能性为多个二分类模型输出的可能性中的最大值,则可以将“症状诊断咨询”确定为第一目标意图,输出至任务转换语句生成模型。

可选地,参见图6,该图为本申请实施例提供的一种预定义目标意图示意图。可以预先设定多个目标意图,并提供每个目标意图的意图简称和意图描述,在用户与第一智能医助模块对话的过程中,意图监测模型可以捕捉与预先设定的多个目标意图相关的重要意图。例如,预先定义的目标意图有:症状诊断咨询、用药指导咨询、就诊医生推荐以及科普文章推荐等,用户提问“我最近老手抖,这一年多经常记不住东西,请问是什么原因”时,意图监测模型会识别出该语句中含有与预先设定的多个目标意图相关的意图,并将意图确定为“症状诊断咨询”;当用户提问“我查出有帕金森病,已经开了美多芭和金刚烷胺,请问服用这些药要注意什么”时,意图监测模型会识别出意图为“用药指导咨询”;若患者提问“你们线下实体医院在什么地方,坐地铁到哪一站下”,其意图为咨询“线下就诊咨询/交通咨询”,不在预先设定的目标意图中,此时,意图监测模型不会输出第一目标意图,而是继续进行意图监测。

可选地,可以利用大语言模型来进行二分类模型的训练。具体地,可以基于预设的多个目标意图分别形成意图询问语句,根据当前用户输入语句和意图询问语句构造一个面向意图分类的prompt并输入大语言模型,获得是或否的回答,以这个回答作为初始数据训练二分类模型。例如,可以将当前用户输入语句“我最近老手抖,这一年多经常记不住东西,请问是什么原因”以及意图询问语句“用户是否想咨询症状诊断情况”输入大语言模型,得到回答“是”,从而将“‘我最近老手抖,这一年多经常记不住东西,请问是什么原因’对应的目标意图为‘症状诊断咨询’”作为用于训练二分类模型的初始训练数据。

示例性地,任务转换语句生成模型可以根据第一目标意图,生成第一任务转换语句以对用户进行引导。例如:当用户说“我查出有帕金森病,已经开了美多芭和金刚烷胺,请问服用这些药要注意什么”时,模型识别出第一目标意图是“用药指导”,则任务转换语句生成模型可以生成例如“请问您是想咨询用药相关问题吗”或“请问您是想咨询美多芭和金刚烷胺的服用方法和禁忌症吗”等第一任务转换语句。这类任务转换语句通常都是用于确认第一目标意图,得到肯定回答后再进入询问流程,但当第一目标意图识别结果准确性较高且返回的正样本概率较大时,也可以直接进入询问流程,生成例如“请问您帕金森病的病程目前处于哪一期”或者“您当前有哪些主要症状”等第一任务转换语句。

可选地,任务转换语句生成模型可以基于预定义任务转换语句模板生成任务转换语句。例如,可以预先定义一个任务转换语句模板,然后根据历史对话信息进行填充后再回复给用户。例如,历史对话信息包括转换模块识别出的第一目标意图,任务转换语句模板可以是“请问您是想咨询[意图名称]相关问题吗”,其中,[意图名称]可以根据识别到的第一目标意图进行填充,例如可以填充为“用药方法”、“疾病诊断”或“就诊医生”等。

此外,也可以针对每个目标意图均构建一个任务转换语句模板,形成任务转换语句的集合,根据第一目标意图使用对应的任务转换语句模板。例如目标意图“用药咨询”对应的任务转换语句模板可以是“请问您是想咨询[药品名称列表]的服用方法以及[用药指南项列表]吗”,其中[药品名称列表]为历史对话信息中包含的药品名称“美多芭和金刚烷胺”,[用药指南项列表]可以包括例如“禁忌症”等。

可选地,任务转换语句生成模型也可以利用自然语言生成模型来生成任务转换语句,例如,可以利用自然语言生成模型预测前一时刻用户输入语句和后一时刻用户输入语句之间的任务转换语句。相较于基于预定义任务转换语句模板生成任务转换语句,利用自然语言生成模型来生成任务转换语句可以使对话的过渡更加自然,在对话的流畅性和用语的多样性等方面有更好的表现。

S104:在第二时段内,将第一目标意图、历史对话信息以及当前用户输入语句输入基于面向任务的对话模型的第二智能医助模块,第二智能医助模块输出响应于当前用户输入语句的第二回复语句。

具体地,第二时段为基于意图监测模型的转换模块输出第一任务转换语句之后的时段。

示例性地,第二智能医助模块由基于预定义流程的任务对话模型以及基于自然语言理解与生成的任务对话模型组成。对于例如用药指导、远程预约等问题空间较小且流程明确的目标意图,可以预先配置对应的预定义对话流程。在第二时段内,将第一目标意图、历史对话信息以及当前用户输入语句输入第二智能医助模块;基于预先设定的目标意图与预定义对话流程的对应关系,查找第一目标意图对应的预定义对话流程;若存在与第一目标意图对应的预定义对话流程,则基于预定义流程的任务对话模型根据第一目标意图对应的预定义对话流程、第一目标意图、历史对话信息以及当前用户输入语句,输出响应于当前用户输入语句的第二回复语句;若不存在与第一目标意图对应的预定义对话流程,则基于自然语言理解与生成的任务对话模型根据第一目标意图、历史对话信息以及当前用户输入语句输出响应于当前用户输入语句的第二回复语句。

参见图7和图8,图7为本申请实施例提供的一种预定义流程示意图,图8为本申请实施例提供的一种基于预定义流程的任务对话模型的运行效果示意图。以第一目标意图为用药咨询为例,基于预定义流程的任务对话模型可以根据“用药咨询”这一目标意图,开始执行对应的预定义对话流程。具体地,基于预定义流程的任务对话模型可以先给出包括药品名称选项的第二回复语句,用户勾选咨询的药物名称,例如,勾选美多芭和金刚烷胺;而后,基于预定义流程的任务对话模型可以提供包括咨询内容选项的第二回复语句,用户勾选咨询内容,例如,勾选药物禁忌;继而,基于预定义流程的任务对话模型根据用户勾选的咨询内容,输出用于询问疾病史的第二回复语句,例如,询问是否有心脏病史以及患病时长等;最后,输出包括美多芭和金刚烷胺的药物禁忌的第二回复语句。

可选地,可以基于上述第一历史对话信息为用户自动勾选部分选项,以减少用户的工作量。例如,用户在与第一智能医助模块交互的过程中提及服用过“美多芭”和“金刚烷胺”,则第一历史对话信息中包含了“美多芭”和“金刚烷胺”,则可以在预定义流程的任务对话模型给出的药品名称选项中自动勾选这两个药品,用户点击确认即可进入后续对话流程。

参见图9,该图为本申请实施例提供的一种基于自然语言理解与生成的任务对话模型的结构示意图。

对于一些问题选项多、执行流程较为复杂的目标意图,例如症状诊断、医生推荐、科普文章推荐等目标意图,由于难以绘制流程图,故而可以不配置对应的预定义对话流程,而是利用基于自然语言理解与生成的任务对话模型来生成第二回复语句。

本申请实施例提供的基于自然语言理解与生成的任务对话模型由自然语言理解模型、对话状态跟踪模型、对话策略学习模型和自然语言生成模型组成,其中,对话状态跟踪模型和对话策略学习模型构成了对话管理器。

参见图10,该图为本申请实施例提供的一种自然语言理解模型的输出内容示意图。该模型可以将用户输入语句这样的自然语言转换为语义槽,并执行子意图分类。自然语言理解模型可以进行子意图检测和槽值填充,其中,子意图检测是指对用户的第一目标意图进行的更详细的意图分类,例如,可以使用分类器预测从输入语言序列到预定义子意图集的映射,如图10所示,子意图是“药品用法用量咨询”;槽值填充是一个序列标记任务,它可以将用户输入语句映射为一系列槽值名称,如图10所示,自然语言理解模型获取用户输入语句后,输出相应的标记序列,每个汉字或标点符号被称作一个token,作为表中的一列。自然语言理解模型可以利用Inside-Outside-Beginning(IOB)标记方法得到标记序列,例如,自然语言理解模型识别出“美多芭”和“金刚烷胺”是药品名称后,这两个词开头和中间token分别被标记为“B_drug”和“I_drug”,其中,“B”表示块的开头,“I”表示该标记位于目标块内。对于那些不相关的token,可以使用“O”表示该token不在任何感兴趣的区块内。槽值的初始值可以基于上述第一智能医助模块中的大语言模型提示词prompt生成器抽取出的第一历史对话信息进行填充。

作为示例,对话状态跟踪模型可以根据当前用户输入语句和历史对话信息反复校准对话状态,即相关的用户操作和槽值。它可以根据第二历史对话信息跟踪用户的目标意图和每个对话轮次的相关细节,为策略学习模型提供决策下一时刻动作的依据。第二历史对话信息包含历史对话语句中要传达的所有基本信息,一个给定对话轮次的第二历史对话信息由信息槽和请求槽组成,其中,信息槽是用户指定的属性,用于约束对数据库的搜索;请求槽是用户查询其值的属性;例如,一个药品的序号通常是一个请求槽,以便于在专科知识图谱库中检索对应的药品指南。

具体地,第二历史对话信息可以包括与信息槽对应的目标约束、请求的槽值以及当前对话轮次的搜索方法三个组成部分,其中,与信息槽对应的目标约束可以是用户在对话中提到的特定值或预先设定的特殊值,例如用户对槽值不感兴趣或者用户未在对话中指定该槽值等;请求的槽值可以是用户向基于预定义流程的任务对话模型寻求答案时查询的槽值名称列表;当前对话轮次的搜索方法由指示交互类别的值组成,例如“美多芭在白天的用量”等表示用户试图在其请求中指定约束信息的值、“症状减轻,美多芭是否减量”等表示用户需要一个修改或替代实体的值以及“好的,我知道了”等表示用户打算结束对话的值。

作为示例,对话策略学习模型可以根据对话跟踪模型输出的第二历史对话信息来决策下一时刻将采取的行动,控制下一时刻动作。例如,医生推荐任务中,如果患者描述“我最近老手抖,这一年多经常记不住东西,请问应该找哪个医生就诊”时,对话策略学习模型可以意识到用户患帕金森病,需要为用户推荐帕金森病相关专家,并提供在线挂号服务。

示例性地,自然语言生成模型用于将对话管理器生成的对话动作转换为自然语言表示,形成第二回复语句。其中,对话状态跟踪模型决定了回复的核心内容,策略学习模型决定回复的主要方式。本申请实施例提供的自然语言生成模型由内容确定、顺序和结构确定、句子规划以及表层实现四个部分组成,可以通过应用深度神经网络来提高自然语言生成模型的性能,并将其四个组成部分融合为一个模型,形成完全由数据驱动、不依赖任何专家规则的端到端的自然语言生成。例如,可以基于RNN的统计语言模型来学习带有语义约束和语法树的第二回复语句生成;可以使用LSTM模型同时学习句子规划和表层实现;可以使用GRU进一步提高了多个领域的第二回复语句生成质量;可以从域外数据集合成的数据上训练循环网络语言模型,然后在相对较小的域内数据集上进行微调,以提高循环网络模型的领域适应性。

由此,本申请实施例提供的智能医疗助手的实现方法利用第一智能医助模块、转换模块以及第二智能医助模块实现智能医疗助手,可以在智能医疗助手的工作过程中,使基于大语言模型的第一智能医助模块与基于面向任务的对话模型的第二智能医助模块相结合,先采用第一智能医助模块与用户对话,以大语言模型为交互前端,提升了智能医疗助手的可交互性;再通过转换模块识别第一目标意图,自动地将大语言模型对话场景自然地转换到面向任务的对话模型的对话场景,在无需对大语言模型进行大规模预训练、微调或强化学习训练等操作的情况下,满足了智能医疗助手所需的准确性,有效结合了大语言模型与面向任务的对话模型各自的优点,提供了低开发成本、高可交互性的智能医疗助手。

参见图11,该图为本申请实施例提供的另一种智能医疗助手的实现方法流程图,该方法包括:

S1101:获取历史对话信息以及当前用户输入语句。

S1102:在第一时段内,将历史对话信息以及当前用户输入语句输入基于大语言模型的第一智能医助模块,第一智能医助模块输出响应于当前用户输入语句的第一回复语句。

具体地,第一时段为基于意图监测模型的转换模块输出第一任务转换语句之前的时段。第一智能医助模块由多个大语言模型、大语言模型提示词prompt生成器以及回复选择器组成。其中,多个大语言模型用于分别基于输入的历史对话信息以及当前用户输入语句生成直接回复语句,以及基于输入的提示词prompt生成状态跟踪回复语句;大语言模型提示词prompt生成器可以根据当前用户输入语句生成提示词prompt,以及抽取状态跟踪回复语句中的关键信息以得到第一历史对话信息;回复选择器用于从多个大语言模型的回复语句中选择出第一回复语句进行输出。

S1103:将历史对话信息以及当前用户输入语句输入基于意图监测模型的转换模块,转换模块识别用户的第一目标意图,基于第一目标意图输出第一任务转换语句。

具体地,转换模块可以包括意图监测模型和任务转换语句生成模型。其中,意图监测模型用于基于历史对话信息以及当前用户输入语句识别用户的第一目标意图;任务转换语句生成模型用于基于第一目标意图输出第一任务转换语句。

S1104:在第二时段内,响应于第一目标意图以及历史对话信息,检索专科知识图谱,得到第一关联知识。

具体地,可以基于第一目标意图以及历史对话信息,在预先配置的专科知识图谱中进行术语标准化和对齐,从而找到专科知识图谱中对应的本体;而后,根据第一目标意图从专科知识图谱中检索出对应的第一关联知识。

其中,本体是一种形式化的、结构化的知识表示方法,它定义了领域中的概念、属性和它们之间的关系;术语标准化是指将原始数据中的术语转换为标准术语,例如,不同的用户可能会使用不同的术语描述同一种疾病或症状,通过术语标准化可以将不同的术语都映射到一个标准术语上;术语对齐是指确定两个或多个术语之间的等价关系,例如,一个术语可能有多个同义词或近义词,通过术语对齐可以确定这些术语之间的等价关系,以便在分析和比较数据时能够正确地匹配和链接相关信息。

S1105:在第二时段内,基于用户标识检索预先配置的病例库,得到与用户标识对应的用户信息。

示例性地,可以获取用户标识,并基于用户标识检索预先配置的病例库,得到与用户标识对应的用户信息。其中,用户信息可以包括但不限于用户的个人信息和疾病情况等信息。由此,在需要用户信息时不必向用户提问,提高了交互效率。

S1106:在第二时段内,将第一目标意图、历史对话信息、用户信息、第一关联知识以及当前用户输入语句输入基于面向任务的对话模型的第二智能医助模块,第二智能医助模块输出响应于当前用户输入语句的第二回复语句。

具体地,第二时段为基于意图监测模型的转换模块输出第一任务转换语句之后的时段。第二智能医助模块由基于预定义流程的任务对话模型以及基于自然语言理解与生成的任务对话模型组成。若存在与第一目标意图对应的预定义对话流程,则基于预定义流程的任务对话模型根据第一目标意图对应的预定义对话流程,输出响应于当前用户输入语句的第二回复语句;若不存在与第一目标意图对应的预定义对话流程,则基于自然语言理解与生成的任务对话模型输出响应于当前用户输入语句的第二回复语句。

示例性地,在基于自然语言理解与生成的任务对话模型输出响应于当前用户输入语句的第二回复语句的情况下,对话状态跟踪模型和专科知识图谱的检索结果,也即第一关联知识决定了第二回复语句的核心内容,策略学习模型决定了第二回复语句的主要回复方式。例如,策略学习模型确定的输出对话动作是“(疾病名称=帕金森病;症状名称=手抖,记忆力减退;目标=推荐帕金森病专家;服务=在线挂号)”,在专科知识图谱库中检索到的第一关联知识为病症帕金森病且伴有手抖、记忆力衰退对应的最权威的专家是A医院的B主任,那么自然语言生成模型则可以生成第二回复语句:为您推荐A医院的B主任,他是帕金森病方面的专家,擅长口齿不清、记忆力减退等症状的治疗。点击下面链接可进行挂号。

S1107:转换模块响应于任务切换请求,基于历史对话信息以及当前用户输入语句确定用户的第二目标意图;基于第二目标意图,输出第二任务转换语句。

示例性地,当用户想要从当前目标意图切换到其他目标意图,可以通过例如按键或输入例如“退出当前咨询”等用户输入语句的方式传递任务切换请求以跳出当前对话,转换模块中的意图监测模型将重新识别用户的第二目标意图,并基于第二目标意图,输出第二任务转换语句。本步骤的具体实现方式可以参见上述步骤S103或步骤S1103中的描述。

S1108:在第三时段内,将第二目标意图、历史对话信息以及当前用户输入语句输入第二智能医助模块,第二智能医助模块输出响应于当前用户输入语句的第二回复语句。

具体地,输出第二任务转换语句后的时段为第三时段。本步骤的具体实现方式可以参见上述步骤S104或步骤S1106中的描述。

S1109:转换模块响应于任务结束请求,输出第三任务转换语句。

示例性地,当用户想要结束当前对话,可以通过例如按键或输入例如“返回大语言模型”等用户输入语句的方式传递任务结束请求以返回第一智能医助模块。

S1110:在第四时段内,将历史对话信息以及当前用户输入语句输入基于大语言模型的第一智能医助模块,第一智能医助模块输出响应于当前用户输入语句的第一回复语句。

具体地,输出第三任务转换语句后的时段为第四时段。返回第一智能医助模块后,第一智能医助模块可以在保留历史对话信息的情况下与用户重新开始对话。本步骤的具体实现方式可以参见上述步骤S102或步骤S1102中的描述。

可选地,上述回复选择器、意图监测模型、任务转换语句生成模型以及对话策略学习模型可以通过强化学习实现。

参见图12,该图为本申请实施例提供的一种强化学习过程示意图。

强化学习由智能体(Agent)和环境(Environment)两大部分组成。智能体通过观察(Observation)获取环境当前状态(States),然后通过智能体的行为函数(BehaviourFunctionn)来确定采取何种对行动(Action)以对环境产生反应,决策方式被称为策略(Policy),环境会对智能体的行动产生用于反馈来评价行动的好坏的奖励(Reward)。

本申请实施例中,智能体包括回复选择器、意图监测模型、任务转换语句生成模型以及对话策略学习模型;环境可以包括用户输入语句、第一回复语句、任务转换语句以及第二回复语句等对话内容和用户反馈信息等;观察为对话内容输入智能体;行动为不同智能体在接收对话内容后需要进行的决策行为,例如从多个大语言模型的直接回复语句中选择最佳项作为第一回复语句等;奖励可以由专科医生、人工客服或患者等用户等对第一回复语句、任务转换语句以及第二回复语句等回复结果进行打分后反馈至智能体。

参见图13,该图为本申请实施例提供的一种强化学习奖励机制示意图。其中,奖励机制1为用户对回答质量的评价反馈,结果可以包括三种:喜欢、不喜欢或者未选择;奖励机制2是确认回复结果是否与实际情况相符,例如确认用户的意图是否是用药咨询,这一种方式的反馈结果同样可以包括三种:是、否或者未选择。

参见图14,该图为本申请实施例提供的一种基于奖励进行强化学习训练的原理图。其中,每一条经验数据都是一个4元组,例如第1条经验数据为,其中,s1代表前一轮对话内容,a1代表智能体选择的医疗大语言模型,r2代表执行该动作获得的奖励,s2代表选择完医疗大语言模型后的当前轮次对话内容。对于如图13所示的评价反馈,选择“喜欢”或“是”则奖励r为+1,选择“不喜欢”或“否”奖励r为-1,未选择则奖励r为0。

可选地,在本申请提供的一些实施例中,可以先采用开源中英文医疗大语言模型进行冷启动,而后专科医生团队和人工客服团队进行人工微调训练。例如,可以选择开源医疗对话数据集作为冷启动的训练数据,构建一个prompt模板,将数据输入开源中英文医疗大语言模型并获得返回值。例如,目标意图分类模型的prompt模板可以是:原始对话文本+“这句话是在咨询如何用药吗?”得到了例如“原始对话文本+目标意图”的数据集后,用其先训练强化学习模型。由此,在冷启动阶段可以通过较低的数据获取成本和人工标注成本对由第一智能医助模块、转换模块以及第二智能医助模块组成的智能医疗助手进行初步训练。

可选地,在本申请提供的一些实施例中,可以采用A3C算法(AsynchronousAdvantage Actor-Critic,异步优势行为者-批评家算法)来实现多任务强化学习的深度神经网络,以实现多个智能体并行学习并整合所有经验。其中,深度神经网络使用多个智能体,且每个智能体在实际环境中以不同的策略进行学习,而后将这些智能体所获得的经验整合在一起构成全局智能体。其中,全局智能体也称为全局状态网络或主网络,其他智能体称为工人智能体(Worker Agent)。

参见图15,该图为本申请实施例提供的一种A3C算法结构示意图。

首先,每个智能体按照不同的探索策略来学习一个最优策略;而后,计算值和策略损失;最后,计算损失梯度并在全局状态网络中更新梯度,其中,全局状态网络同时由每个工人智能体并行更新。A3C算法相比其他深度强化学习网络的优点之一就是不适用经验回放记忆,经验回放需要大量记忆单元保存所有的经验,而A3C算法有多个智能体与环境交互,并将各自信息整合到全局网络,因此经验之间的相关性很小,甚至无关,A3C算法无需记忆,由此,可以大大减少存储空间和计算时间。

由此,多个智能体的训练数据可以得到充分利用,能够大大提高学习效率和训练后的智能体的预测能力。此外,A3C算法所需要的计算能力和训练时间都较少,也可以有效降低训练难度和训练成本。

参见图16,该图为本申请实施例提供的一种智能医疗助手的实现装置示意图,该装置包括:第一智能医助模块1601,转换模块1602以及第二智能医助模块1603;

第一智能医助模块1601,用于在第一时段内,获取历史对话信息以及当前用户输入语句;基于历史对话信息以及当前用户输入语句,输出响应于当前用户输入语句的第一回复语句;第一时段为输出第一任务转换语句之前的时段;

转换模块1602,用于获取历史对话信息以及当前用户输入语句;基于历史对话信息以及当前用户输入语句,识别用户的第一目标意图,基于第一目标意图输出第一任务转换语句;

第二智能医助模块1603,用于在第二时段内,获取第一目标意图、历史对话信息以及当前用户输入语句;基于第一目标意图、历史对话信息以及当前用户输入语句,输出响应于当前用户输入语句的第二回复语句;第二时段为输出第一任务转换语句之后的时段。

由此,本申请实施例提供的智能医疗助手的实现装置利用第一智能医助模块、转换模块以及第二智能医助模块实现智能医疗助手,可以在智能医疗助手的工作过程中,使基于大语言模型的第一智能医助模块与基于面向任务的对话模型的第二智能医助模块相结合,先采用第一智能医助模块与用户对话,以大语言模型为交互前端,提升了智能医疗助手的可交互性,再通过转换模块识别第一目标意图,自动地将大语言模型对话场景自然地转换到面向任务的对话模型的对话场景,在无需对大语言模型进行大规模预训练、微调或强化学习训练等操作的情况下,满足了智能医疗助手所需的准确性,有效结合了大语言模型与面向任务的对话模型各自的优点,提供了低开发成本、高可交互性的智能医疗助手。

可选地,在本申请实施例提供的另一种智能医疗助手的实现装置中,第一智能医助模块1601包括:多个大语言模型、大语言模型提示词prompt生成器以及回复选择器;

大语言模型提示词prompt生成器,用于在第一时段内获取历史对话信息以及当前用户输入语句;将当前用户输入语句填充至预设的状态跟踪提示词模板,得到提示词prompt;向多个大语言模型输入历史对话信息、当前用户输入语句以及提示词prompt;抽取状态跟踪回复语句中的关键信息,得到第一历史对话信息;

多个大语言模型,用于分别生成响应于当前用户输入语句的直接回复语句,以及响应于提示词prompt的状态跟踪回复语句;

回复选择器,用于从多个直接回复语句中选择最优项作为第一回复语句;输出第一回复语句。

可选地,在本申请实施例提供的另一种智能医疗助手的实现装置中,第二智能医助模块1603,包括:查找单元,第一任务对话模型以及第二任务对话模型;其中,第一任务对话模型为基于预定义流程的任务对话模型,第二任务对话模型为基于自然语言理解与生成的任务对话模型;

查找单元,用于在第二时段内,基于预先设定的目标意图与预定义对话流程的对应关系,查找第一目标意图对应的预定义对话流程;

第一任务对话模型,用于在存在与第一目标意图对应的预定义对话流程的情况下,根据第一目标意图对应的预定义对话流程、第一目标意图、历史对话信息以及当前用户输入语句,输出响应于当前用户输入语句的第二回复语句;

第二任务对话模型,用于在不存在与第一目标意图对应的预定义对话流程的情况下,根据第一目标意图、历史对话信息以及当前用户输入语句,输出响应于当前用户输入语句的第二回复语句。

可选地,在本申请实施例提供的另一种智能医疗助手的实现装置中,智能医疗助手的实现装置还包括:专科知识图谱检索模块,用于在第二时段内,响应于第一目标意图以及历史对话信息,检索专科知识图谱,得到第一关联知识;

第二智能医助模块,具体用于:将第一目标意图、历史对话信息、第一关联知识以及当前用户输入语句输入基于面向任务的对话模型的第二智能医助模块,第二智能医助模块输出响应于当前用户输入语句的第二回复语句。

可选地,在本申请实施例提供的另一种智能医疗助手的实现装置中,智能医疗助手的实现装置还包括:病例库检索模块,用于在第二时段内,获取用户标识;基于用户标识检索预先配置的病例库,得到与用户标识对应的用户信息;

第二智能医助模块,具体用于:将第一目标意图、历史对话信息、用户信息以及当前用户输入语句输入基于面向任务的对话模型的第二智能医助模块,第二智能医助模块输出响应于当前用户输入语句的第二回复语句。

可选地,在本申请实施例提供的另一种智能医疗助手的实现装置中,转换模块1602还用于:响应于任务切换请求,基于历史对话信息以及当前用户输入语句确定用户的第二目标意图;基于第二目标意图,输出第二任务转换语句;输出第二任务转换语句后的时段为第三时段;

第二智能医助模块,还用于:在第三时段内,将第二目标意图、历史对话信息以及当前用户输入语句输入第二智能医助模块,第二智能医助模块输出响应于当前用户输入语句的第二回复语句。

可选地,在本申请实施例提供的另一种智能医疗助手的实现装置中,转换模块1602还用于:响应于任务结束请求,输出第三任务转换语句;输出第三任务转换语句后的时段为第四时段;

第二智能医助模块,还用于:在第四时段内,将历史对话信息以及当前用户输入语句输入基于大语言模型的第一智能医助模块,第一智能医助模块输出响应于当前用户输入语句的第一回复语句。

参见图17,该图为本申请实施例提供的一种智能医疗助手的实现设备结构图,该设备包括:存储器1701和处理器1702。

存储器1701:用于存储程序代码,并将程序代码传输给处理器。

处理器1702:用于根据程序代码中的指令执行上述智能医疗助手的实现方法的步骤。

此外,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当计算机指令在智能医疗助手的实现设备上运行时,该智能医疗助手的实现设备执行上述智能医疗助手的实现方法的步骤。

需要说明的是,本申请所涉及的用户信息和数据(包括但不限于用户数据,以及用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备及存储介质实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及存储介质实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元提示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述,仅为本申请的一种具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。

相关技术
  • 一种基于智能医疗设备的磁控三电极加载与分离装置及方法
  • 一种智能语音交互方法及装置、相关设备及存储介质
  • 一种智能客服实现方法、装置及存储介质
  • 一种实现智能定速和节能驾驶的方法及装置
  • 一种用于智能穿戴终端的医疗急救卡实现方法与装置
  • 一种多孔、低硅SAPO-34分子筛的制备方法及用途
技术分类

06120116594152