模型更新方法、装置、电子设备及存储介质与流程

文档序号:19572549发布日期:2019-12-31 19:05阅读:111来源:国知局
模型更新方法、装置、电子设备及存储介质与流程

本公开涉及计算机技术领域,尤其涉及一种模型更新方法、装置、电子设备及存储介质。



背景技术:

tensorflow(张量流)是一个基于数据流编程的符号数学系统,被广泛应用于各类机器学习算法的编程实现。基于tensorflow,可以训练各种神经网络模型,用于图像、自然语言理解等研究。

具体的,参阅图1所示,tensorflow中通常包含有参数服务器(ps,parameterserver)、执行服务器(worker)以及预估服务器,其中,参数服务器用于在模型训练过程中存储模型参数,执行服务器用于在模型训练过程中从参数服务器处获取模型参数,并进行梯度更新,而预估服务器用于将训练完毕的模型部署到线上。tensorflow中,由参数服务器和执行服务器进行迭代训练,当参数服务器和执行服务器训练了一批数据并生成相应的模型时,迭代就完成了。

tensorflow的模型推送方式是将参数服务器中的模型存储成模型镜像,然后再将镜像批量推送到线上预估服务器上,以推荐模型为例,一般推荐模型的大小可以达到tb(terabyte,太字节)级别,因此无法通过这个方法进行秒级别的模型更新上线。

综上,在模型训练完毕后,将模型生成镜像推送到预估服务器,模型更新速度较慢。



技术实现要素:

本公开提供一种模型更新方法、装置、电子设备及存储介质,以至少解决相关技术中在模型训练完毕后,将模型生成镜像推送到预估服务器,模型更新速度较慢的问题。本公开的技术方案如下:

根据本公开实施例的第一方面,提供一种模型更新方法,包括:

在执行服务器使用同一个历史样本集合进行模型参数的迭代训练过程中,根据每次接收到的所述执行服务器发送的梯度值对模型参数进行更新;

在满足参数推送条件后,将上次满足参数推送条件之后进行更新的模型参数中的部分或全部模型参数推送给预估服务器,以使所述预估服务器根据所述模型参数对当前上线的模型进行更新。

在一种可选的实施方式中,所述参数推送条件包括下列的部分或全部:

相邻两次推送之间的时间间隔达到预设时长;

n个更新后的模型参数的变化率大于预设阈值,其中所述变化率用于表示同一个模型参数更新前后的变化程度,n为正整数。

在一种可选的实施方式中,所述推送条件为相邻两次推送之间的时间间隔达到预设时长;

所述将上次满足参数推送条件之后进行更新的模型参数中的部分或全部模型参数推送给预估服务器的步骤,包括:

将上次满足参数推送条件之后进行更新的全部模型参数推送给预估服务器。

在一种可选的实施方式中,所述推送条件为至少n个更新后的模型参数的变化率大于预设阈值;

所述将上次满足参数推送条件之后进行更新的模型参数中的部分或全部模型参数推送给预估服务器的步骤,包括:

将上次满足参数推送条件之后进行更新的模型参数中变化率大于预设阈值的模型参数推送给所述预估服务器。

在一种可选的实施方式中,所述将上次满足参数推送条件之后进行更新的模型参数中的部分或全部模型参数推送给预估服务器的步骤,包括:

通过比特流队列bt-queue广播所述更新的模型参数中的部分或全部模型参数给至少一个预估服务器。

在一种可选的实施方式中,所述模型参数包括嵌入参数和网络参数;所述方法还包括:

在执行服务器使用同一历史样本集合进行模型参数的迭代训练过程之前,将所述嵌入参数发送给所述执行服务器;以及

在执行服务器使用同一历史样本集合进行模型参数的迭代训练过程中,若接收到所述执行服务器发送的参数请求,则将所述参数请求对应的网络参数发送给所述执行服务器。

根据本公开实施例的第二方面,提供一种模型更新方法,应用于执行服务器,包括:

在使用同一历史样本集合与参数服务器进行模型参数的迭代训练过程中,从所述参数服务器获取模型参数进行迭代;

将每次迭代得到的用于更新模型参数的梯度值发送给所述参数服务器,以使所述参数服务器在满足参数推送条件后,将上次满足参数推送条件之后进行更新的模型参数中的部分或全部用于更新模型的模型参数推送给预估服务器。

在一种可选的实施方式中,所述模型参数包括嵌入参数和网络参数;所述方法还包括:

在使用同一历史样本集合与参数服务器进行模型参数的迭代训练过程之前,接收所述参数服务器发送的嵌入参数;以及

在使用同一历史样本集合与参数服务器进行模型参数的迭代训练过程中,根据计算图的依赖关系向所述参数服务器发送参数请求,并接收所述参数服务器返回的与所述参数请求对应的网络参数。

根据本公开实施例的第三方面,提供一种模型更新方法,应用于预估服务器,包括:

接收参数服务器在满足推送条件后推送的模型参数,其中所述模型参数是上次满足推送条件之后所述参数服务器进行更新的模型参数中的部分或全部;

根据所述模型参数对当前上线的模型进行更新。

在一种可选的实施方式中,所述接收所述参数服务器发送的模型参数的步骤包括:

接收所述参数服务器通过bt-queue广播的所述模型参数。

在一种可选的实施方式中,所述根据所述模型参数对当前上线的模型进行更新的步骤包括:

将当前上线的模型中与所述模型参数同类型的模型参数替换为所述模型参数;或

根据所述模型参数确定更新后的模型,并将所述更新后的模型替换当前上线的模型。

根据本公开实施例的第四方面,提供一种模型更新装置,应用于参数服务器,包括:

参数更新单元,被配置为执行在执行服务器使用同一个历史样本集合进行模型参数的迭代训练过程中,根据每次接收到的所述执行服务器发送的梯度值对模型参数进行更新;

参数推送单元,被配置为执行在满足参数推送条件后,将上次满足参数推送条件之后进行更新的模型参数中的部分或全部模型参数推送给预估服务器,以使所述预估服务器根据所述模型参数对当前上线的模型进行更新。

在一种可选的实施方式中,所述参数推送条件包括下列的部分或全部:

相邻两次推送之间的时间间隔达到预设时长;

n个更新后的模型参数的变化率大于预设阈值,其中所述变化率用于表示同一个模型参数更新前后的变化程度,n为正整数。

在一种可选的实施方式中,所述推送条件为相邻两次推送之间的时间间隔达到预设时长;

所述参数推送单元具体被配置为执行:

将上次满足参数推送条件之后进行更新的全部模型参数推送给预估服务器。

在一种可选的实施方式中,所述推送条件为至少n个更新后的模型参数的变化率大于预设阈值;

所述参数推送单元具体被配置为执行:

将上次满足参数推送条件之后进行更新的模型参数中变化率大于预设阈值的模型参数推送给所述预估服务器。

在一种可选的实施方式中,所述参数推送单元具体被配置为执行:

通过bt-queue广播所述更新的模型参数中的部分或全部模型参数给至少一个预估服务器。

在一种可选的实施方式中,所述模型参数包括嵌入参数和网络参数;所述装置还包括:

第一传输单元,被配置为执行在执行服务器使用同一历史样本集合进行模型参数的迭代训练过程之前,将所述嵌入参数发送给所述执行服务器;以及

在执行服务器使用同一历史样本集合进行模型参数的迭代训练过程中,若接收到所述执行服务器发送的参数请求,则将所述参数请求对应的网络参数发送给所述执行服务器。

根据本公开实施例的第五方面,提供一种模型更新装置,应用于执行服务器,包括:

训练单元,被配置为执行在使用同一历史样本集合与参数服务器进行模型参数的迭代训练过程中,从所述参数服务器获取模型参数进行迭代;

发送单元,被配置为执行将每次迭代得到的用于更新模型参数的梯度值发送给所述参数服务器,以使所述参数服务器在满足参数推送条件后,将上次满足参数推送条件之后进行更新的模型参数中的部分或全部用于更新模型的模型参数推送给预估服务器。

在一种可选的实施方式中,所述模型参数包括嵌入参数和网络参数;所述装置还包括:

第二传输单元,被配置为执行在使用同一历史样本集合与参数服务器进行模型参数的迭代训练过程之前,接收所述参数服务器发送的嵌入参数;以及

在使用同一历史样本集合与参数服务器进行模型参数的迭代训练过程中,根据计算图的依赖关系向所述参数服务器发送参数请求,并接收所述参数服务器返回的与所述参数请求对应的网络参数。

根据本公开实施例的第六方面,提供一种模型更新装置,应用于预估服务器,包括:

接收单元,被配置为执行接收参数服务器在满足推送条件后推送的模型参数,其中所述模型参数是上次满足推送条件之后所述参数服务器进行更新的模型参数中的部分或全部;

模型更新单元,被配置为执行根据所述模型参数对当前上线的模型进行更新。

在一种可选的实施方式中,所述接收单元具体被配置为执行:

接收所述参数服务器通过bt-queue广播的所述模型参数。

在一种可选的实施方式中,所述模型更新单元具体被配置为执行:

将当前上线的模型中与所述模型参数同类型的模型参数替换为所述模型参数;或

根据所述模型参数确定更新后的模型,并将所述更新后的模型替换当前上线的模型。

根据本公开实施例的第七方面,提供一种电子设备,包括:

处理器;

用于存储所述处理器可执行指令的存储器;

其中,所述处理器被配置为执行所述指令,以实现本公开实施例第一方面中任一项所述的模型更新方法。

根据本公开实施例的第七方面,提供一种电子设备,包括:

处理器;

用于存储所述处理器可执行指令的存储器;

其中,所述处理器被配置为执行所述指令,以实现本公开实施例第一方面中任一项所述的模型更新方法。

根据本公开实施例的第八方面,提供一种电子设备,包括:

处理器;

用于存储所述处理器可执行指令的存储器;

其中,所述处理器被配置为执行所述指令,以实现本公开实施例第二方面中任一项所述的模型更新方法。

根据本公开实施例的第九方面,提供一种电子设备,包括:

处理器;

用于存储所述处理器可执行指令的存储器;

其中,所述处理器被配置为执行所述指令,以实现本公开实施例第三方面中任一项所述的模型更新方法。

根据本公开实施例的第十方面,提供一种非易失性可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行本公开实施例第一方面中任一项所述的模型更新方法。

根据本公开实施例的第十一方面,提供一种非易失性可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行本公开实施例第二方面中任一项所述的模型更新方法。

根据本公开实施例的第十二方面,提供一种非易失性可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行本公开实施例第三方面中任一项所述的模型更新方法。

根据本公开实施例的第十三方面,提供一种计算机程序产品,当所述计算机程序产品在电子设备上运行时,使得所述电子设备执行实现本公开实施例上述第一方面以及第一方面任一可能涉及的方法。

根据本公开实施例的第十四方面,提供一种计算机程序产品,当所述计算机程序产品在电子设备上运行时,使得所述电子设备执行实现本公开实施例上述第二方面以及第二方面任一可能涉及的方法。

根据本公开实施例的第十五方面,提供一种计算机程序产品,当所述计算机程序产品在电子设备上运行时,使得所述电子设备执行实现本公开实施例上述第三方面以及第三方面任一可能涉及的方法。

根据本公开实施例的第十六方面,提供一种模型更新系统,包括:执行服务器、参数服务器和预估服务器;

所述执行服务器,用于在使用同一历史样本集合与参数服务器进行模型参数的迭代训练过程中,从所述参数服务器获取模型参数进行迭代;将每次迭代得到的用于更新模型参数的梯度值发送给所述参数服务器;

所述参数服务器,用于在执行服务器使用同一个历史样本集合进行模型参数的迭代训练过程中,根据每次接收到的所述执行服务器发送的梯度值对模型参数进行更新;在满足参数推送条件后,将上次满足参数推送条件之后进行更新的模型参数中的部分或全部模型参数推送给预估服务器;

所述预估服务器,用于接收参数服务器在满足推送条件后推送的模型参数;根据所述模型参数对当前上线的模型进行更新。

本公开的实施例提供的技术方案至少带来以下有益效果:

由于本公开实施例在参数服务器与使用同一个历史样本集合的执行服务器进行迭代训练的过程中,通过多次推送将更新的模型参数增量推送给预估服务器,而非在使用同一个历史样本集合中的样本完成迭代,对模型更新完毕之后,一次性将模型参数全量推送给预估服务器,本公开实施例设置了推送条件,在迭代的过程中满足推送条件则可向预估服务器推送模型参数,由于每次推送预估服务器的模型参数是有限的,减小了预估服务器的压力,并且实现了在模型训练过程中对模型参数实时更新,无需等待所有参数更新完毕后生成模型镜像,提高了模型更新的速度。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。

图1是根据一示例性实施例示出的一种原生tensorflow核心框架的示意图;

图2是根据一示例性实施例示出的一种模型更新系统的框图;

图3是根据一示例性实施例示出的一种计算之间的依赖关系示意图;

图4是根据一示例性实施例示出的第一种模型更新方法的流程图;

图5是根据一示例性实施例示出的第二种模型更新方法的流程图;

图6是根据一示例性实施例示出的第三种模型更新方法的流程图;

图7是根据一示例性实施例示出的一种模型更新的完整方法的流程图;

图8是根据一示例性实施例示出的第一种模型更新装置的框图;

图9是根据一示例性实施例示出的第一种电子设备的框图;

图10是根据一示例性实施例示出的第二种模型更新装置的框图;

图11是根据一示例性实施例示出的第二种电子设备的框图;

图12是根据一示例性实施例示出的第三种模型更新装置的框图;

图13是根据一示例性实施例示出的第三种电子设备的框图。

具体实施方式

为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。

需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

下面对文中出现的一些词语进行解释:

1、本公开实施例中术语“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。

2、本公开实施例中术语“电子设备”是指由集成电路、晶体管、电子管等电子元器件组成,应用电子技术(包括)软件发挥作用的设备,包括电子计算机以及由电子计算机控制的机器人、数控或程控系统等。

3、本公开实施例中术语“p2p”是英文peertopeer(对等网络)的简称,是一种网络新技术,可定义为网络的参与者共享他们所拥有的一部分硬件资源(处理能力、存储能力、网络连接能力、打印机等),这些共享资源通过网络提供服务和内容,能被其它对等节点(peer)直接访问而无需经过中间实体。在此网络中的参与者既是资源、服务和内容的提供者(server),又是资源、服务和内容的获取者(client)。在p2p网络环境中,彼此连接的多台计算机之间都处于对等的地位,各台计算机有相同的功能,无主从之分,一台计算机既可作为服务器,设定共享资源供网络中其他计算机所使用,又可以作为工作站,整个网络一般来说不依赖专用的集中服务器,也没有专用的工作站。网络中的每一台计算机既能充当网络服务的请求者,又对其它计算机的请求做出响应,提供资源、服务和内容。通常这些资源和服务包括:信息的共享和交换、计算资源(如cpu(centralprocessingunit/processor,中央处理器)计算能力共享)、存储共享(如缓存和磁盘空间的使用)、网络共享、打印机共享等。

本公开实施例描述的应用场景是为了更加清楚的说明本公开实施例的技术方案,并不构成对于本公开实施例提供的技术方案的限定,本领域普通技术人员可知,随着新应用场景的出现,本公开实施例提供的技术方案对于类似的技术问题,同样适用。其中,在本公开的描述中,除非另有说明,“多个”的含义。

tensorflow目前的迭代路线主要集中在易用性和对于复杂神经网络的支持上,tensorflow的优势在于图像、自然语言理解相关的新型研究模型都有比较丰富的社区开源支持。但是针对于工业级别的推荐、广告、搜索等业务的机器学习模型,tensorflow的支持程度有一定欠缺。不同于图像和自然语言理解类的问题,推荐模型中的大部分特征都是基于用户历史行为的。用户历史行为一般表述为一系列以idlist(identitydocumentlist,身份标识列表)为主的稀疏向量,通过此类特征对用户偏好进行记忆和泛化,因此模型的维度也一般会很高。一般企业内部的广告、搜索等业务部门都是在原生tensorflow核心框架的基础上进行针对业务的定制开发,这一部分的定制化开发目前是没有开源。原生tensorflow框架在支持广告推荐业务形态主要存在如下几个问题:

1、原生tensorflow是不支持对于百亿参数级别模型的实时训练;

2、原生tensorflow是按照计算图的依赖关系依次计算的,依赖的embedding数据不是批量获取和推送的,造成有过多的网络请求,延迟较高。

在本公开实施例中提出了一种kuiba-tensorflow(kuiba-tf)系统,可以实现秒级别的模型更新上线。kuiba-tf主要通过改进后的参数服务器来替代原生tensorflow的参数服务器来解决上述问题。kuiba-tf同时保留了tensorflowworker,因此能支持大部分tensorflow前端功能,方便接入和复用各种新型模型。

图2是根据一示例性实施例示出的一种模型更新系统的框图,如图2所示,包括执行服务器10、参数服务器20和预估服务器30。

所述执行服务器10,用于在使用同一历史样本集合与参数服务器20进行模型参数的迭代训练过程中,从所述参数服务器20获取模型参数进行迭代;将每次迭代得到的用于更新模型参数的梯度值发送给所述参数服务器20;

所述参数服务器20,用于在执行服务器10使用同一个历史样本集合进行模型参数的迭代训练过程中,根据每次接收到的所述执行服务器10发送的梯度值对模型参数进行更新;在满足参数推送条件后,将上次满足参数推送条件之后进行更新的模型参数中的部分或全部模型参数推送给预估服务器30;

所述预估服务器30,用于接收参数服务器20在满足推送条件后推送的模型参数;根据所述模型参数对当前上线的模型进行更新。

由于本公开实施例在参数服务器与使用同一个历史样本集合的执行服务器进行迭代训练的过程中,通过多次推送将更新的模型参数增量推送给预估服务器,而非在使用同一个历史样本集合中的样本完成迭代,对模型更新完毕之后,一次性将模型参数全量推送给预估服务器,本公开实施例设置了推送条件,在迭代的过程中满足推送条件则可向预估服务器推送模型参数,由于每次推送预估服务器的模型参数是有限的,减小了预估服务器的压力,并且实现了在模型训练过程中对模型参数实时更新,无需等待所有参数更新完毕后生成模型镜像,提高了模型更新的速度。

在本公开实施例中,模型参数部分即模型本身,有一致性的要求,模型参数中通常包含有网络参数和嵌入(embedding)参数,其中网络参数指神经网络中的参数,例如w(weight,权重),b(bias,偏置)等,嵌入参数用于把正整数(索引)转换为固定大小的稠密向量,指在神经网络中的embedding层所涉及的参数。

tensorflow是一个通过计算图的形式来表述计算的编程系统。其中的tnesor代表它的数据结构,而flow代表它的计算模型。tensorflow中的每一个计算都是计算图上的一个节点,而节点之间的线描述了计算之间的依赖关系。

如图3所示,为本公开实施例提供的一种计算之间的依赖关系示意图,其中c是a与b的乘积,d是a与b的和,e是c与d的和,即c和d都依赖于a、b,e依赖于c和d,当c节点出现问题后则会影响e节点的计算。

以推荐模型为例,由推荐模型的结构可以嵌入参数与网络参数之间的依赖关系较小,一般依赖关系存在于网络参数之间,因而再根据计算图的一拉关系对嵌入参数依次计算,则会造过多的网络请求,延迟较高。

在一种可选的实施方式中,参数服务器在与执行服务器开始进行迭代之前,将嵌入参数发送给执行服务器,减少在迭代过程中执行服务器与参数服务器之间的网络请求,减小带宽压力及网络延迟。

在本公开实施例中,分布式机器学习通常是由多个节点在多台机器上运行来求解机器学习问题,也就是参数服务器可以是一个集群,对于大型的算法,比如dnn(deepneuralnetwork,深度神经网络),cnn(convolutionalneuralnetwork,卷积神经网络),参数上亿的时候,则需要一个集群来存储这么多的参数。同样的,参数服务器有很多时,对应也会有很多执行服务器,训练部分自然是并行的。

如图1所示,通常由多个worker、多个ps或者多个预估服务器等,因而执行服务器可以并行预取嵌入参数,例如多个执行服务器从一个或多个参数服务器中并行获取嵌入参数。

可选的,可将同一个历史样本集合中的样本划分为若干mini-batch(小批量)分配给不同的worker进行迭代训练。

在一种可选的实施方式中,执行服务器在开始迭代训练后,根据计算图的依赖关系向参数服务器发送参数请求,参数服务器根据参数请求确定与该请求对应的网络参数返回给执行服务器,由执行服务器根据获取到的网络参数、嵌入参数以及对应的样本对模型进行训练,将计算得到的样本的梯度值发送给参数服务器,参数服务器根据接收到的梯度值对参数进行更新,并将更新后的参数替换之前存储的同类型的参数。

其中,计算图的依赖关系决定的是对模型进行参数更新时的计算顺序,哪些参数先更新,哪些参数后更新。

例如,执行服务器第一次向参数服务器发送参数请求,请求获取模型的参数a1和b1;执行服务器第二次向参数服务器发送参数请求,请求获取模型的参数c1和d1;执行服务器第三次向参数服务器发送参数请求,请求获取模型的参数e1,等。

其中,参数服务器发送给执行服务器的模型参数是当前参数服务器中存储的,也是最新的模型参数。

在本公开实施例中,推送条件包括但不限于下列的部分或全部:

相邻两次推送之间的时间间隔达到预设时长;

n个更新后的模型参数的变化率大于预设阈值,其中所述变化率用于表示同一个模型参数更新前后的变化程度,n为正整数。

其中,第一种推送条件是指周期推送,即每个预设时长参数服务器向预估服务器推送一次模型参数。

在本公开实施例中,由于网络参数需要依据计算图的依赖关系确定更新顺序,并不是同时更新所有的网络参数,因而针对网络参数更加适用于第一种推送条件。

假设预设时长为t,在t1时刻参数服务器中更新了的网络参数有a1以及b1,这是本次模型训练过程中参数服务器第一次确定满足推送条件则参数服务器将更新后的a1和b1推送给预估服务器;在t1+t时刻,又一次满足推送条件,此时除了a1和b1更新外,参数c1也进行了更新,因而参数服务器将更新后的c1推送给预估服务器,以此类推,将模型参数中更新的参数一点点的推送给预估服务器,而非等待所有的模型参数更新完成后全量推送。

在另一种推送条件中,若n个更新后的模型参数的变化率大于预设阈值,即模型参数更新前后的变化达到了一定的程度,则可将上次满足参数推送条件之后进行更新的模型参数中变化率大于预设阈值的模型参数推送给预估服务器。

其中,变化率可以表示为:|更新后的模型参数-更新前的模型参数|/更新前的模型参数*100%。

由于嵌入参数可以在迭代训练开始之前预取,因而该推送条件比较适用于嵌入参数。若n=1,则表示有一个嵌入参数更新后的变化率达到预设阈值时则向预估服务器推送更新后的嵌入参数;n=2则表示有两个嵌入参数更新后的变化率达到预设阈值,则向预估服务器推送更新后的嵌入参数,等。

假设预设阈值为50%,假设嵌入参数a2更新前为10,更新后为15;b2更新前为8,更新后为12;c2更新前为10,更新后为7,因而a2的变化率为50%,b2的变化率为50%,c2的变化率为30%,因而更新后的a2与b2的变化率达到预设阈值,则将更新后的a2、b2推送给预估服务器。

需要说明的是,本公开实施例中所列举的推送条件也只是举例说明,任何一种适用于增量推送模型参数的推送条件都适用于本公开实施例。

在一种可选的实施方式中,参数服务器通过bt-queue(bittorrentqueue,比特流队列)广播所述更新的模型参数中的部分或全部模型参数给至少一个预估服务器。

例如,同样的模型参数要推送到1000台预估服务器上,这1000台服务器都使用同一个推荐模型,则可通过bt-queue广播的形式,当模型进行了若干mini-batch的迭代后,kuiba-tf将需要推送的模型参数通过bt-queue(基于p2p协议)广播到线上的预估服务器上。由于模型是稀疏的,因此每次广播的参数是有限的,不会造成预估服务的压力。

可选的,可将使用同一个模型的多个预估服务器组织成一个完全二叉树。参数服务器可以将模型参数广播给这多个预估服务器中的至少一个预估服务器,其他的预估服务器在获取模型参数时,可尝试从其父节点对应的预估服务器获取模型参数,如果获取失败,则可尝试从其祖先节点对应的预估服务器获取模型参数,如果再次获取失败,等,最后才会从参数服务器获取模型参数。

在本公开实施例中,kuiba-tf也对嵌入参数进行了并行预取,以及worker与参数服务器之间的通讯协议优化,极大的提升了性能。以视频推荐模型为例,通过比较kuiba-tensorflow和原生tensorflow之间的效率可得,原生tensorflow大概是20万样本每分钟。而kuiba-tensorflow的训练速度大概是60万样本每分钟,整整是原生tensorflow的3倍。

在一种可选的实施方式中,因为参数服务器的存在,当使用新的历史样本集合对模型再次进行更新时,每个worker在拿到新的batch(一批)样本数据之后,都要从参数服务器上取下最新的参数,然后计算梯度,再将梯度更新回参数服务器,等等,也就是再次重复上述实施例中的过程,本公开实施例主要介绍的是使用同一个历史样本集合对模型进行更新的过程,当有新的历史样本集合时同理重复上述过程即可。

图4是根据一示例性实施例示出的一种模型更新方法的流程图,应用于参数服务器,如图4所示,包括以下步骤:

在步骤s41中,在执行服务器使用同一个历史样本集合进行模型参数的迭代训练过程中,根据每次接收到的所述执行服务器发送的梯度值对模型参数进行更新;

在步骤s42中,在满足参数推送条件后,将上次满足参数推送条件之后进行更新的模型参数中的部分或全部模型参数推送给预估服务器,以使所述预估服务器根据所述模型参数对当前上线的模型进行更新。

在一种可选的实施方式中,所述参数推送条件包括下列的部分或全部:

相邻两次推送之间的时间间隔达到预设时长;

n个更新后的模型参数的变化率大于预设阈值,其中所述变化率用于表示同一个模型参数更新前后的变化程度,n为正整数。

在一种可选的实施方式中,所述推送条件为相邻两次推送之间的时间间隔达到预设时长;

所述将上次满足参数推送条件之后进行更新的模型参数中的部分或全部模型参数推送给预估服务器的步骤,包括:

将上次满足参数推送条件之后进行更新的全部模型参数推送给预估服务器。

在一种可选的实施方式中,所述推送条件为至少n个更新后的模型参数的变化率大于预设阈值;

所述将上次满足参数推送条件之后进行更新的模型参数中的部分或全部模型参数推送给预估服务器的步骤,包括:

将上次满足参数推送条件之后进行更新的模型参数中变化率大于预设阈值的模型参数推送给所述预估服务器。

在一种可选的实施方式中,所述将上次满足参数推送条件之后进行更新的模型参数中的部分或全部模型参数推送给预估服务器的步骤,包括:

通过bt-queue广播所述更新的模型参数中的部分或全部模型参数给至少一个预估服务器。

在一种可选的实施方式中,所述模型参数包括嵌入参数和网络参数;所述方法还包括:

在执行服务器使用同一历史样本集合进行模型参数的迭代训练过程之前,将所述嵌入参数发送给所述执行服务器;以及

在执行服务器使用同一历史样本集合进行模型参数的迭代训练过程中,若接收到所述执行服务器发送的参数请求,则将所述参数请求对应的网络参数发送给所述执行服务器。

图5是根据一示例性实施例示出的一种模型更新方法的流程图,应用于执行服务器,如图5所示,包括以下步骤:

在步骤s51中,在使用同一历史样本集合与参数服务器进行模型参数的迭代训练过程中,从所述参数服务器获取模型参数进行迭代;

在步骤s52中,将每次迭代得到的用于更新模型参数的梯度值发送给所述参数服务器,以使所述参数服务器在满足参数推送条件后,将上次满足参数推送条件之后进行更新的模型参数中的部分或全部用于更新模型的模型参数推送给预估服务器。

在一种可选的实施方式中,所述模型参数包括嵌入参数和网络参数;所述方法还包括:

在使用同一历史样本集合与参数服务器进行模型参数的迭代训练过程之前,接收所述参数服务器发送的嵌入参数;以及

在使用同一历史样本集合与参数服务器进行模型参数的迭代训练过程中,根据计算图的依赖关系向所述参数服务器发送参数请求,并接收所述参数服务器返回的与所述参数请求对应的网络参数。

图6是根据一示例性实施例示出的一种模型更新方法的流程图,应用于预估服务器,如图6所示,包括以下步骤:

在步骤s61中,接收参数服务器在满足推送条件后推送的模型参数,其中所述模型参数是上次满足推送条件之后所述参数服务器进行更新的模型参数中的部分或全部;

在步骤s62中,根据所述模型参数对当前上线的模型进行更新。

在一种可选的实施方式中,所述接收所述参数服务器发送的模型参数的步骤包括:

接收所述参数服务器通过bt-queue广播的所述模型参数。

在一种可选的实施方式中,所述根据所述模型参数对当前上线的模型进行更新的步骤包括:

将当前上线的模型中与所述模型参数同类型的模型参数替换为所述模型参数;或

根据所述模型参数确定更新后的模型,并将所述更新后的模型替换当前上线的模型。

图7是根据一示例性实施例示出的一种模型更新的完整方法流程图,具体包括以下步骤:

s700,参数服务器将嵌入参数发送给执行服务器;

s701,执行服务器在进行模型参数的迭代训练过程中,根据计算图的依赖关系向参数服务器发送参数请求;

s702,参数服务器在接收到执行服务器发送的参数请求后,将参数请求对应的网络参数发送给执行服务器。

s703,执行服务器根据接收到的模型参数进行迭代训练;

s704,将迭代得到的梯度值发送给参数服务器;

s705,参数服务器根据梯度值更新模型参数;

s706,参数服务器在确定满足推送条件后,将上次满足参数推送条件之后进行更新的模型参数中的部分或全部模型参数推送给预估服务器;

s707,预估服务器根据模型参数对当前上线的模型进行更新。

需要说明的是,步骤s701~s704是一次迭代的过程,实际上在使用同一个样本集合对模型进行训练时,执行服务器可多次向参数服务器发送参数请求以获取模型参数(多次过程请求的模型参数不相同),因而该情况下s701~s704需要重复多次。

此外,s706~s707也可执行多次,以参数服务器周期推送更新的模型参数为例,则需要多次重复s706~s707(多次过程推送的参数不相同),预估服务器周期接收并周期上线更新。

图8是根据一示例性实施例示出的一种模型更新装置框图,应用于参数服务器。参照图8,该装置包括参数更新单元800和参数推送单元801。

所述参数更新单元800,被配置为执行在执行服务器使用同一个历史样本集合进行模型参数的迭代训练过程中,根据每次接收到的所述执行服务器发送的梯度值对模型参数进行更新;

所述参数推送单元801,被配置为执行在满足参数推送条件后,将上次满足参数推送条件之后进行更新的模型参数中的部分或全部模型参数推送给预估服务器,以使所述预估服务器根据所述模型参数对当前上线的模型进行更新。

在一种可选的实施方式中,所述参数推送条件包括下列的部分或全部:

相邻两次推送之间的时间间隔达到预设时长;

n个更新后的模型参数的变化率大于预设阈值,其中所述变化率用于表示同一个模型参数更新前后的变化程度,n为正整数。

在一种可选的实施方式中,所述推送条件为相邻两次推送之间的时间间隔达到预设时长;

所述参数推送单元801具体被配置为执行:

将上次满足参数推送条件之后进行更新的全部模型参数推送给预估服务器。

在一种可选的实施方式中,所述推送条件为至少n个更新后的模型参数的变化率大于预设阈值;

所述参数推送单元801具体被配置为执行:

将上次满足参数推送条件之后进行更新的模型参数中变化率大于预设阈值的模型参数推送给所述预估服务器。

在一种可选的实施方式中,所述参数推送单元801具体被配置为执行:

通过bt-queue广播所述更新的模型参数中的部分或全部模型参数给至少一个预估服务器。

在一种可选的实施方式中,所述模型参数包括嵌入参数和网络参数;所述装置还包括:

第一传输单元802,被配置为执行在执行服务器使用同一历史样本集合进行模型参数的迭代训练过程之前,将所述嵌入参数发送给所述执行服务器;以及

在执行服务器使用同一历史样本集合进行模型参数的迭代训练过程中,若接收到所述执行服务器发送的参数请求,则将所述参数请求对应的网络参数发送给所述执行服务器。

关于上述实施例中的装置,其中各个单元执行请求的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

图9是根据一示例性实施例示出的一种电子设备900的框图,该装置包括:

处理器910;

用于存储所述处理器910可执行指令的存储器920;

其中,所述处理器910被配置为执行所述指令,以实现本公开实施例上述任一应用于参数服务器的模型更新方法。

在示例性实施例中,还提供了一种包括指令的存储介质,例如包括指令的存储器920,上述指令可由电子设备900的处理器910执行以完成上述方法。可选地,存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。

本公开实施例还提供一种计算机程序产品,当所述计算机程序产品在电子设备上运行时,使得所述电子设备执行实现本公开实施例上述任意一项应用于参数服务器的模型更新方法或任意一项应用于参数服务器的模型更新方法任一可能涉及的方法。

图10是根据一示例性实施例示出的一种模型更新装置框图,应用于执行服务器。参照图10,该装置包括训练单元1000和发送单元1001。

训练单元1000,被配置为执行在使用同一历史样本集合与参数服务器进行模型参数的迭代训练过程中,从所述参数服务器获取模型参数进行迭代;

发送单元1001,被配置为执行将每次迭代得到的用于更新模型参数的梯度值发送给所述参数服务器,以使所述参数服务器在满足参数推送条件后,将上次满足参数推送条件之后进行更新的模型参数中的部分或全部用于更新模型的模型参数推送给预估服务器。

在一种可选的实施方式中,所述模型参数包括嵌入参数和网络参数;所述装置还包括:

第二传输单元1002,被配置为执行在使用同一历史样本集合与参数服务器进行模型参数的迭代训练过程之前,接收所述参数服务器发送的嵌入参数;以及

在使用同一历史样本集合与参数服务器进行模型参数的迭代训练过程中,根据计算图的依赖关系向所述参数服务器发送参数请求,并接收所述参数服务器返回的与所述参数请求对应的网络参数。

关于上述实施例中的装置,其中各个单元执行请求的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

图11是根据一示例性实施例示出的一种电子设备1100的框图,该装置包括:

处理器1110;

用于存储所述处理器1110可执行指令的存储器1120;

其中,所述处理器1110被配置为执行所述指令,以实现本公开实施例上述任一应用于执行服务器的模型更新方法。

在示例性实施例中,还提供了一种包括指令的存储介质,例如包括指令的存储器1120,上述指令可由电子设备1100的处理器1110执行以完成上述方法。可选地,存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。

本公开实施例还提供一种计算机程序产品,当所述计算机程序产品在电子设备上运行时,使得所述电子设备执行实现本公开实施例上述任意一项应用于执行服务器的模型更新方法或任意一项应用于执行服务器的模型更新方法任一可能涉及的方法。

图12是根据一示例性实施例示出的一种模型更新装置框图,应用于预估服务器。参照图12,该装置包括接收单元1200和模型更新单元1201。

接收单元1200,被配置为执行接收参数服务器在满足推送条件后推送的模型参数,其中所述模型参数是上次满足推送条件之后所述参数服务器进行更新的模型参数中的部分或全部;

模型更新单元1201,被配置为执行根据所述模型参数对当前上线的模型进行更新。

在一种可选的实施方式中,所述接收单元1200具体被配置为执行:

接收所述参数服务器通过bt-queue广播的所述模型参数。

在一种可选的实施方式中,所述模型更新单元1201具体被配置为执行:

将当前上线的模型中与所述模型参数同类型的模型参数替换为所述模型参数;或

根据所述模型参数确定更新后的模型,并将所述更新后的模型替换当前上线的模型。

关于上述实施例中的装置,其中各个单元执行请求的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

图13是根据一示例性实施例示出的一种电子设备1300的框图,该装置包括:

处理器1310;

用于存储所述处理器1310可执行指令的存储器1320;

其中,所述处理器1310被配置为执行所述指令,以实现本公开实施例上述任一应用于执行服务器的模型更新方法。

在示例性实施例中,还提供了一种包括指令的存储介质,例如包括指令的存储器1320,上述指令可由电子设备1300的处理器1310执行以完成上述方法。可选地,存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。

本公开实施例还提供一种计算机程序产品,当所述计算机程序产品在电子设备上运行时,使得所述电子设备执行实现本公开实施例上述任意一项应用于预估服务器的模型更新方法或任意一项应用于预估服务器的模型更新方法任一可能涉及的方法。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1