背景技术:
1、联络中心人工智能(ccai)包括用于创建对话智能体(诸如聊天机器人)以通过文本或语音理解用户并与用户沟通的技术。可以部署智能体来自动协助用户执行许多任务,诸如在线购买、预订酒店房间或租车,或通过技术支持协助用户。智能体可以使用或遵循对话图来跟踪与用户的对话的状态,这些状态来自该对话的多种可能状态。
2、语言模型(lm)包括机器学习模型,诸如深度神经网络、循环神经网络、transformer等,这些机器学习模型被训练来学习单词或词元序列上的概率分布。lm和其他机器学习或统计模型被训练来产生与训练数据中呈现的文本在结构上相似的文本。lm可例如用于模拟对问题或信息请求的类人响应。大语言模型(llm)可以在大量文本数据上进行训练,该大量文本数据例如包括数十亿单词或词元。
3、对话智能体可以使用lm以通过所提供的输入(例如通过对接收到的语音或文本的自然语言处理)来识别用户的请求。在某些情况下,依赖lm的智能体在与用户对话时可能变得语无伦次。此外,对话的复杂性可能导致问题,例如,如果用户在会话期间过于频繁地切换话题。即使智能体使用对话图来跟踪对话的当前和先前状态,复杂的对话也会很快变得难以管理。
4、如果智能体接收到的信息是在预料之外的或不按顺序的,或者如果智能体一次接收到太多信息,特别是如果智能体被配置为遵循其中向用户提示多条信息并逐个接收响应的脚本,则另一个问题可能会出现。对话智能体可能会在“记住”提供给智能体的先前信息方面存在问题。例如,如果智能体接收到来自用户的提示,说“i want to visit the shopto get some clothing with background color black”,则智能体稍后不会在会话期间再次提示用户提供“background color”。
5、可能出现的又一个问题是,当用户提出多个请求时,需要多次遍历对话图。例如,如果用户想要购买一件t恤和一顶帽子,则智能体可能无法同时处理这两个请求。
技术实现思路
1、本公开的各方面提供了一种用于使用语言模型来导览对话图的系统,该语言模型被训练来响应于来自用户计算装置的自然语言输入而生成应用编程接口(api)调用。智能体实现状态处理程序(state handler)和lm,并且通过用户前端与用户计算装置通信。前端和智能体一起构成了本说明书中被称为图ai导览器(gain)系统的系统的一部分。智能体不是通过自然语言输出直接与用户沟通,而是可以使用如本文所述被训练来导览对话图的机器学习或统计模型(诸如语言模型)来与用户沟通。状态处理程序接收由lm生成的api调用,并且如图中所指示更新与用户的对话的状态。在更新之后,状态处理程序可以执行与指示对话的当前状态的节点相关联的一个或多个预定动作。例如,智能体可以提示用户提供更多信息、提供对用户查询的响应或执行其他动作以推进或终止对话。gain系统可以适应以前未见过的具有不同用例和对话逻辑的对话图,而无需大量的资源,从而节省资源并减少训练或微调语言模型所需的处理时间。
2、本公开的各方面提供了一种系统,该系统包括:一个或多个处理器,该一个或多个处理器被配置为:接收用户输入;通过被训练来接收用户输入并生成一个或多个函数调用的语言模型来处理用户输入,一个或多个函数调用包括第一函数调用,第一函数调用在由一个或多个处理器执行时使一个或多个处理器执行与函数调用中指定的对话图的节点相关联的一个或多个预定动作;并且响应于用户输入,执行与对话图中的节点相关联的一个或多个预定动作。
3、本公开的各方面提供了一种方法,该方法包括:由一个或多个处理器接收用户输入;由一个或多个处理器通过被训练来接收用户输入并生成一个或多个函数调用的语言模型来处理用户输入,一个或多个函数调用包括第一函数调用,第一函数调用在由一个或多个处理器执行时使一个或多个处理器执行与函数调用中指定的对话图的节点相关联的一个或多个预定动作;以及响应于用户输入,由一个或多个处理器执行与对话图中的节点相关联的一个或多个预定动作。
4、本公开的各方面提供了一种或多种存储指令的非暂时性计算机可读存储介质,这些指令在由一个或多个处理器执行时使一个或多个处理器执行操作,这些操作包括:接收用户输入;通过被训练来接收用户输入并生成一个或多个函数调用的语言模型来处理用户输入,一个或多个函数调用包括第一函数调用,第一函数调用在由一个或多个处理器执行时使一个或多个处理器执行与函数调用中指定的对话图的节点相关联的一个或多个预定动作;以及响应于用户输入,执行与对话图中的节点相关联的一个或多个预定动作。
5、这些和其他方面可以单独地或以组合包括以下特征中的一者或多者。在一些示例中,本公开的各方面一起包括所有特征。
6、对话图包括:节点,节点各自表示自动化对话智能体与用户之间的对话的可能状态;以及节点之间的边,这些边表示对话的状态之间的转变,边和节点各自与相应的一个或多个预定动作相关联,并且其中,一个或多个处理器被进一步配置为:更新对话图的状态以指示对话图中的当前节点是函数调用中指定的节点;并且执行与对话图的当前节点相对应的一个或多个预定动作。
7、一个或多个函数调用是应用编程接口(api)的api调用。
8、一个或多个预定动作包括以下项中的一者或多者:向用户计算装置发送提供用于对用户输入进行响应的更多信息的提示;提供响应于用户输入的信息;用从用户输入提供的信息更新一个或多个参数值,一个或多个参数由一个或多个处理器保存在一个或多个存储器装置中;以及将对话图中的当前节点更新为不同节点并执行与不同节点相关联的一个或多个预定动作。
9、语言模型被进一步训练来:接收用户输入和附加信息,该附加信息包括以下项中的一者或多者:对话图中的当前位置、指定从对话的根节点到当前位置的路径的数据以及一个或多个保存的参数值;并且基于用户输入和附加信息生成一个或多个api调用。
10、一个或多个处理器至少部分地实现用户前端和状态处理程序,并且其中,一个或多个处理器被进一步配置为:由状态处理程序发送提供用户输入的提示;从用户前端接收用户输入;向语言模型发送用户输入和附加信息;从语言模型并且由状态处理程序接收一个或多个api调用;以及响应于接收到一个或多个api调用,由状态处理程序执行一个或多个预定动作。
11、一个或多个处理器被进一步配置为:训练语言模型直到达到一个或多个收敛标准,其中,在训练语言模型时,一个或多个处理器被配置为执行以下动作的一个或多个迭代:将表示用api调用标记的会话日志的至少一部分的训练样例作为输入发送到语言模型,该会话日志是使用对话图生成的;以及计算语言模型的从训练样例生成的输出与所标记的api调用之间的损失;以及基于所计算的损失更新语言模型的一个或多个模型参数值。
12、在计算损失时,一个或多个处理器被配置为计算所标记的api调用与所生成的输出之间的词典编撰距离。
13、在训练语言模型时,一个或多个处理器被进一步配置为:接收未使用包括使用对话图生成的会话日志的训练样例进行训练的基础语言模型;并且使用表示与基于对话图生成的对话相对应的会话日志的至少部分的训练样例来训练基础语言模型并进行一个或多个迭代。
14、用户输入是第一用户输入;并且其中,一个或多个处理器被进一步配置为:接收与第一用户输入不同的第二用户输入;响应于接收到第二用户输入,生成一个或多个第二api调用;并且确定一个或多个第二api调用包括用于将对话节点的状态更新到下一个节点的api调用,该下一个节点不是与表示图的当前状态的当前节点相邻的下一个节点,并且作为响应:保存当前节点,将对话图的当前状态更新到下一个节点,执行与下一个节点相关联的一个或多个预定动作,以及将对话图的状态更新回到所保存的节点。
1.一种系统,其特征在于,包括:
2.如权利要求1所述的系统,其特征在于,
3.如权利要求1所述的系统,其特征在于,其中,所述一个或多个函数调用是应用编程接口(api)的api调用。
4.如权利要求3所述的系统,其特征在于,
5.如权利要求4所述的系统,其特征在于,
6.如权利要求5所述的系统,其特征在于,
7.如权利要求3所述的系统,其特征在于,其中,所述一个或多个处理器被进一步配置为:
8.如权利要求7所述的系统,其特征在于,其中,在计算所述损失时,所述一个或多个处理器被配置为计算所标记的api调用与所生成的输出之间的词典编撰距离。
9.如权利要求7所述的系统,其特征在于,其中,在训练所述语言模型时,所述一个或多个处理器被进一步配置为:
10.如权利要求3所述的一个或多个处理器,其特征在于,
11.一种方法,其特征在于,包括:
12.如权利要求11所述的方法,其特征在于,
13.如权利要求11所述的方法,其特征在于,其中,所述一个或多个函数调用是应用编程接口(api)的api调用。
14.如权利要求13所述的方法,其特征在于,其中,所述一个或多个预定动作包括以下项中的一者或多者:
15.如权利要求14所述的方法,其特征在于,
16.如权利要求15所述的方法,其特征在于,
17.如权利要求13所述的方法,其特征在于,其中,所述方法还包括:
18.如权利要求17所述的方法,其特征在于,其中,计算所述损失包括由所述一个或多个处理器计算所标记的api调用与所生成的输出之间的词典编撰距离。
19.如权利要求17所述的方法,其特征在于,其中,训练所述语言模型还包括:
20.一种或多种存储指令的非暂时性计算机可读存储介质,其特征在于,所述指令在由一个或多个处理器执行时使所述一个或多个处理器执行包括以下项的操作: