CN110689137B - 参数确定方法、系统、介质和电子设备 - Google Patents
参数确定方法、系统、介质和电子设备 Download PDFInfo
- Publication number
- CN110689137B CN110689137B CN201910908085.6A CN201910908085A CN110689137B CN 110689137 B CN110689137 B CN 110689137B CN 201910908085 A CN201910908085 A CN 201910908085A CN 110689137 B CN110689137 B CN 110689137B
- Authority
- CN
- China
- Prior art keywords
- parameter
- value
- sample data
- determining
- node
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明的实施方式提供了一种参数确定方法。该参数确定方法包括:经由多个模型训练节点分别获取用于确定机器学习模型中参数的参数值的样本数据;以及多个模型训练节点中的各个模型训练节点分别针对获取到的样本数据执行如下处理操作:从参数服务节点中获取与样本数据相关联的参数的当前参数值;基于当前参数值和样本数据,确定与样本数据相关联的参数的第一更新值;以及发送第一更新值到参数服务节点,使得参数服务节点基于第一更新值更新与样本数据相关联的参数的参数值。本发明的方法使得参数能够及时更新,从而显著地降低了训练样本数据来获得参数值的训练时间。此外,本发明的实施方式提供了一种信息处理系统、介质和电子设备。
Description
技术领域
本发明的实施方式涉及计算机技术领域,更具体地,本发明的实施方式涉及一种参数确定方法、系统、介质和电子设备。
背景技术
本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
目前,通常利用spark框架来确定机器学习模型中参数的参数值,机器学习模型例如逻辑回归模型、线性回归模型等。然而,利用spark框架来确定机器学习模型中参数的参数值所需要的时间较长,并且参数难以及时更新。
发明内容
为此,非常需要一种改进的参数确定方法,以使机器学习模型中的参数能够得到及时更新。
在本上下文中,本发明的实施方式期望提供一种参数确定方法、系统、介质和电子设备。
在本发明实施方式的第一方面中,提供了一种方法,包括:经由多个计算节点分别获取用于确定机器学习模型中参数的参数值的样本数据;以及所述多个计算节点中的各个所述计算节点分别针对获取到的所述样本数据执行如下处理操作:从参数服务节点中获取与所述样本数据相关联的参数的当前参数值;基于所述当前参数值和所述样本数据,确定所述与所述样本数据相关联的参数的第一更新值;以及发送所述第一更新值到所述参数服务节点,使得所述参数服务节点基于所述第一更新值更新所述与所述样本数据相关联的参数的参数值。
在本发明的一个实施例中,该各个所述计算节点针对获取到的样本数据还执行:将所述样本数据分成多个数据组,其中,各个所述计算节点依次对每个数据组中的样本数据进行处理。
在本发明的另一实施例中,该从参数服务节点中获取与所述样本数据相关联的参数的当前参数值包括:确定所述样本数据的数据属性;根据所述数据属性和参数的映射关系表,确定与所述样本数据相关联的至少一个参数;以及从所述参数服务节点中获取所述至少一个参数各自的当前参数值。
在本发明的又一个实施例中,该基于所述当前参数值和所述样本数据,确定所述与所述样本数据相关联的参数的第一更新值包括:基于所述当前参数值和所述样本数据,确定所述与所述样本数据相关联的参数的原始梯度值;在所述参数服务节点根据来自所述多个计算节点中的其他计算节点的第二更新值来更新所述当前参数值的情况下,获取补偿值;以及基于所述原始梯度值和所述补偿值确定所述第一更新值。
在本发明的再一个实施例中,该第一更新值与所述参数服务节点当前时刻存储的与所述样本数据相关联的参数的第一参数值的梯度值相关,其中,所述第一参数值包括所述当前参数值或者根据来自其他计算节点的第二更新值更新后的值,其中,所述参数服务节点基于所述第一更新值更新所述与所述样本数据相关联的参数的参数值包括:通过将所述第一更新值与所述第一参数值相加来确定所述参数的参数值。
在本发明的再一个实施例中,该基于所述当前参数值和所述样本数据,确定与所述样本数据相关联的参数的第一更新值包括:基于所述当前参数值,利用Follow TheRegularized Leader算法对所述样本数据进行训练而获得所述参数的原始梯度值;以及基于所述原始梯度值确定所述第一更新值。
在本发明的再一个实施例中,该方法还包括接收来自调度器的控制指令,所述调度器用于监控和管理所述多个计算节点和/或所述参数服务节点的工作状态;以及响应所述控制指令,以对所述工作状态异常的所述多个计算节点和/或所述参数服务节点进行管理。
在本发明实施方式的第二方面中,提供了一种参数确定系统,包括参数服务节点和多个计算节点。参数服务节点用于存储机器学习模型中参数的参数值。多个计算节点用于分别获取用于确定机器学习模型中参数的参数值的样本数据。其中,所述各个所述计算节点分别包括:获取模块,用于从参数服务节点中获取与所述样本数据相关联的参数的当前参数值;确定模块,用于基于所述当前参数值和所述样本数据,确定所述与所述样本数据相关联的参数的第一更新值;以及发送模块,用于发送所述第一更新值到所述参数服务节点,使得所述参数服务节点基于所述第一更新值更新所述与所述样本数据相关联的参数的参数值。所述参数服务节点还用于基于所述第一更新值更新所述与所述样本数据相关联的参数的参数值。
在本发明的一个实施例中,各个所述计算节点分别还包括:分组模块,用于将所述样本数据分成多个数据组,其中,各个所述计算节点依次对每个数据组中的样本数据进行处理。
在本发明的另一个实施例中,获取模块包括:第一确定子模块,用于确定所述样本数据的数据属性;第二确定子模块,用于根据所述数据属性和参数的映射关系表,确定与所述样本数据相关联的至少一个参数;以及第一获取子模块,用于从所述参数服务节点中获取所述至少一个参数各自的当前参数值。
在本发明的再一个实施例中,确定模块包括:第三确定子模块,用于基于所述当前参数值和所述样本数据,确定所述与所述样本数据相关联的参数的原始梯度值;第二获取子模块,用于在所述参数服务节点根据来自所述多个计算节点中的其他计算节点的第二更新值来更新所述当前参数值的情况下,获取补偿值;以及第四确定子模块,用于基于所述原始梯度值和所述补偿值确定所述第一更新值。
在本发明的再一个实施例中,第一更新值与所述参数服务节点当前时刻存储的与所述样本数据相关联的参数的第一参数值的梯度值相关,其中,所述第一参数值包括所述当前参数值或者根据来自其他计算节点的第二更新值更新后的值,其中,所述参数服务节点基于所述第一更新值更新所述与所述样本数据相关联的参数的参数值包括:通过所述第一更新值与所述第一参数值相加而确定所述参数的参数值。
在本发明的再一个实施例中,确定模块包括:训练子模块,用于基于所述当前参数值,利用Follow The Regularized Leader算法对所述样本数据进行训练而获得所述参数的原始梯度值;以及第五确定子模块,用于基于所述原始梯度值确定所述第一更新值。
在本发明的再一个实施例中,所述系统还包括调度器,用于监控和管理所述多个计算节点和/或所述参数服务节点的工作状态;以及向所述多个计算节点和/或所述参数服务节点发送控制指令,所述控制指令用于对所述工作状态异常的所述计算节点和/或所述参数服务节点进行管理。
在本发明实施方式的第三方面中,提供了一种介质,存储有计算机可执行指令,所述指令在被处理单元执行时用于实现上述的参数确定方法。
在本发明实施方式的第四方面中,提供了一种电子设备,包括一个或多个处理器;存储装置,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行上述的方法。
根据本发明实施方式的参数确定方法和系统,可以利用多个计算节点对样本数据进行训练,训练结果直接发送到参数服务节点,而无需等待多个计算节点全部训练完之后再对该多个计算节点的训练结果进行计算而获得参数值,从而显著地缩短了确定参数的参数值的时间,保证参数的参数值及时更新,为用户带来了更好的体验。
附图说明
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
图1示意性地示出了根据本发明实施例的用于参数确定方法及其系统的示例性系统架构;
图2A示意性地示出了根据本发明实施例的参数确定方法的流程图;
图2B示意性地示出了根据本发明实施例的计算节点针对获取到的样本数据执行的处理操作的流程图;
图2C示意性示出了根据本发明另一实施例的计算节点针对获取到的样本数据执行处理操作的流程图;
图3示意性示出了根据本发明实施例的从参数服务节点中获取与样本数据相关联的参数的当前参数值的方法流程图;
图4示意性示出了根据本发明另一实施例的操作S222确定与样本数据相关联的参数的第一更新值的流程图;
图5示意性示出了根据本发明另一实施例的参数确定方法的流程图;
图6示意性示出了根据本发明实施例的计算节点的方框图;
图7示意性示出了根据本发明另一实施例的计算节点的方框图;
图8示意性示出了根据本发明实施例的获取模块的方框图;
图9示意性示出了根据本发明实施例的确定模块的方框图;
图10示意性地示出了根据本发明实施方式的计算机可读存储介质产品的示意图;以及
图11示意性地示出了根据本发明实施方式的电子设备的框图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本发明的实施方式,提出了一种参数确定的方法、介质、系统和电子设备。
在本文中,需要理解的是,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
发明概述
本发明人发现,在现有技术中,通常利用spark框架来更新逻辑回归模型、线性回归模型等机器学习模型的参数。spark框架每一轮的参数更新都需要等待多个节点中的每一个节点分别根据样本数据计算出参数更新结果后,对该多个参数更新结果进行例如规约等计算而确定出该轮的参数更新值。由于利用spark框架需要等待每一个节点得出参数更新结果后,对多个参数更新结果进行规约等计算来确定该轮的参数更新值,而导致利用spark框架确定参数的参数值消耗的时间较长,参数值的更新不及时。
本发明的实施方式提供了一种参数确定方法和系统。该参数确定方法包括经由多个计算节点分别获取用于确定机器学习模型中参数的参数值的样本数据,以及该多个计算节点中的各个所述计算节点分别针对获取到的所述样本数据执行如下处理操作:从参数服务节点中获取与所述样本数据相关联的参数的当前参数值;基于所述当前参数值和所述样本数据,确定所述与所述样本数据相关联的参数的第一更新值;以及发送所述第一更新值到所述参数服务节点,使得所述参数服务节点基于所述第一更新值更新所述与所述样本数据相关联的参数的参数值。由于本发明经由多个计算节点分别从参数服务节点获得当前参数值,并利用当前参数值针对获取到的样本数据进行训练,将训练得到的第一更新值发送到参数服务节点,使得参数值的更新不用等待所有计算节点全部训练完之后再进行,从而缩短了参数确定的时间,保证参数的参数值及时更新。
在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。
应用场景总览
首先参考图1详细阐述本发明实施例的用于参数确定方法及其系统的示例性系统架构。
如图1所示,该系统架构例如可以包括数据源节点即data、计算节点即workernodes以及参数服务节点即server node。
数据源节点中例如可以存储有大量的样本数据,该些样本数据用于训练机器学习模型中参数的参数值。数据源节点例如可以是数据库。
如图1所示,计算节点可以包括多个,该多个计算节点可以分别从数据源节点中获取样本数据,并且从参数服务节点获取待训练的参数的当前参数值。接下来,计算节点根据获取到的样本数据和当前参数值,对机器学习模型中参数的参数值进行训练。计算节点将训练得到的参数值发送到参数服务节点,以便参数服务节点及时更新参数值。
如图1所示,计算节点110正在执行从参数服务节点获取当前参数值,计算节点120正在执行将训练得到的参数值发送到参数服务节点。
根据本发明的实施例,参数服务节点例如可以采用分布式存储的方式各自存储全局参数的一部分,并且作为服务方接收计算节点的参数查询和更新。
根据本公开的实施例,该系统架构还可以包括调度器,调度器用于监控多个计算节点和/或参数服务节点的工作状态,并且对工作状态异常的至少一个计算节点和/或参数服务节点进行管理。
示例性方法
下面结合图1的系统架构,参考图2A、2B、2C、图3-5来描述根据本发明示例性实施方式的用于参数确定的方法。需要注意的是,上述系统架构仅是为了便于理解本发明的精神和原理而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景、系统架构。
图2A示意性示出了根据本发明实施例的参数确定方法的流程图。
如图2A所示,该参数确定方法可以包括操作S210和操作S220。
在操作S210,经由多个计算节点分别获取用于确定机器学习模型中参数的参数值的样本数据。
根据本发明的实施例,机器学习模型例如可以是逻辑回归、线性回归、Factorization Machines等模型。
例如在图1所示的系统架构中,计算节点可以从数据源节点获取样本数据。根据本发明的实施例,数据源节点中例如可以存储有正样本数据和负样本数据。计算节点可以从数据库data中获取正样本数据。
具体地,例如在训练一个用于预测用户点击一条新闻的可能性的逻辑回归模型的情景中,数据源节点中可以存储有被点击的新闻、未被点击的新闻、以及点击被点击新闻的用户的用户信息。计算节点可以从数据源节点中获取正样本数据,在该情景中,正样本数据例如可以是被点击的新闻以及点击被点击新闻的用户的用户信息。
在操作S220,各个计算节点分别针对获取到的样本数据执行处理操作。
其中,在操作S220,各个计算节点分别针对获取到的样本数据执行图2B所示的处理操作。
图2B示意性示出了根据本发明实施例的计算节点针对获取到的样本数据执行的处理操作的流程图。
如图2B所示,各个计算节点分别针对获取到的样本数据执行的处理操作可以包括操作S221~S223。
在操作S221,从参数服务节点中获取与样本数据相关联的参数的当前参数值。
假设待确定参数的逻辑回归模型为Y=A*x1+B*x2+C*x3+D*x4,其中,A、B、C以及D为参数值待确定的参数,x1、x2、x3和x4可以是变量,例如可以是表示用户特征的向量。计算节点110本次从数据源节点获取到的样本数据与参数A和B相关,则计算节点110例如可以从参数服务节点中获取参数A和B的当前参数值。
本领域技术人员可以理解的是上述逻辑回归模型仅仅是一个用于说明操作S221的例子。
在操作S222,基于当前参数值和样本数据,确定与样本数据相关联的参数的第一更新值。
根据本发明的实施例,例如可以基于当前参数值,利用Follow The RegularizedLeader算法对样本数据进行训练而获得参数的原始梯度值,以及基于该原始梯度值确定第一更新值。
需要理解的是,在操作S222确定与样本数据相关联的参数的原始梯度值例如也可以采用例如随机梯度下降算法等线上学习算法或者是批量学习算法。
在本发明的一个实施例,原始梯度值例如可以是第一更新值。在本发明的另一实施例中,例如可以根据原始梯度值和补偿值来确定第一更新值。图4说明了根据原始梯度值和补偿值来确定第一更新值的方法,该方法在此不再赘述。
在操作S223,发送第一更新值到参数服务节点,使得参数服务节点基于第一更新值更新与样本数据相关联的参数的参数值。
根据本发明的实施例,该参数确定方法由多个计算节点分别获取样本数据,并且该多个计算节点分别从参数服务节点获取与各自的样本数据相关的参数的当前参数值,以根据当前参数值和样本数据训练得到参数的第一更新值,并且该多个计算节点中的每一个计算节点在得到第一更新值后即发送第一更新值到参数服务节点,从而使得参数值的更新不需要等待所有的计算节点都训练完成,每一个计算节点训练完后便更新参数的参数值,保证了参数的及时更新,缩短了确定参数的参数值的时间。
图2C示意性示出了根据本发明另一实施例的操作S220计算节点针对获取到的样本数据执行处理操作的流程图。
如图2C所示,该方法在前述图2B所示的操作S221~S223的基础上还可以包括操作S224。操作S224例如可以在操作S221之前执行。
在操作S224,将所述样本数据分成多个数据组。其中,各个计算节点依次对每个数据组中的样本数据进行处理。
例如在图1所示的系统架构中,计算节点120从数据源节点获取到100个样本数据,计算节点120将该100个样本数据平均分成10个数据组,每个数据组中包括10个样本数据。接下来,计算节点120例如可以按照操作S221~S223所述的方法首先对第一个数据组进行处理,然后再依次对第二个数据组、第三个数据组、......第十个数据组进行处理。
根据本发明的实施例,每个计算节点的样本数据被分为很多组,每一组数据量较少,在每一轮训练的过程中,使用到的参数并非全部参数,而是全局参数的一个子集。因此,在待确定的参数较多的情况下,参数不会超过单个计算节点容纳的极限。
图3示意性示出了根据本发明实施例的操作S221从参数服务节点中获取与样本数据相关联的参数的当前参数值的方法流程图。
如图3所示,该方法可以包括操作S310~S330。
在操作S310,确定样本数据的数据属性。
例如样本数据中包括用户特征“男”或“女”,确定该样本数据的数据属性例如可以包括性别。
在操作S320,根据数据属性和参数的映射关系表,确定与样本数据相关联的至少一个参数。
查询数据属性和参数的映射关系表,例如可以确定与性别相关联的至少一个参数。
在操作S330,从参数服务节点中获取至少一个参数各自的当前参数值。
从参数服务节点中获取与性别相关联的至少一个参数的当前参数值。
图4示意性示出了根据本发明另一实施例的操作S222确定与样本数据相关联的参数的第一更新值的流程图。在该实施例中,可以根据原始梯度值和补偿值确定第一更新值。
如图4所示,该方法可以包括操作S410~操作S430。
在操作S410,基于当前参数值和样本数据,确定与样本数据相关联的参数的原始梯度值。
根据本发明的实施例,例如可以利用Follow The Regularized Leader算法对样本数据进行训练而获得参数的原始梯度值。
根据本公开的实施例,该原始梯度值可以是相对于当前参数值的梯度值。例如,计算节点120在t1时刻从参数服务节点获取参数A的当前参数值,并使用该当前参数值进行训练,经由Follow The Regularized Leader算法训练得到的原始梯度值可以是相对于当前参数值的梯度值。
在操作S420,在参数服务节点根据来自多个计算节点中的其他计算节点的第二更新值来更新当前参数值的情况下,获取补偿值。
根据本发明的实施例,例如计算节点120在t1时刻从参数服务节点获取参数A的当前参数值,计算节点120利用Follow The Regularized Leader算法和当前参数值对样本数据进行训练,并且例如可以在t2时刻确定出与样本数据相关联的参数的原始梯度值。
本领域技术人员可以理解,在计算节点从t1时刻获取到当前参数值到t2时刻计算出原始梯度值之间存在时间间隔。在该时间间隔中,参数服务节点中存储的参数A的当前参数值可能已经被该多个计算节点中的其他计算节点更新过。这样,参数服务节点在参数A的当前参数值已经被其他计算节点更新过的基础上,根据原始梯度值确定出来的第一更新值存在延迟误差。因此,根据本发明的实施例,可以获取补偿值,以补偿由于时间延迟而带来的误差。
根据本发明的实施例,补偿值例如可以是本领域技术人员根据经验而预先设定的。
在操作S430,基于原始梯度值和所述补偿值确定第一更新值。例如可以是原始梯度值与补偿值的和作为第一更新值。
根据本发明的实施例,该方法可以对时间延迟带来的误差进行补偿,提高了训练精度。
根据本发明的实施例,在图2B或者图4所示的方法中,第一更新值可以与所述参数服务节点当前时刻存储的与所述样本数据相关联的参数的第一参数值的梯度值相关,其中,第一参数值包括所述当前参数值或者根据来自其他计算节点的第二更新值更新后的值。在该实施例中,参数服务节点可以将第一更新值与第一参数值相加来确定参数的参数值。
下面结合图1所示的系统架构说明该实施例中确定参数的参数值的方法。
例如计算节点120在t1时刻从参数服务节点获取与样本数据相关联的参数A的当前参数值。接下来,计算节点120根据该当前参数值训练样本数据,并且例如在t2时刻获得第一参数值的第一更新值。再接下来,计算节点120将该第一更新值发送到参数服务节点,使得参数服务节点根据该第一更新值和第一参数值更新该参数A的参数值。
本领域技术人员可以理解的是,计算节点从t1时刻获取到当前参数值到t2时刻计算出第一更新值之间存在时间间隔,而在该时间间隔内,参数服务节点或者未接收到来自其他计算节点更新该参数A的参数值的请求,或者接收到来自其他计算节点更新该参数A的参数值的请求。
若参数服务节点未接收到来自其他计算节点更新该参数A的参数值的请求,则参数A的参数值未被更新过,仍然是当前参数值。在该情况下,计算节点计算出的第一更新值是当前参数值的梯度值,参数服务节点可以将该第一更新值与第一参数值即当前参数值相加来确定参数A的参数值。
若参数服务节点接收到来自其他计算节点更新该参数A的参数值的请求,则参数A的参数值被更新过。在该情况下,计算节点计算出的第一更新值是被其他计算节点更新后的值的梯度值,参数服务节点可以将该梯度值与第一参数值即被其他计算节点更新后的值(t2时刻,参数服务节点存储的参数A的值)相加来确定参数A的参数值。
根据本发明的另外一些实施例,为了补偿时间延迟带来的误差,计算节点基于当前参数值和样本数据计算出的原始梯度值可以直接发送给参数存储节点,由参数存储节点例如可以根据DC-SGD(Delay-compensated Async SGD)算法或者误差补偿式量化随机梯度下降法(ECQ-SGD)来确定更新后的参数的参数值。
图5示意性示出了根据本发明另一实施例的参数确定方法的流程图。
如图5所示,该参数确定方法在前述实施例包括操作S210和操作S220的基础上还可以包括操作S510和操作S520。
在操作S510,接收来自调度器的控制指令,所述调度器用于监控和管理多个计算节点和/或参数服务节点的工作状态。
根据本发明的实施例,工作状态例如可以包括正常工作、宕机、故障等多种状态。例如可以监控多个计算节点和/或参数服务节点的CPU、内存的运行情况来确定其是否正常工作。
在操作S520,响应所述控制指令,以对工作状态异常的所述多个计算节点和/或参数服务节点进行管理。
例如可以删除宕机的计算节点和/或参数服务节点,查看各个计算节点和/或参数服务节点的处理进度等等。
根据本发明的实施例,例如在图1所示的系统架构的基础上,系统架构还可以包括调度器。该调度器用于监控多个计算节点和参数服务节点的工作状态。
示例性系统
在介绍了本发明示例性实施方式的方法之后,接下来,参考图1和图6~9对本发明示例性实施方式的参数确定系统进行阐述。
根据本发明的实施例,如图1所示,参数确定系统可以包括参数服务节点和多个计算节点。
参数服务节点用于存储机器学习模型中参数的参数值,以及基于所述第一更新值更新所述与所述样本数据相关联的参数的参数值。
多个计算节点用于分别获取用于确定机器学习模型中参数的参数值的样本数据。
图6示意性示出了根据本发明实施例的计算节点600的方框图。
如图6所示,计算节点600可以包括获取模块610、确定模块620和发送模块630。
获取模块610,例如可以执行上文参考图2B中描述的操作S221,用于从参数服务节点中获取与所述样本数据相关联的参数的当前参数值。
确定模块620,例如可以执行上文参考图2B中描述的操作S222,用于基于所述当前参数值和所述样本数据,确定所述与所述样本数据相关联的参数的第一更新值。
发送模块630,例如可以执行上文参考图2B中描述的操作S223,用于发送所述第一更新值到所述参数服务节点,使得所述参数服务节点基于所述第一更新值更新所述与所述样本数据相关联的参数的参数值。
图7示意性示出了根据本发明另一实施例的计算节点700的方框图。
如图7所示,计算节点700在前述实施例的基础上还可以包括分组模块710。
分组模块710,例如可以执行上文参考图2C中描述的操作S224,用于将所述样本数据分成多个数据组,其中,各个所述计算节点依次对每个数据组中的样本数据进行处理。
图8示意性示出了根据本发明实施例的获取模块610的方框图。
如图8所示,获取模块610可以包括第一确定子模块611、第二确定子模块612和第一获取子模块613。
第一确定子模块611,例如可以执行上文参考图3中描述的操作S310,用于确定所述样本数据的数据属性。
第二确定子模块612,例如可以执行上文参考图3中描述的操作S320,用于根据所述数据属性和参数的映射关系表,确定与所述样本数据相关联的至少一个参数。
第一获取子模块613,例如可以执行上文参考图3中描述的操作S330,用于从所述参数服务节点中获取所述至少一个参数各自的当前参数值。
图9示意性示出了根据本发明实施例的确定模块620的方框图。
如图9所示,确定模块620可以包括第三确定子模块621、第二获取子模块622和第四确定子模块623。
第三确定子模块621,例如可以执行上文参考图4中描述的操作S410,用于基于所述当前参数值和所述样本数据,确定所述与所述样本数据相关联的参数的原始梯度值。
第二获取子模块622,例如可以执行上文参考图4中描述的操作S420,用于在所述参数服务节点根据来自所述多个计算节点中的其他计算节点的第二更新值来更新所述当前参数值的情况下,获取补偿值。
第四确定子模块623,例如可以执行上文参考图4中描述的操作S430,用于基于所述原始梯度值和所述补偿值确定所述第一更新值。
根据本发明的另一实施例,确定模块620可以包括训练子模块用于基于所述当前参数值,利用Follow The Regularized Leader算法对所述样本数据进行训练而获得所述参数的原始梯度值;以及第五确定子模块用于基于所述原始梯度值确定所述第一更新值。
根据本发明的实施例,第一更新值与所述参数服务节点当前时刻存储的与所述样本数据相关联的参数的第一参数值的梯度值相关,其中,第一参数值包括当前参数值或者根据来自其他计算节点的第二更新值更新后的值,其中,参数服务节点基于第一更新值更新与样本数据相关联的参数的参数值包括:通过第一更新值与第一参数值相加而确定参数的参数值。
根据本发明的另一实施例,参数确定系统还可以包括调度器,用于监控和管理多个计算节点和/或参数服务节点的工作状态;以及向所述多个计算节点和/或所述参数服务节点发送控制指令,所述控制指令用于对所述工作状态异常的所述计算节点和/或所述参数服务节点进行管理。
示例性介质
在介绍了本发明示例性实施方式的方法之后,接下来,参考图10对本发明示例性实施方式的、用于实现上述方法实施例中任一项的参数确定方法的程序产品进行描述。
在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在计算设备上运行时,所述程序代码用于使所述计算设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的参数确定方法中的步骤,例如,所述计算设备可以执行如图2A中所示的操作S210:经由多个计算节点分别获取用于确定机器学习模型中参数的参数值的样本数据;操作S220:各个计算节点分别针对获取到的样本数据执行处理操作。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
如图10所示,描述了根据本发明的实施方式的用于参数确定的程序产品100,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在计算设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆,RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言——诸如Java,C++等,还包括常规的过程式程序设计语言——诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)一连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
示例性计算设备
在介绍了本发明示例性实施方式的方法、介质和装置之后,接下来,参考图11对本发明示例性实施方式的电子设备进行说明。
本发明实施例还提供了一种电子设备。所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
在一些可能的实施方式中,根据本发明的电子设备可以至少包括至少一个处理单元、以及至少一个存储单元。其中,所述存储单元存储有程序代码,当所述程序代码被所述处理单元执行时,使得所述处理单元执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的参数确定方法中的步骤。例如,所述处理单元可以执行如图2A中所示的操作S210:经由多个计算节点分别获取用于确定机器学习模型中参数的参数值的样本数据;操作S220:各个计算节点分别针对获取到的样本数据执行处理操作。
下面参照图11来描述根据本发明的这种实施方式的用于参数确定的电子设备1100。如图11所示的电子设备1100仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图11所示,电子设备1100以通用电子设备的形式表现。电子设备1100的组件可以包括但不限于:上述至少一个处理单元1101、上述至少一个存储单元1102、连接不同系统组件(包括存储单元1102和处理单元1101)的总线1103。
总线1103包括数据总线、地址总线和控制总线。
存储单元1102可以包括易失性存储器,例如随机存取存储器(RAM)11021和/或高速缓存存储器11022,还可以进一步包括只读存储器(ROM)11023。
存储单元1102还可以包括具有一组(至少一个)程序模块11024的程序/实用工具11025,这样的程序模块11024包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
电子设备1100也可以与一个或多个外部设备1104(例如键盘、指向设备、蓝牙设备等)通信,这种通信可以通过输入/输出(I/0)接口1105进行。并且,电子设备1100还可以通过网络适配器1106与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器1106通过总线1103与电子设备1100的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1100使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
应当注意,尽管在上文详细描述中提及了系统的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
Claims (10)
1.一种参数确定方法,包括:
经由多个计算节点分别获取用于确定机器学习模型中参数的参数值的样本数据;以及
所述多个计算节点中的各个所述计算节点分别针对获取到的所述样本数据执行如下处理操作:
将所述样本数据分成多个数据组,其中,各个所述计算节点依次对每个数据组中的样本数据进行处理;
从参数服务节点中获取与所述样本数据相关联的参数的当前参数值;
基于所述当前参数值和所述样本数据,确定所述与所述样本数据相关联的参数的第一更新值;
发送所述第一更新值到所述参数服务节点,使得所述参数服务节点基于所述第一更新值更新所述与所述样本数据相关联的参数的参数值;
其中,所述从参数服务节点中获取与所述样本数据相关联的参数的当前参数值包括:
确定所述样本数据的数据属性;
根据所述数据属性和参数的映射关系表,确定与所述样本数据相关联的至少一个参数;
从所述参数服务节点中获取所述至少一个参数各自的当前参数值;
其中,所述基于所述当前参数值和所述样本数据,确定与所述样本数据相关联的参数的第一更新值包括:
基于所述当前参数值,利用Follow The Regularized Leader算法对所述样本数据进行训练而获得所述参数的原始梯度值;以及
基于所述原始梯度值确定所述第一更新值。
2.根据权利要求1所述的方法,其中,所述基于所述当前参数值和所述样本数据,确定所述与所述样本数据相关联的参数的第一更新值包括:
基于所述当前参数值和所述样本数据,确定所述与所述样本数据相关联的参数的原始梯度值;
在所述参数服务节点根据来自所述多个计算节点中的其他计算节点的第二更新值来更新所述当前参数值的情况下,获取补偿值;以及
基于所述原始梯度值和所述补偿值确定所述第一更新值。
3.根据权利要求1或2所述的方法,其中,所述第一更新值与所述参数服务节点当前时刻存储的与所述样本数据相关联的参数的第一参数值的梯度值相关,其中,所述第一参数值包括所述当前参数值或者根据来自其他计算节点的第二更新值更新后的值,
其中,所述参数服务节点基于所述第一更新值更新所述与所述样本数据相关联的参数的参数值包括:
通过将所述第一更新值与所述第一参数值相加来确定所述参数的参数值。
4.根据权利要求1所述的方法,还包括:
接收来自调度器的控制指令,所述调度器用于监控和管理所述多个计算节点和/或所述参数服务节点的工作状态;以及
响应所述控制指令,以对所述工作状态异常的所述多个计算节点和/或所述参数服务节点进行管理。
5.一种参数确定系统,包括:
参数服务节点,用于存储机器学习模型中参数的参数值;
多个计算节点,用于分别获取用于确定机器学习模型中参数的参数值的样本数据,
其中,所述各个所述计算节点分别包括:
分组模块,用于将所述样本数据分成多个数据组,其中,各个所述计算节点依次对每个数据组中的样本数据进行处理;
获取模块,用于从参数服务节点中获取与所述样本数据相关联的参数的当前参数值;
确定模块,用于基于所述当前参数值和所述样本数据,确定所述与所述样本数据相关联的参数的第一更新值;以及
发送模块,用于发送所述第一更新值到所述参数服务节点,使得所述参数服务节点基于所述第一更新值更新所述与所述样本数据相关联的参数的参数值;
所述参数服务节点还用于基于所述第一更新值更新所述与所述样本数据相关联的参数的参数值;
其中,所述获取模块包括:
第一确定子模块,用于确定所述样本数据的数据属性;
第二确定子模块,用于根据所述数据属性和参数的映射关系表,确定与所述样本数据相关联的至少一个参数;以及
第一获取子模块,用于从所述参数服务节点中获取所述至少一个参数各自的当前参数值;
其中,所述确定模块包括:
训练子模块,用于基于所述当前参数值,利用Follow The Regularized Leader算法对所述样本数据进行训练而获得所述参数的原始梯度值;以及
第五确定子模块,用于基于所述原始梯度值确定所述第一更新值。
6.根据权利要求5所述的系统,其中,所述确定模块包括:
第三确定子模块,用于基于所述当前参数值和所述样本数据,确定所述与所述样本数据相关联的参数的原始梯度值;
第二获取子模块,用于在所述参数服务节点根据来自所述多个计算节点中的其他计算节点的第二更新值来更新所述当前参数值的情况下,获取补偿值;以及
第四确定子模块,用于基于所述原始梯度值和所述补偿值确定所述第一更新值。
7.根据权利要求5所述的系统,所述第一更新值与所述参数服务节点当前时刻存储的与所述样本数据相关联的参数的第一参数值的梯度值相关,其中,所述第一参数值包括所述当前参数值或者根据来自其他计算节点的第二更新值更新后的值,其中,所述参数服务节点基于所述第一更新值更新所述与所述样本数据相关联的参数的参数值包括:
通过所述第一更新值与所述第一参数值相加而确定所述参数的参数值。
8.根据权利要求5所述的系统,还包括:
调度器,用于监控和管理所述多个计算节点和/或所述参数服务节点的工作状态;以及向所述多个计算节点和/或所述参数服务节点发送控制指令,所述控制指令用于对所述工作状态异常的所述计算节点和/或所述参数服务节点进行管理。
9.一种介质,存储有计算机可执行指令,所述指令在被处理单元执行时用于实现权利要求1至4中任一项所述的方法。
10.一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如权利要求1~4任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910908085.6A CN110689137B (zh) | 2019-09-24 | 2019-09-24 | 参数确定方法、系统、介质和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910908085.6A CN110689137B (zh) | 2019-09-24 | 2019-09-24 | 参数确定方法、系统、介质和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110689137A CN110689137A (zh) | 2020-01-14 |
CN110689137B true CN110689137B (zh) | 2022-11-25 |
Family
ID=69110599
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910908085.6A Active CN110689137B (zh) | 2019-09-24 | 2019-09-24 | 参数确定方法、系统、介质和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110689137B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW202137078A (zh) * | 2020-03-24 | 2021-10-01 | 廣達電腦股份有限公司 | 資料處理系統及資料處理方法 |
CN117589065A (zh) * | 2023-11-20 | 2024-02-23 | 河北工程大学 | 一种针对异形轴接口尺寸的检测方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8768870B1 (en) * | 2012-05-22 | 2014-07-01 | Google Inc. | Training a model using parameter server shards |
CN106156810A (zh) * | 2015-04-26 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 通用机器学习算法模型训练方法、系统和计算节点 |
CN108304354A (zh) * | 2018-01-25 | 2018-07-20 | 腾讯科技(深圳)有限公司 | 一种预测模型训练方法及装置、存储介质、电子设备 |
CN109165515A (zh) * | 2018-08-10 | 2019-01-08 | 深圳前海微众银行股份有限公司 | 基于联邦学习的模型参数获取方法、系统及可读存储介质 |
WO2019090954A1 (zh) * | 2017-11-07 | 2019-05-16 | 华为技术有限公司 | 一种预测方法及终端、服务器 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107784364B (zh) * | 2016-08-25 | 2021-06-15 | 微软技术许可有限责任公司 | 机器学习模型的异步训练 |
CN108280522B (zh) * | 2018-01-03 | 2021-08-20 | 北京大学 | 一种插件式分布式机器学习计算框架及其数据处理方法 |
-
2019
- 2019-09-24 CN CN201910908085.6A patent/CN110689137B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8768870B1 (en) * | 2012-05-22 | 2014-07-01 | Google Inc. | Training a model using parameter server shards |
CN106156810A (zh) * | 2015-04-26 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 通用机器学习算法模型训练方法、系统和计算节点 |
WO2019090954A1 (zh) * | 2017-11-07 | 2019-05-16 | 华为技术有限公司 | 一种预测方法及终端、服务器 |
CN108304354A (zh) * | 2018-01-25 | 2018-07-20 | 腾讯科技(深圳)有限公司 | 一种预测模型训练方法及装置、存储介质、电子设备 |
CN109165515A (zh) * | 2018-08-10 | 2019-01-08 | 深圳前海微众银行股份有限公司 | 基于联邦学习的模型参数获取方法、系统及可读存储介质 |
Non-Patent Citations (2)
Title |
---|
Privacy-Preserving Distributed Multi-Task Learning with Asynchronous Updates;Liyang Xie et al.;《KDD "17: Proceedings of the 23rd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining》;20170813;第1195-1204页 * |
一种Yarn框架下的异步双随机梯度下降算法;杨双涛 等;《小型微型计算机系统》;20170515;第38卷(第5期);第1070-1075页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110689137A (zh) | 2020-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200167671A1 (en) | Computer system and method for machine learning or inference | |
EP3798930A2 (en) | Machine learning training resource management | |
CN110689137B (zh) | 参数确定方法、系统、介质和电子设备 | |
CN113094125B (zh) | 业务流程处理方法、装置、服务器及存储介质 | |
CN109299124B (zh) | 用于更新模型的方法和装置 | |
CN110889725A (zh) | 在线广告ctr预估方法、装置、设备及存储介质 | |
CN111966382A (zh) | 机器学习模型的在线部署方法、装置及相关设备 | |
EP3798931A1 (en) | Machine learning training resource management | |
CN112379913A (zh) | 基于风险识别的软件优化方法、装置、设备及存储介质 | |
US20160299946A1 (en) | Usage and Symptom Oriented SQL Statement Optimization | |
CN116044867A (zh) | 基于自动编程的液压系统控制方法、系统、设备及介质 | |
CN112734404B (zh) | 研发过程迭代的工时统计方法、装置、计算机设备 | |
CN111159237B (zh) | 系统数据分发方法、装置、存储介质及电子设备 | |
CN116745783A (zh) | 机器学习应用中系统特性漂移的处理 | |
CN113139881A (zh) | 双电源用户主供电源识别方法、装置、设备及存储介质 | |
EP4372623A1 (en) | Resolving problems with medical devices | |
CN111324592B (zh) | 应用数据迁移方法、装置 | |
US12086586B2 (en) | Artificial intelligence (AI) supported graph enabled method to manage upgrades for applications | |
CN116521199B (zh) | 一种部件升级方法、装置、设备及存储介质 | |
US20240134777A1 (en) | Graphical Neural Network for Error Identification | |
US20240231794A9 (en) | Artificial intelligence (ai) supported graph enabled method to manage upgrades for applications | |
CN113627144B (zh) | 基于人工智能的图表生成方法、装置、电子设备及介质 | |
WO2022037689A1 (zh) | 一种基于数据形式的数据处理方法和应用机器学习的方法 | |
US20230289241A1 (en) | Automatic data pipeline generation | |
US20240193538A1 (en) | Temporal supply-related forecasting using artificial intelligence techniques |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |