本公开涉及深度学习领域,尤其涉及一种在线训练方法、装置、系统及计算机可读存储介质。
背景技术:
随着科学技术的发展,深度神经网络被广泛的应用在模型的预测中,例如,在搜索、广告和信息流等业务中,采用深度神经网络对样本数据进行训练,以获取预测点击率预估模型。
目前,采用深度神经网络的训练方式主要是离线训练,这种训练方式中,训练使用的日志可能是用户在前段时间的操作日志,使得训练样本缺乏实时性,利用之前的训练样本数据训练模型,只能是在离线模式下训练模型,因此,离线训练的模型不具有实时性。
技术实现要素:
为克服相关技术中存在的问题,本公开提供一种在线训练方法、装置、系统及计算机可读存储介质。
根据本公开实施例的第一方面,提供一种在线训练方法,包括:
基于实时的训练样本数据,获取该训练样本数据对应的模型参数集合,该模型参数集合包括深度神经网络模型的部分模型参数;
基于该训练样本数据以及该模型参数集合,获取该模型参数集合中的至少一个模型参数的梯度信息,每个梯度信息用于指示一个模型参数的更新方向;
基于该至少一个模型参数的梯度信息以及该至少一个模型参数,获取至少一个目标模型参数;
基于该至少一个模型参数的梯度信息以及该至少一个目标模型参数,对该深度神经网络模型进行更新,得到目标模型。
可选地,基于实时的训练样本数据,获取该训练样本数据对应的模型参数集合,包括:
从开源流处理平台中获取实时的训练样本数据;
提取该训练样本数据的至少一个特征;
基于该至少一个特征,获取该至少一个特征对应的模型参数。
可选地,基于该至少一个特征,获取该至少一个特征对应的模型参数,包括:
基于一致性哈希原则以及该至少一个特征,获取该至少一个特征对应的模型参数。
可选地,基于该训练样本数据以及该模型参数集合,获取该模型参数集合中的至少一个模型参数的梯度信息,包括:
采用该训练样本数据以及该模型参数集合中的至少一个模型参数,对本地模型进行更新;
对更新后的本地模型进行计算,得到该梯度信息。
根据本公开实施例的第二方面,提供一种在线训练方法,包括:
训练节点设备在接收到实时的训练样本数据后,向元信息服务器发送参数分片服务器列表请求,该参数分片服务器列表请求包括该至少一个特征;
该元信息服务器基于该参数分片服务器列表请求以及一致性哈希原则,向对应的训练节点设备发送对应的参数分片服务器列表,该参数分片服务器列表用于指示该训练节点设备分配到的参数分片服务器;
该训练节点设备基于一致性哈希原则以及该训练样本数据的至少一个特征,向对应的参数分片服务器发送模型参数请求,该模型参数请求包括该至少一个特征;
该参数分片服务器基于接收到的模型参数请求,向对应的训练节点设备发送对应的模型参数集合,每个模型参数集合包括深度神经网络模型的部分模型参数;
该训练节点设备基于该训练样本数据以及接收到的模型参数集合,获取该接收到的模型参数集合中的至少一个模型参数的梯度信息,每个梯度信息用于指示一个模型参数的更新方向;
该参数分片服务器基于获取到的至少一个模型参数的梯度信息以及该至少一个模型参数,获取至少一个目标模型参数;
该参数分片服务器向分布式文件系统周期性发送增量集合,该增量集合为在预设时间内获取的该至少一个目标模型参数以及该至少一个模型参数的梯度信息的集合,该分布式文件系统用于存储各个设备发送的数据;
用户节点设备基于该分布式文件系统中存储的至少一个增量集合,对该深度神经网络模型进行更新,得到目标模型。
可选地,每个参数分片服务器包括主节点设备和从节点设备,该主节点设备用于承担参数分片服务器的功能,该从节点设备为主节点设备的备用节点设备;
相应地,每个训练节点设备向该元信息服务器发送主节点设备列表请求,该主节点设备列表请求包括该至少一个特征;
该元信息服务器基于该主节点设备列表请求以及一致性哈希原则,向对应的训练节点设备发送对应的主节点设备列表,该主节点设备列表用于指示该训练节点设备分配到的主节点设备。
可选地,每个主节点设备将获取的该至少一个模型参数的梯度信息以及该至少一个目标模型参数同步至该从节点设备上。
可选地,该参数分片服务器支持优化算法动态库所提供的多种优化算法。
可选地,每个训练节点设备具有自定义算子,该自定义算子包括读算子和写算子,该自定义算子用于执行一种自定义操作;
相应地,该读算子用于执行读操作,该写算子用于执行写操作。
可选地,该元信息服务器从同一类该自定义算子中选出主算子和从算子,该主算子用于协调该从算子的训练进度。
可选地,该元信息服务器从同一类算子中选出主算子和从算子,包括:
当一个算子是同一类算子中第一个在该元信息服务器上注册的算子时,该算子为该主算子;
当一个算子不是同一类算子中的第一个在该元信息服务器上注册的算子时,该算子为该从算子。
可选地,该主算子协调该从算子的训练进度,包括:
当该从算子经过的训练的轮数小于等于预设数目时,该主算子对该从算子进行响应,则该从算子继续进行操作;
当该从算子的经过的训练轮数大于预设数目时,该主算子不对该从算子进行响应,则该从算子停止操作。
可选地,该参数分片服务器支持并发读写的lru缓存。
根据本公开实施例的第三方面,提供一种在线训练装置,包括:
第一获取单元,被配置为基于实时的训练样本数据,获取该训练样本数据对应的模型参数集合,该模型参数集合包括深度神经网络模型的部分模型参数;
第二获取单元,被配置为基于该训练样本数据以及该模型参数集合,获取该模型参数集合中的至少一个模型参数的梯度信息,每个梯度信息用于指示一个模型参数的更新方向;
第三获取单元,被配置为基于至少一个模型参数的梯度信息以及该至少一个模型参数,获取至少一个目标模型参数;
更新单元,被配置为基于该至少一个模型参数的梯度信息以及该至少一个目标模型参数,对该深度神经网络模型进行更新,得到目标模型。
可选地,该第一获取单元,被配置为:
从开源流处理平台中获取实时的训练样本数据;
提取该训练样本数据的至少一个特征;
该第一获取单元包括获取子单元,被配置为基于该至少一个特征,获取所述该一个特征对应的模型参数。
可选地,该获取子单元,被配置为基于一致性哈希原则以及该至少一个特征,获取该至少一个特征对应的模型参数。
可选地,第二获取单元,被配置为:
采用该训练样本数据以及所述模型参数集合中的至少一个模型参数,对本地模型进行更新;
对更新后的本地模型进行计算,得到该至少一个模型参数的梯度信息。
根据本公开实施例的第四方面,提供一种在线训练系统,包括至少一个训练节点设备、至少一个参数分片服务器、元信息服务器、至少一个用户节点设备以及分布式文件系统;
任一训练节点设备,用于在接收到实时的训练样本数据后,向该元信息服务器发送参数分片服务器列表请求,该参数分片服务器列表请求包括该至少一个特征;
任一元信息服务器,用于基于该参数分片服务器列表请求以及一致性哈希原则,向对应的训练节点设备发送对应的参数分片服务器列表,该参数分片服务器列表用于指示该训练节点设备分配到的参数分片服务器;
任一训练节点设备,还用于基于一致性哈希原则以及该训练样本数据的至少一个特征,向对应的参数分片服务器发送模型参数请求,该模型参数请求包括该至少一个特征;
任一参数分片服务器,用于基于接收到的模型参数请求,向对应的训练节点设备发送对应的模型参数集合,每个模型参数集合包括深度神经网络模型的部分模型参数;
任一该训练节点设备,还用于基于该训练样本数据以及接收到的模型参数集合,获取该接收到的模型参数集合中的至少一个模型参数的梯度信息,每个梯度信息用于指示一个模型参数的更新方向;
任一该参数分片服务器,还用于基于获取到的该至少一个模型参数的梯度信息以及该至少一个模型参数,获取至少一个目标模型参数;
任一该参数分片服务器,还用于向该分布式文件系统周期性发送增量集合,该增量集合为在预设时间内获取的该至少一个目标模型参数以及该至少一个模型参数的梯度信息的集合,分布式文件系统用于存储该在线训练系统中各个设备发送的数据;
任一用户节点设备,用于基于该分布式文件系统中存储的至少一个增量集合,对该深度神经网络模型进行更新,得到目标模型。
根据本公开实施例的第五方面,提供一种非临时性计算机可读存储介质,当该存储介质中的指令由移动终端的处理器执行时,使得移动终端能够执行上述第一方面的方法。
根据本公开实施例的第六方面,提供一种应用程序,该应用程序包括一条或多条指令,该一条或多条指令可以由电子设备的处理器执行,已完成上述实施例中提供的在线训练方法的步骤,该方法步骤包括:
基于实时的训练样本数据,获取该训练样本数据对应的模型参数集合,该模型参数集合包括深度神经网络模型的部分模型参数;
基于该训练样本数据以及该模型参数集合,获取该模型参数集合中的至少一个模型参数的梯度信息,每个梯度信息用于指示一个模型参数的更新方向;
基于该至少一个模型参数的梯度信息以及该至少一个模型参数,获取至少一个目标模型参数;
基于该至少一个模型参数的梯度信息以及该至少一个目标模型参数,对该深度神经网络模型进行更新,得到目标模型。
根据本公开实施例的第七方面,提供一种计算机设备,该计算机设备包括:处理器;用于存放计算机程序的存储器;其中,该处理器用于执行存储器上所存放的计算机程序,实现该在线训练方法中任一项的方法步骤。
本公开的实施例提供的技术方案可以包括以下有益效果:
通过将深度神经网络模型的所有模型参数分成多个部分,当获取到实时的训练样本数据时,采用与该实时训练数据对应的模型参数对该深度神经网络模型进行训练,得到每个模型参数的梯度信息;基于每个模型参数的梯度信息以及与该实时训练数据对应的模型参数,获取至少一个目标模型参数;基于该至少一个目标模型参数以及该每个模型参数的梯度信息,更新该深度神经网络模型,来实现在线训练模型的目的。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是根据一示例性实施例示出的一种在线训练方法的流程图。
图2是根据一示例性实施例示出的一种在线训练系统的示意图。
图3是根据一示例性实施例示出的一种参数服务器的结构示意图。
图4是根据一示例性实施例示出的一种在线训练系统初始化的方法流程图。
图5是根据一示例性实施例示出的一种一致性哈希原则示意图。
图6是根据一示例性实施例示出的一种参数服务器存储数据的示意图。
图7是根据一示例性实施例示出的一种在线训练方法的流程图。
图8是根据一示例性实施例示出的一种在线训练装置的框图。
图9是根据一示例性实施例示出的一种在线训练装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
图1是根据一示例性实施例示出的一种在线训练方法的流程图,如图1所示,该在线训练方法,包括以下步骤。
在步骤s11中,基于实时的训练样本数据,获取该训练样本数据对应的模型参数集合,该模型参数集合包括深度神经网络模型的部分模型参数。
在步骤s12中,基于该训练样本数据以及该模型参数集合,获取该模型参数集合中的至少一个模型参数的梯度信息,每个梯度信息用于指示一个模型参数的更新方向。
在步骤s13中,基于该至少一个模型参数的梯度信息以及该至少一个模型参数,获取至少一个目标模型参数。
在步骤s14中,基于该至少一个模型参数的梯度信息以及该至少一个目标模型参数,对该深度神经网络模型进行更新,得到目标模型。
可选地,该基于实时的训练样本数据,获取该训练样本数据对应的模型参数集合,包括:
从开源流处理平台中获取实时的训练样本数据;
提取该训练样本数据的至少一个特征;
基于该至少一个特征,获取该至少一个特征对应的模型参数。
可选地,该基于该至少一个特征,获取该至少一个特征对应的模型参数,包括:
基于一致性哈希原则以及该至少一个特征,获取该至少一个特征对应的模型参数。
可选地,该基于该训练样本数据以及该模型参数集合,获取该模型参数集合中的至少一个模型参数的梯度信息,包括:
采用该训练样本数据以及该模型参数集合中的至少一个模型参数,对本地模型进行更新;
对更新后的本地模型进行计算,得到该至少一个模型参数的梯度信息。
图1所示的过程可以是通过一个参数服务器来完成目标模型的在线训练的过程,在一种可能的实施方式中,也可以通过多个参数服务器来完成目标模型的在线训练,该多个参数服务器可以位于一个在线训练系统中,如图2所示,图2是根据一示例性实施例示出的一种在线训练系统的示意图,该系统包括参数服务器集群以及开源流处理平台。该在线训练系统可以进行模型训练,被训练的模型可以是深度神经网路模型。在一些实施例中,该在线训练系统中的参数服务器集群包括多个参数服务器,在对深度神经网络模型训练时,各个参数服务器所承担的任务不同,各个参数服务器可以分为至少一个参数分片服务器、至少一个训练节点设备、至少一个用户节点设备以及至少一个元信息服务器。
开源流处理平台,用于存储训练样本数据,该训练样本数据可以是用户的操作日志数据,用户的操作日志数据可以是用户进行的网页浏览,搜索、观看视频等操作的日志数据,还可以是用户的其他操作的日志数据,该开源流处理平台可以是kafka平台。
元信息服务器,用于维护整个参数服务器集群的训练配置,并对训练进度进行协调。例如,当该在线训练系统开始进行在线训练的任务时,该元信息服务器可以对整个参数服务器集群进行初始化配置,并且,在训练过程中,该元信息服务器还可以对整个参数服务器集群进行协调配置。
参数分片服务器,用于模型参数的存储,并执行梯度更新,其中,该模型参数可以是该在线训练系统正在训练的深度神经网络模型的权重参数以及深度神经网络模型的偏置参数。在一些实施例中,该参数分片服务器还可以包括主节点设备和从节点设备,其中,主节点设备和参数分片服务器的用途一致,而从节点设备可以作为该主节点设备的备用节点设备,该主节点设备还可以将自己存储的模型参数以及梯度参数同步至该主节点设备的从节点设备上,那么,当主节点设备在训练过程中出现故障时,该主节点设备的从节点设备可以成为主节点设备,从而代替出故障的主节点设备继续进行训练任务,以保持训练进度。
训练节点设备,用于从开源流处理平台中获取训练样本数据、抽取该样本数据的特征、执行模型训练来得到模型参数的梯度信息以及将模型参数的梯度信息发送至参数分片服务器。
用户节点设备,用于执行与训练相关的操作,训练相关的操作可以是指定包含训练样本的开源流处理平台的地址,还可以是基于各个参数分片服务器中的模型参数导出深度网络模型。
该参数服务器集群中的训练节点设备具有自定义算子,按照算子的类别,算子可以分为读算子和写算子两类,算子用于执行一种操作,相应地,读算子用于执行读操作,写算子用于执行写操作,读算子和写算子用于训练节点设备与参数分片服务器之间的交互,例如,训练节点设备通过读算子读取参数分片服务器中的模型参数;类似地,训练节点设备通过写算子将模型参数的梯度信息发往参数分片服务器,以便参数分片服务器可以执行梯度更新的步骤。
在一些实施例中,元信息服务器还用于对参数服务器集群中的同一类算子进行选主,例如,参数服务器集群中的任一个训练节点设备中的算子在启动的时候,会在元信息服务器中注册,那么,当一个算子为同一类算子中第一个在该元信息服务器上注册的算子时,则该算子为该同一类算子中的主算子,该同一类算子中除了该主算子以外的算子为从算子,当然,当主算子不工作的时候,元信息服务器会重新在该同一类算子中选一个主算子,同一类算子中的主算子用于协调同一类算子中的从算子的训练进度,例如,当训练节点设备经过一轮训练时,算子视为进行一次操作,即该算子也经过一轮训练,那么,主算子协调该主算子的从算子的操作进度可以是如下方式:
当从算子经过的训练轮数小于等于预设数目时,该主算子对该从算子进行响应,则该从算子继续进行操作,也即是,当该从算子接收到该主算子的响应时,该从算子继续进行操作。
当从算子的经过的训练轮数大于预设数目时,该主算子不对该从算子进行响应,则该从算子停止操作,也即是,当该从算子没有接收到该主算子的响应时,该从算子暂停操作。
其中,该预设数目可以有不同的取值,例如,当该预设数目为零时,该在线训练系统支持整体同步并行计算模型(bulksynchronousparallel,bsp);当该预设数目为∞时,该训练系统支持异步并行计算模型(asynchronousparallel,asp);当该预设数目为[0,∞]时,该在线训练系统支持延迟同步并行计算模型(stalenesssynchronousparallel,ssp),上述三种计算模型都是分布式一致性模型,从而使得该参数服务器可以支持多种分布式一致性模型,提高了该参数服务器的普适性。
可以理解的是,由于参数服务器在进行模型训练时,尤其是对深度神经网络进行训练时,可能会涉及到大量的数据,且一个算子可能经过多轮训练,就可能使得该算子在对大量的数据进行操作时,可能会出现算子阻塞的情况,从而降低该在线训练系统的训练进度以及训练效率,而元信息服务器对训练中的算子进行选主,可以使得训练中的从算子只进行预设轮数的训练,从而灵活地支持多种分布式一致性模型,进而可以大大提高该在线训练系统的进行进度以及训练效率。
该参数服务器集群中的任一参数服务器可以支持多种优化算法,每一种优化算法都通过统一接口的优化算法动态库实现,从而可以支持模型训练逻辑的在线配置和变更,而且还可以在不停服务的情况下对计算逻辑进行更新,从而,当该参数服务器在进行模型训练时,可以支持多种优化算法优化训练结果,并且还可以支持多种逻辑计算,从而使得该在线训练系统具有普适性。
该在线训练系统中的所有设备中的数据可以存储至一个分布式文件系统中,那么,该在线训练系统中的设备可以向该分布式文件系统发送数据,也可以从该分布式文件系统中获取数据。
该参数服务器集群中的任一参数服务器用于进行数据存储的核心数据结构为支持高并发读写的近似页面置换算法(leastrecentlyused,lru)缓存。参数服务器通过支持高并发读写的布谷鸟哈希映射表(cuckoohashmap),来支持并发的键值查询、修改和删除操作,其中,布谷鸟哈希映射为一个开源高性能、节约内存、支持并发读写的哈希表实现,通过主哈希函数和次哈希函数将数据分别映射到两个地址空间,当发生哈希冲突时,将数据从主地址空间逐出到次地址空间,通过各个数据的循环逐出,布谷鸟哈希映射即使在非常高的利用率下也具有稳定的性能,在此不做赘述,
图3是根据一示例性实施例示出的一种参数服务器的结构示意图,如图3所示,参数服务器300可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessingunits,cpu)301和一个或一个以上的存储器302,其中,所述存储器302中存储有至少一条指令,所述至少一条指令由所述处理器301加载并执行以实现下述各个方法实施例提供的方法。当然,该参数服务器还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,另外,该参数服务器还具有远程调用(remoteprocedurecall,rpc)接口,并通过算子的形式对该rpc接口进行封装,使得该rpc接口可以嵌入到通用的训练工具中,从而使得该参数服务器可以借助通用的训练工具进行模型训练,该通用的训练工具可以是第二代人工智能学习系统。该参数服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。
在示例性实施例中,还提供了一种非临时性计算机可读存储介质,例如包括指令的存储器,上述指令可由终端中的处理器执行以完成下述实施例中的在线训练的方法。例如,该计算机可读存储介质可以是只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、只读光盘(compactdiscread-onlymemory,cd-rom)、磁带、软盘和光数据存储设备等。
图2和图3分别是对本公开提出的在线训练方法的实施环境以及参数服务器的硬件的描述,在利用图2中的在线训练系统进行模型训练之前,需要初始化,该在线训练系统的初始化过程可以是如图4的过程,图4是根据一示例性实施例示出的一种在线训练系统初始化的方法流程图,如图4所示,包括以下步骤。
在步骤s41中,初始化参数服务器集群的元信息服务器。
初始化该元信息服务器可以是将初始模型参数集合以及配置信息等配置到该元信息服务器。其中,该初始模型参数集合包括初始模型的所有初始模型参数,初始模型为该在线训练系统需要训练的模型,该初始模型可以是深度神经网络模型,相应地,该初始模型参数为该深度神经网络模型的模型参数,那么,该深度神经网络模型的模型参数可以包括该深度神经网络模型的权重参数以及该深度神经网络模型的偏置参数。
该配置信息用于配置该在线训练系统中的参数服务器集群、开源流处理平台、以及分布式文件系统等。使得该元信息服务器可以基于该配置信息,维护整个参数服务器集群的训练配置,并对训练进度进行协调。该配置信息包括该元信息服务器对每个参数片服务器进行配置的配置信息以及该元信息服务器对每个训练节点设备进行配置的配置信息。其中,该元信息服务器对每个参数片服务器进行配置的配置信息,可以是该元信息服务器为每个参数分片服务器分配模型参数的配置信息,还可以是该元信息服务器对每个参数分片服务器的主节点设备以及从节点设备的分配的配置信息,还可以是该元信息服务器对每个参数分片服务器的主节点设备进行配置的配置信息。而该元信息服务器对每个训练节点设备进行配置的配置信息,可以是该元信息服务器对每个训练节点设备中的算子选主的配置信息,还可以是每个训练节点设备与开源流处理平台的连接配置的配置信息。
需要说明的是,本步骤s41还可以初始化该参数服务器集群的其他配置信息到该元信息服务器,本公开实施例对于该其他配置信息不做具体限定。
在步骤s42中,该元信息服务器将配置信息发送至对应的各个参数分片服务器以及各个训练节点设备。
本步骤s42中的各个参数分片服务器的主节点设备以及各个训练节点设备,可以由该元信息服务器进行协调,那么,该元信息服务器向其负责协调的上述参数服务器发送对应的配置信息,可以使得上述参数服务器可以进行初始化配置,见步骤s43和s46。
在步骤s43中,该参数服务器集群中的任一参数分片服务器基于接收的配置信息,初始化该参数分片服务器的主节点设备和从节点设备。
该参数分片服务器还可以基于接收的配置信息对该参数分片服务器的节点设备进行选主,也即是,根据该配置信息该参数分片服务器可以选出主节点设备和从节点设备,本公开实施例对于该参数分片服务器具体的选主过程不做限定。
该配置信息还用于对主节点设备和从节点设备进行初始化配置,使得主节点设备可以将模型参数更新到优化算法动态库,并为本地模型分配内存空间,还可以使得主节点设备将其更新的数据同步至从节点设备。
在步骤s44中,基于一致性哈希原则,该元信息服务器将每个模型参数集合发送至各个对应的参数分片服务器的主节点设备。
该模型参数集合为该初始模型参数集合的子集,基于一致性哈希原则,元信息服务器可以将该初始模型参数集合分成多个子集,也即是,每个模型参数集合为该初始模型参数集合的一个子集,每个模型参数集合可以对应一个参数分片服务器,参数分片服务器中的主节点设备承担参数分片服务器的功能,所以,该元信息服务器将每个模型参数集合发送至对应的参数分片服务器的主节点设备上。
具体地,参见图5,图5是根据一示例性实施例示出的一种一致性哈希原则示意图,以初始模型参数集合包括4个初始模型参数,以及3个参数分片服务器为例,该元信息服务器基于一致性哈希原则,将各个初始模型参数发送至对应的参数分片服务器的过程,可以是如下步骤s44a至s44g所示的过程:
在步骤s44a中,该元信息服务器将全量的缓存空间当做一个环形存储空间。
其中,该全量的缓存空间为该在线训练系统共同维护的缓存空间,可以是指该在线训练系统中所有参数分片服务器所提供的缓存空间,该环形空间总共分成2^32个缓存区,每个缓存区对应一个32位的二进制数。
在步骤s44b中,该元信息服务器分别对3个参数分片服务器进行哈希计算,得到3个32位的二进制数。
该3个参数分片服务器分别记为服务器1、服务器2以及服务器3,该元信息服务器对服务器1的身份标识号(identification,id)进行哈希计算得到node1,对服务器2的id进行哈希计算得到node2,对服务器3的id进行哈希计算得到node3,node1至node3均为32位的二进制数。
在步骤s44c中,该元信息服务器基于参数分片服务器的二进制数,将3个参数分片服务器映射到该环形存储空间中对应的缓存区。
该元信息服务器将获取的node1,node2和node3与该环形存储空间中的缓存区相匹配,使得该元信息服务器可以将与node1,node2和node3对应的参数分片服务器映射到该环形存储空间中对应的缓存区中,从而可以确定服务器1、服务器2以及服务器3在该环形存储空间中的位置。
在步骤s44d中,该元信息服务器分别对该4个初始模型参数进行哈希计算,得到4个32位的二进制数。
该4个初始模型参数分别记为参数1、参数2、参数3和参数4,元信息服务器对参数1进行哈希计算得到k1,对参数2进行哈希计算得到k2,对参数3进行哈希计算得到k3,对参数4进行哈希计算得到k4,k1至k4均为32位的二进制数。
在步骤s44e中,该元信息服务器基于初始模型参数获取的二进制数,将4个初始模型参数映射到该环形存储空间中对应的缓存区。
该元信息服务器将获取的k1、k2、k3和k4与该环形存储空间中的缓存区相匹配,使得该元信息服务器可以将与k1、k2、k3和k4对应的初始模型参数器映射到该环形存储空间中对应的缓存区中,从而可以确定参数1、参数2、参数3和参数4在该环形存储空间中的位置。
在步骤s44f中,该元信息服务器基于初始模型参数以及参数分片服务器在该环形存储空间的位置,给各个参数分片服务器分配初始模型参数。
在任一个初始模型参数的顺时针方向上,该元信息服务器寻找到与该初始模型参数环上距离最小的参数分片服务器后,将该初始模型参数分配给该参数分片服务器,其中,该环上距离为两个缓存区的中心点在环上的距离,例如,缓存区1的中心点为m,缓存区2的中心点为n,则缓存区1和缓存区2的环上距离为点m到点n的环上距离。
例如,在环形存储空间上,k2与节点node1的距离最小,则该元信息服务器将参数2分配给节点node1所对应的服务器1;k1与节点node2的距离最小,则该元信息服务器将参数1分配给节点node2所对应的服务器2,k4与node2的距离最小,则该元信息服务器将参数4分配给节点node2所对应的服务器2;k3与node3的距离最小,则该元信息服务器将参数3分配给节点node3所对应的服务器3。那么,相应地,参数2为一个模型参数集合,参数1和参数4可以形成一个模型参数集合,参数3为一个模型参数集合。
在步骤s44g中,该元信息服务器向各个参数分片服务器发送分配的初始模型参数。
基于上述示例,该元信息服务器将参数2发送给服务器1,将参数1和4发送给服务器2,参数3发送给服务器3。
需要说明的是,本公开实施例提供的初始模型参数不一定是4个,对本公开实施例而言,元信息服务器具有大量的初始模型参数,本公开实施例对初始模型参数的数目不做具体限定。
在步骤s45中,该主节点设备存储该模型参数集合。
该主节点设备为了实现多线程读写安全,可以使用一个环形数组对参数进行存储,参见图6,图6为根据一示例性实施例示出的一种参数服务器存储数据的示意图,对图6的具体内容描述如下:
环形数组的元素使用64位(bit)整数实现,来保证操作的原子性,其中,元素的高位的第一个bit用来标记该元素是否已经被使用,例如,当该元素高位的第一个bit为1时,则该元素已经被使用过,当该元素高位的第一个bit为0时,则该元素未被使用过;该元素高位的第二个bit用来标记该元素最近是否被访问过,例如,当该元素高位的第二个bit为1时,则该元素被访问过,当该元素的高位第二个bit为0时,则该元素未被访问过;该元素低位的48bit用来记录该元素的内存地址,例如,图6中的entry1(0,0,entry1指针),即是,entry1为没有被使用过并且没有被访问过的元素,entry1指针为该entry1的内存地址。
该环形数组的元素初始化时,可以标记该环形数组中的元素已经被占用、最近被访问过。基于最近未用(clock)算法,将最近一段时间内没有访问过的数据淘汰,从而保证参数的存储不超过预设的内存上限。
clock算法在淘汰一个元素时会给最近被访问过的元素两次机会,即第一次准备淘汰某个元素时,如果该元素最近被访问过,则清除被访问的标记,继续检查下一个元素。如果该元素最近未被访问过,则执行淘汰操作。参数服务集群中的各个设备均为参数服务器,由于参数服务器的并发读写非常频繁,为了避免频繁申请和释放内存占用cpu,使用对象池来替代系统的内存分配器,另外,对象池也可以对参数服务器中的对象进行延迟回收,保证多线程并发操作的安全性,该对象可以是模型参数,并且,当对象池中的对象被参数服务器用到时,该参数服务器可以从该对象池中直接获取该对象,从而可以降低cpu的占用率。
具体地,对参数服务器存储数据的过程可以是如下步骤s45a至s45f所示的过程:
在步骤s45a中,当该参数服务器的缓存的容量为n时,该参数服务器将环形数组的大小初始化为n(图6中,n=9)。
在步骤s45b中,该参数服务器获取当前环形数组的下标p对应的元素,并将下标自增1。
那么,此时该环形数组的下标为p+1,该参数服务器让下标p对n取模后,假定为i,则当前键值(key)对应数组第i个元素,该参数服务器可以对该环形数组中第i个元素进行检查,以便确定该元素是否被淘汰。
在步骤s45c中,当该参数服务器在哈希表中查询不到该key时,对该环形数组中第i个元素进行检查。
其中,该哈希表可以是布谷鸟哈希映射。该参数对该第i个元素进行检查,可以是该参数服务器检查该第i个元素是否被占用过以及是否被访问过。
在步骤s45d中,当检查完该元素后,如果该元素尚未被占用,则该参数服务器对该元素进行初始化。
该初始化可以是令entryi=(1,1,addri),表示数组第i个位置已经被占用、最近被访问过,第i个位置上的元素的地址为addri。
在步骤s45e中,当检查完该元素后,如果该元素已经被占用,该参数服务器进一步判断该元素是否最近被访问过,如果该元素没有被访问过,淘汰该元素,执行步骤s45d中,如果被访问过,则清除被访问过的标记,返回s45b重复执行
需要说明的是,对一个键值key而言,当该参数服务器在布谷鸟哈希映射中查询不到该key时,该参数服务器执行步骤s45c至s45e,当该参数服务器查询到布谷鸟哈希映射表中存在该key时,则该参数服务器执行步骤s45f。
在步骤s45f中,当该参数服务器查询到哈希表中存在该key时,该参数服务器则获取其对应的entryi,并通过位运算获取其值的地址,执行更新。
该更新是指参数服务器更新键值key对应的value,具体地,该参数服务器通过位运算获取value的内存地址,然后对value进行更新。另外,并发更新的原子性,可以通过布谷鸟哈希映射表来保证。
需要说明的是,步骤s45b至s45f为参数服务器对键值进行并发插入和修改的过程。另外,value的内存地址即是每个模型参数存储在参数服务器的内存中的地址,而参数服务器的内存有限,当参数服务器内存中存储的模型参数达到上限时,参数服务器可以基于上述clock算法,来淘汰参数服务器内存中最近一段时候没有被访问过的模型参数,并将淘汰的模型参数存储至对象池中,以便当该参数服务器用到该数据时,可以直接从对象池中获取该数据,并且,参数服务器可以复用被淘汰的模型参数之前占用内存,该内存可以用来存储该参数服务器新接收的模型参数。另外,该参数服务器还可以将被访问过的模型参数或者被占用的模型参数存储至该参数服务器的缓存区中,来到达存储数据的目的。
在步骤s46中,在线训练系统中的任一训练节点设备接收到该元信息服务器发送的配置信息后,基于该配置信息,训练节点设备与开源流处理平台相连接。
该配置信息可以包括训练节点设备与开源流处理平台的连接配置的配置信息,例如,该开源流处理平台的地址信息,以便该训练节点设备可以与该开源流处理平台连接,进而使得该训练节点设备可以从该开源流处理平台中获取到实时的训练样本数据。
该训练节点设备的初始化可以是将该训练节点设备与开源流处理平台kafka相连接,以便该训练节点设备可以在该kafka内获取到实时的训练样本数据。
该训练节点设备初始化还可以是该训练节点设备初始化写算子和读算子,该写算子为该训练节点设备本地的写算子,该训练节点设备本地的读算子,初始化该写算子和读算子可以使得该训练节点设备的本地的写算子能够进行写操作,本地的读算子能够进行读操作,例如,该训练节点设备将该写算子的初始训练轮数和该读算子的初始训练轮数均设置为0。
需要说明的是,步骤s46与s45可以按照当前的顺序执行,也可以先执行步骤s46,再执行步骤s45,当然步骤s45和s46也可以同时执行,本公开实施例对该上述步骤s45和s46的执行顺序不做具体限定。可以理解的是,该元信息服务器也可以同时向任一参数分片服务器发送配置信息以及对应的初始模型参数,以便该任一参数分片服务器可以基于该配置信息,初始化优化算法动态库。另外,在该参数服务器集群中,训练节点设备的初始化与参数分片服务器的初始化没有严格执行步骤,本公实施例对训练节点设备的初始化与参数分片服务器的初始化的执行顺序不做具体限定。
图4为图2中的在线训练系统初始化的过程,当该在线训练系统初始化后,该在线训练系统需要对系统内的模型进行训练,在此,基于图2所示的实施环境,并以该在线训练系统为训练深度神经网络模型为例,对本公开所提出的在线训练方法做如图7所示实施例来进行描述,图7是是根据一示例性实施例示出的一种在线训练方法的流程图,如图7所示,包括以下步骤。
在步骤s71中,在线训练系统中的任一训练节点设备从该开源流处理平台中获取实时的训练样本数据。
对于本公开实施例来说,该训练样本数据可以是包括用户信息以及该用户的操作信息,该用户的操作信息可以是用户点击的视频的视频信息等可以表示用户进行过什么样的操作的信息。该训练节点设备可以周期性的从该开源流处理平台中获取实时的训练样本数据,使得该训练节点设备获取的训练样本数据具有实时性,进而可以保证该在线训练系统可以长时间的持续在线训练模型,该周期可以是毫秒级。
在步骤s72中,该训练节点设备提取该训练样本数据的至少一个特征。
该训练样本数据的特征可以包括用户特征以及用户点击视频的视频特征,其中,该用户特征可以是用户的年龄、性别等,该视频特征还可以是视频的id、视频的内容类别等,那么,该训练节点设备可以基于该训练样本数据中的用户信息,提取出至少一个用户特征,该训练节点设备还可以基于该训练样本数据中的视频信息,提取出至少一个视频特征。
每个特征可以形成一个特征列表,例如,视频数据的id为一个特征,该训练节点设备将该训练样数据中的所有视频数据的id作成一个特征列表,特征列表中包括id1、id2以及id3等。
本公开实施例对训练节点设备提出的训练样本数据特征的内容以及训练样本数据的特征数目不做具体限定。
在步骤s73中,该训练节点设备向该元信息服务器发送主节点设备列表请求。
该主节点设备列表请求可以包括该至少一个特征的特征列表,还可以包括该训练节点设备的id,以便该元信息服务器可以基于该主节点设备列表请求,向该训练节点设备发送对应的各个参数分片服务器的主节点设备列表。
在步骤s74中,基于该主节点设备列表请求以及一致性哈希原则,该元信息服务器向该训练节点设备发送主节点设备列表。
该元信息服务器还可以基于该主节点设备请求,向该训练节点设备发送当前参数分片服务器的个数。
该元信息服务器可以基于该主节点设备列表请求中至少一个特征以及一致性哈希原则,为该训练节点设备分配主节点设备,该主节点设备列表用于指示基于一致性哈希原则该训练节点设备分配到的主节点设备。
具体地,该元信息服务器为该训练节点设备分配主节点设备的过程,可以是如下过程:根据图5所示的一致性哈希原则示意图,该元信息服务器将该至少一个特征的特征列表中的内容映射到图5所示的环形存储空间上,例如,视频特征列表中的id1、id2和id3映射到该环形存储空间上,因为,该环形空间上映射有各个参数分片服务器,根据步骤s44中的分配原则,将id1分配给服务器3,将id2和id3分配给服务器2。那么,该元信息服务器为该至少一个特征列表中的内容分配对应的参数分片服务器,从而该元信息服务器可以将该所有特征分配到的参数分片服务器的主节点设备的id形成一个主节点设备列表,进而该元信息服务器可以根据该主节点设备列表请求中的训练节点设备的id,向该训练节点设备发送该主节点设备列表。
在步骤s75中,该训练节点设备基于该至少一个特征,获取该至少一个特征对应的模型参数集合。
本步骤s75可以是如下步骤s75a至步骤s75b所示的过程来实现:
在步骤s75a中,基于一致性哈希原则以及该至少一个特征,该训练节点设备向该主节点设备列表中的各个主节点设备发送模型参数请求。
该模型参数请求携带该训练节点设备的id以及该对应的特征列表中的内容,该对应的特征列表中的内容可以基于步骤s74中的分配原则获得,该训练节点设备可以将每个特征的列表内的数据映射到图5所示的环形存储空间上,并基于相同的原则为该每个特征的列表内的数据分配对应的主节点设备,以步骤s74中的例子来做如下说明:将id1分配给给给服务器3,将id2和id3分配给服务器2,以便该各个主节点设备可以根据该对应的特征列表中的内容向该训练节点设备发送对应的模型参数。
另外,该训练节点设备向主节点设备发送模型参数集合请求,可以是通过读算子向主节点设备发送模型参数集合请求,则该模型参数集合请求也即是读算子请求。
在步骤s75b中,该主节点设备接收到该模型参数请求后,基于一致性哈希原则,向该训练节点设备发送对应的模型参数。
该主节点设备接收到该模型参数请求后,该主节点设备查询该主节点设备是否存储模型参数,当该主节点设备内没有存储模型参数时,该主节点设备对模型参数进行随机初始化,当该主节点设备内存储模型参数时,该主节点设备向训练节点设备发送对应的模型参数,该主节点设备存储的模型参数可以是在初始化阶段元信息服务器向该主节点设备发送的模型参数集合中的模型参数。
具体地,该主节点设备对向该训练节点设备发送对应的模型参数的确定过程,可以是如下过程:该主节点设备根据图5所示一致性哈希原则示意图,将对应的特征列表中的内容以及该主节点设备上存储的模型参数映射到图5所示的环形存储空间上,并根据步骤s44中的分配原则,为每个对应的特征列表中的内容分配对应的模型参数,例如,参数1分配给id2,参数2、参数5和参数2,分配给id2,参数6分配至id3。进而,该节点设备可以将所有的对应的模型参数发送至该训练节点设备,以便该训练节点设备更新该对应的模型参数。
当该主节点设备列表上的所有主节点设备都向该训练节点设备发送了对应的模型参数后,该训练节点设备将获取到本轮训练所有的模型参数的集合,即获取到模型参数集合,可以理解的是,该模型参数集合为当前训练的深度神经网络模型的所有模型参数的集合的子集。
需要说明的是,步骤s71至s75所示的过程,可以表示该在线训练系统中的任一训练节点设备基于实时的训练样本数据,获取该训练样本数据对应的模型参数集合的过程。
在步骤s76中,该训练节点设备基于该训练样本数据以及该模型参数集合,获取该模型参数集合中的至少一个模型参数的梯度信息,每个梯度信息用于指示一个模型参数的更新方向。
该训练节点设备可以基于优化算法,获取该模型参数集合的至少一个模型参数的梯度信息,该优化算法可以是梯度下降算法,还可是其他优化算法,本发明实施对优化算法不做具体限定。
梯度信息指示的模型参数的更新方向可以是该模型参数在下一个训练周期中的更新方向。
本步骤s76可以通过如下步骤s76a至步骤s76b所示的过程来实现:
在步骤s76a中,该训练节点设备采用该训练样本数据以及该模型参数集合中的至少一个模型参数,对本地模型进行更新。
该本地模型为在线训练系统中当前将要训练的深度神经网络模型的拷贝,并且,该在线训练系统中的参数服务器集群内的任一训练节点设备均有一份该深度神经网络模型的拷贝,也即是该在线训练系统中的参数服务器集群内的任一训练节点设备均有一个本地模型,该本地模型为该深度神经网络模型的拷贝。
该训练节点设备以该训练样本数据作为本地模型的输入,以该模型参数集合中的至少一个模型参数作为本地模型的模型参数,对该本地模型进行更新。
在步骤s76b中,该训练节点设备对更新后的本地模型进行计算,得到该至少一个模型参数的梯度信息。
例如,该训练节点设备基于梯度下降算法,对该深度神经网络模型进行反向传播计算,得到该至少一个模型参数的梯度信息。
需要说明的是,该训练节点设备可以加载优化算法动态库以及通过rpc接口嵌入到通用的训练工具中执行本步骤s76。
在步骤s77中,基于一致性哈希原则,该训练节点设备向对应的主节点设备发送该至少一个模型参数的梯度信息。
本步骤s77对一致性哈希原则的应用与和步骤s75a对一致性哈希原则的应用一致,也需要根据样本数据的特征来确定主节点设备对应的梯度信息,在此不做赘述。
该训练节点设备可以通过写算子请求向各个主节点设备发送对应的梯度信息。
在步骤s78中,该在线训练系统中的任一主节点设备接收到该至少一个模型参数的梯度信息后,基于该至少一个模型参数的梯度信息以及该至少一个模型参数,获取至少一个目标模型参数。
该目标模型参数为训练节点设备更新本地模型所需要的目标模型参数。该主节点设备可以根据预设的更新算法对该模型参数集合中的至少一个模型参数进行更新,得到该至少一个目标模型参数,并将该至少一个目标模型参数保存到内存中以及记录到日志里。
该主节点设备还可以基于该至少一个模型参数的梯度信息以及梯度更新算法,更新该梯度信息,得到至少一个模型参数的目标梯度信息。其中,本公开实施例对该预设的更新算法以及梯度更新算法不做具体限定。
需要说明的是,该在线训练系统中的每个主节点设备都需要执行步骤s78,以便该在线训练系统训练的深度神经网络模型的所有模型参数都可以得到更新。
在步骤s79中,该主节点设备周期性地向该主节点设备的从节点设备发送增量集合,该增量集合为在预设时间内获取的该至少一个目标模型参数以及该至少一个模型参数的梯度信息的集合。
在训练过程中,该在线训练系统中的任一节点设备中的模型参数被更新时,该节点设备可以将当前最近一段时间内接收的梯度信息以及获得目标模型参数打包成一个增量集合,那么,可以理解的是,该预设时间可以是当前最近一段时间,本公开实施对于该预设时间不做具体限定。
本步骤s79可以使得将主节点设备上的数据备份至该主节点设备的从节点设备上,以便该从节点设备基于至少一个该增量参数集合,获取该整个神经网络模型,那么,当该主节点设备出现故障时,该从节点设备可以切换为主节点设备,并进行该主节点设备将要进行的步骤,从而可以使得该轮训练不中断。
需要说明的是,该主节点设备向该主节点设备的从节点设备发送该增量集合的周期,可以是毫秒级,本公开实施例对具体的周期不做限定,另外,该参数服务器集群中的每个主节点设备都需要执行步骤s79。
在步骤s710中,该主节点设备向分布式文件系统周期性地发送该增量集合,该分布式文件系统用于存储该在线训练系统中各个设备发送的数据。
该参数服务器集群中的每个主节点设备都需要执行本步骤s710,使得该分布式文件系统可以接收所有主节点设备发送的增量集合,从而使得该分布式文件系统可以存储到该深度神经网络模型的所有模型参数以及梯度信息,从而用于线上预测服务,参见步骤s714。
并且,该参数服务器集群中的每个主节点设备可以将本地存储的目标模型参数以及梯度信息,周期性地生成快照,并将该快照发送至该分布式文件系统中,使得该分布式文件系统可以对该主节点设备的训练进度进行存档,当该主节点设备出现故障时,以便从节点设备可以接着该主节点设备的训练进度继续对模型参数进行更新。
本步骤s710中该主节点设备的发送周期可以是分钟级,本发明实施例对该周期不做具体限定。
在步骤s711中,当该元信息服务器收到用户节点设备的模型请求时,基于该分布式文件系统中存储的至少一个增量集合,向该用户节点设备发送至少一个增量集合的存储地址。
该元信息服务器向该用户节点设备发送的该至少一个增量集合的存储地址为在当前最近一段时间内,该分布式文件系统存储的增量集合的地址,并且,该至少一个增量集合中包括深度网络模型的所有模型参数和所有模型参数的梯度信息,以便该用户节点设备可以基于该至少一个增量集合,获取目标模型,参见步骤s714。
在步骤s712中,该用户节点设备向该分布式文件系统发送读请求,该读请求包括该至少一个增量集合的存储地址。
在步骤s713中,基于该读请求,该分布式文件系统向该用户节点设备发送该至少一个增量集合。
基于该读请求中的该至少一个增量集合的存储地址,该分布式文件系统可以确定该用户节点设备请求读取的该至少一个增量集合。
在步骤s714中,该用户节点设备基于接收的至少一个增量集合对该深度神经网络模型进行更新,得到目标模型。
该用户节点设备可以将用户当前操作对应的数据作为该深度神经网络模型的输入,并根据该至少一个增量集合中的模型参数以及梯度信息,对该深度神经网络模型进行更新,从而可以获得该目标模型。
需要说明的是,步骤s711和s714所示的过程,也即是,基于该分布式文件系统中存储的至少一个增量集合,用户节点设备对该深度神经网络模型进行更新,得到目标模型的过程。
上述在线训练方法利用大量的实时训练样本数据以及大量的模型参数,来训练深度神经网络模型,由于实时训练样本数据以及模型参数较多,为此,需要将所有模型参数分配给多个参数服务器,使得各个参数服务器可以根据部分模型参数以及实时的训练样本数据对深度神经网络模型进行分布式训练,使得用户节点设备可以利用各个参数服务器的训练结果来更新该深度神经网络模型,进而可以实现在线训练模型的目的。同时,由于单个参数服务器只利用了部分模型参数进行模型训练,所以降低了单个参数服务器的训练压力。另外,由于采用的训练样本数据具有实时性,所以通过上述方法训练的深度神经网络模型也具有实时性,可以实现在线训练模型的目的,而且,由大量的模型参数训练出来的深度神经网络模型具有较高的精度。
图8是根据一示例性实施例示出的一种在线训练装置的框图,如图8所示,包括第一获取单元801、第二获取单元802、第三获取单元803和更新单元804。
其中,第一获取单元801与第二获取单元802相连接,被配置为基于实时的训练样本数据,获取该训练样本数据对应的模型参数集合,该模型参数集合包括深度神经网络模型的部分模型参数;
第二获取单元802与第三获取单元803相连接,被配置为基于该训练样本数据以及该模型参数集合,获取该模型参数集合中的模型参数的梯度信息,该梯度信息用于指示该模型参数的更新方向;
第三获取单元803与更新单元804相连接,被配置为基于该梯度信息以及该模型参数集合,获取该目标模型参数集合;
更新单元804,被配置为基于至少一个增量集合对该深度神经网络模型进行更新,得到目标模型,该增量集合为在预设时间内获取的至少一个该目标模型参数以及至少一个该梯度信息的集合。
可选地,该第一获取单元801,被配置为:
从开源流处理平台中获取实时的训练样本数据;
提取该训练样本数据的至少一个特征;
该第一获取单元包括获取子单元,被配置为基于该至少一个特征,获取所述该一个特征对应的模型参数。
可选地,该获取子单元,被配置为基于一致性哈希原则以及该至少一个特征,获取该至少一个特征对应的模型参数。
可选地,第二获取单元802,被配置为:
采用该训练样本数据以及所述模型参数集合中的至少一个模型参数,对本地模型进行更新;
对更新后的本地模型进行计算,得到该至少一个模型参数的梯度信息。
图9是根据一示例性实施例示出的一种在线训练装置900的框图。例如,装置900可以被提供为一服务器。参照图9,装置900包括处理组件922,其进一步包括一个或多个处理器,以及由存储器932所代表的存储器资源,用于存储可由处理组件922的执行的指令,例如应用程序。存储器932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件922被配置为执行指令,以执行上述在线训练方法。
装置900还可以包括一个电源组件926被配置为执行装置900的电源管理,一个有线或无线网络接口950被配置为将装置900连接到网络,和一个输入输出(i/o)接口958。装置900可以操作基于存储在存储器932的操作系统,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm或类似。
在示例性实施例中,提供一种应用程序,该应用程序包括一条或多条指令,该一条或多条指令可以由电子设备的处理器执行,已完成上述实施例中提供的在线训练方法的步骤,该方法步骤包括:
基于实时的训练样本数据,获取该训练样本数据对应的模型参数集合,该模型参数集合包括深度神经网络模型的部分模型参数;
基于该训练样本数据以及该模型参数集合,获取该模型参数集合中的至少一个模型参数的梯度信息,每个梯度信息用于指示一个模型参数的更新方向;
基于该至少一个模型参数的梯度信息以及该至少一个模型参数,获取至少一个目标模型参数;
基于该至少一个模型参数的梯度信息以及该至少一个目标模型参数,对该深度神经网络模型进行更新,得到目标模型。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。