参数交换方法、工作节点以及参数服务器系统与流程

文档序号:14950541发布日期:2018-07-17 22:27阅读:178来源:国知局

本发明实施例涉及人工智能技术领域,特别涉及一种参数交换方法、工作节点以及参数服务器系统。



背景技术:

人工智能(artificialintelligence,简称ai)是一个广泛概念,目的是让计算机像人一样思考,而机器学习(machinelearning)是人工智能的分支,用于研究计算机如何模拟和实现人类学习行为,进而获取新知识实现性能优化。深度学习(deeplearning)是机器学习的一种方法,是使用包含复杂结构或由多重非线性变换构成的多个处理层(神经网络)对数据进行高层抽象的算法。

在机器学习和深度学习领域,分布式的优化已经成了一种先决条件,因为单机已经解决不了快速增长的训练数据和模型参数了。参数服务器(parameterserver)属于分布式优化的第三代框架,它基于之前的基础做了更多优化,通过异步通信以及宽松的一致性要求大大减少了网络开销以及同步的成本和延时。

发明人发现现有技术中至少存在如下问题:随着信息的积累,模型的复杂化,训练数据的数据量达到tb甚至pb的数量级,且训练过程中的模型的参数也会增长到百数个,例如109,甚至上千,例如1012。由于模型的大量参数往往需要被所有的工作节点(workernodes)频繁地访问,所以带来很多问题和挑战,包括带宽压力,同步以及容错能力等。随着需要通过参数服务器交换的参数规模越来越大,训练模型的时间也越来越长,因此缩减训练时间成为深度学习发展的关键问题之一。



技术实现要素:

本发明实施方式的目的在于提供一种参数交换方法、工作节点以及参数服务器系统,通过针对模型定制参数过滤规则来减少参数服务器的无效参数交换,从而可提升系统效率并缩减深度学习的训练时间。

为解决上述技术问题,本发明的实施方式提供了一种参数交换方法,应用于参数服务器系统中的工作节点,包括:根据训练数据计算得到新的模型参数;所述模型参数用于更新所述参数服务器系统的算法模型的参数;判断所述新的模型参数是否为不能使得所述算法模型的最终模型参数得到预期优化的无效参数,若为无效参数,则不向所述参数服务器系统中的服务节点推送所述新的模型参数。

本发明的实施方式还提供了一种工作节点,应用于参数服务器系统,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的参数交换方法。

本发明的实施方式还提供了一种参数服务器系统,包括:服务节点组以及m个如权利要求1所述的工作节点;m为大于或者等于1的自然数;所述m个工作节点均与所述服务节点组通信连接。

本发明实施方式相对于现有技术而言,参数服务器系统中的各工作节点在计算得到新的模型参数后,不是直接推送给服务节点,而是通过判断该新的模型参数是否为无效参数来确定是否推送,即在判断出该新的模型参数不能使得参数服务器系统中的算法模型得到预期的优化时,判定该新的模型参数为无效参数,此时不向服务节点推送该新的模型参数。由于无效参数对算法模型的最终模型参数的优化是可以忽略的,所以通过过滤掉无效参数的交换,不仅可以减轻参数服务器系统的带宽压力,提升系统的同步以及容错能力等,而且还可以有效地缩短训练时间。

另外,所述算法模型为梯度下降算法模型,所述新的模型参数为梯度值;所述判断所述新的模型参数是否为不能使得所述算法模型的最终模型参数得到预期优化的无效参数,具体包括:计算得到所述新的模型参数的参数模长,判断所述参数模长是否小于预设模长,若小于所述预设模长,则判定所述新的模型参数为无效参数。针对梯度下降算法这种深度学习领域的基础型算法,由于梯度值很小时,对于整体算法模型的优化作用可以忽略不计,因此,可通过计算梯度值的模长,并与预设模长比较判断出当前的模型参数是否为无效参数,从而便于实现无效参数的过滤。

另外,还包括:若所述参数模长大于或者等于预设模长,则判定所述新的模型参数不为无效参数。

另外,所述算法模型为梯度下降算法模型,所述新的模型参数为梯度值;所述判断所述新的模型参数是否为不能使得所述算法模型的最终模型参数得到预期优化的无效参数,具体包括:判断所述新的模型参数是否接近最优模型参数,若接近所述最优模型参数,则判定所述新的模型参数为无效参数。在梯度下降算法模型中,接近算法模型的最优模型参数的模型参数对于算法模型的优化作用也是可以忽略不计的,因此,通过判断工作节点计算出的新的模型参数是否接近算法模型的最优模型参数,也可以有效地过滤掉无效参数的交换。

另外,所述判断所述新的模型参数是否接近所述算法模型的最终模型参数中,通过kkt条件判断所述新的模型参数是否接近所述算法模型的最终模型参数。

另外,还包括:若所述新的模型参数不接近所述最终模型参数,则判定所述新的模型参数不为无效参数。

另外,还包括:若所述新的模型参数不为无效参数,则向所述服务节点推送所述新的模型参数。

另外,所述根据训练数据计算得到新的模型参数,具体包括:从所述服务节点拉取训练数据;根据拉取的所述训练数据计算得到所述新的模型参数。

附图说明

一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。

图1是根据本发明第一实施方式的参数交换方法应用的参数服务器系统的结构示意图;

图2是根据本发明第一实施方式的参数交换方法的流程图;

图3是根据本发明第二实施方式的参数交换方法的流程图;

图4是根据本发明第三实施方式的工作节点的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。

本发明的第一实施方式涉及一种参数交换方法,应用于参数服务器系统中的工作节点。该参数交换方法包括:根据训练数据计算得到新的模型参数,该模型参数用于更新参数服务器系统的算法模型的参数,判断新的模型参数是否为不能使得算法模型的最终模型参数得到预期优化的无效参数,若为无效参数,则不向参数服务器系统中的服务节点推送新的模型参数。本发明实施方式相对于现有技术而言,参数服务器系统中的各工作节点在计算得到新的模型参数后,不是直接推送给服务节点,而是通过判断该新的模型参数是否为无效参数来确定是否推送,即在判断出该新的模型参数不能使得参数服务器系统中的算法模型得到预期的优化时,判定该新的模型参数为无效参数,此时不向服务节点推送该新的模型参数。由于无效参数对算法模型的最终模型参数的优化是可以忽略的,所以通过过滤掉无效参数的交换,不仅可以减轻参数服务器系统的带宽压力,提升系统的同步以及容错能力等,而且还可以有效地缩短训练时间。下面对本实施方式的参数交换方法的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须。

请参阅图1所示的参数服务器系统的结构示意图,其包括:服务节点组1以及工作节点组。工作节点组包括m个工作节点,m为大于或者等于1的自然数。工作节点组中的各工作节点2均与服务节点组的中服务节点通信连接。其中,服务节点组中的各服务节点共同维护更新算法模型的参数。本实施方式对于参数服务器系统中的服务节点以及工作节点数均不作具体限制,对服务节点和工作节点的通信方式亦不作具体限制,任何用于实现机器学习的参数服务器系统均可适用。

请参阅图2所示的第一实施方式的参数交换方法的流程图,该参数交换方法包括步骤201至步骤204。

步骤201:根据训练数据计算得到新的模型参数。

其中,工作节点计算出的新的模型参数用于更新参数服务器系统的算法模型的参数。

具体地,各工作节点(亦称worker节点)从服务端(亦称server端,即服务节点组)拉取训练数据,并根据拉取的训练数据计算得到新的模型参数。其中,server端根据worker节点的数目进行切分,例如,当参数服务器系统具有3个worker节点,1个server节点以及一个调度节点(亦称scheduler节点)时,server端将训练数据平均分成3份,然后分发到各个worker节点等待计算。

步骤202:判断新的模型参数是否为不能使得算法模型的最终模型参数得到预期优化的无效参数,若为无效参数,则执行步骤203,若不为无效参数,则执行步骤204。

由于不同的算法模型对应的过滤规则(即无效参数的判断方式)不同,所以在实际应用中需要针对不同算法模型定制对应的过滤规则,并将制定出的过滤规则添加入参数服务器系统中的各工作节点。以梯度下降算法模型(简称梯度下降法)为例,梯度下降法是一个最优化算法,通常亦称为最速下降法。最速下降法是求解无约束优化问题最简单和最古老的方法之一,许多有效算法都是以其为基础进行改进和修正而得到的。最速下降法是用负梯度方向为搜索方向的,最速下降法越接近目标值,步长越小,前进越慢。换句话说,在梯度下降法中,当梯度值(指工作节点根据训练数据计算得到的模型参数)很小时的参数更新是很低效,对整体算法模型的优化作用可以忽略的,即即使服务节点不根据这样的梯度值对算法模型的参数进行更新的情况下也不会影响整体算法模型求解的最终模型参数的正确性,因此可以通过预先设置阈值,各工作节点在参数交换前对待交换的模型参数的参数规模进行确认,从而过滤掉参数规模很小的梯度值以减少无效参数的交换。

具体地,以随机梯度下降(stochasticgradientdescent,简称sgd)算法为例,其是梯度下降算法中的一种,算法模型采用梯度下降算法模型,各工作节点计算出的新的模型参数为梯度值。步骤202具体包括子步骤2021以及子步骤2022。

子步骤2021:计算得到新的模型参数的参数模长。

子步骤2022:判断参数模长是否小于预设模长,若小于预设模长,则执行步骤203,若大于或者等于预设模长,则执行步骤204。

其中,参数模长的计算方法为本领域技术人员所熟知,此处不再赘述。

步骤203:不向参数服务器系统中的服务节点推送新的模型参数。

例如工作节点可以直接将计算出的无效参数删除。

步骤204:向参数服务器系统中的服务节点推送新的模型参数。

即可以按照已知的参数交换方式将该新的模型参数推送(push)给服务节点。

下面以使用梯度下降算法进行逻辑斯蒂回归进行用户画像,训练数据为用户特征数据和标签为例,对本实施方式的参数过滤方法进行详细描述:

第一步,server端将训练数据进行切分,并分发给各个worker节点。本实施例对于训练数据的切分方式不作具体限制。

第二步,每个worker节点从server端拉取(pull)最新的参数,然后使用训练数据进行训练。本发明使用逻辑回归对具体的标签进行建模,参照线性回归预测函数,假设特征向量x=(x1,x2,…),hθ(x)=θtx;其中,x是变量,θ是多维的参数,θt是θ的转置。当h(x)>0时,输出为1,否则为0。使用sigmoid函数将结果归一化,令逻辑回归模型的预测函数为:

这个函数的取值区间在(0,1)之间。当预测值大于0.5时,取1,否则取0。于是得到p(y|x;θ)=(hθ(x))y(1-hθ(x))1-y,通过极大似然估计对θ进行规约,考虑到数据维度的无关性,可以得出:其中,p()代表条件概率,π表示连乘,i从1到m,x(i)表示第i个样本的x。

对l(θ)取对数:

在化归后,成本函数表示为:

使用梯度下降法来进行参数更新,主要思路为,对参数θ的最小化方向,重复以下操作:直至算法收敛;

根据以及成本函数,我们得到参数更新公式如下:

上述公式中,α为步长,表示每次梯度下降的幅度,m表示参数更新时所依赖的训练记录的条数(即样本总数)。本发明实施例使用随机梯度下降(sgd),即每次仅根据一个样本对模型中的参数进行调整。需要说明的是,本实施例涉及的公式均是本领域公知的公式,公式中的含义以及符号均为本领域技术人员所熟知,此处不再赘述。

第三步,worker节点进行参数过滤,即在每个worker节点执行完随机梯度下降法得到新的待交换的模型参数后,对新的待交换的模型参数进行过滤。本实施方式中定制了以下过滤规则,即根据待交换的模型参数的(亦可称待更新的模型参数)的规模进行过滤,即以更新的参数的模长作为参数规模的指标,并将模长大于阈值(即预设模长)的参数更新推送(push)到server端,预设模长的设定可以根据具体数据规模决定。

第四步,将不满足过滤规则(即模长大于或者等于预设模长)的参数更新push到server端,server端接收参数更新并合并;将满足过滤规则(即模长小于预设模长)的参数更新过滤掉,即不将其push到server端。

第五步,重复第一至第五步直至训练数据全部参与训练。

通过上述实施例的描述可知,本实施方式具有以下优点:在不影响整体训练的正确性的前提下,减少了不必要的参数交换,减少参数更新次数,降低整个系统的带宽负载,缩短了训练时间,提高了系统的效率。

本发明的第二实施方式涉及一种参数交换方法。第二实施方式与第一实施方式大致相同,主要区别之处在于:在第一实施方式中,针对梯度下降算法提出了基于参数规模进行参数过滤。而在本发明第二实施方式中,提出了根据参数更新是否接近最终模型参数来进行参数过滤,进一步丰富了本发明的实施方式。

在梯度下降算法中,当参数更新接近最优模型参数时的参数更新也是低效的,对整体模型的优化作用可以忽略,因此可以通过过滤掉接近最优模型参数的参数更新来提升系统效率,缩短训练时间。具体地,可以通过kkt条件把不能使得模型向最优解更新的参数更新过滤掉,从而减少不必要的参数交换。kkt条件是解决最优化问题时用到的一种方法。这里提到的最优化问题通常是指对于给定的某一函数,求其在指定作用域上的全局最小值。把所有的不等式约束、等式约束和目标函数全部写为一个式子l(a,b,x)=f(x)+a*g(x)+b*h(x),kkt条件是指最优值必须满足以下条件:

l(a,b,x)对x求导为零;

h(x)=0;

a*g(x)=0;

对于接近最优值条件的参数更新可以过滤。

请参阅图3所示的参数交换方法的流程图,本实施方式的参数交换方法包括步骤301至步骤304。其中,步骤301与步骤201对应相同,步骤303、304分别与步骤203以及步骤204对应相同,此处不再赘述。

步骤302:判断新的模型参数是否接近最优模型参数,若接近最优模型参数,则判定新的模型参数为无效参数,并执行步骤303,若不接近最优模型参数,则判定不为无效参数,执行步骤304。

具体地,结合第一实施方式中的以使用梯度下降算法进行逻辑斯蒂回归进行用户画像为例,训练数据为用户特征数据和标签,对本实施方式的参数过滤方法描述如下:

各工作节点在进行参数过滤时,根据kkt条件将θj带入j(θ),求得当其值接近于0时代表参数更新(即各工作节点计算出的新的模型参数)已经接近最优,此时的参数更新可以过滤,即不向server端推送该新的模型参数,否则,当其值不接近于0时,则需要将该新的模型参数push至server端。

值得一提的是,在一个例子中,各工作节点还可以同时根据第一实施方式以及第二实施方式所举例的过滤规则进行无效参数的过滤,即同时根据参数模长以及参数是否接近最优模型参数来进行参数过滤,从而可以更有效地过滤掉无效参数。

本实施方式与现有技术相比,针对sgd算法模型,通过过滤掉接近系统算法模型的最优模型参数的参数更新,从而可以有效地减少参数更新的次数,降低带宽负载,提升系统效率,并缩短训练时间。

上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。

本发明第三实施方式涉及一种工作节点,如图4所示,包括:至少一个处理器21以及与至少一个处理器21通信连接的存储器22,其中,存储器22存储有可被至少一个处理器21执行的指令,指令被所述至少一个处理器21执行,以使至少一个处理器21能够执行如第一或者第二实施方式所述的参数交换方法。

本发明实施方式相对于现有技术而言,参数服务器系统中的各工作节点在计算得到新的模型参数后,不是直接推送给服务节点,而是通过判断该新的模型参数是否为无效参数来确定是否推送,即在判断出该新的模型参数不能使得参数服务器系统中的算法模型得到预期的优化时,判定该新的模型参数为无效参数,此时不向服务节点推送该新的模型参数。由于无效参数对算法模型的最终模型参数的优化是可以忽略的,所以通过过滤掉无效参数的交换,不仅可以减轻参数服务器系统的带宽压力,提升系统的同步以及容错能力等,而且还可以有效地缩短训练时间。

其中,存储器和处理器采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器和存储器的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器。

处理器负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器可以被用于存储处理器在执行操作时所使用的数据。

不难发现,本实施方式为与第一或者第二实施方式相对应的设备实施例,本实施方式可与第一或者第二实施方式互相配合实施。第一或者第二实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一或者第二实施方式中。

值得一提的是,本实施方式中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施方式中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施方式中不存在其它的单元。

本发明第四实施方式涉及一种参数服务器系统。请继续参阅图1,本实施方式的参数服务器系统包括:服务节点组1以及m个如第三实施方式所述的工作节点,m为大于或者等于1的自然数,m个工作节点均与服务节点组通信连接,其中服务节点组中的各服务节点共同维护更新算法模型的参数,参数服务器系统中的各工作节点用于根据从服务节点组(即服务端)拉取的训练数据计算新的模型参数,并对计算出的模型参数进行过滤后push至服务端。本实施方式对于m的取值不做具体限制。

本发明实施方式相对于现有技术而言,参数服务器系统中的各工作节点在计算得到新的模型参数后,不是直接推送给服务节点,而是通过判断该新的模型参数是否为无效参数来确定是否推送,即在判断出该新的模型参数不能使得参数服务器系统中的算法模型得到预期的优化时,判定该新的模型参数为无效参数,此时不向服务节点推送该新的模型参数。由于无效参数对算法模型的最终模型参数的优化是可以忽略的,所以通过过滤掉无效参数的交换,不仅可以减轻参数服务器系统的带宽压力,提升系统的同步以及容错能力等,而且还可以有效地缩短训练时间。

即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。

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