CN113066484A - 用于神经网络模型的分布式训练的系统和方法 - Google Patents

用于神经网络模型的分布式训练的系统和方法 Download PDF

Info

Publication number
CN113066484A
CN113066484A CN202011464843.9A CN202011464843A CN113066484A CN 113066484 A CN113066484 A CN 113066484A CN 202011464843 A CN202011464843 A CN 202011464843A CN 113066484 A CN113066484 A CN 113066484A
Authority
CN
China
Prior art keywords
neural network
network model
version
data
configuration data
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
Application number
CN202011464843.9A
Other languages
English (en)
Inventor
李自力
阿希尔·阿米尔古利耶夫
普仲朗
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SoundHound Inc
Original Assignee
SoundHound Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by SoundHound Inc filed Critical SoundHound Inc
Publication of CN113066484A publication Critical patent/CN113066484A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/06Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
    • G10L15/063Training
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/16Speech classification or search using artificial neural networks
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/06Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
    • G10L15/065Adaptation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Bioethics (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

描述了用于神经网络模型的分布式训练的系统和方法。各种实施例包括主设备和从设备。主设备具有第一版神经网络模型。根据一个实施例,从设备通信地耦合到第一数据源和主设备,并且主设备无法访问第一数据源。从设备远离主设备。主设备被配置为基于第一版神经网络模型来输出神经网络模型的第一配置数据。从设备被配置为使用第一配置数据来实例化第二版神经网络模型。从设备被配置为使用来自第一数据源的数据来训练第二版神经网络模型,并被配置为输出神经网络模型的第二配置数据。主设备被配置为使用第二配置数据来更新第一版神经网络模型的参数。

Description

用于神经网络模型的分布式训练的系统和方法
技术领域
本技术在神经网络模型的领域中,并且更具体而言,在自动语音识别的领域中,以训练用于语音处理的一个或多个神经网络模型。
背景技术
计算的最新进展增加了实现许多长期受欢迎的语音控制应用的可能性。例如,统计模型(包括用于有效神经网络架构的实践框架)的改进极大地增加了先前语音处理系统的准确性和可靠性。这已经与广域计算机网络的兴起相结合,广域计算机网络提供了一系列可以使用应用编程接口进行简单访问的模块化服务。语音正在迅速成为提供用户界面的可行选择。
在过去的几年中,神经网络模型见证了令人陶醉的发展速度。廉价计算能力的可用性和图形处理单元的并行性已经使大规模的监督式学习系统成为可能。这些通常由许多神经网络“层”组成,这些神经网络层包含数十万或数百万个“节点”。每个神经网络层采用一输入张量(例如N维数组),并使用表示节点的一系列权重将该输入张量映射到对应的输出张量。在某些情况下,层还可包括偏置项,并且在该层之后可以应用激活函数,该激活函数通常试图以某种方式限制或钳制该层的输出以提供非线性。层通常被连续地堆叠,以使得神经网络模型采用初始输入(其经常基于传感器信号,诸如来自摄像机的图像或来自麦克风的记录),并生成最终输出。最终输出可以是一组可检测特征的分类或概率向量。例如,在语音处理中,声学模型可输出概率向量,该概率向量指示在一小部分语音中存在一组语言特征中的哪些。语言特征可包括音素、字素、字符、字母、单词和子单词单元中的一个或多个。在语音处理中,可以确定随着时间推移的音素序列,然后可以将其映射到一组单词。
通常使用称为反向传播的方法来训练神经网络模型。提供了一训练集,该训练集由神经网络模型的输入和输出数据的对组成。输出数据经常称为“真相”标签,因为它表示输出应为之物。在语音处理中,这可能是语音记录片段的一个或多个手工标记的语言特征。在反向传播期间,神经网络模型被初始化(例如利用随机化的权重),然后用来使用来自训练集的一组输入数据做出预测(例如所谓的“前向”传递)。将该预测与来自训练集的对应“真相”输出数据进行比较,并计算误差。该误差可构成损失函数的一部分。该误差然后通过神经网络模型反向传播。通常,误差根据神经网络模型的权重的导数而被传播。例如,损失函数相对于神经网络模型的权重的梯度可被确定,并可被用于确定权重的更新,该更新使损失函数最小化。在这种情况下,可以使用诸如梯度下降、随机梯度下降、Adam等的优化技术来调整权重。可以应用链式法则和自动微分函数来有效地计算损失函数的梯度,例如从输出层开始,然后回来解决其余层。
说到训练神经网络模型,存在许多挑战。首先,通常需要大数据集或极大数据集以进行准确预测。然而,只有少数处于适当地点的组织能够收集这样全面的数据集。其次,训练数据集,尤其是与音频或视频有关的那些,需要大存储容量,并且可能难以在设备之间移动。千兆字节或兆兆字节的数据集是常见的,这要在耦合到普通计算机的不同存储设备之间移动可能要花费数天。第三,某些数据源可能是无法访问的。例如,很少有人希望其虚拟助手不断记录音频并将其发送到远程设备,且不论从网络效用角度来说该方法的不切实际性。第四,随着更多的神经网络模型从实验室环境中的研究变为在现实世界环境中运行的生产模型,变得明显的是,实验室中的工作对于生产系统和现代信息技术架构的现实经常无法伸缩。
因此,期望提供用于训练神经网络模型的改进的系统和方法。例如,期望开发用来克服以上挑战中的至少一些挑战的系统和方法。在语音处理上下文中,期望提供可用来提高自动语音识别系统的性能的系统和方法。
发明内容
提供了一种系统和方法,其改进神经网络模型的训练,包括提高自动语音识别系统的性能。根据本发明的一方面,用于训练神经网络模型的分布式系统包括访问第一数据源的主设备和远离该主设备的从设备。本发明的各个方面允许在主设备和从设备之间划分神经网络模型的训练。主设备因此能够使用主设备通常不可访问的信息。使用分别与主设备和从设备相关联的两个版本的神经网络模型来分配训练。通过在耦合两个设备的通信网络上交换得出的信息,可以保持隐私和基础设施分离性。
根据本发明的各个方面,从设备被配置为使用第一配置数据来将第一版神经网络模型实例化为教师模型并将第二版神经网络模型实例化为学生模型,教师模型用于训练学生模型。主设备然后可被配置为使用第二配置数据来将第二版神经网络模型实例化为教师模型,并将第一版神经网络模型实例化为学生模型,教师模型用于训练学生模型和更新第一版神经网络模型的参数。在这种情况下,迭代的可交换教师-学生配置使异步数据交换能够改进神经网络模型的两个版本,而无需交换任何私有信息或要求访问安全数据系统。教师-学生配置提供了鲁棒的训练方法,该训练方法允许信息传送并且可被在未标记的数据(以及标记的数据,或代替标记的数据)上执行,这减少了对数据的繁重手工标记的需求。这可能在语音识别领域中特别有用,在该领域中可能存在音频数据的大数据集,但是标记该数据是耗时的。
根据本发明的各个方面,第一配置数据包括第一版神经网络模型的参数,并且第二配置数据包括第二版神经网络模型的参数。因此,分布式训练交换权重信息,而不是训练样本。该权重信息可以比训练数据集小几个数量级。
根据本发明的各个方面,第一配置数据包括第一版神经网络模型的参数,并且第二配置数据包括梯度数据。这为教师-学生示例提供了一种替代方法(或者可被结合使用)。这种情况更适合训练过程(例如同步训练)期间的更高频率的数据交换。它可能适合网络流量相当低的夜间训练。梯度数据可用于更新主设备处的参数并因此使用从设备私有的数据来改进该设备处的模型的版本。
根据本发明的各个方面,主设备通信地耦合到第一网络,并且从设备通信地耦合到第二网络,第一网络和第二网络是异构的并且通过一个或多个不可信设备而通信地耦合。从设备可以形成多个从设备的一部分,其中主设备被配置为使用由这多个从设备输出的第二配置数据来更新第一版神经网络模型的参数。例如,主设备可被配置为使用由多个从设备输出的第二配置数据来实例化第二版神经网络模型的集合体,并使用该集合体来训练第一版神经网络模型。可替代地,或者此外,主设备可被配置为使用从由多个从设备输出的第二配置数据得出的聚合数据来更新第一版神经网络模型的参数。主设备和多个从设备可以根据定义的图模型而通信地耦合。在第二配置数据包括来自多个从设备的梯度数据的情况下,主设备可被配置为比较来自不同从设备的梯度数据,以基于比较来选择性地更新第一版神经网络模型的参数。
在具有多个从设备的以上方面中,可以对散布在多个设备上的神经网络模型做出改进。主设备可以合并来自多个独立异构设备的信息,这多个独立异构设备不需要是同一系统的一部分或在同一控制下。这为现实世界生产环境中的实现提供了一种灵活且可扩展的系统。
根据本发明的各个方面,主设备通信地耦合到无法被从设备访问的第二数据源,并且其中主设备被配置为使用来自第二数据源的数据来训练第一版神经网络模型。对于上面描述的教师-学生示例可能是这种情况。第二数据源可以是大型的主数据源。因此,可以在一个站点(例如,可获得大数据集的站点)处执行大规模训练,但是仍可以使用在从设备集合处可用的一个或多个较小的私有从数据集来改进神经网络模型。
根据本发明的各个方面,从设备包括至少一个处理器以执行在存储器中存储的二进制可执行文件,其中所执行的二进制可执行文件被配置为独立于主设备来加载第一配置数据并实例化第二版神经网络模型。所执行的二进制可执行文件可被配置为输出第二配置数据并控制向主设备的发送。二进制可执行文件可提供有效的容器,该容器可被分发给从设备(例如,通过非暂时性介质或通过发送的数据)。可以使用第一配置数据来配置二进制可执行文件。这允许从设备相对“哑”—他们需要做的就是运行可执行文件以实现该方法。这避免了对(伪)虚拟化和控制的复杂层的需要。每个从设备也可以被独立地管理。
根据本发明的各个方面,神经网络模型形成语音识别流水线的一部分,并且第一数据源存储音频数据。在这种情况下,从设备可被配置为利用音频噪声来增强来自第一数据源的音频数据。本发明的当前方面非常适合自动语音识别的挑战,其中音频数据集往往很大并且难以在设备之间传输。音频数据集常常包含机密信息,并且需要保密。这使神经网络模型的训练变得困难,并且利用当前的系统和方法减少了这些困难。
根据本发明的各个方面,第一配置数据包括神经网络模型的超参数以及第一版神经网络模型的参数。超参数可包括以下各项中的一个或多个:神经网络模型的架构定义;神经网络模型中的一层或更多层的节点数量;一组节点定义,其指示节点类型和节点连接性中的一个或多个;一组激活函数定义;以及一个或多个成本函数定义。参数可包括以下各项中的一个或多个:神经网络模型的节点之间的一个或多个连接的权重值;神经网络模型的一个或多个输入的权重值;神经网络模型中的一个或多个递归路径的权重值;以及神经网络模型的一个或多个节点的偏置值。
根据本发明的各个方面,第二配置数据可包括梯度数据,并且主设备可被配置为基于第二配置数据的龄期对梯度数据进行加权。在第二配置数据包括梯度数据的方面,主设备可被配置为将来自第二配置数据的梯度数据与使用第一版神经网络模型确定的梯度数据进行比较并基于比较来选择性地更新第一版神经网络模型的参数。在这种情况下,可以控制在主设备处对神经网络模型的调整,并且可以减少用陈旧、过时或其他不合适的数据进行调整的影响。
根据本发明的另一方面,一种训练神经网络模型的方法包括:在从设备处,从主设备接收神经网络模型的第一配置数据,主设备远离从设备,主设备包括第一版神经网络模型;在从设备处,使用第一配置数据来实例化第二版神经网络模型;在从设备处,使用来自第一数据源的数据来训练第二版神经网络模型,第一数据源无法被主设备访问;以及在从设备处基于训练后的第二版神经网络模型来输出神经网络模型的第二配置数据,其中主设备被配置为使用第二配置数据来更新第一版神经网络模型的参数。该方面可提供对从设备的改进。例如,从设备不需要确定初始模型参数,因为这些可被在第一配置数据中提供。从设备还可以利用预训练或其他集体训练,其更新主设备处的参数,然后那些参数作为第一配置数据而被向下传输到从设备。从设备还可以使第一数据源保持私有和安全,但是通过集体训练来改进其版本的神经网络模型。
根据本发明的各个方面,实例化包括在从设备处将第二版神经网络模型实例化为学生模型以及在从设备处将第一版神经网络模型实例化为教师模型;训练包括在从设备处使用教师模型来训练学生模型;并且第二配置数据包括训练后的学生模型的参数。在这些方面,第一配置数据可包括第一版神经网络模型的参数以及第二版神经网络模型的神经网络架构定义。第一配置数据还可包括第一版神经网络模型的参数,其中使用第一版神经网络模型的参数来实例化学生模型和教师模型,以使得第二版神经网络模型包括第一版神经网络模型的副本,并且在训练期间,教师模型的参数是固定的,并且学生模型的参数是可训练的。这提供了教师-学生训练框架,该框架允许从设备使用来自主设备的数据来容易地改进其版本的神经网络模型。它还允许从设备使用大型未标记的数据集(例如,以及标记的数据,或代替标记的数据)来更新其版本的神经网络模型。
根据本发明的各个方面,第一配置数据包括第一版神经网络模型的参数,并且第二版神经网络包括使用第一版神经网络模型的参数实例化的第一版神经网络模型的可训练副本,并且第二配置数据包括在训练期间生成的梯度数据。在这种情况下,从设备能够使用本地且安全的数据源来训练其版本的神经网络模型,但是还经由第一配置数据交换数据,该数据可用于间接改进其版本的神经网络模型。
根据本发明的各个方面,该方法被迭代以调整第一和第二版神经网络模型的参数。
根据本发明的各个方面,该方法包括:在从设备处加载二进制可执行文件;以及使用从设备的至少一个处理器来执行该二进制可执行文件,以至少实现实例化、训练和输出步骤。二进制可执行文件可包括第一配置数据。二进制可执行文件允许从设备简单地执行该方法,而无需复杂的控制开销。
根据本发明的另一方面,一种训练神经网络模型的方法包括:在主设备处基于第一版神经网络模型来生成神经网络模型的第一配置数据;从主设备向从设备发送第一配置数据,从设备远离主设备并且可以访问无法被主设备访问的第一数据源;在主设备处从从设备接收神经网络模型的第二配置数据,第二配置数据基于在从设备处实例化的第二版神经网络模型,第二配置数据是在来自第一数据源的数据上进行训练之后在从设备处生成的;以及基于第二配置数据来更新第一版神经网络模型的参数。该方面允许主设备使用其无法访问的训练数据来改进其版本的神经网络模型。
根据本发明的各个方面,第二配置数据包括训练后的第二版神经网络模型的参数;更新包括:使用第二配置数据将第二版神经网络模型实例化为教师模型,将第一版神经网络模型实例化为学生模型,以及使用教师模型来训练学生模型以更新第一版神经网络模型的参数。这提供了使用一个或多个第二版神经网络模型的参数来更新第一版神经网络模型的有用方法。
根据本发明的各个方面,接收包括从多个从设备接收第二配置数据,并且更新包括:将第二版神经网络模型的集合体实例化为教师模型的集合体,以及使用教师模型的集合体来训练学生模型。因此可以使用来自各种异构设备的私有数据来改进第一版神经网络模型。
根据本发明的各个方面,第一配置数据包括第一版神经网络模型的参数,并且第二配置数据包括梯度数据,并且更新包括使用梯度数据来更新第一版神经网络模型的参数。
根据本发明的各个方面,在主设备处使用来自第二数据源的数据来训练第一版神经网络模型,第二数据源无法被从设备访问。可以迭代该方法以调整第一和第二版神经网络模型的参数。
根据本发明的另一方面,一种从设备包括:存储设备,用于存储第二版神经网络模型的参数数据;存储器,用于存储被配置为实现分布式训练操作的计算机程序代码;网络接口,用于与主设备传送数据,该主设备远离从设备并且包括第一版神经网络模型;存储接口,用于与第一数据源进行通信,第一数据源无法被主设备访问;以及至少一个处理器,该至少一个处理器被配置为执行在存储器中存储的计算机程序代码以执行以下操作:经由网络接口从主设备接收神经网络模型的第一配置数据;使用第一配置数据来实例化第二版神经网络模型;执行训练操作,以使用经由存储接口获得的来自第一数据源的数据来训练第二版神经网络模型;基于训练操作来更新存储设备中的参数数据;以及经由网络接口基于由训练操作产生的数据来输出神经网络模型的第二配置数据,其中主设备被配置为使用第二配置数据来更新第一版神经网络模型的参数数据。从设备可以提供与针对以上其他方面讨论的优点类似的优点。
根据本发明的另一方面,主设备包括:存储设备,用于存储第一版神经网络模型的参数数据;存储器,用于存储计算机程序代码,该计算机程序代码被配置为实现分布式训练操作;网络接口,用于与从设备进行通信,该从设备远离主设备;以及至少一个处理器,该至少一个处理器被配置为执行在存储器中存储的计算机程序代码以执行以下操作:基于第一版神经网络模型来生成神经网络模型的第一配置数据;经由网络接口将第一配置数据发送到从设备,该从设备可以访问无法被主设备访问的第一数据源;经由网络接口从从设备接收神经网络模型的第二配置数据,第二配置数据基于使用第一配置数据在从设备处实例化的第二版神经网络模型,第二配置数据是在来自第一数据源的数据上进行训练之后在从设备处生成的;以及基于第二配置数据来更新第一版神经网络模型的参数数据。主设备可以提供与以上针对其他方面讨论的优点类似的优点。
根据本发明的其他方面,可以提供一种非暂时性计算机可读存储介质,其存储指令,这些指令当被至少一个处理器执行时使这至少一个处理器执行前述方法之一。
附图说明
图1示出了根据本发明的一个实施例的用于神经网络模型的分布式训练的系统。
图2示出了根据本发明的另一实施例的用于神经网络模型的分布式训练的系统。
图3示出了根据本发明的一个实施例的分布式训练系统的从设备。
图4A示出了第一示例教师-学生配置。
图4B示出了第二示例教师-学生配置。
图5示出了根据本发明的一个实施例的分布式训练系统的主设备。
图6示出了根据本发明的一个实施例的用于传送梯度数据的神经网络模型的分布式训练的系统。
图7示出了根据本发明的一个实施例的具有多个从设备的分布式训练系统。
图8A、图8B和图8C示出了本发明的分布式训练系统的实施例的不同图形配置。
图9示出了根据本发明的一个实施例的从设备的组件。
图10示出了流程图,该流程图示出了根据本发明的各个方面的由从设备执行的训练神经网络模型的方法。
图11示出了流程图,该流程图示出了根据本发明的各个方面的由主设备执行的训练神经网络模型的方法。
图12示出了序列图,该序列图示出了根据本发明的各个方面的分布式训练系统的组件之间的通信。
具体实施方式
介绍
以下描述了本技术的各种示例,这些示例示出了本发明的各个方面和实施例。一般而言,示例可以以任何组合使用所描述的方面。本文中的叙述原理、方面和示例的所有陈述都旨在包含其结构和功能上的等同物。此外,意图是这样的等同物包括当前已知的等同物以及将来开发的等同物,即,所开发的执行相同功能而不管结构的任何元件。
注意,如在本文中使用的,单数形式“一”、“一个”和“该”包括复数指示物,除非上下文另外明确指出。在整个说明书中对“一个”、“一”、“一定”、“某些”和“情况”、“示例”或类似语言的引用意味着结合该示例描述的特定方面、特征、结构或特性被包括在本发明的至少一个实施例中。因此,短语“在一种情况下”、“在至少一个示例中”、“在一个示例中”、“在某些情况下”和类似语言在整个说明书中的出现可以但不一定全部指代相同实施例或类似实施例。另外,本文描述的本发明的各方面和示例仅是示例性的,并且不应被解释为对本领域普通技术人员所理解的本发明的范围或精神的限制。在包括本文描述的任何新颖方面的任何示例中有效地制造或使用所公开的发明。另外,就在详细描述和权利要求中使用术语“包括”、“包含”、“具有”、“含有”、“带有”或其变体来说,以与术语“包括”类似的方式,这些术语旨在是包含性的。在示出多个类似元件(诸如存储设备)的示例中,即使使用单独的附图标记,某些此类示例也可以与担当多个类似元件的作用的单个元件一起工作。
本文描述的某些实施例涉及用于训练神经网络模型的分布式系统。这些实施例使用主设备以及一个或多个从设备。神经网络模型可以是供在自动语音识别系统中使用的模型。例如,神经网络模型可以是声学模型,该声学模型接收音频数据作为输入并输出语言数据,该语言数据指示被确定为存在于音频数据中的语言特征。语言特征可包括音素、字素、字符、字母、单词和子词单元中的一个或多个。该语言数据可被语言模型(其本身可以是另一个神经网络模型)用来将输入音频数据转换为与口头短语相关联的文本和/或命令数据。
在本文描述的实施例中,“神经网络模型”用于指代被配置为执行特定数据处理任务的人工神经网络。例如,在神经网络模型包括声学模型的情况下,任务可以是基于输入音频数据来输出音素或字素数据(例如,音素或字素的预测)。在神经网络模型包括语言模型的情况下,任务可以是基于音素或字素数据的输入序列来输出文本数据。在某些情况下,神经网络模型可以是被配置为在定义的输入数据和定义的输出数据之间提供特定映射的模型。输入数据可以表示一个模态,并且输出数据可以表示另一个模态。可以将神经网络模型视为在一组数据上训练的函数逼近器。
本文描述的某些示例利用神经网络模型的不同版本。例如,主设备可以实现第一版神经网络模型,并且从设备可以实现第二版神经网络模型。在示例中,“版本”可包括定义的“模板”神经网络模型的实例化。“模板”神经网络模型可以例如以输入或输出数据类型或格式、连接性、神经网络类型等形式来指定该神经网络模型的所有版本的共同属性。然而,神经网络模型的每个“版本”可能不同。例如,不同的版本可包括不同数量的层和/或节点,并且/或者被配置为处理不同位深度的数据。在实施例中,神经网络模型的各版本可以至少相差参数数据,诸如权重和偏置的值。在某些情况下,神经网络模型的不同版本可包括神经网络模型的不同实例。例如,如果神经网络模型是由面向对象编程语言中的类(或类状结构)定义的,则每个版本可包括该类的不同实例(例如,包括共同的数据处理方法但是不同的内部数据)。在某些情况下,神经网络模型的两个版本可包括在空间和/或时间上分离的神经网络模型的两个副本,诸如在地理上或逻辑上分离的设备上实现的共同神经网络模型的两个副本。关于下面描述的特定示例,神经网络模型的不同版本的使用将变得清楚。
在本文描述的某些示例中,从设备实例化第二版神经网络模型,其中第一版神经网络模型与主设备相关联。从设备被配置为基于从主设备接收的第一配置数据来实例化第二版神经网络模型。然后,从设备被布置为使用可用数据来训练第二版神经网络模型,然后将第二配置数据发送回主设备。然后,主设备可以基于训练来更新第一版神经网络模型的参数。可能随着时间的推移而迭代该过程。以这种方式,主设备和从设备二者可以共享与神经网络模型有关的有用信息,以便允许神经网络模型的两个版本都输出准确的预测。尽管对主设备和/或从设备处的数据访问存在约束,这仍然是可能的。
示例分布式训练系统
参考图1,示出了根据本发明的实施例的分布式训练系统100。系统100包括主设备110和从设备120。主设备110和从设备120包括计算设备,即具有至少一个处理器和存储器的设备,其中至少一个处理器被配置为执行被加载到存储器中的计算机程序代码以执行一个或多个功能。根据本发明的一个实施例和方面,主设备110包括服务器设备,并且从设备120包括客户端设备。根据本发明的另一个实施例和方面,主设备110和从设备120都包括服务器设备。根据本发明的某一实施例和方面,主设备110和从设备120中的一个或多个包括用于处理多维数组的专用处理器,诸如图形处理单元(GPU)、张量处理单元(TPU)和/或图形处理器。
在图1中,从设备120通信地耦合到第一数据源130。根据各种实施例,第一数据源130包括外部数据源或内部数据源。根据各种实施例,第一数据源130包括数据存储设备,该数据存储设备通信地耦合到局域网140。第一数据源130存储数据。在本实施例中,从设备120可访问第一数据源130,但是主设备110不可访问第一数据源130。例如,第一数据源130是从设备120的内部数据源,或者只有耦合到局域网140的设备才可访问第一数据源130。根据各种实施例,第一数据源130位于例如由局域网140的逻辑边界定义的一个或多个受防火墙保护的计算机网络内。根据各种实施例,第一数据源130可以不提供任何公共可访问的接口,例如可能无法通过因特网访问。根据一些实施例,第一数据源130存在于一个或多个公共网络上并且仅允许授权访问。在一些实施例中,主设备110不具有访问第一数据源130的权限。
在图1中,根据各种实施例,主设备110和从设备120通过至少一个网络150通信地耦合。主设备110远离从设备120。主设备110和从设备120可以位于由不同实体管理的不同计算机网络上。根据本发明的一个实施例,主设备110通信地耦合到第一网络,并且从设备可以通信地耦合到第二网络(未示出),其中第一网络和第二网络是异构的并且通过一个或多个不受信任的设备(其构成网络150)通信地耦合。根据各种实施例,网络150包括因特网。根据一个实施例,主设备110和从设备120被配置为例如使用安全的通信协议通过网络150安全地通信。根据各种实施例,主设备110不能通过网络150访问第一数据源130。
在图1中,根据本发明的各种实施例,主设备110包括第一版神经网络模型160。在图1中,第一版神经网络模型160被表示为用于实例化神经网络模型的特定参数集。第一版神经网络模型160被存储在主设备110可访问的非易失性数据存储设备上。参数包括用于神经网络模型的一层或更多层的超参数和参数中的一个或多个,诸如权重和偏置值。在图1中,第一版神经网络模型160未被实例化,例如未被激活,以便作为可执行模型进行预测或推断。然而,根据本发明的一些方面,主设备110可以实例化第一版神经网络模型160,如关于接下来的各个方面和实施例描述的。
从设备120被配置为实例化第二版神经网络模型170。如上所述,第二版神经网络模型170包括第一版神经网络模型的副本或针对从设备120配置的神经网络模型的版本。根据各种实施例,如果主设备110和从设备120在处理资源(例如,处理器数量和存储器大小)上不同,则第二版本包括神经网络模型的较小版本并且第一版本包括神经网络模型的较大版本,即第二版本的大小可以小于第一版本的大小。术语“较小”和“较大”可指代以下各项中的一项或多项上的差异:可训练的参数(诸如权重和偏置)的数量,层的数量(例如,第二版本可具有较少的层),以及模型的输入和输出中的一个或多个的数据分辨率(例如,第一版本可以在第一位深度使用第一分辨率,并且第二版本可以在第二较低的位深度使用第二较低的分辨率)。尽管在具有较小模型的从设备120的方面描述了一个实施例,但是在其他实施例中,这可以是相反的,使得主设备110具有较小的模型。在第一版本和第二版本是副本的情况下,它们可具有相同的神经网络架构,例如相同数量的层和节点配置。
在图1中,主设备110生成第一配置数据(CD1)180,其被发送到从设备120以供在实例化第二版神经网络模型170时使用。第一配置数据180基于第一版神经网络模型160。根据本发明的实施例和方面,第一配置数据180可以指示第一版神经网络模型160的用于实例化第二版神经网络模型170的特性。这些特性可包括超参数和参数中的一个或多个。本文所使用的术语“实例化”可以指代根据供在训练和推断中的一个或多个中使用的预定义配置来生成神经网络模型的特定实例或可执行实现的过程。根据本发明的一些方面,可以通过使用初始化数据实现神经网络模型的类或类状定义来实例化神经网络模型的版本。在这种情况下,初始化数据包括第一配置数据180。在某些情况下,第一配置数据180还包括神经网络模型的类或类状定义;根据本发明的一些方面,可以在较早的时间和/或通过不同的通信方法来提供该信息(例如,可以将其作为较早提供的可执行文件或其他设置文件的一部分来加载)。通常,神经网络模型的实例化版本包括与数据一起存在于存储器中的计算机程序代码,其中该计算机程序代码可由处理器执行以根据数据执行一个或多个功能。
一旦被实例化,从设备120就被配置为使用来自第一数据源130的数据来训练第二版神经网络模型170。训练包括从第一数据源130中取回训练集并使用该训练集来训练第二版神经网络模型170的一组可训练参数。根据本发明的实施例和方面,训练可包括使用通过评估损失函数的微分而计算出的梯度信息来更新权重和/或偏置的值。对于标记的数据,损失函数可包括利用第二版神经网络模型170进行的初始预测与“真相”标签的比较。从设备120被配置为基于训练的结果来输出第二版神经网络模型170的第二配置数据(CD2)190。在一种情况下,第二配置数据190可包括在训练期间生成的梯度数据。在另一种情况下,第二配置数据190可包括在训练之后的第二版神经网络模型170的更新后的参数值。在本发明的其他实施例和方面中更详细地描述这两种方法。
将第二配置数据190通过网络150从从设备120发送到主设备110。应当注意的是,第一配置数据180和第二配置数据190两者的发送可以是间接的,例如通过一个或多个中间设备,如关于本发明的其他实施例和方面描述的。主设备110被配置为使用第二配置数据190来更新第一版神经网络模型160的参数。更新参数过程包括更新第一版神经网络模型160的参数以考虑从从设备120处的训练得出的改进。根据本发明的一些方面,可以在线执行或离线执行更新过程。在后一种情况下,可以在实例化第一版神经网络模型160时加载和修改在数据存储设备中存储的现有参数。在前一种情况下,可以实例化第一版神经网络模型160,并且使用第二配置数据190在训练过程中更新该实例的已加载参数值。
根据本发明的一个方面,第二配置数据190不包括可用于识别特定个体或实体的任何数据,其中第一数据源130中的原始数据可用于执行该识别。这样,第二配置数据190可被视为匿名更新数据,其可用于更新第一版神经网络模型160的参数,而不将在第一数据源130上保存的敏感或私有信息传递给主设备110。根据本发明的一些方面,分布式训练系统100将在第一数据源130上保存的数据保密。
根据本发明的实施例和方面,主设备110可以由第一实体控制,并且从设备120(以及局域网140内的组件)可以由第二实体控制。存储在第一数据源130上的数据可以是私有的。分布式训练系统100维护该隐私,并允许在两个实体之间共享与神经网络模型有关的数据。根据本发明的实施例,神经网络模型包括用于自动语音识别应用的声学模型。根据本发明的一方面,主设备110可以属于第一实体,第一实体是语音识别设备的制造者(例如,设计者或创建者);从设备120然后可以属于第二实体,第二实体是特定一组用户的语音识别设备的供应者(例如,零售商)。根据本发明的实施例,从设备120可以形成紧急服务系统的一部分,该紧急服务系统接收并处理紧急呼叫的语音。在这种情况下,第一数据源130可存储与紧急呼叫相关联的音频数据。音频数据可包括原始声音记录(例如,来自电话呼叫)和/或得出的音频特征,诸如梅尔频率倒谱系数(MFCC)和滤波器组输出中的一个或多个。在这种情况下,可能希望在不暴露呼叫的机密数据的情况下提高紧急服务系统的性能。通过使用图1的分布式训练系统,语音识别设备的制造者能够对神经网络模型做出改进,这可以体现在第一配置数据180内。可以形成紧急服务系统的一部分的从设备120能够在实例化的第二版神经网络模型170中使用那些改进,并且在第一数据源130中的私有数据上训练该模型。来自该训练的改进然后可以体现在第二配置数据190内,其中该数据(因为其由在许多不同样本上进行训练所致)不提供可用于确定在原始语音数据内表示的个体事件和个体的信息。然后可以将第二配置数据190发送到语音识别设备的制造者,并使用第二配置数据190来改进第一版神经网络模型。随着时间的推移重复该过程以提高声学模型的准确性。
语音识别设备的制造者还能够将第一配置数据180发送给其他从设备120。根据本发明的实施例和方面,制造者针对被实现为军事语音识别系统的一部分的第二从设备120重复该过程。出于国家安全原因,可能需要在秘密的数据上训练军事语音识别系统。可以再次生成第二配置数据190,并使用其来更新第一版神经网络模型。
根据本发明的各种实施例和方面,存在多个从设备,每个从设备具有主设备不可访问的数据源。使用图1的分布式训练系统,来自不同从设备的第二配置数据190可被接收和组合以更新第一版神经网络模型的参数。然后可以将那些更新后的参数经由第一配置数据180传送到不同的从设备。以这种方式,即使从设备120可能不能允许对敏感或私有数据的访问,从设备120仍然能够共享可用于提高神经网络模型的准确性的信息。当语音处理时,这可以表现为语音识别处理的提高的语音识别率、更低成本和/或更低功耗。
根据本发明的一方面,第一配置数据180包括第一版神经网络模型的超参数。这些超参数可以包括与神经网络模型的权重和偏置无关而是与神经网络模型的全局设置有关的参数。超参数包括以下各项中的一项或多项:神经网络模型的架构定义(诸如层数,输入和/或输出的维度等);神经网络模型中的一层或更多层的节点数量(例如每层的输入-输出维度配置);一组节点定义,其指示节点类型和节点连接性中的一个或多个;一组激活函数(例如非线性)定义;以及一个或多个成本或损失函数定义。超参数还可包括学习速率、损失函数权重、训练方法定义等。超参数可用于初始化第一版神经网络模型的空白或空的副本。根据本发明的一些方面,第一配置数据180包括通过处理第一版神经网络模型160而生成的超参数,例如如果神经网络模型的较小版本被用作第二版神经网络模型170,则层和/或节点配置可以是第一版神经网络模型160的较小版本或简化版本。
此外,或者可替代地,第一配置数据180包括第一版神经网络模型160的参数。这些参数可以是诸如以下各项中的一项或多项之类的参数:神经网络模型的节点之间的一个或多个连接的权重值(例如,神经网络架构的定义层的权重值);神经网络模型的一个或多个输入的权重值(例如,一个或多个输入或嵌入层的权重或嵌入值);神经网络模型中的一个或多个递归路径的权重值(例如递归神经网络架构内的一层或更多层的权重值);以及神经网络模型的一个或多个节点的偏置值。
根据本发明的一个方面,偏置值可被提供作为权重值数据的一部分(例如,可以通过将常数添加到输入向量来实现偏置)。参数可以用于初始化第一版神经网络模型的副本。在其他情况下,第一配置数据180可包括通过处理第一版神经网络模型160的参数而生成的参数,例如如果神经网络模型的较小版本被用作第二版神经网络模型170,则某些原始参数可被聚合、省略或以其他方式下采样。
以类似的方式,根据本发明的各个方面,第二配置数据190包括第二版神经网络模型170的参数。因为第二版神经网络模型170是基于第一配置数据180实例化的,因此第二版神经网络模型170的超参数对于主设备110来说可以是已知的并且因此可能不需要被从从设备120再次发送。第二版神经网络模型170的参数可包括可训练参数的值,诸如如上所述的权重和偏置值。不可训练的参数可能不被共享,因为这些不可训练的参数可能经由第一配置数据180的交换来确认。根据本发明的各种实施例和方面,第一和第二配置数据中的一个或多个包括数据处理库的数据文件,诸如NumPy Python库所使用的“.npy”数据格式。
主设备处的训练
现在参考图2,示出了根据本发明的实施例的分布式训练系统200。分布式训练系统200可被视为图1的第一分布式训练系统100的变体,并且类似的特征共享类似的附图标记。根据本发明的实施例和各个方面,主设备210可以访问主数据源264。主数据源264可能无法被从设备220访问。根据图1中的第一数据源130,主数据源264可以在主设备210内部或者通信地耦合到主设备210的局域网212,其中局域网212具有防火墙,该防火墙防止或控制至少对局域网212上的设备的访问。主设备210还具有存储设备260,以存储实例化的第一版神经网络模型262的参数数据。这可以是内部存储设备或外部存储设备。从设备220还具有存储设备272以存储实例化的第二版神经网络模型270的参数数据,并且可以访问与图1的第一数据源130类似的从数据源230。
根据图2所示的本发明的实施例,主设备210被配置为使用来自存储设备260的参数数据来实例化第一版神经网络模型262。这包括与针对图1的示例中的第二版神经网络模型170描述的过程类似的过程。可以使用第一配置数据(CD1)280或类似数据来实例化第一版神经网络模型262。主设备210然后被配置为使用来自主数据源264的数据来训练第一版神经网络模型262。根据本发明的一方面,利用初始可训练参数集(诸如随机采样的权重集(即生成随机权重值集))来实例化第一版神经网络模型262,并且使用来自主数据源264的数据进行的训练调整可训练参数,以使得第一版神经网络模型262达到第一准确性水平。根据本发明的另一方面,利用来自前一训练会话的已训练参数集(例如,如可被存储在存储设备260中)来实例化第一版神经网络模型262。在训练之后,将更新后的参数集作为更新后的参数数据存储在存储设备260内。基于该参数数据生成第一配置数据280。
从设备220使用第一配置数据280来实例化第二版神经网络模型270。在第一配置数据280包括针对第一版神经网络模型的已训练参数的情况下,这些已训练参数被存储在存储设备272中并用于设置第二版神经网络模型270的参数值。在对来自从数据源230的数据进行训练之后,从设备220将更新后的参数集存储在存储设备272中并使用这些参数来生成发送到主设备210的第二配置数据(CD2)290。主设备210接收第二配置数据290,并使用它来更新在存储设备260中存储的参数数据。根据本发明的实施例,第二配置数据290可被用作主设备210处的进一步训练操作的一部分。再一次,可以周期性地重复该过程以更新神经网络模型的两个版本的参数值。
图2的示例可以允许实现迁移学习的形式。在语音处理示例中,主设备210可能可以访问大型语音数据语料库,并使用其来训练一般或通用的语音识别模型。例如,主设备210可能可以访问美式英语的训练示例的大型库,并使用其来将神经声学和/或语言模型训练为第一版神经网络模型。从设备220然后可以经由在来自从数据源230的数据上进行训练来使该一般或通用语音识别模型适应特定用例。例如,从设备220可以提供原始通用语音识别模型的版本,该版本对于特定的使用领域(例如对于英式英语、法语,或对于(以使用上面的示例)在紧急响应呼叫的领域中使用的语音风格)具有更高的准确性。主设备210可以使用第二配置数据290来提高第一版神经网络模型262的准确性(例如以改进一般或通用的语音识别模型),并且/或者使用第二配置数据290来生成与每个特定从设备相关联的神经网络模型的不同附加版本。该方法可以用于提供自动语音识别,该自动语音识别容易地适合不同的设备、用户、语言和/或环境。
教师-学生示例
根据本发明的各种实施例和方面,图1和图2的主-从布置可被配置为实现教师-学生训练模型。在本发明的这些实施例和方面中,第一版神经网络模型被用作从学生模型的教师,并且第二版神经网络模型继而被用作教师以将第一版神经网络模型教导为主学生模型。这提供了一种机制,通过该机制,可以更新神经网络模型的每个版本。此机制对于异步实现是有用的,在异步实现中,可能以长间隔或不规则间隔在主设备和从设备之间交换配置数据(例如,大约几天或几周而不是几秒钟或几分钟,或者作为固件、操作系统或应用更新的一部分)。
现在参考图3,示出了根据本发明的实施例和方面的设备300。设备300包括从设备320,其实现第一教师-学生配置。如在图1和图2的示例中一样,从设备320通信地耦合到第一数据源330,并且实例化第二版神经网络模型370。根据本发明的实施例和方面,基于在数据存储设备372中存储的初始参数集来实例化第二版神经网络模型370(例如,根据图2的示例)。根据本发明的一方面,如虚线所指示,来自第一配置数据(CD1)380的超参数和参数中的一个或多个也可以用于实例化第二版神经网络模型370。
在图3中,从设备320被配置为使用源自主设备的第一配置数据380来实例化从设备320内的第一版神经网络模型360。例如,可以按照图2的主设备210上的第一版神经网络模型262的实例化来在从设备320上实例化第一版神经网络模型360,并且/或者按照第二版神经网络模型370的实例化来在从设备320上实例化第一版神经网络模型360。
第一版神经网络模型360被实例化,以用作教师模型。第一版神经网络模型360的参数是固定的(例如,权重和偏置无法是可训练的)。这与图2中的主设备210处的实例化的示例不同。从设备320然后被配置为将第二版神经网络模型370实例化为学生模型。第二版神经网络模型370的参数是可训练的(例如,权重和偏置可以是可训练的)。来自第一数据源330的数据分别输入到第一版神经网络模型360和第二版神经网络模型370。该数据可以是标记的数据和未标记的数据中的一个或多个。第一版神经网络模型360的输出被传送到第二版神经网络模型370,并被用于训练第二版神经网络模型370。这样,教师模型被用于训练学生模型。第二版神经网络模型370的更新后的参数数据可被存储在数据存储设备372中。在一种情况下,梯度数据也可被存储。数据存储设备372的内容可以用于生成第二配置数据390,其被传送回主设备。
根据本发明的实施例和方面,第一版神经网络模型360和第二版神经网络模型370以(例如基于第一配置数据380初始化的)共同神经网络配置的副本开始。因此,仅第二版神经网络模型370的参数在训练期间改变。更新后的参数被存储在数据存储设备372中。来自第一版神经网络模型360的输出形成了第二版神经网络模型370的损失函数的一部分,以使得在训练期间第二版神经网络模型370“学习”与第一版神经网络模型360近似。
现在参考图4A,示出了根据本发明的一方面的实施例400,其中第一版神经网络模型410和第二版神经网络模型420是共同神经网络配置的副本。第一版神经网络模型410包括输入层412,多个中间层(至少包括第一层414和第二层416),以及logit(逻辑回归)层418。第二版神经网络模型420包括类似的配置:输入层422,多个中间层(至少包括第一层424和第二层426),以及logit层428。对于神经网络模型输出分类的示例,logit层包括在SoftMax层之前的层,例如非规格化的输出或“软”类别标签。根据本发明的一方面,使用与logit层不同的输出层。第一版神经网络模型410和第二版神经网络模型420分别包括任何已知的神经网络层,例如卷积层、前馈层和递归层中的一个或多个。可以组合使用不同类型的层。不同的层可具有不同数量的节点。每个节点都可以跟随有定义的激活函数,以添加可微分的非线性。
在图4A中,第一版神经网络模型410和第二版神经网络模型420分别被在音频数据430上训练,音频数据430包括以下各项中的一个或多个:一个或多个时间步长的原始波形数据,一个或多个时间步长的频率数据,一个或多个时间步长的滤波器组测量,声谱图(例如,频率幅度或使用梅尔标度或梅尔滤波器组集),等等。训练集中的音频数据430的每个样本被分别提供给第一版神经网络模型410和第二版神经网络模型420。第一版神经网络模型410和第二版神经网络模型420分别提供了来自相应logit层418和428的logit输出。来自第一版神经网络模型410和第二版神经网络模型420的logit输出被传递给第二版神经网络模型420的损失函数440。该损失函数可以基于两组logit之间的Kullback Leibler距离或相对熵;这实际上旨在教导作为学生的第二版神经网络模型420,以按照充当教师的第一版神经网络模型410对概率分布进行建模。如图4A所示,损失函数440用于例如基于优化方法(例如,梯度下降等)确定第二版神经网络模型420的参数更新。针对音频数据430的多个音频样本(例如,多批输入数据)重复该过程,以便训练第二版神经网络模型420。
在教师-学生配置中,当损失函数440在模型的两个版本之间比较logit时,利用未标记的数据执行训练,例如当将logit与第二版神经网络模型420的输出和“真相”分类标签进行比较时。根据本发明的各个方面,另外利用例如附有SoftMax输出层的标记数据来训练第二版神经网络模型420,以进一步提高标记训练集上的准确性。因此,使用标记数据和未标记数据的组合执行训练。
现在参考图4B,其示出了根据本发明的一方面的替代实施例405。第一版和第二版神经网络模型包括相同基础模型的不同配置。在图4B中,示出了如图4所述的第一版神经网络模型410。然而,在本示例中,第二版神经网络模型450是简化模型,其包括输入层452、中间第一层454和logit层456。图4A和图4B的配置将被理解为示意性示例,并且所示的各版神经网络模型的层数或配置将不被视为限制性的。
图4B示出了第二版神经网络模型450与第一版神经网络模型410有何不同,并且以与图4A的设置类似的方式被教导。根据本发明的实施例和方面,第二版神经网络模型450包括第一版神经网络模型410的较小版本,以便尝试“提取”第一版神经网络模型410的“知识”,即使用具有较少参数的第二版神经网络模型450来获得相当的精度,这对于生产系统可以是优选的。
现在参考图5,示出了根据本发明的一方面的实施例500。在主设备处使用教师-学生训练模型将知识从一个或多个从设备模型转移到主设备模型。实施例500类似于图3的实施例,并且教师和学生的角色已被颠倒:来自从设备的第二版神经网络模型现在用于在主设备处训练第一版神经网络模型。
示出了根据本发明的实施例和方面的主设备510,其可以是在图1和图2中示出的主设备110或210的版本。例如与图2的示例类似,主设备510通信地耦合到主数据源564。主设备510包括数据存储设备560,数据存储设备560存储第一版神经网络模型562的参数数据。数据存储设备560中的参数数据是用于生成第一配置数据(CD1)580的数据。
在图5中,例如以与图2的示例类似的方式,主设备510实例化第一版神经网络模型562。使用来自数据存储设备560的参数数据来实例化第一版神经网络模型562,该参数数据被用于生成第一配置数据580的初始集合。该第一配置数据580的初始集合可以是来自图3的示例的第一配置数据380。在图5中,主设备510还可以访问来自一个或多个从设备的第二配置数据(CD2)590。例如,第二配置数据590可以是由图3的示例生成的第二配置数据390。虚线表明可以从多个不同的从设备接收第二配置数据590。
主设备510使用第二配置数据590来将第二版神经网络模型570实例化为教师模型。例如,第二版神经网络模型570可以是训练后的第二版神经网络模型370的副本。第二配置数据590包括诸如权重和偏置的值之类的参数数据,其使得能够在主设备510上实例化第二版神经网络模型570。在该示例中,第一版神经网络模型562被配置为学生模型。根据本发明的一方面,第一版神经网络模型562的参数是可训练的,而第二版神经网络模型570的参数不是可训练的。该设置可以类似于图3、图4A或图4B的示例,其中第一版神经网络模型和第二版神经网络模型交换位置。在训练(其再一次可以在未标记的数据和标记的数据中的一个或多个上)期间,基于第二版神经网络模型570的处理来更新第一版神经网络模型562的参数。按照图4A或图4B,每个版本都输出logit,其在损失函数中被比较,以引导第一版神经网络模型562的参数的梯度下降更新。在以这种方式进行训练之后,数据存储设备560中的参数数据被更新,从而允许生成第一配置数据580的修订后或更新后的集合。这然后可以被传送到一组从设备以重复该过程。
梯度交换
图3、图4A、图4B和图5示出了使用教师-学生模型的本发明的实施例和方面。在本发明的替代或附加的实施例和方面中,第二配置数据包括在训练期间生成的梯度数据。梯度数据用于更新第一版神经网络模型的参数。当应用基于梯度下降的方法(诸如梯度下降或随机梯度下降)时,梯度数据被生成,并指示将如何基于训练误差来更新权重和偏置。在这种情况下,从设备对主设备无法访问的数据(例如私有数据)计算梯度,然后将这些梯度发送到主设备,以允许主设备更新神经网络模型。与先前的示例一样,异构的处理单元可被使用,并且训练过程可以是不对称的(例如,可以不同地对待不同的处理器)。此外,或可替代地,从梯度数据得出的数据可被发送,诸如在自适应矩(Adam)类型优化算法中使用的压缩梯度或平滑梯度值。
现在参考图6,示出了根据本发明的实施例和方面的分布式训练系统600,其中梯度数据被交换。分布式训练系统600类似于图1所示的分布式训练系统100,并且用类似的附图标记来标记类似的组件。第一配置数据包括参数数据(PD)680,并且第二配置数据包括梯度数据(GD)690。参数数据680包括第一版神经网络模型660的参数和超参数中的一个或多个。根据本发明的一方面,第一组参数数据680可包括超参数数据,并且这可以被从参数数据680的将来通信中省略,除非超参数的设置在主设备610处被改变。这样,参数数据680的核心包括神经网络模型的权重和偏置的当前值。
如在本发明的其他方面和实施例中一样,参数数据680由从设备620接收,并且用于实例化第二版神经网络模型670。实例化的第二版神经网络模型670是在来自主设备610无法访问的第一数据源630的数据上训练的。以这种方式进行训练生成了梯度数据690,梯度数据690通过至少一个网络650而被发送回主设备610。主设备610使用接收到的梯度数据690来更新其版本的神经网络模型,即第一版神经网络模型的参数,并且继而能够将更新后的参数数据680发出到从设备620。参数数据680和梯度数据690的交换可以按照比教师-学生情况下的数据交换更高的频率。
多个从设备
现在参考图7,示出了根据本发明的实施例和方面的示例分布式训练系统700,其中主设备710通信地耦合到多个从设备722、724和726。本发明的该实施例和方面的教导可应用于本发明的各种其他实施例和方面中的任何一个,以便将分布式训练扩展到任意数量的从设备。
从设备722、724和726经由一个或多个通信网络750通信地耦合到主设备710。主设备710被配置为将用于分发的第一配置数据780经由一个或多个通信网络750发送到多个从设备722、724和726。每个从设备通信地耦合到相应的从数据源732、734和736,从数据源732、734和736按照图1和图2可能无法被主设备710访问,例如可能位于相应的私有网络742、744和746上。从数据源732、734和736也可能无法被其他从设备访问,例如,从设备724可能无法访问从数据源732或从数据源736。每个从设备722、724和726都按照先前的示例从主设备710接收第一配置数据780,并生成相应的第二配置数据(CD2)792、794和796,其经由一个或多个通信网络750而被传送回主设备710。来自多个从设备722、724和726的第二配置数据792、794和796的集合分别可用于更新第一版神经网络模型的参数。
现在参考图8A、图8B和图8C,针对如何根据定义的图模型在逻辑上配置主设备和从设备,根据本发明的各个方面,示出了各种实施例800、820和840。尽管在图8A、图8B和图8C中示出了三种不同的图模型,但是在根据本发明的各个方面的各种实施例的实现中可以使用任何数量的不同图模型。
具体参考图8A,实施例800示出了根据本发明的实施例如何可以根据树布置来布置设备。该树布置提供了允许有效交换配置数据(例如第一和第二配置数据)的层次结构。图8A的树布置具有充当中央参数服务器的主设备802,以提供第一配置数据和接收第二配置数据。主设备802通信地耦合到两个子主设备804和806。子主设备可包括被配置为与从设备的定义子集进行通信的主设备的形式。第一子主设备804通信地耦合到三个从设备808、810和812。该从设备子集从第一子主设备804接收第一配置数据,并将第二配置数据发送到第一子主设备804。第一子主设备804将第二配置数据传递给主设备802,并转发来自主设备802的第一配置数据。第二子主设备806对两个从设备814和816的子集执行类似的角色。子主设备804、806可具有一个版本的神经网络模型。在某些情况下,子主设备804、806可以相对于主设备802充当从设备,但是相对于子从设备的子集充当主设备。具有不同的父子关系和层次结构的不同层的树布置的不同配置是可能的。
具体参考图8B,根据本发明的一方面,实施例820是具有主设备822的集中枢纽布置,主设备822分别通信地耦合到多个从设备824至834。如在图1、图2和图6的示例中示出,每个从设备824-834可以与主设备822进行通信。在更复杂的示例中,从设备824-834之一可以是一个或多个附加从设备的与子主设备804和806类似的方式的子主设备。
现在具体参考图8C,实施例840示出了根据本发明的一方面的图8B的设备的替代配置。这里,主设备842与子主设备846进行通信。子主设备846形成环布置的一部分,由此从设备848至856被以串联方式通信地耦合。在这种情况下,子主设备可以将来自主设备842的第一配置数据发送到第一从设备848,第一从设备848继而可以使用它以及将它转发给第二从设备850。这可以围绕该环被重复。每个从设备也可以转发最终由子主设备846接收的第二配置数据,子主设备846可以将第二配置数据转发给主设备842。
在图8A、图8B和图8C的实施例中,子主设备可以以与先前示例的主设备类似的方式来更新神经网络模型的版本。子主设备然后可以按照先前示例的从设备生成第二配置数据,以传送到主设备。在其他情况下,子主设备可以简单地接收和转发第一和第二配置数据。
利用多个从设备进行更新
根据本发明的实施例和一方面,当多个从设备被使用时,主设备可以适于处理第二配置数据的多个部分。主设备被配置为使用由多个从设备输出的第二配置数据来实例化第二版神经网络模型的集合体,并使用该集合体来训练第一版神经网络模型。这例如在图5中由虚线示出。在教师-学生示例中,每组第二配置数据可包括单独版本的神经网络模型的参数,例如包括跨多个从设备实现的各个第二版神经网络模型的参数。在这种情况下,实例化模型的集合可以用作教师的集合体或收集,以在主设备处训练第一版神经网络模型。例如,损失函数可以是跨第二版神经网络模型的实例化的集合体的logit值的函数。损失函数可以聚合来自该集合体的logit值,例如经由求平均值或另一统计计算(中位数、众数等)。可替代地,在将每个实例化的第二版本依次用作教师的情况下,可以迭代地训练第一版神经网络模型。在某些示例中,主设备能够基于在验证数据集上的预定义性能水平来评估从配置数据并将从配置数据从其教师集合体中排除,例如,如果实例化的第二版神经网络模型在验证数据集上具有低于阈值的准确性分数,则它可被从集合体中排除。
根据其中第二配置数据包括梯度数据的本发明的实施例和方面,主设备可被配置为使用从由多个从设备输出的第二配置数据得出的聚合数据来更新第一版神经网络模型的参数。例如,可以通过求平均值或另一合适的统计函数来聚合来自多个从设备的梯度数据。在一种情况下,可以比较来自不同从设备的梯度数据,以选择性地更新第一版神经网络模型的参数。例如,主设备可被配置为基于第二配置数据的龄期对梯度数据进行加权。在一个实现中,梯度数据可具有关联的过时性参数,该过时性参数指示梯度数据的龄期(例如,在生成梯度数据的时间与主设备处的处理时间之间的时间差)。然后可以将梯度数据合并成加权平均值,由此为较旧的数据赋予较低的权重,以减少其对参数更新的影响。在某些情况下,权重可能为零,即在某些情况下,如果过时性参数具有大于阈值的值,则梯度数据无法用于更新第一版神经网络模型的参数。
根据其中交换梯度数据的本发明的实施例和方面,由于从设备和主设备上的处理速度之间的差异并且/或者由于从设备和主设备中的每一者具有的可用于训练的数据量的差异,因此配置数据交换的每次迭代(或每个训练时期)在处理时间上可能存在巨大差异。可以设置特定的目标周期时间(例如将其设置为预定义的间隔),并且可以将主设备和从设备中的一个或多个上的反向传播算法配置为处理足够的训练数据以满足目标周期时间。
根据其中交换梯度数据的本发明的实施例和方面,处理速率的差异可引起在每个设备处评估的数据量的差异,这继而可导致梯度计算的不确定性。另外,数据收集的准确性可导致梯度计算中的额外不确定性。在这种情况下,类似于过时性情况,可以为梯度数据指派特定的不确定性度量,该不确定性度量是对数据中的不确定性的量度。例如,这可以是0到1或0%到100%之间的值。在这种情况下,可以利用组合函数来聚合梯度数据,该组合函数与不确定性度量的值相反地对梯度数据的不同集合进行加权。在某些情况下,主设备可被配置为确定一个或多个从设备上的“每秒样本”数据处理速率。主设备然后可以动态地调整主设备和从设备中的一个或多个上的每次迭代的样本数量,以使迭代同步与主设备对齐。
根据其中第二配置数据包括梯度数据的本发明的实施例和方面,主设备可被配置为将来自第二配置数据的梯度数据与使用第一版神经网络模型确定的梯度数据进行比较。在这种情况下,主设备可以基于比较来选择性地更新第一版神经网络模型的参数。
具有多个从设备的分布式训练系统提供了协作的和潜在大规模的联合训练。新的从设备可能可以随时加入或离开系统。在这些情况下,可能存在以下风险:某些梯度数据不适合训练和/或甚至是恶意的。在这些情况下,主设备可被配置为比较来自不同从设备的梯度值,以便识别出作为明显异常值的梯度值集合。这些可被从第一版神经网络模型的参数的任何更新中排除。类似的方法也可用于针对教师-学生示例排除第二配置数据的某些集合。
根据本发明的实施例和方面,主设备使用不同从设备之间的梯度数据的变化作为数据质量或相关性的量度。为了产生适合于对任何特定从设备进行推断的神经网络模型,主设备可以选择仅使用在由主设备或一个或多个其他从设备生成的梯度数据的预定义范围内的梯度数据来训练第一版神经网络模型。例如,可以确定跨所有设备或设备子集的梯度数据的数据分布,并基于该数据分布来设置用于使用或排除的阈值(例如,如果值被认为是正态分布的,则与平均值相差超过2个标准偏差的值可被排除)。可以根据期望的偏好来配置阈值,较小的阈值可以在训练中提供更大的稳定性,但是较大的阈值可以帮助定位更好的局部最小值。类似的方法也可应用于对将被应用作为教师的第二版神经网络模型的不同实例的性能的测试或验证。可以确定一个或多个性能度量,并将其与预定义的阈值进行比较;低于阈值的性能可能导致特定实例的排除或降低权重。
可执行的模型
根据本发明的实施例和一方面,可以通过提供给一个或多个从设备的二进制可执行文件来实现神经网络模型。例如,从设备可包括至少一个处理器以执行在存储器中存储的二进制可执行文件。在这种情况下,所执行的二进制可执行文件可被配置为独立于主设备来加载第一配置数据和实例化第二版神经网络模型。所执行的二进制可执行文件还可被配置为输出第二配置数据并控制向主设备的发送。
现在参考图9,示出了根据本发明的实施例和方面的实施例900。实施例900包括从设备920。从设备920包括至少一个处理器942、存储器944、内部存储设备946、网络接口948和存储接口950。这些组件通过内部系统总线952耦合。
根据本发明的各种实施例和方面,存储器944可包括诸如随机存取存储器(RAM)之类的易失性存储器,并且内部存储设备946可包括诸如硬盘驱动器或固态驱动器之类的非易失性数据存储设备。存储接口950可包括用于将从设备920耦合到本地或远程数据源930的接口。在其他实施例中,数据源930可被提供作为内部存储设备946的一部分,或者内部存储设备946可被省略并且外部数据源可用于其位置。网络接口被配置为通过网络(诸如网络140、150、250等中的一个或多个)来传送数据。在图9中,网络接口948用于接收第一配置数据980和发送所生成的第二配置数据990。
内部存储设备946存储第二版神经网络模型的参数数据962以及二进制可执行文件964。二进制可执行文件(BE)964可包括编译的计算机程序代码。在使用中,二进制可执行文件964的二进制代码(BC)966被加载到存储器944中。二进制代码966可包括机器代码或其他形式的计算机程序代码。二进制代码966被配置为当被处理器942执行时实现分布式训练操作。
二进制可执行文件964可以实例化第二版神经网络模型。例如,二进制可执行文件964可包括用于在从设备920上实现神经网络模型的计算机程序代码。二进制可执行文件964可包含第二版神经网络模型的初始参数数据,或者这可被从参数数据962中加载。在某些示例中,二进制可执行文件964可被配置为加载第一配置数据(CD1)980以实例化第二版神经网络模型。在第一次运行时,二进制可执行文件964可以从第一配置数据980创建参数数据962。二进制可执行文件964可被配置为实现本文描述的训练和更新第二版神经网络模型的参数数据962。二进制可执行文件964还可被配置为生成第二配置数据(CD2)990以发送到主设备。二进制可执行文件964和第一配置数据980中的一个或多个可以指示设备地址和用于交换配置数据(例如用于至少发送第二配置数据990)的通信协议集。二进制可执行文件964可被配置为实现主设备与从设备之间的安全通信信道,并且可被配置为对配置数据进行加密和解密。
通过使用二进制可执行文件964,可以将第一和/或第二版神经网络模型的细节保密。以这种方式,在从设备的用户不能访问神经网络模型的超参数和/或参数的情况下,从设备可能能够使用数据源930内的数据来训练神经网络模型。这然后提供了另一层安全或私有训练。这可以与加密的通信和存储相结合,以使得从设备920不能访问神经网络模型的任何细节。数据的二进制形式(例如在编译之后)使得难以对神经网络模型的细节进行反向工程。二进制可执行文件964和参数数据962都可以在存储设备946内被加密。以这种方式,在从设备无法对最佳模型进行反向工程的情况下,主设备可以指示该从设备上的训练和尝试不同的实验模型。因此,操作主设备的神经网络技术的提供者可以将其设计保密,而操作从设备的数据的提供者可以将其数据保密。
根据本发明的各个方面,二进制可执行文件964可包括“容器”或“空盒”可执行文件。在这种情况下,二进制可执行文件964可包括编译的计算机程序代码或可执行脚本。这种情况下的二进制可执行文件964可能能够基于加载的数据来实现各种神经网络模型。在某些情况下,二进制可执行文件964可提供多个不同版本的给定神经网络模型的模板,例如,二进制可执行文件964可以使得能够利用不同的超参数和/或参数值来实例化不同版本的给定神经网络模型。可以在第一配置数据中提供特定版本的神经网络模型的超参数和/或参数值。因此,操作主设备的神经网络技术的提供者可以运行许多设计实验,而操作从设备的数据的提供者可以决定何时或多久使其数据可用于这样的实验。
二进制可执行文件964的使用也促进了各示例的分布式训练系统的实现。例如,单个可执行文件可被传送到多个从设备,并且可使那些从设备能够实现各种不同的神经网络配置。如果二进制可执行文件964是“空盒”可执行文件,则它可被分发作为开源计算机程序代码(例如,编译之前的高级计算机程序代码可被发布)。这是可能的,因为“空盒”二进制可执行文件964本身不包含私有数据或机密数据。相反,这是经由(加密的)第一配置数据980单独(且安全地)提供的。这还有助于允许从设备审核正在实例化至少第二版神经网络模型的计算机程序代码以及检查二进制可执行文件964是否不包括恶意程序代码(例如,对高级代码的编译版本的哈希值的检查可指示篡改)。这是有用的,因为从设备可能正在与主设备交换数据,并且可能需要证明从设备未被受骗交换机密数据或私有数据。在梯度被交换的情况下,这些可能不被加密,以证明机密数据或私有数据并未正在被传输,例如,这些可以被从设备或第三方拦截,但是它们可以是不提供与数据源930中的数据有关的重要信息的浮点值或整数的形式。根据安全设置,在模型参数被交换的情况下,这些可以是可被从设备解密的,以证明没有私有数据正在被传输(例如,类似于梯度,它们可包括浮点值)。还可以通过检查主设备与从设备之间的网络流量的带宽来验证数据隐私;梯度和参数数据两者通常将比数据源930内的数据小几个数量级。
在某些示例中,可以根据预定义的标准来定义神经网络模型的超参数,并且可以针对该标准专门设计二进制可执行文件。这可有助于使主设备和从设备之间的数据交换最小化,这可以加速训练迭代。第一和第二配置数据可以简单地由一个或多个固定大小的文件(例如一个或多个固定大小的“.npy”文件)组成。
在一种情况下,二进制代码966可以由至少一个处理器942执行以执行许多操作。这些可包括:经由网络接口948,从主设备接收神经网络模型的第一配置数据980;使用第一配置数据980来实例化第二版神经网络模型;执行训练操作以使用经由存储接口950获得的来自数据源930的数据来训练第二版神经网络模型;基于训练操作来更新存储设备946中的参数数据962;以及基于由训练操作产生的数据,经由网络接口948输出神经网络模型的第二配置数据990,其中主设备被配置为使用第二配置数据990来更新第一版神经网络模型的参数数据。
尽管已经参考二进制可执行文件描述了图9的实施例,但是本文描述的示例的其他实现可使用替代方法,诸如分布式客户端-服务器编程框架。
尽管图9的实施例示出了从设备920,但是可以以类似的方式实现主设备。例如,主设备可包括类似的一组处理器、存储器、存储设备和网络接口。存储设备可存储第一版神经网络模型的参数数据,并且存储器可存储被配置为实现分布式训练操作的计算机程序代码,该计算机程序代码要么为来自二进制可执行文件的二进制代码的形式,要么为其他可执行计算机程序代码的形式。主设备可以使用网络接口与一个或多个从设备进行通信。主设备的至少一个处理器可被配置为执行在存储器中存储的计算机程序代码以执行一个或多个操作。这些操作可包括:基于第一版神经网络模型,生成神经网络模型的第一配置数据;经由网络接口将第一配置数据发送到从设备920;经由网络接口从从设备接收神经网络模型的第二配置数据990;以及基于第二配置数据来更新第一版神经网络模型的参数数据。可以经由在非暂时性计算机可读存储介质内存储的指令(即计算机程序代码)来定义主设备和从设备中的一者或多者的这些操作。
分布式训练的方法
现在参考图10和图11,示出了根据本发明的用于神经网络模型的分布式训练的各个方面的过程1000和过程1100。图10示出了可以在从设备处执行的用于训练神经网络模型的过程1000。例如,过程1000可以由从设备120、220、320、620、720等中的任何一个来实现。在步骤1005,该过程包括在从设备处从主设备接收神经网络模型的第一配置数据。主设备如本文所述可以远离从设备,并且主设备与第一版神经网络模型相关联。在步骤1010,从设备使用第一配置数据来实例化第二版神经网络模型。如本文所述,该第二版本可包括第一版神经网络模型的副本和/或针对从设备设计的神经网络模型的版本。在步骤1015,从设备使用来自第一数据源的数据来训练第二版神经网络模型。如本文所述,主设备可能无法访问第一数据源。在步骤1020,从设备基于训练后的第二版神经网络模型来输出神经网络模型的第二配置数据。主设备然后能够使用第二配置数据来更新第一版神经网络模型的参数。
在一种情况下,步骤1010处的实例化包括在从设备处将第二版神经网络模型实例化为学生模型以及在从设备处将第一版神经网络模型实例化为教师模型。在这种情况下,训练包括在从设备处使用教师模型来训练学生模型。第二配置数据然后可包括训练后的学生模型的参数。该方法在图4A和图4B中示出。在这种情况下,第一配置数据可包括第一版神经网络模型的参数和第二版神经网络模型的神经网络架构定义。神经网络架构可以定义第二版神经网络模型的结构,诸如层和/或节点的数量和类型。参数可包括如上所述的权重和/或偏置值。可以至少使用第一版神经网络模型的参数来实例化学生模型和教师模型,以使得第二版神经网络模型包括第一版神经网络模型的副本。在训练期间,教师模型的参数是固定的,并且学生模型的参数是可训练的。
在另一种情况下,第一配置数据包括第一版神经网络模型的参数,并且第二版神经网络包括使用第一版神经网络模型的参数实例化的第一版神经网络模型的可训练副本。在这种情况下,第二配置数据可包括在训练期间生成的梯度数据。该方法在图6中示出。
该方法可包括在从设备处加载二进制可执行文件。例如,该方法在图9中示出。该方法然后可包括使用从设备的至少一个处理器来执行二进制可执行文件以至少实现实例化、训练和输出步骤。在某些情况下,二进制可执行文件包括第一配置数据。
现在参考图11,示出了可以在主设备处实现的用于训练神经网络模型的方法1100。方法1100可以与图10的方法1000一起实现。
在步骤1105,该方法包括在主设备处基于第一版神经网络模型生成神经网络模型的第一配置数据。这可包括封装神经网络模型的一组参数,并且在某些情况下,还可包括封装一组超参数值。在步骤1110,将第一配置数据从主设备发送到从设备。在主设备处的步骤1110之后,从设备可以执行图10的方法1000。
在图11的步骤1115,主设备从从设备接收神经网络模型的第二配置数据。这可包括在图10的步骤1020处输出的第二配置数据。第二配置数据基于在从设备处实例化的第二版神经网络模型,并且是在来自第一数据源的数据上进行训练之后在从设备处生成的。在步骤1120,主设备基于第二配置数据来更新第一版神经网络模型的参数。这可以如参考先前示例所描述的那样执行。
在一种情况下,第二配置数据包括训练后的第二版神经网络模型的参数。在这种情况下,步骤1120处的更新可包括:使用第二配置数据将第二版神经网络模型实例化为教师模型,将第一版神经网络模型实例化为学生模型,以及使用教师模型来训练学生模型以更新第一版神经网络模型的参数。参考图5描述该方法。在这种情况下,接收可包括从多个从设备接收第二配置数据,例如,如在图7或图8A至图8C中示出。步骤1120处的更新然后可包括:将第二版神经网络模型的集合体实例化为教师模型的集合体,以及使用教师模型的集合体来训练学生模型。这在图5中由虚线示出。
在另一种情况下,第一配置数据包括第一版神经网络模型的参数,并且第二配置数据包括梯度数据,并且更新包括使用梯度数据来更新第一版神经网络模型的参数。这在图6中示出。
在一种情况下,该方法可包括在主设备处使用来自第二数据源的数据来训练第一版神经网络模型,第二数据源无法被从设备访问。这在图2中示出。
可以迭代上述方法,以调整第一和第二版神经网络模型的参数,例如以迭代地改进两个版本的神经网络模型。这可以利用位于一个或两个设备处的数据源来执行。
序列示例
现在参考图12,序列图1200示出了根据本发明的各个方面和实施例的分布式训练的示例方法。示出了五个示例实体:主设备1202,从设备1204,第一版神经网络模型1212,第二版神经网络模型1214以及数据源1216。虚线示出了组件之间的根据本发明的一些实施例和方面的分离。主设备1202可以访问第一版神经网络模型1212的参数和实例化,而从设备1204可以访问第二版神经网络模型1214的参数和实例化以及数据源1216内的数据。主设备1202和从设备1204可以按照先前示例中的任何一个来配置。
如在1220处所示,序列以第一版神经网络模型1212处于第一状态M1开始。第一状态M1可以是神经网络模型的权重和偏置值的特定配置。这样,第一状态可以与第一版神经网络模型的第一实例化有关。在框1222,主设备1202使用第一状态M1来生成第一配置数据CD1。这可包括获得第一状态M1的权重和偏置值的特定配置,以及将其封装以供发送。在框1224,第一配置数据CD1被发送到从设备1204,并且在框1226处被从设备1204接收。在收到之后,如框1228所指示,从设备1204实例化第二版神经网络模型。如在先前示例中描述的,实例化的第二版神经网络模型可包括神经网络模型的副本和/或神经网络配置,该神经网络配置实现神经网络模型但是与第一版神经网络模型不同。在框1232,从设备1204训练实例化的第二版神经网络模型。如框1234所示,这包括访问在数据源1216上存储的训练数据。训练将实例化的第二版神经网络模型从第一状态M2更新为更新后的状态M’2。这在框1236中示出。这可包括调整权重和偏置值以生成一组更新后的值。在训练完成之后,如框1238所示,从设备1204使用实例化的第二版神经网络模型的更新后的状态M’2来在框1240处生成第二配置数据。在框1242,第二配置数据被发送到主设备1202,其中其在框1244处被接收。在框1246,主设备1202然后使用第二配置数据的内容来更新第一版神经网络模型1212。这可包括更新如第一状态M1所示的神经网络模型的权重和偏置值的特定配置,以生成如框1248所示的更新状态M’1。因此响应于从设备1204处的训练而用权重和偏置值的修订后的配置来更新主设备1202可访问的第一版神经网络模型1212。可以如参考先前示例所描述的那样执行更新。
其他变体
在以上示例中的某些实施例和方面中,配置数据的交换可以是自动化的。这可以通过在主设备上提供应用编程接口并且然后使可执行的计算机程序代码在上述示例的执行期间对该接口进行调用来执行。在一种情况下,可以将提供给一个或多个从设备的二进制可执行文件配置为对该接口进行调用以实现配置数据交换。可以将该应用编程接口实现为主设备服务器进程的一部分。
在某些实施例和方面中,为了避免过度拟合,由从设备和主设备中的一者或多者处理的数据可被分成批次。每个批次可被在单次迭代中使用,直到所有批次都已被消耗为止。在运行每个时期之前(其中时期与特定的训练时段有关,通常是完成通过数据的预定遍数的一个),可以在批次之间对数据进行随机化(例如,样本的顺序可被搅乱或加扰)。
在语音识别实施例中,神经网络模型可包括声学模型。在这种情况下,从设备可能具有专有语音数据。主设备可具有声学模型训练功能,并且也可具有专有语音数据。在该实施例中,当在从训练数据集上训练神经网络模型的版本时,成本函数或损失函数可以基于单词错误率。对于语音识别应用,从设备可以执行从数据上的音素对齐以及噪声混合或其他形式的音频数据调节。在某些情况下,可以使用前述二进制可执行文件来执行这些预处理操作。这可以减少从设备处的音频处理工程师执行这些任务的需要,并且从设备可以保持相对“哑”(例如,主设备可能属于音频工程实体,但是从设备可能没有音频工程人员)。二进制可执行文件和/或第一配置数据可以使得能够为训练适当地准备训练数据。在某些实施例中,作为第一配置数据的一部分或除了第一配置数据之外,主设备可以将调节数据传送到从设备。对于自动语音识别中的声学模型训练,这可能是特定种类噪声的记录。从设备处的二进制可执行文件可以被配置为将调节数据应用于训练数据。从设备处的二进制可执行文件(或其他处理实体)也可以应用仅从设备可访问的调节数据。这可能是噪声记录,特定的音频失真,或从音频到数字数据的传递函数的其他属性。
在某些实施例中,从设备可以选择在任何时候使用第二版神经网络模型的实例进行推断。推断可以在从设备处执行,或者从设备可将神经网络模型分发到一个或多个本地设备。在某些实施例中,从设备可以安排将第二版神经网络模型并入其他产品或设备,包括嵌入式设备,诸如汽车、家电、移动设备或自动呼叫中心。还可以使用第一版神经网络模型的可用实例在主设备处执行推断。在某些实施例中,训练过程通过特定数量的迭代和时期来运行到完成,以在主设备处创建最终训练后的第一版神经网络模型。
在某些实施例中,主设备处的第一版神经网络模型的实例可用于向包括一个或多个从设备在内的一个或多个设备提供“推断服务”。例如,第一版神经网络模型可以是更大或更准确的模型。它甚至可能太大,以至于无法在合理的计算资源预算内实时执行推断。在其他示例中,主设备可以提供第一版神经网络模型的副本(例如最终的第一配置数据)以供在生产应用(诸如由每个从设备控制实体制造的嵌入式设备)中使用。在其他实施例中,从设备可以例如以受限数据上的训练的形式向主设备提供服务。在这些实施例中,从设备可能不需要最终训练后版本的神经网络模型。
示例实现
本文描述的某些示例可以应用于包括自动语音识别在内的语音处理。本文描述的神经网络模型可以涉及语音处理系统中的声学模型、发音模型和语言模型中的一个或多个(例如,所谓的“语言学模型”)。在这些实施例中,使用分布式受训示例获得的改进可以通过使用从一个或多个设备上的私有语音数据得出的信息来提高语音处理的准确性和鲁棒性。
可以通过在非暂时性计算机可读介质上存储的指令来执行本文所述的某些方法和操作集。非暂时性计算机可读介质存储包括指令在内的代码,这些指令如果被一个或多个计算机执行则将使该计算机执行本文所述的方法的步骤。非暂时性计算机可读介质可包括旋转磁盘、旋转光盘、闪速随机存取存储器(RAM)芯片和其他机械移动或固态的存储介质中的一个或多个。
本文中已经描述了某些实施例,并且将注意到,来自不同示例的不同组件的不同组合可能是可行的。突出的特征被呈现以更好地解释示例;然而,很明显,可以在不修改所描述的这些示例的功能方面的情况下添加、修改和/或省略某些特征。
各种示例是使用人和机器中的任一者或人和机器的组合的行为的方法。方法示例在世界上的出现大多数组成步骤的任何地方都是完整的。一些示例是一个或多个非暂时性计算机可读介质,其被布置为存储用于本文描述的方法的此类指令。无论什么机器保存包括任何必要代码的非暂时性计算机可读介质,都可以实现示例。一些示例可被实现为:诸如半导体芯片之类的物理设备;这样的设备的逻辑或功能行为的硬件描述语言表示;以及一个或多个被布置为存储这样的硬件描述语言表示的非暂时性计算机可读介质。本文中的叙述原理、方面和实施例的描述包含其结构和功能上的等同物。
本领域技术人员将认识到许多可能的修改和变化。修改和变化包括所公开特征的任何相关组合。本文中的叙述原理、方面和示例的描述包含其结构和功能上的等同物。本文中描述为“耦合”或“通信地耦合”的元素具有可通过直接连接或间接连接(其使用一个或多个其他中间元素)实现的有效关系。本文中描述为与另一设备、模块或元件“通信”或“进行通信”的示例包括任何形式的通信或链接。例如,可以使用有线连接、无线协议、近场协议或RFID来建立通信链路。
因此,本发明的范围并不旨在限于本文中示出和描述的示例。而是,本发明的范围和精神由所附权利要求体现。

Claims (29)

1.一种用于训练神经网络模型的分布式系统,该系统包括:
主设备,其包括第一版神经网络模型;和
从设备,其通信地耦合到第一数据源和所述主设备,第一数据源无法被所述主设备访问,
其中,所述从设备远离所述主设备,
其中,所述主设备被配置为基于第一版神经网络模型来输出神经网络模型的第一配置数据,
其中,所述从设备被配置为使用第一配置数据来实例化第二版神经网络模型,
其中,所述从设备被配置为使用来自第一数据源的数据来训练第二版神经网络模型,
其中,所述从设备输出神经网络模型的第二配置数据,并且
其中,所述主设备被配置为使用第二配置数据来更新第一版神经网络模型的参数。
2.如权利要求1所述的分布式系统,其中,所述从设备被配置为使用第一配置数据来将第一版神经网络模型实例化为教师模型并将第二版神经网络模型实例化为学生模型,所述教师模型用于训练所述学生模型。
3.如权利要求1所述的分布式系统,其中,所述主设备被配置为使用第二配置数据来将第二版神经网络模型实例化为教师模型并将第一版神经网络模型实例化为学生模型,所述教师模型用于训练所述学生模型并更新第一版神经网络模型的参数。
4.如权利要求1所述的分布式系统,其中,第一配置数据包括第一版神经网络模型的参数。
5.如权利要求4所述的分布式系统,其中,第二配置数据包括第二版神经网络模型的参数。
6.如权利要求4所述的分布式系统,其中,第二配置数据包括梯度数据。
7.如权利要求1所述的分布式系统,其中,所述主设备通信地耦合到第一网络并且所述从设备通信地耦合到第二网络,第一网络和第二网络是异构的并且通过一个或多个不可信设备而通信地耦合。
8.如权利要求1所述的分布式系统,还包括多个从设备,每个从设备与所述主设备通信,其中,所述主设备被配置为使用由所述多个从设备中的每个从设备输出的第二配置数据来更新第一版神经网络模型的参数。
9.如权利要求8所述的分布式系统,其中,所述主设备被配置为使用由所述多个从设备中的每个从设备输出的第二配置数据来实例化第二版神经网络模型的集合体并使用该集合体来训练第一版神经网络模型。
10.如权利要求8所述的分布式系统,其中,所述主设备被配置为使用从由所述多个从设备中的每个从设备输出的第二配置数据得出的聚合数据来更新第一版神经网络模型的参数。
11.如权利要求8所述的分布式系统,其中,所述主设备和所述多个从设备根据定义的图模型通信地耦合。
12.如权利要求8所述的分布式系统,其中,第二配置数据包括来自所述多个从设备中的每个从设备的梯度数据,并且所述主设备被配置为比较来自所述多个从设备中的每个从设备的梯度数据以基于该比较来选择性地更新第一版神经网络模型的参数。
13.如权利要求1所述的分布式系统,其中,所述主设备通信地耦合到无法被所述从设备访问的第二数据源,并且所述主设备被配置为使用来自第二数据源的数据来训练第一版神经网络模型。
14.如权利要求1所述的分布式系统,其中,所述从设备包括至少一个处理器以执行在存储器中存储的二进制可执行文件,并且所执行的二进制可执行文件被配置为独立于所述主设备来加载第一配置数据和实例化第二版神经网络模型。
15.如权利要求14所述的分布式系统,其中,所执行的二进制可执行文件被配置为输出第二配置数据并控制向所述主设备的发送。
16.如权利要求1所述的分布式系统,其中,神经网络模型形成语音识别流水线的一部分,并且第一数据源存储音频数据。
17.如权利要求16所述的分布式系统,其中,所述从设备被配置为利用音频噪声来增强来自第一数据源的音频数据。
18.如权利要求1所述的分布式系统,其中,第一配置数据包括神经网络模型的超参数和第一版神经网络模型的参数。
19.如权利要求18所述的分布式系统,其中,所述超参数包括以下各项中的一个或多个:
神经网络模型的架构定义;
神经网络模型中的一层或更多层的节点数量;
一组节点定义,其包括节点类型和节点连接性中的至少一个;
一组激活函数定义;和
至少一个成本函数定义。
20.如权利要求18所述的分布式系统,其中,所述参数包括以下各项中的至少一个:
神经网络模型的节点之间的至少一个连接的权重值;
神经网络模型的至少一个输入的权重值;
神经网络模型中的至少一个递归路径的权重值;和
神经网络模型的至少一个节点的偏置值。
21.如权利要求1所述的分布式系统,其中,第二配置数据包括梯度数据,并且所述主设备被配置为基于第二配置数据的龄期对所述梯度数据进行加权。
22.如权利要求1所述的分布式系统,其中,第二配置数据包括梯度数据,并且所述主设备被配置为将来自第二配置数据的梯度数据与使用第一版神经网络模型确定的梯度数据进行比较,并被配置为基于该比较来选择性地更新第一版神经网络模型的参数。
23.一种训练神经网络模型的方法,该方法包括:
在主设备处基于第一版神经网络模型来生成神经网络模型的第一配置数据;
从所述主设备向从设备发送第一配置数据,所述从设备远离所述主设备并且可以访问无法被所述主设备访问的第一数据源;
在所述主设备处从所述从设备接收神经网络模型的第二配置数据,第二配置数据基于在所述从设备处实例化的第二版神经网络模型,第二配置数据是在来自第一数据源的数据上进行训练之后在所述从设备处生成的;和
基于第二配置数据来更新第一版神经网络模型的参数。
24.如权利要求23所述的方法,其中,第二配置数据包括在训练之后的第二版神经网络模型的参数,并且所述更新包括:
使用第二配置数据将第二版神经网络模型实例化为教师模型;
将第一版神经网络模型实例化为学生模型;和
使用所述教师模型来训练所述学生模型以更新第一版神经网络模型的参数。
25.如权利要求23所述的方法,还包括:
从多个从设备接收第二配置数据;
将第二版神经网络模型的集合体实例化为教师模型的集合体;和
使用所述教师模型的集合体来训练所述学生模型。
26.如权利要求23所述的方法,其中,第一配置数据包括第一版神经网络模型的参数并且第二配置数据包括梯度数据,并且所述方法还包括:
使用所述梯度数据来更新第一版神经网络模型的参数。
27.如权利要求23所述的方法,还包括在所述主设备处使用来自第二数据源的数据来训练第一版神经网络模型,第二数据源无法被所述从设备访问。
28.一种主设备,包括:
存储设备,用于存储第一版神经网络模型的参数数据;
存储器,用于存储计算机程序代码,该计算机程序代码被配置为实现分布式训练操作;
网络接口,用于与从设备通信,所述从设备远离所述主设备;和
至少一个处理器,其被配置为执行在存储器中存储的计算机程序代码以执行以下操作:
基于第一版神经网络模型来生成神经网络模型的第一配置数据;
经由所述网络接口将第一配置数据发送到所述从设备,所述从设备能够访问无法被所述主设备访问的第一数据源;
经由所述网络接口从所述从设备接收神经网络模型的第二配置数据,第二配置数据基于使用第一配置数据在所述从设备处实例化的第二版神经网络模型,第二配置数据是在来自第一数据源的数据上进行训练之后在所述从设备处生成的;和
基于第二配置数据来更新第一版神经网络模型的参数数据。
29.一种非暂时性计算机可读存储介质,其存储指令,所述指令当被至少一个处理器执行时使所述至少一个处理器执行以下操作:
基于第一版神经网络模型来生成神经网络模型的第一配置数据;
将第一配置数据发送到从设备,所述从设备能够访问无法被所述至少一个处理器访问的第一数据源;
从所述从设备接收神经网络模型的第二配置数据,第二配置数据基于第二版神经网络模型,第二版神经网络模型是基于第一配置数据在所述从设备处实例化的,第二配置数据是在来自第一数据源的数据上进行训练之后在所述从设备处生成的;和
基于第二配置数据来更新第一版神经网络模型的参数数据。
CN202011464843.9A 2019-12-16 2020-12-14 用于神经网络模型的分布式训练的系统和方法 Pending CN113066484A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/716,461 US20210182660A1 (en) 2019-12-16 2019-12-16 Distributed training of neural network models
US16/716,461 2019-12-16

Publications (1)

Publication Number Publication Date
CN113066484A true CN113066484A (zh) 2021-07-02

Family

ID=73855092

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011464843.9A Pending CN113066484A (zh) 2019-12-16 2020-12-14 用于神经网络模型的分布式训练的系统和方法

Country Status (3)

Country Link
US (1) US20210182660A1 (zh)
EP (1) EP3855365A1 (zh)
CN (1) CN113066484A (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11475327B2 (en) * 2019-03-12 2022-10-18 Swampfox Technologies, Inc. Apparatus and method for multivariate prediction of contact center metrics using machine learning
KR20200128938A (ko) * 2019-05-07 2020-11-17 삼성전자주식회사 모델 학습 방법 및 장치
US20210383200A1 (en) 2020-06-05 2021-12-09 PassiveLogic, Inc. Neural Network Methods for Defining System Topology
US11824977B2 (en) * 2020-07-28 2023-11-21 Arm Limited Data processing system and method
US11553618B2 (en) 2020-08-26 2023-01-10 PassiveLogic, Inc. Methods and systems of building automation state load and user preference via network systems activity
US11532313B2 (en) * 2020-08-27 2022-12-20 Google Llc Selectively storing, with multiple user accounts and/or to a shared assistant device: speech recognition biasing, NLU biasing, and/or other data
US20220155783A1 (en) * 2020-11-18 2022-05-19 Dus Operating Inc. Use of neural networks in control systems
WO2022116095A1 (en) * 2020-12-03 2022-06-09 Nvidia Corporation Distributed neural network training system
EP4200736A4 (en) * 2020-12-18 2024-01-24 Samsung Electronics Co., Ltd. METHOD FOR PREVENTING DATA LEAKS TO MACHINE LEARNING ENGINES AVAILABLE IN AN ELECTRONIC DEVICE
US11785024B2 (en) * 2021-03-22 2023-10-10 University Of South Florida Deploying neural-trojan-resistant convolutional neural networks
US20220375461A1 (en) * 2021-05-20 2022-11-24 Nice Ltd. System and method for voice biometrics authentication
CN113703870A (zh) * 2021-08-31 2021-11-26 平安普惠企业管理有限公司 配置文件的检查方法、装置、设备及存储介质
US11934556B2 (en) * 2021-09-29 2024-03-19 Paypal, Inc. Identifying sensitive content in electronic files
KR20230063247A (ko) * 2021-11-01 2023-05-09 삼성전자주식회사 결함 복구 시스템
CN116644803B (zh) * 2023-07-27 2023-11-03 浪潮电子信息产业股份有限公司 分布式协同训练控制方法、系统、装置、设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11443235B2 (en) * 2019-11-14 2022-09-13 International Business Machines Corporation Identifying optimal weights to improve prediction accuracy in machine learning techniques

Also Published As

Publication number Publication date
EP3855365A1 (en) 2021-07-28
US20210182660A1 (en) 2021-06-17

Similar Documents

Publication Publication Date Title
CN113066484A (zh) 用于神经网络模型的分布式训练的系统和方法
US11551083B2 (en) Neural network training from private data
Goodfellow et al. Generative adversarial networks
JP7470476B2 (ja) 蒸留を用いたそれぞれのターゲット・クラスを有するモデルの統合
US20200265301A1 (en) Incremental training of machine learning tools
US11157384B2 (en) Methods, systems, articles of manufacture and apparatus for code review assistance for dynamically typed languages
US11599750B2 (en) Edge devices utilizing personalized machine learning and methods of operating the same
US20200082272A1 (en) Enhancing Data Privacy in Remote Deep Learning Services
US20220100963A1 (en) Event extraction from documents with co-reference
KR102354592B1 (ko) 스트리밍 데이터 기반 영상 편집점 추천 방법, 서버 및 컴퓨터프로그램
US11003910B2 (en) Data labeling for deep-learning models
US20210110264A1 (en) Methods and apparatus to facilitate efficient knowledge sharing among neural networks
KR102244448B1 (ko) 전문 번역 서비스 플랫폼을 제공하기 위한 방법
WO2023005386A1 (zh) 模型训练方法和装置
WO2021189960A1 (zh) 对抗网络训练、医疗数据补充方法、装置、设备及介质
US20220100967A1 (en) Lifecycle management for customized natural language processing
CN114443899A (zh) 视频分类方法、装置、设备及介质
CN115914148A (zh) 具有两侧建模的对话智能体
KR102354593B1 (ko) 사용자 데이터베이스 구축과 머신러닝을 통한 영상 편집 타입 구분 및 편집점 추천 알고리즘 고도화 방법, 서버 및 컴퓨터프로그램
KR102371487B1 (ko) 명목형 데이터를 포함하는 데이터를 기반으로 하는 학습 방법 및 장치
CN116610218A (zh) Ai数字人的交互方法、装置及系统
Sunitha et al. Political optimizer-based automated machine learning for skin lesion data
KR102334666B1 (ko) 얼굴 이미지 생성 방법
CN112861474B (zh) 一种信息标注方法、装置、设备及计算机可读存储介质
KR102303626B1 (ko) 단일 이미지에 기반하여 비디오 데이터를 생성하기 위한 방법 및 컴퓨팅 장치

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