具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
图1示出了可以应用本申请的生成式大模型训练方法、基于生成式大模型的人机语音交互方法,以及配套的装置、电子设备及计算机可读存储介质的实施例的示例性系统架构100。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103和服务器105上可以安装有各种用于实现两者之间进行信息通讯的应用,例如人机语音交互类应用(例如导航语音助手应用、智能终端语音助手应用等)、模型训练类应用等。
终端设备101、102、103和服务器105可以是硬件,也可以是软件。当终端设备101、102、103为硬件时,可以是具有显示屏的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等;当终端设备101、102、103为软件时,可以安装在上述所列举的电子设备中,其可以实现成多个软件或软件模块,也可以实现成单个软件或软件模块,在此不做具体限定。当服务器105为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器;服务器为软件时,可以实现成多个软件或软件模块,也可以实现成单个软件或软件模块,在此不做具体限定。
服务器105通过内置的各种应用可以提供各种服务,以可以为用户提供人机语音交互服务的人机语音交互类应用为例,服务器105在运行该人机语音交互类应用时可实现如下效果:首先,通过网络104传入的终端设备101、102、103记录下的用户以语音形式发出的用户输入语音;然后,将该用户输入语音作为输入数据输入预先训练好的目标生成式大模型;下一步,接收目标生成式大模型返回的输出文本;其中,输出文本基于执行接口调用指令后得到的响应信息生成得到;最后,将输出文本转换为语音形式的机器答复语音。进一步的,还可以将该机器答复语音通过网络104重新传回终端设备101、102、103,以便于由终端设备101、102、103通过播放该机器答复语音向相应用户做出回复。
其中,该目标生成式大模型可由服务器105上内置的模型训练类应用按如下步骤训练得到:首先,基于用户输入语音与匹配的包含有接口调用指令的输出结果,构建第一训练集,该接口调用指令所调用的服务接口对应于用户输入语音表达出的功能使用意图;然后,利用第一训练集对预训练好的第一生成式大模型进行有监督微调训练,得到第二生成式大模型;接着,基于相同用户输入语音与不同候选输出之间的用户偏好排序和预设模板集合,构建第二训练集;下一步,利用第二训练集对预训练好的第三生成式大模型进行有监督训练,得到奖励模型;最后,将第二生成式大模型,基于奖励模型返回的得分,以强化学习方式进行训练,得到目标生成式大模型。
由于为训练得到目标生成式大模型需要占用较多的运算资源和较强的运算能力,因此本申请后续各实施例所提供的生成式大模型训练方法一般由拥有较强运算能力、较多运算资源的服务器105来执行,相应地,生成式大模型训练装置一般也设置于服务器105中。但同时也需要指出的是,在终端设备101、102、103也具有满足要求的运算能力和运算资源时,终端设备101、102、103也可以通过其上安装的模型训练类应用完成上述本交由服务器105做的各项运算,进而输出与服务器105同样的结果。相应的,生成式大模型训练装置也可以设置于终端设备101、102、103中。在此种情况下,示例性系统架构100也可以不包括服务器105和网络104。
当然,用于训练得到目标生成式大模型的服务器可以不同于调用训练好的目标生成式大模型来使用的服务器。特殊的,经由服务器105训练得到的目标生成式大模型也可以通过模型蒸馏的方式得到适合置入终端设备101、102、103的轻量级的目标生成式大模型,即可以根据实际需求的识别准确度灵活选择使用终端设备101、102、103中的轻量级的目标生成式大模型,还是选择使用服务器105中的较复杂的目标生成式大模型。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
请参考图2,图2为本公开实施例提供的一种生成式大模型训练方法的流程图,其中流程200包括以下步骤:
步骤201:基于用户输入语音与匹配的包含有接口调用指令的输出结果,构建第一训练集;
本步骤旨在由生成式大模型训练方法的执行主体(例如图1所示的服务器105)基于由用户输入语音与匹配的包含有接口调用指令的输出结果所构成的大量的“用户输入语音—包含有接口调用指令的输出结果”的样本对,来构建第一训练集。其中,该用户输入语音可获取自各种渠道,可以来自于对大量已授权用户在过去较长时间段内收集记录得到的用户语音数据集,也可以来自于历史的人机交互序列集。考虑到以语音信号形式存在的用户输入语音不便于直接处理,还可以对其进行向量或矩阵转换处理以得到其隐层表示。
其中,接口调用指令所调用的服务接口对应于用户输入语音表达出的功能使用意图(该功能使用意图可基于对该用户输入语音的隐层表示分析确定得到,也可以利用语音转文本技术对转换后得到的用户输入文本分析确定得到),即接口调用指令所调用的服务接口对应于实现用户输入语音所想要表达的预期需求,进而通过执行接口调用指令得到返回响应、并基于响应信息组织得到输出结果的方式,来实现用户需求或得到满足用户功能使用意图的回复。
其中,本公开所描述的“服务接口”是指用于提供服务的应用程序编程接口(Application Programming Interface,API),不同的API可由安装在操作系统上的相关应用(包括支持操作系统正常运行的系统相关应用和建立在操作系统正常运行上的其它应用)提供,也可直接由操作系统或运行在操作系统上的一些系统组件提供,例如可用于实现获取用户车牌尾号功能的GetNum API(通常由车辆信息维护类应用或组件提供)、用于实现查询限行政策功能的GetTR API(通常由新闻政策或搜索引擎类应用提供)、实现导航功能的Navi API(通常由地图类应用提供)、用于实现兴趣点定位功能的FindPOI API(通常由地图类应用提供,英文缩写POI的全称为:Point of Interest)、用于实现选择功能的OptionAPI(通常由提供多项备选方案的具体应用提供,例如可寻求通往相同目的地的多条备选路线中进行偏好选择时,由地图类应用提供)、用于实现具体日期获取功能的Date API(通常由时钟类应用或时间组件提供)、用于实现歌曲查找功能的FindSong API(通常由歌曲类应用或检索类应用提供),除此之外,还包括且不限于用于实现下述功能的对应API:
时间查询、日期查询、注册车牌号查询、用户查找、好友查询、听歌识曲、图片查找、出行路线规划、天气查询、任务编排、位置查询、限行尾号查询、汇率换算、进制转换、翻译、周边环境查询、加解密、数据下载、数据传输、问题查询、图片编辑等。
另外,与用户输入语音匹配的包含有接口调用指令的输出结果中,可以仅包含有一条接口调用指令,此种情况下,可能是用户输入语音文本仅表达了一项功能使用意图,此时仅有该项功能使用意图对应该条接口调用指令;还有可能是用户输入语音同时表达了多项功能使用意图,但其中仅有一项必须通过对应的接口调用指令以执行后寻求返回响应的方式,才能够得到所需的准确结果(例如背景技术部分提及的需要结合实时、动态信息进行实时运算的情况),其余功能使用意图可使用对应的接口调用指令获取相应答案,也可以仅依赖于大模型参数中蕴含的知识对该用户输入语音直接生成相应答案,在此种情况是否需要依旧选择为其生成接口调用指令来获取相应答案,可根据实际情况灵活选择,此处不做具体限定。
若与用户输入语音匹配的包含有接口调用指令的输出结果中同时包含有多条接口调用指令,还需要考虑不同的接口调用指令之间是否存在执行依赖关系,从而根据确定出的执行顺序来正确将其组织为服务接口调用序列。具体的,对于每个接口调用指令来说,其一般均包含目标服务接口的接口名和具体的接口调用参数,两者以要求的格式进行组合。但对于某些特殊的API,其接口调用参数可为空;另外一些某些特殊的API,其接口调用参数也可以是另一个接口调用指令。另外,具体的接口调用参数可以直接由用户输入语音中的某个语音片段直接充当,或者由其隐层表示充当,再或者由其对应的用户输入文本中的某个文本片段充当,也可以由表达与相应语音片段或隐层表示或文本片段相同含义的其它形式内容充当。
以包含“导航去人民公园”这一语音内容的用户输入语音为例,其仅有导航去预设目的地这一个功能使用意图(因直接使用语音片段构建指令不便于描述,此处将使用对应的文本表现形式),而对应该功能使用意图的目标服务接口可为指代导航功能的Navi API,其具体接口参数就应为由“人民公园”充当,就此时的输出结果中包含的接口调用指令即为:Navi(人民公园)。
为便于理解本步骤所描述的方案,下述将通过一个具体例子进行展开说明:
假设用户输入语音所包含的语音内容为:“导航去X地Y街的Z,走最快的路线”,那么与该用户输入语音匹配的包含有接口调用指令的输出结果可表现为:“FindPOI(X地Y街的Z)-->Z1,位于X地Y街,Option(走红绿灯少的路线)-->红绿灯最少的路线如下:Navi(Z1,红绿灯最少)”,也可以表现为“Z1,位于X地Y街,红绿灯最少的路线如下:Navi(Z1,红绿灯最少)”。
对于所呈现出的“FindPOI(X地Y街的Z)-->Z1,位于X地Y街,Option(走红绿灯少的路线)-->红绿灯最少的路线如下:Navi(Z1,红绿灯最少)”这种输出结果,是将用户输入语音中所表达出的每项功能使用意图都表现为接口调用指令;而对于所呈现出的“Z1,位于X地Y街,红绿灯最少的路线如下:Navi(Z1,红绿灯最少)”这种输出结果,则是仅将用户输出语音中所表达出的必须基于实时、动态信息来进行结果计算的导航功能使用意图表现为唯一的接口调用指令(即导航至目的地需要确定发起该导航请求时的当前位置、实时路况、实时交通信息等),而剩下的根据“X地Y街的Z”确定“Z1”和根据“走红绿灯最少的路线”确定“红绿灯最少”则无需一定要通过构建接口调用指令来确定答案,可依赖于常规的生成式大模型参数中蕴含的知识生成得到。
另外,对于“FindPOI(X地Y街的Z)-->Z1,位于X地Y街,Option(走红绿灯少的路线)-->红绿灯最少的路线如下:Navi(Z1,红绿灯最少)”这种输出结果,可见其对于三个不同的接口调用指令,通过“-->”的方式将其构建为明确执行时序的服务接口调用序列,当然,执行时序也可以通过诸如指令嵌套的方式实现。即根据用户输入语音可确定其最终功能调用意图为导航,但为实现该最终功能调用意图,还需要对“X地Y街的Z”这一对充当目的地的兴趣点不准确描述进行准确确定,以及在准确确定目的地的情况下选择红绿灯最少的路线,因此上述三个接口调用指令的执行顺序应为:先执行FindPOI(X地Y街的Z)和Option(红绿灯最少)(由于两者之间不存在执行依赖,在仅支持串行的情况下,可以任选一个先执行、后执行另一个,上例选择先执行兴趣点确定指令;在支持并行的情况下,两指令可以并发执行),然后在得到这两个指令结果的情况下,再基于两个指令结果执行Navi(Z1,最快的路线)这个指令。
需要说明的是,上述与用户输入语音匹配的包含有接口调用指令的输出结果可由人工基于自身对用户输入语音对应语音内容的理解和对服务接口相关使用知识进行手动标注得到,也可以由非人工对象基于对隐含有上述两者之间对应关系的数据样本集中抽取得到,以实现高效率的构建“用户输入语音—包含有接口调用指令的输出结果”的样本对。
在某些理解方式下,若将用户输入语音理解为query、包含有接口调用指令的输出结果实际上为能够满足相应需求的由API和API参数构成的接口调用指令所构成的answer。
步骤202:利用第一训练集对预训练好的第一生成式大模型进行有监督微调训练,得到第二生成式大模型;
在步骤201的基础上,本步骤旨在由上述执行主体将第一训练集作为微调训练集,对之前已经预训练好的第一生成式大模型进行有监督微调训练(Supervised Fine-Tuning,SFT),以进一步得到第二生成式大模型。
本步骤所采用的SFT技术,是指训练对象并非是未经过任何训练的初始模型,而是对经基础训练样本训练得到的通用生成式大模型,即经过基础训练样本训练得到的通用生成式大模型通常仅是根据文本输入和大模型参数中蕴含的知识,基于语言单元(token)的预测概率生成一个文本序列作为结果,并不会具有将其改写为包括目标API和API参数的包含有接口调用指令的输出结果的能力。借助该SFT技术得以避免从头开始训练模型所需要付出的庞大耗时,只需要构造包含少量(此处的少量是相对于基础训练样本的数量级)训练样本的第一训练集,即可通过对通用生成式大模型进行二次训练,使其具有将用户输入语音改写为包含目标API和API参数的包含有接口调用指令的输出结果的能力。
当然,可能在某些应用场景下,经基础训练样本训练得到的通用生成式大模型可能并不适合作为使用SFT技术的基础模型(例如通用生成式大模型所学习到的知识与新构造的训练样本中隐含的知识存在冲突),也可以基于新构造的训练样本对初始的生成式语言模型进行训练,以期使得训练得到的目标生成式大模型具有所期望拥有的能力。
步骤203:基于相同用户输入语音与不同候选输出之间的用户偏好排序和预设模板集合,构建第二训练集;
在步骤202的基础上,本步骤旨在由上述执行主体基于相同用户输入语音与不同候选输出之间的用户偏好排序和记录有输入文本与相应的接口调用指令之间对应关系的各预设模板,共同构建第二训练集。该预设模板可以具体表现为:“我要找[String]—为您找到该地点,位于X街X号,该商户详细信息如下:GetInfo(POIName)”、“导航去[String]—FindPOI(POIName),位于X街X号,去这里有N条路线,当前路况下,最快的路线如下:Navi(POIName)”,即该预设模板用于指示何种样式的文本片段对应何种包含接口调用指令的输出文本,其中的“String”用于指代相应部分可使用任意字符串填充。具体的,该预设模板可以抽取自用于构成第一训练集的各“用户输入语音转换得到的用户输入文本—包含有接口调用指令的输出结果”样本对,也可以抽取自其它包含上述对应关系的数据集。
即首先对于每个用户输入语音,构建该用户输入语音分别与每个候选输出所形成的样本对,并根据每个样本对中该候选输出的用户偏好排序,对这些样本对进行排序;然后结合记录有输入文本与相应的接口调用指令之间对应关系的各预设模板(该预设模板集合中包含有多个该预设模板),共同构建该第二训练集,以期通过使用据此构建得到的第二训练集能够让模型学习到哪些结果更符合用户的实际需求。
需要说明的是,上述描述的用于构建第二训练集的训练样本可由人工基于自身主观理解进行手动标注、生成得到,也可以由非人工对象基于对隐含有上述两者之间对应关系的数据样本集中(例如体现用户检索操作中检索词和检索结果的检索日志)抽取得到,以实现相应样本对的高效构建。
当由检索日志作为该数据样本集时,该用户偏好排序可以具体表现为检索日志记录的对相同用户输入文本(可由用户输入语音转换得到,当然,也可以直接获取到用户以文本形式输入的检索词)返回的备选输出列表中各备选输出在一段时间内的累计点击次数,即累计点击次数越多,就意味着该候选输出越符合用户的实际需求,该时间段的长度可以自行设置,例如一周、半个月或一整月。在该数据样本集由其它数据库充当时,该用户偏好排序还可以表现为其它类似的、能表现出用户偏好的参数,例如收藏量、评论量等等,此处不再一一列举。
步骤204:利用第二训练集对预训练好的第三生成式大模型进行有监督训练,得到奖励模型。
在步骤203的基础上,本步骤旨在由上述执行主体利用第二训练集对预训练好的第三生成式大模型进行有监督训练,得到奖励模型(Reward Model,RM)。此处所描述的奖励模型,是指通过学习第二训练集中每个训练样本下不同样本对之间的用户偏好排序,得以学习到如何对相同输入下不同备选输出赋予不同的奖励(一般以得分高低的方式进行返回),以使模型朝着获取更高奖励的方向进行学习,从而能够输出更符合用户实际需求的结果。
步骤205:将第二生成式大模型,基于奖励模型返回的得分,以强化学习方式进行训练,得到目标生成式大模型。
在步骤202和步骤204的基础上,本步骤旨在由上述执行主体将第二生成式大模型,基于奖励模型返回的得分,以强化学习方式(Reinforcement Learning,RL)进行训练,得到目标生成式大模型。
基于RL方式训练得到目标生成式大模型的简要过程可以参考下述描述:
1)基于第二生成式大模型的参数初始化一个新的生成式大模型M;
2)基于新的prompt(提示词,一般为用户的自然语言输入),让M针对每个prompt生成回复,再把回复输入给奖励模型(RM);
3)RM会为每个回复计算出得分作为标量奖励,其得分高低表示回复质量的高低;
4)采用RL的方式,基于模型M获得的总奖励得分不断更新其生成策略(对应英文:policy),直到收敛,训练至此时的M即为满足要求的目标生成式大模型。
为便于理解本公开所描述和使用的“生成式大模型”,此处还对“生成式”这一前缀对应的生成式模型的工作原理进行简要介绍:
之所以被称为生成式模型,是因为此类模型的工作过程类似于“文字接龙”,即基于用户输入和模型的前序输出,不断预测下一个token(语言单元),进而最终生成出一个文本序列,可参见下例:
假定目标生成式大模型根据上述方案学习到了将用户输入语音输出为包含有接口调用指令的输出结果的能力,那么仍以包含“导航去X地Y街的Z,走红绿灯最少的路线”的语音内容的用户输入语音(为便于下述举例,使用“query”进行指代)为例,该目标生成式模型输出对应的包含有接口调用指令的输出结果的过程是按照下述步骤依次进行的:
query-->Z1;
query+Z1-->,;
query+Z1+,-->位;
query+Z1+,+位-->于;
query+Z1+,+位+于-->X;
query+Z1+,+位+于+X-->地;
query+Z1+,+位+于+X+地-->Y;
query+Z1+,+位+于+X+地+Y-->街;
query+Z1+,+位+于+X+地+Y+街-->,;
query+Z1+,+位+于+X+地+Y+街+,-->红;
query+Z1+,+位+于+X+地+Y+街+,+红-->绿;
query+Z1+,+位+于+X+地+Y+街+,+红+绿-->灯;
query+Z1+,+位+于+X+地+Y+街+,+红+绿+灯-->最;
query+Z1+,+位+于+X+地+Y+街+,+红+绿+灯+最-->少;
query+Z1+,+位+于+X+地+Y+街+,+红+绿+灯+最+少-->的;
query+Z1+,+位+于+X+地+Y+街+,+红+绿+灯+最+少+的-->路;
query+Z1+,+位+于+X+地+Y+街+,+红+绿+灯+最+少+的+路-->线;
query+Z1+,+位+于+X+地+Y+街+,+红+绿+灯+最+少+的+路+线-->如;
query+Z1+,+位+于+X+地+Y+街+,+红+绿+灯+最+少+的+路+线+如-->下;
query+Z1+,+位+于+X+地+Y+街+,+红+绿+灯+最+少+的+路+线+如+下-->Navi;
query+Z1+,+位+于+X+地+Y+街+,+红+绿+灯+最+少+的+路+线+如+下+Navi-->(;
query+Z1+,+位+于+X+地+Y+街+,+红+绿+灯+最+少+的+路+线+如+下+Navi+(-->Z1;
query+Z1+,+位+于+X+地+Y+街+,+红+绿+灯+最+少+的+路+线+如+下+Navi+(+Z1-->,;
query+Z1+,+位+于+X+地+Y+街+,+红+绿+灯+最+少+的+路+线+如+下+Navi+(+Z1+,-->红;
query+Z1+,+位+于+X+地+Y+街+,+红+绿+灯+最+少+的+路+线+如+下+Navi+(+Z1+,+红-->绿;
query+Z1+,+位+于+X+地+Y+街+,+红+绿+灯+最+少+的+路+线+如+下+Navi+(+Z1+,+红+绿-->灯;
query+Z1+,+位+于+X+地+Y+街+,+红+绿+灯+最+少+的+路+线+如+下+Navi+(+Z1+,+红+绿+灯-->最;
query+Z1+,+位+于+X+地+Y+街+,+红+绿+灯+最+少+的+路+线+如+下+Navi+(+Z1+,+红+绿+灯+最-->少;
query+Z1+,+位+于+X+地+Y+街+,+红+绿+灯+最+少+的+路+线+如+下+Navi+(+Z1+,+红+绿+灯+最+少-->);
query+Z1+,+位+于+X+地+Y+街+,+红+绿+灯+最+少+的+路+线+如+下+Navi+(+Z1+,+红+绿+灯+最+少+)-->End。
即最终可以获得:Z1,位于X地Y街,红绿灯最少的路线如下:Navi(Z1,红绿灯最少)的这样一条输出结果。
在中文情形下,一个token通常就是一个汉字;而在英文情形下,一个token则通常指一个sub-word(中文可直译为子词),而不是一个单词,其对应的子词粒度,是介于单词粒度和字符粒度中间的一种形态,子词在能够保留语言意义的同时,还能有效减少词表的大小(即词表中词的数量),也能有效解决词表外词(out-of-vocabulary words)的情况。以“loved”、“loving”和“loves”这三个英文单词为例,可具体得到下述4个sub-word:“lov”、“ed”、“ing”和“es”,即通过此种方式可以把词本身的意思和时态分开,得到粒度更小的子词。而在上例中,代表API名的“FindPOI、Option和Navi”将作为一个不可分割的整体作为一个token。
本公开实施例提供的生成式大模型训练方法,由于第一训练集是由用户输入语音与表达相应功能使用意图的包含有接口调用指令的输出结果构建得到,使得通过第一训练集对预训练好的第一生成式大模型进行有监督微调训练,进而使得训练得到的第二生成式大模型具有将用户输入语音改写为匹配的包含有接口调用指令的输出结果的能力,而在由相同用户输入语音与不同候选输出之间的用户偏好排序所构建的第二训练集对预训练好的第三生成式大模型进行有监督训练,进而使得训练得到的奖励模型拥有为生成式大模型针对用户输入语音所生成的不同候选进行质量评分的能力,进而使得在基于人类反馈的强化学习的训练下,所最终得到的目标生成式大模型不仅具有将用户输入语音改写为匹配的包含有接口调用指令的输出结果的能力,还具有输出更符合用户需求的结果的能力。即通过上述训练方案使得经训练得到的目标生成式大模型具有了深度理解用户需求并自行构建相应接口调用指令进行查询得到返回的准确答案的能力,能够不单单依据自然语言输入和大模型参数中蕴含的知识生成自然语言输出,而是借助提供专业能力的应用程序接口调用相应的功能,以更切实的解决用户需求,且在奖励模型的作用下还将使得返回的结果更加符合用户的实际需求和预期。
在上述实施例的基础上,对于采用SFT技术进行的有监督微调训练过程中,对于该第一生成式大模型中未出现的与API相关的特殊符号,还需要进行语言单元(即token)的扩充,可将其称为新token,而对于新token的特征的初始化,则可以按照已有语言单元的特征的多元正态分布参数采样的方式进行。
具体的,由于插入的API和API格式相关特殊符号不存在于第一生成式大模型的词表,因此还需要对第一生成式大模型的词表进行扩充。针对词表扩充后新token对应的embedding(通常可译为词向量或词嵌入)的初始化问题,还可以采用参数采样初始化方法进行:即对于新增token对应的embedding,如果按随机初始化或用0初始化,通常会使增加模型对新token的预测难度。这是因为新token的初始化embedding与通用生成式大模型经过大量预训练而得到的已有token的embedding分布差异过大而导致的。为了减少这种差异,可按已有token的embedding的多元正态分布(也称多变量正态分布或多变量高斯分布)对每个新token的embedding进行采样。形式化的,对于每个新token对应的embedding—en+i,可按如下的方式进行采样:
其中,E∈Rn×d是由通用生成式大模型原词表中所有token的embedding[e1;…;en]所组成的矩阵。
请参考图3,图3为本公开实施例提供的一种构建第一训练集的方法的流程图,即针对图2所示的流程200中的步骤201提供了一种具体的实现方式,流程200中的其它步骤并不做调整,也将本实施例所提供的具体实现方式以替换步骤201的方式得到一个新的完整实施例。其中流程300包括以下步骤:
步骤301:获取人机对话序列,并确定人机对话序列中对用户输入语音做出成功响应的有效机器答复;
本步骤旨在由上述执行主体获取记录用户与机器进行对话情况的人机对话序列,并从中确定出对用户输入语音做出成功响应的有效机器答复。其中,为了便于针对用户输入语音做出有效机器答复,还可以将该用户输入语音利用语音转文本技术转换为用户输入文本,或者其它便于进行分析和处理的形式,例如进行向量或矩阵的转换处理,以得到用户输入语音的隐层表示。
步骤302:根据生成有效机器答复时所调用的功能,确定匹配的接口调用指令;
在步骤301的基础上,本步骤旨在由根据生成有效机器答复时所调用的功能,确定匹配的接口调用指令。由于机器尤其答复是机器对用户输入语音所表达出的功能使用意图作出了满足其预期的响应的答复,因此必然可以根据机器在根据用户输入语音生成有效机器答复时所调用的功能,来确定出匹配的接口调用指令。由此也可以看出,机器对话序列中的非有效机器答复将无法用于确定匹配的接口调用指令。
步骤303:将有效机器答复中可通过执行接口调用指令返回得到的部分或全部答复,替换为相应的接口调用指令,得到输出结果;
在步骤302的基础上,本步骤旨在由将有效机器答复中可通过执行接口调用指令返回得到的部分或全部答复,替换为相应的接口调用指令,得到输出结果。
对于上例中给出的“FindPOI(X地Y街的Z)-->Z1,位于X地Y街,Option(走红绿灯少的路线)-->红绿灯最少的路线如下:Navi(Z1,红绿灯最少)”这种输出结果,就是将全部答复均替换为相应的接口调用指令;而对于上例中给出的“Z1,位于X地Y街,红绿灯最少的路线如下:Navi(Z1,红绿灯最少)”这种输出结果,就是将部分答复替换为相应的接口调用指令。
步骤304:基于由用户输入语音与匹配的输出结果构成的样本对,构建第一训练集。
在步骤303的基础上,本步骤旨在由多个“用户输入语音—输出结果”的样本对,来构建该第一训练集。
请参考图4,图4为本公开实施例提供的一种基于由用户输入语音与匹配的输出结果构成的样本对构建第一训练集的方法的流程图,即针对图3所示的流程300中的步骤304提供了一种具体的实现方式,对流程300中的其它步骤并不做调整,也将本实施例所提供的具体实现方式以替换步骤304的方式得到一个新的完整实施例。其中流程400包括以下步骤:
步骤401:根据用户输入语音和匹配的输出结果生成新人机对话序列;
步骤402:将新人机对话序列中的首项用户输入语音和首项输出结果作为起始样本对;
步骤403:将新人机对话序列中位于非首项输出结果前的所有对话内容和非首项输出结果作为非起始样本对;
对于表现为如下的新人机对话序列:
用户A:“用户输入语音1”;
语音助手:“包含接口调用指令的输出结果1”;
用户A:“用户输入语音2”;
语音助手:“包含接口调用指令的输出结果2”;
用户A:“用户输入语音3”;
语音助手:“包含接口调用指令的输出结果3”。
则首个样本对由:“用户输入语音1”与“包含接口调用指令的输出结果1”构成;
则第二个样本对由“用户输入语音1+包含接口调用指令的输出结果1+用户输入语音2”与“包含接口调用指令的输出结果2”构成;
则第三个样本对由“用户输入语音1+包含接口调用指令的输出结果1+用户输入语音2+包含接口调用指令的输出结果2+用户输入语音3”与“包含接口调用指令的输出结果3”构成。
即通过按照上述方式构建样本对,使得据此训练出的模型可充分结合对话的上文来生成后续会话。
步骤404:基于包含起始样本对和非起始样本,构建第一训练集。
即对于上述示出的新人机对话序列,一共可提取出三个训练样本,并据此构建得到该第一训练集。
请参考图5,图5为本公开实施例提供的一种构建第二训练集的方法的流程图,即针对图2所示的流程200中的步骤203提供了一种具体的实现方式,流程200中的其它步骤并不做调整,也将本实施例所提供的具体实现方式以替换步骤203的方式得到一个新的完整实施例。其中流程500包括以下步骤:
步骤501:从检索日志中获取检索词;
其中,可直接获取到文本形式的检索词,或者对以语音形式传入的检索语音通过语音转文本技术转换其相应的文本形式。
步骤502:从检索日志中确认对相同检索词返回过的所有检索结果,并确定每个检索结果在一个时间窗口内的累计点击次数;
步骤503:将相同检索词分别与各检索结果生成多个样本对,并根据不同检索结果分别对应的累计点击次数的大小,确定相应的不同样本对之间的排序信息;
步骤504:基于按排序信息进行用户偏好排序的各样本对和记录有输入文本与相应的包含接口调用指令的输出文本之间对应关系的各预设模板,共同构建第二训练集。
为便于理解本实施例所提供方案,下述将通过另一示例进行展开描述:
假设有个query为包含“XX大”这一语音内容的用户输入语音,把这个query一段时间内(例如30天)的不同结果点击次数聚合起来,假设得到以下表1呈现的结果:
表1累计点击次数统计表
结果编号 |
结果 |
累计点击次数 |
r1 |
XX大学 |
100 |
r2 |
XX大学东门 |
10 |
r3 |
XX大学西门 |
9 |
r4 |
XX大学教师楼 |
8 |
r5 |
XX大学图书馆 |
0 |
那么据上表内容所能够构建得到的成对的样本就可以是:
rel(q,r1)>rel(q,r2);
rel(q,r1)>rel(q,r3);
rel(q,r1)>rel(q,r4);
rel(q,r1)>rel(q,r5);
rel(q,r2)>rel(q,r3);
rel(q,r2)>rel(q,r4);
rel(q,r2)>rel(q,r5);
rel(q,r3)>rel(q,r4);
rel(q,r3)>rel(q,r5);
rel(q,r4)>rel(q,r5),rel是一个函数,用于表示两者之间的用户偏好。
在上述信息的基础上,将结合输入文本及匹配的包含有接口调用指令的输出文本构成的query-answer的模板,以及上述给出的pairwise(成对的)关系,自动构建出第二训练集,下述以模板—“我要找[String]—为您找到该地点,位于X街X号,该地址详细信息如下:GetInfo(POIName)”为例,可见该模板中的“String”对应用户输入的上述query(即“XX大”)、“POIName”即对应用户点击的结果的文本:
rel(prompt=我要找XX大,a1=为您找到该地点,位于X街X号,该地址详细信息如下:GetInfo(XX大学))>rel(prompt=我要找XX大,a2=为您找到该地点,位于X街X号,该地址详细信息如下:GetInfo(XX大学东门));
rel(prompt=我要找XX大,a1=为您找到该地点,位于X街X号,该地址详细信息如下:GetInfo(XX大学))>rel(prompt=我要找XX大,a3=为您找到该地点,位于X街X号,该地址详细信息如下:GetInfo(XX大学西门));
rel(prompt=我要找XX大,a1=为您找到该地点,位于X街X号,该地址详细信息如下:GetInfo(XX大学))>rel(prompt=我要找XX大,a4=为您找到该地点,位于X街X号,该地址详细信息如下:GetInfo(XX大教师楼));
rel(prompt=我要找XX大,a1=为您找到该地点,位于X街X号,该地址详细信息如下:GetInfo(XX大学))>rel(prompt=我要找XX大,a5=为您找到该地点,位于X街X号,该地址详细信息如下:GetInfo(XX大学图书馆));
rel(prompt=我要找XX大,a2=为您找到该地点,位于X街X号,该地址详细信息如下:GetInfo(XX大学东门))>rel(prompt=我要找XX大,a3=为您找到该地点,位于X街X号,该地址详细信息如下:GetInfo(XX大学西门));
rel(prompt=我要找XX大,a2=为您找到该地点,位于X街X号,该地址详细信息如下:GetInfo(XX大学东门))>rel(prompt=我要找XX大,a4=为您找到该地点,位于X街X号,该地址详细信息如下:GetInfo(XX大学教师楼));
rel(prompt=我要找XX大,a2=为您找到该地点,位于X街X号,该地址详细信息如下:GetInfo(XX大学东门))>rel(prompt=我要找XX大,a5=为您找到该地点,位于X街X号,该地址详细信息如下:GetInfo(XX大图书馆));
rel(prompt=我要找XX大,a3=为您找到该地点,位于X街X号,该地址详细信息如下:GetInfo(XX大学西门))>rel(prompt=我要找XX大,a4=为您找到该地点,位于X街X号,该地址详细信息如下:GetInfo(XX大学教师楼));
rel(prompt=我要找XX大,a3=为您找到该地点,位于X街X号,该地址详细信息如下:GetInfo(XX大学西门))>rel(prompt=我要找XX大,a5=为您找到该地点,位于X街X号,该地址详细信息如下:GetInfo(XX大学图书馆));
rel(prompt=我要找XX大,a4=为您找到该地点,位于X街X号,该地址详细信息如下:GetInfo(XX大学教师楼))>rel(prompt=我要找XX大,a5=为您找到该地点,位于X街X号,该地址详细信息如下:GetInfo(XX大学图书馆))。
上述例子中的prompt是基于query和模板生成,ai是基于ri和模板生成(即当i为1时,a1基于r1和模板生成)。
而在采用模板:“导航去[String]—FindPOI(POIName),位于X街X号,去这里有N条路线,当前路况下,最快的路线如下:Navi(POIName)”时情况与上例类似,此处不再一一列举。
通过选用检索日志中记载的数据自动生成第二训练集,不仅节省了大量的人工标注成本,同时检索日志中的海量点击与跳过(未点击)数据,是完全真实用户需求的体现,完全真实地反应了用户对不同结果的偏好分布情况,从而使得所构建出的第二训练集更符合用户的实际需求。
上述各实施例从各个方面阐述了如何训练得到目标生成式大模型,为了尽可能的从实际使用场景突出训练出的目标生成式大模型所起到的效果,本公开还具体提供了一种使用训练好的目标生成式大模型来解决实际问题的方案,如图6所示的一种基于生成式大模型的人机语音交互方法包括如下步骤:
步骤601:获取用户以语音形式发出的用户输入语音;
本步骤旨在由基于生成式大模型的人机语音交互方法的执行主体(例如安装在图1所示的终端设备101、102、103上的语音助手应用)获取用户以语音形式发出的用户输入语音。
步骤602:将用户输入语音作为输入数据输入预设的目标生成式大模型;
在步骤601的基础上,本步骤旨在由上述执行主体将用户输入语音作为输入数据输入预设的目标生成式大模型,以调用该目标生成式大模型对该用户输入语音进行处理。
步骤603:接收目标生成式大模型返回的输出文本;
在步骤602的基础上,本步骤旨在由上述执行主体接收目标生成式大模型返回的输出文本,其中,该输出文本基于执行接口调用指令后得到的响应信息生成得到。即目标生成式大模型在接收到输入的用户输入语音之后开始生成文本序列,在不需要生成接口调用指令时将直接根据大模型参数中蕴含的知识来生成相应的回复文本,而在遇到需要调用相应服务接口的地方则自动生成接口调用指令并进行执行以获得返回的调用结果,并将基于已生成的回复文本和调用结果生成出的输出文本返回语音助手。即接口调用指令(API及其对应参数)的生成和执行都在目标生成式大模型生成输出文本的过程中自动完成。
以“Z1,位于X地Y街,红绿灯最少的路线如下:Navi(Z1,红绿灯最少)”为例,在执行其中的接口调用指令后,可得到诸如“Z1,位于X地Y街,红绿灯最少的路线为:1)先通过道路1……;2)再通过道路2……;3)到达Z1”的输出文本。即上例中的“Navi(Z1,红绿灯最少)”并不会真正存在于输出文本中,存在于输出文本中的内容应为调用该Navi(Z1,红绿灯最少)后得到的“1)先通过道路1……;2)再通过道路2……;3)到达Z1”。若其中包含多个接口调用指令,还需要考虑各接口调用指令的执行顺序。
需要说明的是,若还想在输出的文本信息的基础上包含其它格式(例如图像、包含链接的超文本等)信息,也可以对所支持的输出结果的格式集进行拓展,使得能够返回包含文本格式在内的多格式输出信息。
步骤604:将输出文本转换为语音形式的机器答复语音。
在步骤603的基础上,本步骤旨在由上述执行主体将输出文本转换为语音形式的机器答复语音,以便于通过语音助手向用户发起的用户输入语音做出语音回应。
具体的,作为本实施例的执行主体的、对用户输入语音返回机器答复语音的语音助手可以具体包括:来自地图应用的地图语音助手、来自移动应用程序的语音助手、来自智能终端设备(例如智能音箱、智能冰箱、智能可穿戴设备等)的家居语音助手,以全场景的满足用户的人机交互需求。
本实施例所提供的基于生成式大模型的人机语音交互方法,则具体针对由语音助手充当执行主体的场景下,将按上述训练方案训练得到的目标生成式大模型应用于人机语音交互场景,语音助手在将用户输入语音对应的用户输入语音输入目标生成式大模型后,借助目标生成式大模型所具有的能力生成相应的结果,并在遇到需要调用服务接口的地方则自动生成接口调用指令并进行执行以获得返回的调用结果,并将基于已生成的回复文本和调用结果生成出的输出文本返回语音助手,使得语音助手再将其转换为机器答复语音返回用户完成人机语音交互,提升了人机语音交互体验。
为了避免目标生成式大模型对不同表述的用户输入语音均输出相同格式的输出结果,还可以将生成的输出文本调整为表达相同含义的不同表述方式。
一种表述方式可以为:将生成的输出文本调整为表达相同含义的随机一种表述方式,即每次输出时随机在表述库中选择一种表述方式进行表述调整。其中,表述方式可以划分为:活泼型、普通型、简练型、全面型等;
另一种表述方式可以为:将生成的输出文本调整为表达相同含义的、与用户输入语音对应的用户输入文本所具有的相同表述方式,即使得输出文本沿用与用户输入文本相同的表述方式,以提升用户对输出文本的感受。
为进一步加深对本公开所提供方案的理解,下述还将通过图7示出一种针对具体例子的人机语音交互流程示意图:
1)语音助手接收到用户输入语音,并得到其隐层表示,该用户输入语音的对应文本为:“我的车今天限行么?”;
2)语音助手将“我的车今天限行么?”输入预先训练好的目标生成式语言模型;
3)目标生成式语言模型先通过生成GetNum(UserID)的接口调用指令来根据当前用户的ID获取其车牌号,并获得车牌尾号的返回值:9;
4)目标生成式语言模型继续通过生成GetTR(City,Date,Number)的接口调用指令,来根据城市、日期、用户车牌尾号三个参数,返回限行信息,并获得“[(5,0),False]”的返回值,即代表当前位置(例如北京)今天的限行尾号为5和0,而用户车牌尾号为9,未落在限行要求中;
5)语音助手获取基于执行结果生成的输出文本:您的车尾号是9,北京今日限行尾号是5和0,您的车不限行;
6)语音助手将其转换为语音发出相应的语音输出:“您的车尾号是9,北京今日限行尾号是5和0,您的车不限行”。
进一步参考图8和图9,作为对上述各图所示方法的实现,本公开分别提供了一种生成式大模型训练装置实施例和一种基于生成式大模型的人机语音交互装置的实施例,生成式大模型训练装置实施例与图2所示的生成式大模型训练方法实施例相对应,基于生成式大模型的人机语音交互装置实施例与图6所示的基于生成式大模型的人机语音交互方法实施例相对应。上述装置具体可以应用于各种电子设备中。
如图8所示,本实施例的生成式大模型训练装置800可以包括:第一训练集构建单元801、有监督微调训练单元802、第二训练集构建单元803、奖励模型训练单元804、强化学习训练单元805。其中,第一训练集构建单元801,被配置成基于用户输入语音与匹配的包含有接口调用指令的输出结果,构建第一训练集;其中,接口调用指令所调用的服务接口对应于用户输入语音表达出的功能使用意图;有监督微调训练单元802,被配置成利用第一训练集对预训练好的第一生成式大模型进行有监督微调训练,得到第二生成式大模型;第二训练集构建单元803,被配置成基于相同用户输入语音与不同候选输出之间的用户偏好排序和预设模板集合,构建第二训练集;奖励模型训练单元804,被配置成利用第二训练集对预训练好的第三生成式大模型进行有监督训练,得到奖励模型;强化学习训练单元805,被配置成将第二生成式大模型,基于奖励模型返回的得分,以强化学习方式进行训练,得到目标生成式大模型。
在本实施例中,生成式大模型训练装置800中:第一训练集构建单元801、有监督微调训练单元802、第二训练集构建单元803、奖励模型训练单元804、强化学习训练单元805的具体处理及其所带来的技术效果可分别参考图2对应实施例中的步骤201-205的相关说明,在此不再赘述。
在本实施例的一些可选的实现方式中,第一训练集构建单元801可以包括:
有效机器答复确定子单元,被配置成获取人机对话序列,并确定人机对话序列中对用户输入语音做出成功响应的有效机器答复;
接口调用指令确定子单元,被配置成根据生成有效机器答复时所调用的功能,确定匹配的接口调用指令;
输出结果生成子单元,被配置成将有效机器答复中可通过执行接口调用指令返回得到的部分或全部答复,替换为相应的接口调用指令,得到输出结果;
第一训练集构建子单元,被配置成基于由用户输入语音与匹配的输出结果构成的样本对,构建第一训练集。
在本实施例的一些可选的实现方式中,第一训练集构建子单元可以被进一步配置成:
根据用户输入语音和匹配的输出结果生成新人机对话序列;
将新人机对话序列中的首项用户输入语音和首项输出结果作为起始样本对;
将新人机对话序列中位于非首项输出结果前的所有对话内容和非首项输出结果作为非起始样本对;
基于包含起始样本对和非起始样本,构建第一训练集。
在本实施例的一些可选的实现方式中,在有监督微调的训练方式下,对第一生成式大模型中未出现的代表服务接口的新语言单元,按照已有语言单元的特征的多元正态分布对新语言单元的特征进行参数采样的初始化。
在本实施例的一些可选的实现方式中,第二训练集构建单元803可以被进一步配置成:
从检索日志中获取检索词,用户输入文本为经对用户输入语音转换得到;
从检索日志中确认对相同检索词返回过的所有检索结果,并确定每个检索结果在一个时间窗口内的累计点击次数;
将相同检索词分别与各检索结果生成多个样本对,并根据不同检索结果分别对应的累计点击次数的大小,确定相应的不同样本对之间的排序信息;
基于按排序信息进行用户偏好排序的各样本对和记录有输入文本与相应的包含接口调用指令的输出文本之间对应关系的各预设模板,共同构建第二训练集。
本实施例作为对应于上述方法实施例的装置实施例存在,本实施例提供的生成式大模型训练装置,由于第一训练集是由用户输入语音与表达相应功能使用意图的包含有接口调用指令的输出结果构建得到,使得通过第一训练集对预训练好的第一生成式大模型进行有监督微调训练,进而使得训练得到的第二生成式大模型具有将用户输入语音改写为匹配的包含有接口调用指令的输出结果的能力,而在由相同用户输入语音与不同候选输出之间的用户偏好排序所构建的第二训练集对预训练好的第三生成式大模型进行有监督训练,进而使得训练得到的奖励模型拥有为生成式大模型针对用户输入语音所生成的不同候选进行质量评分的能力,进而使得在基于人类反馈的强化学习的训练下,所最终得到的目标生成式大模型不仅具有将用户输入语音改写为匹配的包含有接口调用指令的输出结果的能力,还具有输出更符合用户需求的结果的能力。即通过上述训练方案使得经训练得到的目标生成式大模型具有了深度理解用户需求并自行构建相应接口调用指令进行查询得到返回的准确答案的能力,能够不单单依据自然语言输入和大模型参数中蕴含的知识生成自然语言输出,而是借助提供专业能力的应用程序接口调用相应的功能,以更切实的解决用户需求,且在奖励模型的作用下还将使得返回的结果更加符合用户的实际需求和预期。
如图9所示,本实施例的基于生成式大模型的人机语音交互装置900可以包括:用户输入语音获取单元901、模型调用单元902、输出文本接收单元903、机器答复语音生成单元904。其中,用户输入语音获取单元901,被配置成获取用户以语音形式发出的用户输入语音;模型调用单元902,被配置成将用户输入语音作为输入数据输入预设的目标生成式大模型;输出文本接收单元903,被配置成接收目标生成式大模型返回的输出文本;其中,输出文本基于执行接口调用指令后得到的响应信息生成得到;机器答复语音生成单元904,被配置成将输出文本转换为语音形式的机器答复语音。
在本实施例中,基于生成式大模型的人机语音交互装置900中:用户输入语音获取单元901、模型调用单元902、输出文本接收单元903、机器答复语音生成单元904的具体处理及其所带来的技术效果可分别对应图6所示方法实施例中的相关说明,在此不再赘述。
在本实施例的一些可选的实现方式中,基于生成式大模型的人机语音交互装置900还可以包括:
表述调整单元,被配置成将输出文本调整为表达相同含义的不同表述方式。
在本实施例的一些可选的实现方式中,表述调整单元可以被进一步配置成:
将输出文本调整为表达相同含义的随机一种表述方式。
在本实施例的一些可选的实现方式中,表述调整单元可以被进一步配置成:
将输出文本调整为表达相同含义的、与用户输入语音对应的输入文本所具有的相同表述方式。
在本实施例的一些可选的实现方式中,对用户输入语音返回机器答复语音的语音助手包括:来自地图应用的地图语音助手、来自移动应用程序的语音助手、来自智能终端设备的家居语音助手。
本实施例作为对应于上述方法实施例的装置实施例存在,本实施例提供的基于生成式大模型的人机语音交互方案,则是具体针对由语音助手充当执行主体的场景下,将按上述训练方案训练得到的目标生成式大模型应用于人机语音交互场景,语音助手在将用户输入语音对应的用户输入语音输入目标生成式大模型后,借助目标生成式大模型所具有的能力生成相应的结果,并在遇到需要调用服务接口的地方则自动生成接口调用指令并进行执行以获得返回的调用结果,并将基于已生成的回复文本和调用结果生成出的输出文本返回语音助手,使得语音助手再将其转换为机器答复语音返回用户完成人机语音交互,提升了人机语音交互体验。
根据本公开的实施例,本公开还提供了一种电子设备,该电子设备包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,该指令被至少一个处理器执行,以使至少一个处理器执行时能够实现上述任一实施例描述的生成式大模型训练方法和/或基于生成式大模型的人机语音交互方法。
根据本公开的实施例,本公开还提供了一种可读存储介质,该可读存储介质存储有计算机指令,该计算机指令用于使计算机执行时能够实现上述任一实施例描述的生成式大模型训练方法和/或基于生成式大模型的人机语音交互方法。
本公开实施例提供了一种计算机程序产品,该计算机程序在被处理器执行时能够实现上述任一实施例描述的生成式大模型训练方法和/或基于生成式大模型的人机语音交互方法。
图10示出了可以用来实施本公开的实施例的示例电子设备1000的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图10所示,设备1000包括计算单元1001,其可以根据存储在只读存储器(ROM)1002中的计算机程序或者从存储单元1008加载到随机访问存储器(RAM)1003中的计算机程序,来执行各种适当的动作和处理。在RAM 1003中,还可存储设备1000操作所需的各种程序和数据。计算单元1001、ROM 1002以及RAM 1003通过总线1004彼此相连。输入/输出(I/O)接口1005也连接至总线1004。
设备1000中的多个部件连接至I/O接口1005,包括:输入单元1006,例如键盘、鼠标等;输出单元1007,例如各种类型的显示器、扬声器等;存储单元1008,例如磁盘、光盘等;以及通信单元1009,例如网卡、调制解调器、无线通信收发机等。通信单元1009允许设备1000通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元1001可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1001的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1001执行上文所描述的各个方法和处理,例如生成式大模型训练方法和/或基于生成式大模型的人机语音交互方法。例如,在一些实施例中,生成式大模型训练方法和/或基于生成式大模型的人机语音交互方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1008。在一些实施例中,计算机程序的部分或者全部可以经由ROM1002和/或通信单元1009而被载入和/或安装到设备1000上。当计算机程序加载到RAM 1003并由计算单元1001执行时,可以执行上文描述的生成式大模型训练方法和/或基于生成式大模型的人机语音交互方法的一个或多个步骤。备选地,在其他实施例中,计算单元1001可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行生成式大模型训练方法和/或基于生成式大模型的人机语音交互方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决传统物理主机与虚拟专用服务器(VPS,Virtual Private Server)服务中存在的管理难度大,业务扩展性弱的缺陷。
本公开实施例提供的生成式大模型训练方案,由于第一训练集是由用户输入语音与表达相应功能使用意图的包含有接口调用指令的输出结果构建得到,使得通过第一训练集对预训练好的第一生成式大模型进行有监督微调训练,进而使得训练得到的第二生成式大模型具有将用户输入语音改写为匹配的包含有接口调用指令的输出结果的能力,而在由相同用户输入语音与不同候选输出之间的用户偏好排序所构建的第二训练集对预训练好的第三生成式大模型进行有监督训练,进而使得训练得到的奖励模型拥有为生成式大模型针对用户输入语音所生成的不同候选进行质量评分的能力,进而使得在基于人类反馈的强化学习的训练下,所最终得到的目标生成式大模型不仅具有将用户输入语音改写为匹配的包含有接口调用指令的输出结果的能力,还具有输出更符合用户需求的结果的能力。即通过上述训练方案使得经训练得到的目标生成式大模型具有了深度理解用户需求并自行构建相应接口调用指令进行查询得到返回的准确答案的能力,能够不单单依据自然语言输入和大模型参数中蕴含的知识生成自然语言输出,而是借助提供专业能力的应用程序接口调用相应的功能,以更切实的解决用户需求,且在奖励模型的作用下还将使得返回的结果更加符合用户的实际需求和预期。
在上述实施例提供的生成式大模型训练方案的有益效果基础上,本公开实施例提供的基于生成式大模型的人机语音交互方案,则是具体针对由语音助手充当执行主体的场景下,将按上述训练方案训练得到的目标生成式大模型应用于人机语音交互场景,语音助手在将用户输入语音对应的用户输入语音输入目标生成式大模型后,借助目标生成式大模型所具有的能力生成相应的结果,并在遇到需要调用服务接口的地方则自动生成接口调用指令并进行执行以获得返回的调用结果,并将基于已生成的回复文本和调用结果生成出的输出文本返回语音助手,使得语音助手再将其转换为机器答复语音返回用户完成人机语音交互,提升了人机语音交互体验。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。