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

用于机器学习模型的联邦学习的提高的效率的方法和系统

文献发布时间:2024-04-18 19:58:26


用于机器学习模型的联邦学习的提高的效率的方法和系统

背景技术

机器学习(ML)模型的联邦学习是一种日益流行的用于训练ML模型的ML技术。在传统的联邦学习中,设备上ML模型本地存储在用户的客户端设备上,并且全局ML模型,作为设备上ML模型的基于远程的对应方(counterpart),远程地存储在远程系统处(例如,远程服务器或远程服务器集群)。客户端设备通过使用设备上ML模型能够处理在客户端设备处检测到的用户输入以生成预测输出,并且能够以有监督或无监督方式基于预测输出来生成梯度。此外,客户端设备可以将梯度传输到远程系统。远程系统可以利用梯度和可选地利用在客户端设备或附加客户端设备处以类似方式生成的附加梯度来更新全局ML模型的权重。远程系统可以将全局ML模型或全局ML模型的更新权重传输到客户端设备。然后客户端设备可以用更新的全局ML模型替换设备上ML模型,或者用更新的全局ML模型的更新的权重替换设备上ML模型的权重,从而更新设备上ML模型。

然而,ML模型的联邦学习可能导致在客户端设备处不必要地消耗大量资源,并且/或者客户端设备可能没有足够的资源在客户端设备处本地存储和训练全尺寸的ML模型。例如,假设设备上自动语音辨识(ASR)模型用于生成转录,该转录被预测为对应于经由客户端设备的麦克风在音频数据流中捕获的口头话语。在该示例中,预测输出可以对应于转录或其部分,并且可以基于转录来生成梯度。在生成梯度时,可以通过在设备上存储ASR模型的每层处的激活而消耗设备上存储器,并且可以通过计算在设备上ASR模型的每层处的错误函数并且使得跨设备上ASR模型的每层反向传播错误函数而消耗设备上计算资源。因此,需要不会不必要地消耗设备上存储器和设备上计算资源的技术以提高联邦学习的效率。

发明内容

本文公开的实施方式涉及基于在客户端设备处生成的更新的在远程系统(例如,远程服务器或远程服务器集群)处的机器学习(ML)模型的有效率的联邦学习。给定客户端设备的处理器可以接收客户端数据,使用给定设备上ML模型处理客户端数据以生成预测输出,使用有监督或无监督学习技术基于预测输出生成梯度,基于梯度来生成针对给定设备上ML模型的给定相异部分的给定更新,并且将给定更新传输到远程系统。此外,远程系统的处理器可以从给定客户端设备接收给定更新,并且使得基于给定更新来更新给定全局ML模型(例如,其是给定设备上ML模型的基于远程的对应方),从而更新与给定设备上ML模型的给定相异部分相对应的给定全局ML模型的给定相异部分,并且无需使得基于给定更新来更新给定ML模型的任何其它部分。值得注意的是,此过程可以在给定客户端设备处(或在一个或多个附加客户端设备处并行地)重复,以生成针对给定全局ML模型的其他相异部分的附加给定更新。因此,可以减少参与ML模型的联邦学习的客户端设备处消耗的计算资源,因为客户端设备不会针对全尺寸的ML模型生成完全更新,并且可以减少在向远程系统传输更新时消耗的网络资源,因为向远程系统传输少于全尺寸的ML模型的完全更新。

例如,假设捕获人类用户的口头话语“Hey Assistant,turn on the kitchenlights(嘿助理,打开厨房灯)”的音频数据是经由人类用户的给定客户端设备的麦克风生成的。在该示例中,捕获口头话语的音频数据可以对应于客户端数据。此外,可以使用存储在给定客户端设备的设备上存储器中的设备上自动语音辨识(ASR)模型来处理音频数据,以生成ASR数据,诸如被预测为对应于音频数据中捕获的口头话语的一个或多个语音假设。在该示例中,一个或多个语音假设可以对应于预测输出。此外,可以基于使用本文所述的一种或多种半监督或自监督学习技术处理音频数据和/或语音假设中的一个或多个来生成梯度。值得注意的是,设备上ASR模型可以包括多个设备上ASR层,诸如一个或多个第一设备上ASR层、一个或多个第二设备上ASR层、一个或多个第三设备上ASR层等等。然而,可以仅针对设备上ASR模型的相异部分(诸如一个或多个第一设备上ASR层)生成梯度而不针对任何其他设备上ASR层生成梯度。通过仅针对一个或多个第一设备上ASR层生成梯度,可以减少在给定客户端设备处的设备上存储器和计算资源的消耗,因为给定客户端设备不需要为设备上ASR模型的每个ASR层存储激活函数以生成梯度,并且因为给定客户端设备不需要如在传统联邦学习中那样将激活函数与设备上ASR模型的每一个ASR层的损失函数进行比较。

继续上面示例,假设给定客户端设备针对一个或多个第一设备上的ASR层生成梯度。给定客户端设备还可以基于梯度来为一个或多个第一设备上ASR层生成第一更新。在该示例中,第一更新可以包括例如与第一更新相关联的设备上ASR模型的一个或多个第一设备上ASR层的指示、要基于第一更新而更新的对应方全局ASR模型的一个或多个第一对应方全局ASR层的指示、用于为设备上ASR模型的一个或多个第一设备上ASR层生成第一更新的设备上ASR模型的指示、基于预测输出而生成的梯度、基于梯度在客户端设备处本地更新的设备上ASR模型的一个或多个更新的第一设备上ASR层(例如,在某些实施方式中,其中设备上ASR实际上是在给定客户端设备处基于梯度来本地更新的)和/或设备上ASR模型的一个或多个更新的第一设备上ASR层的一个或多个更新的设备上权重(例如,在某些实施方式中,其中设备上ASR实际上是在给定客户端设备处基于梯度来本地更新的)。

在该示例中,给定客户端设备可以向远程系统传输第一更新。响应于接收到第一更新,远程系统可以使得基于第一更新来更新全局ASR模型的一个或多个第一全局ASR层,从而产生更新的全局ASR模型。在某些情况下,远程系统可以可选地将从给定客户端设备接收到的第一更新与从给定客户端设备或一个或多个附加客户端设备接收到的附加更新进行组合。此外,远程系统可以将更新的全局ASR模型(例如,更新的全局ASR模型本身、其一个或多个更新的全局ASR层和/或其一个或多个更新的全局权重)传输回客户端设备和/或附加客户端设备中的一个或多个附加客户端设备。客户端设备中的每个可以在相应设备上存储器中用更新的全局ASR模型替换设备上ASR模型,并且继续为更新的全局ASR模型生成附加更新,并且向远程系统传输附加更新以继续更新更新的全局ASR模型。

虽然以上示例针对作为捕获用户的口头话语的音频数据的客户端数据来描述,但是应当理解,这出于示例的目的而不是限制性的。例如,客户端数据可以附加地或替选地包括在给定客户端设备处生成的视觉数据、文本数据、触摸数据和/或任何其他类型的客户端数据。在这些和其他实例中,用于处理客户端数据的设备上ML模型可以是基于视觉的ML模型、基于文本的ML模型和/或基于触摸的ML模型。此外,尽管上述示例针对用于处理音频数据的ASR模型来描述,但是应当理解,这出于示例的目的而不是限制性的。例如,其他基于音频的ML模型可以附加地或替选地用于处理客户端数据,并且随后基于客户端数据的处理来更新。在这些和其他实例中,基于音频的ML模型可以包括例如被训练为预测音频数据是否捕获特定词或短语的热词检测模型、被训练为预测是否在流音频数据中捕获人类的话音活动的话音活动检测(VAD)模型和/或任何其他基于音频的ML模型。

在某些实施方式中,在生成梯度之前,可以压缩多个设备上ML层,使得在给定客户端设备处将多个设备上ML层实现为单个设备上ML层。例如,给定客户端设备可以基于由给定客户端设备的设备上调度引擎生成的调度信号和/或从远程调度引擎接收到的调度信号来将第一设备上ML层和第二设备上ML层压缩为一个或多个第一设备上ML层。调度信号可以包括在生成梯度之前要压缩的设备上ML层的指示。在这些示例的一些版本中,第一设备上ML层和第二设备上ML层可以在生成预测输出之前和生成梯度之前被压缩为一个或多个设备上ML层,而在附加或替选的示例中,第一设备上ML层和第二设备上ML层可以在生成预测输出之后但是在生成梯度之前压缩为一个或多个第一设备上ML层。值得注意的是,第一设备上ML层和第二设备上ML层都不会被丢弃。相反,将第一设备上ML层和第二设备上ML层压缩为一个或多个第一ML层对设备上ML模型施加约束。

此外,附加客户端设备,并且在生成附加梯度(例如,基于在附加客户端设备处接收到的附加客户端数据)之前,多个设备上ML层还可以被压缩,使得多个设备上ML层在附加客户端设备处实现为单个设备上ML层。继续上面示例,将至少设备上ML模型的第二设备上ML层和第三设备上ML层压缩为在附加客户端设备处的一个或多个第二ML层。附加客户端设备可以以上述相同或类似的方式将设备上ML模型的第二设备上ML层和第三设备上ML层压缩为一个或多个第二ML层,但是是基于由附加客户端设备的设备上调度引擎生成的调度信号和/或从远程调度引擎接收到的调度信号。值得注意的是,在该示例中,第二设备上ML层被压缩为客户端设备处的一个或多个第一设备上ML层和附加客户端设备处的一个或多个第二设备上ML层二者。然而,一个或多个第一设备上ML层和一个或多个第二设备上ML层各自包括至少一个独特的设备上ML层——针对一个或多个第一设备上ML层的第一设备上ML层和针对第二设备上ML层的一个或多个第三设备上ML层。尽管如此,应当理解,这是为了示例,而不是为了限制。例如,可以在相异的客户端设备处压缩相同的设备上ML层(例如,第一设备上ML层和第二设备上ML层在客户端设备和附加客户端设备二者处被压缩为一个或多个第一ML层),相异的ML层可以在相异的客户端设备处被压缩,使得在相异的设备处压缩了至少一个独特的ML层,和/或可以在相异的客户端设备上压缩相异的ML层,使得在不同的设备处仅压缩独特的ML层。尽管这些相异的ML层之间可能存在差异,但它们在设备上ML模型中是相邻的,并且可能包括一些重叠。因此,通过生成第一更新和第二更新作为共享的更新,远程系统可以利用这种重叠来节省计算和/或网络资源,从而产生联邦学习的提高的效率。

在一些实施方式中,远程调度引擎可以将客户端设备的超集划分为多个子集。在那些实施方式的一些版本中,客户端设备的子集中的每个都可以在更新给定全局ML模型时实行梯度快照技术的迭代。例如,远程系统可以使得给定客户端设备基于处理在客户端设备处接收到的客户端数据来生成针对给定设备上ML模型的一个或多个第N设备上ML层的更新,其中N是正整数。此外,远程系统可以使得附加客户端设备基于处理在附加客户端设备处接收到的附加客户端数据来生成针对给定设备上ML模型的一个或多个第N-1设备上ML层的附加更新。换句话说,系统可以采用梯度快照技术来提高ML模型的联邦学习的效率。梯度快照技术可以基于由客户端设备和/或附加客户端设备的对应设备上调度引擎生成的对应调度信号和/或从远程调度引擎接收到的对应调度信号来实现。对应调度信号可以指令客户端设备生成针对设备上ML模型的一个或多个第N设备上ML层的第一更新,指令附加客户端设备生成针对设备上ML模型的一个或多个第N-1设备上ML层的第二更新,指令又一个附加客户端设备生成针对设备上ML模型的一个或多个第N-2设备上ML层的第三更新,等等。因此,通过利用梯度快照技术,远程系统可以确保生成针对第N层设备上ML模型中的每个的更新,如本文所述。

在那些实施方式的一些版本中,远程调度引擎可以将客户端设备的超集划分为多个子集。在那些实施方式的一些版本中,客户端设备的子集中的每个都可能实行梯度快照技术的迭代。例如,客户端设备的第一子集可以包括第一客户端设备可以生成针对一个或多个第N设备上ML层的更新,第二客户端设备可以生成针对一个或多个第N-1设备上ML层的更新,第三客户端设备可以生成针对一个或多个第N-2设备上ML层的更新,依此类推针对第N设备上ML层中的每个。此外,客户端设备的第二子集可以以相同或类似的方式针对第N设备上ML层中的每个生成更新。因此,当更新发送到远程系统时,可以确保远程系统具有针对ML模型中可用于更新的相异部分中的每个的更新。

在一些实施方式中,用于梯度的无监督学习可以对应于半监督学习技术,诸如教师-学生方法。例如,可以基于使用设备上ML模型处理客户端数据来生成预测输出,如在以上示例所述。此外,可以基于使用基准ML模型处理客户端数据来生成基准输出。在本示例中,基准ML模型可以与设备上ML模型和全局ML模型具有相同的类型,并且基准输出可以用作用于生成梯度的监督信号。例如,基准ML模型可以对应于基准ASR模型,该基准ASR模型用于基于处理音频数据来生成一个或多个基准语音假设。此外,设备上ASR模型可以基于处理音频来生成语音假设中的一个或多个,如在以上示例中所述。在这种情况下,可以将基准语音假设中的一个或多个与语音假设中的一个或多个进行比较,以生成一个或多个第一设备上ASR层的梯度。

在那些实施方式的一些版本中,预测输出可以仅使用设备上的ASR模型来生成和/或可以仅响应于确定满足一个或多个条件而利用梯度生成更新。一个或多个条件可以包括:例如,预测输出是否满足预测输出阈值、基准输出是否满足基准输出阈值和/或其他条件。换句话说,可以仅使用设备上ASR模型来生成预测输出,并且/或者梯度可以仅响应于确定基准输出提供足够的监督信号而利用梯度生成更新。

在附加或替选的实施方式中,用于生成梯度的无监督学习可以对应于自监督学习技术。在自监督学习中,可以识别客户端数据的目标部分。客户端数据的目标部分可以在客户端数据的前附(prepended)部分之后,并且可以在客户端数据的后附(appended)部分之前。此外,可以使用各种掩蔽技术来掩蔽客户端数据的目标部分。客户端数据的目标部分可以被任意选择,或者可以基于一个或多个标准来选择——该一个或多个标准诸如在n和m秒的音频数据之间的特定段对应于目标部分、对应于图像的中心部分的视觉数据部分对应于目标部分、文本数据的中心部分对应于目标部分—和/或用于选择客户端数据的目标部分的任何其它标准。在当客户端数据对应于音频数据时的一些实施方式中,客户端数据的目标部分可以对应于相应音频数据流的目标音频波形部分,客户端数据的前附部分可以对应于在目标音频波形部分之前接收的前附音频波形部分,并且客户端数据的后附部分可以对应于在目标音频波形部分之后接收的后附音频波形部分。在当客户端数据对应于音频数据的附加或替选的实施方式中,客户端数据可以对应于音频的表示,诸如音频数据的向量表示和/或音频数据的其他表示。在那些实施方式中,客户端数据的目标部分可以对应于音频数据的目标表示部分,客户端数据的前附部分可以对应于在目标表示部分之前的前附表示部分,并且客户端数据的后附部分可以对应于跟随在目标表示部分之后的后附表示部分。在附加的或替选的实施方式中,客户端数据可以对应于文本数据或视觉数据。在那些实施方式中,目标部分、前附部分和后附部分可以以相同或类似的方式识别,并且目标部分可以被掩蔽。

在当用于梯度的无监督学习对应于上述自监督学习技术的实施方式中,可以使用设备上ML模型来处理客户端数据的前附部分和客户端数据的后附部分,以生成预测客户端数据的目标部分的预测输出。例如,在客户端数据的目标部分对应于相应音频数据流的目标音频波形部分的实施方式中,进一步假设音频数据捕获口头话语。在该示例中,可以使用设备上ASR模型来处理前附音频波形部分和后附音频波形部分,以生成预测输出。在该示例中,预测输出可以对应于被预测为与目标音频波形部分和/或目标音频波形部分的音频特征相对应的预测目标音频波形和/或预测音频特征。换句话说,自监督学习技术可以尝试基于处理前附音频波形部分和后附音频波形部分来重构目标音频波形部分和/或其音频特征。此外,例如,在客户端数据的目标部分对应于相应音频数据流的目标表示部分的实施方式中,可以以相同或类似的方式处理前附部分和后附部分以预测目标部分。此外,可以将预测输出与被掩蔽的目标部分进行比较以生成梯度。换句话说,被掩蔽的客户端数据的实际目标部分可以用作与预测输出进行比较的监督信号。此外,基于该比较,可以生成梯度并且将其用于生成更新。

在各种实施方式中,可以使用监督学习附加地或替选地生成梯度。例如,再次假设捕获“Hey Assistant,turn on the kitchen lights”的人类用户的口头话语的音频数据是经由人类用户的给定客户端设备的麦克风来生成的。在该示例中,捕获口头话语的音频数据可以对应于客户端数据。此外,可以使用存储在给定客户端设备的设备上存储器中的设备上ASR模型来处理音频数据,以生成ASR数据,诸如被预测为对应于音频数据中捕获的口头话语的一个或多个语音假设。在该示例中,一个或多个语音假设可以对应于预测输出,并且可以选择给定语音假设作为对应于口头话语,并且被提供以用于经由给定客户端设备的显示器作为转录而呈现给用户。此外,在该示例中,进一步假设用户更正转录的一个或多个词项。转录的经更正的一个或多个词项可以用作在生成用于第一设备上ASR层中的一个或多个的梯度的监督信号。例如,给定客户端设备可以将转录的一个或多个词项与转录的经更正的词项中的一个或多个进行比较,以针对第一设备上ASR层中的一个或多个生成梯度。

通过使用本文所述的技术,可以实现各种技术优点。作为一个非限制性示例,通过基于特定于设备上ML模型特定部分的梯度来生成更新,可以减少参与ML模型的联邦学习的客户端设备处的设备上存储器和计算资源的消耗。例如,客户端设备在生成梯度时存储较少的数据,并且通过仅生成特定于设备上ML模型的特定部分的梯度来在生成梯度时执行较少的处理。此外,还可以减少网络资源的消耗,因为传输到远程系统的更新根据该更新是基于这些特定于设备ML模型特定部分的梯度来生成而包括更少的数据。作为另一个非限制示例,远程系统可以在不同的客户端设备处调度这些更新,以使得远程系统能够接收针对全局ML模型的全部的更新,即使没有单个客户端设备针对全局ML模型的全体来生成更新。因此,全局ML模型(以及—将全局ML模型传输回到客户端设备时还连同设备上ML模型)具有更高的精确度和/或查全率,同时使参与ML模型的联邦学习的客户端设备中的每个能够消耗更少的设备上资源。

提供以上描述作为本公开的一些实施方式的概述。下面更详细地描述那些实施方式和其他实施方式的进一步描述。

附图说明

图1描绘了根据各种实施方式的示出本公开的各个方面的示例过程流。

图2描绘了可以实现本文公开的实施方式的示例环境的框图。

图3描绘了根据各种实施方式的、图示实现机器学习模型的有效率的联邦学习的客户端操作的示例方法的流程图。

图4描绘了根据各种实施方式的、图示用于实现机器学习模型的有效率的联邦学习的技术的示例方法的流程图。

图5描绘了根据各种实施方式的、图示用于实现机器学习模型的有效率的联邦学习的技术的另一示例方法的流程图。

图6描绘了根据各种实施方式的、图示用于实现机器学习模型的有效率的联邦学习的技术的又一示例方法的流程图。

图7描绘了根据各种实施方式的、图示实现机器学习模型的有效率的联邦学习的远程系统侧操作的示例方法的流程图。

图8描绘了根据各种实施方式的计算设备的示例架构。

具体实施方式

图1描述了示出本公开的各个方面的示例过程流。客户端设备150被图示在图1中,并且至少包括在表示客户端设备150的图1框内的组件。客户端设备150可以经由各种组件和/或传感器接收客户端数据101。例如,在客户端设备150处接收到的客户端数据101可以包括经由客户端设备150的一个或多个麦克风生成的音频数据中捕获的口头话语、在经由客户端设备150的触摸敏感显示器或与客户端设备150通信的外围设备(例如,与客户端设备150一体化的键盘或外部键盘)生成的文本数据中捕获的键入输入、基于在经由客户端设备150的触摸敏感显示器客户端设备150的一个或多个按钮(例如,一个或多个硬件按钮和/或软件按钮)生成的触摸数据中捕获的触摸输入、在经由客户端设备150的一个或多个视觉组件生成的视觉数据中捕获的姿势输入,和/或可以由客户端设备150经由其他组件和/或传感器接收到的任何其他类型的客户端数据101。

此外,客户端设备150可以包括存储在客户端设备150的设备上存储器中(诸如在设备上ML模型的数据库154A中)的各种设备上机器学习(ML)模型。在一些实施方式中,并且基于处理客户端数据101,可以利用设备上ML模型来使得客户端数据101的特定履行被实行(例如,如关于图2更详细描述)。在附加或替选的实施方式中,并且基于处理客户端数据101,设备上ML模型可以在客户端设备150处本地更新和/或设备上ML模型可以用于在客户端设备150处针对远程地存储在远程系统160(例如,远程服务器或远程服务器集群)的远程存储器中—诸如在全局ML模型的数据库154B中—的对应方全局ML模型生成一个或多个更新(例如,如关于图1、3、4、5、6和7更详细地描述)。远程系统至少包括包含在表示远程系统160的图1的框内的组件。客户端设备150和远程系统160通过一个或多个网络(例如,通过一个或多个局域网(LAN)和/或广域网(WAN))通信地耦合,以便在它们之间传输和接收数据。

如本文所述,实施方式涉及ML模型的联邦学习的提高的效率。类似于传统联邦学习,设备上ML引擎132可以使用存储在设备上ML模型的数据库154A中的一个或多个设备上ML模型来处理客户端数据101以生成预测输出102。由设备上ML引擎132利用的一个或多个设备上ML模型可以取决于在客户端设备150处接收到的客户端数据101的类型。例如,假设客户端数据101对应于经由客户端设备150的一个或多个麦克风生成的音频数据。在该示例中,设备上ML模型132在生成预测输出102时可以利用一个或多个基于音频的ML模型来处理客户端数据101的,一个或多个基于音频的ML模型诸如自动语音辨识(ASR)模型、热词检测模型、持续会话模型、话音识别模型、话音活动检测(VAD)模型、端点识别(endpointin)模型和/或其他基于音频的ML模型。此外,该示例中的预测输出102(和/或与其相关联的预测值,诸如概率、对数似然性、二进制值和/或任何其他预测值)可以基于用于处理客户端数据101的一个或多个基于音频的ML模型,诸如关于图2的基于音频的ML模型描述的一个或多个预测。另外,例如,附加地或替选地假设客户端数据101对应于经由客户端设备150的一个或多个视觉组件生成的视觉数据。在该示例中,设备上ML模型132在生成预测输出102时可以利用一个或多个基于视觉的ML模型来处理客户端数据101,一个或多个基于视觉的ML模型诸如对象检测模型、对象分类模型、面部识别模型和/或其他基于视觉的ML模型。此外,该示例中的预测输出102(和/或与其相关联的预测值,诸如概率、对数似然性、二进制值和/或任何其他预测值)可以基于用于处理客户端数据101的一个或多个基于视觉的ML模型,诸如关于图2的基于视觉的ML模型描述的一个或多个预测。另外,例如,附加地或替选地假设客户端数据101对应于经由客户端设备150的一个或多个用户接口输入组件生成的(或基于处理音频数据和/或视觉数据生成的)文本数据或触摸数据。在该示例中,设备上ML引擎132在生成预测输出102时可以利用一个或多个基于文本的ML模型和/或基于触摸的ML模型来处理客户端数据101,一个或多个基于文本的ML模型和/或基于触摸的ML模型诸如自然语言理解(NLU)模型、履行模型和/或其他基于文本的ML模型和/或基于触摸的ML模型。此外,该示例中的预测输出102(和/或与其相关联的预测值,诸如概率、对数似然性、二进制值和/或任何其他预测值)可以基于用于处理客户端数据101的一个或多个基于文本的ML模型和/或基于触摸的ML模型,诸如关于图2的基于文本的ML模型和/或基于触摸的ML模型描述的一个或多个预测。

在各种实施方式中,为了使得在客户端设备150处本地更新设备上ML模型和/或在客户端设备150处为对应方的全局ML模型生成一个或多个更新时利用设备上ML模型,客户端设备150可以使得预测输出102被提供给梯度引擎136。梯度引擎可以将预测输出102与监督信号103进行比较以生成梯度104。在一些实施方式中,监督信号103可以是使用无监督学习引擎134生成的隐式监督信号。在监督信号基于显式用户反馈(例如,来自客户端设备150的人类用户的反馈和/或来自客户端数据101的人类注释者的反馈)而不可用的情况下,无监督学习引擎134可以利用一个或多个自监督学习技术和/或半监督学习技术(例如,如关于图4所述)来生成监督信号103,这由于隐私考虑的ML模型的典型联邦学习。例如,假设客户端数据101对应于经由客户端设备150的一个或多个麦克风生成的音频数据,并且进一步假设设备上ML引擎132使用设备上ASR模型来处理音频数据,以生成和选择被预测为对应于在音频数据中捕获的口头话语的给定语音假设。在该示例中,即使客户端设备150的人类用户没有提供关于给定语音假设的准确性的任何显式反馈,无监督学习引擎134也可以利用本文描述的一个或多个自监督学习技术和/或半监督学习技术来生成监督信号103。在附加或替选的实施方式中,监督信号103可以是基于客户端数据101生成的显式监督信号,并且可以可选地省略无监督学习引擎134(例如,来自客户端设备150的人类用户的反馈)。例如,再次假设客户端数据101对应于经由客户端设备150的一个或多个麦克风生成的音频数据,并且再次假设设备上ML引擎132使用设备上ASR模型处理音频数据以生成和选择被预测为对应于音频数据中捕获的口头话语的给定语音假设。然而,进一步假设客户端设备150的人类用户更正给定语音假设的一个或多个术语或短语。在该示例中,可以在客户端数据101中捕获更正并且将其用作监督信号103,而不使用无监督学习引擎134。然而,在此示例中,无监督学习引擎134可以附加地或替选地利用本文所述的一种或多种自监督学习技术和/或半监督学习技术来生成附加的或替选的监督信号。

在一些实施方式中,梯度104(和其他梯度)可以从用于训练ML模型(例如,设备上ML模型和/或全局ML模型)的损失函数中推导,使得梯度表示从监管信号103与预测输出102的比较中获得的损失函数(或其导数)的值。例如,当监督信号103和预测输出102匹配时,梯度引擎136可以生成零梯度。此外,例如,当监督信号103和预测输出102不匹配时,梯度引擎136可以生成非零梯度,该非零梯度可选地取决于不匹配的程度。不匹配的程度可以基于监督信号103与预测输出102的确定性比较之间的不匹配的程度。在附加或替选的实施方式中,梯度104(和其他梯度)可以从用于训练模型的损失函数中推导,使得梯度104表示基于预测输出102确定的损失函数(或其导数)的值(例如,不考虑任何监督信号)。

在那些实施方式的一些版本中,梯度104(和其他梯度)可以特定于给定ML模型的特定ML层。例如,再次假设客户端数据101对应于经由客户端设备150的一个或多个麦克风生成的音频数据,并且再次假设设备上ML引擎132使用设备上ASR模型处理音频数据以生成和选择被预测为对应于音频数据中捕获的口头话语的给定语音假设。进一步假设设备上ASR模型至少包括一个或多个第一设备上ASR层和一个或多个第二设备上ASR层。在该示例中,损失函数和/或该损失函数的值可以特定于一个或多个第一设备上ASR层和/或特定于一个或多个第二设备上ASR层。例如,第一损失函数或第一损失函数的第一值可以用于针对一个或多个第一ASR层生成梯度104,并且第二损失函数或第一损失函数的第二值可以用于针对一个或多个第二ASR层生成梯度104。附加地或者替选地,可以在客户端设备150处以这种方式针对一个或多个第一ASR层生成梯度104,并且可以在客户端设备150处不针对一个或多个第二ASR层生成梯度。相反,可以以关于在客户端设备150处生成梯度104所描述的相同或相似在一个或多个附加客户端设备170处生成针对一个或多个第二ASR层的梯度。一个或多个附加客户端设备170中的每个可以至少包括包含在表示客户端设备150的图1的框中的组件的对应实例。

值得注意的是,在传统联邦学习中,多个客户端设备(例如,客户端设备150和附加客户端设备170中的一个或多个)各自基于在多个客户端设备中的给定客户端设备处接收到的对应客户端数据来生成针对相应设备上ML模型的相应梯度。例如,多个客户端设备中的每个都可以具有存储在相应设备上存储器中的相应对应方设备上ML模型,并且处理对应客户端数据来生成针对相应设备上ML模型的对应实例的梯度。尽管该示例中的梯度在相异客户端设备处生成,但是为相应对应方设备上ML模型生成梯度。此外,远程系统160可以利用相应梯度(或基于相应梯度而生成的相应更新)来更新相应对应方设备上ML模型的基于远程的对应方。然而,在传统联邦学习中,相应梯度(或基于相应梯度而生成的相应更新)通常作为一个整体用于相应对应方设备上ML模型。相比之下,为了提高联邦学习的效率,生成的相应梯度可以仅针对相应对应方设备上ML模型的一部分。因此,可以减少多个客户端设备中的每个处的计算资源和存储器的消耗,因为基于相应客户端数据生成的相应梯度可以仅针对相应对应方设备上ML模型的一部分,并且可以减少在向远程系统160传输相应梯度时的网络资源的消耗。

因此,在各种实施方式中,客户端设备150(以及附加客户端设备170中的一个或多个)可以包括设备上调度引擎138,以确保针对在多个客户端设备中的每个客户端设备处的相应对应方设备上ML模型的相异部分生成相应梯度。设备上调度信号138可以生成提供给梯度引擎136的调度信号105,以确保客户端设备150生成针对相应设备上ML模型的适当设备上ML层的梯度。例如,客户端设备150的设备上调度引擎138可以指示梯度引擎136经由调度信号105生成针对相应对应方设备上ML模型的一个或多个第一设备上ML层的梯度104。此外,附加客户端设备170中的一个或多个的相应设备上调度引擎可以指示相应梯度引擎经由对应调度信号生成针对相应对应方设备上ML模型的一个或多个第二设备上ML层的相应梯度。客户端设备150的调度信号105和附加客户端设备170中的一个或多个的相应调度信号可以在客户端设备中的每个处从远程系统的远程调度引擎146接收(例如,如关于图5和图6所述)。

在一些实施方式中,梯度引擎136可以使得梯度104连同在客户端设备150处生成的其他梯度一起存储在客户端设备150的设备上存储器中,直到满足一个或多个客户端设备条件(例如,参照图3描述)以使得梯度104(和其他梯度)被传输到远程系统160。在附加的或替选的实施方式中,梯度引擎136可以使得梯度104被提供给ML更新引擎140。ML更新引擎140可以基于梯度104来生成ML更新106,该梯度104包括要基于ML更新106(例如,当ML更新106是基于针对ASR模型的梯度生成时为ASR更新、当ML更新106是基于针对热词模型的梯度生成时为热词更新等等)而更新的全局ML模型的类型的指示。在一些实施方式中,ML更新106可以包括梯度104和基于梯度而更新的全局ML模型的一个或多个全局ML层的指示。例如,假设设备上调度引擎138指令梯度引擎136经由调度信号105生成针对相应对应方设备上ML模型的一个或多个第一设备上ML层的梯度104。在该示例中,ML更新引擎140可以生成ML更新106,以包括针对一个或多个第一设备上ML层的梯度104,以及应当利用梯度104来更新相应对应方全局ML模型的一个或多个第一全局ML层的指示。此外,假设相应设备上调度引擎指令附加客户端设备170中的给定附加客户端设备170指令相应梯度引擎经由相应调度信号生成针对相应对应方设备上ML模型的一个或多个第二设备上ML层的相应梯度。在该示例中,相应ML更新引擎可以生成附加ML更新107,以包括针对一个或多个第二设备上ML层的相应梯度,以及应当利用相应梯度来更新相应对应方全局ML模型的一个或多个第二全局ML层的指示。值得注意的是,在这些示例中,没有在客户端设备150或附加客户端设备170中的给定客户端设备170处分别基于梯度104或相应梯度来在本地更新相应设备上ML模型。

在附加或替选的实施方式中,ML更新引擎140可以使得相应对应方设备上ML模型基于梯度104来更新。继续以上示例,再次假设设备上调度引擎138指令梯度引擎136经由调度信号105生成用于相应对应方设备上ML模型的一个或多个第一设备上ML层的梯度104。在该示例中,ML更新引擎140可以使得梯度104跨一个或多个第一设备上ML层反向传播以更新一个或多个第一设备上ML层的一个或多个相应第一设备上权重,而一个或多个第二设备上ML层(和/或其他设备上ML层)是固定的(例如,不更新),从而产生一个或多个更新的第一设备上ML层。此外,相同的过程可以在附加客户端设备170中的给定附加客户端设备170处重复,以更新一个或多个第二设备上ML层的一个或多个相应第二设备上权重,而一个或多个第一设备上ML层(和/或其他设备上ML层)是固定的,从而产生一个或多个更新的第二设备上ML层。

在这些附加或替选的实施方式的一些版本中,ML更新106可以包括一个或多个更新的第一设备上ML层以及应当在远程系统160的远程存储器中利用一个或多个更新的第一设备上ML层替换的全局ML模型的一个或多个全局ML层的指示。继续以上示例,ML更新106可以包括应当利用一个或多个更新的第一设备ML层替换相应对应方全局ML模型的一个或多个第一全局ML层的指示。类似地,附加ML更新107可以包括应当利用一个或多个更新的第二设备上ML层替换相应对应方全局ML模型的一个或多个第二全局ML层的指示。

在这些附加或替选的实施方式的其他版本中,ML更新106可以包括用于一个或多个第一更新的设备上ML层的一个或多个更新的第一设备上权重以及应当在远程系统160的远程存储器处利用一个或多个更新的第一设备上权重替换的全局ML模型的一个或多个全局权重的指示。继续以上示例,ML更新106可以包括应当利用用于一个或多个第一更新的设备上ML层的一个或多个更新的第一设备上权重替换相应对应方全局ML模型的一个或多个第一全局ML层的一个或多个第一全局权重的指示。类似地,附加ML更新107可以包括应当利用用于一个或多个第二更新的设备上ML层的一个或多个更新的第二设备上权重替换相应对应方全局ML模型的一个或多个第二全局ML层的一个或多个第二全局权重的指示。

换句话说,在传统联邦学习中,可以以分布式方式更新相应对应方全局ML模型,因为基于在多个客户端设备处生成的梯度(例如,梯度104和/或一个或多个附加梯度)或更新(例如,ML更新106和/或附加ML更新107中的一个或多个)来更新相应对应方全局ML模型。然而,在生成这些梯度或更新时在多个客户端设备中的每个处都可能消耗相当大量的计算和网络资源。因此,通过利用本文所述的技术,可以通过使客户端设备中的每个能够生成和传输与传统联邦学习相比更少的数据来节省在多个客户端设备中的每个处原本会消耗的计算和网络资源二者。

远程更新引擎142至少可以利用从客户端设备150接收到的ML更新106和/或附加ML更新107中的一个或多个附加ML更新107来更新存储在全局ML模型的数据库154B中的全局ML模型中的一个或多个。在一些实施方式中,当在远程系统160处接收从客户端设备150接收到的ML更新106和/或附加ML更新107中的一个或多个附加ML更新107时,它们可以存储在更新的数据库180中。在那些实施方式的一些版本中,当满足一个或多个远程系统条件时,远程更新引擎142可以获得更新以更新全局ML模型中的一个或多个(例如,如关于图7所述)。在附加或替选的实施方式中,远程更新引擎142可以随着从客户端设备150接收到ML更新106和/或随着从附加客户端设备170中的一个或多个接收到的附加ML更新107中的一个或多个而更新一个或多个全局ML模型。

值得注意的是,远程更新引擎142可以基于从客户端设备150接收到的ML更新106和/或从附加客户端设备170中的一个或多个接收到的附加ML更新107中的一个或多个的类型来以各种方式更新相应全局ML模型。例如,远程更新引擎142可以从存储在全局ML模型的数据库154B中的全局ML模型当中识别特定全局ML模型以更新其全局层和/或其全局权重。在一些实施方式中,远程更新引擎142可以基于这样的指示来识别特定全局ML模型:要基于ML更新106和/或附加ML更新107中的一个或多个附加ML更新107来更新的全局ML模型的类型。例如,如果用于ASR模型的多个更新被接收和/或存储在更新的数据库180中,则远程更新引擎142可以识别要更新的相应对应方全局ASR模型。此外,远程更新引擎142如何更新相应对应方全局ASR模型可能基于ML更新106和/或附加ML更新107中的一个或多个的内容。例如,如果给定更新包括梯度并且指示它是针对设备上ASR模型的一个或多个第一设备上ASR层,则远程更新引擎142可以跨相应对应方全局ASR模型的一个或多个相应对应方第一全局ASR层反向传播梯度同时相应对应方全局ASR模型的至少一个或多个第二全局ASR层是固定的。此外,例如,如果给定更新包括设备上ASR模型的一个或多个第一更新的设备上ASR层和/或设备上ASR模型的一个或多个第一更新的设备上ASR层的一个或多个更新的第一设备上权重,则远程更新引擎142可以利用一个或多个第一更新的设备上ASR层替换相应对应方ASR模型的一个或多个全局ASR层和/或利用针对设备上ASR模型的一个或多个第一更新的设备上ASR层的一个或多个更新的第一设备上权重替换针对一个或多个全局ASR层的一个或多个第一全局权重。在各种实施方式中,存储在更新数据库180中的更新可以包括不同类型的更新。在那些实施方式中,远程更新引擎142可以利用一个或多个标准来确定如何和/或何时利用不同类型的更新。一个或多个标准可以指示哪些类型的更新应当优先于其他类型的更新。作为一个非限制示例,一个或多个标准可以指示替换各层和/或权重的更新应优先于包括梯度的更新,但应理解本文考虑了其他标准。此外,在一些实施方式中,远程更新引擎142可以识别在给定时间实例要更新的单个全局ML模型,而在其他实施方式中,远程更新引擎142可以识别在给定时间实例并行地更新的多个全局ML模型。

在一些实施方式中,远程更新引擎142可以基于一个或多个标准来将更新指派到更新全局模型中的一个或多个的特定迭代。例如,一个或多个标准可以包括远程更新引擎142可用的更新类型、远程更新引擎142可用的更新的阈值数量(并且可选地针对一个或多个全局模型的相异部分)、实行更新所需的阈值持续时间和/或其他标准。特别地,远程更新引擎142可以识别由客户端设备150和/或170生成的更新的多个集合或子集。此外,远程更新引擎142可以基于更新的这些集合或子集来更新全局模型中的一个或多个。在那些实施方式的一些其他版本中,集合或子集中的更新数量可能相同或相异。在那些实施方式的其他版本中,更新的集合或子集中的每个都可以可选地包括来自至少两个独特的客户端设备的更新。在其他实施方式中,远程更新引擎142可以利用更新以先进先出(FIFO)的方式更新全局ML模型中的一个或多个,而不将任何更新指派给更新全局ML模型中的一个或多个的特定迭代。

更新分发引擎144可以向客户端设备150和/或附加客户端设备170中的一个或多个传输更新的全局ML模型108中的一个或多个(例如,包括更新的全局ML模型本身、其更新的层和/或其更新的权重)。在一些实施方式中,响应于在远程系统160处满足一个或多个远程系统条件和/或在客户端设备150和/或附加客户端设备170中的一个或多个处满足一个或多个客户端设备条件,更新分发引擎144可以传输更新的全局ML模型108中的一个或多个(例如,如关于图3和图7所述)。值得注意的是,更新的全局ML模型108中的一个或多个可以以同步方式或异步方式传输到客户端设备150和/或附加客户端设备170中的一个或多个。当接收到更新的全局ML模型108中的一个或多个时,更新的全局ML模型108中的一个或多个可以利用更新的全局ML模型108中的一个或多个替换存储在其设备上存储器中的相应设备上ML模型对应方。此外,客户端设备150和/或190随后可以使用更新的设备上ML模型中的一个或多个来基于在客户端设备150和/或附加客户端设备170中的一个或多个处接收到的进一步的客户端数据进行预测(例如,如关于图2所述)。客户端设备150和/或附加客户端设备170中的一个或多个可以继续以本文所述的方式将更新传输到远程系统160。此外,远程系统160可以继续以本文所述的方式更新全局ML模型中的一个或多个。

现在转向图2,在实施方式中图示客户端设备250,该实施方式中描绘了各种设备上ML引擎被包括作为自动化助理客户端240的一部分(或与之通信)。还图示了相应的ML模型与各种设备上ML引擎的接口。为简单起见,客户端设备250的其他组件未在图2中图示。图2图示了自动化助理客户端240如何可以在实行各种动作时利用各种设备上ML引擎及其相应的ML模型的一个示例。

图2中的客户端设备250被图示为具有一个或多个麦克风211、一个或多个扬声器212、一个或多个视觉组件213和显示器214(例如,触敏显示器)。客户端设备250还可以包括压力传感器、接近传感器、加速度计、温度传感器、磁力计和/或用于生成传感器数据的其他传感器。客户端设备250至少选择性地执行自动化助理客户端240。在图2的示例中,自动化助理客户端240包括热词检测引擎222、热词自由调用引擎224、持续会话引擎226、ASR引擎228、对象检测引擎230、对象分类引擎232、话音识别引擎234,以及面部识别引擎236。自动化助理客户端240还包括语音捕获引擎216和视觉捕获引擎218。应当理解,图2中描绘的ML引擎和ML模型是为了示例而提供的,并不是限制。例如,自动化助理客户端240还可以包括附加和/或替选的引擎,诸如文本到语音(TTS)引擎和相应的TTS模型、话音活动检测(VAD)引擎和相应的VAD模型、端点检测器引擎和相应的端点检测器模型、嘴唇运动引擎和相应的嘴唇运动模型,和/或其他引擎以及相关联的ML模型。此外,应当理解,可以组合本文中所描述的引擎和/或模型中的一个或多个,使得单个引擎和/或模型可以实行本文中描述的多个引擎和/或模型的功能。

一个或多个基于云的自动化助理组件270可以可选地在经由一般由299指示的一个或多个网络通信耦合到客户端设备250的一个或多个计算系统(统称为“云”计算系统)上实现,。基于云的自动化助理组件270可以例如经由高性能服务器集群来实现。在各种实施方式中,自动化助理客户端240的实例通过其与基于云的自动化助理组件270中的一个或多个的交互,可以形成从用户的角度来看是自动化助理的逻辑实例,如295所指示的,用户可以与其进行人机交互(例如,键入的交互、口头交互、基于姿势的交互,和/或基于触摸的交互)。

客户端设备250例如可以是:台式计算设备、膝上型计算设备、平板计算设备、移动电话计算设备、用户车辆的计算设备(例如,车载通信系统、车载娱乐系统、车载导航系统)、独立的交互式扬声器、智能设备—诸如智能电视(或配备具有自动化助理功能的网络连接的加密狗的标准电视)—和/或包括计算设备的可穿戴装置(例如,用户的具有计算设备的手表、用户的具有计算设备的眼镜、虚拟或增强现实计算设备)。可以提供附加和/或替选的客户端设备。

一个或多个视觉组件213可以采用各种形式,诸如单视相机、立体相机、LIDAR组件(或其他基于激光的组件)、雷达组件等。可以使用一个或多个视觉组件213,例如,通过视觉捕获引擎218,以捕获与客户端设备250所部署的环境的视觉帧(例如,图像帧、基于激光的视觉帧)相对应的图像数据。在一些实施方式中,这样的视觉帧可以用于确定用户是否存在于客户端设备250附近和/或客户端设备250的给定用户(例如,用户的面部)相对于客户端设备250的距离。这样的确定例如可以用于确定是否激活图2中描绘的各种设备上ML引擎和/或其他引擎。此外,语音捕获引擎218可以被配置为捕获口头话语和/或经由麦克风211中的一个或多个捕获的其他音频数据。

如本文所描述的,这种音频数据和/或其它非音频传感器数据——诸如视觉数据和文本数据(在本文也统称为客户端数据)可以由图2中描绘的各种引擎来处理,以便在客户端设备250处使用以关于图1、图3、图4、图5、图6和图7所描述的方式更新的相应ML模型和/或在基于云的自动化助理组件270中的一个或多个处使用以关于图1、图3、图4、图5、图6和图7所描述的方式更新的相应ML模型来进行预测。

作为一些非限制性示例,相应热词检测引擎222、272可以利用相应热词检测模型222A、272A来预测音频数据是否包括一个或多个特定词或短语以调用自动化助理295(例如,“Ok Assistant(好的助理)”,“Hey Assistant(嘿助理)”,“What is the weatherAssistant(助理天气怎么样)”等)或自动化助理295的某些功能(例如,当警报正在发声或音乐正在播放时的“Stop(停止)”、当观看图片或收听音乐时的“Next(下一个)”等);相应热词自由调用引擎224、274可以利用相应热词自由调用模型224A、274A来预测非音频传感器数据(例如,视觉数据)是否包括用于调用自动化助理295的姿势或信号(例如,基于用户的注视并且可选地进一步基于用户的嘴部移动);相应的持续会话引擎226、276可以利用相应的持续会话模型226A、276A来预测其他音频数据是否指向自动化助理295(例如,或指向客户端设备250的环境中的附加用户);相应的ASR引擎228、278可以利用相应的ASR模型228A、278A来生成辨识的文本,或者预测对应于在客户端设备250处检测到的音频数据的音素和/或标记,并且基于音素和/或标记来生成辨识的文本;相应的对象检测引擎230、280可以利用相应的对象检测模型230A、280A来预测包括在客户端设备250处捕获的视觉数据中的对象位置;相应的对象分类引擎232、282可以利用相应的对象分类模型232A、282A来预测包括在客户端设备250处捕获的视觉数据中的对象的对象分类;相应的话音识别引擎234、284可以利用相应的话音识别模型234、284A来预测音频数据是否捕获客户端设备250的一个或多个用户的口头话语(例如,通过生成说话者嵌入或其他表示,其可以与客户端设备250的用户中的一个或多个的相应实际嵌入进行比较);并且相应的面部识别引擎236、286可以利用相应的面部识别模型236A、286A来预测图像数据是否捕获了客户端设备250的环境中的用户中的一个或多个(例如,通过生成图像嵌入或其他表示,其可以与客户端设备250的用户中的一个或多个的相应图像嵌入进行比较)。这些各种ML模型(和其它ML模型)中的每个可以以本文所述的方式更新。

在一些实施方式中,客户端设备250和基于云的自动化助理组件270中的一个或多个可以分别进一步包括自然语言理解(NLU)引擎238、294和履行引擎240、296。NLU引擎238、294可以利用相应的NLU模型238A、294A对由ASR引擎228、278生成的辨识的文本、预测的音素和/或预测的标记实行自然语言理解,以生成NLU数据。NLU数据可以包括,例如,对应于口头话语的意图,以及可选地对应于意图的参数的槽值。此外,客户端设备250和基于云的自动化助理组件270中的一个或多个还可以分别包括履行引擎240、296。履行引擎240、296可利用相应的履行模型或规则240A、296A并且基于处理NLU数据来生成履行数据。该履行数据可以定义响应于由客户端设备250的用户提供的用户输入(例如,口头话语、键入的输入、触摸输入、姿势输入和/或任何其它类型的用户输入)的特定履行。特定履行可以包括要基于用户输入来与本地安装的应用实行的交互、要基于用户输入(直接或经由相应的远程系统)来向物联网(IoT)设备传输的命令和/或要基于用户输入来实行的其他解析动作。然后,为所确定的动作的本地和/或远程实行/执行提供履行数据,以使得实行用户输入的特定履行。执行可以包括,例如,渲染本地和/或远程响应(例如,可视地和/或可听地渲染(可选地利用设备上TTS模块)),与本地安装的应用交互,向IoT设备传输命令和/或其他动作。在其它实施方式中,可以省略NLU引擎238、294和履行引擎240、296,并且ASR引擎228、278可以基于用户输入来直接生成履行数据。例如,假设ASR引擎228、278中的一个或多个使用相应的ASR模型228A、278A处理“turn on the lights(开灯)”的口头话语。在该示例中,ASR引擎228、278可以生成语义输出,然后将该语义输出传输到与灯相关联的软件应用和/或直接传输到指示它们应当被打开的灯,并且可选地生成口头话语的转录来可视地渲染以用于呈现给提供了口头话语的用户。

值得注意的是,基于云的自动化助理组件270包括本文参考图2描述的引擎和模型的基于远程的对应方。然而,在一些实施方式中,这些引擎和模型可以不被利用,因为引擎和模型可以被直接传输到客户端设备250,存储在客户端设备150的设备上存储器中,并且在客户端设备250处本地执行,而在其他实施方式中,当客户端设备250检测到任何用户输入(例如,基于文本的、基于音频的、基于视觉的等)并且将用户输入传输到基于云的自动化助理组件270时这些引擎和模型可以被独占地利用。在各种实施方式中,在客户端设备250处执行的这些引擎和模型和基于云的自动化助理组件270可以以分布式方式彼此结合地利用。尽管如此,可以可选地包括远程执行模块,其基于本地或远程生成的NLU数据和/或履行数据来实行远程执行。可以包括附加的和/或替选的远程引擎。如本文所述,在各种实施方式中,设备上语音处理、设备上图像处理、设备上NLU,设备上履行和/或设备上执行可以至少由于它们在解析口头话语时提供的等待时间和/或网络使用减少(由于不需要客户端-服务器往返来解析口头话语)而被优先化。然而,可以至少选择性地利用一个或多个基于云的自动化助理组件270。例如,这样的组件可以与设备上的组件并行使用,并且当本地组件故障时利用来自这样的组件的输出。例如,如果设备上引擎和/或模型中的任何一个故障(例如,由于客户端设备250的相对有限的资源),则可以利用云的更稳定的资源。

现在转到图3,描绘了图示实现机器学习(ML)模型的有效率的联邦学习的客户端侧操作的示例方法300的流程图。为方便起见,参考实行操作的系统来描述方法300的操作。方法300的系统包括计算设备(例如,图1的客户端设备150、图2的客户端设备250、图8的计算设备810和/或其他计算设备)的一个或多个处理器和/或其它组件。此外,虽然方法300的操作以特定顺序示出,但这并不意味着是限制性的。可以重新排序、省略或添加一个或多个操作。

在框352,系统在客户端设备处从客户端设备的用户接收客户端数据。客户端数据可以是各种类型中的一个或多个。各种类型的客户端数据可以包括例如经由客户端设备的麦克风生成的音频数据、经由客户端设备的视觉组件生成的视觉数据、经由客户端设备的用户接口输入组件(例如,经由触摸屏显示器、鼠标和键盘、和/或其他用户接口组件)生成的文本数据或触摸数据和/或任何其他客户端数据。在一些实施方式中,客户端数据可以指向自动化助理(例如,以使得提供可视和/或可听内容,使得控制物联网设备等),而在其他实施方式中,客户端可以独立于自动化助理被提供(例如,在不与自动化助理交互的情况下口述电子邮件或记录等)。

在框354,系统使用存储在客户端设备的设备上存储器中的设备上ML模型来处理客户端数据以生成预测输出,设备上ML模型至少包括一个或多个第一设备上ML层和一个或多个第二设备上ML层。用于生成预测输出的设备上ML模型可以基于在框352处接收到的客户端数据的类型。例如,在框352处接收到的客户端数据是音频数据的实施方式中,系统可以利用基于设备上音频的模型来处理客户端数据以生成预测。此外,预测输出可以基于用于处理客户端数据的基于音频的ML模型的类型。例如,如果设备上基于音频的ML模型是设备上ASR模型,则预测输出可以是被预测为对应于音频数据中捕获的口头话语(如果有)的预测语音假设。此外,例如,如果设备上基于音频的ML模型是设备上热词检测模型,则预测输出可以包括预测音频数据是否包括调用或以其他方式控制自动化助理的特定词或短语的指示。

在框356,系统使用无监督学习基于预测输出来生成梯度。本文更详细地描述使用无监督学习生成梯度(例如,关于图1和4)。在框358,系统基于梯度来生成针对设备上ML模型的一个或多个第一设备上ML层的第一更新。如上文关于图1所述,第一更新可以包括例如与第一更新相关联的设备上ML模型的一个或多个第一设备上ML层的指示、基于第一更新而更新的对应方全局ML模型的一个或多个第一对应方全局ML层的指示、用于生成针对设备上ML模型的一个或多个第一设备上ML层的第一更新的设备上ML模型的指示、基于预测输出而生成的梯度、基于梯度在客户端设备处本地更新的设备上ML模型的一个或多个更新的第一设备上ML层和/或针对设备上ML模型的一个或多个更新的第一设备上ML层的一个或多个更新的设备上权重。

系统返回框352以接收附加客户端数据并且实行框352至358操作的后续迭代。在一些实施方式中,在框352至358的操作的后续迭代期间,系统可以生成针对设备上ML模型的一个或多个第一设备上ML层的附加第一更新。在附加或替选的实施方式中,并且在框352至358的操作的后续迭代期间,系统可以生成针对设备上ML模型的一个或多个第二设备上ML层的第二更新。例如,客户端设备可以用于生成仅针对设备上ML模型的一个或多个第一设备上ML层的第一更新,或者客户端设备可以在生成针对设备上ML模型的相异设备上ML层的第一更新和第二更新之间交替。在一些实施方式中,调度引擎(例如,图1的设备上调度引擎138)可以使用调度信号来指令客户端设备生成针对一个或多个特定设备上ML层的第一更新。在那些实施方式的一些版本中,设备上调度引擎可以基于从远程系统接收到的数据来生成调度信号。换句话说,远程系统可以指令多个客户端设备(包括在框352接收客户端数据的客户端设备和至少一个附加客户端设备)生成针对对应方设备上ML模型的相异部分的更新,并且远程系统可以组合针对对应方设备上ML模型的相异部分的更新以更新对应方全局ML模型的整体。

在框360,系统确定是否满足将第一更新(和/或在框352至358的操作的一个或多个后续迭代期间生成的任何其他更新)传输到远程系统的一个或多个客户端设备条件。一个或多个客户端设备条件可以包括,例如,一天中的特定时间、一周中的特定日、客户端设备是否正在充电、客户端设备是否至少具有阈值充电状态、客户端设备的温度是否低于温度阈值、和/或客户端设备是否被用户持有。如果在框360的迭代处系统确定不满足一个或多个客户端设备条件,则系统在框360继续监视一个或多个客户端设备条件的满足。值得注意的是,在系统在框360继续监视一个或多个客户端设备条件的满足的同时,但是系统可以继续经由框352-358的操作的后续迭代生成更新。如果在框360的迭代处系统确定满足一个或多个客户端设备条件,则系统前进到框362。

在框362,系统将针对一个或多个第一设备上ML层的第一更新传输到远程系统,以使得远程系统基于第一更新来更新全局ML模型的一个或多个第一全局ML层——其是设备上ML模型的基于远程的对应方,同时全局ML模型的一个或多个第二全局ML层是固定的。值得注意的是,全局ML模型是设备上ML模型的基于远程的对应方并且包括一个或多个第一全局ML层和一个或多个第二全局ML层。因此,一个或多个第一全局ML层可以是一个或多个第一设备上ML层的基于远程的对应方。然而,参考图3描述为非限制性示例的第一更新仅针对更新一个或多个第一全局ML层,而一个或多个第二全局ML层是固定的(例如,不基于第一更新来更新)。因此,在远程系统处可能需要至少一个附加更新来更新一个或多个第二全局ML层。在一些实施方式中,如上所述,可以在框352至358的操作的后续迭代处生成更新一个或多个第二全局ML层所需的至少一个更新。在附加或替选的实施方式中,可以基于在附加客户端设备处接收到的附加客户端数据来在附加客户端设备处生成更新一个或多个第二全局ML层所需的至少一个更新。

在框364,系统确定是否满足向客户端设备传输更新的全局ML模型(例如,更新的全局ML模型本身、更新的全局ML模型的一个或多个更新的全局ML层或更新的全局ML模型的一个或多个更新的全局权重)的一个或多个远程系统条件。一个或多个远程系统条件可以包括,例如,一天中的特定时间、一周中的特定日、是否已经利用阈值数量的更新来更新已更新的全局ML模型、和/或更新的全局ML模型的性能是否满足性能阈值。如果在框364的迭代处系统确定不满足一个或多个客户端设备条件,则系统在框364处继续监视一个或多个远程系统条件的满足。值得注意的是,在系统在框364处继续监视一个或多个远程系统条件的满足的同时,系统可以继续基于从客户端设备和/或一个或多个附加客户端设备接收到的更新来更新全局模型。如果在框364的迭代处系统确定满足一个或多个远程系统条件,则系统前进到框366。

在框366,系统在客户端设备处接收更新的全局ML模型(例如,包括更新的全局ML模型本身、其一个或多个更新的全局ML层和/或其一个或多个更新的全局权重)。尽管为了简洁而未描绘,但是客户端设备可以仅响应于确定满足一个或多个客户端设备条件(例如,如关于框360的操作所述)而接收更新的全局模型。响应于接收到更新的全局ML模型,客户端设备可以在客户端设备的设备上存储器中利用更新的全局ML模型替换设备上ML模型,从而产生更新的设备ML模型。但是,客户端设备(以及一个或多个附加客户端设备)可以继续生成针对更新的设备上ML模型的附加更新,并且可以在远程系统处维护更新的全局ML模型的实例,以便基于附加更新来进一步更新。

尽管图3的方法300仅针对单个客户端设备来描述,但是应当理解的是,这是出于示例的目的,而不是为了限制。例如,多个附加客户端设备可以采用图3的方法300的操作来生成针对全局ML模型的更新。此外,如本文所述,调度引擎(例如,在客户端设备中的每个处本地执行和/或在远程系统处远程地执行)可以调度生成针对在客户端设备中的每个处本地执行的相应设备上ML模型的相异部分的更新,从而确保远程系统接收针对对应方全局ML模型的相异部分中的每个的更新。

现在转到图4,描绘了图示用于实现机器学习(ML)模型的有效率的联邦学习的技术的示例方法400的流程图。特别地,图4的方法400图示了生成梯度(例如,如关于图3的方法300的框356所述)的非限制性示例。为方便起见,参考实行操作的系统来描述方法400的操作。方法400的系统包括计算设备(例如,图1的客户端设备150、图2的客户端设备250、图8的计算设备810和/或其他计算设备)的一个或多个处理器和/或其他组件。此外,虽然方法400的操作以特定顺序显示,但这并不意味着限制。可以重新排序、省略或添加一个或多个操作。

在框452,系统识别客户端数据(例如,在图3的框352的操作的迭代处接收到的客户端数据)的目标部分,客户端数据的目标部分在客户端数据的前附部分之后且在客户端数据的后附部分之前。在框454,系统掩蔽客户端数据的目标部分。客户端数据的目标部分可以被任意选择,或者可以基于一个或多个标准来选择,该一个或多个标准诸如在n和m秒的音频数据之间的特定段对应于目标部分、与图像的中心部分相对应的视觉数据的部分对应于目标部分、文本数据的中心部分对应于目标部分和/或针对选择客户端数据的目标部分的任何其它标准。在一些实施方式中,客户端数据可以对应于音频数据。在那些实施方式中,客户端数据的目标部分可以对应于相应音频数据流的目标音频波形部分,客户端数据的前附部分可以对应于在目标音频波形部分之前接收的前附音频波形部分,并且客户端数据的后附部分可以对应于在目标音频波形部分之后接收的后附音频波形部分。此外,系统可以使用各种掩蔽技术来对目标音频波形部分进行掩蔽。在那些实施方式的附加或替选的版本中,客户端数据可以对应于基于音频数据的处理的音频数据的表示(诸如,音频数据的向量表示)、基于处理相应音频数据流而生成的ASR数据和/或音频数据的其它表示。在那些实施方式中,客户端数据的目标部分可以对应于音频数据的目标表示部分,客户端数据的前附部分可以对应于在目标表示部分之前的前附表示部分,并且客户端数据的后附部分可以对应于在目标表示部分之后的后附表示部分。此外,系统可以使用各种掩蔽技术来掩蔽目标表示部分。在那些实施方式的附加或替选的版本中,客户端数据可以对应于文本数据或视觉数据。在那些实施方式中,系统可以以相同或类似的方式识别目标部分、前附部分和后附部分,并且系统可以使用各种掩蔽技术来确定目标部分。

在框456处,系统使用设备上ML模型来处理客户端数据的前附部分和客户端数据的后附部分以生成预测输出,该预测输出预测客户端数据的目标部分。例如,在客户端数据的目标部分对应于音频数据的目标音频波形部分的实施方式中,进一步假设音频数据捕获口头话语。在该示例中,系统可以使用设备上ASR模型来处理前附音频波形部分和后附音频波形部分以生成预测输出。在该示例中,预测输出可以对应于被预测为对应于目标音频波形部分的预测目标音频波形和/或预测目标音频波形的一个或多个预测特征(例如,预测幅度、预测波长、预测相位、预测周期和/或其它特征)。附加地或替选地,预测输出可以更一般地对应于被预测为对应于目标音频数据的预测目标音频数据和/或预测音频数据的一个或多个预测特征(例如,预测的MFCC、预测的melbank特征和/或其它特征)。换句话说,系统可以尝试基于处理前附音频波形部分和后附音频波形部分来重构音频数据的目标音频波形部分和/或特征。

值得注意的是,在利用设备上ASR模型来重构目标音频波形部分的实施方式中,设备上ASR模型可以是多语言设备上ASR模型,因为生成音频数据的给定客户端设备的主语言可能与重构目标音频波形部分无关。然而,在各种实施方式中,系统可以附加地或替选地使用特定于生成音频数据的给定客户端设备的主语言的一个或多个设备上ASR模型来处理前附音频波形部分和后附音频波形部分。此外,例如,在客户端数据的目标部分对应于音频数据的目标表示部分的实施方式中,还假设音频数据捕获口头话语。在该示例中,系统可以使用设备上ASR模型和/或设备上NLU模型来处理前附表示部分和后附表示部分以生成预测输出。在该示例中,预测输出可以对应于预测目标表示,该预测目标表示被预测为对应于目标表示部分。换句话说,系统可以尝试基于处理前附表示部分和后附表示部分来重构目标表示部分。

在框458,系统将预测输出与客户端数据的目标部分进行比较。在框460,系统基于将预测输出与客户端数据的目标部分进行比较来生成梯度。换句话说,系统可以利用在框454被掩蔽的客户端数据的实际目标部分作为监督信号,在框458可以将被预测为对应于该目标部分的预测输出与其进行比较。此外,基于比较,系统可以在随着接收到附加客户端数据生成梯度时实行图4的方法400的附加迭代。

尽管图4的方法400主要关于与音频数据相对应的客户端数据来描述,但是应当理解的是,这是出于示例的目的,而不是为了限制。相反,应当理解,可以利用关于图4的方法400描述的技术来使用本文描述的任何全局ML模型(诸如其他基于视觉的ML模型和/或基于文本的ML模型)来生成一个或多个梯度。此外,虽然图4的方法400是关于使用自监督学习生成梯度来描述,但是应当理解,这是出于示例的目的,而不是为了限制。例如,图4的方法400在生成梯度时可以附加地或替选地利用的来自人类用户的显式反馈,诸如对使用设备上ASR模型生成的转录的更正、使用设备上对象分类模型生成的对象分类、使用设备上热词模型或设备上热词自由模型生成的调用等等。此外,例如,图4的方法400在生成梯度时可以附加地或替选地利用半监督学习,诸如在客户端设备处利用教师-学生方法。

现在转到图5,描绘了图示用于实现机器学习(ML)模型的有效率的联邦学习的技术的另一示例方法500的流程图。特别地,图5的方法500图示了生成针对设备上ML模型的更新的非限制性示例(例如,如关于图3的方法300的框358所述),并且使得对应方全局ML模型基于更新来更新(例如,如关于图3的方法300的框362所述)。为方便起见,参考实行操作的系统来描述方法500的操作。方法500的系统包括计算设备(例如,图1的客户端设备150、图2的客户端设备250、图1的远程系统160、图2的基于云的自动化助理组件270、图8的计算设备810和/或其他计算设备)的一个或多个处理器和/或其他组件。此外,虽然方法500的操作以特定顺序示出,但这并不意味着限制。可以重新排序、省略或添加一个或多个操作。

在框552,系统在客户端设备(例如,在图3的框352的操作的迭代处接收到的客户端数据)处在生成梯度(例如,在图3的框356的操作的迭代处生成的梯度)之前,将至少设备上ML模型的第一设备上ML层和设备上ML模型的第二设备上ML层压缩为一个或多个第一ML层。客户端设备可以基于由客户端设备的设备上调度引擎(例如,图1的设备上调度引擎138)生成的调度信号和/或从远程调度引擎(例如,图1的远程调度引擎146)接收到的调度信号来将第一设备上ML层和第二设备上ML层压缩为一个或多个第一设备上ML层。调度信号可以包括在生成梯度之前要压缩的设备上ML层的指示。在一些实施方式中,可以在生成预测输出之前并且在生成梯度之前将第一设备上ML层和第二设备上ML层压缩为一个或多个第一设备上ML层,而在其他实施方式中,可以在生成预测输出之后但在生成梯度之前将第一设备上ML层和第二设备上ML层压缩为一个或多个第一设备上ML层。值得注意的是,第一设备上ML层和第二设备上ML层都不会被丢弃。相反,将第一设备上ML层和第二设备上ML层压缩为一个或多个第一ML层对设备上ML模型施加约束。

此外,在框552A,系统在附加客户端设备处在生成附加梯度(例如,基于在附加客户端设备处接收到的附加客户端数据)之前,将至少设备上ML模型的第二设备上ML层和第三设备上ML层压缩为一个或多个第二ML层。系统可以以相同或类似的方式但是基于由附加客户端设备的设备上调度引擎生成的调度信号和/或从远程调度引擎(例如,图1的远程调度引擎146)接收到的调度信号将设备上ML模型的第二设备上ML层和第三设备上ML层压缩为一个或多个第二ML层。值得注意的是,系统将第二设备上ML层在框552处压缩为一个或多个第一设备上ML层并且在框552A处压缩为一个或多个第二设备上ML层这两者。然而,一个或多个第一设备上ML层和一个或多个第二设备上ML层各自包括至少一个独特的设备上ML层——针对一个或多个第一设备上ML层的第一设备上ML层和针对一个或多个第二设备上ML层的第三设备上ML层。尽管如此,应当理解,这是出于示例的目的,而不是为了限制。例如,相同的设备上ML层可以在相异的客户端设备处被压缩(例如,第一设备上ML层和第二设备上ML层在客户端设备和附加客户端设备处被压缩为一个或多个第一ML层),相异的ML层可以在相异的客户端设备处被压缩,使得在相异的设备处压缩至少一个独特的ML层(例如,如关于框552和552A的操作所述)和/或可以在相异的客户端设备处压缩相异的ML层,使得在不同的设备处仅压缩独特的ML层(例如,第一设备上ML层和第二设备上ML层被压缩为客户端设备处的一个或多个第一ML层,第三设备上ML层和第四设备上ML层被压缩为一个或多个第二ML层)。尽管这些相异的ML层之间可以存在差异,但是它们在设备上的ML模型中是相邻的,并且可以包括一些重叠。因此,通过生成第一更新和第二更新作为共享的更新,如本文所述远程系统可以利用这种重叠来节省计算和/或网络资源,从而产生联邦学习的提高的效率。

在框554,系统在客户端设备处生成第一更新(例如,在图3的框358的操作的第一迭代处生成的第一更新)作为针对至少第一设备上ML层和第二设备上ML层(例如,在框552被压缩为一个或多个第一设备上ML层)的共享的更新。系统可以基于梯度来生成第一更新(例如,如关于图3所示)。此外,在框554A,系统在附加客户端设备处生成第二更新(例如,以与在图3的框358的操作的第一迭代处生成的第一更新相同或相似的方式,但在附加客户端设备处并且基于在附加客户端设备处接收到的附加客户端数据)作为针对至少第二设备上ML层和第三设备上ML层(例如,在框552A被压缩为一个或多个第二设备上ML层)的共享的更新。系统可以基于附加梯度来生成第二更新(例如,以如图3所示的相同或相似的方式)。

在框556,系统使得全局ML模型(例如,图3中要更新的全局ML模型)的第一全局ML层和全局ML模型的第二全局ML层基于第一共享更新来被更新,同时至少第三全局ML层是固定的,第一全局ML层是第一设备上ML层的基于远程的对应方,第二全局ML层是第二设备上ML层的基于远程的对应方,并且第三全局ML层是第三设备上ML层的基于远程的对应方。在框558,系统使得第二全局ML层和第三全局ML层基于第二共享更新来被更新,同时至少第一全局ML层是固定的。换句话说,系统可以基于仅第一更新来更新第一全局ML层,基于第一更新和第二更新二者来更新第二全局ML层,以及基于仅第二更新来更新第三全局ML层。

现在转到图6,描绘了图示用于实现机器学习(ML)模型的有效率的联邦学习的技术的又一示例方法600的流程图。特别地,图6的方法600图示了生成针对设备上ML模型的更新(例如,如关于图3的方法300的框358所述)的另一个非限制性示例,并且使得对应方全局ML模型基于该更新来被更新(例如,如关于图3的方法300的框362所述)。为方便起见,参考实行操作的系统来描述方法600的操作。方法600的系统包括计算设备(例如,图1的客户端设备150、图2的客户端设备250、图1的远程系统160、图2的基于云的自动化助理组件270、图8的计算设备810和/或其他计算设备)的一个或多个处理器和/或其他组件。此外,虽然方法600的操作以特定顺序图示,但这并不意味着限制。可以重新排序、省略或添加一个或多个操作。

在框652,系统调度针对全局ML模型(例如,图3中要更新的全局ML模型)的一个或多个更新。例如,在框652A,系统使得客户端设备基于处理在客户端设备处接收到的客户端数据来生成针对设备上ML模型的一个或多个第N设备上ML层的第一更新(例如,在图3的框358的操作的第一迭代处生成的第一更新),N是正整数。此外,在框652B,系统使得附加客户端设备基于处理在附加客户端设备处接收到的附加客户端数据来生成针对设备上ML模型的一个或多个第N-1设备上ML层的第二更新(例如,以与在图3的框358的操作的第一迭代处生成的第一更新相同或相似的方式,但是在附加客户端设备处并且基于在附加客户端设备处接收到的附加客户端数据)。换句话说,系统可以采用梯度快照技术来提高ML模型的联邦学习的效率。梯度快照技术可以基于由客户端设备和/或附加客户端设备的相应设备上调度引擎(例如,图1的设备上调度引擎138)和/或从远程调度引擎(例如,图1的远程调度引擎146)接收到的相应调度信号来实现。相应调度信号可以指令客户端设备生成针对设备上ML模型的一个或多个第N设备上ML层的第一更新,指令附加客户端设备生成针对设备上ML模型的一个或多个第N-1设备上ML层的第二更新,指令又一个附加客户端设备生成针对设备上ML模型的一个或多个第N-2设备上ML层的第三更新,等等。因此,通过利用梯度快照技术,远程系统可以确保生成针对第N层设备上ML模型中的每个的更新,如本文所述。

在一些实施方式中,远程调度引擎(例如,图1的远程调度引擎146)可以将客户端设备的超集划分为多个子集。在那些实施方式的一些版本中,客户端设备的子集中的每个都可以实行梯度快照技术的迭代。例如,客户端设备的第一子集可以包括第一客户端设备可以生成针对一个或多个第N设备上ML层的更新,第二客户端设备可以生成针对一个或多个第N-1设备上ML层的更新,第三客户端设备可以生成针对一个或多个第N-2设备上ML层的更新,依此类推针对第N设备上ML层中的每个。此外,客户端设备的第二子集可以以相同或类似的方式生成针对第N设备上ML层中的每个的更新。

在框654,系统在全局ML模型(例如在图3中更新的全局ML模型)的至少一个或多个第N-1全局ML层是固定的同时使得基于针对设备上ML模型的一个或多个第N设备上ML层的第一更新来更新全局ML模型的一个或多个第N全局ML层,该一个或多个第N全局ML层是一个或多个第N设备上ML层的基于远程的对应方,并且该一个或多个第N-1全局ML层是一个或多个第N-1设备上ML层的基于远程的对应方。在框656处,系统在至少全局ML模型的第N全局ML层中的一个或多个是固定的同时使得基于针对设备上ML模型的一个或多个第N-1设备上ML层的第二更新来更新一个或多个第N-1全局ML层。在一些实施方式中,诸如当如上所述远程调度引擎(例如,图1的远程调度引擎146)将客户端设备的超集划分为多个子集时,系统可以将客户端设备的第一子集指派给更新基于远程的对应方全局ML模型的第一迭代,将客户端设备的第二子集指派给更新基于远程的对应方全局ML模型的后续第二迭代,等等。

现在转到图7,描绘了图示用于实现机器学习(ML)模型的有效率的联邦学习的远程系统侧操作的示例方法的流程图。为方便起见,参考实行操作的系统来描述方法700的操作。方法700的系统包括计算设备(例如,图1的远程系统160、图2的基于云的自动化助理组件270、图8的计算设备810和/或其他计算设备)的一个或多个处理器和/或其他组件。此外,虽然方法600的操作以特定顺序示出,但这并不意味着限制。可以重新排序、省略或添加一个或多个操作。

在框752,系统在远程系统处从一个或多个客户端设备接收针对远程地存储在远程系统的远程存储器中的全局ML模型的一个或多个更新,全局ML模型包括多个全局ML层,多个全局ML层至少包括一个或多个第一全局ML层和一个或多个第二全局ML层。针对全局ML模型的一个或多个更新可以以本文所述的任何方式(例如,关于图1、图3、图4、图5和/或图6)在客户端设备中的一个或多个处生成。

在框754,系统确定是否满足更新全局模型的一个或多个更新条件。更新全局ML模型的一个或多个更新条件可以包括(例如)一天中的特定时间、一周中的特定日、是否有更新的阈值数量用于更新全局ML模型和/或是否有相异更新的阈值数量用于更新全局ML模型。如果在框754的迭代处,系统确定不满足一个或多个更新条件,则系统返回到框752以从客户端设备中的一个或多个接收一个或多个附加更新。如果在框754的迭代处,系统确定满足一个或多个更新条件,则系统前进到框756。

在框756,系统使得全局ML模型基于从客户端设备中的一个或多个接收到的一个或多个更新来被更新以生成更新的全局ML模型。例如,在框756A,系统在一个或多个第二全局ML层中的至少一个是固定的同时使得基于从一个或多个客户端设备中的客户端设备接收到的第一更新来仅更新一个或多个第一全局ML层。此外,例如,在框756B,系统在一个或多个第一全局ML层中的至少一个是固定的同时使得基于从一个或多个客户端设备的附加客户端设备接收到的第二更新来更新一个或多个第二全局ML层。

在框758,系统确定在客户端设备中的一个或多个处是否满足一个或多个客户端设备条件。一个或多个客户端设备条件可以包括,例如,一天中的特定时间、一周中的特定日、客户端设备是否正在充电、客户端设备是否至少具有阈值充电状态、客户端设备的温度是否低于温度阈值、和/或客户端设备是否被用户持有。如果在框758的迭代处,系统确定不满足一个或多个客户端设备条件,则系统在框758继续监视一个或多个客户端设备条件的满足。值得注意的是,在系统在框758继续监视一个或多个客户端设备条件的满足的同时,系统可以通过框752至756的操作的后续迭代来继续更新全局ML模型。如果在框758的迭代处,系统确定满足一个或多个客户端设备条件,则系统前进到框760。

在框760,系统向客户端设备中的一个或多个传输更新的全局ML模型(例如,更新的全局ML模型本身、更新的全局ML模型的一个或多个更新的全局ML层,或更新的全局ML模型的一个或多个更新的全局权重)。尽管为了简洁而未描绘,但是客户端设备中的一个或多个可以仅响应于确定满足一个或多个客户端设备条件而接收更新的全局模型(例如,如关于框360的操作所述)。响应于传输更新的全局ML模型,客户端设备可以使得在客户端设备的设备上存储器中利用更新的全局ML模型来替换设备上ML模型,从而产生更新的设备上ML模型。但是,客户端设备(以及一个或多个附加客户端设备)可以继续生成针对更新的设备上ML模型的附加更新,并且可以在远程系统上维护更新的全局ML模型的实例,以便基于附加更新来进一步更新。

现在转向图8,描绘了可以可选地用于实行本文中描述的技术的一个或多个方面的示例计算设备810的框图。在一些实施方式中,客户端设备、基于云的自动化助理组件和/或其他组件中的一个或多个可以包括示例计算设备810的一个或多个组件。

计算设备810通常包括至少一个处理器814,其经由总线子系统812与多个外围设备通信。这些外围设备可以包括存储子系统824(包括例如存储器子系统825和文件存储子系统826)、用户接口输出设备820、用户接口输入设备822和网络接口子系统816。输入和输出设备允许用户与计算设备810交互。网络接口子系统816提供到外部网络的接口并且耦合到其他计算设备中的对应接口设备。

用户接口输入设备822可以包括键盘,诸如鼠标、轨迹球、触摸板或图形输入板的定点设备,扫描仪,结合到显示器中的触摸屏,诸如话音辨识系统的音频输入设备,麦克风和/或其他类型的输入设备。通常,术语“输入设备”的使用旨在包括所有可能类型的设备和将信息输入到计算设备810或通信网络上的方式。

用户接口输出设备820可以包括显示子系统、打印机、传真机或诸如音频输出设备的非可视显示器。显示子系统可以包括阴极射线管(CRT)、诸如液晶显示器(LCD)的平板设备、投影设备或用于创建可见图像的一些其他机制。显示子系统还可以提供非视觉显示,诸如经由音频输出设备。一般地,术语“输出设备”的使用旨在包括所有可能类型的设备以及将信息从计算设备810输出到用户或另一机器或计算设备的方式。

存储子系统824存储提供本文中描述的一些或所有模块的功能的编程和数据构造。例如,存储子系统824可以包括用于实行本文中公开的方法的选定方面以及用于实现图1A至1D中描绘的各种组件的逻辑。

这些软件模块通常由处理器814单独执行或与其他处理器结合执行。存储子系统824中使用的存储器825可以包括多个存储器,包括用于在程序执行期间存储指令和数据的主随机存取存储器(RAM)830和其中存储固定指令的只读存储器(ROM)832。文件存储子系统826可以为程序和数据文件提供持久存储,并且可以包括硬盘驱动器、软盘驱动器以及相关的可移动介质、CD-ROM驱动器、光驱或可移动介质盒。实现某些实施方式的功能的模块可以由文件存储子系统826存储在存储子系统824中,或者存储在处理器814可访问的其他机器中。

总线子系统812提供了一种机制,其用于让计算设备810的各种组件和子系统按预期相互通信。尽管总线子系统812被示意性地示为单个总线,但是总线子系统的替代实施方式可以使用多个总线。

计算设备810可以是相异类型的,包括工作站、服务器、计算集群、刀片服务器、服务器场或任何其他数据处理系统或计算设备。由于计算机和网络的不断变化的性质,图8中描绘的计算设备810的描述仅旨在作为用于说明一些实施方式的目的的特定示例。计算设备810的许多其他配置可能具有比图8中描绘的计算设备更多或更少的组件。

在本文中描述的系统收集或以其他方式监视关于用户的个人信息,或者可以使用个人和/或监视信息的情况下,用户可能有机会控制程序或功能是否收集用户信息(例如,有关用户社交网络、社交行为或活动、职业、用户偏好或用户当前地理位置的信息),或控制是否和/或如何从内容服务器接收可能与用户更相关的内容。此外,某些数据在存储或使用之前可能会以一种或多种方式处理,以便删除个人身份信息。例如,用户的身份可以被处理成使得无法确定用户的个人身份信息,或者可以在获取地理位置信息的情况下概括用户的地理位置(诸如到城市、邮政编码或州级别),使得无法确定用户的具体地理位置。因此,用户可以控制如何收集和/或使用关于用户的信息。

在一些实施方式中,提供了一种由客户端设备的一个或多个处理器实行的方法,该方法包括:从客户端设备的用户接收客户端数据,客户端数据在客户端设备客户端设备处本地生成;以及使用本地存储在客户端设备的设备上存储器中的设备上机器学习(ML)模型来处理客户端数据以生成预测输出。设备上机器学习模型包括多个设备上ML层,并且多个设备上ML层至少包括一个或多个第一设备上ML层和一个或多个第二设备上ML层。方法还包括使用无监督学习基于预测输出来生成梯度;基于梯度来生成用于本地存储在客户端设备的设备上存储器中的设备上ML模型的一个或多个第一设备上ML层的第一更新;以及向远程系统传输第一更新。向远程系统传输第一更新使得远程系统更新远程地存储在远程系统的远程存储器中的全局ML模型,全局ML模型至少包括一个或多个第一全局ML层和一个或多个第二全局ML层。使得远程系统更新全局ML模型包括在第二全局ML层中的一个或多个是固定的同时使得基于第一更新来更新一个或多个第一全局ML层。

本技术的这些和其它实施方式可以包括以下特征中的一个或多个。

在一些实施方式中,传输到远程系统的第一更新可以包括梯度和要基于第一更新来更新一个或多个第一全局ML层的指示,并且远程地存储在远程系统处的全局ML模型的一个或多个第一全局ML层可以对应于本地存储在客户端设备处的设备上ML模型的一个或多个第一设备上ML层。在那些实施方式的一些版本中,在第二全局ML层中的一个或多个是固定的同时使得基于第一更新来更新一个或多个第一全局ML层可以包括:基于梯度并且基于要基于第一更新来更新一个或多个第一全局ML层的指示,使得一个或多个第一全局ML层基于梯度来更新以生成一个或多个更新的第一全局ML层而不更新一个或多个第二全局ML层,一个或多个更新的第一全局ML层包括用于一个或多个更新的第一全局ML层的一个或多个更新的第一全局权重。

在一些实施方式中,生成用于一个或多个第一设备上ML层的第一更新可以包括:使得一个或多个第一设备上ML层基于梯度来更新以生成一个或多个更新的第一设备上ML层而不更新一个或多个第二设备上ML层,一个或多个更新的第一设备上ML层包括用于一个或多个更新的第一设备上ML层的一个或多个更新的第一设备上权重。

在那些实施方式的一些版本中,传输到远程系统的第一更新可以包括一个或多个更新的第一设备上ML层以及要基于第一更新来更新一个或多个第一全局ML层的指示,并且远程地存储在远程系统处的全局ML模型的一个或多个第一全局ML层对应于本地存储在客户端设备处的设备上ML模型的一个或多个第一设备上ML层。在那些实施方式的一些进一步版本中,在第二全局ML层中的一个或多个是固定的同时使得基于第一更新来更新一个或多个第一全局ML层可以包括:基于一个或多个更新的第一设备上ML层并且基于要基于第一更新来更新一个或多个第一全局ML层的指示,使得一个或多个第一全局ML层在远程存储器中利用一个或多个更新的第一设备上ML层来替换,而不替换一个或多个第二全局ML层。

在那些实施方式的附加或替选的版本中,传输到远程系统的第一更新可以包括用于一个或多个更新的第一设备上ML层的一个或多个更新的第一设备上权重以及要基于第一更新来更新一个或多个第一全局ML层的指示,并且远程地存储在远程系统处的全局ML模型的一个或多个第一全局ML层可以对应于本地存储在客户端设备处的设备上ML模型的一个或多个第一设备上ML层。在那些实施方式的一些进一步版本中,在第二全局ML层中的一个或多个是固定的同时使得基于第一更新来更新一个或多个第一全局ML层可以包括:基于用于一个或多个更新的第一设备上ML层的一个或多个更新的第一设备上权重以及基于要基于第一更新来更新一个或多个第一全局ML层的指示,使得在远程系统的远程存储器中利用用于一个或多个更新的第一设备上ML层的一个或多个更新的第一设备上权重来替换用于一个或多个第一全局ML层的一个或多个第一全局权重,而不替换用于一个或多个第二全局ML层的一个或多个第二全局权重。

在一些实施方式中,使得远程系统更新全局ML模型还可以包括:在第一全局ML层中的一个或多个是固定的同时使得基于第二更新来更新一个或多个第二全局ML层,并且第二更新可以从除了用于生成第一更新的客户端设备之外的附加客户端设备传输到远程系统。在那些实施方式的一些版本中,方法还可以包括在客户端设备处并且从远程系统接收更新的全局ML模型,更新的全局ML模型至少包括一个或多个更新的第一全局ML层和一个或多个更新的第二全局ML层;以及在客户端设备的设备上存储器中利用更新的全局ML模型替换设备上ML模型。

在那些实施方式的一些其他版本中,接收更新的全局ML模型可以是响应于确定在远程系统处满足一个或多个远程系统条件。一个或多个远程系统条件可以包括以下中的一个或多个:一天的特定时间、一周的特定日、是否已经利用阈值数量的更新来更新更新的全局ML模型,或者更新的全局ML模型的性能是否满足性能阈值。在那些实施方式的又一些版本中,接收更新的全局ML模型还可以响应于确定在客户端设备处满足一个或多个客户端设备条件。一个或多个客户端设备条件可以包括以下中的一个或多个:一天的特定时间、一周的特定日、客户端设备是否正在充电、客户端设备是否具有至少阈值充电状态、客户端设备的温度是否小于温度阈值,或客户端设备是否被用户持有。

在那些实施方式的附加或替选的其他版本中,在客户端设备处以及从远程系统接收到的更新的全局ML模型可以包括以下中的一个或多个:更新的全局ML模型,其当接收到时使得客户端设备在客户端设备的设备上存储器中利用更新的全局ML模型替换设备上ML模型;一个或多个更新的第一全局ML层,其当接收到时使得客户端设备在客户端设备的设备上存储器中利用一个或多个更新的第一全局ML层替换一个或多个第一设备上ML层;一个或多个更新的第二全局ML层,其当接收到时使得客户端设备在客户端设备的设备上存储器中利用一个或多个更新的第二全局ML层替换一个或多个第二设备上ML层;用于一个或多个更新的第一全局ML层的一个或多个更新的第一全局权重,其当接收到时使得客户端设备在客户端设备的设备上存储器中利用一个或多个更新的第一全局权重替换用于一个或多个第一设备上ML层的一个或多个第一局部权重;或者用于一个或多个更新的第二全局ML层的一个或多个更新的第二全局权重,其当接收到时使得客户端设备在客户端设备的设备上存储器中利用一个或多个更新的第二全局权重替换用于一个或多个第二设备上ML层的一个或多个第二局部权重。

在一些实施方式中,该方法还可以包括识别客户端数据的目标部分,客户端数据的目标部分在客户端数据的在目标部分之前接收到的前附部分之后,并且客户端数据的目标部分在客户端数据的在目标部分之后接收到的后附部分之前;以及掩蔽客户端数据的目标部分。使用设备上ML模型来处理客户端数据以生成预测输出可以包括:处理客户端数据的前附部分和客户端数据的后附部分以生成客户端数据的被预测为对应于客户端数据的目标部分的预测目标部分中的一个或多个。在那些实施方式的一些版本中,使用无监督学习基于预测输出来生成梯度可以包括:将客户端数据的预测目标部分与客户端数据的目标部分进行比较;以及基于将预测目标部分与目标部分进行比较来生成梯度。

在一些实施方式中,一个或多个第一设备上ML层至少可以包括第一设备上ML层和第二设备上ML层,方法还可以包括,在基于预测输出来生成梯度之前:将第一设备上ML层和第二设备上ML层压缩为一个或多个第一设备上ML层,其中,用于一个或多个设备上ML层的第一更新是用于第一设备上ML层和第二设备上ML层的第一共享更新。在那些实施方式的一些版本中,在第二全局ML层中的一个或多个是固定的同时使得基于第一更新来更新一个或多个第一全局ML层可以包括:利用第一更新来更新对应于第一设备上ML层的第一全局ML层;以及利用第一更新来更新对应于第二设备上ML层的第二全局ML层。在那些实施方式的附加或替选的版本中,一个或多个第二设备上ML层可以至少包括第二设备上ML层和第三设备上ML层,第二设备上ML层和第三设备上ML层可以在附加客户端设备处被压缩为附加客户端设备处的一个或多个第二设备上ML层,并且在附加客户端设备处本地生成的第二更新可以是用于第二设备上ML层和第三设备上ML层的共享第二更新。在那些实施方式的附加或替选的版本中,使得远程系统更新全局ML模型还可以包括:在第一全局ML层中的一个或多个是固定的同时使得基于第二更新来更新一个或多个第二全局ML层,并且在第一全局ML层中的一个或多个是固定的同时使得第二全局ML层中的一个或多个基于第二更新来更新可以包括:利用第二更新来更新对应于第二设备上ML层的第二全局ML层;以及利用第二更新来更新对应于第三设备上ML层的第三全局ML层。

在一些实施方式中,提供了由客户端设备的一个或多个处理器实行的方法,并且方法包括:在远程系统处从用户的客户端设备接收用于远程地存储在远程系统处的全局机器学习(ML)模型的第一更新。全局ML模型包括多个全局ML层,并且用于全局ML模型的第一更新仅用于全局ML模型的多个全局ML层中的一个或多个第一全局ML层。方法还包括在远程系统处从附加用户的附加客户端设备接收用于远程地存储在远程系统的远程存储器中的全局ML模型的第二更新。用于全局ML模型的第二更新仅用于全局ML模型的多个全局ML层中的一个或多个第二全局ML层,以及全局ML模型的一个或多个第二全局ML层与全局ML模型的一个或多个第一全局ML层相异。方法还包括:至少基于从客户端设备接收到的第一更新和从附加客户端设备接收到的第二更新,使得全局ML模型来更新以生成更新的全局ML模型;以及响应确定满足一个或多个条件:将更新的全局ML模型传输到以下中的一个或多个:客户端设备、附加客户端设备或一个或多个其他附加客户端设备。

本技术的这些和其它实施方式可以包括以下特征中的一个或多个。

在一些实施方式中,使得更新全局ML模型以生成更新的全局ML模型可以包括:在一个或多个第二全局ML层是固定的同时使得仅一个或多个第一全局ML层基于第一更新来更新以生成一个或多个更新的第一全局ML层;在一个或多个第一全局ML层是固定的同时使得仅一个或多个第二全局ML层基于第二更新来更新以生成一个或多个更新的第二全局ML层;以及将一个或多个更新的第一全局ML层和一个或多个第二全局ML层进行组合以生成更新的全局ML模型。

在那些实施方式的一些版本中,使得一个或多个第二全局ML层是固定的同时基于第一更新来更新仅一个或多个第一全局ML层并且在一个或多个第一全局ML层是固定的同时使得基于第二更新来更新仅一个或多个第二全局ML层可以在更新全局ML模型的相同迭代期间发生。在那些实施方式的附加或替选的版本中,使得一个或多个第二全局ML层是固定的同时基于第一更新来更新仅一个或多个第一全局ML层可以在更新全局ML模型的第一迭代期间发生。在一个或多个第一全局ML层是固定的同时使得基于第二更新来更新仅一个或多个第二全局ML层可以在更新全局ML模型的第二迭代期间发生。更新全局ML模型的第二迭代可以相异于更新全局ML模型的第一迭代。

在一些实施方式中,使得全局ML模型被更新以至少基于从客户端设备接收到的第一更新和从附加客户端设备接收到的第二更新来生成更新的全局ML模型可以是响应于确定满足一个或多个更新条件。一个或多个更新条件可以包括以下中的一个或多个:一天的特定时间、一周的特定日、是否有更新的阈值数量用于更新全局ML模型或者是否有相异更新的阈值数量用于更新全局ML模型。

在一些实施方式中,远程系统可以对应于远程服务器或远程服务器集群。

各种实施方式可以包括非暂时性计算机可读存储介质,其存储可由一个或多个处理器(例如,中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理器(DSP)和/或张量处理单元(TPU)来实行诸如本文中描述的方法中的一个或多个的方法。其他实施方式可以包括自动化助理客户端设备(例如,客户端设备至少包括用于与基于云的自动化助理组件接口连接的自动化助理接口),其包括可操作为执行用于实行诸如本文中所描述的方法中的一个或多个的方法的存储的指令的处理器。又一实施方式可以包括一个或多个服务器的系统,该系统包括一个或多个处理器,其可操作为执行用于实行诸如本文中描述的方法中的一个或多个的方法的存储的指令。

相关技术
  • 一种面向大规模机器学习系统的机器学习模型训练方法
  • 机器学习装置、机器学习系统以及机器学习方法
  • 用于提高计算效率的模型预测控制系统和方法
  • 联邦学习系统中的机器学习模型的超参数优化装置和方法
  • 基于联邦学习及均值迭代的机器学习模型压缩方法
技术分类

06120116488624