CN106062786A - 用于训练神经网络的计算系统 - Google Patents

用于训练神经网络的计算系统 Download PDF

Info

Publication number
CN106062786A
CN106062786A CN201480068322.8A CN201480068322A CN106062786A CN 106062786 A CN106062786 A CN 106062786A CN 201480068322 A CN201480068322 A CN 201480068322A CN 106062786 A CN106062786 A CN 106062786A
Authority
CN
China
Prior art keywords
nodes
node
data
dnn
training
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.)
Granted
Application number
CN201480068322.8A
Other languages
English (en)
Other versions
CN106062786B (zh
Inventor
J·兰福德
G·李
F·T·B·赛德
J·德罗普
D·俞
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Priority to CN201911225718.XA priority Critical patent/CN110992935B/zh
Publication of CN106062786A publication Critical patent/CN106062786A/zh
Application granted granted Critical
Publication of CN106062786B publication Critical patent/CN106062786B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • 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
    • 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/04Architecture, e.g. interconnection topology
    • G06N3/0495Quantised networks; Sparse networks; Compressed networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Probability & Statistics with Applications (AREA)
  • Algebra (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Machine Translation (AREA)

Abstract

各技术和构造可减少确定优化问题(如神经网络的训练)的解所需的时间。可由并行地操作的多个节点确定对计算模型的修改。经量化的修改值可以在各节点之间传送以减少要传送的数据量。经量化的值可小至每一者一位。量化‑误差值可被存储并用于量化后续修改。各节点可并行地操作且使计算和数据传输重叠以进一步减少确定解所需的时间。经量化的值可被分区且每一节点可合计对应分区的值。

Description

用于训练神经网络的计算系统
背景
深神经网络对各种各样的识别问题而言是有用的。例如,使用上下文相关的深神经网络隐马尔科夫模型(CD-DNN-HMM)来用于语音识别或语音-到-文本转录的声学建模技术胜过使用常规基于高斯混合的HMM的声学建模技术。与基于高斯混合的HMM不同,CD-DNN-HMM使用具有多个隐藏层的人工神经网络(“深神经网络”)来直接建模所绑定的上下文相关状态。然而,训练CD-DNN-HMM来用于语音识别比训练基于高斯混合的HMM更加耗时。深神经网络与其他办法相比的较大的训练时间量是将深神经网络用于识别问题(例如,语音识别)的主要障碍。
已作出尝试来通过使用并行化(例如,跨多个服务器独立地处理语言话音)改进常规深神经网络的训练。在一批数以亿计的帧结束后,来自服务器的部分统计数据可被合并,且经更新的模型可被分发给各服务器。然而,与数以亿计的帧相对应的经更新的模型的大小通常超过可用计算资源的容量。
概述
本公开描述了用于在数学上优化例如用于训练深神经网络(DNN)的计算模型的解的系统、方法以及计算机可读介质。在至少一个示例中,多个节点中的每一者确定计算模型的修改值(例如,使用训练数据和DNN模型来计算出的梯度值)。各节点量化修改值并将经量化的值传输给这些节点中的其他节点。每一节点中的更新模块根据接收到的经量化的值来修改计算模型。本文描述的各示例技术确定DNN的梯度矩阵,使用所存储的误差矩阵来量化梯度矩阵,更新所存储的误差矩阵,以及与其他节点交换经量化的梯度矩阵。
提供本概述以便以简化的形式介绍以下在详细描述中进一步描述的一些概念。本发明内容不旨在标识所要求保护的主题的关键或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。例如术语“技术”可指代上述上下文和通篇文档中所准许的系统、方法、计算机可读指令、模块、算法、硬件逻辑或操作。
附图简述
参考附图来描述具体实施方式。在附图中,附图标记最左边的数字标识该附图标记首次出现的附图。不同附图中的相同参考标记指示相似或相同的项。
图1是描绘了用于实现在此描述的深神经网络的训练的示例环境的框图。
图2是示出用于实现使用算法来训练深神经网络的训练引擎的示例方案的框图。
图3是描绘了根据在此描述的各示例被配置成参与神经网络训练的示例计算设备的框图。
图4是示出训练深神经网络的示例过程的流程图。
图5是示出用于在各节点之间交换数据以训练深神经网络的示例过程的数据流图。
图6是示出用于在各节点之间交换数据以训练深神经网络的示例过程的流程图。
详细描述
概览
本文描述的示例提供了用于通过使用包括例如处理单元在内的资源来更高效地交换数据以改进神经网络(例如,DNN)的训练速度的技术和构造。可使用专用的编程或用指定指令来编程以实现指定功能的硬件来实现这样的资源。例如,资源可具有不同的执行模型,诸如在用于图形处理单元(GPU)和计算机中央处理单元(CPU)的情况下。配置成用于训练深神经网络的资源可以使用数据并行架构来提供DNN的快速训练。这可极大地扩展DNN可在其中服务的使用领域,且可准许通过增加可在模型开发期间运行的模型调节周期的数量来更快速地改进基于DNN的系统。在一些示例中,DNN可被快速地训练来为不能打字的人将语音转换成文本,或为视觉受损者将文本转换成语音。在各示例中,DNN可被训练以促进用户将信息或查询输入不具有键盘或小键盘的移动设备。
本文描述的是用于训练神经网络(包括深神经网络,本文中称为DNN)以加速在执行诸如语音识别、语音合成、回归分析或其他数据拟合之类的模式识别和数据分析中使用的DNN的训练的增强技术。在例如被训练用于在此所述的语音识别或其他使用情况的DNN的各示例中,DNN可以是上下文相关的DNN或上下文无关的DNN。DNN可具有至少两个隐藏层。使用本文的技术训练的神经网络可具有一个隐藏层、两个隐藏层、或两个以上隐藏层。在一示例中,例如对于语音识别系统是有用的,本文描述的神经网络或DNN具有五和七之间的层数。除非另外明确指明,本文描述的涉及DNN的技术还适用于具有少于两个隐藏层的神经网络。在某些情况中,诸如用于语音识别,上下文相关的DNN可连同隐形马尔科夫模型(HMM)一起被使用。在这些情况中,上下文相关的DNN和HMM的组合被称为上下文相关的DNN-HMM(CD-DNN-HMM)。从而,本文所述的用于训练DNN的技术可被应用于训练CD-DNN-HMM。本文描述的技术可包括使用算法来将DNN的训练跨多个处理单元(例如,多核处理器的各核或多个通用图形处理单元(GPGPU))并行化。相应地,可在多个处理单元上并行地处理DNN的多个层。
诸如DNN等神经网络一般是用基于小批的随机梯度下降(SGD)来训练的。SGD可以沿三个维度(模型参数、层、以及数据(以及它们的组合))并行化。在先前方案中实现的所有三个并行化技术遭受非常高的带宽成本,这限制来自并行化的加速。例如,数据并行化需要各计算节点交换并合并数以亿计的模型参数,这可比相应的并行化计算显著地花费更多时间。结果,在这些方案中仅获得很小(如果有的话)加速。
本文的技术可包括对模型条纹化(model striping)的使用。在模型条纹化中,DNN的输出层或任何隐藏DNN层可以跨多个处理单元被并行处理。
这些技术可减少为特定目的(如语音识别)而训练DNN所使用的时间量。减少的训练时间可导致在执行语音-文本转录或文本-语音合成时DNN的实现和使用的增加。
在一些示例中,本文描述的用于DNN训练的算法可以在计算设备上执行,如智能电话、平板、台式计算机、服务器、服务器刀片、超级计算机,等等。所得的DNN可被用在这样的计算设备上。所得的DNN可被用在具有一个或多个输入设备(如物理键盘、软键盘、触摸屏、触摸垫、话筒、相机等)的计算设备上,以向设备提供优化功能(如语音识别、图像识别和搜索、以及语音合成)。
根据各示例的用于训练DNN以用于数据分析的各示例、场景和技术的示例在以下对附图的描述中被更加详细地呈现。
说明性环境
图1示出深神经网络(DNN)训练系统的各示例可在其中操作或诸如示例DNN训练方法等数学优化方法可在其中执行的示例环境100。在一些示例中,环境100的各设备或组件包括可经由一个或多个网络106彼此通信的计算设备102(1)-102(N)(在本文单独地或共同地用附图标记102来称呼)和计算设备104(1)-104(K)(在本文中单独地或共同地用附图标记104来称呼)。在一些示例中,N=K;在其他示例中,N>K或N<K。在一些示例中,计算设备102和104可经由网络106与外部设备通信。
例如,(诸)网络106可包括诸如因特网之类的公共网络、诸如机构或个人内联网的专用网络,或专用和公共网络的某种组合。(诸)网络106还可包括任何类型的有线或无线网络,包括但不限于局域网(LAN)、广域网(WAN)、卫星网络、有线网络、Wi-Fi网络、WiMAX网络、移动通信网络(例如3G、4G等等)或它们的任意组合。(诸)网络106可利用通信协议,包括基于分组的或基于数据报的协议,如网际协议(IP)、传输控制协议(TCP)、用户数据报协议(UDP)、其它类型的协议、或它们的组合。而且,(诸)网络106还可包括便于网络通信或形成网络的硬件基础的若干设备,如交换机、路由器、网关、接入点、防火墙、基站、中继器、主干设备等等。网络106还可包括促进使用各种拓扑结构的总线协议的计算设备102、104之间的通信,例如跨接开关、INFINIBAND开关或FIBRE CHANNEL(光纤通道)开关或中枢。
在一些示例中,(诸)网络106可进一步包括能够实现到无线网络的连接的设备,诸如无线接入点(WAP)。各示例支持通过WAP的连接性,WAP经由各个电磁频率(例如,无线电频率)来发送和接收数据,包括支持电气和电子工程师协会(IEEE)802.11标准(例如,802.11g、802.11n等)、其他标准(如蓝牙)或它们中的多者或组合的WAP。
在各示例中,计算设备102(1)-102(N)或104(1)-102(K)中的一些能在集群或编组的配置中操作,以例如共享资源、平衡负载、提高性能、或提供故障恢复支持或冗余性。计算设备102、104可属于各种各样的类别或分类的设备,诸如传统的客户机类型或服务器类型的设备、台式计算机类型设备、移动类型设备、专用类型设备、嵌入式类型设备和/或可穿戴类型设备。由此,虽然被示为例如台式计算机、膝上型计算机、平板计算机或蜂窝电话,但是计算设备102、104可包括多种多样的设备类型且不限于特定类型的设备。计算设备102可以表示但不限于台式计算机、服务器计算机、web服务器计算机、个人计算机、移动计算机、膝上型计算机、平板计算机、可穿戴接收机、植入式计算设备、电信设备、车载接收机、启用网络的电视机、瘦客户机、终端、个人数据助理(PDA)、游戏控制台、游戏设备、该装置、媒体播放器、个人录像机(PVR)、机顶盒、相机、计算设备中包括的集成组件、电器、计算机导航类客户端计算设备、基于卫星的导航系统设备(包括全球定位系统(GPS)设备和其他基于卫星的导航系统设备)、电信设备(如移动电话、平板计算机、移动电话-平板混合设备、个人数据助理(PDA))、或配置成参与本文描述的DNN训练或操作的其他计算设备。在至少一个示例中,计算设备102包括被配置成训练DNN的服务器和高性能计算机。在至少一个示例中,计算设备104包括被配置成训练DNN例如以响应于来自话筒的语音输入提供文本数据的膝上型计算机、平板计算机、智能电话、家用台式计算机、或其他计算设备。
计算设备102、104可包括在插页108处所示的各组件。计算设备102、104可包括具有诸如经由总线114可操作地连接到一个或多个计算机可读介质112的一个或多个处理单元110的任何计算设备,总线112在一些实例中可包括系统总线、数据总线、地址总线、PCI总线、Mini-PCI总线以及任何各种本地、外围和/或独立总线中的一者或多者、或它们的组合。在至少一个示例中,多个处理单元110可通过内部接口总线(如PCIe)(作为网络106的替换或补充)来交换数据。存储在计算机可读介质112上的可执行指令可包括例如操作系统116、DNN训练引擎118、DNN操作引擎120以及可由处理单元110加载并执行的其他模块、程序或应用。在未示出的示例中,计算设备102、104中的一者中的处理单元110中的一者或多者可例如经由通信接口122和网络106可操作地连接到计算设备102、104中的不同一者中的计算机可读介质112。例如,用于执行本文各DNN训练步骤的程序代码可以例如经由网络106从服务器(例如,计算设备102(1))下载到客户机(例如,计算设备104(K)),且由计算设备104(K)中的一个或多个处理单元110来执行。在一示例中,计算设备102(1)-102(N)包括DNN训练引擎118,而计算设备104(1)-104(K)包括DNN操作引擎120。
处理单元110可以是或可包括一个或多个单核处理器、多核处理器、中央处理单元(CPU)、图形处理单元(GPU)、通用图形处理单元(GPGPU)或例如经由来自模块或API的编程来配置以执行本文描述的功能的硬件逻辑组件(诸如加速器)。作为示例而非限制,可被使用在处理单元110中或被用作处理单元126的硬件逻辑组件的说明性类型包括现场可编程门阵列(FPGA)、程序专用的集成电路(ASIC)、程序专用的标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑器件(CPLD)、以及数字信号处理器(DSP)。例如,加速器可表示混合设备,诸如来自包括嵌入在FPGA结构中的CPU核的ALTERA或XILINX的一个。这些或其他硬件逻辑组件可独立地操作,或在一些实例中,可由CPU驱动。
处理单元110可被配置成执行安装在计算设备102上的操作系统116。在一些示例中,处理单元110可以是或包括通用图形处理单元(GPGPU)。在又一些示例中,处理单元110可以是现场可编程门阵列(FPGA)或另一类型的可定制处理器。在各示例中,计算设备102(1)-102(N)中的至少一些可包括多种类型的多个处理单元110。例如,计算设备102(1)中的处理单元110可以是一个或多个GPGPU和一个或多个FPGA的组合。
计算设备102还可包括通过网络106启用计算设备102与DNN训练中涉及的其他联网计算设备102或其他计算设备之间的有线或无线通信的一个或多个通信接口122。这样的通信接口122可包括通过网络发送和接收通信的一个或多个收发机设备,例如网络接口控制器(NIC),如以太网NIC。处理单元110可通过通信接口122来交换数据。这一示例中,通信接口122可以是外围部件互连快速(PCIe)收发机,且网络106可以是PCIe总线。在一些示例中,通信接口122可包括但不限于,用于蜂窝、WI-FI、超宽带(UWB)、蓝牙或卫星传输的收发机。通信接口122可包括有线I/O接口,如以太网接口、串行接口、通用串行总线(USB)接口、INFINIBAND接口或其他有线接口。为了简明起见,这些和其他组件从示出的计算设备102中省略。
尽管在各示例中处理单元110被描述为驻留在计算设备102上且由通信接口122连接,但在一些示例中处理单元110还可驻留在不同计算设备上。在一些示例中,处理单元110可驻留在对应的计算设备102上,且可经由通信接口122通过网络106交换数据。在一些示例中,处理单元110中的至少两者可驻留在不同的计算设备102上。在这样的示例中,同一计算设备102上的多个处理单元110可以使用计算设备102的接口总线114来交换数据,而不同计算设备102上的处理单元110可经由网络106交换数据。
在此描述的计算机可读介质(例如,计算机可读介质112)可包括计算机存储介质和/或通信介质。计算机存储介质可包括有形存储单元,诸如以用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任意方法或技术实现的易失性存储器、非易失性存储器或其他持久或辅助计算机存储介质、可移动和不可移动计算机存储介质。计算机可读介质112或存储器320(图3)可以使计算机存储介质的示例。由此,计算机可读介质112或存储器320包括有形或物理形式的介质,该介质被包括在设备或作为设备的一部分或外置于设备的硬件组件中,该介质包括但不限于:随机存取存储器(RAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、相变存储器(PRAM)、闪存、光盘只读存储器(CD-ROM)、数字多功能盘(DVD)、光卡或其它光存储介质、磁带盒、磁带、磁盘存储、磁卡或其他磁存储设备或介质、固态存储器设备、存储阵列、网络附连存储、存储区域网络、主计算机存储或任何其它存储存储器、存储设备,或可用于存储并维护供计算设备访问的信息的存储介质。
与计算机存储介质相反,通信介质可在诸如载波之类的已调制数据信号或其他传输机制中体现计算机可读指令、数据结构、程序模块或其他数据。如本文所定义的,计算机存储介质不包括通信介质。
在一些示例中,计算机可读介质112可存储能由(诸)处理单元110执行的指令,如上面所讨论的,(诸)处理单元102可表示被结合到计算设备102中的处理单元。计算机可读介质112还可存储可由外部处理单元(诸如由外部CPU或以上讨论的任意类型的外部处理器或加速器)执行的指令。在各示例中,至少一个处理单元110(例如,CPU、GPU或加速器)被结合在计算设备102中,而在一些示例中,至少一个处理单元110(例如,CPU、GPU或加速器中的一者或多者)在计算设备102的外部。
计算设备102的计算机可读介质112可存储操作系统116。在一些示例中,操作系统116不被使用(通常被称为“裸机”配置)。在各示例中,操作系统116可包括使计算设备102能够或引导计算设备102经由各种输入(例如,用户控件、网络或通信接口、或存储器设备)来接收数据并且使用处理单元110来处理数据以生成输出的各组件。操作系统116还可包括呈现输出(例如,在电子显示器上显示图像、在存储器中存储数据、将数据发送给另一电子设备等)的一个或多个组件。操作系统116可使得用户能够使用用户接口(未示出)与训练引擎118的模块交互。附加地,操作系统116可包括执行通常与操作系统相关联的各种功能(例如,存储管理和设备内部管理)的组件。
说明性组件
图2是解说用于实现使用算法来训练深神经网络(DNN)204(或多个DNN,且同样全部)的训练引擎202(如训练引擎118)以及用于实现数据分析引擎206(如DNN操作引擎120)来操作经训练的DNN 208的示例技术200的框图。训练引擎202可以使用计算设备210来训练,在一些情况下,计算设备210可包括计算设备102。数据分析引擎206可以使用诸如计算设备104等计算设备来实现。为清楚起见,实现数据分析引擎206的分开的计算设备在图2中未示出。在至少一个示例中,计算设备210实现训练引擎202和数据分析引擎206两者。计算设备210可包括一个或多个处理单元212(1)-212(N),这可表示以上参考图1讨论的处理单元110(1)-110(N)。在本文中,处理单元212(1)-212(N)单独地或共同地用附图标记212来称呼。在一些示例中,处理单元212可以使以上参考图1讨论的处理单元212,例如GPGPU。处理单元212可以通过总线114或网络106(这两者都在图1中)来交换数据。处理单元212可以执行DNN训练块214的指令,包括DNN 204、训练引擎202、训练数据216、以及训练数据216的各小批(minibatch)218。在下文讨论小批218。
DNN训练可由多个节点以并行方式执行来减少训练所需的时间。贯穿本公开,术语“节点”指的是配置成这样的并行DNN训练布置的一部分的设备或设备的一部分。在至少一个示例中,训练引擎202在多个计算设备210中的每一者上执行,且,每一计算设备210恰好具有一个单核处理单元212。在这一示例中,每一这样的计算设备210是一节点。在一些示例中,训练引擎202在具有多个多核处理单元212的单个计算设备210上执行。在这样的示例中,多核处理单元212的每一核表示一节点。也可使用这些极端之间的其他组合和点。例如,单独的加速器(例如,FPGA)可包括一个或多个节点。在其他示例中,处理单元212的多个核可被配置成一起操作来作为单个节点。
训练引擎202可使用算法220来训练DNN 204以用于执行数据分析,如用于语音识别。DNN 204可以是多层感知器(MLP)。如此,DNN 204可包括底部输入层222(1)和顶层222(L)(整数L>1)以及多个隐藏层,如多个层222(2)-222(3)。在本文中,层222(1)-222(L)单独地或共同地用附图标记222来称呼。在使用上下文相关的DNN的一些示例中,DNN 204可包括总共8层(N=8)。在各示例中,DNN 204可以是上下文相关的DNN或上下文无关的DNN。训练数据216可由算法220用作训练DNN 204的训练数据。训练数据216可以包括包含来自人类说话者的样本语音的集合的语音语料库。例如,语音语料库可包括从美国或加拿大的北美英语的说话者收集的北美英语语音样本。然而,在其他示例中,取决于要被识别的语音的所需语言或用于类似手写识别或图像分类之类的不同应用的其他种类的训练数据,训练数据216可包括其他相应语言(如中文、日语、法语等)的样本语音。训练数据216还可包括与语料库的正确识别或分类答案有关的信息。使用这一信息,可以由DNN 204检测语料库的处理中的误差。这一信息可被用于例如计算相关于例如下式(1)的交叉熵准则的值D的模型参数的梯度。在各示例中,这一信息被用于计算诸如均方误差(“二次成本”)函数等准则的值。训练数据216还可包括第二语料库的测试集合以及该第二语料库的正确分类数据。可在测试集合上评估DNN 204的性能以调整训练,使得DNN 204在训练语料库的限制之外高效地执行。
由算法220所执行的计算可以跨处理单元212来并行化。例如,在后向传播期间,由处理单元212(1)执行的对输入数据的计算可产生第一计算结果。该第一计算结果可被流水线传送到处理单元212(2)用于进一步计算来生成第二计算结果。与第二计算结果的生成同时,处理单元212(1)可能正在处理额外的输入数据以生成第三计算结果。在至少一些示例中,与第二计算结果的生成同时,处理单元212(1)可能正在将第一计算结果的至少一部分传送给另一处理单元212。处理单元212或节点的其他示例的这些并发计算可造成训练DNN204的计算的流水线化,且因此造成由于所产生的计算并行化而造成的计算时间的减少。处理单元212或节点的其他示例的并发计算和通信可造成等待数据到达节点的减少的延迟时间且因此造成总体计算时间的减少。
在各示例中,算法220执行的计算可使用一个或多个技术来增强,如批选择224、量化226、模型条纹化228、交换230、以及数据传送并行化232。因为训练数据216由算法作为输入样本的各小批218来处理,如下所述,所以批选择224可包括根据所选准则来配置输入样本批或小批的大小以平衡计算准确度和执行效率。在一示例中,该大小可被选择成使算法220的计算准确度和执行效率两者最大化。在一示例中,该大小可被选择成使算法220的执行效率最大化,同时提供所选的计算准确度水平。批选择224可作为算法220的一部分来执行或作为与算法220分开的代码模块来执行,如图所示。在至少一个示例中,计算子小批的梯度,如下所述。
此外,DNN 204中的层222(1)-222(L)可由于DNN 204的各层中的单元数的差异而具有不同大小。例如,DNN 204中的最大层可具有比一个或多个最小层的大小大10倍的大小。因此,可能更有效的是将某一多核处理器专用于处理最大层,而在另一多核处理器上处理最小层中的两个或更多个。这样的编组可减少往返延迟并提高效率。
量化226通过降低表示数据值的精确度来减少在各节点之间发送的信息量。算法220可以在各节点之间转移例如神经网络模型的梯度值。梯度值可以是32位IEEE 754浮点值(C语言“float”值)、64位(C“double”)值、或其他位深的值。量化226可包括从一个节点传送梯度值的表示(例如,近似),该表示使用比梯度值少的位,例如少于32位,例如1位。量化226还包括逆操作“重构”,即将在节点处接收到的经量化的值解释成具体32位值或具有比梯度值更高的精确度或位深的其他值,例如一位以上。量化226包括跟踪“误差值”,即表示梯度值与它们的经量化表示之间的差异的值,以及部分基于误差值来确定量化值。这有利地准许通过在连续梯度值上散布量化误差来维持训练过程的准确度。量化226在下文讨论,例如参考式(10)、(11)、(12)、(13)、(14)以及(15)。在下文参考式(10)讨论的示例中,通过在量化之前将先前小批的误差加到当前小批的梯度值来确定量化值。
模型条纹化228是由多个相应处理单元(如处理单元212的多个处理器)对DNN 204的计算模型的各部分的处理。模型条纹化228在本文中也被称为“模型并行化”。
交换230是在各节点之间传输梯度值。这准许以数据并行的方式跨大量节点高效地计算模型更新。这进而减少训练DNN 204所需的流逝时间。在各示例中,交换230结合量化226来执行以在各节点之间交换经量化的梯度值。交换230可包括将各梯度值分区并执行分布式归纳(all-reduce)来将梯度值的更新提供给所有节点。交换230在下文参考图5和6来讨论。
算法220的计算迭代可执行以下步骤:输入数据的前向传播、误差后向传播、以及模型更新。数据传送并行化232可包括将来自算法220的某个计算迭代的输出数据的流传送与该计算迭代中的其他步骤并行化。例如,梯度矩阵可与计算并发地传送。在流传送时间比计算时间短的情况中,这一并行化可减少或消除在执行计算时由于算法220的执行期间各处理单元之间的数据交换造成的时间延迟。在至少一个示例中,前向传播、后向传播以及模型更新步骤是以该次序执行的。
由此,通过使用算法220和训练数据216,训练引擎202可从DNN 204产生经训练的DNN 208。进而,数据分析引擎206可使用经训练的DNN 208来从输入数据236产生输出数据234。在一些示例中,数据分析引擎206可以是语音-文本引擎,它使用采用经训练的上下文相关的DNN-HMM形式的经训练的DNN 208。语音-到-文本引擎可使用经训练的上下文相关的DNN-HMM来以输出文本的形式从采用输入语音形式的输入数据236产生输出数据234。数据分析引擎206可在计算设备210或类似于计算设备210的计算设备上执行。此外,数据分析引擎206可以从计算设备210(它可以是图1的智能电话计算设备104(5))的话筒和音频处理组件接收实况输入数据236。在各示例中,数据分析引擎206可从媒体文件或流接收输入数据236,例如用于媒体文件/流中说出的内容的音频索引的目的。在一些示例中,数据分析引擎206还可以是文本-到-语音引擎(它使用经训练的上下文相关的DNN来基于输入文本(输入数据236)合成输出语音(输出数据234))或手写识别引擎。
在一些示例中,用本文描述的技术(例如,技术224-232)中的一者或多者来增强的算法220可被实现来在展示类似特性的其他情形下产生经训练的上下文无关的DNN 208。以此方式,出于各种数据分析目的,可用合适的训练数据训练上下文无关的形式的DNN 204。所述特性可包括导致延长的处理时间的更大的训练数据集(如大于5000万、13亿等个样本)、其中DNN的每个网络的输出超过阈值(如大于两千、四千等个数据输出)的DNN结构、等等。数据分析目的可包括将经训练的上下文无关的DNN用于诸如图像识别、手写识别、计算机视觉、视频跟踪等之类的活动。
图3是示出可表示计算设备102、104、210的计算设备300的示例组件的说明性示图。计算设备300可实现用于训练DNN 304的训练引擎302,如训练引擎118、202。计算设备300可被用于确定对一个或多个数学优化问题(例如数学最小化问题)的解。例如,通过示例性随机梯度下降(SGD)过程的DNN训练可涉及数学上使例如交叉熵D最小化(式(1))。计算设备300可被配置成包括或充当一个或多个节点。在各示例中,DNN 304可以是上下文相关的DNN或上下文无关的DNN。
计算设备300可包括一个或多个处理单元306,其可表示处理单元110、212。处理单元306可包括例如以上描述的处理单元类型,诸如CPU类型或GPGPU类型处理单元。在各示例中,计算设备300可以是能够主控一个或多个处理单元306来处理数据的服务器、台式计算机、另一类型的电子设备、或上述另一设备类型、或它们中的任何的组合。
计算设备300还可包括通信接口308,其可表示通信接口122。例如,通信接口308可包括诸如NIC等通过网络发送和接收通信的收发机设备,例如如上所述。如此,计算设备300可具有网络能力。例如,计算设备300可以经由一个或多个网络106(如因特网)来与其他电子设备(例如,膝上型计算机、服务器等)交换数据。
计算设备300还可包括一个或多个输入/输出(I/O)接口310,以允许计算设备300与输入/输出设备(未示出)进行通信,输入/输出设备诸如包括外围输入设备(例如,键盘、键区、鼠标、笔、游戏控制器、语音输入设备(如话筒)、话音设备设备、或语音识别设备、触摸输入设备、姿势输入设备(如触摸屏)等)的用户输入设备和包括外围输出设备(例如,视觉显示器、打印机、音频扬声器、触觉输出等)的输出设备。计算设备300可经由与任何其他合适的设备的I/O接口310或使用其他电子/软件交互方法进行通信。这样的通信可被用在例如实现数据分析引擎206的计算设备300上。输入数据236可经由I/O接口310例如从用户或计算机系统(如监视系统)接收,且输出数据234可经由I/O接口310例如向用户或计算机系统(如报告系统)提供。
计算设备300还可包括一个或多个计算机可读介质312,它可表示计算机可读介质112。计算机可读介质312可包括操作系统,例如操作系统116(为清楚起见省略)。在示出的示例中,计算机可读介质312包括数据存储314。在一些示例中,数据存储314包括结构化或未结构化的数据存储,如数据库或数据仓库。在一些示例中,数据存储314包括语料库或具有一个或多个表、阵列、索引、存储的过程等的关系数据库以实现包括例如超文本标记语言(HTML)表格、资源描述框架(RDF)表格、web本体语言(OWL)表格或可扩展标记语言(XML)表格的数据访问。数据存储314可存储数据以用于对计算机可读介质312中所存储的和/或由处理单元和/或加速器306执行的进程、应用、组件、和/或模块的操作。在至少一个示例中,数据存储可以存储训练数据316、DNN 304或其他数学模型、用于训练DNN 304的数据(如临时变量)、经训练的DNN 318、或它们的组合。以上提到的数据中的一些或全部可被存储在一个或多个处理单元306板载上的分开的存储器320上,诸如在CPU类型处理器、GPU类型处理器、FPGA类型加速器、DSP类型加速器或另一加速器板载上的存储器。存储器320可包括例如CPU或GPU高速缓存存储器。
在至少一个示例中,一种系统包括其上具有优化问题的多个模块和计算模型的一个或多个计算机可读介质312。例如,计算设备300的计算机可读介质312可以存储DNN训练引擎302的各模块。计算模型可包括例如神经网络模型,如DNN 304。该系统可包括多个节点,例如计算设备300或在其上执行的节点。节点可包括操作耦合到计算机可读介质312中的至少一者的至少一个处理单元306(例如,处理器或处理器的核)306。处理单元306可被适配成互通信并执行多个模块中的各模块。例如,计算设备300可包括一个或多个节点并经由网络106与其他计算设备300的节点通信。该系统中计算设备300的节点可如上所述地操作以确定优化问题的修改值,例如神经网络训练的梯度。
存储在DNN训练引擎302的计算机可读介质312上的模块可包括一个或多个模块或API,它被示为批选择模块322、量化模块324、更新确定模块326、更新模块328、传送模块330、以及合计模块332。各模块还可包括模型条纹化模块(例如实现模型条纹化228)和数据传送并行化模块(例如,实现数据传送并行化232)(为清楚起见这两者都被省略)。模块的数量可变得更高或更低,且各类型的模块可按各种组合被使用。例如,与示出的模块相关联描述的功能可被组合以由更少数量的模块或API执行或可被划分并由更多数量的模块或API执行。例如,量化模块324和传送模块330可被组合在执行这两个功能的单个模块中。在各示例中,处理单元306可经由总线334访问计算机可读介质312上的模块,该总线232可表示图1的总线114。通信接口308和I/O接口310也可经由总线334与处理单元306通信。
在一示例中,各模块包括配置成确定计算模型的修改值的更新确定模块326。量化模块324可被配置成使用(例如结合)所存储的误差值来量化所确定的修改值并使用所确定的修改值和经量化的修改值来更新所存储的误差值。这可以例如以上参考量化226所描述的那样完成。传送模块330可被配置成将经量化的修改值中的至少一些传送给各节点(例如,处理单元306)中的至少一个其他节点。这可以例如以上参考交换320所描述的那样完成。传送模块330还可被配置成接收来自其他节点的修改值,且合计模块332可被配置成合计数据存储314中的数据与从其他节点接收到的数据。在一个示例中,传送模块330的操作在下文参考图5和6讨论。更新模块328可被配置成根据接收到的经量化的修改值来修改所存储的计算模型。更新模块328可被配置成根据由合计模块332提供的经合计的接收到的修改值来修改所存储的计算模型。这些功能在下文进一步讨论。
更新确定模块326和更新模块328可以使用算法220基于训练数据316(它可以是语音语料库)来训练DNN 304。在出于语音分析目的来训练DNN 304的情况中,DNN 304可以是连同HMM一起被使用的上下文相关的DNN。在一些示例中,DNN可以是上下文无关的DNN。DNN304可以是MLP,MLP将给定观察向量o(例如,音频数据)的类s(例如,三音素(triphone)或senone)的后验概率Ps|o(s|o)建模成对数线性模型的(L+1)个层的栈。根据式(1)、(2)以及(3),给定隐藏层的输入向量vl,前L层(l=0...L-1)对隐藏二元向量hl(隐藏层的输出)的后验概率进行建模,而顶层L对所需类后验进行建模。式(1)、(2)以及(3)使用权重矩阵Wl和偏置向量al,其中分别是hl和zl(vl)第j个分量。
P h | v l ( h l | v l ) = &Pi; j = 1 N l e z j l ( v l ) &CenterDot; h j l e z j l ( v l ) &CenterDot; 1 + e z j l ( v l ) &CenterDot; 0 , 0 &le; l < L - - - ( 1 )
P s | v L ( s | v L ) = e z s L ( v L ) &Sigma; s &prime; e z s &prime; L ( v L ) = softmax s ( z L ( v L ) ) - - - ( 2 )
z l ( v l ) = ( W l ) T v l + a l ; v l = d e f E l - 1 { h l - 1 } - - - ( 3 )
对所有隐藏变量的全速求和(full-out summation)有时是不可行的。在这种情况下,这一总和可通过“平均场近似”来逼近,其中到隐藏层的输入vl被当作前一层的对应输出向量hl的期望值。进一步,为了用于DNN 304,状态后验Ps|o(s|o)可通过除以它们的先验来被转换成缩放的似然性。
因此,更新确定模块326和更新模块328可以根据式(4)中所示的交叉熵准则D来训练DNN 304:
D = &Sigma; t = 1 T c o r p u s logP s | o ( s ( t ) | o ( t ) ) - - - ( 4 )
通过使用图5所示的随机梯度下降(SGD),其中学习速率是ε:
( W l , a l ) &LeftArrow; ( W l , a l ) + &epsiv; &part; D &part; ( W l , a l ) , 0 &le; l &le; L - - - ( 5 )
梯度在式(6)、(7)、(8)以及(9)中示出,具有误差信号el(t),逐分量导数σj′(z)=σj(z)·(1-σj(z)),以及(log softmax)j′(z)=δs(t),j-softmaxj(z),以及Kronecker增量δ。
&part; D &part; W l = &Sigma; t v l ( t ) ( &omega; l ( t ) e l ( t ) ) T ; &part; D &part; a l = &Sigma; t &omega; l ( t ) e l ( t ) - - - ( 6 )
eL(t)=(log softmax)′(zL(vL(t))) (7)
el-1(t)=Wl·ωl(t)·el(t) 0≤l<L (8)
这些等式提供了可在数学上优化交叉熵的公式。
在至少一个示例中,更新确定模块326基于从训练数据316选择的小批218来确定DNN 304的各梯度,例如值,式(6)。更新确定模块被配置成使用随机梯度下降算法来确定修改值。更新模块328基于来自一个或多个节点的梯度(修改值)(式(5))修改例如DNN的所存储的计算模型。量化模块324和传送模块330合作来按需向各节点提供所确定的梯度。以下将结合图5-6讨论传送的各示例。
对DNN 304的训练可通过使用多个节点(例如,多个处理单元306)以并行化方式(即同时执行多个计算)将后向传播的计算流水线化。在各示例中,流水线化不被使用。在一些示例中,节点中的一者或多者在计算的同时进行通信。
收敛(即,训练完成)可通过使用来自训练数据3116的随机采样的帧318的不同大小的各批(本文中称为“小批”)执行随机梯度下降来达成,如以上在式(5)中描述的。小批的大小可受到算法220的并行化计算性质的限制。例如,对DNN 304的模型更新被用于算法220的计算迭代,模型更新涉及处理单元之间的数据交换。然而,跨多个处理单元的模型更新可在算法220的执行期间使用高带宽量。在一个示例中,DNN 304(具有7个隐藏层)可包括数以亿计的参数。在这样的示例中,对相关于DNN 304的样本帧的合理大小的小批的处理可被转换成由节点中的每一者收集和重新分发400兆字节(MB)价值的梯度。
用于训练DNN的单独小批的大小可受两个因素的约束。小批大小的上限约束是模型更新的频率。样本帧128的小批的小批大小越大可导致越少的模型更新。然而,增加批大小可导致计算准确度的损失,尤其是在算法220的早期计算迭代期间。计算准确度的这种损失可导致算法220延长的执行时间来达到收敛,即完成DNN 304的训练。在极端情况下,延长的执行时间可甚至导致算法220不能达到收敛,即不能完成训练。小批大小的下限约束是节点以及其中的处理单元306的利用效率。节点所执行的各计算周期的使用效率可随样本帧小批218的小批大小的减小而降低。从而,小批大小的过度减少还可能导致低效,即延长算法220达到收敛的执行时间。
在至少一个示例中,批选择模块322可以基于所配置的小批大小将训练数据316分成各随机采样的帧小批218,例如如以上参考批选择224描述的。小批的示例在下文参考图5讨论。批选择模块322可以基于处理单元之间的数据传送速率和处理单元306每秒能够执行的操作数来配置样本帧小批218的小批大小。为提高计算效率,小批大小可被设置成使得对小批执行计算所需的时间约等于将与小批相关的数据传送给和传送出节点所需的时间。在至少一个示例中,小批大小被选择得尽可能高同时至少提供所选择的准确度,且节点数量被选择以使得使用所选大小的小批执行计算的时间基本上等于传递所选大小的小批的梯度所需的时间。这准许数据传输与计算重叠。例如,给定能够进行每秒2-4万亿次浮点运算(TFLOPS)的2-4个GPGPU的阵列,以及GPGPU之间的6G字节(GB)/秒的传送速率,小批大小可以在每样本小批256至1024个样本帧的范围内。
在至少一个示例中,在处理单元306的数据传输速率相对高于处理单元306的执行速度时,批选择模块322可以配置较大的小批大小。相反,在处理单元306的执行速度相对高于处理单元306之间的数据传送速率时,批选择模块322可以配置较小的小批大小。
算法220所执行的示例计算迭代可执行以下步骤:输入数据的前向传播、误差后向传播、以及模型更新。这些步骤可按所列次序或另一次序执行。输入数据的前向传播可由式(1)、(2)以及(3)描述,误差后向传播可由式(8)描述,且模型更新可由式(5)描述。
进一步,数据传送并行化232技术涉及数据传送与计算的并行化。数据传送并行化232的第一部分可在执行误差后向传播步骤之后发生。在这一部分中,来自处理某些数据或训练数据316的一部分的节点处的计算的输出数据可被流传输到处理DNN 304的模型或训练数据316的不同部分的另一节点。这种流传送可与模型更新步骤或输入数据前向传播步骤并行地或部分并行地执行,因为模型更新步骤和前向传播步骤使用与所述输出数据不同的数据。同样,在执行输入数据前向传播步骤之后,来自一个节点处的计算的输出数据可被流传输到另一节点。这种流传送可与对另一误差后向传播步骤的误差计算并行地或部分并行地执行。从而,在其中流传送时间比计算时间短的示例中,对数据传送并行化232的使用可减少或消除由多个处理单元之间的数据交换导致的任何时间延迟。
如上所述,模型条纹化228是跨多个节点(包括处理单元,如处理单元306)并行地处理DNN 304的各部分。每一节点可以计算梯度条纹(部分)。梯度条纹随后可例如被分发给其他节点,例如各处理单元306中的处理单元,或在各节点之间交换以用于完成模型的当前迭代的计算(例如,使用训练数据的当前小批来训练计算)。在各示例中,模型条纹化228可与数据并行化一起使用,例如通过跨多群模型并行节点并行地运行数据。数据并行化在下文描述,例如参考式(16)。在一示例中,模型条纹化228可与层并行化一起使用以准许更灵活地并行地处理各层。
在用于计算模型的数学优化的系统的至少一个示例中(例如,用于神经网络训练,如DNN训练),节点中的每一者包括操作耦合到相应计算机可读介质312的多个处理单元306。在这一示例中,每一处理单元306被配置成至少执行更新确定模块326。在一示例中,该系统可包括通信地连接各节点的纵横结构(例如,图1的网络106)。各节点可被配置成执行传送模块330以经由纵横结构与执行更新确定模块326同时地传送经量化的修改值中的至少一些。在一些示例中,每一节点的至少一个处理单元306可包括配置成执行更新模块328和量化模块324的通用图形处理单元(GPGPU),以及配置成执行传送模块330的中央处理单元(CPU)。
根据各示例的计算机可读介质312上具有计算机可执行指令。计算机可执行指令在被执行时配置计算机(例如,计算设备300或其中的处理单元306)来执行各操作。各操作可包括下文参考图4-6讨论的操作。在至少一个示例中,各操作可包括使用训练样本来确定神经网络模型的梯度的第一值。这可由更新确定模块326来完成。包括随机梯度下降和Hessian-free方法的后向传播技术可由更新确定模块326中的指令来控制。
各操作还包括例如通过传送模块330传送梯度的第一值的的一部分并接收与梯度的第一值的第二不同部分相对应的第二值。各操作可包括使传送和接收重叠。重叠的各示例在图5中示出。
值的第一和第二部分可对应于模型的不同条纹,例如如下文参考图5讨论的。例如,图5的节点1传送的梯度的第一值的的一部分可以是与DNN 304的子集2相对应的条纹518。节点1可以接收条纹522,这对应于DNN 304的不同子集1。在该示例中,第一值的对应第二部分是条纹516。
各操作还可包括合计第二部分(例如,条纹516)与接收到的第二值(例如,条纹522)。这可由合计模块332来完成。各操作随后可包括例如使用传送模块330传送经合计的值。这准许高效的数据并行DNN训练。
在至少一个示例中,各操作还包括在传送第一部分之前量化所确定的第一值。各操作还可包括在合计之前确定经重构(逆量化)的值并使用经重构的值来变换接收到的第二值。这些操作可由量化模块324执行,这可例如至少部分地基于梯度的值来确定经重构的值。例如,经重构的值q的经量化的值可以是被量化成q的前一小批中的所有梯度的均值(参见例如式(14))。相应经量化的值q的经重构的值的历史可被记录并平滑化,例如使用指数加权移动平均(EWMA)或移动窗口。经重构的值可每n个小批(对于所选择的n)或以随机的间隔来被重新计算。在取平均或以其他方式使用梯度来确定重构值的任何技术中,一些梯度可以从梯度的平均或组合中省略。例如,局外点(outlier)可以从平均省略,或随机选择的元素可被省略。在各示例中,经重构的值由量化模块324确定且与经量化的数据一起传送。这仍然造成所传送数据的节省。例如,被量化在一起的一群值的维度X可以是例如2048,且样本可以是浮点值。未经量化的数据是32X位。量化成1位且与数据一起传送两个32位浮点重构值(一个针对“0”位且一个针对“1”位)将数据传输要求降低至X+2x32。对于任何整数X≥3而言,这是节省。
在DNN训练系统的各示例中,例如实现诸如以上描述的那些指令等计算机程序指令,该系统中的各节点中的至少一个节点可以将经量化的修改值直接传送给各节点中的至少一个其他节点。即,各节点可按对等拓扑结构而非主机-从机拓扑结构来通信。然而,本文的各示例不限于对等的且可与节点互连的各种拓扑结构一起操作。使用对等传输可有利地准许多个节点同时传送数据且因而更高效地使用可用带宽。
在至少一个示例中,该系统中的各单独节点包括耦合到相应至少一个处理单元306的相应存储器320。在这一示例中,单独存储器320可被配置成存储对应节点的相应私有量化状态,例如包括以上参考图2的量化226描述的所存储的误差值。在这些示例中的一些示例中,各节点有利地不共享与量化误差有关的状态。这准许各节点关于量化独立地操作,这可减少要传送的状态数据的量并提高训练速度。
在一些示例中,节点包括连接到通信接口308的CPU和配置成执行更新确定模块326中的指令的GPGPU。在这些示例中的一些示例中,传送模块330可例如被配置成与将经量化的修改值中的至少一些传送给节点或其他处理单元306中的至少其他一者并行地,将第二经量化的修改值从GPGPU传送给CPU。以此方式,计算和数据传输可以不仅在节点之间重叠,还在节点内重叠。这可准许维持节点中的计算和通信资源两者的高利用因子,从而提高训练速度。在支持设备(如CPU、GPGPU、或网络控制器)之间的直接存储器访问(DMA)的系统中,DMA传输可被用来与计算并行地在节点内移动数据。
说明性过程
图4是示出训练深神经网络的示例过程400的示图。
在框402,训练引擎(如图1的训练引擎118、图2的训练引擎202、或图3的训练引擎302)确定神经网络模型的梯度矩阵。如以上参考更新确定模块326所述,训练引擎202可执行例如以下步骤:另一神经网络训练算法的随机梯度下降(SGD,例如式(5))或包括SGD和其他技术的组合神经网络训练算法。术语“矩阵”不要求任何特定维度或大小的矩阵。梯度矩阵可小至单个标量以及具有任何数量的维度或这些维度中的任何程度。在一示例中,梯度矩阵是2048×2048。
在框404,训练引擎202使用对应的所存储的误差矩阵来量化梯度矩阵。例如,误差矩阵可如下参考式(10)所讨论的被结合在量化中。量化可包括例如确定诸如梯度矩阵的相应元素的近似单个位表示等单个位表示。在一些示例中,经量化的表示每值可具有两个位、三个位、或任何数量b个位,b小于梯度矩阵在量化之前的位计数B。在框406,训练引擎202使用(例如,结合)对应的经量化的梯度矩阵来更新误差矩阵。
在至少一个示例中,量化(框404)和更新(框406)根据式(10)和(11)来执行,其中Gijl(t)是梯度参数,是其经量化的表示,Q(·)是量化函数,Q-1(·)是对应逆量化(重构)函数,Δijl(t)是量化误差,N是小批大小,且t是样本索引。
G i j l q u a n t ( t ) = Q ( G i j l ( t ) + &Delta; i j l ( t - N ) ) - - - ( 10 )
&Delta; i j l ( t ) = G i j l ( t ) - Q - 1 ( G i j l q u a n t ( t ) ) - - - ( 11 )
如可看到的,小批中的样本t-N的量化误差Δijl(t-N)被用于确定下一小批中的对应样本的经量化的值此外,误差矩阵Δ是经更新的(Δijl(t)),使得误差将尽可能针对样本t+N的下一量化中的给定Q被校正。
在至少一个示例中,量化函数是式(12)中示出的阈值函数。
Q ( x ) = 1 , x &GreaterEqual; 0 0 , x < 0 - - - ( 12 )
这一函数提供要被量化的值x的1位输出Q(x)。其他量化函数可被使用例如以将x的所选范围(例如,[0,1])分成所选数量的等间隔的各步(例如,针对n位经量化的值的2n步,或在各示例中,k步,k>2)。在一些示例中,量化阈值是使用梯度来设置的,如在式(13)中所示:
Q ( x ) = 1 , x &GreaterEqual; R 0 , x < R - - - ( 13 )
其中使用来自当前小批的数据,或使用来自前一小批的数据。贯穿本公开,t-N可以用t-kN来代替,其中整数k>0。即,出于量化、重构、或本文的任何目的,可以使用旧一个以上小批的数据。
在框408,训练引擎202与多个节点交换经量化的梯度矩阵。框408可包括训练引擎202将经量化的梯度矩阵中的一些或全部传送给至少一个其他节点,例如图2的至少一个其他计算设备210或处理单元212。框408可包括多个计算设备210将相应的经量化的梯度矩阵传送给该多个计算设备中的其他计算设备。各节点可同步地交换经量化的梯度矩阵。这一交换的示例在下文参考图5讨论。该交换可包括根据接收到的经量化的值(例如,使用下式(14)或(15))来重构梯度值。在一示例中,交换框408包括只交换经量化的梯度矩阵。在至少一个示例中,交换框408包括交换经量化的梯度矩阵和一个或多个节点的交叉熵(CE)准则值。CE准则值可被用来跟踪神经网络训练的进展。在一示例中,交换框408包括交换经量化的梯度矩阵、重构梯度值、合计经重构的值、量化所合计的值、以及交换经量化的所合计的值,例如如下文参考图5和6讨论的。
在框410,使用梯度来更新神经网络模型。这可以例如以上参考式(5)所描述的那样完成。经重构的梯度值可被使用。所合计的梯度可如以下参考图5和6所讨论地使用。
在判定框412,训练引擎202可以确定是否还有节点具有要处理的数据。如果是,则该过程可返回至框402。如果否,该过程可进至框414。以此方式,确定框402、量化框404、更新框406、交换框408、以及模型更新框410或这些框的任何组合可由各节点中的各单独节点针对梯度矩阵中的相应矩阵以及与梯度矩阵中的相应矩阵相对应的误差矩阵来执行。各节点可以并行地执行这一处理以减少训练时间。
在框414,在一些示例中,可根据批大小至少部分地基于时间测量来调整并行化因子。如上所述,小批大小N和并行地进行计算的节点数量K影响总训练时间。可基于通信或计算所花费的时间测量来调整这些值以提高训练速度。
在判定框416,训练引擎202可以确定是否满足所选择的终止准则。如果是,则可以确定训练过程完成。可以使用一个以上准则,例如在满足一个准则(满足所选数量的准则)时指示完成或在满足所有准则时指示完成。在训练完成时,训练引擎可以将经训练的DNN208提供给数据分析引擎206,这两者都在图2中示出。如果准则没有被满足,则该过程可返回到框402。以此方式,确定框402、量化框404、更新框406、交换框408、模型更新框410、判定框412以及调整框414可针对神经网络模型的多个小批中的每一者来重复。在至少一个示例中,第一小批的交换由框408执行,与第二小批的确定、量化、或更新并行。
示例准则可以是准确度。可以在训练期间评估DNN(例如,DNN 204或304)的训练帧准确度,且准则可以是至少所选择的训练帧准确度。可在测试输入集上周期性地测试DNN,并确定误差率,且准则可以是至多所选误差率。示例准则可以是已过去的训练时间。例如,在所选择的流逝时间和所选数量的训练时期之后,训练可被终止。在DNN没有针对所使用的特定参数收敛的情况下,这可以终止训练。示例准则可以是训练帧准确度或误差率的改进。该准则可以是小于这些量中的任一者的所选改进。例如,如果训练帧准确度接近渐近线或只是例如每时期增长<0.1%点,则训练可在假定DNN已基本上收敛的情况下终止。
在框418,在确定训练完成之后,例如因为满足终止准则,提供经训练的神经网络(例如,经训练的DNN 208或318)。在一示例中,在训练结束时来自式(5)的权重Wl和偏置al被存储到计算机可读介质,例如诸如计算机可读介质312等计算机可读介质。在至少一个示例中,框418包括使用所存储的权重和偏置(例如,在DNN操作引擎120或数据分析引擎206中)来执行神经网络算法,以处理输入数据236来产生输出数据234。
图5是示出用于交换数据的示例过程中的各步骤的数据流程图500。该过程可由具有图4的相应交换框408的多个节点合作地执行。该过程在本文中也被称为“归纳”。在这一示例中,三个节点参与,如由图5中的“节点1”到“节点3”附图标记所指示的。
小批502包括来自训练数据216的多个随机采样的帧218,这两者在图2中示出。在各示例中,小批502可例如由配置成协调各节点的努力的处理单元被分成各子小批504、506、508。在一些示例中,节点中的一者或多者可划分小批502。在至少一个示例中,单独节点只从小批502检索其对应的子小批504、506、508。
在这一示例中,节点1、2以及3中的每一者接收训练数据216的一个相应子小批504、506、508并基于训练数据的接收到的子小批来计算计算模型的修改值。在一个示例方面,计算模型是神经网络模型且更新是适于用于随机梯度下降(SGD)过程中的梯度,例如如以上参考式(5)描述的。为清楚起见,将贯穿图5的讨论来使用这一示例,但所描述和示出的技术不限于神经网络或SGD。
框510表示由节点1使用子小批504计算出的梯度。框512表示由节点2使用子小批506计算出的梯度。框514表示由节点3使用子小批508计算出的梯度。各单独节点接收与由其他节点计算出的梯度有关的信息是合乎需要的。这样的接收准许一单独节点更新其神经网络模型以准备SGD过程的下一迭代。
如以上参考交换230讨论的,为准许与其他节点高效地交换梯度信息,一单独节点将其梯度分成各“条纹”。在这一示例中,框510包括条纹516、518、520;框512包括条纹522、524、526;且框514包括条纹528、530、532。条纹分别对应于计算模型的不同参数子集。
在一示例中,DNN 204的单个层222(这两者都在图2中示出)中的计算神经元可被指派给三个部分之一。每一条纹涉及相应部分中的计算神经元的权重和偏置。条纹与对应训练数据和模型子集之间的关系的示例在下表1中阐明。在这一示例中,子小批504包括300个数据样本,编号为1-300。子小批506包括样本301-600,且子小批508包括样本601-900。
表1
如表1所示,为确定模型参数的子集1的各模型参数,来自条纹516、522以及528的梯度可被组合成合计条纹534,且同样子集2的条纹518、524、530可被组合成合计条纹536,以及子集3的条纹520、526、532可被组合成合计条纹538。
因此,在第一阶段(“阶段1”),节点1-3在它们之间交换数据,以使得在该示例中,每一节点合计与单个子集相对应的条纹。实线所指示的传送可并发地执行,且虚线所指示的传送可并发地执行。在各示例中,传送在下表2中给出。边界将可并发地执行的各传送群分开。
表2
在表2的示例中,节点1合计其自己的条纹516(即,节点1计算出的梯度的条纹516,由虚线箭头指示)与接收到的条纹522和528,以提供用于子集1的合计条纹534。合计条纹534包括该模型的子集1相关于训练样本1-900的梯度(或其合计,例如总和)。类似地,节点2合计其自己的条纹524与接收到的条纹518和530以提供用于子集2的合计条纹536。节点3合计其自己的条纹532与接收到的条纹520和526以提供用于子集3的合计条纹538。
在以上讨论的示例中,节点1-3在它们之间交换数据。在至少一个示例中,用于提供合计条纹534、536、538中的一者或多者的合计操作在与节点1、2以及3不同的节点上执行。在一些示例中,合计操作在节点1、2以及3之一上执行以用于其他节点或用于该节点以及其他节点。合计条纹534、536、538可由执行合计的节点提供给需要合计条纹的节点。执行合计的节点的数量可以相同于或不同于计算梯度的节点的数量。
如以上参考式(10)讨论的,梯度值可以在阶段1中传送之前被量化。一单独节点可以量化它所传送的梯度值,例如节点1的条纹518、520。一单独节点随后可在合计合计条纹534、536、538之前对接收到的值执行逆量化Q-1以确定对应的经重构的值。逆量化可以例如使用分成它们的量化箱(bin)的先前数据列的均值(例如,~2000个值的均值)来确定。在至少一个示例中,逆量化可如式(14)中所示地执行:
在一位量化(q=0或1)的示例中,Q-1(0)是量化为0的先前小批的均值,且Q-1(1)是被量化为1的先前小批的均值。这可以提供最小均方误差估计。在至少一个示例中,经重构的值可以是先前小批的梯度的最小值和最大值,如式(15)所示:
Q - 1 ( x ) = max j , l G i j l ( t - N ) , x = 1 min j , l G i j l ( t - N ) , x = 0 - - - ( 15 )
在阶段1和2之间,节点1-3(或执行合计的其他节点,或计算和合计节点的任何组合)可以对合计条纹534、536、538的数据执行进一步处理。在一示例中,处理包括动量平滑。在一示例中,该处理包括梯度的AdaGrad归一化。
在第二阶段(“阶段2”),节点1-3交换合计条纹,以使得在该示例中,每一节点具有完整模型(包括所有三个子集)。传送在下表3中阐明。图5上的实线和虚线以及表3中的边界如以上参考阶段1所讨论的那样。图5上的在阶段2期间的虚线表示重用分别由节点1、2、3已计算出的合计条纹534、536、538。
表3
在阶段2之后,在框540,节点1具有用于完整模型(样本1-900)的所有梯度。在框542,节点2具有完整梯度集合;且在框544,节点3具有完整梯度集合。每一个框540、542、544包括三个合计条纹534、536、538。
在各示例中,节点在将合计条纹534、536、538中的梯度值在阶段2中传送之前对它们进行量化。接收到经量化的合计梯度值的节点随后可重构(Q-1)这些值,并使用所得的经重构的梯度来更新计算模型,例如DNN 114。
图5中描述的技术使用两个阶段来在三个节点之间交换数据。一般而言,对于K个节点,K>1,这一技术使用K-1个阶段。一单独节点在每一阶段将梯度的K分之一传送两次。在使用纵横结构或类似设备来互连各节点的示例系统中,在每一阶段,所有K个阶段都可同时传送信息。在这些示例中,任何给定数据传输所需的时间指示梯度的K分之一的传输时间。将梯度数据的总大小表示为M,在这些示例中完成所示出的传输所需的时间是式(16)中示出的量级:
或O(2M(K-1)/K)≈O(M)。因此,在使用同时传送时,执行图5所示的数据交换所需的时间大致独立于节点K的数量。这有利地准许增加参与并行处理的节点数量K,以及相应地提高训练速度,而不由于传输开销而遭受降低的性能。
图6是示出用于交换数据(例如,以上参考图4的框408讨论的)的示例过程600中的各步骤的流程图。在以下讨论中对图5和6作出参考。该示例过程接收来自图4的框404的经量化的梯度矩阵作为输入。
在框602,划分梯度矩阵。可根据节点数量K或不同数量来划分梯度矩阵。如上所述,执行合计的(诸)节点可以与执行计算的(诸)节点相同或不同。在至少一个示例中,梯度矩阵可根据执行合计的节点的数量来划分。梯度矩阵可被量化,如上所述。从这一划分中获得的各单独分区在本文中被称为“条纹”。这一划分的示例是将框510、512、514划分成各条纹,如上所述。
在框604,各单独条纹(分区)被提供给各节点中的相应节点。即,经量化的梯度矩阵的各分区中的各单独分区被提供给各节点中的相应节点。在图5的示例中,条纹516已驻留在节点1处。提供框602因此可包括由与节点1相关联的处理单元212选择条纹516的数据以供进一步处理。条纹522和528没有驻留在节点1处,所以提供框602可包括将条纹522传送给节点1的节点2(虚线箭头)和将条纹528传送给节点1的节点3(实线箭头)。类似的,条纹518和530被传送给节点2且条纹524被节点2选择为提供框602的一部分,且条纹520、526被传送给节点3且条纹532被节点3选择。在图5所示的示例传送在以上表2中概括。
在一些示例中,在框606,根据经量化的分区的数据来重构梯度矩阵。如本文所描述的,重构可被执行。在一示例中,框604包括传送(q,Q-1(q))值的表连同经量化的值q,且重构包括在该表中查找经量化的值q。
在框608,接收到的分区被合计在各节点中的对应节点处。这对应于生成图5中的合计条纹534、536、538。合计可包括例如对经重构的梯度求和。
在一些示例中,在框610,所合计的分区中的修改值(例如,梯度值)可被进一步处理,例如如以上参考图5讨论的。在一示例中,处理包括动量平滑。在一示例中,该处理包括梯度的AdaGrad归一化。
在一些示例中,在框612,所合计的分区中的修改值(例如,梯度值)可被量化。量化可以使用与在框604中使用的相同量化函数或不同量化函数。经重构的值可如本文参考梯度矩阵的量化描述的那样来确定(框404)。
在框614,所合计的数据(例如,经量化的所合计的分区)从各节点中的产生该分区的各单独节点传送给各节点中的其他节点。例如,合计条纹534从节点1传送给节点2和3,且同样用于以上表3中描述的其他传送。
在一些示例中,在框616,所合计的分区被重构,例如如以上参考框606所描述的。框616随后可以是图4的框410。
图6的示例过程也可与其他计算模型一起使用来代替神经网络模型,且使用其他修改值来代替梯度。
说明性结果
执行了各实验以测试根据本文的各示例的用于DNN训练的系统。CD-DNN-HMM(“模型”)在SWBD-I训练集合(309小时音频)上训练。该模型具有维度为2048且输出维度为9304(用于总共M=64M个模型参数)的七个隐藏层。所使用的测试集合是Hub-5’00(1831句话语)。在配备8个NVIDIA TESLA K20Xm GPU卡的服务器上执行了测试。还在通过INFINIBAND连接的24个双-K20Xm服务器的服务器场上执行了测试。
DNN训练使用1位量化,如上所述,其中0(零)作为量化阈值。在一个测试中,前24小时的数据被处理,而不使用并行化或量化。其余数据使用具有误差反馈的1位量化来处理,如上所述(例如,式(10)和(11)一起),其中K=4。词语误差率和训练帧准确度没有因添加带误差反馈的量化而被显著地更改。在另一测试中,AdaGrad自适应学习权重被应用于经量化的梯度。与应用于未经量化的梯度的AdaGrad相比,这一配置将帧准确度改进了1.7%。这一配置,其中K=4,提供了8.1小时的训练时间。这与对应的非并行化测试的35小时的训练时间形成对比。因此,并行化操作以及使用经量化的梯度可以提供训练速度的显著改进,即显著减少训练时间。如上所述,这一速度提高没有牺牲来自经训练的DNN 114的结果的质量。在又一测试中,具有AdaGrad的DNN在使用和不使用批大小调整(例如,批选择224,图2)的情况下被测试。使用批大小调整将训练时间从41小时降至35小时。还执行了将数据与模型并行化相比的测试。在各示例中,只使用数据并行化。例如,具有4x2(数据x模型)并行化的系统的测试具有40.9kfps的训练速度,与具有8x1并行化的更高训练速度50.6kfps形成对比。在一个测试中,160M个参数的生产规模模型在低于24小时的流逝时间内完成一遍3,300小时的训练数据。这些示例示范了量化(例如,1位量化)加速了数据传输并使得数据并行SGD在基本上不损失准确度的情况下可行。
示例条款
A:一种方法,包括:确定优化问题的计算模型(例如,神经网络模型)的梯度矩阵;使用(例如,结合)对应的所存储的误差矩阵来量化所述梯度矩阵;使用对应的经量化的梯度矩阵来更新所述误差矩阵;以及与多个节点交换经量化的梯度矩阵。
B:如段落A所述的方法,所述确定、量化、以及更新由所述节点中的各单独节点针对所述梯度矩阵中的相应梯度矩阵以及与所述梯度矩阵中的所述相应梯度矩阵相对应的误差矩阵来执行。
C:如段落A或B所述的方法,还包括在交换之后重构经量化的梯度矩阵。
D:如段落A或B所述的方法,还包括使用梯度矩阵来更新神经网络模型。
E:如段落B、C或D中的任一段所述的方法,还包括为所述神经网络模型的多个小批中的每一小批重复所述确定、量化、更新以及交换步骤,所述小批中的第一小批的交换与所述小批中的第二小批的确定、量化或更新并行地执行。
F:如段落E所述的方法,所述交换包括交换经量化的梯度矩阵,例如只交换经量化的梯度矩阵。
G:如段落E或F所述的方法,所述诸节点同步地交换经量化的梯度矩阵。
H:如段落E-G中的任一段所述的方法,所述交换包括:例如根据节点的数量来划分经量化的梯度矩阵;将所述经量化的梯度矩阵的各分区中的各单独分区提供给所述节点中的相应节点;在所述节点处合计接收到的分区;以及将来自所述节点中的各单独节点的所合计的数据传送给所述节点中的其他节点。
I:如段落A-H中的任一段所述的方法,还包括根据批大小至少部分地基于时间测量来调整并行化因子。
J:如段落A-H中的任一段所述的方法,所述量化包括确定梯度矩阵的每一元素的单个位表示,例如近似单个位表示。
K:一种其上具有计算机可执行指令的计算机可读介质(例如,计算机存储介质),该计算机可执行指令在被执行时将计算机配置成执行段落A-J中的任一段所述的方法。
L:一种设备,包括:处理器;以及其上具有计算机可执行指令的计算机可读介质(例如,计算机存储介质),该计算机可执行指令在被执行时将所述设备配置成执行段落A-J中的任一段所述的方法。
M:一种系统,包括:用于处理的装置;以及用于在其上存储有计算机可执行指令的装置,这些计算机可执行指令包括用于将该设备配置成执行如段落A-J中的任一段所述的方法的装置。
N:一种系统,包括:其上具有多个模块和优化问题的计算模型的一个或多个计算机可读介质(例如,计算机存储介质);以及多个节点,每一节点包括至少一个处理单元,每一处理单元能操作耦合到所述计算机可读介质中的至少一者,所述处理单元被适配成互通信且执行所述多个模块中的各模块,所述多个模块包括:被配置成确定所述计算模型的修改值的更新确定模块;被配置成使用所存储的误差值来量化所确定的修改值并使用所确定的修改值和经量化的修改值来更新所存储的误差值的量化模块;被配置成将经量化的修改值中的至少一些传送给所述处理单元中的至少一个其他处理单元的传送模块;以及被配置成根据接收到的经量化的修改值来修改所存储的计算模型的更新模块。
O:如段落N所述的系统,所述量化模块被进一步配置成使用所传送的经量化的梯度修改值来重构修改值以及更新模块被配置成根据经重构的修改值来修改所存储的计算模型。
P:如段落N所述的系统,其特征在于,所述诸节点中的至少一者将经量化的修改值直接传送给所述诸节点中的至少一个其他节点。
Q:如段落N、O或P中的任一段所述的系统,每一节点包括耦合到所述相应至少一个处理单元且被配置成存储包括所存储的误差值的相应私有量化状态的相应存储器。
R:如段落N-Q中的任一段所述的系统,所述计算模型包括神经网络模型,且所述更新确定模块被配置成使用随机梯度下降算法来确定所述修改值。
S:如段落N-R中的任一段所述的系统,所述诸节点中的每一者包括能操作耦合到相应计算机可读介质且被配置成至少执行所述更新确定模块的多个处理单元。
T:如段落N-S中的任一段所述的系统,其特征在于,还包括将所述诸节点通信地连接的纵横结构,其中所述诸节点被配置成执行所述传送模块以经由所述纵横结构与执行所述更新确定模块并行地传送所述经量化的修改值中的至少一些。
U:如段落N-T中的任一段所述的系统,每一节点的至少一个处理单元包括配置成执行所述更新模块和量化模块的通用图形处理单元(GPGPU)以及配置成执行所述传送模块的中央处理单元(CPU)。
V:如段落U所述的系统,所述传送模块被配置成与将经量化的修改值中的至少一些传送给处理单元中的至少一个其他处理单元并行地,将第二经量化的修改值从GPGPU传送给CPU。
W:一种在其上具有计算机可执行指令的计算机可读介质,所述计算机可执行指令在执行时配置计算机来执行各操作,包括:使用训练样本集合来确定神经网络模型的梯度的第一值;传送梯度的第一值的第一部分;接收与梯度的第一值的第二不同部分相对应的第二值;将该第二部分与接收到的第二值合计在一起;以及传送经合计的值。
X:如段落W所述的计算机可读介质,各操作还包括在传送第一部分之前量化所确定的第一值。
Y:如段落W或Y所述的计算机可读介质,各操作还包括确定逆量化值并在合计之前使用逆量化值变换接收到的第二值。
Z:如段落Y所述的计算机可读介质,逆量化值是至少部分地基于梯度的值来确定的。
AA:如段落W-Z中的任一段所述的计算机可读介质,各操作还包括时传送和接收重叠。
AB:一种系统,包括:用于处理的装置;以及如段落W-AA中的任一段所述的计算机可读介质。
本文描述的训练技术可减少为特定目的(如语音识别)而训练DNN所使用的时间量。减少的训练时间可导致在执行语音-文本转录或文本-语音合成时DNN的实现和使用的增加。
结语
虽然已经用对结构特征和/或方法动作专用的语言描述了各项技术,但是应该理解,所附权利要求不必限于所述的特征或动作。相反,这些特征和动作是作为实现这些技术的示例形式而描述的。
示例过程的操作在单独的框中示出,并且参考这些框来概括。这些过程被示为逻辑框流,其每个框可表示可用硬件、软件或其组合实现的一个或多个操作。在软件的上下文中,这些操作表示存储在一个或多个计算机可读介质上的计算机可执行指令,这些指令在由一个或多个处理器执行时使得一个或多个处理器执行既定操作。一般而言,计算机可执行指令包括执行特定功能或实现特定抽象数据类型的例程、程序、对象、模块、组件、数据结构等。描述操作的次序并不旨在解释为限制,并且任何数量的所述操作可以按任何次序执行、按任何次序进行组合、细分成多个子操作、或并行执行,以实现所描述的过程。所描述的过程可由与一个或多个计算设备210或处理单元212相关联的资源来执行,如上述加速器或其他处理单元212。这样的设备包括例如一个或多个内部或外部CPU或GPU、或一个或多个硬件逻辑,如FPGA或DSP。
上述所有方法和过程可以用由一个或多个通用计算机或处理器执行的软件代码模块来具体化,并且可经由这些软件代码模块来完全自动化。这些代码模块可以存储在任何类型的计算机可执行存储介质或其他计算机存储设备中。方法中的某些或全部可以用专用计算机硬件来具体化。
除非另外具体声明,否则在上下文中可以理解条件语言(诸如“能”、“能够”、“可能”或“可以”)表示特定示例包括而其他示例不包括特定特征、元素或步骤。因此,这样的条件语言一般并非旨在暗示对于一个或多个示例需要特定特征、元素或步骤,或者一个或多个示例必然包括用于决定的逻辑、具有或不具有用户输入或提示、在任何特定实施例中是否要包括或要执行特定特征、元素或步骤。除非另外具体声明,应理解联合语言(诸如短语“X、Y或Z中至少一个”)表示项、词语等可以是X、Y或Z中的任一者、或其组合。
本文所述或附图中描述的流程图中任何例行描述、元素或框应理解成潜在地表示包括用于实现该例程中具体逻辑功能或元素的一个或多个可执行指令的代码的模块、片段或部分。替换实现被包括在本文描述的示例的范围内,其中各元素或功能可被删除,或与所示出或讨论的顺序不一致地执行,包括基本上同步地执行或按相反顺序执行,这取决于所涉及的功能,如本领域技术人也将理解的。应当强调,可对上述示例作出许多变型和修改,其中的元素如同其他可接受的示例那样应被理解。所有这样的修改和变型本文旨在包括在本公开的范围内并且由以下权利要求书保护。

Claims (15)

1.一种方法,包括:
确定优化问题的计算模型的梯度矩阵;
使用对应的所存储的误差矩阵来量化所述梯度矩阵;
使用对应的经量化的梯度矩阵来更新所述误差矩阵;以及
与多个节点交换经量化的梯度矩阵。
2.如权利要求1所述的方法,其特征在于,所述确定、量化、以及更新由所述诸节点中的各单独节点针对所述梯度矩阵中的相应梯度矩阵以及与所述相应梯度矩阵相对应的误差矩阵来执行。
3.如前述权利要求中的任一项所述的方法,其特征在于,还包括为所述计算模型的多个小批中的每一小批重复所述确定、量化、更新以及交换步骤,所述小批中的第一小批的交换与所述小批中的第二小批的确定、量化或更新并行地执行。
4.如权利要求3所述的方法,其特征在于,所述交换包括交换经量化的梯度矩阵。
5.如权利要求3或4所述的方法,其特征在于,所述诸节点同步地交换经量化的梯度矩阵。
6.如权利要求3-5中的任一项所述的方法,其特征在于,所述交换包括:
划分所述经量化的梯度矩阵;
将所述经量化的梯度矩阵的各分区中的各单独分区提供给所述诸节点中的相应节点;
在所述诸节点处合计接收到的分区;以及
将来自所述诸节点中的各单独节点的所合计的数据传送给所述诸节点中的其他节点。
7.如前述权利要求中的任一项所述的方法,其特征在于,还包括根据批大小至少部分地基于时间测量来调整并行化因子。
8.如前述权利要求中的任一项所述的方法,其特征在于,所述量化包括确定所述梯度矩阵中的每一元素的近似单个位表示。
9.一种其上具有计算机可执行指令的计算机可读介质,所述计算机可执行指令在执行时配置计算机来实现如前述权利要求中的任一项所述的方法。
10.一种系统,包括:
其上具有多个模块和优化问题的计算模型的一个或多个计算机可读介质;以及
多个节点,每一节点包括至少一个处理单元,每一处理单元能操作耦合到所述计算机可读介质中的至少一者,所述处理单元被适配成互通信且执行所述多个模块中的各模块,所述多个模块包括:
被配置成确定所述计算模型的修改值的更新确定模块;
被配置成使用所存储的误差值来量化所确定的修改值并使用所确定的修改值和经量化的修改值来更新所存储的误差值的量化模块;
被配置成将经量化的修改值中的至少一些传送给所述处理单元中的至少一个其他处理单元的传送模块;以及
被配置成根据接收到的经量化的修改值来修改所存储的计算模型的更新模块。
11.如权利要求10所述的系统,其特征在于,所述诸节点中的至少一者将经量化的修改值直接传送给所述诸节点中的至少一个其他节点。
12.如权利要求11所述的系统,其特征在于,每一节点包括耦合到所述相应至少一个处理单元且被配置成存储包括所存储的误差值的相应私有量化状态的相应存储器。
13.如权利要求10-12中的任一项所述的系统,其特征在于,所述计算模型包括神经网络模型,且所述更新确定模块被配置成使用随机梯度下降算法来确定所述修改值。
14.如权利要求10-13中的任一项所述的系统,其特征在于,所述诸节点中的每一者包括能操作耦合到相应计算机可读介质且被配置成至少执行所述更新确定模块的多个处理单元。
15.如权利要求10-14中的任一项所述的系统,其特征在于,还包括将所述诸节点通信地连接的纵横结构,其中所述诸节点被配置成执行所述传送模块以经由所述纵横结构与执行所述更新确定模块并行地传送所述经量化的修改值中的至少一些。
CN201480068322.8A 2014-09-12 2014-09-12 用于训练神经网络的计算系统 Active CN106062786B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911225718.XA CN110992935B (zh) 2014-09-12 2014-09-12 用于训练神经网络的计算系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/086398 WO2016037351A1 (en) 2014-09-12 2014-09-12 Computing system for training neural networks

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201911225718.XA Division CN110992935B (zh) 2014-09-12 2014-09-12 用于训练神经网络的计算系统

Publications (2)

Publication Number Publication Date
CN106062786A true CN106062786A (zh) 2016-10-26
CN106062786B CN106062786B (zh) 2019-12-31

Family

ID=55458272

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201480068322.8A Active CN106062786B (zh) 2014-09-12 2014-09-12 用于训练神经网络的计算系统
CN201911225718.XA Active CN110992935B (zh) 2014-09-12 2014-09-12 用于训练神经网络的计算系统

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201911225718.XA Active CN110992935B (zh) 2014-09-12 2014-09-12 用于训练神经网络的计算系统

Country Status (5)

Country Link
US (1) US11049006B2 (zh)
EP (1) EP3192016B1 (zh)
CN (2) CN106062786B (zh)
ES (1) ES2738319T3 (zh)
WO (1) WO2016037351A1 (zh)

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018103562A1 (zh) * 2016-12-06 2018-06-14 华为技术有限公司 一种数据处理系统及方法
CN108320026A (zh) * 2017-05-16 2018-07-24 腾讯科技(深圳)有限公司 机器学习模型训练方法和装置
CN108734649A (zh) * 2017-04-24 2018-11-02 英特尔公司 神经网络训练机构
CN109241241A (zh) * 2018-08-20 2019-01-18 电信科学技术第五研究所有限公司 一种基于通信数据的移动用户关系类型识别方法
CN109426553A (zh) * 2017-08-21 2019-03-05 上海寒武纪信息科技有限公司 任务切分装置及方法、任务处理装置及方法、多核处理器
CN109740755A (zh) * 2019-01-08 2019-05-10 深圳市网心科技有限公司 一种基于梯度下降法的数据处理方法及相关装置
CN109886393A (zh) * 2019-02-26 2019-06-14 杭州闪亿半导体有限公司 一种存算一体化电路及神经网络的计算方法
CN110379416A (zh) * 2019-08-15 2019-10-25 腾讯科技(深圳)有限公司 一种神经网络语言模型训练方法、装置、设备及存储介质
CN110659678A (zh) * 2019-09-09 2020-01-07 腾讯科技(深圳)有限公司 一种用户行为分类方法、系统及存储介质
WO2020024646A1 (en) * 2018-07-31 2020-02-06 Tencent Technology (Shenzhen) Company Limited Monaural multi-talker speech recognition with attention mechanism and gated convolutional networks
CN111353579A (zh) * 2018-12-21 2020-06-30 畅想科技有限公司 利用反向传播为深度神经网络选择量化参数的方法和系统
CN111526169A (zh) * 2019-02-01 2020-08-11 阿里巴巴集团控股有限公司 通过网络发送数据的方法、介质、服务器和计算机设备
WO2020168761A1 (zh) * 2019-02-22 2020-08-27 华为技术有限公司 训练模型的方法和装置
CN111819578A (zh) * 2018-02-17 2020-10-23 超威半导体公司 使用带有急速更新的分布式参数服务器对神经网络进行优化的异步训练
CN111937011A (zh) * 2018-06-15 2020-11-13 华为技术有限公司 一种神经网络模型权重参数的确定方法及设备
CN112204640A (zh) * 2018-05-28 2021-01-08 微软技术许可有限责任公司 针对视觉受损者的辅助设备
CN112464784A (zh) * 2020-11-25 2021-03-09 西安烽火软件科技有限公司 一种基于混合并行的分布式训练方法
CN113297128A (zh) * 2020-02-24 2021-08-24 中科寒武纪科技股份有限公司 数据处理方法、装置、计算机设备和存储介质
CN113420880A (zh) * 2021-08-24 2021-09-21 苏州浪潮智能科技有限公司 网络模型训练方法、装置、电子设备及可读存储介质
CN113469355A (zh) * 2020-03-30 2021-10-01 亚马逊技术股份有限公司 分布式系统中的多模型训练管道
CN108460453B (zh) * 2017-02-21 2022-05-17 阿里巴巴集团控股有限公司 一种用于ctc训练的数据处理方法、装置及系统
US11449737B2 (en) * 2016-09-07 2022-09-20 Robert Bosch Gmbh Model calculation unit and control unit for calculating a multilayer perceptron model with feedforward and feedback
US11537843B2 (en) 2017-06-29 2022-12-27 Shanghai Cambricon Information Technology Co., Ltd Data sharing system and data sharing method therefor
US11687467B2 (en) 2018-04-28 2023-06-27 Shanghai Cambricon Information Technology Co., Ltd Data sharing system and data sharing method therefor
US11726844B2 (en) 2017-06-26 2023-08-15 Shanghai Cambricon Information Technology Co., Ltd Data sharing system and data sharing method therefor

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10037187B2 (en) * 2014-11-03 2018-07-31 Google Llc Data flow windowing and triggering
KR101999639B1 (ko) * 2015-02-06 2019-07-12 후아웨이 테크놀러지 컴퍼니 리미티드 데이터 처리 시스템, 계산 노드 및 데이터 처리 방법
US10628740B2 (en) * 2015-10-02 2020-04-21 International Business Machines Corporation Asynchronous stochastic gradient descent
US11106973B2 (en) 2016-03-16 2021-08-31 Hong Kong Applied Science and Technology Research Institute Company Limited Method and system for bit-depth reduction in artificial neural networks
WO2017177446A1 (zh) * 2016-04-15 2017-10-19 北京中科寒武纪科技有限公司 支持离散数据表示的人工神经网络反向训练装置和方法
WO2017177442A1 (zh) * 2016-04-15 2017-10-19 北京中科寒武纪科技有限公司 支持离散数据表示的人工神经网络正向运算装置和方法
WO2017185256A1 (zh) * 2016-04-27 2017-11-02 北京中科寒武纪科技有限公司 一种用于执行RMSprop梯度下降算法的装置及方法
CN107330516B (zh) * 2016-04-29 2021-06-25 腾讯科技(深圳)有限公司 模型参数训练方法、装置及系统
CN107341540B (zh) * 2016-04-29 2021-07-20 中科寒武纪科技股份有限公司 一种用于执行Hessian-Free训练算法的装置和方法
JP2018018451A (ja) * 2016-07-29 2018-02-01 富士通株式会社 機械学習方法、機械学習プログラム及び情報処理装置
CN107688853B (zh) 2016-08-05 2020-01-10 中科寒武纪科技股份有限公司 一种用于执行神经网络运算的装置及方法
US10599974B2 (en) 2016-08-30 2020-03-24 Samsung Electronics Co., Ltd System and method for information highways in a hybrid feedforward-recurrent deep network
CN109952581A (zh) 2016-09-28 2019-06-28 D5A1有限责任公司 用于机器学习系统的学习教练
WO2018144534A1 (en) * 2017-01-31 2018-08-09 The Regents Of The University Of California Hardware-based machine learning acceleration
EP3588394A4 (en) * 2017-02-23 2020-03-04 Sony Corporation INFORMATION PROCESSING DEVICE, INFORMATION PROCESSING PROCESS AND PROGRAM
JP6832050B2 (ja) * 2017-02-23 2021-02-24 セレブラス システムズ インク. 加速化ディープラーニング
US10872598B2 (en) * 2017-02-24 2020-12-22 Baidu Usa Llc Systems and methods for real-time neural text-to-speech
US11915152B2 (en) 2017-03-24 2024-02-27 D5Ai Llc Learning coach for machine learning system
WO2018184214A1 (en) * 2017-04-07 2018-10-11 Intel Corporation Systems and methods for providing deeply stacked automated program synthesis
US10417731B2 (en) 2017-04-24 2019-09-17 Intel Corporation Compute optimization mechanism for deep neural networks
US10417734B2 (en) 2017-04-24 2019-09-17 Intel Corporation Compute optimization mechanism for deep neural networks
US10572773B2 (en) * 2017-05-05 2020-02-25 Intel Corporation On the fly deep learning in machine learning for autonomous machines
US10896669B2 (en) 2017-05-19 2021-01-19 Baidu Usa Llc Systems and methods for multi-speaker neural text-to-speech
CN109034381B (zh) * 2017-06-09 2022-01-28 宏达国际电子股份有限公司 训练任务优化系统、方法及其非暂态电脑可读媒体
WO2018231708A2 (en) * 2017-06-12 2018-12-20 D5Ai Llc Robust anti-adversarial machine learning
EP3639206A1 (en) * 2017-07-06 2020-04-22 Google LLC Systems and methods for compression and distribution of machine learning models
CA3066204C (en) * 2017-07-07 2022-04-26 Mitsubishi Electric Corporation Data processing device, data processing method, and non-transitory computer-readable storage medium
US20190042934A1 (en) * 2017-12-01 2019-02-07 Meenakshi Arunachalam Methods and apparatus for distributed training of a neural network
CN109960673B (zh) * 2017-12-14 2020-02-18 中科寒武纪科技股份有限公司 集成电路芯片装置及相关产品
US11803734B2 (en) * 2017-12-20 2023-10-31 Advanced Micro Devices, Inc. Adaptive quantization for neural networks
US11321612B2 (en) 2018-01-30 2022-05-03 D5Ai Llc Self-organizing partially ordered networks and soft-tying learned parameters, such as connection weights
US11574193B2 (en) 2018-04-28 2023-02-07 Samsung Electronics Co., Ltd. Method and system for training of neural networks using continuously differentiable models
KR20190128885A (ko) * 2018-05-09 2019-11-19 삼성전자주식회사 전자 장치 및 그 제어 방법
US20210110260A1 (en) * 2018-05-14 2021-04-15 Sony Corporation Information processing device and information processing method
CN110737446B (zh) * 2018-07-20 2021-10-12 杭州海康威视数字技术股份有限公司 更新参数的方法和装置
WO2020041934A1 (zh) * 2018-08-27 2020-03-05 华为技术有限公司 一种数据处理设备以及一种数据处理方法
CN110874625B (zh) * 2018-08-31 2023-10-27 杭州海康威视数字技术股份有限公司 一种数据处理方法及装置
US20210374503A1 (en) * 2018-10-15 2021-12-02 Board Of Trustees Of The University Of Illinois Network-centric architecture and algorithms to accelerate distributed training of neural networks
WO2020084618A1 (en) * 2018-10-24 2020-04-30 Technion Research & Development Foundation Limited System and method for distributed training of a neural network
US20200151510A1 (en) * 2018-11-12 2020-05-14 Advanced Micro Devices, Inc. Adaptive batch reuse on deep memories
KR20200061164A (ko) * 2018-11-23 2020-06-02 삼성전자주식회사 뉴럴 네트워크 연산 수행을 위한 뉴럴 네트워크 장치, 뉴럴 네트워크 장치의 동작 방법 및 뉴럴 네트워크 장치를 포함하는 애플리케이션 프로세서
US10789510B2 (en) 2019-01-11 2020-09-29 Google Llc Dynamic minibatch sizes
CN109951438B (zh) * 2019-01-15 2020-11-20 中国科学院信息工程研究所 一种分布式深度学习的通信优化方法及系统
US11625583B2 (en) * 2019-02-13 2023-04-11 Mipsology SAS Quality monitoring and hidden quantization in artificial neural network computations
CN111612167B (zh) * 2019-02-26 2024-04-16 京东科技控股股份有限公司 机器学习模型的联合训练方法、装置、设备及存储介质
US11328222B1 (en) * 2019-05-10 2022-05-10 Innovium, Inc. Network switch with integrated gradient aggregation for distributed machine learning
US11544540B2 (en) 2019-05-10 2023-01-03 Hewlett Packard Enterprise Development Lp Systems and methods for neural network training and deployment for hardware accelerators
CN112151003A (zh) * 2019-06-27 2020-12-29 百度在线网络技术(北京)有限公司 并行语音合成方法、装置、设备以及计算机可读存储介质
JP7146952B2 (ja) * 2019-08-23 2022-10-04 安徽寒武紀信息科技有限公司 データ処理方法、装置、コンピュータデバイス、及び記憶媒体
US11057318B1 (en) 2019-08-27 2021-07-06 Innovium, Inc. Distributed artificial intelligence extension modules for network switches
JP7322622B2 (ja) * 2019-09-17 2023-08-08 富士通株式会社 情報処理装置、情報処理方法及び情報処理プログラム
US11775611B2 (en) 2019-11-01 2023-10-03 Samsung Electronics Co., Ltd. Piecewise quantization for neural networks
US11669780B2 (en) 2019-11-06 2023-06-06 International Business Machines Corporation Asynchronous multiple scheme meta learning
GB2588980A (en) * 2019-11-12 2021-05-19 Samsung Electronics Co Ltd Method and system for neutral network execution distribution
US11706163B2 (en) * 2019-12-20 2023-07-18 The Board Of Trustees Of The University Of Illinois Accelerating distributed reinforcement learning with in-switch computing
WO2021153969A1 (en) * 2020-01-27 2021-08-05 Samsung Electronics Co., Ltd. Methods and systems for managing processing of neural network across heterogeneous processors
US11651226B2 (en) * 2020-01-30 2023-05-16 Graphcore Limited System having multiple processing unit sets for training neural networks
US20210241089A1 (en) * 2020-01-30 2021-08-05 Graphcore Limited System Having Multiple Processing Unit Sets For Training Neural Networks
US11216696B2 (en) 2020-02-06 2022-01-04 Western Digital Technologies, Inc. Training data sample selection for use with non-volatile memory and machine learning processor
GB2593756B (en) 2020-04-02 2022-03-30 Graphcore Ltd Control of data transfer between processing nodes
GB2593757B (en) 2020-04-02 2022-04-06 Graphcore Ltd Control of processing node operations
KR20230000686A (ko) * 2021-06-25 2023-01-03 삼성전자주식회사 전자 장치 및 전자 장치의 제어 방법
CN118036776A (zh) * 2022-11-03 2024-05-14 华为技术有限公司 一种模型训练方法及相关装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5107442A (en) * 1989-01-12 1992-04-21 Recognition Equipment Incorporated Adaptive neural network image processing system
CN1839397A (zh) * 2003-08-22 2006-09-27 西麦恩公司 用于处理诸如图像的具有现有拓扑的数据阵列的神经网络和网络应用
CN1963491A (zh) * 2006-12-08 2007-05-16 清华大学 基于三维有限元神经网络的缺陷识别和量化评价方法
CN101448048A (zh) * 2007-11-27 2009-06-03 希姆通信息技术(上海)有限公司 大容量电话簿智能检索方法
US20140067738A1 (en) * 2012-08-28 2014-03-06 International Business Machines Corporation Training Deep Neural Network Acoustic Models Using Distributed Hessian-Free Optimization

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006054667A1 (ja) * 2004-11-17 2006-05-26 National University Corporation Shizuoka University データ圧縮伸張方法、プログラム及び装置
CN101178895A (zh) * 2007-12-06 2008-05-14 安徽科大讯飞信息科技股份有限公司 基于生成参数听感误差最小化的模型自适应方法
CN101718562B (zh) * 2009-11-20 2011-04-20 电子科技大学 一种多通道高速并行交替采集系统的误差实时校正方法
US9038088B2 (en) * 2011-03-10 2015-05-19 Nec Laboratories America, Inc. Load balancing on hetrogenous processing cluster based on exceeded load imbalance factor threshold determined by total completion time of multiple processing phases
US9477925B2 (en) 2012-11-20 2016-10-25 Microsoft Technology Licensing, Llc Deep neural networks training for speech and pattern recognition
US9418334B2 (en) 2012-12-06 2016-08-16 Nuance Communications, Inc. Hybrid pre-training of deep belief networks
CN103198496B (zh) * 2013-03-29 2015-08-26 浙江大学 一种对抽象化图像进行矢量化的方法
US10152676B1 (en) * 2013-11-22 2018-12-11 Amazon Technologies, Inc. Distributed training of models using stochastic gradient descent
CN103810999B (zh) * 2014-02-27 2016-10-19 清华大学 基于分布式神经网络的语言模型训练方法及其系统
CN105378762B (zh) 2014-04-08 2018-01-19 微软技术许可有限责任公司 使用交替方向乘子法的深度学习
WO2015180101A1 (en) * 2014-05-29 2015-12-03 Beijing Kuangshi Technology Co., Ltd. Compact face representation

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5107442A (en) * 1989-01-12 1992-04-21 Recognition Equipment Incorporated Adaptive neural network image processing system
CN1839397A (zh) * 2003-08-22 2006-09-27 西麦恩公司 用于处理诸如图像的具有现有拓扑的数据阵列的神经网络和网络应用
CN1963491A (zh) * 2006-12-08 2007-05-16 清华大学 基于三维有限元神经网络的缺陷识别和量化评价方法
CN101448048A (zh) * 2007-11-27 2009-06-03 希姆通信息技术(上海)有限公司 大容量电话簿智能检索方法
US20140067738A1 (en) * 2012-08-28 2014-03-06 International Business Machines Corporation Training Deep Neural Network Acoustic Models Using Distributed Hessian-Free Optimization

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
FRANK SEIDE ETAL.: "On parallelizability of stochastic gradient descent for speech DNNS", 《2014 IEEE INTERNATIONAL CONFERENCE ON ACOUSTIC, SPEECH AND SIGNAL PROCESSING》 *
ZHANG SHAN SHAN ETAL.: "Asynchronous stochastic gradient descent for DNN training", 《2013 IEEE INTERNATIONAL CONFERENCE ON ACOUSTIC, SPEECH AND SIGNAL PROCESSING》 *
张代远: "基于分布式并行计算的神经网络算法", 《系统工程与电子技术》 *

Cited By (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11449737B2 (en) * 2016-09-07 2022-09-20 Robert Bosch Gmbh Model calculation unit and control unit for calculating a multilayer perceptron model with feedforward and feedback
WO2018103562A1 (zh) * 2016-12-06 2018-06-14 华为技术有限公司 一种数据处理系统及方法
CN108460453B (zh) * 2017-02-21 2022-05-17 阿里巴巴集团控股有限公司 一种用于ctc训练的数据处理方法、装置及系统
CN108734649A (zh) * 2017-04-24 2018-11-02 英特尔公司 神经网络训练机构
CN108320026A (zh) * 2017-05-16 2018-07-24 腾讯科技(深圳)有限公司 机器学习模型训练方法和装置
CN108320026B (zh) * 2017-05-16 2022-02-11 腾讯科技(深圳)有限公司 机器学习模型训练方法和装置
US11726844B2 (en) 2017-06-26 2023-08-15 Shanghai Cambricon Information Technology Co., Ltd Data sharing system and data sharing method therefor
US11537843B2 (en) 2017-06-29 2022-12-27 Shanghai Cambricon Information Technology Co., Ltd Data sharing system and data sharing method therefor
US11656910B2 (en) 2017-08-21 2023-05-23 Shanghai Cambricon Information Technology Co., Ltd Data sharing system and data sharing method therefor
CN109426553A (zh) * 2017-08-21 2019-03-05 上海寒武纪信息科技有限公司 任务切分装置及方法、任务处理装置及方法、多核处理器
CN111819578A (zh) * 2018-02-17 2020-10-23 超威半导体公司 使用带有急速更新的分布式参数服务器对神经网络进行优化的异步训练
US11687467B2 (en) 2018-04-28 2023-06-27 Shanghai Cambricon Information Technology Co., Ltd Data sharing system and data sharing method therefor
CN112204640B (zh) * 2018-05-28 2022-07-08 微软技术许可有限责任公司 针对视觉受损者的辅助设备
CN112204640A (zh) * 2018-05-28 2021-01-08 微软技术许可有限责任公司 针对视觉受损者的辅助设备
CN111937011A (zh) * 2018-06-15 2020-11-13 华为技术有限公司 一种神经网络模型权重参数的确定方法及设备
WO2020024646A1 (en) * 2018-07-31 2020-02-06 Tencent Technology (Shenzhen) Company Limited Monaural multi-talker speech recognition with attention mechanism and gated convolutional networks
US10699700B2 (en) 2018-07-31 2020-06-30 Tencent Technology (Shenzhen) Company Limited Monaural multi-talker speech recognition with attention mechanism and gated convolutional networks
CN109241241A (zh) * 2018-08-20 2019-01-18 电信科学技术第五研究所有限公司 一种基于通信数据的移动用户关系类型识别方法
CN111353579B (zh) * 2018-12-21 2024-03-29 畅想科技有限公司 利用反向传播为深度神经网络选择量化参数的方法和系统
CN111353579A (zh) * 2018-12-21 2020-06-30 畅想科技有限公司 利用反向传播为深度神经网络选择量化参数的方法和系统
CN109740755B (zh) * 2019-01-08 2023-07-18 深圳市网心科技有限公司 一种基于梯度下降法的数据处理方法及相关装置
CN109740755A (zh) * 2019-01-08 2019-05-10 深圳市网心科技有限公司 一种基于梯度下降法的数据处理方法及相关装置
CN111526169B (zh) * 2019-02-01 2022-06-14 阿里巴巴集团控股有限公司 通过网络发送数据的方法、介质、服务器和计算机设备
CN111526169A (zh) * 2019-02-01 2020-08-11 阿里巴巴集团控股有限公司 通过网络发送数据的方法、介质、服务器和计算机设备
WO2020168761A1 (zh) * 2019-02-22 2020-08-27 华为技术有限公司 训练模型的方法和装置
CN109886393A (zh) * 2019-02-26 2019-06-14 杭州闪亿半导体有限公司 一种存算一体化电路及神经网络的计算方法
CN110379416A (zh) * 2019-08-15 2019-10-25 腾讯科技(深圳)有限公司 一种神经网络语言模型训练方法、装置、设备及存储介质
CN110379416B (zh) * 2019-08-15 2021-10-22 腾讯科技(深圳)有限公司 一种神经网络语言模型训练方法、装置、设备及存储介质
CN110659678A (zh) * 2019-09-09 2020-01-07 腾讯科技(深圳)有限公司 一种用户行为分类方法、系统及存储介质
CN110659678B (zh) * 2019-09-09 2023-11-17 腾讯科技(深圳)有限公司 一种用户行为分类方法、系统及存储介质
CN113297128A (zh) * 2020-02-24 2021-08-24 中科寒武纪科技股份有限公司 数据处理方法、装置、计算机设备和存储介质
CN113297128B (zh) * 2020-02-24 2023-10-31 中科寒武纪科技股份有限公司 数据处理方法、装置、计算机设备和存储介质
CN113469355A (zh) * 2020-03-30 2021-10-01 亚马逊技术股份有限公司 分布式系统中的多模型训练管道
CN113469355B (zh) * 2020-03-30 2024-03-15 亚马逊技术股份有限公司 分布式系统中的多模型训练管道
CN112464784A (zh) * 2020-11-25 2021-03-09 西安烽火软件科技有限公司 一种基于混合并行的分布式训练方法
CN113420880A (zh) * 2021-08-24 2021-09-21 苏州浪潮智能科技有限公司 网络模型训练方法、装置、电子设备及可读存储介质
CN113420880B (zh) * 2021-08-24 2021-11-19 苏州浪潮智能科技有限公司 网络模型训练方法、装置、电子设备及可读存储介质

Also Published As

Publication number Publication date
EP3192016A4 (en) 2017-09-20
EP3192016B1 (en) 2019-05-08
CN110992935B (zh) 2023-08-11
CN110992935A (zh) 2020-04-10
ES2738319T3 (es) 2020-01-21
WO2016037351A1 (en) 2016-03-17
CN106062786B (zh) 2019-12-31
US11049006B2 (en) 2021-06-29
US20170308789A1 (en) 2017-10-26
EP3192016A1 (en) 2017-07-19

Similar Documents

Publication Publication Date Title
CN106062786A (zh) 用于训练神经网络的计算系统
Ergen et al. Online training of LSTM networks in distributed systems for variable length data sequences
CN106297774B (zh) 一种神经网络声学模型的分布式并行训练方法及系统
CN109102126B (zh) 一种基于深度迁移学习的理论线损率预测模型
Nie et al. Network traffic prediction based on deep belief network in wireless mesh backbone networks
WO2022083624A1 (zh) 一种模型的获取方法及设备
US11556850B2 (en) Resource-aware automatic machine learning system
CN111784041B (zh) 一种基于图卷积神经网络的风电功率预测方法及系统
US20180307979A1 (en) Distributed deep learning using a distributed deep neural network
CN111406267A (zh) 使用性能预测神经网络的神经架构搜索
CN110164129B (zh) 基于gernn的单交叉口多车道交通流量预测方法
WO2022057433A1 (zh) 一种机器学习模型的训练的方法以及相关设备
CN113886460A (zh) 低带宽分布式深度学习方法
CN115271099A (zh) 一种支持异构模型的自适应个性化联邦学习方法
CN115278698A (zh) 基于动态用户分布预测的无人机基站动态部署方法及装置
CN110988631B (zh) 局部放电定位检测方法、装置、可读存储介质及电气设备
Kousias et al. HINDSIGHT: an R-based framework towards long short term memory (LSTM) optimization
CN116244484A (zh) 一种面向不平衡数据的联邦跨模态检索方法及系统
CN116384240A (zh) 一种服务器能耗预测方法、装置及存储介质
CN113763928A (zh) 音频类别预测方法、装置、存储介质及电子设备
CN113837374A (zh) 神经网络的生成方法、设备及计算机可读存储介质
CN117808083B (zh) 一种分布式训练通信方法、装置、系统、设备及存储介质
CN111709275B (zh) 一种用于Affordance推理的深度网络构建方法
CN113965467B (zh) 一种基于神经网络的电力通信系统可靠性评估方法及系统
CN110348001A (zh) 一种词向量训练方法和服务器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant