CN108154237B - 一种数据处理系统及方法 - Google Patents

一种数据处理系统及方法 Download PDF

Info

Publication number
CN108154237B
CN108154237B CN201611110243.6A CN201611110243A CN108154237B CN 108154237 B CN108154237 B CN 108154237B CN 201611110243 A CN201611110243 A CN 201611110243A CN 108154237 B CN108154237 B CN 108154237B
Authority
CN
China
Prior art keywords
parameter
data processing
gradient
machine learning
module
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
Application number
CN201611110243.6A
Other languages
English (en)
Other versions
CN108154237A (zh
Inventor
张长征
白小龙
涂丹丹
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201611110243.6A priority Critical patent/CN108154237B/zh
Priority to PCT/CN2017/113581 priority patent/WO2018103562A1/zh
Priority to EP17877425.3A priority patent/EP3540653A4/en
Publication of CN108154237A publication Critical patent/CN108154237A/zh
Priority to US16/432,617 priority patent/US20190287022A1/en
Application granted granted Critical
Publication of CN108154237B publication Critical patent/CN108154237B/zh
Priority to US18/370,524 priority patent/US20240013098A1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • 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/08Learning methods
    • 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)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Algebra (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)
  • Feedback Control In General (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明实施例公开了一种数据处理装置,该装置用于在利用一个子样本数据集计算完每个参数的一组梯度信息之后,将这一个子样本数据集删掉后再读取下一个子样本数据集,并利用下一个子样本数据集计算每个参数的另一组梯度信息。将计算得到的每个参数的多组梯度信息分别累计后得到所述每个参数的更新梯度。

Description

一种数据处理系统及方法
技术领域
本发明涉及大数据技术领域,尤其涉及一种数据处理系统及方法。
背景技术
随着信息技术的发展,企业大数据迅速增长。采用机器学习(包括深度学习)对该企业大数据进行数据分析,可以得出一些规律,这些规律有很多用途,例如:可以用来做预测等。
在现有技术中,企业大数据通常是海量的,在采用机器学习算法对该企业大数据进行分析的过程中,如何提升机器学习模型的收敛速度是目前亟待解决的问题。
发明内容
有鉴于此,本发明实施例提供了一种数据处理系统及方法,以提升机器学习模型的收敛速度。
第一方面,本发明的实施例提供一种数据处理装置,所述数据处理装置包括:梯度计算模块,累计模块,以及发送模块;所述梯度计算模块,用于在一次迭代运算过程中,从样本数据集依次读取多个子样本数据集,所述子样本数据集包括至少一个样本数据,将读入的每个子样本数据集分别输入机器学习模型,计算所述机器学习模型的多个参数中的每个参数的梯度信息,并且,在利用一个子样本数据集计算完每个参数的一组梯度信息之后,将这一个子样本数据集删掉后再读取下一个子样本数据集,并利用下一个子样本数据集计算每个参数的另一组梯度信息,所述机器学习模型是具有初始化全局参数的机器学习模型,或者是在上一次迭代运算中经过更新的机器学习模型;所述累计模块,用于在所述一次迭代运算过程中,将计算得到的每个参数的多组梯度信息分别累计后得到所述每个参数的更新梯度;所述发送模块,用于在所述一次迭代运算过程中,将每个参数的所述更新梯度发送,所述每个参数的所述更新梯度用于更新所述机器学习模型。
在上述实施例中,在每一次迭代运算中,由于将上一次读入的子样本数据集做了删除,所以所述数据处理装置可以再次从样本数据集读取子样本数据集,这样,所述数据处理装置可以多次从样本数据集读取子样本数据集,计算多组梯度信息,并将所述多组梯度信息累计。这样,可以提供根据充足的样本数据计算更新梯度,从而可以提升大规模机器学习模型的收敛速度。另外,数据处理装置将根据多个子样本数据集计算出来的梯度信息经过累计后再发送给模型更新模块,减少了模型更新模块与数据处理装置之间通信的次数。由于减少了模型更新模块与数据处理装置之间通信的次数,相应地减少了模型更新模块与数据处理装置之间的通信所占用的时间,从而减少了多次迭代运算的总时间,提高了机器学习的速度。
在第一方面的第一种可能的实现方式中,所述梯度计算模块,所述累计模块,以及所述发送模块进一步用于参与所述一次迭代运算之后的多次迭代运算,直至所述机器学习模型收敛或者完成指定迭代次数的计算;在所述一次迭代运算之后的多次迭代运算中的每一次迭代运算中,所述梯度计算模块和所述累计模块,以及所述发送模块重复在所述一次迭代运算过程中的动作,在所述一次迭代运算以及所述一次迭代运算之后的多次迭代运算中,所述机器学习模型在采用一次迭代运算中得到的更新梯度被更新后,被输入后一次的迭代运算。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述累计模块具体用于:针对根据所述读取的多个子样本数据集,分别得到的每个参数的多组梯度信息,分别将属于同一个参数的多组梯度信息累计,得到每个参数的更新梯度。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第三种可能的实现方式中,所述累计模块具体用于:针对根据每一个子样本数据集,得到的每个参数的一组梯度信息,分别将属于同一个参数的一组梯度信息累计,得到每个参数的累计梯度,这样,针对所述读取的多个子样本数据集,得到每个参数的多个累计梯度,再将每个参数的多个累计梯度分别累计,得到每个参数的更新梯度。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第四种可能的实现方式中,所述累计模块具体用于:针对根据所述读取的多个子样本数据集,分别得到的每个参数的多组梯度信息,分别将属于同一个参数的多组梯度信息收集在一起,每个参数的收集在一起的多组梯度信息作为每个参数的所述更新梯度。
结合第一方面或第一方面的第一至第三种可能的实现方式中的任意一种可能的实现方式,在第五种可能的实现方式中,所述的累计处理中采用的是加权平均法。
结合第一方面或第一方面的第一至第三种可能的实现方式中的任意一种可能的实现方式,在第六种可能的实现方式中,所述的累计处理中采用的是:提取部分梯度信息,再做加权处理的方式。
结合第一方面或第一方面的第一至第六种可能的实现方式中的任意一种可能的实现方式,在第七种可能的实现方式中,所述梯度计算模块具体用于,在所述一次迭代运算过程中,从所述样本数据集依次读取多个子样本数据集,将读入的每个子样本数据集分别输入机器学习模型,读取并利用中间计算结果,计算所述机器学习模型的多个参数中的每个参数的梯度信息,所述中间计算结果作为输入信息参与计算所述梯度信息,并且,在利用一个子样本数据集计算完每个参数的一组梯度信息之后,将这一个子样本数据集删掉后再读取下一个子样本数据集,并利用下一个子样本数据集计算每个参数的另一组梯度信息,在所述中间计算结果被使用完毕之后,删除所述中间计算结果,并且,删除所述中间计算结果的操作要在读取下一个子样本数据集之前完成。
所述计算模块计算完梯度信息后,删除所述中间计算结果,从而释放掉所述中间计算结果在内存中占用的存储资源,为读入的子样本数据集让出了存储空间,这样,读入的子样本数据集就可以包含较多的样本数据。
结合第一方面的第七种可能的实现方式,在第八种可能的实现方式中,所述中间计算结果是根据所述子样本数据集计算出来的,一个子样本数据集对应得到一个中间计算结果,在利用一个子样本数据集计算梯度信息的过程中,与这一个子样本数据集对应的所述中间计算结果作为输入信息参与计算所述梯度信息。
结合第一方面或第一方面的第一至第八种可能的实现方式中的任意一种可能的实现方式,在第九种可能的实现方式中,所述数据处理装置还包括预处理单元,所述预处理单元用于在所述计算模块将一个所述子样本数据集输入机器学习模型,计算所述机器学习模型的每个参数的梯度信息的过程中,预处理下一个子样本数据集,对应得到所述下一个子样本数据集的中间计算结果,所述中间计算结果,用于在所述计算模块将所述下一个子样本数据集输入机器学习模型,计算所述机器学习模型的多个参数中的每个参数的梯度信息的过程中作为输入信息参与计算。
结合第一方面或第一方面的第一至第九种可能的实现方式中的任意一种可能的实现方式,在第十种可能的实现方式中,所述梯度计算模块具体用于,在每次迭代运算过程中,将每个子样本数据集分别输入机器学习模型,计算所述机器学习模型的多个参数中的每个参数的梯度信息的过程中,所述子样本数据集中的一个样本数据对应得到每个参数的一个梯度信息,所述子样本数据集中包括至少一个样本数据,相应地,一个子样本数据集对应得到每个参数的一组梯度信息,所述一组梯度信息包括至少一个梯度信息。
结合第一方面或第一方面的第一至第十种可能的实现方式中的任意一种可能的实现方式,在第十一种可能的实现方式中,所述每个参数是指:所述机器学习模型中需要通过机器学习来获得拟合值的多个参数中的每个参数。
结合第一方面或第一方面的第一至第十一种可能的实现方式中的任意一种可能的实现方式,在第十二种可能的实现方式中,所述每个参数是该机器学习模型的全部参数中的每个参数。
结合第一方面或第一方面的第一至第十二种可能的实现方式中的任意一种可能的实现方式,在第十三种可能的实现方式中,所述每个参数是该机器学习模型的一部分参数中的每个参数。
结合第一方面或第一方面的第一至第十三种可能的实现方式中的任意一种可能的实现方式,在第十四种可能的实现方式中,所述梯度计算模块具体用于,在每一次迭代运算中,将每个子样本数据集输入所述机器学习模型,经过前向计算和后向计算,得到每个参数的所述梯度信息。
结合第一方面或第一方面的第一至第十四种可能的实现方式中的任意一种可能的实现方式,在第十五种可能的实现方式中,所述具有初始化全局参数的机器学习模型是指部分或所有参数具有初始值的机器学习模型。
结合第一方面的第一至第十五种可能的实现方式中的任意一种可能的实现方式,在第十六种可能的实现方式中,所述指定迭代次数是指:满足机器学习模型精度要求的迭代次数。
第二方面,本发明的实施例还提供一种数据处理系统,所述系统包括:模型更新模块,以及如第一方面或第一方面的第一至第十六种可能的实现方式中的任意一种可能的实现方式所述的数据处理装置,所述发送模块,进一步用于在所述一次迭代运算过程中,将每个参数的所述更新梯度发送给所述模型更新模块;所述模型更新模块用于在所述一次迭代运算过程中,接收每个参数的所述更新梯度,并利用每个参数的所述更新梯度更新所述机器学习模型。
在第二方面的第一种可能的实现方式中,所述数据处理装置的数量为1个,并且所述模型更新模块的数量为一个。
在第二方面的第二种可能的实现方式中,所述数据处理装置的数量为多个,并且所述模型更新模块的数量为一个,所述模型更新模块进一步用于在所述一次迭代运算过程中,接收多个所述数据处理装置的发送模块分别发送的每个参数的所述更新梯度,并利用所述来自多个所述数据处理装置的发送模块的每个参数的所述更新梯度,更新所述机器学习模型。
结合第二方面或第二方面的第二种可能的实现方式,在第三种可能的实现方式中,在所述数据处理装置为多个的情况下,在一次迭代运算中,多个所述数据处理装置分别从所述样本数据集读取的子样本数据集的总量为所述机器学习模型的一次迭代运算所需的子样本数据集的量。
结合第二方面或第二方面的第二至第三种可能的实现方式中的任意一种可能的实现方式,在第四种可能的实现方式中,在一次迭代运算中,多个所述数据处理装置所读取的所述子样本数据集是不重复的。
在第二方面的第五种可能的实现方式中,所述数据处理装置的数量可以为多个,并且所述模型更新模块的数量也为多个。
结合第二方面的第五种可能的实现方式,在第六种可能的实现方式中,多个所述数据处理装置和多个所述模型更新模块可以选择承载在一个计算节点上,所述计算节点包括多个处理器,一个处理器承载一个所述数据处理装置和一个所述模型更新模块。每个处理器的所述数据处理装置的发送模块,进一步用于在所述一次迭代运算过程中,将计算得到所述每个参数的所述更新梯度发送给所有其他的处理器的模型更新模块,并将每个参数的所述更新梯度发送给与所述数据处理装置同在一个处理器的模型更新模块。每个处理器的所述模型更新模块,进一步用于在所述一次迭代运算过程中,接收其他的每个处理器的数据处理装置的发送模块发送的每个参数的所述更新梯度,并分别利用来自其他的每个处理器的每个参数的所述更新梯度更新所述机器学习模型,以及利用与所述模型更新模块同在一个处理器的所述数据处理装置计算得到的每个参数的所述更新梯度,更新所述机器学习模型。
结合第二方面的第五或第六种可能的实现方式,在第七种可能的实现方式中,在所述数据处理装置为多个的情况下,在一次迭代运算中,多个所述数据处理装置分别从所述样本数据集读取的子样本数据集的总量为所述机器学习模型的一次迭代运算所需的子样本数据集的量。
结合第二方面的第五或第六或第七种可能的实现方式,在第八种可能的实现方式中,在一次迭代运算中,多个所述数据处理装置所读取的所述子样本数据集是不重复的。
在第二方面的第九种可能的实现方式中,所述模型更新模块可以包括整合模块和多个服务模块,并且所述数据处理装置的数量为多个。所述数据处理装置的发送模块具体用于:在所述一次迭代运算过程中,将每组参数的所述更新梯度分别发送给一个对应的所述服务模块,其中,所述机器学习模型的所述多个参数由多组参数组成,所述每组参数包括至少一个参数,并且所述多组参数中的每组参数分别对应不同的所述服务模块。所述多个服务模块中的每个服务模块用于在所述一次迭代运算过程中,接收与自身对应的这一组参数的更新梯度,并利用这一组参数的更新梯度更新与这一组参数对应的所述机器学习模型的局部,将更新后的局部机器学习模型发送给所述整合模块。所述整合模块,用于在所述一次迭代运算过程中,接收多个所述服务模块分别发送的更新后的局部机器学习模型,并将多个所述更新后的局部机器学习模型整合为更新后的全局的所述机器学习模型。
结合第二方面的第九种可能的实现方式,在第十种可能的实现方式中,所述多个服务模块中的每个服务模块具体用于在所述一次迭代运算过程中,利用所述一组参数的更新梯度,根据随机梯度下降的模型更新公式,更新与这一组参数对应的所述机器学习模型的局部。
结合第二方面的第九或第十种可能的实现方式,在第十一种可能的实现方式中,在所述数据处理装置为多个的情况下,在一次迭代运算中,多个所述数据处理装置分别从所述样本数据集读取的子样本数据集的总量为所述机器学习模型的一次迭代运算所需的子样本数据集的量。
结合第二方面的第九或第十或第十一种可能的实现方式,在第十二种可能的实现方式中,在一次迭代运算中,多个所述数据处理装置所读取的所述子样本数据集是不重复的。
结合第二方面或第二方面的第一至第十二种可能的实现方式中的任意一种可能的实现方式,在第十三种可能的实现方式中,所述模型更新模块具体用于在所述一次迭代运算过程中,利用所述每个参数的所述更新梯度,根据随机梯度下降的模型更新公式,更新所述机器学习模型。
结合第二方面或第二方面的第一至第十三种可能的实现方式中的任意一种可能的实现方式,在第十四种可能的实现方式中,所述更新梯度在模块间传递的过程中,所述更新梯度呈现的形式可以为:利用该更新梯度更新后的模型。
第三方面,本发明的实施例还提供一种数据处理系统,所述系统包括:模型更新模块,以及如第一方面的第一至第十六种可能的实现方式中的任意一种可能的实现方式所述的数据处理装置,所述发送模块,进一步用于在所述一次迭代运算中,以及在所述一次迭代运算之后的多次迭代运算中的每一次迭代运算中,将每个参数的所述更新梯度发送给所述模型更新模块;所述模型更新模块用于在所述一次迭代运算中,以及在所述一次迭代运算之后的多次迭代运算中的每一次迭代运算中,接收每个参数的所述更新梯度,并利用每个参数的所述更新梯度更新所述机器学习模型。
在第三方面的第一种可能的实现方式中,所述数据处理装置的数量为1个,并且所述模型更新模块的数量为一个。
在第三方面的第二种可能的实现方式中,所述数据处理装置的数量为多个,并且所述模型更新模块的数量为一个,所述模型更新模块进一步用于,在所述一次迭代运算中,以及在所述一次迭代运算之后的多次迭代运算中的每一次迭代运算中,接收多个所述数据处理装置的发送模块分别发送的每个参数的所述更新梯度,并利用所述来自多个所述数据处理装置的发送模块的每个参数的所述更新梯度,更新所述机器学习模型。
结合第三方面或第三方面的第二种可能的实现方式,在第三种可能的实现方式中,在所述数据处理装置为多个的情况下,在一次迭代运算中,多个所述数据处理装置分别从所述样本数据集读取的子样本数据集的总量为所述机器学习模型的一次迭代运算所需的子样本数据集的量。
结合第三方面或第三方面的第二至第三种可能的实现方式中的任意一种可能的实现方式,在第四种可能的实现方式中,在一次迭代运算中,多个所述数据处理装置所读取的所述子样本数据集是不重复的。
在第三方面的第五种可能的实现方式中,所述数据处理装置的数量可以为多个,并且所述模型更新模块的数量也为多个。
结合第三方面的第五种可能的实现方式,在第六种可能的实现方式中,多个所述数据处理装置和多个所述模型更新模块可以选择承载在一个计算节点上,所述计算节点包括多个处理器,一个处理器承载一个所述数据处理装置和一个所述模型更新模块,每个处理器的所述数据处理装置的发送模块,进一步用于,在所述一次迭代运算中,以及在所述一次迭代运算之后的多次迭代运算中的每一次迭代运算中,将计算得到所述每个参数的所述更新梯度发送给所有其他的处理器的模型更新模块,并将每个参数的所述更新梯度发送给与所述数据处理装置同在一个处理器的模型更新模块,每个处理器的所述模型更新模块,进一步用于,在所述一次迭代运算中,以及在所述一次迭代运算之后的多次迭代运算中的每一次迭代运算中,接收其他的每个处理器的数据处理装置的发送模块发送的每个参数的更新梯度,并分别利用来自其他的每个处理器的每个参数的更新梯度更新所述机器学习模型,以及利用与所述模型更新模块同在一个处理器的所述数据处理装置计算得到每个参数的所述更新梯度,更新所述机器学习模型。
结合第三方面的第五或第六种可能的实现方式,在第七种可能的实现方式中,在所述数据处理装置为多个的情况下,在一次迭代运算中,多个所述数据处理装置分别从所述样本数据集读取的子样本数据集的总量为所述机器学习模型的一次迭代运算所需的子样本数据集的量。
结合第三方面的第五或第六或第七种可能的实现方式,在第八种可能的实现方式中,在一次迭代运算中,多个所述数据处理装置所读取的所述子样本数据集是不重复的。
在第三方面的第九种可能的实现方式中,在所述模型更新模块包括整合模块和多个服务模块,并且所述数据处理装置的数量为多个,所述数据处理装置的发送模块具体用于:在所述一次迭代运算中,以及在所述一次迭代运算之后的多次迭代运算中的每一次迭代运算中,将每组参数的所述更新梯度分别发送给一个对应的所述服务模块,其中,所述机器学习模型的所述多个参数由多组参数组成,所述每组参数包括至少一个参数,并且所述多组参数中的每组参数分别对应不同的所述服务模块,所述多个服务模块中的每个服务模块用于接收与自身对应的这一组参数的更新梯度,并利用这一组参数的更新梯度更新与这一组参数对应的所述机器学习模型的局部,将更新后的局部机器学习模型发送给所述整合模块,所述整合模块,用于在所述一次迭代运算中,以及在所述一次迭代运算之后的多次迭代运算中的每一次迭代运算中,接收多个所述服务模块分别发送的更新后的局部机器学习模型,并将多个所述更新后的局部机器学习模型整合为更新后的全局的所述机器学习模型。
结合第三方面的第九种可能的实现方式,在第十种可能的实现方式中,所述多个服务模块中的每个服务模块具体用于在所述一次迭代运算中,以及在所述一次迭代运算之后的多次迭代运算中的每一次迭代运算中,利用所述一组参数的更新梯度,根据随机梯度下降的模型更新公式,更新与这一组参数对应的所述机器学习模型的局部。
结合第三方面的第九或第十种可能的实现方式,在第十一种可能的实现方式中,在所述数据处理装置为多个的情况下,在一次迭代运算中,多个所述数据处理装置分别从所述样本数据集读取的子样本数据集的总量为所述机器学习模型的一次迭代运算所需的子样本数据集的量。
结合第三方面的第九或第十或第十一种可能的实现方式,在第十二种可能的实现方式中,在一次迭代运算中,多个所述数据处理装置所读取的所述子样本数据集是不重复的。
结合第三方面或第三方面的第一至第十二种可能的实现方式中的任意一种可能的实现方式,在第十三种可能的实现方式中,所述模型更新模块具体用于在所述一次迭代运算中,以及在所述一次迭代运算之后的多次迭代运算中的每一次迭代运算中,利用所述每个参数的所述更新梯度,根据随机梯度下降的模型更新公式,更新所述机器学习模型。
结合第三方面或第三方面的第一至第十三种可能的实现方式中的任意一种可能的实现方式,在第十四种可能的实现方式中,所述更新梯度在模块间传递的过程中,所述更新梯度呈现的形式可以为:利用该更新梯度更新后的模型。
第四方面,本发明的实施例还提供一种数据处理系统,所述系统包括:至少一个计算节点,所述至少一个计算节点用于承载如第一方面或第一方面的第一至第十六种可能的实现方式中的任意一种可能的实现方式中所述的数据处理装置。
在第四方面的第一种可能的实现方式中,所述计算节点可以包括至少一个处理器,以及为所述处理器配置的内存,所述数据处理装置承载在所述处理器上。
结合第四方面的第一种可能的实现方式,在第二种可能的实现方式中,在每次迭代运算中,所述数据处理装置从所述样本数据集依次读取的多个子样本数据集存储在所述数据处理装置的内存里,并且,在利用一个子样本数据集计算完每个参数的梯度信息之后,将这一个子样本数据集从所述内存中删掉后再将下一个子样本数据集读入到所述内存,所述数据处理装置的内存是指承载所述数据处理装置的处理器的内存。
结合第四方面的第一或第二种可能的实现方式,在第三种可能的实现方式中,一个所述子样本数据集所占的存储空间小于或等于所述数据处理装置的内存中预留给所述子样本数据集的存储空间。两个所述子样本数据集所占的存储空间大于所述数据处理装置的内存中预留给所述子样本数据集的存储空间。
结合第四方面的第一或第二或第三种可能的实现方式,在第四种可能的实现方式中,在每一次迭代运算中,所述数据处理装置,进一步用于从所述样本数据集依次读取多个子样本数据集,将读入的每个子样本数据集分别输入机器学习模型,读取并利用中间计算结果,计算所述机器学习模型的多个参数中的每个参数的梯度信息,所述中间计算结果作为输入信息参与计算所述梯度信息,并且,在利用一个子样本数据集计算完每个参数的一组梯度信息之后,将这一个子样本数据集删掉后再读取下一个子样本数据集,并利用下一个子样本数据集计算每个参数的另一组梯度信息,在所述中间计算结果被使用完毕之后,删除所述中间计算结果,并且,删除所述中间计算结果的操作要在读取下一个子样本数据集之前完成。
所述数据处理装置计算完梯度信息后,删除所述中间计算结果,从而释放掉所述中间计算结果在内存中占用的存储资源,为读入的子样本数据集让出了存储空间,这样,读入的子样本数据集就可以包含较多的样本数据。
结合第四方面的第四种可能的实现方式,在第五种可能的实现方式中,所述中间计算结果是根据所述子样本数据集计算出来的,一个子样本数据集对应得到一个中间计算结果,在利用一个子样本数据集计算梯度信息的过程中,与这一个子样本数据集对应的所述中间计算结果作为输入信息参与计算所述梯度信息。
结合第四方面或第四方面的第一至第五种可能的实现方式中的任意一种可能的实现方式,在第六种可能的实现方式中,所述数据处理系统还包括预处理单元,所述预处理单元用于在所述数据处理装置将一个所述子样本数据集输入机器学习模型,计算所述机器学习模型的每个参数的梯度信息的过程中,预处理下一个子样本数据集,对应得到所述下一个子样本数据集的中间计算结果,所述中间计算结果,用于在所述数据处理装置将所述下一个子样本数据集输入机器学习模型,计算所述机器学习模型的多个参数中的每个参数的梯度信息的过程中作为输入信息参与计算。
结合第四方面的第六种可能的实现方式,在第七种可能的实现方式中,所述预处理单元可以单独承载在一个处理器上,或者,所述预处理单元也可以与所述数据处理装置共同承载在一个处理器上。
第五方面,本发明的实施例还提供另一种数据处理系统,所述系统包括:至少一个计算节点,所述至少一个计算节点用于承载如第二方面或第二方面的第一至第十二种可能的实现方式中的任意一种可能的实现方式或第三方面或第三方面的第一至第十四种可能的实现方式中的任意一种可能的实现方式中所述的数据处理装置和模型更新模块。
在第五方面的第一种可能的实现方式中,所述计算节点可以包括至少一个处理器,以及为所述处理器配置的内存,所述数据处理装置,以及所述模型更新模块承载在所述处理器上。
结合第五方面的第一种可能的实现方式,在第二种可能的实现方式中,在每次迭代运算中,所述数据处理装置从所述样本数据集依次读取的多个子样本数据集存储在所述数据处理装置的内存里,并且,在利用一个子样本数据集计算完每个参数的梯度信息之后,将这一个子样本数据集从所述内存中删掉后再将下一个子样本数据集读入到所述内存,所述数据处理装置的内存是指承载所述数据处理装置的处理器的内存。
结合第五方面的第一或第二种可能的实现方式,在第三种可能的实现方式中,一个所述子样本数据集所占的存储空间小于或等于所述数据处理装置的内存中预留给所述子样本数据集的存储空间。两个所述子样本数据集所占的存储空间大于所述数据处理装置的内存中预留给所述子样本数据集的存储空间。
结合第五方面的第一或第二或第三种可能的实现方式,在第四种可能的实现方式中,在每一次迭代运算中,所述数据处理装置,进一步用于在将每个子样本数据集输入所述机器学习模型,计算所述机器学习模型的多个参数中的每个参数的梯度信息的过程中,读取并利用存储在所述数据处理装置的内存中的中间计算结果,所述中间计算结果作为输入信息参与计算所述梯度信息,在所述中间计算结果被使用完毕之后,删除所述数据处理装置的内存中的所述中间计算结果,并且,删除所述中间计算结果的操作要在向所述数据处理装置的内存中读入下一个子样本数据集之前完成。
所述数据处理装置计算完梯度信息后,删除所述中间计算结果,从而释放掉所述中间计算结果在内存中占用的存储资源,为读入的子样本数据集让出了存储空间,这样,读入的子样本数据集就可以包含较多的样本数据。
结合第五方面的第四种可能的实现方式,在第五种可能的实现方式中,所述中间计算结果是根据所述子样本数据集计算出来的,一个子样本数据集对应得到一个中间计算结果,在利用一个子样本数据集计算梯度信息的过程中,与这一个子样本数据集对应的所述中间计算结果作为输入信息参与计算所述梯度信息。
结合第五方面或第五方面的第一至第五种可能的实现方式中的任意一种可能的实现方式,在第六种可能的实现方式中,所述数据处理系统还包括预处理单元,所述预处理单元用于在所述数据处理装置将一个所述子样本数据集输入机器学习模型,计算所述机器学习模型的每个参数的梯度信息的过程中,预处理下一个子样本数据集,对应得到所述下一个子样本数据集的中间计算结果,所述中间计算结果,用于在所述数据处理装置将所述下一个子样本数据集输入机器学习模型,计算所述机器学习模型的多个参数中的每个参数的梯度信息的过程中作为输入信息参与计算。
结合第五方面的第六种可能的实现方式,在第七种可能的实现方式中,所述预处理单元可以单独承载在一个处理器上,或者,所述预处理单元也可以与所述数据处理装置共同承载在一个处理器上。
第六方面,本发明的实施例还提供一种数据处理方法,所述方法包括一次迭代运算;在所述一次迭代运算过程中,从样本数据集依次读取多个子样本数据集,所述子样本数据集包括至少一个样本数据,将读入的每个子样本数据集分别输入机器学习模型,计算所述机器学习模型的多个参数中的每个参数的梯度信息,并且,在利用一个子样本数据集计算完每个参数的一组梯度信息之后,将这一个子样本数据集删掉后再读取下一个子样本数据集,并利用下一个子样本数据集计算每个参数的另一组梯度信息,其中,所述机器学习模型是具有初始化全局参数的机器学习模型,或者是在上一轮迭代运算中经过更新的机器学习模型;在所述一次迭代运算过程中,将计算得到的每个参数的多组梯度信息分别累计后得到所述每个参数的更新梯度,每个参数的所述更新梯度用于更新所述机器学习模型。
在第六方面的第一种可能的实现方式中,所述方法还包括:所述一次迭代运算之后的多次迭代运算,直至所述机器学习模型收敛或者完成指定迭代次数的计算;在所述一次迭代运算之后的多次迭代运算中的每一次迭代运算中,重复所述一次迭代运算中的步骤,并且,在所述一次迭代运算之后的多次迭代运算中的每一次迭代运算中,所述机器学习模型在采用一次迭代运算中得到的更新梯度被更新后,被输入后一次的迭代运算。
结合第六方面或第六方面的第一种可能的实现方式,在第二种可能的实现方式中,所述方法在每次迭代运算中还包括:利用每个参数的所述更新梯度更新所述机器学习模型。
结合第六方面或第六方面的第一或第二种可能的实现方式,在第三种可能的实现方式中,在每次迭代运算中,将计算得到的每个参数的多组梯度信息分别累计后得到所述每个参数的更新梯度的过程包括:针对根据所述读取的多个子样本数据集,分别得到的每个参数的多组梯度信息,分别将属于同一个参数的多组梯度信息累计,得到每个参数的更新梯度。
结合第六方面或第六方面的第一或第二种可能的实现方式,在第四种可能的实现方式中,在每次迭代运算中,将计算得到的每个参数的多组梯度信息分别累计后得到所述每个参数的更新梯度的过程包括:针对根据每一个子样本数据集,得到的每个参数的一组梯度信息,分别将属于同一个参数的一组梯度信息累计,得到每个参数的累计梯度,这样,针对所述读取的多个子样本数据集,得到每个参数的多个累计梯度,再将每个参数的多个累计梯度分别累计,得到每个参数的更新梯度。
结合第六方面或第六方面的第一或第二种可能的实现方式,在第五种可能的实现方式中,在每次迭代运算中,将计算得到的每个参数的多组梯度信息分别累计后得到所述每个参数的更新梯度的过程包括:针对根据所述读取的多个子样本数据集,分别得到的每个参数的多组梯度信息,分别将属于同一个参数的多组梯度信息收集在一起,每个参数的收集在一起的多组梯度信息作为每个参数的所述更新梯度。
结合第六方面或第六方面的第一至第五种可能的实现方式中的任意一种可能的实现方式,在第六种可能的实现方式中,所述的累计处理中采用的是加权平均法。
结合第六方面或第六方面的第一至第五种可能的实现方式中的任意一种可能的实现方式,在第七种可能的实现方式中,所述的累计处理中采用的是:提取部分梯度信息,再做加权处理的方式。
结合第六方面或第六方面的第一至第七种可能的实现方式中的任意一种可能的实现方式,在第八种可能的实现方式中,所述每个参数是指:所述机器学习模型中需要通过机器学习来获得拟合值的多个参数中的每个参数。
结合第六方面或第六方面的第一至第八种可能的实现方式中的任意一种可能的实现方式,在第九种可能的实现方式中,所述每个参数是该机器学习模型的全部参数中的每个参数。
结合第六方面或第六方面的第一至第九种可能的实现方式中的任意一种可能的实现方式,在第十种可能的实现方式中,所述每个参数是该机器学习模型的一部分参数中的每个参数。
结合第六方面或第六方面的第一至第十种可能的实现方式中的任意一种可能的实现方式,在第十一种可能的实现方式中,在每一次的迭代运算过程中,将每个子样本数据集分别输入机器学习模型,计算所述机器学习模型的多个参数中的每个参数的梯度信息的过程中,所述子样本数据集中的一个样本数据对应得到每个参数的一个梯度信息,所述子样本数据集中包括至少一个样本数据,相应地,一个子样本数据集对应得到每个参数的一组梯度信息,所述一组梯度信息包括至少一个梯度信息。
结合第六方面或第六方面的第一至第十一种可能的实现方式中的任意一种可能的实现方式,在第十二种可能的实现方式中,在每一次迭代运算中,将每个子样本数据集输入机器学习模型,计算所述机器学习模型的多个参数中的每个参数的梯度信息的过程包括:将每个子样本数据集输入所述机器学习模型,经过前向计算和后向计算,得到每个参数的梯度信息。
结合第六方面或第六方面的第一至第十二种可能的实现方式中的任意一种可能的实现方式,在第十三种可能的实现方式中,在每次迭代运算中,利用每个参数的所述更新梯度更新所述机器学习模型的步骤,具体包括:利用所述每个参数的所述更新梯度,根据随机梯度下降的模型更新公式,更新所述机器学习模型。
结合第六方面或第六方面的第一至第十三种可能的实现方式中的任意一种可能的实现方式,在第十四种可能的实现方式中,所述具有初始化全局参数的机器学习模型是指部分或所有参数具有初始值的机器学习模型。
结合第六方面或第六方面的第一至第十四种可能的实现方式中的任意一种可能的实现方式,在第十五种可能的实现方式中,指定迭代次数是指:满足机器学习模型精度要求的迭代次数。
结合第六方面或第六方面的第一至第十五种可能的实现方式中的任意一种可能的实现方式,在第十六种可能的实现方式中,所述更新梯度在模块间传递的过程中,所述更新梯度呈现的形式可以为:利用该更新梯度更新后的模型。
结合第六方面或第六方面的第一至第十六种可能的实现方式中的任意一种可能的实现方式,在第十七种可能的实现方式中,所述方法运行于至少一个计算节点上。
结合第六方面的第十七种可能的实现方式,在第十八种可能的实现方式中,所述计算节点可以包括至少一个处理器,以及为所述处理器配置的内存。
结合第六方面的第十八种可能的实现方式,在第十九种可能的实现方式中,在每次迭代运算中,从所述样本数据集依次读取的多个子样本数据集存储在所述内存里,并且,在利用一个子样本数据集计算完每个参数的梯度信息之后,将这一个子样本数据集从所述内存中删掉后再将下一个子样本数据集读入到所述内存。
结合第六方面的第十八或第十九种可能的实现方式,在第二十种可能的实现方式中,一个所述子样本数据集所占的存储空间小于或等于所述内存中预留给所述子样本数据集的存储空间,两个所述子样本数据集所占的存储空间大于所述内存中预留给所述子样本数据集的存储空间。
结合第六方面的第十八或第十九或第二十种可能的实现方式,在第二十一种可能的实现方式中,所述方法进一步包括:在每一次迭代运算中,在将每个子样本数据集输入所述机器学习模型,计算所述机器学习模型的多个参数中的每个参数的梯度信息的过程中,读取并利用存储在内存中的中间计算结果,所述中间计算结果作为输入信息参与计算所述梯度信息,在所述中间计算结果被使用完毕之后,删除所述内存中的所述中间计算结果,并且,删除所述中间计算结果的操作要在向所述内存中读入下一个子样本数据集之前完成。
所述数据处理装置计算完梯度信息后,删除所述中间计算结果,从而释放掉所述中间计算结果在内存中占用的存储资源,为读入的子样本数据集让出了存储空间,这样,读入的子样本数据集就可以包含较多的样本数据。
结合第六方面的第二十一种可能的实现方式,在第二十二种可能的实现方式中,所述中间计算结果是根据所述子样本数据集计算出来的,一个子样本数据集对应得到一个中间计算结果,在利用一个子样本数据集计算梯度信息的过程中,与这一个子样本数据集对应的所述中间计算结果作为输入信息参与计算所述梯度信息。
结合第六方面或第六方面的第一至第二十二种可能的实现方式中的任意一种可能的实现方式,在第二十三种可能的实现方式中,所述方法还包括预处理过程,所述预处理过程包括:将一个所述子样本数据集输入所述机器学习模型,计算所述机器学习模型的每个参数的梯度信息的过程中,预处理下一个子样本数据集,对应得到所述下一个子样本数据集的中间计算结果,所述中间计算结果,用于在将所述下一个子样本数据集输入所述机器学习模型,计算所述机器学习模型的多个参数中的每个参数的梯度信息的过程中作为输入信息参与计算。
第七方面,本发明的实施例还提供一种计算设备,其特征在于,所述计算设备包括:主板,以及通过所述主板连接的处理器、内存、总线和通信接口,所述处理器与所述内存通过所述总线连接,当所述计算设备运行时,所述处理器读取并执行所述内存中的指令或者运行自身的硬件逻辑电路,以使所述计算设备执行如第六方面的各种实现方式中所述的方法,并通过所述通信接口将所述子样本数据集读取到所述内存中。
第七方面,本发明的实施例还提供一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行如第六方面的各种实现方式中所述的方法。
在上述第一至第七方面的各种可能的实现方式中,
所述“收敛”是指:当机器学习模型达到较高精度,继续进行迭代运算的学习过程,所述机器学习模型无法获得更高的精度时,则认为所述机器学习模型已经收敛。
所述“梯度”是指:机器学习模型的函数在某一点的梯度是这样一个向量,它的方向与取得最大方向导数的方向一致,而它的模为方向导数的最大值。需说明的是:1)梯度是一个向量,即有方向也有大小;2)梯度的方向是最大方向导数的方向;3)梯度的值是最大方向导数的值。具体来讲,计算梯度的方式可以采用机器学习模型的目标函数对机器学习模型的参数进行求导计算,得到的倒数即为机器学习模型的参数的梯度。
所述“更新梯度”是指:用于更新机器学习模型的参数的信息,是通过将多个梯度信息累计而得来的,也可以仅是一个梯度信息,该更新梯度用于更新机器学习模型中的参数,以使得所述机器学习模型收敛。
所述“多组梯度信息”是指:2组或2组以上的梯度信息,例如:3组,4组,5组,或6组等梯度信息。每组梯度信息是根据一个子样本数据集计算得来。
附图说明
图1是机器学习过程的示意图;
图2是本发明实施例的第一种数据处理系统的示意图;
图3是本发明实施例的第一种数据处理系统在具有多个worker模块和一个模型更新模块的情况下的示意图;
图4是本发明实施例的第一种数据处理系统在具有多个worker模块和多个模型更新模块的情况下的示意图;
图5是本发明实施例的第一种数据处理系统在所述模型更新模块包括多个server模块和多个整合模块的情况下的示意图;
图6是本发明实施例的第一种数据处理系统的一种实施方式的示意图;以及
图7是本发明实施例的一种数据处理装置的示意图;以及
图8为本发明实施例的一种计算设备的示意图。
具体实施方式
本发明所提供的各种数据处理系统实施例,数据处理装置实施例,数据处理方法实施例以及存储介质均适用于机器学习的场景。
如图1所示,机器学习是针对各种大数据,例如:电信数据,金融数据,消费者数据等,挖掘出其分布规律的过程,该分布规律可指导我们对未来的数据做分析和预测,从而可以支持业务决策和商业运营。
具体来讲,所述大数据一般是样本数据的集合,包括很多的样本数据,每个样本数据包含很多的特征,每个特征作为所述样本数据的一个维度。所述样本数据集中的样本数据用于训练机器学习模型。机器学习模型可以包含上百万,甚至上千万的参数,通过这些参数的共同作用,可以针对复杂的场景构建一个复杂的模型,其中单个参数就是一个通过机器学习获得的权重。
机器学习的过程,是将样本数据输入机器学习模型,经过多次迭代运算,得到参数的拟合值,从而得到能够反映这些大数据的分布规律的机器学习模型。一般来讲,迭代运算次数越多,模型收敛的越好。模型收敛的越好,表示参数对所述样本数据的拟合程度越好。
第一种数据处理系统实施例
如图2所示,本发明提供第一种数据处理系统的实施例,包括至少一个计算节点,所述至少一个计算节点用于承载worker模块(也可以称为:工作模块)和模型更新模块,所述worker模块和模型更新模块,用于将样本数据集中的样本数据输入机器学习模型,进行多次迭代运算,直至所述机器学习模型收敛或者完成指定迭代次数的计算。
在第一次迭代运算中:
所述worker模块,进一步用于从所述样本数据集依次读取多个子样本数据集(英语可以翻译为minibatch),所述子样本数据集包括至少一个样本数据,将读入的每个子样本数据集分别输入具有初始化全局参数的机器学习模型,计算所述机器学习模型的多个参数中的每个参数的梯度信息,并且,在利用一个子样本数据集计算完每个参数的一组梯度信息之后,将这一个子样本数据集删掉后再读取下一个子样本数据集,并利用下一个子样本数据集计算每个参数的另一组梯度信息。
将计算得到的每个参数的多组梯度信息分别累计后得到所述每个参数的更新梯度。将每个参数的所述更新梯度发送给所述模型更新模块。所述模型更新模块进一步用于接收每个参数的所述更新梯度,并利用每个参数的所述更新梯度更新所述机器学习模型;
在第二次迭代运算中:
所述worker模块,进一步用于从所述样本数据集依次读取多个子样本数据集,将读入的每个子样本数据集分别输入更新后的所述机器学习模型,计算所述机器学习模型的多个参数中的每个参数的梯度信息,并且,在利用一个子样本数据集计算完每个参数的一组梯度信息之后,将这一个子样本数据集删掉后再读取下一个子样本数据集,并利用下一个子样本数据集计算每个参数的另一组梯度信息。将计算得到的每个参数的多组梯度信息分别累计后再次得到所述每个参数的更新梯度。将再次得到的所述每个参数的所述更新梯度发送给所述模型更新模块;所述模型更新模块进一步用于接收再次得到的所述每个参数的所述更新梯度,并利用再次得到的所述每个参数的所述更新梯度再次更新所述机器学习模型。
在后续的迭代运算中,所述模型更新模块重复第二次迭代运算中的动作,所述worker模块也重复第二次迭代运算中的动作。所述机器学习模型在采用一次迭代运算中得到的更新梯度更新后,输入后一次的迭代运算。
具体来讲,在上述数据处理系统的实施例中,所述每个参数是指:所述机器学习模型中需要通过机器学习来获得拟合值的多个参数中的每个参数。所述每个参数可以是该机器学习模型的全部参数中的每个参数,也可以仅是该机器学习模型的一部分参数中的每个参数。
需要说明的是,上述的数据处理系统的实施例完成了多次的迭代运算。上述的数据处理系统的实施例也可以选择仅执行一次的迭代运算。
技术效果
在上述实施例中,在一次迭代运算中,所述worker模块可以多次从样本数据集读取子样本数据集,计算多组梯度信息,并将所述多组梯度信息累计。即使worker模块的内存无法承载太多的样本数据也没关系,因为每次只需要将计算一组梯度信息所需要的样本数据读入worker模块内存就可以了。一组梯度信息计算完成后,记录该组梯度信息,再读入用于计算下一组梯度信息的子样本数据集,利用读入的这一个子样本数据集覆盖上一个子样本数据集;或者,释放掉上一个子样本数据集所占用的内存空间后再读入子样本数据集。这样,worker模块的内存中仅需要承载用于计算一组梯度信息的样本数据,从而不必要求worker模块的内存具有很大的储存空间。这样带来的好处是:即使在worker模块的内存的储存空间有限的情况下,也可以提供根据充足的样本数据计算的更新梯度。从而避免了由于在每次迭代运算中,没有根据充足的样本数据计算更新梯度,而导致机器学习模型在随着一次次的迭代运算的随机梯度下降的过程中,由于梯度方差过大,模型发散,从而减缓机器学习模型的收敛速度,甚至会导致机器学习模型无法收敛。尤其是在参数较多或样本数据集的数据量大的大规模机器学习模型(例如深度学习模型)的迭代运算过程中,在不用增加worker模块的内存的储存空间的前提下,可以提升大规模机器学习模型的收敛速度。
在深度机器学习模型的迭代运算中,针对具有上万维特征的样本数据计算更新梯度,需要占用非常大的内存。例如:在样本数据是具有一万级以上的特征维度实例的情况下,worker模块计算一次梯度信息需要占用几十G甚至上百G的内存。可以看出,样本数据的特征维度越多,在迭代运算中,占用的内存的存储空间就越大。通过分批读取样本数据,分别计算多组梯度信息的方式可以将特征维度庞大的样本数据分批读入内存,从而减少对内存的存储空间的占用。并且,在每次迭代运算过程中,可以分批读入较多的样本数据来计算更新梯度,从而提高了大规模机器学习模型的收敛速度。在百万级参数的机器学习模型,甚至是十亿级以上参数的大模型的迭代运算过程中,这种收敛速度的提高会更显著。
按照所述worker模块和所述模型更新模块设置的数量的不同,可以分为以下四种情况:
第一种:所述worker模块的数量为1个,并且所述模型更新模块的数量为一个。在这种情况下,1个所述worker模块和一个所述模型更新模块可以选择位于一个计算节点。
第二种:如图3所示,所述worker模块的数量为多个,并且所述模型更新模块的数量为一个,图3中的箭头表示数据传递的方向,以及数据传递的起始点和终点。所述模型更新模块进一步用于,接收多个所述worker模块分别发送的每个参数的所述更新梯度,并利用所述来自多个所述worker模块的每个参数的所述更新梯度,更新所述机器学习模型。在这种情况下,多个所述worker模块和所述一个模型更新模块可以选择位于一个计算节点。或者,多个所述worker模块和所述一个模型更新模块可以选择位于多个计算节点,并且,所述多个worker模块分别位于不同的计算节点,所述一个模型更新模块和所述多个worker模块分别位于不同的计算节点。或者,多个所述worker模块和所述一个模型更新模块可以选择位于多个计算节点,并且,所述多个worker模块分别位于不同的计算节点,所述一个模型更新模块位于承载有所述worker模块的计算节点。在上述worker模块和模型更新模块的各种部署方式中,在同一计算节点上即部署有所述worker模块,又部署有所述模型更新模块,可以高效地利用该计算节点的硬件资源。需说明的是,在所述第二种情况下,在每次迭代运算中,多个所述worker模块所读取的所述子样本数据集可以是不重复的。
第三种:如图4所示,所述worker模块的数量可以为多个,并且所述模型更新模块的数量也为多个,图4中的箭头表示数据传递的方向,以及数据传递的起始点和终点。在这种情况下,多个所述worker模块和多个所述模型更新模块可以选择承载在一个计算节点上。所述计算节点包括多个处理器,一个处理器承载一个所述worker模块和一个所述模型更新模块。所述处理器读取并执行内存中的指令或者运行自身的硬件逻辑电路,以实现承载在所述处理器的模块的功能。
每个处理器的所述worker模块,进一步用于将计算得到所述每个参数的所述更新梯度发送给所有其他的处理器的模型更新模块,并将每个参数的所述更新梯度发送给与所述worker模块同在一个处理器的模型更新模块。每个处理器的所述模型更新模块,进一步用于接收其他的每个处理器的worker模块发送的参数的更新梯度,并分别利用来自其他的每个处理器的参数的更新梯度更新所述机器学习模型,以及利用与所述模型更新模块同在一个处理器的所述worker模块计算得到所述更新梯度,更新所述机器学习模型。
在这种情况下,所述处理器可以为图形处理器(Graphics Processing Unit,简称GPU)。
第四种:如图5所示,在所述模型更新模块可以包括多个server模块(也可以称为:服务模块)和多个整合模块,并且所述worker模块的数量为多个。图5中的箭头表示数据传递的方向,以及数据传递的起始点和终点。在这种情况下,所述worker模块将每个参数的所述更新梯度发送给所述模型更新模块的过程包括:将每组参数的所述更新梯度分别发送给一个对应的所述worker模块,其中,所述机器学习模型的所述多个参数由多组参数组成,所述每组参数包括至少一个参数,并且所述多组参数中的每组参数分别对应不同的所述worker模块。所述多个server模块中的每个server模块用于接收与自身对应的这一组参数的更新梯度,并利用这一组参数的更新梯度更新与这一组参数对应的所述机器学习模型的局部,将更新后的局部机器学习模型发送给每个所述整合模块。所述多个整合模块中的每个所述整合模块,用于接收所述多个server模块分别发送的更新后的局部机器学习模型,并将多个所述更新后的局部机器学习模型整合为更新后的全局的所述机器学习模型。
具体来讲,在这种情况下,所述多个server模块,多个整合模块以及多个worker模块承载在多个计算节点上。一种承载方式如图5中所示,每个计算节点承载一个server模块,一个整合模块以及一个worker模块。另一种承载方式如图6中所示,所述多个server模块位于一个计算节点,所述多个worker模块位于其他的计算节点并且所述多个worker模块分别位于不同的计算节点,所述整合模块位于承载有所述worker模块的计算节点。位于同一个计算节点的所述整合模块和所述worker模块之间的关系可以是相互独立设置,也可以整合在一起。另外,在同一计算节点上部署多个模块,可以高效地利用该计算节点的硬件资源。
具体来讲,在这种情况下,利用所述一组参数的更新梯度更新与这一组参数对应的所述机器学习模型的局部的步骤,具体包括:利用所述一组参数的更新梯度,根据SGD(Stochastic gradient descent,随机梯度下降)的模型更新公式,更新与这一组参数对应的所述机器学习模型的局部。
本发明上述上述实施例还进一步具有如下优势:
在训练机器学习模型的多轮迭代运算过程中,模型更新模块需要一次一次地更新机器学习模型,所述worker模块需要一次一次地获取更新后的机器学习模型。并且所述worker模块也要一次一次地计算更新梯度,并将每组参数的更新梯度发送给所述模型更新模块。这样来看,分别位于不同的计算节点或者位于同一计算节点的模型更新模块与worker模块之间通信的次数很多,交互的数据总量很大,通信开销很大。尤其是在机器学习模型包含亿级甚至十亿级以上的参数的情况下,或者机器学习模型的收敛过程需要几十万次甚至几百次迭代计算的情况下,模型更新模块与worker模块之间交互的数据量更加可观。
在上述实施例中,worker模块没有将根据一个子样本数据集计算出来的一组梯度信息发送给模型更新模块,而是将根据多个子样本数据集计算出来的梯度信息经过累计后再发送给模型更新模块,减少了模型更新模块与worker模块之间通信的次数。特别是对于包含大规模模型参数,训练过程包括持续的几十万次,甚至上百万次迭代运算的的机器学习过程,减少的通信次数会更可观。并且使上述实施例具有很好地可扩展性,可以适用参数多以及参数少,迭代次数多以及迭代次数少等多种类型的机器学习模型的训练过程。另外,由于减少了模型更新模块与worker模块之间通信的次数,相应地减少了模型更新模块与worker模块之间的通信所占用的时间,从而减少了多次迭代运算的总时间,提高了机器学习的速度。在相互通信的模型更新模块与worker模块位于不同的计算节点的情况下,模型更新模块与worker模块之间通信开销的降低,可以减少计算节点之间的通信资源的占用,还可以更明显的减少模型更新模块与worker模块之间的通信所占用的时间,从而更明显的提高机器学习模型的收敛速度,相应提高机器学习的速度。在相互通信的模型更新模块与worker模块位于不同的计算节点的情况下,采用上述实施例中的方案,即使在计算节点之间的通信带宽较小(例如:通信带宽为1gbps)的情况下,也不会对机器学习的速度产生大的影响。不难看出,采用上述实施例中的方案,在通信带宽受限等恶劣使用场景下,会具有格外突出的效果。
后面描述的各种实施例均适用于上述的四种情况。
具体来讲,在上述数据处理系统的各个实施例中,在所述数据处理系统包括多个计算节点的情况下,所述多个计算节点呈分布式布局。
具体来讲,在上述数据处理系统的各个实施例中,所述计算节点可以为个人计算机(PC,personal computer)或服务器。
具体来讲,在上述数据处理系统的各个实施例中,所述计算节点可以包括至少一个处理器,以及为所述处理器配置的内存,所述worker模块,所述模型更新模块,所述server模块,以及所述整合模块承载在所述处理器上。所述处理器用于读取并执行内存中的指令或者运行自身的硬件逻辑电路,以实现承载在所述处理器的模块的功能。承载有所述worker模块的处理器,用于读取自身配置的内存中的指令,以实现所述worker模块的功能,并且所述内存还用于存储所述worker模块从所述样本数据集读取的子样本数据集。
具体来讲,所述处理器可以是一种根据非固化指令工作的集成电路或根据固化指令工作的集成电路。根据非固化指令工作的处理器通过读取并执行内存中的指令来实现承载在所述处理器的模块的功能。根据固化指令工作的处理器通过运行自身的硬件逻辑电路来实现承载在所述处理器的模块的功能,根据固化指令工作的处理器在运行自身的硬件逻辑电路的过程中往往也需要从内存中读取一些数据,或者将运行结果输出到内存。一般情况下,处理器都配置有自己的内存。所述内存可以位于随机存储器(Random AccessMemory,简称ROM),闪存,只读存储器(Read Only Memory,简称RAM),可编程只读存储器,电可擦写可编程存储器,高速缓存(CACHE)或者寄存器等便于处理器读取的存储介质。
具体来讲,在上述数据处理系统的各个实施例中,所述处理器可以是中央处理器(Central Processing Unit,简称CPU)、图形处理器(Graphics Processing Unit,简称GPU)、数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现成可编程门阵列(FieldProgrammable Gate Array,简称FPGA)、网络处理器(Network Processor,简称NP)、其他可编程逻辑器件、分立门晶体管逻辑器件、或者分立硬件组件等等。
具体来讲,在上述数据处理系统的各个实施例中,所述worker模块可以承载在GPU或FPGA上,所述模型更新模块可以承载在CPU上,所述Server模块可以承载在CPU上,所述整合模块可以承载在CPU上。另外需说明的是,一个处理器可以承载多个模块。
具体来讲,在上述数据处理系统的各个实施例中,所述样本数据集可以存储在worker模块所在的计算节点的本地磁盘(Disk)或者存储在多个分布式存储节点,例如:HDFS(Hadoop Distributed File System,Hadoop分布式文件系统)、Amazon S3(AmazonSimple Storage Service,亚马逊简易储存服务)、GFS(Google File System,谷歌文件系统)等。在图2及图3所显示的实施例中,样本数据集是存储在HDFS。所述worker模块从所述样本数据集读取多个子样本数据集(minibatch)。
具体来讲,在所述数据处理系统的各种实施例中,在每次迭代运算中,所述worker模块从所述样本数据集依次读取的多个子样本数据集存储在所述worker模块的内存里,并且,在利用一个子样本数据集计算完每个参数的梯度信息之后,将这一个子样本数据集从所述内存中删掉后再将下一个子样本数据集读入到所述内存,所述worker模块的内存是指承载所述worker模块的处理器的内存。
一个所述子样本数据集所占的存储空间小于或等于所述worker模块的内存中预留给所述子样本数据集的存储空间。两个所述子样本数据集所占的存储空间大于所述worker模块的内存中预留给所述子样本数据集的存储空间。
所述worker模块的内存中除了存储所述子样本数据集之外,还需要存储所述机器学习模型等其他在计算梯度信息中需要用到的数据,所以所述worker模块的内存的存储空间并不是全部用来存储所述子样本数据集的。
一个所述子样本数据集所占的存储空间与所述样本数据的特征维度的数量有关。在样本数据的特征维度较多的情况下,该样本数据所占用的存储空间较大,相应的,一个所述子样本数据集所占用的存储空间也较大。因为该子样本数据集要存储在内存中,所以,一个所述子样本数据集所占用的存储空间不能大于内存中预留给它的存储空间。
具体来讲,在所述数据处理系统的各种实施例中,在每一次迭代运算中,所述worker模块,进一步用于在将每个子样本数据集输入所述机器学习模型,计算所述机器学习模型的多个参数中的每个参数的梯度信息的过程中,读取并利用存储在所述worker模块的内存中的中间计算结果,所述中间计算结果作为输入信息参与计算所述梯度信息,在所述中间计算结果被使用完毕之后,删除所述worker模块的内存中的所述中间计算结果,并且,删除所述中间计算结果的操作要在向所述worker模块的内存中读入下一个子样本数据集之前完成。
具体来讲,在所述数据处理系统的各种实施例中,所述中间计算结果一般包括中间层特征,反向残差等数据。所述中间计算结果是根据所述子样本数据集计算出来的,一个子样本数据集对应得到一个中间计算结果。与每个子样本数据集对应的所述中间计算结果在计算梯度信息的过程中要用到,在计算出所述梯度信息之后,就不会再用了,因此可以删掉。在利用下一个子样本数据集计算梯度信息的过程中用的是与所述下一个子样本数据集对应的中间计算结果。
具体来讲,在所述数据处理系统的各种实施例中,所述数据处理系统还包括预处理单元,所述预处理单元用于在所述worker模块将一个所述子样本数据集输入机器学习模型,计算所述机器学习模型的每个参数的梯度信息的过程中,预处理下一个子样本数据集,对应得到所述下一个子样本数据集的中间计算结果,所述中间计算结果,用于在所述worker模块将所述下一个子样本数据集输入机器学习模型,计算所述机器学习模型的多个参数中的每个参数的梯度信息的过程中作为输入信息参与计算。
所述预处理单元可以单独承载在一个处理器上,例如:所述预处理单元可以承载在CPU上。另外,所述预处理单元也可以与所述worker模块共同承载在一个处理器上,例如:所述预处理单元与所述worker模块一起承载在CPU上。
在本发明的上述各种实施例中,所述worker模块在每次计算梯度信息的过程中,所述worker模块的内存需要存储所述中间计算结果、更新前后的机器学习模型、子样本数据集等,所以需要在内存中占用大量的存储空间。而所述worker模块的内存的存储空间又是有限的,例如:承载worker模块的GPU的显存为12G。这样,在每一次迭代计算过程中,所述worker模块能读入的样本数据量是有限的。在本发明的上述各种实施例中,所述worker模块计算完梯度信息后,删除所述中间计算结果,从而释放掉所述中间计算结果在内存中占用的存储资源,为读入的子样本数据集让出了存储空间,这样,读入的子样本数据集就可以包含较多的样本数据。
具体来讲,在所述数据处理系统的各种实施例中,在每次迭代运算中,将计算得到的每个参数的多组梯度信息分别累计后得到所述每个参数的更新梯度的过程具体有以下两种方式:
第一种方式:
针对所述读取的多个子样本数据集,分别得到每个参数的多组梯度信息,分别将属于同一个参数的多组梯度信息累计,得到每个参数的更新梯度。
第二种方式:
针对每一个子样本数据集,得到每个参数的一组梯度信息,分别将属于同一个参数的一组梯度信息累计,得到每个参数的累计梯度,这样,针对所述读取的多个子样本数据集,得到每个参数的多个累计梯度,再将每个参数的多个累计梯度分别累计,得到每个参数的更新梯度。
具体来讲,在所述数据处理系统的各种实施例中,对梯度信息做累计处理的算法可以采用加权平均算法,或者采用提取部分梯度信息,做加权处理的方法.例如可以采用以下两种方式:
第一种方式:
针对每一个参数,将计算得到的属于这个参数的多组梯度信息,采用加权平均法,得到这个参数的更新梯度。
第二种方式:
针对每一个参数,在计算得到的属于这个参数的多组梯度信息中,提取部分梯度信息,做加权处理,得到这个参数的更新梯度。
具体来讲,在所述数据处理系统的各种实施例中,在每一次的迭代运算过程中,将每个子样本数据集分别输入机器学习模型,计算所述机器学习模型的多个参数中的每个参数的梯度信息的过程中,所述子样本数据集中的一个样本数据对应得到每个参数的一个梯度信息,所述子样本数据集中包括至少一个样本数据,相应地,一个子样本数据集对应得到每个参数的一组梯度信息,所述一组梯度信息包括至少一个梯度信息。
具体来讲,在所述数据处理系统的各种实施例中,在每一次迭代运算中,将每个子样本数据集输入机器学习模型,计算所述机器学习模型的多个参数中的每个参数的梯度信息的过程包括:将每个子样本数据集输入所述机器学习模型,经过前向计算和后向计算,得到每个参数的梯度信息。
具体来讲,在所述数据处理系统的各种实施例中,在每次迭代运算中,利用每个参数的所述更新梯度更新所述机器学习模型的步骤,具体包括:利用所述每个参数的所述更新梯度,根据SGD(Stochastic gradient descent,随机梯度下降)的模型更新公式,更新所述机器学习模型。
具体来讲,在所述数据处理系统的各种实施例中,模型更新模块将机器学习模型发送给worker模块的过程是一种将机器学习模型下拉(英文翻译为pull)到worker模块的过程。worker模块将更新梯度发送给所述模型更新模块的过程是一种将更新梯度上推(英文翻译为push)给所述模型更新模块的过程。
具体来讲,在所述数据处理系统的各种实施例中,Server模块将机器学习模型发送给多个整合模块的过程是一种将机器学习模型下拉(英文翻译为pull)到整合模块的过程。worker模块将更新梯度发送给所述server模块的过程是一种将更新梯度上推(英文翻译为push)给所述server模块的过程。
具体来讲,在所述数据处理系统的各种实施例中,所述具有初始化全局参数的机器学习模型是指部分或所有参数具有初始值的机器学习模型。
具体来讲,在所述数据处理系统的各种实施例中,指定迭代次数是指:满足机器学习模型精度要求的迭代次数。
对于复杂的机器学习模型,一般需要几十万次,甚至上百万次的迭代运算,模型才能收敛,完成收敛的机器学习模型精度较高。但是如果对机器学习模型精度要求低,可以在机器学习模型未收敛的情况下,停止迭代运算,这样得到的机器学习模型的精度较低,只需要完成较少次数的迭代运算即可。
具体来讲,在所述数据处理系统的各种实施例中,在所述worker模块为多个的情况下,在每一次迭代运算中,多个所述worker模块分别从所述样本数据集读取的子样本数据集的总量为所述机器学习模型的一次迭代运算所需的子样本数据集的量。
具体来讲,在所述数据处理系统的各种实施例中,所述更新梯度在模块间传递的过程中,其呈现形式不需要限制。例如:所述更新梯度可以呈现为:利用该更新梯度更新后的模型。这样,在接收到该模型后可以省掉一次更新模型的操作,或者,在接收到该模型后,还原出该更新梯度。
第二种数据处理系统的实施例:
本发明还提供第二种数据处理系统的实施例,包括worker模块(也可以称为:工作模块)和模型更新模块,所述worker模块和模型更新模块,用于将样本数据集中的样本数据输入机器学习模型,进行多次迭代运算,直至所述机器学习模型收敛或者完成指定迭代次数的计算。
在第一次迭代运算中:
所述worker模块,进一步用于从所述样本数据集依次读取多个子样本数据集,所述子样本数据集包括至少一个样本数据,将读入的每个子样本数据集分别输入具有初始化全局参数的机器学习模型,计算所述机器学习模型的多个参数中的每个参数的梯度信息,并且,在利用一个子样本数据集计算完每个参数的一组梯度信息之后,将这一个子样本数据集删掉后再读取下一个子样本数据集,并利用下一个子样本数据集计算每个参数的另一组梯度信息。将计算得到的所述每个参数的多组梯度信息分别累计后得到所述每个参数的更新梯度。将每个参数的所述更新梯度发送给所述模型更新模块。
所述模型更新模块进一步用于接收每个参数的所述更新梯度,并利用每个参数的所述更新梯度更新所述机器学习模型;
在第二次迭代运算中:
所述worker模块,用于从所述样本数据集依次读取多个子样本数据集,将读入的每个子样本数据集分别输入更新后的所述机器学习模型,计算所述机器学习模型的多个参数中的每个参数的梯度信息,并且,在利用一个子样本数据集计算完每个参数的一组梯度信息之后,将这一个子样本数据集删掉后再读取下一个子样本数据集,并利用下一个子样本数据集计算每个参数的另一组梯度信息。将计算得到的每个参数的多组梯度信息分别累计后再次得到所述每个参数的更新梯度。将再次得到的所述每个参数的所述更新梯度发送给所述模型更新模块。所述模型更新模块进一步用于接收再次得到的所述每个参数的所述更新梯度,并利用再次得到的所述每个参数的所述更新梯度再次更新所述机器学习模型。
在后续的迭代运算中,所述模型更新模块重复第二次迭代运算中的动作,所述worker模块也重复第二次迭代运算中的动作。所述机器学习模型采用一次迭代运算中得到的更新梯度更新后,输入后一次的迭代运算。
具体来讲,在上述第二种数据处理系统的实施例中,所述worker模块和所述模型更新模块承载在至少一个计算节点上。此外,上述第一种数据处理系统的实施例中的所述worker模块和所述模型更新模块的各种实施例均适用于上述第二种数据处理系统的实施例中的所述worker模块和所述模型更新模块。
需要说明的是,上述的数据处理系统的实施例完成了多次的迭代运算。上述的数据处理系统的实施例也可以选择仅执行一次的迭代运算。
数据处理装置实施例
如图7所示,本发明提供一种数据处理装置的实施例,所述数据处理装置用于参与机器学习过程中的多次迭代运算,直至机器学习模型收敛或者完成指定迭代次数的计算。
所述数据处理装置包括:梯度计算模块,累计模块,以及发送模块;
在第一次迭代运算中:
所述梯度计算模块,用于从所述样本数据集依次读取多个子样本数据集,所述子样本数据集包括至少一个样本数据,将读入的每个子样本数据集分别输入具有初始化全局参数的机器学习模型,计算所述机器学习模型的多个参数中的每个参数的梯度信息,并且,在利用一个子样本数据集计算完每个参数的一组梯度信息之后,将这一个子样本数据集删掉后再读取下一个子样本数据集,并利用下一个子样本数据集计算每个参数的另一组梯度信息。所述累计模块用于将计算得到的每个参数的多组梯度信息分别累计后得到所述每个参数的更新梯度。所述发送模块,用于将每个参数的所述更新梯度发送,所述每个参数的所述更新梯度用于更新所述机器学习模型。
在第二次迭代运算中:
所述梯度计算模块,进一步用于从所述样本数据集依次读取多个子样本数据集,将读入的每个子样本数据集分别输入利用所述每个参数的所述更新梯度更新后的所述机器学习模型,计算所述机器学习模型的多个参数中的每个参数的梯度信息,并且,在利用一个子样本数据集计算完每个参数的一组梯度信息之后,将这一个子样本数据集删掉后再读取下一个子样本数据集,并利用下一个子样本数据集计算每个参数的另一组梯度信息。所述累计模块进一步用于将计算得到的每个参数的多组梯度信息分别累计后再次得到所述每个参数的更新梯度。所述发送模块,进一步用于将再次得到的所述每个参数的所述更新梯度发送,再次得到的所述每个参数的所述更新梯度,用于再次更新所述机器学习模型。在后续的迭代运算中,所述梯度计算模块,所述累计模块以及所述发送模块重复第二次迭代运算中的动作。所述机器学习模型在采用一次迭代运算中得到的更新梯度更新后,输入后一次的迭代运算。
具体来讲,所述数据处理装置可以承载在至少一个计算节点上。另外,所述数据处理装置可以采用前述第一种数据处理系统实施例中的worker模块的各种实施例。
需要说明的是,上述的数据处理装置的实施例参与了多次的迭代运算。上述的数据处理装置的实施例也可以选择仅参与一次的迭代运算。
第一种数据处理方法实施例
本发明提供第一种数据处理方法的实施例,该实施例包括将样本数据集中的样本数据输入机器学习模型,进行多次迭代运算,直至所述机器学习模型收敛或者完成指定迭代次数的处理过程。
在第一次迭代运算中:
从所述样本数据集依次读取多个子样本数据集,所述子样本数据集包括至少一个样本数据,将读入的每个子样本数据集分别输入具有初始化全局参数的机器学习模型,计算所述机器学习模型的多个参数中的每个参数的梯度信息,并且,在利用一个子样本数据集计算完每个参数的一组梯度信息之后,将这一个子样本数据集删掉后再读取下一个子样本数据集,并利用下一个子样本数据集计算每个参数的另一组梯度信息。
将计算得到的每个参数的多组梯度信息分别累计后得到所述每个参数的更新梯度,所述每个参数的更新梯度用于更新所述机器学习模型。
利用每个参数的所述更新梯度更新所述机器学习模型;
在第二次迭代运算中:
从所述样本数据集依次读取多个子样本数据集,将读入的每个子样本数据集分别输入更新后的所述机器学习模型,计算所述机器学习模型的多个参数中的每个参数的梯度信息,并且,在利用一个子样本数据集计算完每个参数的一组梯度信息之后,将这一个子样本数据集删掉后再读取下一个子样本数据集,并利用下一个子样本数据集计算每个参数的另一组梯度信息。将所述每个参数的多组梯度信息分别累计后再次得到所述每个参数的更新梯度,所述再次得到的所述每个参数的更新梯度,用于再次更新所述机器学习模型。
在后续的迭代运算中,重复第二次迭代运算中的动作,所述机器学习模型采用一次迭代运算中得到的更新梯度更新后,输入后一次的迭代运算。
具体来讲,上述第一种数据处理系统和第二种数据处理系统的实施例中的所述worker模块和所述模型更新模块的功能的各种具体的实现方式均适用于上述第一种数据处理方法的实施例中的步骤。
需要说明的是,上述的数据处理方法的实施例完成了多次的迭代运算。上述的数据处理方法的实施例也可以选择仅执行一次的迭代运算。
第二种数据处理方法实施例
本发明提供第二种数据处理方法的实施例,所述第二种数据处理方法的实施例,包括:
第一次迭代运算:从样本数据集依次读取多个子样本数据集,所述子样本数据集包括至少一个样本数据,将读入的每个子样本数据集分别输入具有初始化全局参数的机器学习模型,计算所述机器学习模型的多个参数中的每个参数的梯度信息,并且,在利用一个子样本数据集计算完每个参数的一组梯度信息之后,将这一个子样本数据集删掉后再读取下一个子样本数据集,并利用下一个子样本数据集计算每个参数的另一组梯度信息。将计算得到的每个参数的多组梯度信息分别累计后得到所述每个参数的更新梯度。
第二次迭代运算:从所述样本数据集依次读取多个子样本数据集,将读入的每个子样本数据集分别输入利用所述每个参数的所述更新梯度更新后的所述机器学习模型,计算所述机器学习模型的多个参数中的每个参数的梯度信息,并且,在利用一个子样本数据集计算完每个参数的一组梯度信息之后,将这一个子样本数据集删掉后再读取下一个子样本数据集,并利用下一个子样本数据集计算每个参数的另一组梯度信息。将计算得到的每个参数的多组梯度信息分别累计后再次得到所述每个参数的更新梯度。利用再次得到的所述每个参数的所述更新梯度再次更新所述机器学习模型。
所述方法还包括多次迭代运算,直至所述机器学习模型收敛或者完成指定迭代次数的计算,在后续的迭代运算中,重复第二次迭代运算中的步骤,并且,所述机器学习模型在采用一次迭代运算中得到的更新梯度更新后,输入后一次的迭代运算。
具体来讲,上述第一种数据处理系统和第二种数据处理系统的实施例中的所述worker模块的各种具体的实现方式均适用于上述第二种数据处理方法的实施例中的步骤。
需要说明的是,上述的数据处理方法的实施例参与了多次的迭代运算。上述的数据处理方法的实施例也可以选择仅参与一次的迭代运算。
如图8所示,本发明的实施例还提供一种计算设备,所述计算设备包括:主板,以及通过所述主板连接的处理器、内存、总线和通信接口,所述处理器与所述内存通过所述总线连接,当所述计算设备运行时,所述处理器读取并执行所述内存中的指令或者运行自身的硬件逻辑电路,以使所述计算设备执行上述的数据处理方法的实施例,并通过所述通信接口将所述子样本数据集读取到所述内存中。
为了便于理解本发明上述的各种实施例,下面举两个具体的例子,这两个例子中的各个细节特征可以与上述的任意一种实施例相结合。
第一个例子:
应用场景:用深度神经网络模型对图像样本数据集中的样本数据分成1000类;
样本数据集:样本数据集为图像样本数据集(英文翻译为:imagenet),该样本数据集的数据规模为128万张图像;
深度神经网络模型:采用Resnet-152模型,Resnet-152模型是目前一种比较常见的、分类精准度较高的图像分类网络模型。Resnet-152模型具有5000W的模型参数,属于大规模机器学习模型的一种。
分布式计算平台:包括4个计算节点。每个计算节点包含一个worker模块,一个整合模块,以及一个server模块,每个worker模块采用1块K80GPU卡(12G显存),每个server模块采用一块Intel Xeon E5-2620 CPU。
以第一轮迭代运算为例进行说明:
①启动所述分布式计算平台,部署应用程序,初始化全局模型参数,使得参数取值服从W~(0,0.01);
②设定每轮模型迭代更新的过程中,4个worker模块处理的数据总规模为256张图像。每个K80GPU卡由于显存受限,worker模块一次仅能读入1张224*224的图像,并根据单张图像计算模型的梯度信息(计算节点的GPU计算梯度信息的同时,计算节点的CPU读入并预处理下一张图像)。每个worker模块基于所述具有初始化的全局模型参数的机器学习模型W~(0,0.01)计算梯度信息,并累计根据64张图像计算得到的梯度信息,这样,4个worker模块累计得到的更新梯度的运算分别采用如下公式表示:
Figure BDA0001172350290000461
Figure BDA0001172350290000462
Figure BDA0001172350290000463
Figure BDA0001172350290000464
并将累计得到的更新梯度Δw1,Δw2,Δw3,Δw4分别上推到server模块;
③假定Resnet-152模型的学习速率为0.01,则第一轮迭代(处理完前256张图像)后,每个server模块更新部分模型,具体采用如下公式表示:
Figure BDA0001172350290000465
每个server模块仅更新部分模型,每个server模块将更新后的部分模型发送给所述整合模块,所述整合模块将每个server模块发送的部分模型整合为更新后的完整机器学习模型。
第一轮迭代完成。
第二个例子:
在每轮迭代运算中,worker模块要连续处理K批样本数据,K为大于2的自然数,并将梯度信息进行累计,具体步骤如下:
①所述Worker模块从模型更新模块获取最新的模型w1,
②所述Worker模块读入第1批样本数据,依赖于所述模型更新模块下拉的模型w1计算梯度信息,得到Δw1_1,并将Δw1_1赋值给Δw1,所述worker模块针对第1批样本数据计算梯度信息的过程中,与所述worker模块位于同一计算节点的CPU同时读入并预处理第2批样本数据,具体采用的公式表示如下:
compute w1→Δw1_1
Δw1=Δw1_1
③所述Worker模块读入第2批样本数据,依赖于所述模型更新模块下拉的模型w1计算梯度信息得到Δw1_2,并更新Δw1,所述worker模块针对第2批样本数据计算梯度信息的过程中,与所述worker模块位于同一计算节点的CPU同时预处理第3批样本数据,具体采用的公示表示如下:
compute w1→Δw1_2
Δw1=Δw1+Δw1_2
④…
⑤所述Worker模块读入第K批样本数据,依赖于所述模型更新模块下拉的模型w1计算梯度信息,得到Δw1_K,并更新Δw1,将累计的梯度信息Δw1上推给所述模型更新模块,具体采用的公式表示如下:
compute w1→Δw1_K
Δw1=Δw1+Δw1_K
⑥所述模型更新模块根据所述worker模块上推的累计的梯度信息Δw1更新所述机器学习模型。
至此,完成所述机器学习模型的一次更新。
本发明上述的各种实施例可适用的各种场景:
本发明的各种实施例均适用于训练各种机器学习模型的场景,例如:各种大规模机器学习模型,以及深度学习(英文翻译为Deep Learning)模型。
本发明的各种实施例均适用各种机器学习算法,例如:随机梯度下降算法(英文翻译为:Stochastic gradient descent),牛顿算法,贝叶斯算法,卷积神经网络(图像、语音、视频)算法,递归神经网络(自然语言处理)算法,以及深度神经网络(语音)算法等等。
本发明的各种实施例中的机器学习的成果可用在以下几个方面:运营商网络流量异常监测,终端智能相册技术,IT(information technology)产品线视频监控,无人驾驶技术,语音助手技术,同声翻译,以及屏蔽垃圾邮件等等。
通过以上实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以采用软件实现,硬件实现,固件实现,或它们的任意组合来实现。当使用软件实现时,可以将上述各模块的功能或方法实施例中的步骤存储在计算机可读介质中,作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是计算机能够存取的任何可用介质。计算机可读介质可以包括RAM,ROM,EEPROM,CD-ROM,光盘存储介质,磁盘存储介质,磁存储设备;或者能够携带或存储具有指令或数据结构的程序代码并能够由计算机存取的任何其他介质。任何形式的通信媒介都可以成为所述通信介质,如果软件是使用同轴电缆、光纤光缆、双绞线、或数字用户线(DSL)之类的有线技术,或者诸如红外线、无线电和微波之类的无线技术,在网站、服务器以及其他节点之间传输的,那么所述的同轴电缆、光纤光缆、双绞线、DSL,以及所述的红外线、无线和微波就包括在所述通信介质的定义中。计算机可读介质还可以包括:盘(Disk)和碟(disc),其中,碟包括压缩光碟(CD)、激光碟、光碟、数字通用光碟(DVD)、以及蓝光光碟。盘包括软盘和硬盘,其中盘通常采用磁性技术复制及存储数据,而碟则采用激光等光学技术复制及存储数据。
总之,以上所述仅为本发明技术方案的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (41)

1.一种数据处理装置,其特征在于,所述数据处理装置包括:梯度计算模块,累计模块,以及发送模块;
所述梯度计算模块,用于在一次迭代运算过程中,从样本数据集依次读取多个子样本数据集到所述数据处理装置的内存中,所述子样本数据集包括至少一个样本数据,所述样本数据为企业数据,所述数据处理装置的内存是指承载所述数据处理装置的处理器的内存,将读入的每个子样本数据集分别输入机器学习模型,计算所述机器学习模型的多个参数中的每个参数的梯度信息,并且,在利用一个子样本数据集计算完每个参数的一组梯度信息之后,将所述内存中的这一个子样本数据集删掉后再读取下一个子样本数据集到所述内存中,并利用下一个子样本数据集计算每个参数的另一组梯度信息,所述机器学习模型是具有初始化全局参数的机器学习模型,或者是在上一次迭代运算中经过更新的机器学习模型;
所述累计模块,用于在所述一次迭代运算过程中,将计算得到的每个参数的多组梯度信息分别累计后得到所述每个参数的更新梯度;
所述发送模块,用于在所述一次迭代运算过程中,将每个参数的所述更新梯度发送,所述每个参数的所述更新梯度用于更新所述机器学习模型。
2.如权利要求1所述的数据处理装置,其特征在于,所述梯度计算模块,所述累计模块,以及所述发送模块进一步用于参与所述一次迭代运算之后的多次迭代运算,直至所述机器学习模型收敛或者完成指定迭代次数的计算;
在所述一次迭代运算之后的多次迭代运算中的每一次迭代运算中,所述梯度计算模块和所述累计模块,以及所述发送模块重复在所述一次迭代运算过程中的动作,在所述一次迭代运算以及所述一次迭代运算之后的多次迭代运算中,所述机器学习模型在采用一次迭代运算中得到的更新梯度被更新后,被输入后一次的迭代运算。
3.如权利要求1或2所述的数据处理装置,其特征在于,所述累计模块具体用于:
针对根据所述读取的多个子样本数据集,分别得到的每个参数的多组梯度信息,分别将属于同一个参数的多组梯度信息累计,得到每个参数的更新梯度。
4.如权利要求1或2所述的数据处理装置,其特征在于,所述累计模块具体用于:
针对根据每一个子样本数据集,得到的每个参数的一组梯度信息,分别将属于同一个参数的一组梯度信息累计,得到每个参数的累计梯度,这样,针对所述读取的多个子样本数据集,得到每个参数的多个累计梯度,再将每个参数的多个累计梯度分别累计,得到每个参数的更新梯度。
5.如权利要求1或2所述的数据处理装置,其特征在于,所述累计模块具体用于:
针对根据所述读取的多个子样本数据集,分别得到的每个参数的多组梯度信息,分别将属于同一个参数的多组梯度信息收集在一起,每个参数的收集在一起的多组梯度信息作为每个参数的所述更新梯度。
6.如权利要求1或2所述的数据处理装置,其特征在于,所述梯度计算模块具体用于,在所述一次迭代运算过程中,从所述样本数据集依次读取多个子样本数据集,将读入的每个子样本数据集分别输入机器学习模型,读取并利用中间计算结果,计算所述机器学习模型的多个参数中的每个参数的梯度信息,所述中间计算结果作为输入信息参与计算所述梯度信息,并且,在利用一个子样本数据集计算完每个参数的一组梯度信息之后,将这一个子样本数据集删掉后再读取下一个子样本数据集,并利用下一个子样本数据集计算每个参数的另一组梯度信息,在所述中间计算结果被使用完毕之后,删除所述中间计算结果,并且,删除所述中间计算结果的操作要在读取下一个子样本数据集之前完成。
7.一种数据处理系统,其特征在于,所述系统包括:模型更新模块,以及如权利要求1所述的数据处理装置,
所述发送模块,进一步用于在所述一次迭代运算过程中,将每个参数的所述更新梯度发送给所述模型更新模块;
所述模型更新模块用于在所述一次迭代运算过程中,接收每个参数的所述更新梯度,并利用每个参数的所述更新梯度更新所述机器学习模型。
8.如权利要求7所述的数据处理系统,其特征在于,所述数据处理装置的数量为1个,并且所述模型更新模块的数量为一个。
9.如权利要求7所述的数据处理系统,其特征在于,所述数据处理装置的数量为多个,并且所述模型更新模块的数量为一个,所述模型更新模块进一步用于在所述一次迭代运算过程中,接收多个所述数据处理装置的发送模块分别发送的每个参数的所述更新梯度,并利用所述来自多个所述数据处理装置的发送模块的每个参数的所述更新梯度,更新所述机器学习模型。
10.如权利要求7所述的数据处理系统,其特征在于,所述数据处理装置的数量为多个,并且所述模型更新模块的数量也为多个。
11.如权利要求10所述的数据处理系统,其特征在于,多个所述数据处理装置和多个所述模型更新模块承载在一个计算节点上,所述计算节点包括多个处理器,一个处理器承载一个所述数据处理装置和一个所述模型更新模块,每个处理器的所述数据处理装置的发送模块,进一步用于,在所述一次迭代运算过程中,将计算得到所述每个参数的所述更新梯度发送给所有其他的处理器的模型更新模块,并将每个参数的所述更新梯度发送给与所述数据处理装置同在一个处理器的模型更新模块,每个处理器的所述模型更新模块,进一步用于在所述一次迭代运算过程中,接收其他的每个处理器的数据处理装置的发送模块发送的每个参数的所述更新梯度,并分别利用来自其他的每个处理器的每个参数的所述更新梯度更新所述机器学习模型,以及利用与所述模型更新模块同在一个处理器的所述数据处理装置计算得到的每个参数的所述更新梯度,更新所述机器学习模型。
12.如权利要求7所述的数据处理系统,其特征在于,在所述模型更新模块包括整合模块和多个服务模块,并且所述数据处理装置的数量为多个,所述数据处理装置的发送模块具体用于:在所述一次迭代运算过程中,将每组参数的所述更新梯度分别发送给一个对应的所述服务模块,其中,所述机器学习模型的所述多个参数由多组参数组成,所述每组参数包括至少一个参数,并且所述多组参数中的每组参数分别对应不同的所述服务模块,所述多个服务模块中的每个服务模块用于在所述一次迭代运算过程中,接收与自身对应的这一组参数的更新梯度,并利用这一组参数的更新梯度更新与这一组参数对应的所述机器学习模型的局部,将更新后的局部机器学习模型发送给所述整合模块,所述整合模块,用于在所述一次迭代运算过程中,接收多个所述服务模块分别发送的更新后的局部机器学习模型,并将多个所述更新后的局部机器学习模型整合为更新后的全局的所述机器学习模型。
13.一种数据处理系统,其特征在于,所述系统包括:模型更新模块,以及如权利要求2至6中任意一项所述的数据处理装置,
所述发送模块,进一步用于在所述一次迭代运算中,以及在所述一次迭代运算之后的多次迭代运算中的每一次迭代运算中,将每个参数的所述更新梯度发送给所述模型更新模块;
所述模型更新模块用于在所述一次迭代运算中,以及在所述一次迭代运算之后的多次迭代运算中的每一次迭代运算中,接收每个参数的所述更新梯度,并利用每个参数的所述更新梯度更新所述机器学习模型。
14.如权利要求13所述的数据处理系统,其特征在于,所述数据处理装置的数量为1个,并且所述模型更新模块的数量为一个。
15.如权利要求13所述的数据处理系统,其特征在于,所述数据处理装置的数量为多个,并且所述模型更新模块的数量为一个,所述模型更新模块进一步用于,在所述一次迭代运算中,以及在所述一次迭代运算之后的多次迭代运算中的每一次迭代运算中,接收多个所述数据处理装置的发送模块分别发送的每个参数的所述更新梯度,并利用所述来自多个所述数据处理装置的发送模块的每个参数的所述更新梯度,更新所述机器学习模型。
16.如权利要求13所述的数据处理系统,其特征在于,所述数据处理装置的数量为多个,并且所述模型更新模块的数量也为多个。
17.如权利要求16所述的数据处理系统,其特征在于,多个所述数据处理装置和多个所述模型更新模块承载在一个计算节点上,所述计算节点包括多个处理器,一个处理器承载一个所述数据处理装置和一个所述模型更新模块,每个处理器的所述数据处理装置的发送模块,进一步用于,在所述一次迭代运算中,以及在所述一次迭代运算之后的多次迭代运算中的每一次迭代运算中,将计算得到所述每个参数的所述更新梯度发送给所有其他的处理器的模型更新模块,并将每个参数的所述更新梯度发送给与所述数据处理装置同在一个处理器的模型更新模块,每个处理器的所述模型更新模块,进一步用于,在所述一次迭代运算中,以及在所述一次迭代运算之后的多次迭代运算中的每一次迭代运算中,接收其他的每个处理器的数据处理装置的发送模块发送的每个参数的更新梯度,并分别利用来自其他的每个处理器的每个参数的更新梯度更新所述机器学习模型,以及利用与所述模型更新模块同在一个处理器的所述数据处理装置计算得到每个参数的所述更新梯度,更新所述机器学习模型。
18.如权利要求13所述的数据处理系统,其特征在于,在所述模型更新模块包括整合模块和多个服务模块,并且所述数据处理装置的数量为多个,所述数据处理装置的发送模块具体用于:在所述一次迭代运算中,以及在所述一次迭代运算之后的多次迭代运算中的每一次迭代运算中,将每组参数的所述更新梯度分别发送给一个对应的所述服务模块,其中,所述机器学习模型的所述多个参数由多组参数组成,所述每组参数包括至少一个参数,并且所述多组参数中的每组参数分别对应不同的所述服务模块,所述多个服务模块中的每个服务模块用于接收与自身对应的这一组参数的更新梯度,并利用这一组参数的更新梯度更新与这一组参数对应的所述机器学习模型的局部,将更新后的局部机器学习模型发送给所述整合模块,所述整合模块,用于在所述一次迭代运算中,以及在所述一次迭代运算之后的多次迭代运算中的每一次迭代运算中,接收多个所述服务模块分别发送的更新后的局部机器学习模型,并将多个所述更新后的局部机器学习模型整合为更新后的全局的所述机器学习模型。
19.一种数据处理系统,其特征在于,所述系统包括:至少一个计算节点,所述至少一个计算节点用于承载如权利要求1至6中任意一项中所述的数据处理装置。
20.如权利要求19所述的数据处理系统,其特征在于,所述计算节点包括至少一个处理器,以及为所述处理器配置的内存,所述数据处理装置承载在所述处理器上。
21.如权利要求20所述的数据处理系统,其特征在于,在每次迭代运算中,所述数据处理装置从所述样本数据集依次读取的多个子样本数据集存储在所述数据处理装置的内存里,并且,在利用一个子样本数据集计算完每个参数的梯度信息之后,将这一个子样本数据集从所述内存中删掉后再将下一个子样本数据集读入到所述内存,所述数据处理装置的内存是指承载所述数据处理装置的处理器的内存。
22.如权利要求21所述的数据处理系统,其特征在于,一个所述子样本数据集所占的存储空间小于或等于所述数据处理装置的内存中预留给所述子样本数据集的存储空间,两个所述子样本数据集所占的存储空间大于所述数据处理装置的内存中预留给所述子样本数据集的存储空间。
23.如权利要求21所述的数据处理系统,其特征在于,在每一次迭代运算中,所述数据处理装置,进一步用于在将每个子样本数据集输入所述机器学习模型,计算所述机器学习模型的多个参数中的每个参数的梯度信息的过程中,读取并利用存储在所述数据处理装置的内存中的中间计算结果,所述中间计算结果作为输入信息参与计算所述梯度信息,在所述中间计算结果被使用完毕之后,删除所述数据处理装置的内存中的所述中间计算结果,并且,删除所述中间计算结果的操作要在向所述数据处理装置的内存中读入下一个子样本数据集之前完成。
24.一种数据处理系统,其特征在于,所述系统包括:至少一个计算节点,所述至少一个计算节点用于承载如权利要求7至18中任意一项中所述的数据处理装置和模型更新模块。
25.如权利要求24所述的数据处理系统,其特征在于,所述计算节点包括至少一个处理器,以及为所述处理器配置的内存,所述数据处理装置,以及所述模型更新模块承载在所述处理器上。
26.如权利要求25所述的数据处理系统,其特征在于,在每次迭代运算中,所述数据处理装置从所述样本数据集依次读取的多个子样本数据集存储在所述数据处理装置的内存里,并且,在利用一个子样本数据集计算完每个参数的梯度信息之后,将这一个子样本数据集从所述内存中删掉后再将下一个子样本数据集读入到所述内存,所述数据处理装置的内存是指承载所述数据处理装置的处理器的内存。
27.如权利要求26所述的数据处理系统,其特征在于,一个所述子样本数据集所占的存储空间小于或等于所述数据处理装置的内存中预留给所述子样本数据集的存储空间,两个所述子样本数据集所占的存储空间大于所述数据处理装置的内存中预留给所述子样本数据集的存储空间。
28.如权利要求26所述的数据处理系统,其特征在于,在每一次迭代运算中,所述数据处理装置,进一步用于在将每个子样本数据集输入所述机器学习模型,计算所述机器学习模型的多个参数中的每个参数的梯度信息的过程中,读取并利用存储在所述数据处理装置的内存中的中间计算结果,所述中间计算结果作为输入信息参与计算所述梯度信息,在所述中间计算结果被使用完毕之后,删除所述数据处理装置的内存中的所述中间计算结果,并且,删除所述中间计算结果的操作要在向所述数据处理装置的内存中读入下一个子样本数据集之前完成。
29.一种数据处理方法,其特征在于,所述方法包括一次迭代运算;
在所述一次迭代运算过程中,从样本数据集依次读取多个子样本数据集到数据处理装置的内存中,所述子样本数据集包括至少一个样本数据,所述样本数据为企业数据,所述数据处理装置的内存是指承载所述数据处理装置的处理器的内存,将读入的每个子样本数据集分别输入机器学习模型,计算所述机器学习模型的多个参数中的每个参数的梯度信息,并且,在利用一个子样本数据集计算完每个参数的一组梯度信息之后,将所述内存中的这一个子样本数据集删掉后再读取下一个子样本数据集到所述内存中,并利用下一个子样本数据集计算每个参数的另一组梯度信息,其中,所述机器学习模型是具有初始化全局参数的机器学习模型,或者是在上一轮迭代运算中经过更新的机器学习模型;
在所述一次迭代运算过程中,将计算得到的每个参数的多组梯度信息分别累计后得到所述每个参数的更新梯度,每个参数的所述更新梯度用于更新所述机器学习模型。
30.如权利要求29所述的数据处理方法,其特征在于,所述方法还包括:所述一次迭代运算之后的多次迭代运算,直至所述机器学习模型收敛或者完成指定迭代次数的计算;
在所述一次迭代运算之后的多次迭代运算中的每一次迭代运算中,重复所述一次迭代运算中的步骤,并且,在所述一次迭代运算之后的多次迭代运算中的每一次迭代运算中,所述机器学习模型在采用一次迭代运算中得到的更新梯度被更新后,被输入后一次的迭代运算。
31.如权利要求29所述的方法,其特征在于,所述方法在所述一次迭代运算中还包括:利用每个参数的所述更新梯度更新所述机器学习模型。
32.如权利要求30所述的方法,其特征在于,在每次迭代运算中,将计算得到的每个参数的多组梯度信息分别累计后得到所述每个参数的更新梯度的过程包括:
针对根据所述读取的多个子样本数据集,分别得到的每个参数的多组梯度信息,分别将属于同一个参数的多组梯度信息累计,得到每个参数的更新梯度。
33.如权利要求30所述的方法,其特征在于,在每次迭代运算中,将计算得到的每个参数的多组梯度信息分别累计后得到所述每个参数的更新梯度的过程包括:
针对根据每一个子样本数据集,得到的每个参数的一组梯度信息,分别将属于同一个参数的一组梯度信息累计,得到每个参数的累计梯度,这样,针对所述读取的多个子样本数据集,得到每个参数的多个累计梯度,再将每个参数的多个累计梯度分别累计,得到每个参数的更新梯度。
34.如权利要求30所述的方法,其特征在于,在每次迭代运算中,将计算得到的每个参数的多组梯度信息分别累计后得到所述每个参数的更新梯度的过程包括:
针对根据所述读取的多个子样本数据集,分别得到的每个参数的多组梯度信息,分别将属于同一个参数的多组梯度信息收集在一起,每个参数的收集在一起的多组梯度信息作为每个参数的所述更新梯度。
35.如权利要求30所述的方法,其特征在于,在每一次的迭代运算过程中,将每个子样本数据集分别输入机器学习模型,计算所述机器学习模型的多个参数中的每个参数的梯度信息的过程中,所述子样本数据集中的一个样本数据对应得到每个参数的一个梯度信息,所述子样本数据集中包括至少一个样本数据,相应地,一个子样本数据集对应得到每个参数的一组梯度信息,所述一组梯度信息包括至少一个梯度信息。
36.如权利要求30所述的方法,其特征在于,在每次迭代运算中,利用每个参数的所述更新梯度更新所述机器学习模型的步骤,具体包括:利用所述每个参数的所述更新梯度,根据随机梯度下降的模型更新公式,更新所述机器学习模型。
37.如权利要求30所述的方法,其特征在于,所述方法运行于至少一个计算节点上,所述计算节点包括至少一个处理器,以及为所述处理器配置的内存。
38.如权利要求30所述的方法,其特征在于,在每次迭代运算中,从所述样本数据集依次读取的多个子样本数据集存储在所述内存里,并且,在利用一个子样本数据集计算完每个参数的梯度信息之后,将这一个子样本数据集从所述内存中删掉后再将下一个子样本数据集读入到所述内存。
39.如权利要求38所述的方法,其特征在于,一个所述子样本数据集所占的存储空间小于或等于所述内存中预留给所述子样本数据集的存储空间,两个所述子样本数据集所占的存储空间大于所述内存中预留给所述子样本数据集的存储空间。
40.如权利要求38所述的方法,其特征在于,所述方法进一步包括:在每一次迭代运算中,在将每个子样本数据集输入所述机器学习模型,计算所述机器学习模型的多个参数中的每个参数的梯度信息的过程中,读取并利用存储在内存中的中间计算结果,所述中间计算结果作为输入信息参与计算所述梯度信息,在所述中间计算结果被使用完毕之后,删除所述内存中的所述中间计算结果,并且,删除所述中间计算结果的操作要在向所述内存中读入下一个子样本数据集之前完成。
41.一种计算设备,其特征在于,所述计算设备包括:主板,以及通过所述主板连接的处理器、内存、总线和通信接口,所述处理器与所述内存通过所述总线连接,当所述计算设备运行时,所述处理器读取并执行所述内存中的指令或者运行自身的硬件逻辑电路,以使所述计算设备执行如权利要求29至40中任意一项所述的方法,并通过所述通信接口将所述子样本数据集读取到所述内存中。
CN201611110243.6A 2016-12-06 2016-12-06 一种数据处理系统及方法 Active CN108154237B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201611110243.6A CN108154237B (zh) 2016-12-06 2016-12-06 一种数据处理系统及方法
PCT/CN2017/113581 WO2018103562A1 (zh) 2016-12-06 2017-11-29 一种数据处理系统及方法
EP17877425.3A EP3540653A4 (en) 2016-12-06 2017-11-29 SYSTEM AND METHOD FOR DATA PROCESSING
US16/432,617 US20190287022A1 (en) 2016-12-06 2019-06-05 Data processing system and method
US18/370,524 US20240013098A1 (en) 2016-12-06 2023-09-20 Data processing system and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611110243.6A CN108154237B (zh) 2016-12-06 2016-12-06 一种数据处理系统及方法

Publications (2)

Publication Number Publication Date
CN108154237A CN108154237A (zh) 2018-06-12
CN108154237B true CN108154237B (zh) 2022-04-05

Family

ID=62467997

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611110243.6A Active CN108154237B (zh) 2016-12-06 2016-12-06 一种数据处理系统及方法

Country Status (4)

Country Link
US (2) US20190287022A1 (zh)
EP (1) EP3540653A4 (zh)
CN (1) CN108154237B (zh)
WO (1) WO2018103562A1 (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10878482B2 (en) 2018-01-19 2020-12-29 Hypernet Labs, Inc. Decentralized recommendations using distributed average consensus
US11244243B2 (en) * 2018-01-19 2022-02-08 Hypernet Labs, Inc. Coordinated learning using distributed average consensus
CN108846095A (zh) * 2018-06-15 2018-11-20 联想(北京)有限公司 一种数据处理方法及装置
CN109214512B (zh) * 2018-08-01 2021-01-22 中兴飞流信息科技有限公司 一种深度学习的参数交换方法、装置、服务器及存储介质
CN109144729A (zh) * 2018-08-27 2019-01-04 联想(北京)有限公司 分布式系统的数据处理方法和分布式系统
CN109598385A (zh) * 2018-12-07 2019-04-09 深圳前海微众银行股份有限公司 反洗钱联合学习方法、装置、设备、系统及存储介质
CN109741731B (zh) * 2019-01-08 2020-12-29 国家计算机网络与信息安全管理中心 一种语种训练数据获得方法及装置
CN110197260B (zh) * 2019-06-06 2020-10-02 百度在线网络技术(北京)有限公司 一种数据处理方法及装置
CN110929860B (zh) * 2019-11-07 2020-10-23 深圳云天励飞技术有限公司 一种卷积加速运算方法、装置、存储介质及终端设备
CN111709533B (zh) * 2020-08-19 2021-03-30 腾讯科技(深圳)有限公司 机器学习模型的分布式训练方法、装置以及计算机设备
KR20220096466A (ko) * 2020-12-31 2022-07-07 삼성전자주식회사 뉴럴 네트워크 연산을 위한 메모리 관리 방법 및 장치
CN114398949A (zh) * 2021-12-13 2022-04-26 鹏城实验室 一种脉冲神经网络模型的训练方法、存储介质及计算设备
CN116302513A (zh) * 2023-02-28 2023-06-23 易方达基金管理有限公司 量化因子的处理方法、装置、计算机设备和可读存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101826166A (zh) * 2010-04-27 2010-09-08 青岛大学 一种新的神经网络模式识别方法
CN102521656A (zh) * 2011-12-29 2012-06-27 北京工商大学 非平衡样本分类的集成迁移学习方法
CN103336877A (zh) * 2013-07-25 2013-10-02 哈尔滨工业大学 一种基于rvm动态可重构的卫星锂离子电池剩余寿命预测系统及方法
CN104463324A (zh) * 2014-11-21 2015-03-25 长沙马沙电子科技有限公司 一种基于大规模高性能集群的卷积神经网络并行处理方法
CN105469142A (zh) * 2015-11-13 2016-04-06 燕山大学 一种基于样本增量驱动的神经网络增量型前馈算法
CN105574585A (zh) * 2015-12-14 2016-05-11 四川长虹电器股份有限公司 基于多线程互斥的神经网络模型的样本训练方法
US9350690B2 (en) * 2008-09-29 2016-05-24 Microsoft Technology Licensing, Llc User perception of electronic messaging
CN105677353A (zh) * 2016-01-08 2016-06-15 北京物思创想科技有限公司 特征抽取方法、机器学习方法及其装置
CN106156810A (zh) * 2015-04-26 2016-11-23 阿里巴巴集团控股有限公司 通用机器学习算法模型训练方法、系统和计算节点

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8311973B1 (en) * 2011-09-24 2012-11-13 Zadeh Lotfi A Methods and systems for applications for Z-numbers
US9189455B2 (en) * 2012-05-29 2015-11-17 Xerox Corporation Adaptive weighted stochastic gradient descent
US9286574B2 (en) * 2013-11-04 2016-03-15 Google Inc. Systems and methods for layered training in machine-learning architectures
US10152676B1 (en) * 2013-11-22 2018-12-11 Amazon Technologies, Inc. Distributed training of models using stochastic gradient descent
ES2738319T3 (es) * 2014-09-12 2020-01-21 Microsoft Technology Licensing Llc Sistema informático para entrenar redes neuronales
CN104598972A (zh) * 2015-01-22 2015-05-06 清华大学 一种大规模数据回归神经网络快速训练方法
US10438112B2 (en) * 2015-05-26 2019-10-08 Samsung Electronics Co., Ltd. Method and apparatus of learning neural network via hierarchical ensemble learning
CN106991095B (zh) * 2016-01-21 2021-09-28 阿里巴巴集团控股有限公司 机器异常的处理方法、学习速率的调整方法及装置
US11308418B2 (en) * 2017-09-15 2022-04-19 Sap Se Automatic selection of variables for a machine-learning model

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9350690B2 (en) * 2008-09-29 2016-05-24 Microsoft Technology Licensing, Llc User perception of electronic messaging
CN101826166A (zh) * 2010-04-27 2010-09-08 青岛大学 一种新的神经网络模式识别方法
CN102521656A (zh) * 2011-12-29 2012-06-27 北京工商大学 非平衡样本分类的集成迁移学习方法
CN103336877A (zh) * 2013-07-25 2013-10-02 哈尔滨工业大学 一种基于rvm动态可重构的卫星锂离子电池剩余寿命预测系统及方法
CN104463324A (zh) * 2014-11-21 2015-03-25 长沙马沙电子科技有限公司 一种基于大规模高性能集群的卷积神经网络并行处理方法
CN106156810A (zh) * 2015-04-26 2016-11-23 阿里巴巴集团控股有限公司 通用机器学习算法模型训练方法、系统和计算节点
CN105469142A (zh) * 2015-11-13 2016-04-06 燕山大学 一种基于样本增量驱动的神经网络增量型前馈算法
CN105574585A (zh) * 2015-12-14 2016-05-11 四川长虹电器股份有限公司 基于多线程互斥的神经网络模型的样本训练方法
CN105677353A (zh) * 2016-01-08 2016-06-15 北京物思创想科技有限公司 特征抽取方法、机器学习方法及其装置

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
BP神经网络训练算法的分析与比较;陈明忠等;《科技广场》;20101231;第24-27页 *
SoC-Based Implementation of the Backpropagation Algorithm for MLP;R. J. Aliaga 等;《2008 Eighth International Conference on Hybrid Intelligent Systems》;20081231;第744- 749页 *
vDNN: Virtualized deep neural networks for scalable, memory-efficient neural network design;M. Rhu等;《2016 49th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO)》;20161019;第1-13页 *
训练神经网络的五大算法;小勺挖泰山;《https://blog.csdn.net/baidu_32134295/article/details/52909687》;20161024;第 1-4页 *
面向失衡数据集的集成学习分类方法及其应用研究;黄久玲;《中国优秀硕士学位论文全文数据库·信息科技辑》;20150715(第7期);第I138-820页 *

Also Published As

Publication number Publication date
CN108154237A (zh) 2018-06-12
WO2018103562A1 (zh) 2018-06-14
US20240013098A1 (en) 2024-01-11
US20190287022A1 (en) 2019-09-19
EP3540653A4 (en) 2019-11-27
EP3540653A1 (en) 2019-09-18

Similar Documents

Publication Publication Date Title
CN108154237B (zh) 一种数据处理系统及方法
CN111177792B (zh) 基于隐私保护确定目标业务模型的方法及装置
EP3340129B1 (en) Artificial neural network class-based pruning
CN111639710A (zh) 图像识别模型训练方法、装置、设备以及存储介质
CN112184508B (zh) 一种用于图像处理的学生模型的训练方法及装置
CN110058936B (zh) 用于确定专用处理资源的资源量的方法、设备和计算机程序产品
US20200151558A1 (en) Systems and methods for updating an artificial intelligence model by a subset of parameters in a communication system
CN111382868A (zh) 神经网络结构搜索方法和神经网络结构搜索装置
CN111368973B (zh) 用于训练超网络的方法和装置
US20220164666A1 (en) Efficient mixed-precision search for quantizers in artificial neural networks
US20200151551A1 (en) Systems and methods for determining an artificial intelligence model in a communication system
CN108280513B (zh) 模型生成方法和装置
CN111406263A (zh) 神经网络架构搜索的方法与装置
CN113657468A (zh) 预训练模型的生成方法、装置、电子设备和存储介质
CN111259975B (zh) 分类器的生成方法及装置、文本的分类方法及装置
CN112712795A (zh) 标注数据确定方法、装置、介质及电子设备
CN111582452A (zh) 生成神经网络模型的方法和装置
CN115293292A (zh) 自动驾驶决策模型的训练方法及装置
US20210232891A1 (en) Neural network model compression with structured weight unification
CN115146788A (zh) 分布式机器学习模型的训练方法、装置、电设备存储介质
CN114880363A (zh) 一种数据中心流量预测系统及训练方法、预测方法
CN111582482B (zh) 用于生成网络模型信息的方法、装置、设备和介质
CN113159312B (zh) 压缩神经网络模型的方法、计算机系统以及存储介质
CN113469932A (zh) 信息处理的方法、电子设备和介质
CN115240038A (zh) 图像处理模型的训练方法、装置、设备、介质和程序产品

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