CN117216212A - 对话处理方法、对话模型训练方法、装置、设备及介质 - Google Patents
对话处理方法、对话模型训练方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN117216212A CN117216212A CN202311170660.XA CN202311170660A CN117216212A CN 117216212 A CN117216212 A CN 117216212A CN 202311170660 A CN202311170660 A CN 202311170660A CN 117216212 A CN117216212 A CN 117216212A
- Authority
- CN
- China
- Prior art keywords
- dialogue
- model
- training data
- task
- text
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012549 training Methods 0.000 title claims abstract description 355
- 238000000034 method Methods 0.000 title claims abstract description 113
- 238000003672 processing method Methods 0.000 title abstract description 19
- 238000012545 processing Methods 0.000 claims abstract description 96
- 238000000605 extraction Methods 0.000 claims description 61
- 238000013439 planning Methods 0.000 claims description 30
- 241000282414 Homo sapiens Species 0.000 claims description 24
- 238000010276 construction Methods 0.000 claims description 16
- 230000002787 reinforcement Effects 0.000 claims description 15
- 238000005516 engineering process Methods 0.000 claims description 13
- 238000004891 communication Methods 0.000 claims description 12
- 230000006978 adaptation Effects 0.000 claims description 11
- 230000008569 process Effects 0.000 description 42
- 238000012937 correction Methods 0.000 description 25
- 238000004458 analytical method Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 13
- 230000014509 gene expression Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 9
- 239000003795 chemical substances by application Substances 0.000 description 8
- 230000002452 interceptive effect Effects 0.000 description 6
- 238000013473 artificial intelligence Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 5
- 235000013305 food Nutrition 0.000 description 5
- 230000003993 interaction Effects 0.000 description 5
- 239000002699 waste material Substances 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 239000000284 extract Substances 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 238000011084 recovery Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 230000019771 cognition Effects 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 239000013589 supplement Substances 0.000 description 3
- 241000251468 Actinopterygii Species 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- QVFWZNCVPCJQOP-UHFFFAOYSA-N chloralodol Chemical compound CC(O)(C)CC(C)OC(O)C(Cl)(Cl)Cl QVFWZNCVPCJQOP-UHFFFAOYSA-N 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 239000000047 product Substances 0.000 description 2
- 230000001502 supplementing effect Effects 0.000 description 2
- 241000282412 Homo Species 0.000 description 1
- 230000003416 augmentation Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000009954 braiding Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000008014 freezing Effects 0.000 description 1
- 238000007710 freezing Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 235000012054 meals Nutrition 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012882 sequential analysis Methods 0.000 description 1
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 1
- 108020001568 subdomains Proteins 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Landscapes
- Machine Translation (AREA)
Abstract
本申请提供一种对话处理方法、对话模型训练方法、装置、设备及介质,该对话处理方法包括:获取用户输入的对话文本;使用训练数据集对大规模语言模型进行微调,得到“用于处理地图领域的对话以及开放领域的对话”的对话模型;获取所述对话文本在所述目标领域下的对话回复;其中,所述目标领域包括开放领域或地图领域;输出所述对话回复。本申请可以提高地图应用的对话的智能化。
Description
技术领域
本申请涉及地图技术领域,尤其涉及一种对话处理方法、对话模型训练方法、装置、设备及介质。
背景技术
集成了对话功能的地图应用,可以采用人机对话的方式与用户进行地图领域的对话。通过该功能,可以帮助用户更加便捷的使用地图应用,也给用户带来更加亲切、自然的交互体验。然而,目前,地图应用存在对话不够智能,对话场景单一,仅能与用户进行地图领域的对话,而无法满足用户其他对话需求的问题。
发明内容
本申请提供一种对话处理方法、对话模型训练方法、装置、设备及介质,可以提高地图应用对话回复的智能性,扩大对话场景,使得地图应用除满足用户面向地图领域的对话需求外,还可以满足用户面向开放领域的对话需求。
第一方面,本申请提供一种对话处理方法,所述方法包括:
获取用户输入的对话文本;
利用对话模型,获取所述对话文本在目标领域下的对话回复;其中,所述对话模型为采用训练数据集对使用通用语料训练的大规模语言模型进行微调得到的,所述训练数据集包括下述至少一个训练数据子集:基于兴趣点的信息构建的第一训练数据子集、基于地理知识构建的第二训练数据子集、基于地图领域的历史兴趣点搜索与导航路径规划数据构建的第三训练数据子集,以及,基于地图领域的历史对话数据构建的第四训练数据子集;所述目标领域包括开放领域或地图领域;所述地图领域为与地图应用提供的服务相关的领域;
输出所述对话回复。
第二方面,本申请提供一种对话模型训练方法,所述方法包括:
获取训练数据集;所述训练数据集包括下述至少一个训练数据子集:基于兴趣点的信息构建的第一训练数据子集、基于地理知识构建的第二训练数据子集、基于地图领域的历史兴趣点搜索与导航路径规划数据构建的第三训练数据子集,以及,基于地图领域的历史对话数据构建的第四训练数据子集;
使用所述训练数据集对使用通用语料训练的大规模语言模型进行微调,得到对话模型;所述对话模型用于处理地图领域的对话,以及,开放领域的对话;所述地图领域为与地图应用提供的服务相关的领域。
第三方面,本申请提供一种对话处理装置,所述装置包括:
第一获取模块,用于获取用户输入的对话文本;
第二获取模块,用于利用对话模型,获取所述对话文本在目标领域下的对话回复;其中,所述对话模型为采用训练数据集对使用通用语料训练的大规模语言模型进行微调得到的,所述训练数据集包括下述至少一个训练数据子集:基于兴趣点的信息构建的第一训练数据子集、基于地理知识构建的第二训练数据子集、基于地图领域的历史兴趣点搜索与导航路径规划数据构建的第三训练数据子集,以及,基于地图领域的历史对话数据构建的第四训练数据子集;所述目标领域包括开放领域或地图领域;所述地图领域为与地图应用提供的服务相关的领域;
输出模块,用于输出所述对话回复。
第四方面,本申请提供一种对话模型训练装置,所述装置包括:
获取模块,用于获取训练数据集;所述训练数据集包括下述至少一个训练数据子集:基于兴趣点的信息构建的第一训练数据子集、基于地理知识构建的第二训练数据子集、基于地图领域的历史兴趣点搜索与导航路径规划数据构建的第三训练数据子集,以及,基于地图领域的历史对话数据构建的第四训练数据子集;
微调模块,用于使用所述训练数据集对使用通用语料训练的大规模语言模型进行微调,得到对话模型;所述对话模型用于处理地图领域的对话,以及,开放领域的对话;所述地图领域为与地图应用提供的服务相关的领域。
第五方面,本申请提供一种电子设备,包括:处理器和存储器;所述处理器与所述存储器通信连接;
所述存储器存储计算机指令;
所述处理器执行所述存储器存储的计算机指令,以实现如第一方面任一项所述的方法,或,第二方面中任一项所述的方法。
第六方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如第一方面任一项所述的方法,或,第二方面中任一项所述的方法。
第七方面,本申请提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现第一方面任一项所述的方法,或,第二方面任一项所述的方法。
本申请提供的对话处理方法、对话模型训练方法、装置、设备及介质,通过使用地图领域的语料扩充大规模语言模型的词表,以及,使用地图领域相关的训练数据对扩充词表后的利用通用语料训练的大规模语言模型进行微调,可以使大规模语言模型学习到地图领域的相关知识,得到“既能处理地图领域的对话又能处理开放领域的对话”的对话模型。
当将上述对话模型应用于地图应用的对话系统中时,可以对用户的对话意图进行准确的识别。在用户具有地图领域的对话需求时,利用该对话模型提供地图领域的对话回复,在用户具有开放领域的对话需求时,还可以为用户提供开放领域的用户对话理解、任务处理,以及,回复生成服务,扩大了对话系统的应用场景,进而可以更好的满足用户的使用需求,进一步提升用户的使用体验,为用户提供更加智能化的对话服务。相比于现有技术仅能与用户进行地图领域的对话的这种单一场景,本申请还可以满足用户面向开放领域的对话需求,扩大了地图应用的对话场景。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的第一种对话处理方法的流程示意图;
图2为本申请实施例提供的一种利用对话模型进行对话处理的逻辑示意图;
图3为本申请实施例提供的第二种对话处理方法的流程示意图;
图4为本申请实施例提供的第三种对话处理方法的流程示意图;
图5为本申请实施例提供的第四种对话处理方法的流程示意图;
图6为本申请实施例提供的一种对话模型训练方法的流程示意图;
图7为本申请实施例提供的一种对话处理装置的结构示意图;
图8为本申请实施例提供的一种对话模型训练装置的结构示意图;
图9为本申请实施例提供的一种电子设备900的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
下面对本申请涉及的部分名词进行解释说明:
基于地理位置的服务(Location Based Services,LBS):是指围绕地理位置数据而展开的服务。例如可以包括路线规划、导航、兴趣点(Point of Interest,POI)检索等。
兴趣点:可以是指地图数据中可以抽象为兴趣点的地理实体,通常是指用户感兴趣的地图坐标点。在地图数据中,POI例如可以为一栋大厦、一家商铺、一处景点等。
大规模语言模型(Large Language Model,LLM):指使用大量文本数据训练的具有众多参数的深度学习模型,旨在模拟和理解人类语言的特征和规律,具有强大的语义理解能力。大规模语言模型可以处理多种自然语言任务,如文本总结、文本分类、关键词提取、问答、对话等,是通向人工智能的一条重要途径。
目前,大规模语言模型多基于Transformer模型架构实现,包括输入模块、编码器模块、解码器模块、输出模块。
其中,输入模块包括文本嵌入层及其位置编码器。文本嵌入层用于将输入文本转变为向量表示,以确定输入的词汇之间的相互关系;位置编码器用于将词汇之间的位置信息加入到词嵌入张量中,以弥补位置信息的缺失。
编码器模块用于对输入模块的输出进行特征提取。解码器模块用于对编码器输出的特征,生成预测的特征。输出模块用于对预测的特征进行维度转换,进而生成最终的预测文本。应理解,上述所说的每个模块可以包括一个或多个网络层。
大规模语言模型的低阶适应(Low-Rank Adaptation of Large LanguageModels,LoRA)技术:是一种参数高效性微调(Parameter-Efficient Fine-Tuning,PEFT)方法,LoRA的基本原理是在冻结原大规模语言模型参数的情况下,往大规模语言模型中加入额外的网络层,并只训练这些新增的网络层参数。由于这些新增参数数量较少,这样不仅针对大规模语言模型的微调成本显著下降,还能获得和对全部大规模语言模型微调类似的效果。
模型的有监督训练:也称为有监督学习,该种训练方法使用有输出标签的样本数据对模型进行训练,使其学习到输入和输出之间的关系。
模型的无监督训练:也称为无监督学习,该种训练方法使用无输出标签的样本数据对模型进行训练,使其自己发现输入和输出之间的关系。
强化学习从人类反馈(Reinforcement Learning from Human Feedback,RLHF):是一种先进的人工智能模型(例如大规模语言模型)训练方法,它将强化学习与人类反馈相结合。它是一种通过将人类训练师的智慧和经验纳入人工智能模型训练过程中,创建更健壮的学习过程的方法。该技术涉及使用人类反馈创建奖励信号,然后通过强化学习来改善模型的行为。
提示(Prompt):指在使用大规模语言模型时,向大规模语言模型输入的一段文本提示,其中包含用户要查询的信息或问题的关键词和上下文,以及,关于告诉模型应该如何思考并生成回复的提示信息,以便大规模语言模型更好地理解用户的意图并给出更准确的回复。
思维链(Chain of Thought,COT):即大规模语言模型参考人类解决问题的方法,从输入问题开始的一系列自然语言形式的推理过程,直到得到最后输出结论。
自然语言理解(Natural Language Understanding,NLU):所有支持机器理解文本内容的方法模型或任务的总称。NLU在文本信息处理处理系统中扮演着非常重要的角色,是推荐、问答、搜索等系统的必备模块。
自然语言生成(Natural Language Generation,NLG):指对话系统根据特定的规则和语言模型,生成自然语言文本的过程。NLG技术包括文本规划、语言生成和输出等方面,主要目的是降低人类和机器之间的沟通鸿沟,将非语言格式的数据转换成人类可以理解的语言格式。
对话系统(Dialogue System)是一种模拟人类并旨在与人类形成自然而流畅对话的系统,是一种人机交互技术。对话系统是自然语言处理、人工智能和机器学习等技术融合的产物,可以获取用户的对话文本,并据此生成对话回复。对话系统目前是人工智能领域的重要研究方向,具有重要的实际应用价值和广泛的普适性。
对话系统通常可以按照其对话目标被划分为两类,即面向任务的对话系统(Task-oriented Dialog System)和开放领域的对话系统(Open-domain Dialog System)。
其中,面向任务的对话系统,即面向特定任务而构建的对话系统,其应用场景往往有特定的领域(例如地图领域),仅能识别特定领域内的有限的对话意图,对于特定领域外的对话意图则无法处理。
开放领域的对话系统,关注于在开放域上与人类进行交流。与面向任务的对话系统有所不同,开放领域的对话系统不限定对话的目标、话题,以及,领域意图,允许用户自由发表对话言论、提问等。
目前,集成了对话功能的地图应用的服务端部署有面向地图领域的对话系统。对话系统在接收到地图应用发送的用户针对地图领域的对话后,可以对该对话所表征的地图领域的任务进行处理,以实现地图领域的对话。例如,(1)[导航任务]XXXX怎么走(2)[搜索任务]XX学校(3)[地图指令任务]放大地图(4)[路况查询任务]前方路况怎么样(5)[酒店预定任务]帮我定个酒店(6)[语音包切换任务]换成XXX语音包等。通过该功能,可以帮助用户更加便捷的使用地图应用,也给用户带来更加亲切、自然的交互体验。
随着LBS场景下相关功能的逐渐丰富,用户针对地图应用的对话功能的使用需求也逐渐增加。除了针对地图领域的对话需求之外,用户也可能会产生针对开放领域的对话需求。然而,由于目前地图应用对应的对话系统为面向特定领域任务设计的对话系统,仅能支持地图领域的对话,导致其存在对话不够智能,对话场景单一,仅能与用户进行地图领域的对话,而无法满足用户其他对话需求的问题。
随着大规模语言模型技术的发展,其展现出了更加强大的NLU和NLG的能力,为新一代智能对话系统提供了更多的应用点。有鉴于此,本申请提出了一种将大规模语言模型应用至地图应用对应的对话系统中,使对话系统能够实现地图领域的对话,以及,开放领域的对话,使得地图应用能够实现更加智能的对话,从而使其能够满足用户的实际使用需求。
本申请主要包括如下两部分内容:
第一部分:如何利用微调后的大规模语言模型(即对话模型)实现对话的过程。该部分的执行主体可以是对话系统中任一调用该对话模型实现对话的模块,例如调度模块。应理解,本申请对该模块的命名不做限定。另外,对话系统中除调度模块之外,是否还包括其他模块不做限定。
第二部分:如何利用地图领域相关的数据对大规模语言模型进行微调,使其能够实现地图领域的对话,以及,开放领域的对话的功能。该部分的执行主体可以是电子设备、计算机集群、云计算平台等。
本申请所涉及的对话系统可以是地图应用对应的对话系统,该对话系统可以部署在地图应用的服务端,也可以部署在地图应用上等。该地图应用可以部署于电子设备上,例如手机、车机。当该地图应用部署于手机上时,例如可以是应用程序(Application,APP);部署于车机上时,例如可以是预先安装的软件。
应理解,上述对话系统也可以是应用在其他具有对话功能且为用户提供LBS服务的场景中,对此不做限定。下述实施例均以地图应用的LBS为例进行说明。
下面结合具体地实施例对本申请的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
下面以执行主体是对话系统中的调度模块为例,对如何利用采用微调后的大规模语言模型实现对话的过程进行说明。
图1为本申请实施例提供的第一种对话处理方法的流程示意图,如图1所示,该方法可以包括如下步骤:
S101、获取用户输入的对话文本。
用户的对话需求主要分为两种,分别是面向地图领域的对话(即面向任务的对话);以及,面向开放领域的对话。其中,在LBS场景下,面向地图领域的对话通常是围绕用户出行相关的对话,是用户的需求集中点,是地图应用主要的服务内容。面向开放领域的对话,例如:(1)今天天气怎么样?(2)讲个笑话。(3)背一首诗。(4)介绍一下XX河等。
当对话系统部署在地图应用的服务端时,调度模块可以接收地图应用发送的对话文本。该对话文本可以是地图应用采集的用户输入的对话文本,也可以是对采集的用户输入的对话进行识别后得到的对话文本。
例如,用户通过语音的方式输入的对话,地图应用通过语音识别的方式,将该语音对话转换为对话文本后发送给调度模块,或者是,地图应用将该语音对话发送至调度模块,由调度模块自身或者是对话系统中的其他模块或模型进行语音识别后得到的对话文本。例如,用户通过文字的方式输入的对话文本,地图应用可以将该对话文本发送至调度模块。
当对话系统部署在地图应用上时,调度模块可以自行采集用户输入的语音对话,并对其进行语音识别处理,得到对话文本,也可以借助于其他模块进行采集和语音识别处理。此处所说的其他模块可以是对话系统的模块,也可以是地图应用中的模块等,对此不做限定。
S102、利用对话模型,获取对话文本在目标领域下的对话回复。
其中,对话模型为采用训练数据集对使用通用语料训练的大规模语言模型进行微调得到的,训练数据集包括下述至少一个训练数据子集:基于兴趣点的信息构建的第一训练数据子集、基于地理知识构建的第二训练数据子集、基于地图领域的历史兴趣点搜索与导航路径规划数据构建的第三训练数据子集,以及,基于地图领域的历史对话数据构建的第四训练数据子集。目标领域包括开放领域或地图领域,具体和用户输入的对话文本所表达的意图相关。例如,若用户输入的文本是面向地图领域的对话意图,则目标领域即地图领域;若用户输入的文本是面向开放领域的意图,则目标领域即开放领域。应理解,这里所说的地图领域为与地图应用提供的服务相关的领域。
上述通用语料可以是任意可用于大规模语言模型训练的开放领域的语料。使用通用语料训练的大规模语言模型可以处理多种自然语言任务,如文本总结、文本分类、关键词提取、问答、对话等,能够实现对大多数无需调用工具(例如计算机、天气预报工具等)的开放领域问题的对话回复。
当使用第一训练数据子集对大规模语言模型进行训练时,由于POI的信息数量巨大,且POI的信息之间存在复杂的映射关系,因此,据此对大规模语言模型进行训练,可以使模型基于海量的POI的信息学习到POI间的复杂的映射关系,实现将真实地理世界空间与自然语言语义空间进行映射,以支持基于POI的对话。
当使用第二训练数据子集对大规模语言模型进行训练时,可以使大规模语言模型加深对地理知识的学习与认知,以便当用户对话出现相关地理名称时,大规模语言模型能够深刻理解用户对话所表征的真实含义,将上述两个训练数据子集作为POI样本的补充和延展,进一步加深地理知识在大规模语言模型中的“印象”。
当使用第三训练数据子集对大规模语言模型进行训练时,由于地图领域的历史POI搜索与导航路径规划数据可以真实且准确的反应用户的POI搜索以及导航路径规划需求,因此,通过该第三训练数据子集的训练,可以使大规模语言模型能够理解用户对话的深层含义以及准确意图。
当使用第四训练数据子集对大规模语言模型进行训练时,由于地图领域的历史对话数据能最真实的反应用户实际对话场景,因此,将地图领域的历史对话数据应用于对大规模语言模型的训练之中,可以使用户熟悉用户的表达方式,模拟技术人员的思想,进而更加理解用户的意图,学习到其中的领域知识。
综上,通过利用上述训练数据集对大规模语言模型进行训练,一方面可以加深大规模语言模型对地图领域的知识的学习与认知,使得大规模语言模型能更好的理解用户针对题图领域的对话文本的语义;另一方面,可以使得大规模语言模型能够准确识别用户的意图,例如识别用户的对话文本表征的意图是针对地图领域还是针对开放领域。
需说明,本申请不限定上述大规模语言模型的具体架构、参数数量,以及,使用训练数据集对使用通用语料训练的大规模语言模型进行微调的方式。
如前所述,提示指在使用大规模语言模型时,向大规模语言模型输入的一段文本提示,其中包含用户要查询的信息或问题的关键词和上下文,以及,关于告诉模型应该如何思考并生成回复的提示信息,以便大规模语言模型更好地理解用户的意图并给出更准确的回复。因此,在一种可能的实现方式中,可以借助于提示基于对话系统中对话处理逻辑,在一个或多个步骤中通过对话模型,以及,相应的提示,完成对话的处理,最终得到对话回复。或者,也可以借助于提示,使用该模型,一次性得到对话文本的对话回复等。
在另一种可能的实现方式中,可以根据对话系统的对话处理逻辑,对对话模型进行各种微调,得到多个对话模型。此处所说的微调并非是指对模型进行训练,而是固定其所要执行的任务。其中,不同的对话模型用于实现不同的功能,例如,一个对话模型用于获取领域意图,一个对话模型用于实现对话回复等。
S103、输出对话回复。
当对话系统部署在地图应用的服务端时,调度模块可以将对话回复发送至地图应用,由地图应用进行最终的输出。当对话系统部署在地图应用上时,调度模块可以自行输出对话回复,也可以借助于其他模块进行对话回复的输出。此处所说的其他模块可以是对话系统的模块,也可以是地图应用中的模块等,对此不做限定。
本申请不限定上述最终输出至用户(或者说呈现给用户)的对话回复的格式,可以是以音频格式输出,也可以输出文本,本领域技术人员可根据实际使用需求设置,或者根据不同对话文本对应的对话需求来设置。比如,对于导航路径规划的对话,可以在交互界面上展示所规划的导航路径的同时,语音输出关于导航路径规划的相关信息等。
本实施例中,调度模块首先获取用户输入的对话文本,然后利用如前述实施例训练得到的对话模型,获取对话文本在目标领域下的对话回复,并输出该对话回复,从而实现将大规模语言模型应用至地图应用对应的对话系统中,使对话系统能够在用户具有地图领域的对话需求时,利用该对话模型提供地图领域的对话回复,在用户具有开放领域的对话需求时,利用该对话模型提供开放领域的对话回复,进而使得地图应用能够实现更加智能的对话,从而使其能够满足用户的实际使用需求。相比于现有技术仅能与用户进行地图领域的对话的这种单一场景,本申请还可以满足用户面向开放领域的对话需求,扩大了地图应用的对话场景。
下面以基于对话系统中利用对话模型进行对话处理的逻辑,在一个或多个步骤中通过对话模型,以及,相应的提示,完成对话的处理,最终得到对话回复为例进行说明。
图2为本申请实施例提供的一种利用对话模型进行对话处理的逻辑示意图,以对话系统采用图2所示的处理逻辑为例,在该处理逻辑下,主要可以包括如下几个部分:
1、意图理解
例如,可以基于对话文本进行领域意图理解,以得到该对话文本所属的目标领域。即判断用户的对话需求是针对地图领域的还是开放领域的,从而可以针对性的进行回复,确保对话回复的准确性。
本申请不限定领域意图理解部分的处理环节,例如可以仅包括意图分析环节。该意图分析例如可以采用领域意图理解的模型进行处理,也可以利用该对话模型进行领域意图理解。示例性的,可以基于对话文本,以及,领域意图理解提示模板,生成领域意图理解提示,并将领域意图理解提示输入至对话模型,以对该对话文本进行领域意图理解,得到其所属的目标领域。
此处所说的领域意图理解提示模板例如可以如下所示:
“你是一个基于地理位置服务场景下的意图分析模块,你需要根据当前用户输入的对话文本分析用户的需求,给出细分的领域意图。
具体的领域意图包括:地图领域(map domain)、开放领域(open_domain)。
输出时只保留英文。
现在正式开始!
对话文本:${user_norm_input}
领域意图:”。
应理解,上述领域意图理解提示模板中“对话文本”后的“${user_norm_input}”的位置用于添加本申请中用户输入的对话文本。或者说,将本申请中用户输入的对话文本替换至该位置,即得到领域意图理解提示。应理解,下文中在生成对应的提示时,提示模板中形同${xxxx}的位置均需要替换为地图应用中对应参数值,具体可根据实际情况进行替换。
需说明,当采用对话模型进行领域意图理解时,还可以在对话模型的训练过程中,采用第五训练数据子集进行训练。该第五训练数据子集可以是包括:基于用户对话作为输入,将该对话对应的领域意图作为输出标签的样本数据。通过第五训练数据子集可以加强对话模型对领域意图识别的准确性。当采用多个训练数据子集进行训练时,本申请不限定在哪个阶段使用第五训练数据子集进行训练,例如可以将第五训练数据子集作为最后一个训练环节等,也可以是在得到初始对话模型之后,先使用第五训练数据子集进行训练,然后再以强化学习方式依据人类反馈优化初始对话模型。
再例如,还可以包括语义校正环节。即,先对对话文本进行语义校正,使用校正后的对话文本,以及,领域意图理解提示模板,生成领域意图理解提示。通过语义校正,可以避免由于用户对话内容输入错误,或者,语音识别错误而造成的对话模型对用户意图识别的不准确,提升模型对领域意图的识别准确性。
本申请不限定语义校正的方式,例如,可以采用语义校正的模型进行校正,也可以利用该对话模型进行语义校正。示例性的,可以根据对话文本以及语义校正提示模板,生成语义校正提示;然后,将语义校正提示输入至对话模型,以对该对话文本进行语义校正,得到校正后的对话文本。
此处所说的语义校正提示模板例如可以如下所示:
“你是一个地图领域的语义校正模块,需要针对用户输入的对话文本理解原来含义,并尽可能的输出规范化的文本,
对话文本:${ASR_result},
校正后的对话文本:”。
示例性的,若用户实际想知道附近最近的酒店的位置,但是由于语音识别错误,导致语音识别之后的用户的对话文本为“帮我搜索附近最近的九点”。这种情况下,当将该对话文本添加至语义校正模板并输入至对话模型之后,得到校正后的对话文本为“帮我搜索附近最近的酒店”。
应理解,当采用对话模型进行语义校正和领域意图理解时,输入至领域意图理解提示模板中的对话文本即为校正后的对话文本。此外,若采用对话模型对用户输入的对话文本进行语义校正,则在后续对话处理过程中,若需要用到用户输入的对话文本,则均为经过语义校正处理之后的对话文本。
可选地,当采用对话模型进行语义校正和/或领域意图理解时,若用户之前存在至少一轮历史对话,即,当前处于多轮对话的场景,则除使用当前所获取的用户的对话文本之外,还可以进一步结合多轮对话中的历史对话文本生成相应提示,以提高对话模型语义校正和/或领域意图理解的准确性。在该实现方式下,上述提示的模板中可以具有添加历史对话的条目,例如可以如下所示:会话历史:${chat_history}。对于该条目在模板中存在的位置不做限定,例如可以是在“对话文本”之前或之后的位置。
应理解,本申请不限定在模板中添加的多轮对话的具体轮次数,例如可以是最多将此次对话过程中最近的5轮对话用于生成相应的提示。
应理解,上述仅是示例性的给出了意图理解部分所包括的处理环节。具体实现时,该部分还可以包括其他的处理环节,例如,语义理解环节等。
2、目标领域下的对话处理,分为面向地图领域的对话处理和面向开放领域的对话处理。
2.1面向地图领域的对话处理,即,目标领域为地图领域。
继续参照图2,在该面向地图领域的对话处理,例如可以包括如下几个处理环节:子领域意图理解、词槽提取、回复生成。可选的,在词槽提取环节和回复生成环节之间还可以包括调用服务,和/或,交互设计环节。应理解,处理环节的划分仅是一种示例,也可以根据实际需求进行环节的合并或者进一步拆分等。
下面通过一个具体的流程进行说明,图3为本申请实施例提供的第二种对话处理方法的流程示意图,如图3所示,步骤S102可以包括如下步骤:
S201、根据对话文本以及子领域意图理解提示模板,生成子领域意图理解提示。
地图领域的子领域的划分具体与地图应用所能实现的LBS有关,例如可以是导航大类、导航相关指令、通用指令、切换语音、路况信息查询、限行信息查询、通用查询等中的任意一项或多项子领域。
例如,上述子领域意图理解提示模板例如可以如下所示:
“你是一个LBS场景下的意图分析模块,你需要根据用户当前输入的对话文本,给出细分的子领域意图。具体的子领域意图有如下数种:
导航大类(navigation)
导航相关指令(navi_command)
通用指令(general_command)
切换语音(set_voice)
路况信息(road_condition)
限行信息(restrict)
通用查询(general_inquire_info)
输出时只保留英文。
现在正式开始!
对话文本:${user_norm_input}
领域意图:”。
可选地,若用户之前存在至少一轮历史对话,则除使用当前所获取的用户的对话文本之外,还可以进一步结合多轮对话中的历史对话文本生成相应提示。
S202、将子领域意图理解提示输入至对话模型,以对对话文本进行领域意图理解,得到对话文本所属的地图领域的目标子领域。
应理解,上述针对子领域意图的获取可以是在获取目标领域之后所执行的动作,也可以是在一开始进行目标领域获取时,在目标领域为地图领域时,进一步识别到的子领域。也就是说,可以将子领域识别与目标领域识别在一次模型处理中得到。在该实现方式下,上述子领域意图理解提示模板例如可以如下所示:
“你是一个LBS场景下的意图分析模块,你需要根据当前用户输入的对话文本,确定目标领域,若目标领域为地图领域,则给出确定的子领域。具体的子领域意图有如下数种:
导航大类(navigation)
导航相关指令(navi_command)
通用指令(general_command)
切换语音(set_voice)
路况信息(road_condition)
限行信息(restrict)
通用查询(general_inquire_info)
对于无法归类到以上领域内的意图,设定为开放领域(open_domain)。输出时只保留英文。
现在正式开始!
对话文本:${user_norm_input}
领域意图:”。
示例性的,对话文本例如可以是“现在XXX路的路况是什么?”,则将包括该对话文本的子领域意图理解提示输入至对话模型之后,得到对话文本所属的地图领域的目标子领域例如可以是“路况信息”。
需说明,当采用对话模型进行子领域意图理解时,还可以在对话模型的训练过程中,采用第六训练数据子集进行训练。该第六训练数据子集可以是包括:基于用户对话作为输入,将该对话对应的子领域意图作为输出标签的样本数据。通过第六训练数据子集可以加强对话模型对子领域意图识别的准确性。当采用多个训练数据子集进行训练时,本申请不限定在哪个阶段使用第六训练数据子集进行训练,例如可以将第六训练数据子集作为最后一个训练环节等,也可以是在得到初始对话模型之后,先使用第六训练数据子集进行训练,然后再以强化学习方式依据人类反馈优化初始对话模型。
需说明,上述步骤S201和S202即为图2所示的子领域意图理解环节的处理步骤。
S203、根据对话文本,获取对话文本的词槽。
需说明,本步骤即为图2所示的词槽提取环节的处理步骤。
本申请不限定上述词槽的个数和种类,本领域技术人员可根据实际情况进行设定。示例性的,例如可以包括下述4种词槽中的一种或多种。分别是“where、what、constrait、attriubte”,每个词槽中可包括1个或多个词语。其中where表示检索的地理范围,what表示检索的目标,constraint表示对检索的约束条件,attribute表示期望得到的信息。
具体包括哪些词槽与子领域相关,或者说与地图应用中各LBS服务所需的信息有关。示例性的,针对通用查询子领域的词槽例如可以包括上述的“where、what、constrait、attriubte”4个词槽,针对路况信息子领域,其提取的词槽例如可以是“where、when”2个词槽等。
应理解,具体实现时,也可以根据对话需求,添加其他类型的词槽,或者减少一个或多个类型的词槽等。
示例性的,例如对话文本为“查询当前位置附近的酒店”,则该对话文本对应的词槽可以表示为<当前位置,酒店,无,当前位置+价格>。
调度模块例如可以采取下述任一方式获取对话文本的词槽:
方式1:将对话文本输入至地图领域的语言模型中,以实现词槽提取。
此处所说的地图领域的语言模型可以是地图应用的对话系统之前所使用的语言模型,即,面向地图领域的语言模型,或者说,面向任务的语言模型。该语言模型除词槽提取之外是否还具有其他的功能,本申请不做限定。
关于如何利用地图领域的语言模型实现词槽提取,可参照现有技术,在此不再赘述。
方式2:根据对话文本,以及,目标子领域对应的词槽提取提示模板,生成目标子领域对应的词槽提取提示,然后,将所述目标子领域对应的词槽提取提示输入至所述对话模型,以对对话文本进行词槽提取,得到对话文本的词槽。
对话文本视其子领域的不同,可能会有一种或多种词槽。对于这些词槽,可以分别利用对话模型进行词槽提取,即,分别生成每种词槽提取提示,然后基于该提示分别获取对应的词槽。也可以利用对话模型实现一次性对全量词槽的提取。
示例性的,以子领域为通用查询为例,该子领域例如可以对应4种词槽,分别为“where、what、constrait、attriubte”,当采用一次性全量提取时,词槽提取提示模板例如可以如下所示:
“你是一个LBS场景下的词槽提取模块,需要对用户输入的对话文本进行语义分析,从中提取相应的词槽。注意,语义可以适当地进行规范化。
我们约定,搜索意图下的词槽为四元组<where,what,constrait,attriubte>
where表示用户检索时所期望的地理范围,如“XX城市”,“XX区”,“用户位置”
what表示用户检索的具体目标,如“酒店”,“XX大学”
constrait表示对检索目标的约束条件,如“豪华型”,“亲子”
attriubte表示期望得到的检索目标的哪些信息,如“营业时间”,“人均价格”
以下是一个例子:
例子1
用户输入:附近加油站及价格
输出:{"where":"用户位置","what":"加油站","constrait":[],"attriubte":["商品价格"]}
现在正式开始!
用户输入:”
当针对不同的词槽分别进行提取时,面向通用查询的子领域的词槽提取提示模板例如可以如下所示:
针对where词槽的词槽提取提示模板例如可以如下所示:
“你是一个地理信息提取器,你需要从用户输入的对话文本中,提炼出可供地理检索引擎接受的地理位置参数(区域代码(adcode),城市代码(citycode))。注意提炼过程需要一步一步地思考,并给出具体的过程,最终可以按json格式输出。以下是一个例子。
例子1
用户输入:XX市区有哪些好玩的。
分析过程:
1.用户需求的地理位置信息是“XX市区”;
2.通常意义上,XX市区分别是XX区、XX区;
3.地理检索引擎输入参数需要区划编码,那么这些区域对应adcode分别是******、******。
输出:
{"adcode":["******","******"],"citycode":[]}
现在正式开始!
用户输入:${user_input}
分析过程:”。
针对what词槽的词槽提取提示模板例如可以如下所示:
“你是一个地理信息提取器,你需要从用户输入的对话文本中,提炼出可供地理检索引擎接受的关键词参数(keywords)。注意用户可能的口语化表述,并转化为通用信息库中相近的表达。注意提炼过程需要一步一步地思考,并给出具体的过程,最终按json格式输出。以下是两个例子。
例子1
用户输入:附近哪有收废品的分析过程:
1.用户需求的检索目标是“收废品的”;
2.检索引擎需要更规范的输入文本,根据相关通用信息,相近的同义词有“废品回收”,“废品站”
3.考虑到语义相近,选择“废品回收”
输出:{"keywords":"废品回收"}”
例子2
用户输入:推荐个吃饭的地
分析过程:
1.用户需求的检索目标是“吃饭的地”;
2.检索引擎需要更规范的输入文本,根据相关通用信息,相近的同义词有“美食”,“餐厅”
3.考虑到语义相近,选择“美食”
输出:{"keywords":"美食"}
现在正式开始!
用户输入:${user_input}
分析过程:”。
针对Constraint词槽的词槽提取提示模板例如可以如下所示:
“你是一个地理信息检索模块中的条件提取器,你需要从用户输入的对话文本中,提炼出可供地理检索引擎接受的限制字段(brand,distance,price,opentag)。注意提炼过程需要一步一步地思考,并给出具体的过程,最终按json格式输出。以下是一个例子。
例子1
用户输入:1000以上的XX酒店
分析过程:
1.用户需求的检索目标是“酒店”;
2.在这一检索目标上有多个限制条件,“XX”,“1000以上”
3.根据给定的限制字段,以及通用信息,在“品牌”上限定为“XX”,在“价格”上限定为“1000以上”
输出:{"brand":["XX"],"distance":[],"price":[">1000"],"opentag":[]}
现在正式开始!
用户输入:${user_input}
分析过程:”
针对Attribute词槽的词槽提取提示模板例如可以如下所示:
“你是一个地理信息提取器,你需要从用户输入的对话文本中,提炼出可供地理检索引擎接受的并且用户需求的透出字段(opentag,opentime,comment,introduction)。注意提炼过程需要一步一步地思考,并给出具体的过程,最终按json格式输出。
可参考的通用信息正排字段有:${poi_schema}
以下是一个例子。
例子1
用户输入:XX大学啥时候开放
分析过程:
1.用户需求的检索目标是“XX大学”;
2.用户想了解的信息是“XX大学”“啥时候开放”
3.根据通用信息和用户需求,判断可使用的正排透出字段为opentime(营业时间)
输出:{"attribute":["opentime"]}
现在正式开始!
用户输入:${user_input}
分析过程:”。
若将上述词槽应用于地图应用中,则上述通用信息例如可以包括地图应用中的POI信息、地理编码信息中的一项或多项。应理解,在上述实现方式下,上述4个词槽的提取过程可以并行也可以顺序执行,若顺序执行本申请不限定其实际执行顺序。此外,其他子领域对应的词槽提取提示模板所包括的内容可参照上述通用查询子领域对应的词槽提取提示模板进行设计,例如,可同上述词槽提取提示模板一样采用逐步分析的方式,让模型获取对应的词槽;也可以在词槽提取提示中根据具体子领域添加分析例子,以让对话模型能更好的实现词槽提取。
需说明,当采用对话模型进行词槽提取时,还可以在对话模型的训练过程中,采用第七训练数据子集进行训练。该第七训练数据子集可以是包括:基于用户对话作为输入,将该对话对应的词槽作为输出标签的样本数据。通过第七训练数据子集可以加强对话模型对词槽提取的准确性。当采用多个训练数据子集进行训练时,本申请不限定在哪个阶段使用第七训练数据子集进行训练,例如可以将第七训练数据子集作为最后一个训练环节等,也可以是在得到初始对话模型之后,先使用第七训练数据子集进行训练,然后再以强化学习方式依据人类反馈优化初始对话模型。
由于上述对话模型为基于大规模语言模型进行微调获取的,因此基于该对话模型进行词槽提取可以更加准确的理解用户对话的语义,进而可以更加精准的实现针对用户对话的词槽提取。
示例性的,以用户输入的对话文本为“XX城市适合亲子公园及开放时间”为例,对话模型可以根据上述词槽提取提示模板中给出的按顺序分析的思维链,逐步解析出下游所需的词槽。
示例性的,针对上述用户输入的对话文本,对应的词槽四元组<where、what、constrait、attriubte>例如可以是<XX城市,公园,适合亲子,位置+营业时间>。
方式3:将对话文本输入至地图领域的语言模型,获取对话文本的第一词槽;根据对话文本,以及,目标子领域对应的词槽提取提示模板,生成目标子领域对应的词槽提取提示;将目标子领域对应的词槽提取提示输入至对话模型,以对对话文本进行词槽提取,得到对话文本的第二词槽;使用第二词槽对第一词槽进行补充,得到对话文本的词槽。
关于如何使用地图领域的语言模型得到第一词槽可以参见方式1,关于如何使用对话模型得到第二词槽可以参见方式2。下面着重介绍如何使用第二词槽对第一词槽进行补充,得到对话文本的词槽。
示例性的,调度模块可以以第一词槽提取出来的内容为主,若第二词槽中提取出了第一词槽中缺失的词槽,则将第二词槽中该词槽添加至第一词槽中缺失的词槽的位置,作为最终的针对对话文本的词槽。
例如,若调度模块获取的第一词槽仅包括“where、what、attriubte”3个词槽,而缺失了“constrait”词槽。而第二词槽提取出了“constrait”词槽,此时,则可以将第二词槽中的“constrait”词槽添加至第一词槽中,作为最终的针对对话文本的词槽。
由于地图领域的语言模型往往对于地图领域的知识有较充分的学习,因此,地图领域的语言模型针对用户对话的词槽提取往往较为准确。此外,通过对话模型对第一词槽进行补充,可以进一步结合大规模语言模型的强大的语义理解能力,避免由于语义理解能力造成第一词槽提取不完整,而影响最终的对话回复的生成。即通过上述方式可以提升词槽提取的准确性,进而进一步确保最终生成的对话回复的准确性,提升用户体验。
S204、根据目标子领域,以及,词槽,获取该对话文本的对话回复内容。
在地图领域中,用户输入的对话均针对特定的地图领域的任务,例如POI搜索、导航路线规划等。其中,有的任务无需借助于其他工具即可实现,有的任务需要借助于相应的LBS来实现。因此,本步骤中,调度模块可以针对是否需要调用LBS,采取不同的处理方式。需说明,该部分内容即上述调用服务环节的处理步骤,这里所调用的服务即地图应用中所提供的LBS。
示例性的,若目标子领域为目标地理位置服务对应的子领域,则调度模块可以调用目标地理位置服务基于词槽获取对话回复内容。
例如,若目标子领域为“路况信息”,对应的目标地理位置服务为“路况信息查询”,则调度模块可以调用路况信息查询服务,并基于提取出来的词槽,利用路况信息查询服务查询用户对话所需求的路况信息,作为对话回复内容。
若目标子领域非任一地理位置服务对应的子领域,则将词槽作为对话回复内容。在这种情况下,目标子领域无需调用地理位置服务,仅需使用对话模型进行词槽提取即可实现对话回复内容的获取。例如,若用户输入的对话文本为“帮我切换为XXX语音包”,此时,目标子领域为“切换语音”,这种情况下,目标子领域无需通过调用地理位置服务获取对话回复内容,而仅需要通过执行用户的切换语音包的指令即可完成任务。因此,在这种情况下,调度模块将包括用户输入的对话文本的词槽提取提示输入至对话模型,以实现对该子领域对应的词槽的提取。该子领域对应的词槽例如可以是<action、what>,对话模型提取出来的词槽例如可以是<切换,XXX语音包>。由于用户并没有通过对话系统获取额外信息的需求,仅需实现语音包的切换,因此,在切换语音包完成之后即可直接将提取出来的词槽作为对话回复内容,完成后续对话回复。
S205、根据对话回复内容、对话文本,以及,对话回复提示模板,生成对话回复提示。
上述对话回复提示模板例如可以如下所示:
“你是一个对话机器人,名叫“XX”。你需要根据用户的需求,以及对话回复内容返回的结果,生成一段给用户的回复文本,注意使用友好、得体的措辞,使用活泼、开朗的风格回复用户,回复语言使用中文,在100字以内回复,严禁编造内容。当对话回复内容结果为空时,可回复“我还不会回答这个问题,请换个方式问问我呢”等类似话术。
对话回复内容:${Conversation_reply_content}
对话文本:${user_raw_input}
生成的回复文本:”。
可选地,当采用对话模型进行对话回复生成时,除使用当前所获取的对话文本、对话回复内容之外,还可以进一步结合子领域意图生成相应提示,以提高对话模型对话回复生成的准确性。在该实现方式下,上述提示的模板中可以具有添加子领域意图的条目,例如可以如下所示:子领域意图:${user_domain_intent}。对于该条目在模板中存在的位置不做限定,例如可以是在“对话文本:${user_raw_input}”之前或之后的位置。
S206、将对话回复提示输入至对话模型,获取对话回复。
示例性的,若对话文本为“XX城市适合亲子公园及开放时间”,提取的词槽为“<XX城市,公园,适合亲子,位置+营业时间>”,通过调用对应子领域对应的服务,例如可以是通用查询服务,确定适合亲子的公园为“XX公园,对应的开放时间为早上8:00”。将对话回复提示输入至对话模型,获取对话回复例如可以是“XX城市适合亲子的公园为XX公园,对应的开放时间为早上8:00”。
需说明,上述步骤S205和S206即为图2所示的回复生成环节的处理步骤。
可选的,在对话系统中还可以包括交互设计模块,即对应图2所示的交互设计部分,该交互设计模块用于控制对话回复的输出方式。示例性的,若对话系统是地图应用对应的地图系统,则交互设计模块例如可以控制对话回复输出至地图应用所部署的终端的方式。例如,对话系统可以控制对话回复在终端的展示方式,例如在终端显示界面的展示位置。
本实施例中,通过对话模型可以实现地图领域的对话处理。调度模块可以利用对话模型强大的语义理解能力,实现对对话文本的子领域意图的识别,提升用户的意图识别的准确性。此外,调度模块可以根据对话文本,利用对话模型获取对话文本的词槽,并据此获取对话回复内容,通过这种利用对话模型获取词槽的方式,调度模块可以实现对用户对话中所表征的意图的准确提取,进而可以据此调用LBS实现用户对话文本表征的任务,进而获取对话回复内容,或直接根据词槽生成对应的对话回复。由于利用对话模型可以提升词槽提取的准确性,因此提升了调度模块调用LBS基于词槽为用户提供服务的性能,也提升了整体的对话回复准确性,提升了用户体验,使对话过程更加智能化。
应理解,上述地图领域的对话处理中,使用对话模型进行子领域意图理解、词槽提取、对话回复生成等操作。具体实现时,也可以是部分操作使用对话模型进行处理,其他操作使用其他模块来实现等,具体与地图领域的对话处理逻辑有关,本申请不以此为限。
2.2目标领域为开放领域。
继续参照图2,在该面向开放领域的对话处理,例如可以包括如下几个处理环节:任务构建、任务排序&任务队列、思考&调用工具、整理结果、思考&创建子任务、回顾与整理&完成反馈。
图4为本申请实施例提供的第三种对话处理方法的流程示意图,如图4所示,该方法可以包括如下步骤:
S301、根据对话文本,以及,任务构建提示模板,生成任务构建提示。
示例性的,任务构建提示模板例如可以如下所示:
“你是一个开放领域对话智能体,从回答简单的问题到提供深入的解释和讨论各种问题都可以完成。你有独立思考的能力,能够在不寻求用户帮助的情况下,通过多轮独立思考解决任务。生成的任务应该具有以下格式:
{"description":"xxxx"}
其中description表示了结合对话交流历史上下文,及当前用户输入所产生的任务描述。
现在正式开始!
对话文本:${user_raw_input}
生成的任务:”
可选地,若用户之前存在至少一轮历史对话,则除使用当前所获取的用户的对话文本之外,还可以进一步结合多轮对话中的历史对话文本生成相应提示
S302、将任务构建提示输入至对话模型,以获取对话文本对应的任务。
应理解,上述对话文本对应的任务可以有一个或多个,本申请不对其进行限定。示例性的,若对话文本为“XX大学在哪,导航去那”,则对话文本对应的任务例如可以包括“去XX大学的导航路线”,以及,“XX大学的位置”两个任务。
示例性的,对话文本例如可以是“讲一段相声”,本步骤中利用上实现方式,获取对话文本对应的任务例如可以是“通过调用各种工具,为用户讲一段相声”。
本步骤中,调度模块利用任务构建提示以及对话模型可以实现对用户输入的对话文本表征的任务的详细描述,而且,针对用户输入的对话文本,若表征多个任务,通过本步骤的处理方式可以实现对对话文本所表征的任务的拆解,进一步明确了任务,便于后续可以对生成的任务进行进一步精细化处理。
应理解,上述步骤S301和步骤S302即为图2所示的任务构建环节的处理步骤。
S303、获取任务的对话回复内容关键词。
根据任务的不同,任务的对话回复内容也会不同,有的对话回复内容中可能包括与任务无关的信息,因此,本步骤中调度模块获取关键词提取提示,以据此对对话回复内容中与任务处理相关的信息作为关键词提取出来,进而实现任务的解决。
示例性的,若上述步骤S3023中通过调用“个人偏好信息查询工具”获取用户的个人偏好信息,该用户的个人偏好信息往往包括诸多内容,例如用户对于“酒店、美食、消费等级、语音包”等的偏好。然而,上述用户的个人偏好信息并不一定全部与当前任务的处理相关,因此,通过本步骤中的关键词提取可以实现对处理任务所需的用户的个人偏好信息的提取,即实现对对话回复内容中的关键词的提取。
本步骤中,根据生成的任务的数量的不同,可以采取不同的实现方式。示例性的,若对话文本对应的任务为1个,则调度模块可以直接根据该任务,利用对话模型获取该任务的对话回复内容关键词。
若对话文本对应的任务为多个,则调度模块可先对该多个任务进行排序,然后依次获取任务队列中任务的对话回复内容关键词,或者,可以采用随机处理的方式对任务进行处理,或者,可以根据任务的生成顺序对任务进行处理等。
以包括多个任务为例,调度模块可以对多个任务进行排序,该部分内容即对应图5所示的任务排序&任务队列部分。本申请不限定任务排序的方式,例如,可以采用任务排序的模型进行处理,也可以根据任务的优先级进行排序,也可以根据任务之间的依赖关系进行排序,也可以利用该对话模型进行任务排序。
示例性的,可以根据任务,以及,任务优先级排序提示模板,生成任务优先级排序提示,并将任务优先级排序提示输入至所述对话模型,获取对任务按照优先级排序后生成的任务队列,从而依次获取任务队列中任务的对话回复内容关键词。
示例性的,上述任务优先级排序提示模板例如可以如下所示:
“你是一个开放领域对话智能体,负责对任务进行排序。你能够根据任务描述,洞察任务之间可能存在的优先级关系。
你接受一个数组,数组的每个元素表示一个任务,每个任务包含description字段,分别表示任务的具体描述。
你输出一个数据,表示按优先级从高到低排序的任务列表。
以下是一个例子:
例子1
TaskQueue:[{"description":"去XX大学的导航路线"},
{"description":"XX大学的位置"}]
Result:[{"description":"XX大学的位置"},
{"description":"去XX大学的导航路线"}]
现在正式开始!
TaskQueue:${task_queue_information}
Result:”。
可选地,调度模块还可以根据对话文本、任务,以及,任务优先级排序提示模板,生成任务优先级排序提示,并将任务优先级排序提示输入至对话模型,获取对任务按照优先级排序后生成的任务队列,从而依次获取任务队列中任务的对话回复内容关键词。这种情况下,由于增加了对话文本,增加了任务优先级排序提示的信息数量,因此,后续的,若将该任务优先级排序提示输入至对话模型进行任务队列排序,可以进一步提升任务队列排序的准确性。
在获取任务优先级排序之后,调度模块可以将任务按照优先级排序压入对话系统的任务队列中,后续的,调度模块依次获取任务队列中任务的对话回复内容关键词,然后根据任务队列中任务的对话回复内容关键词,获取对话文本的对话回复。
下面针对一个任务,具体如何获取其对话回复内容关键词进行详细说明。图5为本申请实施例提供的第四种对话处理方法的流程示意图,如图5所示,具体可以包括如下步骤:
S3031、根据任务,以及,任务处理提示模板,生成任务处理提示。
上述任务处理提示模板用于提示对话模型判断当前任务是否需要调用工具,如果确定需要,则调用工具进行任务处理,以获取任务处理结果。通过这种方式可以使对话模型可以获取到自身无法生成的外部知识,以及实时信息,扩大对话模型的应用场景,提升用户体验。
本申请不限定调度模块可调取的外部工具的类型,例如可以包括计算器、天气预报工具、个人偏好信息查询工具、第三方应用软件(APP)调用工具等中的任意一项或多项。
示例性的,上述任务处理提示模板例如可以如下所示:
“你是一个开放领域对话智能体,你负责解决给定的具体任务。在你自身不能独立解决任务时,你可以借助外部工具获取更多的信息来辅助你的判断,你可以使用工具箱中的一个或多个工具。如果你能直接回答,也可以不使用工具,而直接生成处理结果。
工具箱包括:
CalculatorTool:{
"name":"CalculatorTool",
"description":"可以进行科学计算,获取准确的结果",
"input_param":{
"expression":"要计算的表达式"}}
WeatherTool:{
"name":"WeatherTool",
"description":"可以获取某时某地的天气情况",
"input_param":{
"location":"需要预报的地点",
"time":"需要预报的时间点"}}
UserPreferTool:{
"name":"UserPreferTool",
"description":"获取用户在各个方面的偏好数据",
"input_param":{
"user_id":"需要查询的用户id"}}
AppTool:{
"name":"AppTool",
"description":"外部指令,对其他APP进行操作",
"input_param":{
"app_id":"需要调用的APPid",
"operation":"具体的操作指令,如开启/退出"}}
你返回一个数据,表示要使用的工具以及对应的输入参数,形如
[{"name":"xxxx",
"input_param":{...}}]
现在正式开始!
当前任务:${task_description}
选择的工具:
"name":"xxxx",
"input_param":{...}”。
S3032、将任务处理提示输入至对话模型,以获取任务的处理结果。
本步骤中,调度模块将任务处理提示输入至对话模型,以获取对话模型输出的任务处理结果。
S3033、根据任务的处理结果,获取任务的对话回复内容。
本步骤中,调度模块根据任务的处理结果,获取任务的对话回复内容的方式和任务的处理结果表征的内容相关。
示例性的,若处理结果表征任务无需调用工具箱中的工具执行,则将处理结果作为任务的对话回复内容。
例如,若用户输入的对话文本为“你叫什么名字”,创建的对应的任务为“告知用户对话系统的名字”,则本步骤中,调度模块利用对话模型可以直接输出对话系统的名字,而无需调用工具。对话模型输出的对话系统的名字即为对话回复内容。
若处理结果表征任务需要调用工具箱中的目标工具执行,以及,目标工具所需的参数,则获取目标工具所需的参数的取值,并根据目标工具所需的参数的取值,调用目标工具获取任务的对话回复内容。
例如,若用户输入的对话文本为“帮我算一下2+2等于多少”,创建的对应的任务为“通过调用工具,计算2+2等于多少”,则本步骤中,调度模块利用对话模型输出需要调用的工具为计算器,对应的参数为“2+2等于多少”,即要计算的表达式。后续的,调度模块调用计算器,对该要计算的表达式进行计算,以获取任务的对话回复内容。在该示例下,“4”即为对话回复内容。
或者,若确定的需要调用的工具的类型为天气预报工具,目标工具所需的参数的类型是“需要预报的地点”,以及,“需要预报的时间点”,则调度模块可以从任务中获取用户对话中表述的上述内容。后续的,调度模块调用天气预报工具,对给出的时间以及地点的天气情况进行检索,以获取任务的对话回复内容。
以当前任务为“通过调用各种工具,为用户讲一段相声”为例,调度模块利用对话模型判断当前需要调用的工具为若调用的工具类型“个人偏好信息查询工具”,目标工具所需的参数类型用户ID,则调度模块例如可以获取用户ID,然后利用个人偏好信息查询工具,查询该ID对应的用户个人偏好信息,例如可以包括酒店、美食、消费等级、语音包等方面的用户个人偏好信息。
应理解,调度模块获取工具所需参数的方式和任务以及对话模型的实际应用场景相关。示例性的,若任务中包括工具所需的参数,则调度模块可以从任务中获取该参数;例如,若任务为“通过调用工具计算2+2等于多少”,则调度模块可以直接从任务中获取要计算的表达式参数。若任务中不包括工具所需的参数,例如任务中通常不包括用户ID,而个人偏好信息查询工具的使用需要获取用户ID参数,此时,若对话模型为地图应用对应的对话系统中的对话模型,则调度模块例如可以从地图应用的终端获取用户ID。
大规模语言模型依靠自身基于通用语料进行预训练过程中的知识,能够回答一部分的问题;但是,在现有技术中,当问题涉及到一些实时信息时,则不能给出有效的回答。通过上述实现方式,调度模块可以利用恰当的提示,让大规模语言模型分析出生成答复所需的具体信息,并确定是否需要调用工具获取对应的信息,辅助大规模语言模型回答用户问题,进而实现更加智能的服务调度与对话回复。
需说明,上述步骤S3031-S3033即为图2所示的思考&调用工具环节的处理步骤。
S3034、根据任务、任务的对话回复内容,以及,关键词提取模板,获取关键词提取提示。
上述关键词提取提示模板例如可以如下所示:
“你是一个开放领域对话智能体,你负责将外部信息进行整理与提炼,记录关键信息。
你接受两部分输入,一个是当前任务的具体描述,另一个是从前一个智能体获取到的对话回复内容。
你需要从后者中提炼可能与任务描述相关的信息,返回该信息。
现在正式开始!
给定任务:${task_description}
对话回复内容:${agent_recived_information}
对话回复内容关键词:”
S3035、将关键词提取提示输入至对话模型,以获取针对任务的对话回复内容关键词。
示例性的,以给定任务为“通过调用各种工具,为用户讲一段相声”,对话回复内容为通过个人偏好信息查询工具获取到的用户的偏好,且该偏好包括用户在酒店、美食、消费等级、语音包等方面的偏好信息为例,对应的通过上述方法例如可以发现用户偏好使用的语音包数据为某一相声演员XXX的语音包,则调度模块利用对话模型提取到对话回复内容关键词为“XXX相声演员”。
需说明,上述步骤S3034-S3035即为图2所示的整理结果环节的处理步骤。
S3036、根据对话回复内容关键词,以及,任务状态提示模板,生成任务状态提示。
上述任务状态提示用于指示对话模型确定所述任务的执行状态,以及,在任务处于未执行完毕的状态时,输出为该任务创建的子任务。
上述任务状态提示模板例如可以如下所示:
“你是一个开放领域对话智能体,你需要根据前面多个智能体思考、获取、并提炼的信息判断当前任务是否已经完成,如果未完成,则生成新的子任务。
生成的任务应该具有以下格式:
{"description":"xxxx"}
现在正式开始!
当前正在解决的给定任务:${task_description}
对话回复内容关键词:${agent_key_information}
生成的任务列表:”
以当前正在解决的给定任务是“通过调用各种工具,为用户讲一段相声”,对话回复内容关键词为“XXX相声演员”为例,由于当前虽然确定用户偏好XXX相声演员,但是并未完成“通过调用各种工具,为用户讲一段相声”这一任务,因此对话模型判断当前任务并未完成,则创建子任务为“为用户讲一段XXX的相声、或类似风格的相声”。
应理解,上述任务状态提示模板中的当前正在解决的给定任务为当前正在处理的任务,例如,若当前正在处理的任务为对话模型创建的子任务,则上述任务状态提示模板中的当前正在解决的给定任务即为对话模型创建的子任务。
S3037、将任务状态提示输入至对话模型,获取任务的执行状态。
若任务的执行状态表征任务未执行完毕,则将该模型输出的子任务作为新的任务,返回执行步骤S3031,直至对话模型确认任务执行完毕。
示例性的,若创建的子任务为“为用户讲一段XXX的相声、或类似风格的相声”,则将该子任务压入任务队列中,将其作为新的任务,执行上述步骤S3031,直至任务执行完毕。
若任务的执行状态表征任务执行完毕,则执行步骤S304。
需说明,上述步骤S3036-S3037即为图2所示的思考&创建子任务环节的处理步骤。
S304、根据对话回复内容关键词、对话文本,以及,对话回复提示模板,生成对话回复提示。
应理解,上述对话回复内容关键词可以包括任务处理过程中生成的全部的对话回复内容关键词,即包括据此创建的子任务处理过程中生成的回复内容关键词。
上述对话回复提示例如可以如下所示:
“你是一个开放领域对话智能体,你需要结合所有对话回复内容,组织一段通顺的自然语言文本,反馈给用户。注意使用友好、得体的措辞,使用活泼、开朗的风格回复用户,回复语言使用中文,在100字以内回复,严禁编造内容。
现在正式开始!
对话文本:${user_raw_input}
对话回复内容关键词:${agent_key_information_list}
对话回复:”。
可选地,当采用对话模型进行对话回复生成时,若用户之前存在至少一轮历史对话,则除使用当前所获取的用户的对话文本之外,还可以进一步结合多轮对话中的历史对话文本生成相应提示
S305、将对话回复提示输入至对话模型,获取对话回复。
示例性的,以对话文本为“讲一段相声”,对话回复内容关键词为“XX音频播放APP”、“XXX的相声”为例,生成的对话回复例如可以是“根据您的喜好,即将为您跳转XX音频播放APP,播放XXX的相声”。
需说明,上述步骤S304-S305即为图2所示的回顾与整理&完成反馈环节的处理步骤。
本实施例中,当目标领域为开放领域,且调度模块根据对话文本获取对话回复时,调度模块首先将对话文本和任务构建提示输入至对话模型,以获取对话文本对应的任务;然后,获取任务的对话回复内容关键词;将对话文本、对话回复内容关键词,以及,对话回复提示输入至对话模型,获取对话回复。通过这种方式,调度模块可以充分利用调度模块强大的语义理解能力,以及,针对开放领域的强大的回复生成能力,利用任务的对话回复内容关键词准确的针对用户的对话文本所表征的用户的意图,进行针对性的回复生成,扩展了地图应用中对话系统的应用场景,即既能针对地图领域进行对话回复的生成,同时又可以为用户提供开放领域的对话回复的生成,进一步提升了用户的使用体验,更好的满足了用户的使用需求,使对话过程更加智能化,扩大了地图应用的对话场景。此外,本实施例中,调度模块可以利用对话模型对开放领域内复杂对话文本表征的任务进行拆解,并对拆解后的任务逐个进行处理,具有更加灵活,且任务处理更加精准的效果。
示例性的,下面给出一种可能的模型训练方式,以使微调后的对话模型可以实现前述方法实施例。
图6为本申请实施例提供的一种对话模型训练方法的流程示意图,如图6所示,该方法可以包括如下步骤:
S401、获取训练数据集。
上述训练数据集包括下述至少一个训练数据子集:基于POI的信息构建的第一训练数据子集、基于地理知识构建的第二训练数据子集、基于地图领域的历史POI搜索与导航路径规划数据构建的第三训练数据子集,以及,基于地图领域的历史对话数据构建的第四训练数据子集,具体包括几个训练数据子集与该对话模型所属的对话系统的应用场景相关,或者说,与其能够提供的对话的领域有关,或者说,与其能够实现的对话任务有关。
应理解,该训练数据集除包括上述至少一个训练数据子集之外,还可以包括其他训练数据子集等,本申请不对其进行限定。
本申请实施例不限定获取训练数据集的方式。例如,可以是自行构建的,也可以是从其他设备或平台获取到的,也可以是从可移动存储介质或本地数据库中读取到的,也可以是采用上述任一方式获取训练数据集中的训练数据子集,最后汇总得到训练数据集。在该实现方式下,不同训练数据子集的获取方式可以相同,也可以不同。
另外,上述各训练数据子集中训练数据的构成与该对话模型所属的对话系统的应用场景相关。上述各训练数据子集中训练数据是否具有输出标签与训练方式相关。例如,当采用无监督的训练方式时,训练数据子集中的训练数据可以是无输出标签的训练数据。当采用有监督的训练方式时,训练数据子集中的训练数据可以是有输出标签的训练数据。
S402、使用训练数据集对使用通用语料训练的大规模语言模型进行微调,得到对话模型。
上述对话模型用于处理地图领域的对话,以及,开放领域的对话。
上述使用通用语料训练的大规模语言模型可以是电子设备基于通用语料训练得到的,也可以是从其他设备或平台或可移动存储介质或本地数据库中获取的已经使用通用语料训练好的大规模语言模型。
本步骤中,电子设备使用训练数据集对大规模语言模型进行微调,可以选用现有技术中任意一种对大规模语言模型进行微调的方式,例如提示调优(prompt tuning)、前缀调优(prefix tuning)、大规模语言模型的低阶适应(LoRA)技术等。
以LoRA技术为例,可以采用大规模语言模型的LoRA技术,使用训练数据集对大规模语言模型进行微调,得到对话模型;还可以先采用大规模语言模型的LoRA技术,使用训练数据集对大规模语言模型进行微调,得到初始对话模型;然后,再以强化学习方式依据人类反馈优化初始对话模型,得到对话模型等。
应理解,当上述训练数据集包括多个训练数据子集时,可以采用该多个训练数据子集依次对其进行训练。本申请对训练顺序不做限定,例如可以采用随机顺序,也可以根据不同训练数据子集所采用的训练方式设置其训练顺序等。
本实施例中,电子设备使用基于POI的信息构建的第一训练数据子集、基于地理知识构建的第二训练数据子集、基于地图领域的历史POI搜索与导航路径规划数据构建的第三训练数据子集,以及,基于地图领域的历史对话数据构建的第四训练数据子集中的至少一个训练数据子集,对使用通用语料训练的大规模语言模型进行微调,得到对话模型。
通过上述对话模型训练方法,可以使大规模语言模型学习到地图领域的相关知识,进而可以对用户的对话意图进行准确的识别,以在用户具有地图领域的对话需求时,利用该对话模型提供地图领域的对话回复,在用户具有开放领域的对话需求时,利用该对话模型提供开放领域的对话回复。这样,当将上述对话模型应用于LBS场景中的对话系统中时,对话系统除了可以利用对话模型为用户提供地图领域的对话功能之外,还可以为用户提供开放领域的用户的对话功能,即,能够提供多种领域的对话功能,扩大了LBS场景中的对话系统的应用场景,进而可以更好的满足用户的使用需求,进一步提升用户的使用体验,为用户提供更加智能个性化的服务,扩大了对话系统的对话场景。
进一步的,由于大规模语言模型自身具有强大的语义理解能力,以及,回复生成能力,因此,在此基础上,在利用训练数据集对由于大规模语言模型进行微调得到对话模型之后,在针对地图领域的对话场景下,可以更加准确的理解用户的对话内容,以及,用户的意图,进而可以更准确的为用户提供地图领域的相关服务,例如智能搜索和导航路线规划等。
下面以对话系统应用于地图应用为例,对前述所说的4种训练数据子集进行详细说明:
(一)基于POI的信息构建的第一训练数据子集:
目前,在地图应用的LBS场景中,可以通过对话的方式为用户提供POI检索服务,以使用户获取所检索的POI的信息。因此,可以通过第一训练数据子集,使大规模语言模型学习到POI之间的映射关系,从而使其能够提供POI检索服务。
POI的信息例如可以包括POI ID、POI的地址、POI所在位置的地理编码(Geocoding,GEO)、POI所归属的兴趣面(Area of Interest,AOI)、POI热度、信息丰富度、开放时间、POI类别、POI评价、POI深度信息等中的一项或多项。POI信息中有部分的POI信息会在前端(例如用户终端的显示界面)直接向用户展示,然而部分POI信息则仅供LBS使用,或者,需要在前端中通过进一步操作(例如选择下拉菜单等操作)获取,该部分不会在直接前端展示的POI信息即为POI深度信息。
这里所说的POI热度例如可以是POI的使用频次,例如POI在地图应用中的搜索次数、以POI为起始点或终点或途经点的导航次数等。上述信息丰富度例如可以表征POI的信息所包括的有效信息的数量。这里所说的有效信息即该信息具有该POI的实际信息,而非为空。
根据训练方式的不同,第一训练数据子集的构成有所不同。示例性的,电子设备可以利用第一训练数据子集对大规模语言模型进行有监督训练,也可以进行无监督训练。
当电子设备利用第一训练数据子集进行有监督训练时,第一训练数据子集中例如可以包括下述至少一种类型的样本数据:
1、以POI名称作为输入,以POI的一项或多项信息作为输出标签构建的样本数据;
2、以POI地址作为输入,以该POI地址可能关联的POI名称作为输出标签构建的样本数据;
3、以POI名称、深度信息作为输入,以对应的POI类别作为输出标签构建的样本数据。
应理解,上述基于POI的信息构建的第一训练数据子集中的样本数据仅为示例,第一训练数据子集中还可以包括其他类型的基于POI的信息构建的样本数据,具体可以根据地图应用实际使用时的对话需求设置,本申请不对其进行限定。
当电子设备利用POI的信息对大规模语言模型进行无监督训练时,第一训练数据子集中例如可以包括采用上述POI的一项或多项信息构建的无输出标签的样本数据。
上述第一训练数据子集可以涵盖地图应用中各种类型的POI,每种类型的POI构建的样本数据可以相同,也可以不同。例如,可以增加某些类型的POI的样本数据,和/或,还可以对地图应用的POI的信息进行筛选,以选择特定的POI的信息构建样本数据。例如,热度高于对应阈值的POI的信息,和/或,信息丰富度高于对应阈值的POI的信息等。
通过这种方式,在利用第一训练数据子集进行训练时,可以加强大规模语言模型对特定POI的信息的学习,提升模型对该部分内容的语义理解能力。
具体实现时,增加哪些类型的POI的样本数据可以根据对话需求确定,或者说,根据地图应用中历史对话过程中易出现偏差的负样本确定等。例如可以是增加某些以地理位置归属类型划分的POI的样本数据。示例性的,可以是地名、道路、区划类型中的一项或多项。
上述高质量的POI的信息的评判方式,例如可以是基于预设评分阈值来判定,或者是根据POI热度、POI信息丰富度等维度中的一项或多项对其进行评价等。
(二)基于地理知识构建的第二训练数据子集:
目前,在地图应用的LBS场景中,可以通过对话的方式为用户提供涵盖地理知识的POI检索。例如,用户在输入“XXX郊区中哪里有XXX料理?”的对话时,对话系统可以基于地理知识获取XXX郊区所覆盖的范围,从而在该范围中查找出满足用户对话需求的POI。因此,可以通过第二训练数据子集,使大规模语言模型学习到地理知识相关内容,从而使其能够提供涵盖地理知识的POI检索服务。上述地理知识例如可以包括地理常识、地理百科数据等,本申请不对地理知识所涵盖的具体内容进行限定。
根据训练方式的不同,第二训练数据子集的构成有所不同。示例性的,电子设备可以利用第二训练数据子集对大规模语言模型进行有监督训练,也可以进行无监督训练,也可以使用第二训练数据子集对大规模语言模型进行有监督训练和无监督训练。在该示例下,第二训练数据子集可以包括两个训练数据组,分别是无输出标签的第一训练数据组和存在输出标签的第二训练数据组。其中,第二训练数据组例如是基于地理知识构建的问答对,其中,问句为样本数据的输入,答句为样本数据的输出标签。
(三)基于地图领域的历史POI搜索与导航路径规划数据构建的第三训练数据子集:
目前,在地图应用的LBS场景中,用户会有对POI进行搜索,或者,进行导航路径规划的需求。地图应用基于用户输入的表征POI搜索,或,导航路径规划需求的文本可以输出多个推荐结果。例如,若用户输入“公园”,则地图应用可能输出多个与“公园”这一字段相关的POI,例如“第一公园”、“第二公园”等。用户可以基于多个推荐结果,选择用户真实意图对应的推荐结果。例如,对于POI搜索,用户会基于地图应用生成的POI推荐结果进行选择,以获取POI选择结果;对于导航路径规划数据,用户会基于地图应用生成的导航路径推荐结果进行选择,以获取导航路径选择结果。
上述地图领域的历史POI搜索与导航路径规划数据例如可以包括记录有用户输入的搜索文本、地图应用输出的全部推荐结果,以及,用户最终选择的推荐结果的日志数据。
根据训练方式的不同,第三训练数据子集的构成有所不同。示例性的,电子设备可以利用第三训练数据子集对大规模语言模型进行有监督训练,也可以进行无监督训练。当电子设备利用第三训练数据子集对大规模语言模型进行无监督训练时,第三训练数据子集中例如可以包括采用上述基于地图领域的历史POI搜索与导航路径规划数据的一项或多项信息构建的无输出标签的样本数据。当电子设备利用第三训练数据子集对大规模语言模型进行无监督训练时,第三训练数据子集中例如可以包括以用户输入的POI以及导航路径规划搜索文本以及地图应用输出的每个推荐结果构建的信息对作为输入,以用户是否选择该推荐结果作为标签构建的样本数据。
可选地,上述第三训练数据子集中,可以减少针对高频目的地和/或POI搜索结果的样本数据,从而可以减少针对该目的地的样本数据。相应地,可以增加低频目的地的和/或POI搜索结果的样本数据。通过这种方式,可以使训练数据子集中的样本数据更加均衡,从而可以使大规模语言模型学习到各种目的地和/或POI搜索结果的样本数据,提升大规模语言模型对用户对话文本表征的该类目的地和/或POI搜索结果的识别准确性。
(四)基于地图领域的历史对话数据构建的第四训练数据子集:
目前,在地图应用的LBS场景中,可以通过对话的方式为用户提供各种服务。因此,可以通过第四训练数据子集,使大规模语言模型学习到用户在地图领域下的真实意图。
根据训练方式的不同,第四训练数据子集的构成有所不同。示例性的,电子设备可以利用第四训练数据子集对大规模语言模型进行有监督训练,也可以进行无监督训练。
上述历史对话数据可以是用户历史使用地图应用过程中的真实对话数据,也可以是人工对真实对话数据进行修正后的数据。此处所说的修正可以是指对地图应用对应的对话系统的对话回复所做的修正。例如,对对话系统无效响应/识别有误的历史对话数据的对话回复进行填补或校正,以使此类历史对话数据包括正确的对话回复。
这里所说的对话系统无效响应的对话样本例如可以是现有技术中无法识别用户输入的对话所表征的意图的样本,或者,在任意处理过程中出现无法识别情况的样本。上述识别有误的样本例如可以是现有的对话系统记录的相邻两轮对话意图识别不一致的样本。
当电子设备利用第四训练数据子集对大规模语言模型进行无监督训练时,第四训练数据子集中例如可以包括采用上述地图领域的历史对话数据构建的无输出标签的样本数据。当电子设备利用第四训练数据子集对大规模语言模型进行有监督训练时,第四训练数据子集中例如可以包括以地图领域的用户历史输入的对话文本作为输入,以对话回复作为输出标签构建的样本数据。
在一些实施例中,上述第四训练数据子集中可以增加基于人工修正过的历史对话数据构建的样本数据的占比,以强化大规模语言模型对该部分现有技术中对话系统识别有误的对话的意图理解,以及,生成回复的能力。
另外,地图领域中存在多个子领域,例如导航大类、导航相关指令、通用指令、切换语音、路况信息、限行信息、通用查询等,用户输入的对话的意图可能针对上述子领域中任意一项。可选地,第四训练数据子集中可以涵盖各个不同子领域意图内的样本数据,以增强大规模语言模型对用户输入的对话所表征的针对不同子领域的意图的理解能力,提升大规模语言模型对意图识别的准确度。
应理解,上述任一训练数据子集可以是电子设备自行构建获取的,也可以是从其他电子设备处获取的;还可以是获取的技术人员构建的训练数据子集,本申请不对其进行限定。
通过上述四个训练数据子集,可以使大规模语言模型学习到地图应用的各种LBS对话场景下的相关内容。
下面以上述四个训练数据子集为例,对如何先采用LoRA技术进行微调,得到对话模型进行描述。
其中,第一训练数据子集为包括输出标签的POI信息;第二训练数据子集中包括无输出标签的第一训练数据组,以及,存在输出标签的第二训练数据组,其中无输出标签的第一训练数据组为基于地理知识构建的无输出标签的样本数据,存在输出标签的第二训练数据组为基于地理知识构建的问答对;第三训练数据子集为以用户输入的POI以及导航路径规划搜索文本以及地图应用输出的每个推荐结果构建的信息对作为输入,以用户是否选择该推荐结果作为标签构建的样本数据;第四训练数据子集为以地图领域的用户历史对话输入作为输入,以正确的对话系统的输出作为标签构建的样本数据。
示例性的,电子设备可以采用大规模语言模型的低阶适应技术对扩充词表后的大规模语言模型进行训练,例如电子设备可以冻结大规模语言模型的参数,并在大规模语言模型架构中的编码器模块以及解码器模块的注意力层新增网络层,例如可以新增两个矩阵(具体的新增矩阵的方式可以参照现有技术),并采用下述步骤进行训练:
步骤1、使用第一训练数据子集,对大规模语言模型进行有监督训练,得到第一中间模型。
步骤2、使用第二训练数据子集中无输出标签的第一训练数据组,对第一中间模型进行无监督训练,得到第二中间模型。
可选地,电子设备可以使用第一训练数据组中的地理知识,对第一中间模型采用无监督自回归的方式进行训练。具体实现方式可参照现有技术,在此不再赘述。
步骤3、使用所述第二训练数据子集中存在输出标签的第二训练数据组,对所述第二中间模型进行有监督训练,得到第三中间模型。
通过这种实现方式,电子设备可以将该第二训练数据组作为第一训练数据子集的补充和延展,实现在步骤2的基础上进一步加深大规模语言模型对地理知识的印象。
通过上述步骤1至步骤3,可以使大规模语言模型对地图应用中POI的信息,以及,地理知识进行学习。下面通过步骤4和步骤5对地图领域下用户的表述方式以及意图进行学习。
步骤4、使用第三训练数据子集,对第三中间模型进行有监督训练,得到第四中间模型。
通过这一步的训练可以使大规模语言模型更加理解用户在导航路径规划以及POI搜索方面的表述方式以及意图。
步骤5、使用第四训练数据子集,对第四中间模型进行无监督训练,得到初始对话模型。
本步骤中,电子设备使用地图领域的历史对话数据进行无监督训练,以让大规模语言模型学习到针对地图领域的不同子领域的含义与边界,即可以更好的针对用户在地图领域对话的意图进行识别。
可选地,在使用第四训练数据子集,对第四中间模型进行无监督训练之前,可以解冻大规模语言模型的注意力层的参数,从而增加第四中间模型的可训练参数数量,提升模型对于用户对话意图的理解能力,进而使训练得到的初始对话模型能够更加精准的识别用户对话所针对的地图领域的子领域意图。
关于电子设备利用上述训练数据子集对大规模语言模型进行训练的具体实现方式可参照现有技术,在此不再赘述。
通过上述步骤1到步骤5的实现方式可以使大规模语言模型对地图领域知识,以及,用户的表达方式、意图有较为全面的学习与理解,强化大规模语言模型对地图领域知识的认知,以使其可以更加准确智能的应用于地图领域的用户对话的理解与回复。
应理解,当训练数据集中仅包括部分训练数据子集时,可参照上述实施例中的模型训练方法对大规模语言模型进行训练。
在采用上述方式得到初始对话模型之后,可以将该初始对话模型作为对话系统的对话模型进行地图应用的对话处理,也可以进一步地以强化学习方式依据人类反馈优化初始对话模型,得到对话模型。
示例性的,电子设备可以采用基于RLHF的方式,将历史获取的用户的真实对话输入至上述获得的初始对话模型,并获取对应的输出。后续的,基于模型的多种输出,由人类对所述多种输出进行反馈,例如可以对多种输出进行打分,作为强化学习的奖励信号,构建对应的奖励机制。示例性的,电子设备可以将奖励信号作为参数,使用近端策略优化(Proximal Policy Optimization,PPO)或类似的算法对模型进行微调,进而得到对话模型。上述模型的多种输出可以是将同一历史获取的用户的真实对话文本重复多次输入至初始对话模型得到的,本申请不限定重复输入的次数;也可以是将一个历史获取的用户的真实对话文本输入至初始对话模型之后,获取到模型输出的具有不同概率的多种输出,本申请对具体采用的实现手段不进行限定。
通过上述方式,可以使大规模语言模型模拟人类的思想,学习到地图领域中的领域知识,对人类的对话的意图有更加精准的识别,实现大规模语言模型在对话意图理解方面的强化学习,进而能够更加准确的确定用户对话的领域意图。
本实施例中,电子设备采用大规模语言模型的低阶适应技术,使用训练数据集对大规模语言模型进行微调,得到初始对话模型,然后,以强化学习方式依据人类反馈优化初始对话模型,得到对话模型。电子设备采用大规模语言模型的低阶适应技术可以实现仅新增少量参数,即可实现大规模语言模型对地图领域的相关知识的学习,即可以实现在尽量少改变基于通用语料训练获得的大规模语言模型的前提下,加强大规模语言模型对模型对地图领域知识的理解与学习,降低了训练成本;此外,后续的,通过强化学习方式依据人类反馈优化初始对话模型,进而得到对话模型,可以使模型进一步模拟人类对话及思考方式,使模型更加准确的理解用户意图,提升回复准确性。
可选的,在使用训练数据集对大规模语言模型进行微调,得到对话模型之前,电子设备还可以获取地图领域的语料,以据此对大规模语言模型的词表进行扩充。
上述地图领域的语料用于训练大规模语言模型理解地图领域的语料的语义。地图领域的语料所包括的内容与该对话模型所属的对话系统的应用场景相关。以应用到地图应用为例,该地图领域的语料例如可以包括:该地图应用中与地图元素相关的语料,以及,地图领域中存在特定语义的语料等。
其中,此处所说的与地图元素相关的语料例如可以包括:与POI相关的ID类信息(例如,POI的ID、POI关联的商品的ID等)、地址对应的地理空间编码等在地图应用中具有唯一标识的语料。具体实现时,可以从地图应用中提取相关数据,构成该部分的语料。
地图领域中存在特定语义的词语是指在地图领域下与其他领域中语义不同的词语。例如,“鱼”在一般含义中表示为“鱼这种生物”,而在地图领域中则表示为“有鱼类相关的料理”,根据实际应用场景的需求,地图领域的语料可以包括上述在地图领域和其他领域有不同语义的词语。
本申请实施例不限定获取地图领域的语料的方式。例如,可以是自行构建的,也可以是从其他设备或平台获取到的,也可以是从可移动存储介质或本地数据库中读取到的,也可以是采用上述多种方式获取的。
如前所述,大规模语言模型的文本嵌入层用于将输入文本转变为向量表示,以确定输入的词汇之间的相互关系。关于使用地图领域的语料,扩充使用通用语料训练的大规模语言模型的词表的实现方式。一种可能的实现方式,电子设备冻结大规模语言模型中除文本嵌入层(Embedding)以外其他层的参数;然后,使用地图领域的语料训练大规模语言模型的文本嵌入层。上述被冻结参数的层,在训练过程中保持其参数不变。即,训练过程中,不会对这些层的参数进行调整,仅调整文本嵌入层的参数,以使文本嵌入层基于地图领域的语料,学习到词汇在地图领域的语义,从而达到扩充大规模语言模型的词表的目的。
由于冻结了大规模语言模型中除文本嵌入层中的参数以外的其他参数,因此,通过这种实现方式,可以实现在尽量不干扰原模型的情况下适配新增的词向量,保证原始的大规模语言模型的语义理解能力的同时,又使大规模语言模型可以学习到地图领域的诸多语料,提升模型对地图领域语料的学习认知。
以应用到地图应用为例,可选地,当地图领域的语料包括与POI相关的ID类信息时,由于ID类信息是唯一的,因此,将该部分内容添加入词表,也能够使之更灵活地运用在大规模语言模型后续任务处理中,能够避免采用原始文本进行识别造成的语义识别错误;当地图领域的语料包括上述提及的存在多种语义的词语时,可以使大规模语言模型能够准确识别该类词语在地图领域所表征的语义。
应理解,上述仅是示例性的给出了一种使用地图领域的语料,扩充使用通用语料训练的大规模语言模型的词表的实现方式,也可以采用现有技术中其他扩充词表的方式实现。另外,当使用通用语料训练的大规模语言模型采用其他结构时,可以根据其结构采用对应的词表扩充方式,对此不再赘述。
图7为本申请实施例提供的一种对话处理装置的结构示意图。如图7所示,该装置包括:第一获取模块11、第二获取模块12、输出模块13。
第一获取模块11,用于获取用户输入的对话文本。
第二获取模块11,用于利用对话模型,获取所述对话文本在目标领域下的对话回复;其中,所述对话模型为采用训练数据集对大规模语言模型进行微调得到的,所述训练数据集包括下述至少一个训练数据子集:基于兴趣点的信息构建的第一训练数据子集、基于地理知识构建的第二训练数据子集、基于地图领域的历史兴趣点搜索与导航路径规划数据构建的第三训练数据子集,以及,基于地图领域的历史对话数据构建的第四训练数据子集;所述目标领域包括开放领域或地图领域;所述地图领域为与地图应用提供的服务相关的领域;
输出模块13,用于输出所述对话回复。
一种可能的实现方式,第二获取模块12,具体用于根据所述对话文本以及语义校正提示模板,生成语义校正提示;将所述语义校正提示输入至所述对话模型,以对所述对话文本进行语义校正,得到对话文本;根据所述对话文本以及领域意图理解提示模板,生成领域意图理解提示;将所述领域意图理解提示输入至所述对话模型,以对所述对话文本进行领域意图理解,得到所述对话所属的目标领域;利用所述对话模型,获取所述对话文本在所述目标领域下的对话回复。
可选的,所述目标领域为地图领域,第二获取模块12,具体用于根据所述对话文本以及子领域意图理解提示模板,生成子领域意图理解提示;将所述子领域意图理解提示输入至所述对话模型,以对所述对话文本进行领域意图理解,得到所述对话文本所属的地图领域的目标子领域;根据所述对话文本,获取所述对话文本的词槽;根据所述目标子领域,以及,所述词槽,获取所述对话回复内容;根据所述对话回复内容、所述对话文本,以及,对话回复提示模板,生成对话回复提示;将所述对话回复提示输入至所述对话模型,获取所述对话回复。
例如,第二获取模块12,具体用于将所述对话文本输入至地图领域的语言模型,获取所述对话文本的第一词槽;根据所述对话文本,以及,目标子领域对应的词槽提取提示模板,生成目标子领域对应的词槽提取提示;将所述目标子领域对应的词槽提取提示输入至所述对话模型,以对所述对话文本进行词槽提取,得到所述对话文本的第二词槽;使用所述第二词槽对所述第一词槽进行补充,得到所述对话文本的词槽。
例如,第二获取模块12,具体用于若所述目标子领域为目标地理位置服务对应的子领域,则调用所述目标地理位置服务基于所述词槽获取对话回复内容;若所述目标子领域非任一地理位置服务对应的子领域,则根据所述词槽生成所述对话回复内容。
可选的,所述目标领域为开放领域,第二获取模块12,具体用于根据所述对话文本,以及,任务构建提示模板,生成任务构建提示;将所述任务构建提示输入至所述对话模型,以获取所述对话文本对应的任务;获取所述任务的对话回复内容关键词;根据所述对话回复内容关键词、所述对话文本,以及,对话回复提示模板,生成对话回复提示;将对话回复提示输入至所述对话模型,获取所述对话回复。
例如,第二获取模块12,具体用于若存在所述用户的至少一轮历史对话,则从所述至少一轮历史对话中确定目标历史对话;根据所述对话文本、所述目标历史对话文本、所述目标历史对话文本对应的对话回复,以及,所述任务构建提示模板,生成所述任务构建提示。
例如,第二获取模块12,具体用于若所述对话文本对应的任务为多个,则根据所述任务,以及,任务优先级排序提示模板,生成任务优先级排序提示;将所述任务优先级排序提示输入至所述对话模型,获取对所述任务按照优先级排序后生成的任务队列;依次获取所述任务队列中任务的对话回复内容关键词。
例如,第二获取模块12,具体用于根据所述任务,以及,任务处理提示模板,生成任务处理提示;将所述任务处理提示输入至所述对话模型,以获取所述任务的处理结果;根据所述任务的处理结果,获取所述任务的对话回复内容;根据所述任务、所述任务的对话回复内容,以及,关键词提取模板,获取关键词提取提示;将所述关键词提取提示输入至所述对话模型,以获取针对所述任务的对话回复内容关键词;根据所述对话回复内容关键词,以及,任务状态提示模板,生成所述任务状态提示;所述任务状态提示用于指示所述对话模型确定所述任务的执行状态,以及,在所述任务处于未执行完毕的状态时,输出为所述任务创建的子任务;将所述任务状态提示输入至所述对话模型后,若获取到所述任务的子任务,则执行所述子任务,直至所述任务执行完毕。
例如,第二获取模块12,具体用于若所述处理结果表征所述任务无需调用工具箱中的工具执行,则将所述处理结果作为所述任务的对话回复内容;若所述处理结果表征所述任务需要调用工具箱中的目标工具执行,以及,所述目标工具所需的参数,则获取所述目标工具所需的参数的取值,并根据所述目标工具所需的参数的取值,调用所述目标工具获取所述任务的对话回复内容。
本申请实施例提供的对话处理装置,可以执行上述方法实施例中的对话处理方法,其实现原理和技术效果类似,在此不再赘述。需要说明的是,上述图7所示的各模块的划分仅是一种示意,本申请对各模块的划分,以及,各模块的命名并不进行限定。
图8为本申请实施例提供的一种对话模型训练装置的结构示意图。如图8所示,该装置包括:获取模块21、微调模块22。可选的,对话模型训练装置还可以包括扩充模块23。
获取模块21,用于获取训练数据集;所述训练数据集包括下述至少一个训练数据子集:基于POI的信息构建的第一训练数据子集、基于地理知识构建的第二训练数据子集、基于地图领域的历史POI搜索与导航路径规划数据构建的第三训练数据子集,以及,基于地图领域的历史对话数据构建的第四训练数据子集。
微调模块22,用于使用所述训练数据集对扩充词表后的大规模语言模型进行微调,得到对话模型;所述对话模型用于处理地图领域的对话,以及,开放领域的对话;所述地图领域为与地图应用提供的服务相关的领域。
一种可能的实现方式,微调模块23,具体用于采用大规模语言模型的低阶适应技术,使用所述训练数据集对大规模语言模型进行微调,得到初始对话模型;以强化学习方式依据人类反馈优化所述初始对话模型,得到所述对话模型。
例如,微调模块22,具体用于当所述训练数据集包括上述四个训练数据子集时,采用大规模语言模型的低阶适应技术对所述大规模语言模型进行如下训练:使用所述第一训练数据子集,对所述大规模语言模型进行有监督训练,得到第一中间模型;使用所述第二训练数据子集中无输出标签的第一训练数据组,对所述第一中间模型进行无监督训练,得到第二中间模型;使用所述第二训练数据子集中存在输出标签的第二训练数据组,对所述第二中间模型进行有监督训练,得到第三中间模型;使用所述第三训练数据子集,对所述第三中间模型进行有监督训练,得到第四中间模型;使用所述第四训练数据子集,对所述第四中间模型进行无监督训练,得到所述初始对话模型。
一种可能的实现方式,扩充模块23,用于在所述使用所述训练数据集对所述大规模语言模型进行微调,得到对话模型之前,获取地图领域的语料;使用所述地图领域的语料,扩充所述大规模语言模型的词表。微调模块23,具体用于使用所述训练数据集对所述扩充词表后的大规模语言模型进行微调,得到所述对话模型。
本申请实施例提供的对话模型训练装置,可以执行上述方法实施例中的对话模型训练方法,其实现原理和技术效果类似,在此不再赘述。需要说明的是,上述图8所示的各模块的划分仅是一种示意,本申请对各模块的划分,以及,各模块的命名并不进行限定。
图9为本申请实施例提供的一种电子设备900的结构示意图。如图9所示,该电子设备900可以包括:至少一个处理器901、存储器902。
存储器902,用于存储程序。具体地,程序可以包括程序代码,程序代码包括计算机操作指令。
存储器902可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
处理器901用于执行存储器902存储的计算机执行指令,以实现前述方法实施例所描述的对话模型训练方法,和/或,对话处理方法。其中,处理器901可能是一个中央处理器(Central Processing Unit,简称为CPU),或者是特定集成电路(Application SpecificIntegrated Circuit,简称为ASIC),或者是被配置成实施本申请实施例的一个或多个集成电路。
该电子设备900还可以包括通信接口903,以通过通信接口903可以与外部设备进行通信交互,外部设备例如可以是用户终端(例如,手机、导航仪)。在具体实现上,如果通信接口903、存储器902和处理器901独立实现,则通信接口903、存储器902和处理器901可以通过总线相互连接并完成相互间的通信。总线可以是工业标准体系结构(Industry StandardArchitecture,简称为ISA)总线、外部设备互连(Peripheral Component,简称为PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,简称为EISA)总线等。总线可以分为地址总线、数据总线、控制总线等,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果通信接口903、存储器902和处理器901集成在一块芯片上实现,则通信接口903、存储器902和处理器901可以通过内部接口完成通信。
本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random AccessMemory)、磁盘或者光盘等各种可以存储程序代码的介质,具体的,该计算机可读存储介质中存储有程序指令,程序指令用于上述实施例中的方法。
本申请还提供一种程序产品,该程序产品包括执行指令,该执行指令存储在可读存储介质中。电子设备的至少一个处理器可以从可读存储介质读取该执行指令,至少一个处理器执行该执行指令使得电子设备实施上述的各种实施方式提供的对话模型训练方法,和/或,对话处理方法。
本申请还提供了一种地理服务提供系统,所述系统包括:地图应用和对话系统,其中,地图应用,用于获取用户输入的对话文本,并将所述对话文本发送至所述对话系统;对话系统用于利用如上述任一对话模型训练方法训练得到的对话模型,获取所述对话文本在所述目标领域下的对话回复;其中,所述目标领域包括开放领域或地图领域;将所述对话回复发送至所述地图应用;所述地图应用还用于输出所述对话回复。
本文中的术语“多个”是指两个或两个以上。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系;在公式中,字符“/”,表示前后关联对象是一种“相除”的关系。另外,需要理解的是,在本申请的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
可以理解的是,在本申请的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本申请的实施例的范围。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (14)
1.一种对话处理方法,其特征在于,所述方法包括:
获取用户输入的对话文本;
利用对话模型,获取所述对话文本在目标领域下的对话回复;其中,所述对话模型为采用训练数据集对使用通用语料训练的大规模语言模型进行微调得到的,所述训练数据集包括下述至少一个训练数据子集:基于兴趣点的信息构建的第一训练数据子集、基于地理知识构建的第二训练数据子集、基于地图领域的历史兴趣点搜索与导航路径规划数据构建的第三训练数据子集,以及,基于地图领域的历史对话数据构建的第四训练数据子集;所述目标领域包括开放领域或地图领域;所述地图领域为与地图应用提供的服务相关的领域;
输出所述对话回复。
2.根据权利要求1所述的方法,其特征在于,所述获取所述对话文本在所述目标领域下的对话回复,包括:
根据所述对话文本以及领域意图理解提示模板,生成领域意图理解提示;
将所述领域意图理解提示输入至所述对话模型,以对所述对话文本进行领域意图理解,得到所述对话文本所属的目标领域;
利用所述对话模型,获取所述对话文本在所述目标领域下的对话回复。
3.根据权利要求2所述的方法,其特征在于,所述目标领域为地图领域,所述利用对话模型,获取所述对话文本在所述目标领域下的对话回复,包括:
根据所述对话文本以及子领域意图理解提示模板,生成子领域意图理解提示;
将所述子领域意图理解提示输入至所述对话模型,以对所述对话文本进行领域意图理解,得到所述对话文本所属的地图领域的目标子领域;
根据所述对话文本,获取所述对话文本的词槽;
根据所述目标子领域,以及,所述词槽,获取对话回复内容;
根据所述对话回复内容、所述对话文本,以及,对话回复提示模板,生成对话回复提示;
将所述对话回复提示输入至所述对话模型,获取所述对话回复。
4.根据权利要求2所述的方法,其特征在于,所述目标领域为开放领域,所述利用对话模型,获取所述对话文本在所述目标领域下的对话回复,包括:
根据所述对话文本,以及,任务构建提示模板,生成任务构建提示;
将所述任务构建提示输入至所述对话模型,以获取所述对话文本对应的任务;
获取所述任务的对话回复内容关键词;
根据所述对话回复内容关键词、所述对话文本,以及,对话回复提示模板,生成对话回复提示;
将对话回复提示输入至所述对话模型,获取所述对话回复。
5.根据权利要求4所述的方法,其特征在于,所述获取所述任务的对话回复内容关键词,包括:
若所述对话文本对应的任务为多个,则根据所述任务,以及,任务优先级排序提示模板,生成任务优先级排序提示;
将所述任务优先级排序提示输入至所述对话模型,获取对所述任务按照优先级排序后生成的任务队列;
依次获取所述任务队列中任务的对话回复内容关键词。
6.根据权利要求5所述的方法,其特征在于,所述获取所述任务队列中任务的对话回复内容关键词,包括:
根据所述任务,以及,任务处理提示模板,生成任务处理提示;
将所述任务处理提示输入至所述对话模型,以获取所述任务的处理结果;
根据所述任务的处理结果,获取所述任务的对话回复内容;
根据所述任务、所述任务的对话回复内容,以及,关键词提取模板,获取关键词提取提示;
将所述关键词提取提示输入至所述对话模型,以获取针对所述任务的对话回复内容关键词;
根据所述对话回复内容关键词,以及,任务状态提示模板,生成所述任务状态提示;所述任务状态提示用于指示所述对话模型确定所述任务的执行状态,以及,在所述任务处于未执行完毕的状态时,输出为所述任务创建的子任务;
将所述任务状态提示输入至所述对话模型后,若获取到所述任务的子任务,则执行所述子任务,直至所述任务执行完毕。
7.一种对话模型训练方法,其特征在于,所述方法包括:
获取训练数据集;所述训练数据集包括下述至少一个训练数据子集:基于兴趣点的信息构建的第一训练数据子集、基于地理知识构建的第二训练数据子集、基于地图领域的历史兴趣点搜索与导航路径规划数据构建的第三训练数据子集,以及,基于地图领域的历史对话数据构建的第四训练数据子集;
使用所述训练数据集对使用通用语料训练的大规模语言模型进行微调,得到对话模型;所述对话模型用于处理地图领域的对话,以及,开放领域的对话;所述地图领域为与地图应用提供的服务相关的领域。
8.根据权利要求7所述的方法,其特征在于,所述使用所述训练数据集对使用通用语料训练的大规模语言模型进行微调,得到对话模型,包括:
采用大规模语言模型的低阶适应技术,使用所述训练数据集对所述大规模语言模型进行微调,得到初始对话模型;
以强化学习方式依据人类反馈优化所述初始对话模型,得到所述对话模型。
9.根据权利要求8所述的方法,其特征在于,所述采用大规模语言模型的低阶适应技术,使用所述训练数据集对所述大规模语言模型进行微调,得到初始对话模型,包括:
当所述训练数据集包括上述四个训练数据子集时,采用大规模语言模型的低阶适应技术对所述大规模语言模型进行如下训练:
使用所述第一训练数据子集,对所述大规模语言模型进行有监督训练,得到第一中间模型;
使用所述第二训练数据子集中无输出标签的第一训练数据组,对所述第一中间模型进行无监督训练,得到第二中间模型;
使用所述第二训练数据子集中存在输出标签的第二训练数据组,对所述第二中间模型进行有监督训练,得到第三中间模型;
使用所述第三训练数据子集,对所述第三中间模型进行有监督训练,得到第四中间模型;
使用所述第四训练数据子集,对所述第四中间模型进行无监督训练,得到所述初始对话模型。
10.根据权利要求7-9任一项所述的方法,其特征在于,在所述使用所述训练数据集对所述大规模语言模型进行微调,得到对话模型之前,所述方法包括:
获取地图领域的语料;
使用所述地图领域的语料,扩充所述大规模语言模型的词表;
所述使用所述训练数据集对所述大规模语言模型进行微调,得到对话模型,包括:
使用所述训练数据集对扩充词表后的大规模语言模型进行微调,得到所述对话模型。
11.一种对话处理装置,其特征在于,所述装置包括:
第一获取模块,用于获取用户输入的对话文本;
第二获取模块,用于利用对话模型,获取所述对话文本在目标领域下的对话回复;其中,所述对话模型为采用训练数据集对使用通用语料训练的大规模语言模型进行微调得到的,所述训练数据集包括下述至少一个训练数据子集:基于兴趣点的信息构建的第一训练数据子集、基于地理知识构建的第二训练数据子集、基于地图领域的历史兴趣点搜索与导航路径规划数据构建的第三训练数据子集,以及,基于地图领域的历史对话数据构建的第四训练数据子集;所述目标领域包括开放领域或地图领域;所述地图领域为与地图应用提供的服务相关的领域;
输出模块,用于输出所述对话回复。
12.一种对话模型训练装置,其特征在于,所述装置包括:
获取模块,用于获取训练数据集;所述训练数据集包括下述至少一个训练数据子集:基于兴趣点的信息构建的第一训练数据子集、基于地理知识构建的第二训练数据子集、基于地图领域的历史兴趣点搜索与导航路径规划数据构建的第三训练数据子集,以及,基于地图领域的历史对话数据构建的第四训练数据子集;
微调模块,用于使用所述训练数据集对使用通用语料训练的大规模语言模型进行微调,得到对话模型;所述对话模型用于处理地图领域的对话,以及,开放领域的对话;所述地图领域为与地图应用提供的服务相关的领域。
13.一种电子设备,其特征在于,包括:处理器和存储器;所述处理器与所述存储器通信连接;
所述存储器存储计算机指令;
所述处理器执行所述存储器存储的计算机指令,以实现如权利要求1-10中任一项所述的方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1-10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311170660.XA CN117216212A (zh) | 2023-09-11 | 2023-09-11 | 对话处理方法、对话模型训练方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311170660.XA CN117216212A (zh) | 2023-09-11 | 2023-09-11 | 对话处理方法、对话模型训练方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117216212A true CN117216212A (zh) | 2023-12-12 |
Family
ID=89047460
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311170660.XA Pending CN117216212A (zh) | 2023-09-11 | 2023-09-11 | 对话处理方法、对话模型训练方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117216212A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117576982A (zh) * | 2024-01-16 | 2024-02-20 | 青岛培诺教育科技股份有限公司 | 一种基于ChatGPT的口语训练方法、装置、电子设备及介质 |
CN117669737A (zh) * | 2023-12-20 | 2024-03-08 | 中科星图数字地球合肥有限公司 | 一种端到端地理行业大语言模型构建及使用方法 |
-
2023
- 2023-09-11 CN CN202311170660.XA patent/CN117216212A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117669737A (zh) * | 2023-12-20 | 2024-03-08 | 中科星图数字地球合肥有限公司 | 一种端到端地理行业大语言模型构建及使用方法 |
CN117669737B (zh) * | 2023-12-20 | 2024-04-26 | 中科星图数字地球合肥有限公司 | 一种端到端地理行业大语言模型构建及使用方法 |
CN117576982A (zh) * | 2024-01-16 | 2024-02-20 | 青岛培诺教育科技股份有限公司 | 一种基于ChatGPT的口语训练方法、装置、电子设备及介质 |
CN117576982B (zh) * | 2024-01-16 | 2024-04-02 | 青岛培诺教育科技股份有限公司 | 一种基于ChatGPT的口语训练方法、装置、电子设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101709187B1 (ko) | 계층적 대화 태스크 라이브러리를 이용한 이중 대화관리 기반 음성대화시스템 | |
CN101189659B (zh) | 用于认知超负荷的设备用户的交互式对话 | |
CN109918673A (zh) | 语义仲裁方法、装置、电子设备和计算机可读存储介质 | |
WO2019046463A1 (en) | SYSTEM AND METHOD FOR THE DEFINITION OF DIALOGUE INTENTIONS AND THE CONSTRUCTION OF INTENTION RECOGNITION MODELS WITHOUT PRIOR KNOWLEDGE | |
CN117216212A (zh) | 对话处理方法、对话模型训练方法、装置、设备及介质 | |
CN105094315A (zh) | 基于人工智能的人机智能聊天的方法和装置 | |
CN111708869B (zh) | 人机对话的处理方法及装置 | |
CN108364646B (zh) | 嵌入式语音操作方法、装置和系统 | |
US20210027766A1 (en) | Speech error-correction method, device and storage medium | |
CN102439661A (zh) | 用于车辆内自动交互的面向服务语音识别 | |
CN110309277B (zh) | 人机对话语义解析方法和系统、车载人机对话方法和系统、控制器及存储介质 | |
CN111145721A (zh) | 个性化提示语生成方法、装置和设备 | |
CN115064167B (zh) | 语音交互方法、服务器和存储介质 | |
CN111090727A (zh) | 语言转换处理方法、装置及方言语音交互系统 | |
CN116127046A (zh) | 生成式大语言模型训练方法、基于模型的人机语音交互方法 | |
CN116127020A (zh) | 生成式大语言模型训练方法以及基于模型的搜索方法 | |
US11984115B2 (en) | Dialog system capable of semantic-understanding mapping between user intents and machine services | |
CN116244416A (zh) | 生成式大语言模型训练方法、基于模型的人机语音交互方法 | |
CN106528759A (zh) | 智能问答系统的信息处理方法及装置 | |
CN116343766A (zh) | 生成式大模型训练方法、基于模型的人机语音交互方法 | |
CN110085217A (zh) | 语音导航方法、装置及终端设备 | |
CN116644168A (zh) | 一种交互数据构建方法、装置、设备及存储介质 | |
CN112115244A (zh) | 对话交互方法、装置、存储介质及电子设备 | |
CN113515616B (zh) | 一种基于自然语言的任务驱动系统 | |
CN110795547A (zh) | 文本识别方法和相关产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |