CN111709533B - 机器学习模型的分布式训练方法、装置以及计算机设备 - Google Patents
机器学习模型的分布式训练方法、装置以及计算机设备 Download PDFInfo
- Publication number
- CN111709533B CN111709533B CN202010836317.4A CN202010836317A CN111709533B CN 111709533 B CN111709533 B CN 111709533B CN 202010836317 A CN202010836317 A CN 202010836317A CN 111709533 B CN111709533 B CN 111709533B
- Authority
- CN
- China
- Prior art keywords
- training
- parameter
- gradient
- node
- current
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0241—Advertisements
- G06Q30/0251—Targeted advertisements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/098—Distributed learning, e.g. federated learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Business, Economics & Management (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Strategic Management (AREA)
- Finance (AREA)
- Development Economics (AREA)
- Accounting & Taxation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Economics (AREA)
- Game Theory and Decision Science (AREA)
- Marketing (AREA)
- Entrepreneurship & Innovation (AREA)
- General Business, Economics & Management (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Neurology (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请涉及一种机器学习模型的分布式训练方法,由分布式节点集群的工作节点执行,分布式节点集群可通过云服务器实现,方法包括:获取多于一组的训练样本,根据机器学习模型当前的训练参数对每组训练样本分别进行处理,得到对应的参数梯度;基于与各组训练样本分别对应的参数梯度,确定当次的局部梯度;将当次的局部梯度传输至参数节点;传输的局部梯度用于指示参数节点基于分布式节点集群中各工作节点当次分别传输的局部梯度确定当次的全局梯度,并根据当次的全局梯度更新训练参数;从参数节点处获取更新后的训练参数,基于更新后的训练参数继续对机器学习模型进行模型训练,直至满足训练结束条件时结束训练。采用本方法能够提高模型训练的效率。
Description
技术领域
本申请涉及人工智能技术领域,特别是涉及一种机器学习模型的分布式训练方法、装置以及计算机设备。
背景技术
随着计算机技术的发展,利用机器学习进行数据处理变得越来越普遍。机器学习的过程,通常是指计算机设备构建初始模型,将样本数据输入至初始模型中,通过一系列算法对输入的样本数据进行分析,并通过迭代训练来更新初始模型的模型参数,得到最终合适的模型。
由于机器学习模型在训练过程中需要对大量的样本数据进行特征学习,为了提高学习效率,传统方案中通过会采用多个工作节点来承担训练任务量。传统方法中,通常是根据样本数据在工作节点中执行一次的训练并得到参数梯度,然后将一次训练的参数梯度发送至参数节点,以在参数节点中执行训练参数的更新,并最终得到训练好的模型。
但是随着训练数据越来越庞大,工作节点与参数节点之间的通信交互次数越来越多,参数节点的网卡流量也会成规模增大,使得训练参数更新的效率低,进而导致模型训练的效率低。
发明内容
基于此,有必要针对上述模型训练效率低的技术问题,提供一种能够提高模型训练效率的机器学习模型的分布式训练方法、装置以及计算机设备。
一种机器学习模型的分布式训练方法,应用于分布式节点集群中的工作节点,方法包括:
获取多于一组的训练样本,并根据机器学习模型当前的训练参数对每组训练样本分别进行处理,得到对应的参数梯度;
基于与各组训练样本分别对应的参数梯度,确定当次的局部梯度;
将当次的局部梯度传输至参数节点;传输的局部梯度用于指示参数节点基于分布式节点集群中各工作节点当次分别传输的局部梯度确定当次的全局梯度,并根据当次的全局梯度更新训练参数;
从参数节点处获取更新后的训练参数,并基于更新后的训练参数继续对机器学习模型进行模型训练,直至满足训练结束条件时结束训练。
一种机器学习模型的分布式训练装置,装置包括:
获取模块,用于获取多于一组的训练样本,并根据机器学习模型当前的训练参数对每组训练样本分别进行处理,得到对应的参数梯度;
第一确定模块,用于基于与各组训练样本分别对应的参数梯度,确定当次的局部梯度;
传输模块,用于将当次的局部梯度传输至参数节点;传输的局部梯度用于指示参数节点基于分布式节点集群中各工作节点当次分别传输的局部梯度确定当次的全局梯度,并根据当次的全局梯度更新训练参数;
训练模块,用于从参数节点处获取更新后的训练参数,并基于更新后的训练参数继续对机器学习模型进行模型训练,直至满足训练结束条件时结束训练。
一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现以下步骤:
获取多于一组的训练样本,并根据机器学习模型当前的训练参数对每组训练样本分别进行处理,得到对应的参数梯度;
基于与各组训练样本分别对应的参数梯度,确定当次的局部梯度;
将当次的局部梯度传输至参数节点;传输的局部梯度用于指示参数节点基于分布式节点集群中各工作节点当次分别传输的局部梯度确定当次的全局梯度,并根据当次的全局梯度更新训练参数;
从参数节点处获取更新后的训练参数,并基于更新后的训练参数继续对机器学习模型进行模型训练,直至满足训练结束条件时结束训练。
一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取多于一组的训练样本,并根据机器学习模型当前的训练参数对每组训练样本分别进行处理,得到对应的参数梯度;
基于与各组训练样本分别对应的参数梯度,确定当次的局部梯度;
将当次的局部梯度传输至参数节点;传输的局部梯度用于指示参数节点基于分布式节点集群中各工作节点当次分别传输的局部梯度确定当次的全局梯度,并根据当次的全局梯度更新训练参数;
从参数节点处获取更新后的训练参数,并基于更新后的训练参数继续对机器学习模型进行模型训练,直至满足训练结束条件时结束训练。
上述机器学习模型的分布式训练方法,在每次训练周期内,分布式节点集群中的工作节点获取多于一组的训练样本,并根据机器学习模型当前的训练参数对每组训练样本分别进行处理,得到每一组训练样本对应的参数梯度。在工作节点中根据多组训练样本训练机器学习模型的过程中,不对训练参数进行更新,而是利用同一个训练参数执行参数梯度的计算,提高了参数梯度计算的准确性,并且工作节点还将每组训练样本对应的参数梯度进行存储,直至完成对所有组的训练样本的训练,工作节点根据各组训练样本分别对应的参数梯度,确定当次的局部梯度,并将当次的局部梯度传输至参数节点。使得在工作节点中利用本地资源执行多次模型训练迭代后才与参数节点通信交互一次,减少了不同节点之间的通信频次。并且,在当次的训练周期内,参数节点可基于分布式节点集群中各工作节点当次分别传输的局部梯度确定当次的全局梯度,并根据当次的全局梯度更新训练参数。工作节点可从参数节点处获取更新后的训练参数,并基于更新后的训练参数继续下一个训练周期所对应的模型训练,直至满足训练结束条件时结束训练。在机器学习模型的分布式训练过程中,在各工作节点中获取到多组的训练样本对应的参数梯度后,才执行将参数梯度传输至参数节点,减少了工作节点与参数节点之间的交互次数,有效降低机器学习模型训练过程中的出入流量,提高了对机器学习模型的训练效率。
一种机器学习模型的分布式训练方法,应用于参数节点,方法包括:
在当次训练周期内,接收分布式节点集群中的各工作节点分别传输的局部梯度;每个局部梯度均通过相应的工作节点根据机器学习模型当前的训练参数,对多于一组的训练样本中的每组训练样本分别进行处理所得到的参数梯度而确定;
基于分布式节点集群中各工作节点当次分别传输的局部梯度,确定当次的全局梯度;
根据当次的全局梯度更新训练参数;更新的训练参数用于传输至分布式节点集群中的各工作节点,以触发各工作节点基于更新后的训练参数继续对机器学习模型进行模型训练,直至满足训练结束条件时结束训练。
一种机器学习模型的分布式训练装置,装置包括:
接收模块,用于在当次训练周期内,接收分布式节点集群中的各工作节点分别传输的局部梯度;每个局部梯度均通过相应的工作节点根据机器学习模型当前的训练参数,对多于一组的训练样本中的每组训练样本分别进行处理所得到的参数梯度而确定;
第二确定模块,用于基于分布式节点集群中各工作节点当次分别传输的局部梯度,确定当次的全局梯度;
更新模块,用于根据当次的全局梯度更新训练参数;更新的训练参数用于传输至分布式节点集群中的各工作节点,以触发各工作节点基于更新后的训练参数继续对机器学习模型进行模型训练,直至满足训练结束条件时结束训练。
一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现以下步骤:
在当次训练周期内,接收分布式节点集群中的各工作节点分别传输的局部梯度;每个局部梯度均通过相应的工作节点根据机器学习模型当前的训练参数,对多于一组的训练样本中的每组训练样本分别进行处理所得到的参数梯度而确定;
基于分布式节点集群中各工作节点当次分别传输的局部梯度,确定当次的全局梯度;
根据当次的全局梯度更新训练参数;更新的训练参数用于传输至分布式节点集群中的各工作节点,以触发各工作节点基于更新后的训练参数继续对机器学习模型进行模型训练,直至满足训练结束条件时结束训练。
一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
在当次训练周期内,接收分布式节点集群中的各工作节点分别传输的局部梯度;每个局部梯度均通过相应的工作节点根据机器学习模型当前的训练参数,对多于一组的训练样本中的每组训练样本分别进行处理所得到的参数梯度而确定;
基于分布式节点集群中各工作节点当次分别传输的局部梯度,确定当次的全局梯度;
根据当次的全局梯度更新训练参数;更新的训练参数用于传输至分布式节点集群中的各工作节点,以触发各工作节点基于更新后的训练参数继续对机器学习模型进行模型训练,直至满足训练结束条件时结束训练。
上述机器学习模型的分布式训练方法,在当次训练周期内,分布式节点集群中的参数节点接收分布式节点集群中的各工作节点分别传输的局部梯度。其中,每个局部梯度均通过相应的工作节点根据机器学习模型当前的训练参数,对多于一组的训练样本中的每组训练样本分别进行处理所得到的参数梯度而确定。在当次的训练周期内利用同一个训练参数对多组的训练样本执行模型训练,提高了参数梯度计算的准确性,并且工作节点与参数节点之间的每一次数据交互过程都包括多组训练样本对应的参数梯度值,也减少了不同节点之间的交互次数,进而提高了模型训练的效率。参数节点基于分布式节点集群中各工作节点当次分别传输的局部梯度,确定当次的全局梯度。使得参数节点在接收到所有的工作节点传送的局部梯度后,才执行一次的全局梯度计算过程,减少了参数节点的计算频率。然后参数节点根据当次的全局梯度更新训练参数,更新的训练参数用于传输至分布式节点集群中的各工作节点,以触发各工作节点基于更新后的训练参数继续对机器学习模型进行模型训练,直至满足训练结束条件时结束训练。使得工作节点尽可能利用本地资源执行多次模型迭代训练,以及在参数节点中接收到所有的工作节点发送的局部梯度后,才执行确定全局梯度并对训练参数的更新步骤。减少了工作节点与参数节点之间的通信交互次数,有效降低机器的出入流量,提高了机器模型的训练效率。
附图说明
图1为一个实施例中机器学习模型的分布式训练方法的应用环境图;
图2为一个实施例提供的一种机器学习模型的分布式训练方法的流程示意图;
图3为一个实施例中提供的一种同步分布式机器学习模型训练方式中的不同节点之间的数据传输示意图;
图4为另一个实施例中提供的一种基于同步分布式机器学习模型训练方式的在不同节点之间的数据流向示意图;
图5为一个实施例中提供的一种在工作节点中执行一次以及多次模型训练后与参数节点的交互示意图;
图6为一个实施例中提供的一种基于异步分布式机器学习模型中的不同节点之间的数据流向示意图;
图7为一个实施例中提供的一种机器学习模型的分布式训练方法的流程示意图;
图8为一个实施例中提供的一种机器学习模型的分布式训练方法的整体执行流程图;
图9为一个实施例中提供的一种在worker节点中训练一次就与ps节点通信的流量展示图;
图10为一个实施例中提供的一种在worker节点中迭代N次后再与ps节点通信的流量展示图;
图11为一个实施例中提供的一种机器学习模型的分布式训练装置的结构框图;
图12为另一个实施例中提供的一种机器学习模型的分布式训练装置的结构框图;
图13为一个实施例中提供的计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
需要说明的是,分布式训练是由多个独立的节点并行训练的过程,具体的,分布式训练中的分布式训练集群可以是包括一个或者多个参数节点和多个工作节点的参数服务器架构(Parameter Server Architecture),在本申请中对分布式训练集群的架构形式不做具体限定。在每个工作节点中采用不同的训练样本对训练模型进行单独训练计算参数梯度,并将参数梯度传输至参数服务器架构中的一个或者多个的参数节点。
本申请提供机器学习模型的分布式训练方法可以应用于任意具有图形处理器(Graphics Processing Unit,GPU)的数据处理设备,该数据处理设备可以是终端,包括个人计算机(Personal Computer,PC)、小型机、中型机、大型机、工作站等,当然该数据处理设备也可以是服务器。需要说明的是,该数据处理设备在用于训练机器学习模型的分布式训练方法时可以是独立的,也可以集群形式存在。
本申请提供的机器学习模型的分布式训练方法可以以计算机程序的形式存储于数据处理设备,数据处理设备通过运行计算机程序实现本申请的机器学习模型的分布式训练方法。上述计算机程序可以是独立的计算机程序,也可以是集成于其他计算机程序之上的功能模块、插件或者小程序等。
分布式训练集群中的多个独立的节点可以是在一个机器中或者在不同的机器中执行模型训练的。根据执行工作类型的不同,可以将分布式训练集群中的节点划分为两种不同功能的节点,如工作节点和参数节点。工作节点是在模型训练过程中执行训练样本的读取并执行正反向(正向传播和反向传播)计算并得到参数梯度的节点。具体地,工作节点中输入的数据是训练样本,输出数据是机器学习模型的参数梯度。参数节点是将机器学习模型训练过程中的训练参数存在自身进程,并收集工作节点产出的参数梯度,以及对训练参数做变量值更新的节点。具体地,参数节点中的输入数据是工作节点输出的参数梯度,输出的数据是根据参数梯度执行参数更新得到的更新后的训练参数。
还需要说明的是,本申请涉及人工智能(Artificial Intelligence, AI)领域,人工智能是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
本申请具体涉及人工智能领域中的机器学习(Machine Learning, ML)技术,机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。
在本申请提供的一个实施例中,参见图1,图1为一个实施例中机器学习模型的分布式训练方法的应用环境图。图1中提供的分布式训练集群120以参数服务器架构(Parameter Server Architecture)为例进行说明,分布式训练集群120包括多个参数节点组成的参数节点子集群,参数节点子集群中包括参数节点a、参数节点b、及参数节点c等。可以理解,上述参数节点的数量仅为示意性说明,不用于限定本申请的应用场景。以及上述参数节点具体可以分布在同一个计算机设备上,也可以分布在不同的计算机设备上。分布式训练集群120中还包括多个工作节点组成的工作节点子集群,工作节点子集群中包括工作节点a、工作节点b、工作节点c、工作节点d、工作节点e、工作节点f、工作节点g、工作节点h、及工作节点i等。可以理解,上述工作节点的数量仅为示意性说明,不用于限定本申请的应用场景。以及上述工作节点具体可以分布在同一个计算机设备上,也可以分布在不同的计算机设备上。其中,每个工作节点和每个参数节点都有待训练的机器学习模型及其在本地的训练参数。以及每个工作节点根据不同的训练样本分别计算参数梯度,并将参数梯度传递回参数节点。并且参数节点接收到工作节点子集群中所有的工作节点分别传递的参数梯度时,执行对训练参数的更新,以使得各工作节点根据更新后的训练参数执行下一轮次的机器学习模型训练。并且,每个参数节点以及每个工作节点都对应一个计算机设备,并在计算机设备中执行数据处理。以及,工作节点子集群中的各工作节点还可以与终端110通讯连接,如各工作节点可以从终端110中获取训练样本。可以理解的是,本申请中的参数节点以及工作节点的数量可以根据具体的场景设置,不局限于图1中的参数节点以及工作节点的数量。
可以理解,工作节点和参数节点分别可以通过部署在一个或多个计算机设备上的程序或服务来实现,具体可以是用于实现相应类型功能的进程,也称Job。比如,工作节点具体可以是工作进程,参数节点具体可以是参数进程。在一些其他的场景中,工作节点和参数节点也可以通过单独的服务器来实现,比如工作节点也可称作工作服务器;参数节点也可称作参数服务器。
需要说明的是,上述计算机设备具体可以是服务器,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
在一个实施例中,如图2所示,提供了一种机器学习模型的分布式训练方法的流程示意图,以该方法应用于分布式节点集群中的工作节点(比如图1中各工作节点中的任意一个工作节点)为例进行说明,该机器学习模型的分布式训练方法包括以下步骤:
步骤S202,获取多于一组的训练样本,并根据机器学习模型当前的训练参数对每组训练样本分别进行处理,得到对应的参数梯度。
其中,训练样本是分配至工作节点中待处理的数据。工作节点在执行机器学习模型训练的过程中对训练样本进行数据处理可以得到对应的参数梯度。需要说明的是,训练样本中的样本条数具体可以是一个,也可以是多于一个。在常规的应用场景中,为提高设备处理效率,常常会通过机器学习模型同时处理一个批次的训练样本。当训练样本中包括多于一个的样本条数时,样本条数的数量具体可以是2的n次方的数字,比如训练样本中包括1024或者512条样本条数。可以理解的是,在不同的机器学习模型训练场景中,训练样本中的样本条数的数据量可以是相同或者不同的,在此不做具体的限定。
具体的,分布式节点集群中的每个工作节点都独立的具有一个相同结构机器学习模型。在执行机器学习模型训练时,每个工作节点从分配至自身的训练子集中依次或同时读取多于一组的训练样本,并且基于当前的训练参数对各组的训练样本分别进行处理得到与相应训练样本对应的参数梯度。其中,当前的训练参数是机器学习模型执行当次训练时对应的参数,并且,在不同次序的机器学习模型的训练过程中,对应的训练参数的数值是不同的。
需要说明的是,本申请实施例中提及的一次训练周期,是工作节点处理多于一组的训练样本后,得到对应的局部梯度所对应的周期。在每次训练周期内,机器学习模型的训练参数是保持不变的,随着训练周期的递增,机器学习模型的训练参数也会不断进行更新。
参数梯度用于表征模型参数的变化方向。在深度学习的模型优化中,可以使用梯度下降的方法计算梯度,从而根据梯度找到最小的损失值,以此来调整模型的参数,加快模型的收敛。可以理解,在每个工作节点中用训练样本对待训练模型进行单独训练计算参数梯度的方法有很多,如随机梯度下降法、批量梯度下降法、或小批量梯度下降法等,在本申请中不对训练模型在计算参数梯度时采用的算法做限定。
具体地,分布式节点集群中包括多个工作节点,并且不同的工作节点在执行机器学习模型训练之前,首先获取各自对应的训练样本,并根据各自获取到的训练样本分别执行机器学习模型的训练。可以理解,不同的工作节点对应的训练样本的数据内容是不同的,但是不同工作节点中的训练样本对应的数据量大小可以是相同或者不同的,本申请实施例在此不做限制。并且,一个工作节点可对应多组的训练样本,并且工作节点可根据每一组训练样本分别执行一次的机器学习模型训练。
具体地,对于每一个工作节点而言,工作节点获取多于一组的训练样本,并将多于一组的训练样本分别输入至机器学习模型中,机器学习模型根据当前的训练参数分别对多于一组的训练样本进行处理,得到每组训练样本分别对应的参数梯度。并且,每组训练样本对应的参数梯度可以是相同的也可以是不同的。
在一个实施例中,工作节点首先获取一组训练样本,并在机器学习模型中根据当前的训练参数计算该组的训练样本对应的参数梯度,然后工作节点再获取另一组训练样本,并在机器学习模型中根据当前的训练参数继续计算另一组训练样本对应的参数梯度,直至计算得到的参数梯度的数据量达到预设数量时,停止根据当前的训练参数计算参数梯度的步骤。需要说明的是,不同的工作节点之间可以基于同一个的训练参数同步执行机器学习模型的训练步骤。
步骤S204,基于与各组训练样本分别对应的参数梯度,确定当次的局部梯度。
其中,局部梯度是分布式节点集群中的一个工作节点在当次模型训练过程中对预设数量组的训练样本进行处理所得到的梯度值。可以理解,不同的工作节点对应的局部梯度可以是不同的;基于不同的训练参数执行机器学习模型的训练,得到的局部梯度也可以是是不同的。以及,基于同一个训练参数,分布式节点集群中的不同的工作节点对应的局部梯度可以是不同的,也可以是相同的。
具体的,每一个工作节点均可以将各组训练样本对应的参数梯度共同作为局部梯度,从而一起传输至参数节点,以进行下一步的计算。还可以是,在工作节点中对各组训练样本的参数梯度进行求和得到总参数梯度,然后将总参数梯度作为局部梯度。或者还可以是,在工作节点中对各组训练样本的参数梯度求平均值,将平均值作为局部梯度等。本申请实施例在此不作限制。
步骤S206,将当次的局部梯度传输至参数节点。传输的局部梯度用于指示参数节点基于分布式节点集群中各工作节点当次分别传输的局部梯度确定当次的全局梯度,并根据当次的全局梯度更新训练参数。
其中,全局梯度是分布式节点集群中的参数节点所确定的。并且全局梯度是参数节点根据获取到所有的工作节点在当次训练周期的局部梯度确定的,也就是说,全局梯度是一次训练周期内的机器学习模型训练所对应的数值。
具体地,在各工作节点中,得到各组训练样本对应的参数梯度后,工作节点还可以将各自对应的局部梯度传输至参数节点。如各工作节点将各自在当前训练周期所对应的局部梯度发送至参数节点,或者各工作节点在计算各组训练样本对应的局部梯度后,各工作节点向参数节点发送指令,以使得参数节点可以从各工作节点中主动拉取局部梯度等,在此不作限定。并且,当参数节点获取到所有的工作节点在当次训练周期的局部梯度时,参数节点根据各工作节点的局部梯度确定全局梯度,并根据全局梯度执行对当前的训练参数的更新。可以理解,根据全局梯度执行对当前的训练参数的更新的算法可以包括但不限于梯度下降算法。
在一个实施例中,在分布式节点集群中,工作节点的数量多于一个,并且参数节点的数量可以为一个或者多于一个,在此不做限定。在一个实施例中,当分布式节点集群中的参数节点的数量为一个时,各工作节点将各组训练样本的参数梯度传输至同一个参数节点中。当分布式节点集群中的参数节点的数量为多于一个时,各工作节点将各组训练样本的参数梯度可以传输至不同的参数节点中,如各工作节点可以将不同的训练参数对应的参数梯度轮询传输至不同的参数节点中,直至将所有训练参数的参数梯度传输至参数节点。
具体的,机器学习模型中的训练参数中可包括多于一个的模型参数,局部梯度中可包括各模型参数对应的参数局部梯度。在一个实施例中,当分布式节点集群中包括多个参数节点以及训练参数中可包括多于一个的模型参数时,工作节点根据参数节点的数量将各模型参数对应的参数局部梯度轮询发送至各参数节点中。具体的,工作节点可以按照轮询算法将各模型参数的参数局部梯度轮询发送至各参数节点中。如工作节点依次从局部梯度中读取一个模型参数对应的参数局部梯度,并将参数局部梯度轮询发送至每一个参数节点,直至将所有的局部梯度发送至参数节点。假设一共有10个模型参数,有5个参数节点,那么按照轮询算法可以将模型参数1以及模型参数6发送至参数节点1中,将模型参数2以及模型参数7发送至参数节点2中,将模型参数3以及模型参数8发送至参数节点3中,将模型参数4以及模型参数9发送至参数节点4中,将模型参数5以及模型参数10发送至参数节点5中。以使得各参数节点根据获取到的参数局部梯度执行对应模型参数的更新。
步骤S208,从参数节点处获取更新后的训练参数,并基于更新后的训练参数继续对机器学习模型进行模型训练,直至满足训练结束条件时结束训练。
具体地,参数节点根据全局梯度对训练参数进行更新,得到新的训练参数后,分布式节点集群中的各工作节点分别从参数节点中获取更新后的训练参数,并将更新后的训练参数作为当前的训练参数继续执行对机器学习模型的训练,并且直至满足训练条件时结束训练。
在一个实施例中,分布式节点集群中的各工作节点可以分别从参数节点中主动拉取更新后的训练参数,并根据更新后的训练参数继续执行对机器学习模型的训练。也可以是参数节点将更新后的训练参数发送至各个工作节点,以使得各工作节点根据更新后的训练参数继续执行对机器学习模型的训练。在本申请中不做限制。
在一个实施例中,从参数节点处获取更新后的训练参数,并基于更新后的训练参数继续对机器学习模型进行模型训练,直至满足训练结束条件时结束训练,包括:从参数节点处获取更新后的训练参数,并将更新后的训练参数作为下一个训练周期中当前的训练参数,返回步骤S202中的获取多于一组的训练样本,并根据机器学习模型当前的训练参数对每组训练样本分别进行处理,得到对应的参数梯度的步骤并继续执行,直至满足训练停止条件时停止训练。
其中,训练停止条件是停止模型训练的条件,具体可以是在各工作节点中完成对所有的训练样本的处理,或者机器学习模型的训练精度达到了预设精度,还或者是达到预设迭代次数等。在一个实施例中,工作节点从参数节点处获取更新后的训练参数,并将更新后的训练参数作为下一个训练周期中当前的训练参数,然后继续从训练子集中获取预设数量组的训练样本,开始下一个训练周期的训练,这样不断地迭代训练,也就是不断的重复执行步骤S202至步骤S208,直至满足训练结束条件时结束训练,得到训练好的机器学习模型。
图3为一个实施例中提供的一种同步分布式机器学习模型训练方式中的不同节点之间的数据传输示意图。图4为另一个实施例中提供的一种基于同步分布式机器学习模型训练方式的在不同节点之间的数据流向示意图。如图3以及图4所示,在传统的同步分布式训练过程中,工作节点(worker节点)根据一组训练样本在机器学习模型(model)中训练一次得到梯度参数△g,并将一次模型训练对应的梯度参数△g传输至参数节点(ps节点)。参数节点根据获取到的参数梯度对当前的训练参数v(变量)进行更新,并且更新完成后,工作节点从参数节点中拷贝更新后的训练参数v,并根据更新后的训练参数v开启对下一组的训练样本的模型训练过程。可见,在传统方案中,在工作节点中每执行一组训练样本的模型训练,就与参数节点通信一次,并且参数节点根据每一个训练样本的参数梯度就执行一次的训练参数更新,并与工作节点通信一次。使得在模型训练过程中,不同节点之间的交互十分频繁,并且随着worker节点数量的增多,ps的网卡流量也会成规模增大,集群的可拓展性不高。
然而,在本申请中,工作节点(worker节点)根据多组训练样本在机器学习模型(model)中迭代训练多次得到梯度参数△g,并且当工作节点得到的梯度参数△g的数量达到预设数量时,将梯度参数△g传输至参数节点(ps节点)。参数节点在获取到所有的工作节点传输的参数梯度后,对所有的参数梯度做平均计算得到参数梯度平均值,并将参数梯度平均值作为全局梯度,并根据全局梯度对当前的训练参数v(变量)进行更新,并且更新完成后,参数节点通知所有的工作节点,以使得每个工作节点从参数节点中拷贝更新后的训练参数v,并根据更新后的训练参数v开启新一轮的迭代模型训练过程。在本申请中,在工作节点中利用本地资源对多组的训练参数执行多次的模型迭代训练后,再与参数节点通信一次,大大减少了不同节点之间的通信次数。并且在工作节点中对多组训练样本执行模型训练的过程中,是利用同一个训练参数执行的,故而也提高了模型训练的准确率。以及在参数节点中获取到所有的工作节点传输的参数梯度后,再执行一次的训练参数的更新,并与工作节点通信一次,也大大减少了与工作节点之间的通信次数,大大提高了模型训练的效率。
在一个实施例中,如图5所示,图5为一个实施例中提供的一种在工作节点中执行一次以及多次模型训练后与参数节点的交互示意图。具体的,图5中的上半部分图示意出了一种每在worker节点中执行一次模型训练就与ps节点通信一次。图 5中的下半部分图示意出了一种在worker节点中执行多次模型训练才与ps节点通信一次。
在一个具体的应用场景中,如在广告应用场景中,分布式训练可用于广告点击率以及广告转化率模型的训练。具体的,在训练好的模型中,输入的训练样本可以由两类特征组成,如广告的属性特征和用户的属性特征,输出为用户点击广告的概率值。
上述机器学习模型的分布式训练方法,在每次训练周期内,分布式节点集群中的工作节点获取多于一组的训练样本,并根据机器学习模型当前的训练参数对每组训练样本分别进行处理,得到每一组训练样本对应的参数梯度。在工作节点中根据多组训练样本训练机器学习模型的过程中,不对训练参数进行更新,而是利用同一个训练参数执行参数梯度的计算,提高了参数梯度计算的准确性,并且工作节点还将每组训练样本对应的参数梯度进行存储,直至完成对所有组的训练样本的训练,工作节点根据各组训练样本分别对应的参数梯度,确定当次的局部梯度,并将当次的局部梯度传输至参数节点。使得在工作节点中利用本地资源执行多次模型训练迭代后才与参数节点通信交互一次,减少了不同节点之间的通信频次。并且,在当次的训练周期内,参数节点可基于分布式节点集群中各工作节点当次分别传输的局部梯度确定当次的全局梯度,并根据当次的全局梯度更新训练参数。工作节点可从参数节点处获取更新后的训练参数,并基于更新后的训练参数继续下一个训练周期所对应的模型训练,直至满足训练结束条件时结束训练。在机器学习模型的分布式训练过程中,在各工作节点中获取到多组的训练样本对应的参数梯度后,才执行将参数梯度传输至参数节点,减少了工作节点与参数节点之间的交互次数,有效降低机器学习模型训练过程中的出入流量,提高了对机器学习模型的训练效率。
在一个实施例中,获取多于一组的训练样本,包括:获取从训练集中划分出的、且对应分配至工作节点的训练子集。分布式节点集群中的各工作节点分别对应分配的训练子集共同构成训练集;从训练子集中获取预设数量组的训练样本;预设数量大于一。
其中,训练集是用于对机器学习模型进行训练的数据集。可以理解,一般情况下,训练集的数据量越大训练得到的机器学习模型的精度越高。训练子集是从训练集中划分出来的数据子集,并且不同的训练子集对应分配至分布式节点集群中的不同工作节点中,以使得各工作节点根据分配到的训练子集执行机器学习模型的分布式训练。可以理解,在具体实施中计算机设备可以将训练集中的数据均匀或者非均匀的划分为不同的训练子集,并且相应地,将大小相同或者不同的训练子集分配至不同的工作节点中。
训练子集是对训练集进行分片处理得到的,训练子集中包括多于一个的数据文件。具体地,计算机设备可依次从训练集中读取一个数据文件,并将数据文件轮询分配至每一个工作节点中,直至将所有的训练数据都分配至工作节点中,完成对训练集的分片处理以及对训练集的分配。
计算机设备可以将训练集均匀划分为多个训练子集,并且训练子集的数量与分布式节点集群中的工作节点的数量保持一致,以将各训练子集均匀分配至不同的工作节点中。或者,计算机设备也可以将训练集划分为不同数据量大小的多个训练子集,并将不同大小的多个训练子集分别分配至不同的工作节点中。
举例说明,训练集包括有100个数据文件,并且分布式节点集群中包括有5个工作节点,那么计算机设备可以将训练集均匀划分为5个不同的训练子集,并且每个训练子集中包括独立的20个数据文件,此时就实现了对训练集的均匀划分以及均匀分配。又比如训练集包括有10个数据文件,并且分布式节点集群包括有3个工作节点,那么此时就不能实现对训练集的均匀划分以及均匀分配,示意性地,计算机设备可以按照4:3:3的比例对训练集进行非均匀划分,得到3个数据量大小不一致的训练子集。
进而,计算机设备可以按照轮询算法将训练集中的数据分配至不同的工作节点中。比如有10个数据文件以及3个工作节点,在第一次序轮询时,可以将序号为1、2、3数据文件分配至工作节点1、2、3中,在第二次序轮询时,可以将序号为4、5、6数据文件再次分配至工作节点1、2、3中,接着在第三次序轮询时,可以将序号为7、8、9数据文件再次分配至工作节点1、2、3中,在最后一次序轮询时,将序号为10的数据文件分配到工作节点1、2、3中的任意一个。
在实际应用时,本申请提供的机器学习模型的分布式训练方法可以但不限于应用于如图1所示的应用环境中。如图1所示,计算机设备具有多个GPU,每个GPU上至少可以运行一个工作节点,为了方便描述,将上述工作节点记作工作节点1至N,其中,N为大于1的正整数。在进行训练时,计算机设备获取训练集,并将训练集划分为多组的训练子集,其中训练子集中包括多组用于机器学习模型训练的训练样本,然后将上述多组的训练子集分别对应分配至工作节点1至N,使得工作节点1至N基于不同的训练样本并行训练同一机器学习模型。
在上述实施例中,通过将训练集划分为多个训练子集,并利用分布式节点集群中的多个工作节点并行利用不同的训练子集执行机器学习模型的训练,分摊了计算机的压力,使得对大数据量的训练集的训练成为了可能。并且不同的工作节点并行执行模型的训练,也提高了模型训练的效率。以及利用较大数据量的训练集执行机器学习模型的训练也提高了模型训练的精度。
在一个实施例中,从训练子集中获取预设数量组的训练样本,包括:依次从训练子集中读取当次训练周期内待处理的训练样本。根据机器学习模型当前的训练参数对每组训练样本分别进行处理,得到对应的参数梯度,包括:在当次训练周期内,对于每次读取的训练样本,分别根据机器学习模型当前的训练参数对读取的训练样本进行处理,得到对应的参数梯度;当得到的参数梯度的数量达到预设数量时,停止当次训练周期内对训练样本的读取。
其中,训练样本是机器学习模型在训练过程中待进行输入和处理的样本数据。一个训练子集中可包括多组的训练样本,以及一组的训练样本可单独用于执行一次的机器学习模型的处理,并基于机器学习模型的输出确定一个参数梯度。
具体的,各工作节点依次从训练子集中获取预设数量组的训练样本,根据机器学习模型当前的训练参数对每组训练样本分别进行处理,得到对应的参数梯度,当参数梯度的数量达到预设迭代数量时,停止当次训练周期内从训练子集中提取训练样本并执行机器学习模型训练的步骤。
在一个实施例中,对于分布式节点集群中的每一个工作节点,均可以依次从对应的训练子集中提取当次训练周期内待处理的一组训练样本,直至提取出预设数量组的训练样本。并且,在当次训练周期内,对于每次读取的训练样本,工作节点可分别根据机器学习模型当前的训练参数对读取的该组的训练样本进行处理,得到该组的训练样本对应的参数梯度。然后工作节点继续从训练子集中提取另一组的训练样本,并执行计算参数梯度的步骤,直至当得到的参数梯度的数量达到预设数量时,停止当次训练周期内对训练样本的读取。
在一个实施例中,工作节点从训练子集中读取一组训练样本,根据当前的训练参数对训练样本执行机器学习模型训练,得到该组的训练样本对应的参数梯度,并将参数梯度存储至梯度累加器。然后继续从训练子集中读取另一组训练样本,并继续根据当前的训练参数对另一组的训练样本执行机器学习模型训练,得到新的参数梯度,将新的参数梯度继续添加至梯度累加器。当梯度累加器中的参数梯度的数量达到预设数量时,停止当次训练周期内从训练子集中提取训练样本的步骤。
上述实施例中,工作节点中的迭代次数未到预设数量之前,不执行根据参数梯度更新工作节点中的训练模型的训练参数的步骤,而是将每次迭代得到的参数梯度存在梯度累计器中。并且,当梯度累加器中的参数梯度数量达到预设数量时,才与参数节点通信,并执行一次的训练参数的更新步骤,减少了参数节与工作节点之间的额通信次数,提高了模型的训练效率。
在一个实施例中,基于与各组训练样本分别对应的参数梯度,确定当次的局部梯度,包括:根据与多于一组的训练样本分别对应的参数梯度,确定当次训练周期所对应的局部梯度和;根据局部梯度和与训练样本所对应的第一数量计算第一平均梯度;将第一平均梯度作为当次训练周期所对应的局部梯度。
具体地,工作节点中利用每组训练样本执行机器学习模型训练的过程中,对于每一组的训练样本都会得到一个参数梯度,并将每次得到的参数梯度都存储至梯度累加器中。并且在工作节点中获取N组(N为大于1的正整数)的训练样本并执行N次的机器学习模型训练时,就会得到N个参数梯度,并将N个参数梯度都存储至梯度累加器中。当梯度累加器中的参数梯度数量达到N时,在梯度累加器中执行计算N个参数梯度的梯度均值,得到当次训练周期所对应的局部梯度和,根据局部梯度和与训练样本所对应的第一数量计算第一平均梯度。并将第一平均梯度作为当次训练周期所对应的局部梯度。进一步地,工作节点将局部梯度发送至参数节点,以在参数节点中执行对当前的训练参数的更新。可以理解,N值是一个可以根据实际的应用场景自适应设置的数值。
其中梯度累加器为一个容器,用于接收一定数目的数值,并且当接收到的数值达到预设值N时,执行计算所有数值的平均值的步骤。具体的,提取梯度累加器可以对外提供take和apply两个接口,take表示将数值存放在该梯度累加器,apply表示从梯度累加器取当前存放的参数梯度数值的平均值。需要说明的是,在本申请中不限于是通过梯度累加器存放参数梯度并执行平均参数梯度的计算。
上述实施例中,在工作节点中对多个参数梯度进行求均值得到局部梯度。并只将局部梯度传输至参数节点,而不是将所有的参数梯度传输至参数节点,减少了不同节点之间通信过程中数据交互量,提高了计算机的运行效率。
在一个实施例中,当梯度累加器中的参数梯度的数量达到迭代数量时,根据各参数梯度确定第一平均参数梯度;将第一平均参数梯度发送至参数节点,以指示参数节点根据第一平均参数梯度确定模型更新参数。
具体的,机器学习模型中的训练参数中包括多于一个的模型参数,参数梯度中包括各模型参数对应的梯度值。根据各参数梯度确定第一平均参数梯度,包括:从各参数梯度中提取每个模型参数的梯度值,并根据各梯度值计算总梯度值,然后根据总梯度值与训练样本对应的数量计算各模型参数的模型参数平均梯度值,并将各模型参数的模型参数平均梯度值发送至参数节点。
具体的,当参数节点对应为多个时,工作节点根据参数节点的数量将各模型参数平均梯度值轮询发送至各参数节点中。具体的,工作节点可以按照轮询算法将各模型参数平均梯度值轮询发送至各参数节点中。在一个实施例中,工作节点依次从第一平均梯度中读取一个模型参数对应的模型参数平均梯度值,并将模型参数平均梯度值轮询发送至每一个参数节点,直至将所有的第一变量平均梯度值发送至参数节点。如假设一共有10个模型参数,有5个参数节点,那么按照轮询算法可以将模型参数1以及模型参数6发送至参数节点1中,将模型参数2以及模型参数7发送至参数节点2中,将模型参数3以及模型参数8发送至参数节点3中,将模型参数4以及模型参数9发送至参数节点4中,将模型参数5以及模型参数10发送至参数节点5中。
图6为一个实施例中提供的一种将worker节点中的多个模型参数传输至ps节点中的示意图。在图6中,包括多个worker节点,分别为worker节点_1、worker节点_1以及worker节点_m,不同的worker节点独立地执行模型训练。具体的,在worker节点中依次基于N组的训练样本执行N次的迭代训练,得到N组的参数梯度,并在worker节点中对每一个模型参数求均值,得到每个模型参数对应的模型参数平均梯度值。并将所有模型参数的模型参数平均梯度值发送至不同的ps节点,如可以将不同的参数模型分别发送至ps节点_1、ps节点_1以及ps节点_k中。
上述实施例中,在工作节点中利用每组训练样本执行机器学习模型训练的过程中,都会得到一个参数梯度,并将每次得到的参数梯度都存储至梯度累加器中。当在工作节点中执行N次的机器学习模型训练时,就会得到N个参数梯度,并将N个参数梯度都存储至梯度累加器中。当梯度累加器中的参数梯度数量达到N时,执行计算N个参数梯度的第一平均参数梯度,并将第一平均参数梯度发送至参数节点,以在参数节点中执行训练参数的更新。在保证较大的训练样本的基础上,在工作节点中循环迭代多次的模型训练后才与参数节点交互一次,减少了工作节点与参数节点之间的交互次数,提高了对机器学习模型的训练效率。
在一个实施例中,根据机器学习模型当前的训练参数对每组训练样本分别进行处理,得到对应的参数梯度,包括:根据机器学习模型当前的训练参数对每组训练样本分别进行模型处理,得到与各组训练样本分别对应的预测结果;获取与各组训练样本分别对应的参考结果;根据参考结果和预测结果确定目标损失值;根据目标损失值确定与各组训练样本分别对应的参数梯度。
其中,预测结果是机器学习模型根据当前的训练参数对训练样本执行数据处理得到的结果。参考结果是训练样本对应的真实结果。并且不同的训练参数对应的预测结果是不同的,故而可以根据不同的训练结果与真实结果之间的差值,调整训练参数,以使得训练参数对应的预测结果与真实结果之间的差值最小。
在一个实施例中,对于每一个训练样本,在机器学习模型中利用当前的训练参数对训练样本进行处理,得到训练样本中每个样本条对应的预测结果,计算所有样本条的预测结果之和得到训练样本对应的目标损失值。根据所述目标损失值确定与各组所述训练样本分别对应的参数梯度。
上述实施例中,根据预测结果与参考结果确定目标损失值,并根据目标损失值确定参数梯度,进而根据得到的参数梯度执行对训练参数的更新,提高了对训练参数更新的效率以及准确率。
在一个实施例中,从参数节点处获取更新后的训练参数,包括:当将当次的局部梯度传输至参数节点后,轮询访问同步队列;当从同步队列中访问到参数令牌时,基于参数令牌从参数节点处获取更新后的训练参数;其中,参数令牌是通过分布式节点集群中的主工作节点,在接收到参数节点发送的表示训练参数更新完成的指令后,存储至同步队列中的。
其中,同步队列是一个缓存队列,用于存放参数令牌。参数令牌是获取更新后的训练参数的凭据,具体可以用于表征权限信息,如参数令牌可以是一个标识码等,在此不作限制。
具体的,分布式节点集群中的工作节点根据功能还可以进一步地分为主工作节点以及非主工作节点。具体的,可以预先对工作节点进行编号,如可以将工作节点分别编号工作节点0、工作节点1、工作节点2、工作节点3等,并将工作节点0作为主工作节点,其他的工作节点作为非主工作节点。其中,主工作节点以及非主工作节点皆可以执行机器学习模型的训练,进一步地,主工作节点还可以在接收到参数节点发送的表示训练参数更新完成的指令时,将预设数量的参数令牌写入同步队列中。其中,预设数量可以为分布式节点集群中的工作节点(主工作节点以及非主工作节点)的数量,预设数量也可以为分布式节点集群中的非工作节点的数量,在此不作限制。
进一步地,当非主工作节点将局部梯度传输至参数节点后,非主工作节点还用于轮询访问同步队列,当非主工作节点从同步队列中访问到参数令牌时,基于参数令牌从参数节点处获取更新后的训练参数,并将更新后的训练参数作为当前的训练参数继续执行新一轮的模型训练。
在一个具体的实施例中,对于一次的机器学习模型训练,每个工作节点将第一平均梯度传输至对应的参数节点后,存储至参数节点中的参数累加器中,当参数累加器中收集到的第一平均梯度的数目与工作节点的数目一致时,参数节点向主工作节点发送表示训练参数更新完成的指令。主工作节点将参数累加器中存储的所有的第一平均梯度再次求均值得到第二平均梯度,并根据第二平均梯度计算新的训练参数,将新的训练参数作为全局变量。当参数节点完成对训练参数的更新时,主工作节点往同步队列中写入n–1个token(n-1是非主工作节点的数量)。非主工作节点将第一平均梯度传输至参数节点后,轮询访问同步队列,并且当成功从同步队列中访问到token时,说明训练参数更新完毕,非主工作节点从同步队列取出一个token后,根据取出的token从参数节点中拉取更新后的全局变量,并利用全局变量对本地变量(训练参数)进行更新,并开启新一轮的N步迭代。
上述实施例中,按照各工作节点执行的任务不同,将工作节点分为主工作节点与非主工作节点。并且主工作节点通过与参数节点之间的信息交互,实现了连接工作节点与参数节点之间的信息桥梁,提高了信息交互的效率。并且,还可以利用参数令牌从同步队列中提取更新后的训练参数,更是提高了信息交互过程的安全性。
在一个实施例中,机器学习模型包括点击率预测模型,方法还包括预测目标用户是否点击目标推广信息的步骤,该步骤具体包括:获取训练好的点击率预测模型;获取与目标用户、以及目标推广信息相关的待处理数据;通过训练好的点击率预测模型对待处理数据进行处理,输出预测点击率;预测点击率用于表征目标用户点击目标推广信息的概率。
其中,目标用户是待预测的用户,目标用户相关的待处理数据可以是目标用户的用户属性数据或用户行为数据等。目标推广信息可以是某一个广告信息或者商品信息等。预测点击率具体可以是一个概率值,用于表征目标用户点击目标推广信息的概率。该预测点击率具体可以是二值概率,比如当预测目标用户点击目标推广信息时,此时对应的概率值为1,当预测目标用户未点击目标推广信息,此时对应的概率值为0。或者,该预测点击率具体还可以是0到1范围内的任意一个概率值,并且概率值越大对应为目标用户点击目标推广信息的可能性越大。
点击率预测模型是用于预测目标用户对目标推广信息的点击率。具体的,计算机设备可以预先获取与目标用户以及目标推广信息相关的待处理数据,然后将待处理数据输入至预先训练好的点击率预测模型中,以根据点击率预测模型中预先训练得到的模型参数对待处理数据进行处理,得到表征目标用户点击目标推广信息的预测点击率。
上述实施例中,当机器学习模型为点击率预测模型时,还可以利用训练好的点击率预测模型预测目标用户对目标推广信息的点击概率。由于点击率预测模型是根据大量的训练集训练得到的,模型的预测精度很高,故而利用点击率预测模型预测得到的目标用户对目标推广信息的点击概率的准确度也很高。
在一个实施例中,获取与目标用户、以及目标推广信息相关的待处理数据,包括:获取与目标用户对应的用户属性数据和用户行为数据。获取与目标推广信息对应的推广内容和推广属性数据。根据用户属性数据、用户行为数据、推广内容、以及推广属性数据中的至少一种,确定输入特征。通过训练好的点击率预测模型对待处理数据进行处理,输出预测点击率,包括:将输入特征输入至训练好的点击率预测模型,通过训练好的点击率预测模型对输入特征进行处理,输出预测点击率。
其中,输入特征是对待处理数据进行特征提取得到的特征数据。计算机设备可获取与目标用户对应的用户属性数据和用户行为数据,并且获取与目标推广信息对应的推广内容和推广属性数据。其中,用户属性数据是与目标用户相关的属性数据,具体可以是用户姓名、性别、年龄、和所在城市等信息中的至少一种,用户行为数据是与目标用户的网络行为相关的数据,具体可以包括目标用户的历史点击行为等。目标推广信息对应的推广内容具体可以为广告标题或广告内容等,推广属性数据可以包括目标推广信息的所属的题材、类型、或来源平台等数据。
计算机设备可对用户属性数据、用户行为数据、推广内容、以及推广属性数据按照预设的编码规则,转换成相应的特征向量。进而基于用户属性数据、用户行为数据、推广内容、以及推广属性数据中的至少一种所对应的特征向量进行拼接处理,以得到输入特征。然后计算机设备可将输入特征输入至训练好的点击率预测模型,通过训练好的点击率预测模型对输入特征进行处理,输出预测点击率。可以理解,预测点击率可用于对广告转化率的预估,比如对于某一个目标对象,预估目标对象是否会点击目标广告,或者预估该目标对象点击目标广告的概率,以及预估目标对象是否会产生下单等行为等。
在一个实施例中,用户在网络上的操作数据可以以曝光日志记录的形式记录下来,并将曝光日志记录以及用户对目标推广信息的点击操作作为训练样本进行机器学习模型的训练。可以理解,训练样本可以为曝光日志记录,曝光日志记录中包括广告素材、广告ID以及广告标题等,进一步地,曝光日志记录中还可以包括用户个人特征信息(用户在网上授权公开的信息)等。
上述实施例中,利用点击率预测模型预测目标用户对目标推广信息的点击概率时,对输入的待处理数据进行数据处理得到输入特征,然后利用点击率预测模型对输入特征进行处理得到预测点击率。由于输出特征是从待处理数据中提取到的特征数据,故而输入特征不仅代表了待处理数据,并且相比于待处理数据,输入特征的数据量更小,进而提高了利用点击率预测模型预测目标用户对目标推广信息的点击概率的预测效率。
在一个实施例中,如图7所示,图7为一个实施例中提供的一种机器学习模型的分布式训练方法的流程示意图,以该方法应用于分布式节点集群中的参数节点为例进行说明,具体地,该方法包括:
步骤S702,在当次训练周期内,接收分布式节点集群中的各工作节点分别传输的局部梯度。每个局部梯度均通过相应的工作节点根据机器学习模型当前的训练参数,对多于一组的训练样本中的每组训练样本分别进行处理所得到的参数梯度而确定。
其中,局部梯度是分布式节点集群中的一个工作节点在当次模型训练过程中对预设数量组的训练样本进行处理所得到的梯度值。可以理解局部梯度可以是多组训练样本的参数梯度的平均值,或者局部梯度还可以是多组训练样本的参数梯度的之和,或者局部梯度还可以是多组训练样本的参数梯度本身,再次不做限定。
关于各工作节点如何计算得到参数梯度,并根据参数梯度确定局部梯度的相关内容,可参考前述实施例中步骤S202-S206的相关说明。
步骤S704,基于分布式节点集群中各工作节点当次分别传输的局部梯度,确定当次的全局梯度。
参数节点接收分布式节点集群中的每一个工作节点在当次的训练周期得到的局部梯度,并根据所有的工作节点传输的局部梯度确定当次训练周期内的全局梯度。其中全局梯度可以是所有工作节点的局部梯度之和,还可以是所有工作节点的局部梯度的平均值,在此不作限制。
步骤S706,根据当次的全局梯度更新训练参数;更新的训练参数用于传输至分布式节点集群中的各工作节点,以触发各工作节点基于更新后的训练参数继续对机器学习模型进行模型训练,直至满足训练结束条件时结束训练。
其中,全局梯度是根据所有的工作节点传输的局部梯度确定的,并且局部梯度又是各工作节点分别对多组的训练样本执行模型训练后得到的多个参数梯度确定的。可以理解,若工作节点为n个,每个工作节点传输一次局部梯度的迭代训练次数为N,那么计算得到的全局梯度对应的训练样本数量为n*N。
具体的,参数节点接收工作节点发送的局部梯度,根据各局部梯度确定全局梯度,并根据全局梯度确定更新的训练参数,以指示各工作节点根据更新后的训练参数继续执行模型下一轮次的模型训练。在工作节点中执行机器学习模型训练过程中,首先在工作节点中对N组的训练样本分别迭代处理,得到N个参数梯度,再将N个参数梯度对应的局部梯度发送至参数节点。并且当参数节点接收到所有的工作节点发送的局部梯度后,才根据局部梯度确定全局梯度。
其中,关于各个工作节点基于更新后的训练参数继续对机器学习模型进行模型训练的相关内容,可参考前述实施例中步骤S208的相关说明。
上述机器学习模型的分布式训练方法,在当次训练周期内,分布式节点集群中的参数节点接收分布式节点集群中的各工作节点分别传输的局部梯度。其中,每个局部梯度均通过相应的工作节点根据机器学习模型当前的训练参数,对多于一组的训练样本中的每组训练样本分别进行处理所得到的参数梯度而确定。在当次的训练周期内利用同一个训练参数对多组的训练样本执行模型训练,提高了参数梯度计算的准确性,并且工作节点与参数节点之间的每一次数据交互过程都包括多组训练样本对应的参数梯度值,也减少了不同节点之间的交互次数,进而提高了模型训练的效率。参数节点基于分布式节点集群中各工作节点当次分别传输的局部梯度,确定当次的全局梯度。使得参数节点在接收到所有的工作节点传送的局部梯度后,才执行一次的全局梯度计算过程,减少了参数节点的计算频率。然后参数节点根据当次的全局梯度更新训练参数,更新的训练参数用于传输至分布式节点集群中的各工作节点,以触发各工作节点基于更新后的训练参数继续对机器学习模型进行模型训练,直至满足训练结束条件时结束训练。使得工作节点尽可能利用本地资源执行多次模型迭代训练,以及在参数节点中接收到所有的工作节点发送的局部梯度后,才执行确定全局梯度并对训练参数的更新步骤。减少了工作节点与参数节点之间的通信交互次数,有效降低机器的出入流量,提高了机器模型的训练效率。
在一个实施例中,基于分布式节点集群中各工作节点当次分别传输的局部梯度,确定当次的全局梯度,包括:根据当次训练周期内,与分布式节点集群中各工作节点分别对应的局部梯度,确定当次训练周期所对应的全局梯度和;根据全局梯度和与工作节点所对应的第二数量计算第二平均梯度;将第二平均梯度作为当次训练周期所对应的全局梯度。
具体的,在当次训练周期内,参数节点将分布式节点集群中各工作节点传输的局部梯度存储至参数累加器。并且当参数累加器中的局部梯度的数量达到工作节点的数量时,在参数节点中根据所有的局部梯度之和确定全局梯度和,并根据全局梯度和与工作节点所对应的第二数量计算第二平均梯度。将第二平均梯度作为当次训练周期所对应的全局梯度。
上述实施例中,参数节点每接收到一个工作节点发送的局部梯度后,在参数累加器中执行一次累加,直至接收到所有工作节点发送的局部梯度后,在参数节点中计算全局梯度,并根据全局梯度执行一次训练参数的更新。减少了训练参数更新的次数,以及不同节点之间的通信次数,节约了计算机资源,提高了模型训练的效率。
在一个实施例中,根据当次的全局梯度更新训练参数,包括:获取当次训练周期内所述当前的训练参数以及模型学习率;根据模型学习率以及当次的全局梯度,对当前的训练参数进行更新,得到更新后的训练参数。
学习率是机器学习模型中设定的固定学习速率。可以理解,在具体的机器学习迭代过程中可以动态调整学习率的数值,比如前1万次迭代为0.001,接下来1万次迭代时设置为0.0001,在此不做限定。
具体的,可以利用梯度下降法对训练参数进行更新。在一个实施例中,参数节点获取当次的训练参数以及当次训练周期内当前的训练对应的模型学习率。根据模型学习率以及当次的全局梯度,对当前的训练参数进行更新,得到更新后的训练参数。需要说明的是,本申请中对根据当次的全局梯度更新训练参数的具体实现方式还可以是其他对梯度下降法改进的方法,在此不做限定。
如图8所示,图8提供了一种机器学习模型的分布式训练方法的整体执行流程图。具体的,包括:
步骤S802,worker节点计算每组训练样本对应的参数梯度,并且计算得到的参数梯度不更新至当前的训练参数中,而是将参数梯度存储至本地的梯度累加器中。
步骤S803,判断worker节点中是否已经对N组的训练样本执行了模型训练(执行了N步迭代)。若判断worker节点中已经对N组的训练样本执行了模型训练(执行了N步迭代),转至步骤S804,否则转至步骤S802,继续在worker节点中计算训练样本对应的参数梯度,直至执行了N步迭代为止在执行计算第一平均参数梯度的步骤。
步骤S804,若判断worker节点中已经对N组的训练样本执行了模型训练(执行了N步迭代),worker节点对N步迭代对应的参数梯度做平均运算得到第一平均参数梯度。
步骤S805,worker节点将本地的第一平均参数梯度传输至参数节点(ps节点)的参数累加器中。
步骤S806,判断ps节点中的参数累加器中是否已经收集了所有worker节点传输的参数梯度。若判断ps节点中的参数累加器中已经收集了所有worker节点传输的参数梯度,转至步骤S808。否则若判断ps节点中的参数累加器中未收集到所有worker节点传输的参数梯度,则转至步骤S807,继续在ps节点中等待接收所有的worker节点传送的第一平均参数梯度,直至接收到所有的worker节点传输的参数梯度,执行训练参数更新步骤。
步骤S808,判断当前worker节点是否为chief worker节点(主工作节点)。若判断当前worker节点为chief worker节点,转至步骤S808,否则,若判断当前worker节点为非主worker节点,非主worker节点将第一平均参数梯度传输至ps节点后,访问同步队列是否非空,当非主worker节点成功从同步队列中访问到数据时,同步队列弹出一个token,非主worker节点根据token从全局变量中提取更新后的训练参数,并根据更新后的训练参数继续执行新一轮的模型训练。
步骤S808,在ps节点中根据所有的worker节点传输的第一平均参数梯度更新训练参数。
步骤S810,ps节点向同步队列中填充比worker节点数量少1的token(参数令牌)。
步骤S811,ps节点根据全局变量更新训练参数。
本申请提供的一种机器学习模型的分布式训练方法,可以是一种同步分布式训练的算法。具体的,在工作节点中利用累加器进行多次的迭代并累加,当迭代累加的次数达到预设次数时,执行将多次迭代训练得到的局部梯度传输至参数节点。以及在参数节点中对所有工作节点发送的局部梯度再次利用累加器进行累加,当接收到所有工作节点发送的局部梯度后,才执行对训练参数的更新步骤。使得在一次的训练参数更新过程中,分别在工作节点以及参数节点中构造了累加器,分别用于在工作节点以及参数节点中对参数梯度的聚合,能够在每次迭代过程中有效地降低机器使用带宽,提高训练速度。
并且,本申请提出的一种机器学习模型的分布式训练方法可以应用在机器学习、深度学习等领域。算法通过使用两层累加器对参数梯度做两次平均,再将平均后的梯度更新至变量上。这种做法可以有效降低传统同步分布式训练过程中工作节点与参数节点之间的通信频率,避免了通信数据过大以导致不同节点之间无法及时通信而降低了模型训练的速度。
使用本文的方案能有效降低机器的出入流量。假设分布式训练集群在包括20个worker节点以及4个ps节点,如图9所示,图9提供了一种在worker节点中训练一次就与ps节点通信的流量展示图。在图9中,网卡带宽为1万兆,从图9中可以看出流量已冲顶。参考图10,图10为在worker节点中迭代N次(N为大于1的正整数)再与ps节点通信的流量展示图,其中图9与图8是同样硬件和集群配置,可以看出采用图10中的方法的单台ps节点的出流量约为图9中的1/5。也就是说,从图9以及图10中可以看出通过在worker节点中迭代N次后,再与ps节点通信,能够使得模型的训练速度大幅度提高。并且通过本申请中的方法执行模型训练除了不再受到网卡流量约束外,并且迭代次数N还具有可配置性,并且当N取较大数值时,能使得worker节点使用更多的本地计算资源,进一步减少worker节点和ps节点交互的IO通信时长,会使得模型的训练速度更快。
在一个具体的应用场景中,本方案可以应用于预测目标用户点击目标推广信息的概率值,在该具体应用场景中,首先由分布式节点集群中的工作节点以及参数节点配合完成对点击率预测模型的训练,然后再根据训练好的点击率预测模型预测目标用户点击目标推广信息的概率值。
具体的,以分布式节点集群中的工作节点为worker进程,以及参数节点为ps进程为例进行说明。点击率预测模型的训练内容具体包括:首先构造双层累加器,双层累加器分别用于在worker进程和ps进程执行参数梯度的聚合,以及设置一个可配置的数字N(N为大于1的正整数)。worker进程基于同一个训练参数执行机器学习模型训练的过程中,在对训练样本的迭代次数未到N次之前,将每次迭代的参数梯度存在worker进程对应的累计器上,同时不需要根据参数梯度队更新训练参数。当worker进程中的迭代次数达到N次后,worker进程从对应的累加器中取出之前累积的N个参数梯度的平均梯度,并将该平均梯度返回给ps进程。ps进程用一个accumulator累加器存储所有worker进程返回的平均梯度,当存储的平均梯度的数量和worker进程的数量一致的时候,ps进程从自身的accumulator累加器中得到每个worker进程返回的平均梯度,并再次计算平均梯度的平均值,并根据再次计算得到的平均值更新训练参数。ps进程完成对训练参数的更新后,worker进程从ps进程中拷贝更新后的训练参数,并对worker节点中当前的训练参数执行更新。worker进程根据更新后的训练参数继续开启新一轮的N步迭代训练过程,直至达到训练结束条件时停止对机器学习模型的训练,得到点击率预测模型。
在实际应用场景中,根据训练好的点击率预测模型预测目标用户点击目标推广信息的概率值的具体内容包括:将与目标用户、以及目标推广信息相关的待处理数据,输入至训练好的点击率预测模型中,通过点击率预测模型对待处理数据进行处理,输出用于表征目标用户点击目标推广信息的概率。
需要说明的是,本申请中的机器学习模型的分布式训练方法还可以应用于其他的应用场景中。如可以应用于对图像分类的应用场景中,此时对应的训练样本可以为不同类别的图像数据,或者还可以应用于文本识别的应用场景中,此时对应的训练样本可以为文本类型的数据等,在本申请中不做限制。
应该理解的是,虽然图2、图7、及图8的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、图7、及图8中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
如图11所示,在一个实施例中,提供了一种机器学习模型的分布式训练装置1100,包括:获取模块1101、第一确定模块1102、传输模块1103和训练模块1104。
获取模块1101,用于获取多于一组的训练样本,并根据机器学习模型当前的训练参数对每组训练样本分别进行处理,得到对应的参数梯度。
第一确定模块1102,用于基于与各组训练样本分别对应的参数梯度,确定当次的局部梯度。
传输模块1103,用于将当次的局部梯度传输至参数节点;传输的局部梯度用于指示参数节点基于分布式节点集群中各工作节点当次分别传输的局部梯度确定当次的全局梯度,并根据当次的全局梯度更新训练参数。
训练模块1104,用于从参数节点处获取更新后的训练参数,并基于更新后的训练参数继续对机器学习模型进行模型训练,直至满足训练结束条件时结束训练。
在一个实施例中,获取模块1101还用于获取从训练集中划分出的、且对应分配至工作节点的训练子集;分布式节点集群中的各工作节点分别对应分配的训练子集共同构成训练集;从训练子集中获取预设数量组的训练样本;预设数量大于一。
在一个实施例中,获取模块1101还用于依次从训练子集中读取当次训练周期内待处理的训练样本。在当次训练周期内,对于每次读取的训练样本,分别根据机器学习模型当前的训练参数对读取的训练样本进行处理,得到对应的参数梯度;当得到的参数梯度的数量达到预设数量时,停止当次训练周期内对训练样本的读取。
在一个实施例中,获取模块1101还用于根据机器学习模型当前的训练参数对每组训练样本分别进行模型处理,得到与各组训练样本分别对应的预测结果;获取与各组训练样本分别对应的参考结果;根据参考结果和预测结果确定目标损失值;根据目标损失值确定与各组训练样本分别对应的参数梯度。
在一个实施例中,第一确定模块1102还用于根据与多于一组的训练样本分别对应的参数梯度,确定当次训练周期所对应的局部梯度和;根据局部梯度和与训练样本所对应的第一数量计算第一平均梯度;将第一平均梯度作为当次训练周期所对应的局部梯度。
在一个实施例中,训练模块1104还用于当将当次的局部梯度传输至参数节点后,轮询访问同步队列;当从同步队列中访问到参数令牌时,基于参数令牌从参数节点处获取更新后的训练参数;其中,参数令牌是通过分布式节点集群中的主工作节点,在接收到参数节点发送的表示训练参数更新完成的指令后,存储至同步队列中的。
在一个实施例中,训练模块1104还用于从参数节点处获取更新后的训练参数,并将更新后的训练参数作为下一个训练周期中当前的训练参数,返回获取多于一组的训练样本,并根据机器学习模型当前的训练参数对每组训练样本分别进行处理,得到对应的参数梯度的步骤并继续执行,直至满足训练停止条件时停止训练。
在一个实施例中,机器学习模型的分布式训练装置1100还包括预测模块1205,在一个实施例中,获取训练好的点击率预测模型;获取与目标用户、以及目标推广信息相关的待处理数据;通过训练好的点击率预测模型对待处理数据进行处理,输出预测点击率;预测点击率用于表征目标用户点击目标推广信息的概率。
在一个实施例中,预测模块1105还用于获取与目标用户对应的用户属性数据和用户行为数据;获取与目标推广信息对应的推广内容和推广属性数据;根据用户属性数据、用户行为数据、推广内容、以及推广属性数据中的至少一种,确定输入特征;将输入特征输入至训练好的点击率预测模型,通过训练好的点击率预测模型对输入特征进行处理,输出预测点击率。
上述机器学习模型的分布式训练装置,在每次训练周期内,分布式节点集群中的工作节点获取多于一组的训练样本,并根据机器学习模型当前的训练参数对每组训练样本分别进行处理,得到每一组训练样本对应的参数梯度。在工作节点中根据多组训练样本训练机器学习模型的过程中,不对训练参数进行更新,而是利用同一个训练参数执行参数梯度的计算,提高了参数梯度计算的准确性,并且工作节点还将每组训练样本对应的参数梯度进行存储,直至完成对所有组的训练样本的训练,工作节点根据各组训练样本分别对应的参数梯度,确定当次的局部梯度,并将当次的局部梯度传输至参数节点。使得在工作节点中利用本地资源执行多次模型训练迭代后才与参数节点通信交互一次,减少了不同节点之间的通信频次。并且,在当次的训练周期内,参数节点可基于分布式节点集群中各工作节点当次分别传输的局部梯度确定当次的全局梯度,并根据当次的全局梯度更新训练参数。工作节点可从参数节点处获取更新后的训练参数,并基于更新后的训练参数继续下一个训练周期所对应的模型训练,直至满足训练结束条件时结束训练。在机器学习模型的分布式训练过程中,在各工作节点中获取到多组的训练样本对应的参数梯度后,才执行将参数梯度传输至参数节点,减少了工作节点与参数节点之间的交互次数,有效降低机器学习模型训练过程中的出入流量,提高了对机器学习模型的训练效率。
如图12所示,在一个实施例中,提供了一种机器学习模型的分布式训练装置1200,包括:接收模块1201、第二确定模块1202和更新模块1203。
接收模块1201,用于在当次训练周期内,接收分布式节点集群中的各工作节点分别传输的局部梯度;每个局部梯度均通过相应的工作节点根据机器学习模型当前的训练参数,对多于一组的训练样本中的每组训练样本分别进行处理所得到的参数梯度而确定。
第二确定模块1202,用于基于分布式节点集群中各工作节点当次分别传输的局部梯度,确定当次的全局梯度。
更新模块1203,用于根据当次的全局梯度更新训练参数;更新的训练参数用于传输至分布式节点集群中的各工作节点,以触发各工作节点基于更新后的训练参数继续对机器学习模型进行模型训练,直至满足训练结束条件时结束训练。
在一个实施例中,第二确定模块1202还用于根据当次训练周期内,与分布式节点集群中各工作节点分别对应的局部梯度,确定当次训练周期所对应的全局梯度和;根据全局梯度和与工作节点所对应的第二数量计算第二平均梯度;将第二平均梯度作为当次训练周期所对应的全局梯度。
在一个实施例中,更新模块1203还用于获取当次训练周期内所述当前的训练参数以及模型学习率;根据模型学习率以及当次的全局梯度,对当前的训练参数进行更新,得到更新后的训练参数。
上述机器学习模型的分布式训练装置,在当次训练周期内,分布式节点集群中的参数节点接收分布式节点集群中的各工作节点分别传输的局部梯度。其中,每个局部梯度均通过相应的工作节点根据机器学习模型当前的训练参数,对多于一组的训练样本中的每组训练样本分别进行处理所得到的参数梯度而确定。在当次的训练周期内利用同一个训练参数对多组的训练样本执行模型训练,提高了参数梯度计算的准确性,并且工作节点与参数节点之间的每一次数据交互过程都包括多组训练样本对应的参数梯度值,也减少了不同节点之间的交互次数,进而提高了模型训练的效率。参数节点基于分布式节点集群中各工作节点当次分别传输的局部梯度,确定当次的全局梯度。使得参数节点在接收到所有的工作节点传送的局部梯度后,才执行一次的全局梯度计算过程,减少了参数节点的计算频率。然后参数节点根据当次的全局梯度更新训练参数,更新的训练参数用于传输至分布式节点集群中的各工作节点,以触发各工作节点基于更新后的训练参数继续对机器学习模型进行模型训练,直至满足训练结束条件时结束训练。使得工作节点尽可能利用本地资源执行多次模型迭代训练,以及在参数节点中接收到所有的工作节点发送的局部梯度后,才执行确定全局梯度并对训练参数的更新步骤。减少了工作节点与参数节点之间的通信交互次数,有效降低机器的出入流量,提高了机器模型的训练效率。
关于机器学习模型的分布式训练装置的具体限定可以参见上文中对于机器学习模型的分布式训练方法的限定,在此不再赘述。上述机器学习模型的分布式训练装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器或终端,其内部结构图可以如图13所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储训练样本相关的数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种机器学习模型的分布式训练方法。
本领域技术人员可以理解,图13中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (18)
1.一种机器学习模型的分布式训练方法,其特征在于,应用于分布式节点集群中的工作节点,所述方法包括:
获取与工作节点对应的训练子集,所述训练子集中包括预设数量组的训练样本,所述训练子集是将训练集中的数据进行划分并按照轮询方式分配至每一个所述工作节点中的;所述训练样本是通过曝光日志记录的用户在网络上的操作数据以及用户对推广信息的点击操作确定的;
依次从所述训练子集中提取当次训练周期内待处理的一组训练样本,并根据机器学习模型当前的训练参数对每组训练样本分别进行处理,得到每组训练样本分别对应的参数梯度,并将每组训练样本对应的所述参数梯度存储至梯度累加器,当得到的所述梯度累加器中存储的所述参数梯度的数量达到所述预设数量时,停止当次训练周期内从所述训练子集中提取所述训练样本并执行机器学习模型训练的步骤;所述梯度累加器为一个容器,用于接收一定数目的数值,当接收到的数值达到预设值时,执行计算所有数值的平均值的步骤;
基于所述梯度累加器中存储的与各组所述训练样本分别对应的参数梯度,确定当次的局部梯度;
将所述当次的局部梯度轮询传输至每一个参数节点;传输的所述局部梯度用于指示所述参数节点将所述局部梯度存储至参数累加器中,并基于所述参数累加器中存储的分布式节点集群中各工作节点当次分别传输的局部梯度,确定当次的全局梯度,并根据当次的全局梯度更新所述训练参数;所述参数累加器用于在收集到的局部梯度的数目与工作节点的数目一致时,触发参数节点向编号信息对应为主工作节点的节点发送表示训练参数更新完成的指令;
工作节点将当次的所述局部梯度传输至所述参数节点后,轮询访问缓存同步队列是否为空,当从所述缓存同步队列中访问到参数令牌时,从所述缓存同步队列中弹出一个参数令牌,编号信息对应为非主工作节点的节点基于所述参数令牌从所述参数节点处获取更新后的训练参数;其中,所述参数令牌是通过所述分布式节点集群中的主工作节点,在接收到参数节点发送的表示训练参数更新完成的指令后,存储至所述同步队列中的,所述参数令牌的数量与所述非主工作节点的数量一致,所述参数令牌是获取更新后的所述训练参数的凭据,所述参数令牌用于表征所述非主工作节点的权限信息;
基于更新后的训练参数继续对所述机器学习模型进行模型训练,直至满足训练结束条件时结束训练,得到训练好的机器学习模型,所述机器学习模型包括点击率预测模型;
获取与目标用户对应的用户属性数据和用户行为数据,获取与目标推广信息对应的推广内容和推广属性数据;
对所述用户属性数据、所述用户行为数据、所述推广内容、以及所述推广属性数据按照预设编码规则转换成相应的特征向量,并对转换得到的特征向量中的至少一种进行拼接处理,得到输入特征;
将所述输入特征输入至训练好的点击率预测模型,通过所述训练好的点击率预测模型对所述输入特征进行处理,输出所述目标用户点击所述目标推广信息的预测点击率。
2.根据权利要求1所述的方法,其特征在于,所述获取与工作节点对应的训练子集,所述训练子集中包括预设数量组的训练样本,包括:
获取从训练集中划分出的、且对应分配至所述工作节点的训练子集;所述分布式节点集群中的各工作节点分别对应分配的训练子集共同构成所述训练集;
从所述训练子集中获取预设数量组的训练样本;所述预设数量大于一。
3.根据权利要求1所述的方法,其特征在于,所述根据机器学习模型当前的训练参数对每组训练样本分别进行处理,得到每组训练样本分别对应的参数梯度,包括:
根据机器学习模型当前的训练参数对每组训练样本分别进行模型处理,得到与各组训练样本分别对应的预测结果;
获取与各组训练样本分别对应的参考结果;
根据所述参考结果和所述预测结果确定目标损失值;
根据所述目标损失值确定与各组所述训练样本分别对应的参数梯度。
4.根据权利要求1所述的方法,其特征在于,所述基于所述梯度累加器中存储的与各组所述训练样本分别对应的参数梯度,确定当次的局部梯度,包括:
根据所述梯度累加器中存储的与多于一组的训练样本分别对应的参数梯度,确定当次训练周期所对应的局部梯度和;
根据所述局部梯度和与所述训练样本所对应的第一数量计算第一平均梯度;
将所述第一平均梯度作为当次训练周期所对应的局部梯度。
5.根据权利要求1所述的方法,其特征在于,所述基于更新后的训练参数继续对所述机器学习模型进行模型训练,直至满足训练结束条件时结束训练,包括:
将更新后的训练参数作为下一个训练周期中当前的训练参数,返回所述获取与工作节点对应的训练子集的步骤继续执行,直至满足训练停止条件时停止训练。
6.一种机器学习模型的分布式训练方法,应用于参数节点,其特征在于,所述方法包括:
在当次训练周期内,接收分布式节点集群中的各工作节点按照轮询方式分别传输的局部梯度,将所述局部梯度存储至参数累加器中;每个所述局部梯度均通过相应的工作节点获取与所述工作节点对应的训练子集,所述训练子集中包括预设数量组的训练样本;所述训练子集是将训练集中的数据进行划分并按照轮询方式分配至每一个所述工作节点中的;所述训练样本是通过曝光日志记录的用户在网络上的操作数据以及用户对推广信息的点击操作确定的依次从所述训练子集中提取当次训练周期内待处理的一组训练样本,并根据机器学习模型当前的训练参数,对预设数量组的训练样本中的每组训练样本分别进行处理所得到的参数梯度而确定,且所述参数梯度是存储至梯度累加器中的,且当得到的所述梯度累加器中存储的所述参数梯度的数量达到所述预设数量时,所述工作节点停止当次训练周期内从所述训练子集中提取所述训练样本并执行机器学习模型训练的步骤;所述梯度累加器为一个容器,用于接收一定数目的数值,当接收到的数值达到预设值时,执行计算所有数值的平均值的步骤;
基于所述参数累加器中存储的所述分布式节点集群中各工作节点当次分别传输的局部梯度,确定当次的全局梯度;
根据当次的全局梯度更新所述训练参数,所述参数累加器收集到的局部梯度的数目与工作节点的数目一致时,表示训练参数更新完成,当所述训练参数更新完成后向分布式节点集群中的编号信息对应为主工作节点的节点发送表示训练参数更新完成的指令,以使得所述主工作节点在接收到所述指令后将参数令牌存储至缓存同步队列中,以使各所述编号信息对应为非工作节点将当次的所述局部梯度传输至所述参数节点后,轮询访问缓存同步队列是否为空,当在轮训访问缓存同步队列时获取到所述参数令牌时,从所述缓存同步队列中弹出一个参数令牌,并触发各所述工作节点基于参数令牌从参数节点处获取更新后的训练参数,基于更新后的训练参数继续对所述机器学习模型进行模型训练,直至满足训练结束条件时结束训练,得到训练好的机器学习模型,所述机器学习模型包括点击率预测模型;其中,所述参数令牌的数量与非主工作节点的数量一致,所述参数令牌是获取更新后的所述训练参数的凭据,所述参数令牌用于表征所述非主工作节点的权限信息;
获取与目标用户对应的用户属性数据和用户行为数据,获取与目标推广信息对应的推广内容和推广属性数据;
对所述用户属性数据、所述用户行为数据、所述推广内容、以及所述推广属性数据按照预设编码规则转换成相应的特征向量,并对转换得到的特征向量中的至少一种进行拼接处理,得到输入特征;
将所述输入特征输入至训练好的点击率预测模型,通过所述训练好的点击率预测模型对所述输入特征进行处理,输出所述目标用户点击所述目标推广信息的预测点击率。
7.根据权利要求6所述的方法,其特征在于,所述基于所述参数累加器中存储的所述分布式节点集群中各工作节点当次分别传输的局部梯度,确定当次的全局梯度,包括:
根据当次训练周期内,基于所述参数累加器中存储的与分布式节点集群中各工作节点分别对应的局部梯度,确定当次训练周期所对应的全局梯度和;
根据所述全局梯度和与所述工作节点所对应的第二数量计算第二平均梯度;
将所述第二平均梯度作为当次训练周期所对应的全局梯度。
8.根据权利要求6或7所述的方法,其特征在于,所述根据当次的全局梯度更新所述训练参数,包括:
获取当次训练周期内所述当前的训练参数以及模型学习率;
根据所述模型学习率以及所述当次的全局梯度,对所述当前的训练参数进行更新,得到更新后的训练参数。
9.一种机器学习模型的分布式训练装置,其特征在于,应用于分布式节点集群中的工作节点,所述装置包括:
获取模块,用于获取与工作节点对应的训练子集,所述训练子集中包括预设数量组的训练样本,所述训练子集是将训练集中的数据进行划分并按照轮询方式分配至每一个所述工作节点中的;所述训练样本是通过曝光日志记录的用户在网络上的操作数据以及用户对推广信息的点击操作确定的;依次从所述训练子集中提取当次训练周期内待处理的一组训练样本,并根据机器学习模型当前的训练参数对每组训练样本分别进行处理,得到每组训练样本分别对应的参数梯度,并将每组训练样本对应的所述参数梯度存储至梯度累加器,当得到的所述梯度累加器中存储的所述参数梯度的数量达到所述预设数量时,停止当次训练周期内从所述训练子集中提取所述训练样本并执行机器学习模型训练的步骤;所述梯度累加器为一个容器,用于接收一定数目的数值,当接收到的数值达到预设值时,执行计算所有数值的平均值的步骤;
第一确定模块,用于基于所述梯度累加器中存储的与各组所述训练样本分别对应的参数梯度,确定当次的局部梯度;
传输模块,用于将所述当次的局部梯度轮询传输至每一个参数节点;传输的所述局部梯度用于指示所述参数节点将所述局部梯度存储至参数累加器中,并基于所述参数累加器中存储的分布式节点集群中各工作节点当次分别传输的局部梯度确定当次的全局梯度,并根据当次的全局梯度更新所述训练参数;所述参数累加器用于在收集到的局部梯度的数目与工作节点的数目一致时,触发参数节点向编号信息对应为主工作节点的节点发送表示训练参数更新完成的指令;
训练模块,用于工作节点将当次的所述局部梯度传输至所述参数节点后,轮询访问缓存同步队列是否为空,当从所述缓存同步队列中访问到参数令牌时,从所述缓存同步队列中弹出一个参数令牌,编号信息对应为非主工作节点的节点基于所述参数令牌从所述参数节点处获取更新后的训练参数;其中,所述参数令牌是通过所述分布式节点集群中的主工作节点,在接收到参数节点发送的表示训练参数更新完成的指令后,存储至所述同步队列中的,所述参数令牌的数量与所述非主工作节点的数量一致,所述参数令牌是获取更新后的所述训练参数的凭据,所述参数令牌用于表征所述非主工作节点的权限信息;基于更新后的训练参数继续对所述机器学习模型进行模型训练,直至满足训练结束条件时结束训练,得到训练好的机器学习模型,所述机器学习模型包括点击率预测模型;
数据获取模块,用于获取与目标用户对应的用户属性数据和用户行为数据,获取与目标推广信息对应的推广内容和推广属性数据;对所述用户属性数据、所述用户行为数据、所述推广内容、以及所述推广属性数据按照预设编码规则转换成相应的特征向量,并对转换得到的特征向量中的至少一种进行拼接处理,得到输入特征;
输出模块,用于将所述输入特征输入至训练好的点击率预测模型,通过所述训练好的点击率预测模型对所述输入特征进行处理,输出所述目标用户点击所述目标推广信息的预测点击率。
10.根据权利要求9所述的装置,其特征在于,所述获取模块还用于获取从训练集中划分出的、且对应分配至工作节点的训练子集;分布式节点集群中的各工作节点分别对应分配的训练子集共同构成训练集;从训练子集中获取预设数量组的训练样本;预设数量大于一。
11.根据权利要求9所述的装置,其特征在于,所述获取模块还用于根据机器学习模型当前的训练参数对每组训练样本分别进行模型处理,得到与各组训练样本分别对应的预测结果;获取与各组训练样本分别对应的参考结果;根据参考结果和预测结果确定目标损失值;根据目标损失值确定与各组训练样本分别对应的参数梯度。
12.根据权利要求9所述的装置,其特征在于,所述第一确定模块还用于根据与多于一组的训练样本分别对应的参数梯度,确定当次训练周期所对应的局部梯度和;根据局部梯度和与训练样本所对应的第一数量计算第一平均梯度;将第一平均梯度作为当次训练周期所对应的局部梯度。
13.根据权利要求9所述的装置,其特征在于,所述训练模块还用于从参数节点处获取更新后的训练参数,并将更新后的训练参数作为下一个训练周期中当前的训练参数,返回获取与工作节点对应的训练子集的步骤继续执行,直至满足训练停止条件时停止训练。
14.一种机器学习模型的分布式训练装置,应用于参数节点,其特征在于,所述装置包括:
接收模块,用于在当次训练周期内,接收分布式节点集群中的各工作节点按照轮询方式分别传输的局部梯度,将所述局部梯度存储至参数累加器中;每个所述局部梯度均通过相应的工作节点获取与所述工作节点对应的训练子集,所述训练子集中包括预设数量组的训练样本;所述训练子集是将训练集中的数据进行划分并按照轮询方式分配至每一个所述工作节点中的;所述训练样本是通过曝光日志记录的用户在网络上的操作数据以及用户对推广信息的点击操作确定的,依次从所述训练子集中提取当次训练周期内待处理的一组训练样本,并根据机器学习模型当前的训练参数,对预设数量组的训练样本中的每组训练样本分别进行处理所得到的参数梯度而确定,且所述参数梯度是存储至梯度累加器中的,且当得到的所述梯度累加器中存储的所述参数梯度的数量达到所述预设数量时,所述工作节点停止当次训练周期内从所述训练子集中提取所述训练样本并执行机器学习模型训练的步骤;所述梯度累加器为一个容器,用于接收一定数目的数值,当接收到的数值达到预设值时,执行计算所有数值的平均值的步骤;
第二确定模块,用于基于所述参数累加器中存储的所述分布式节点集群中各工作节点当次分别传输的局部梯度,确定当次的全局梯度;
更新模块,用于根据当次的全局梯度更新所述训练参数,所述参数累加器收集到的局部梯度的数目与工作节点的数目一致时,表示训练参数更新完成;当所述训练参数更新完成后向分布式节点集群中的编号信息对应为主工作节点的节点发送表示训练参数更新完成的指令,以使得所述主工作节点在接收到所述指令后将参数令牌存储至缓存同步队列中,以使各所述编号信息对应为非工作节点将当次的所述局部梯度传输至所述参数节点后,轮询访问缓存同步队列是否为空,当在轮训访问缓存同步队列时获取到所述参数令牌时,从所述缓存同步队列中弹出一个参数令牌,并触发各所述工作节点基于参数令牌从参数节点处获取更新后的训练参数,更新的所述训练参数用于传输至所述分布式节点集群中的各工作节点,以触发各所述工作节点基于更新后的训练参数继续对所述机器学习模型进行模型训练,直至满足训练结束条件时结束训练,得到训练好的机器学习模型,所述机器学习模型包括点击率预测模型;其中,所述参数令牌的数量与非主工作节点的数量一致,所述参数令牌是获取更新后的所述训练参数的凭据,所述参数令牌用于表征所述非主工作节点的权限信息;
获取与目标用户对应的用户属性数据和用户行为数据,获取与目标推广信息对应的推广内容和推广属性数据;
对所述用户属性数据、所述用户行为数据、所述推广内容、以及所述推广属性数据按照预设编码规则转换成相应的特征向量,并对转换得到的特征向量中的至少一种进行拼接处理,得到输入特征;
将所述输入特征输入至训练好的点击率预测模型,通过所述训练好的点击率预测模型对所述输入特征进行处理,输出所述目标用户点击所述目标推广信息的预测点击率。
15.根据权利要求14所述的装置,其特征在于,所述第二确定模块还用于根据当次训练周期内,与分布式节点集群中各工作节点分别对应的局部梯度,确定当次训练周期所对应的全局梯度和;根据全局梯度和与工作节点所对应的第二数量计算第二平均梯度;将第二平均梯度作为当次训练周期所对应的全局梯度。
16.根据权利要求14或15所述的装置,其特征在于,所述更新模块还用于获取当次训练周期内所述当前的训练参数以及模型学习率;根据模型学习率以及当次的全局梯度,对当前的训练参数进行更新,得到更新后的训练参数。
17.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8中任一项所述的方法的步骤。
18.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至8中任一项所述的方法的步骤。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010836317.4A CN111709533B (zh) | 2020-08-19 | 2020-08-19 | 机器学习模型的分布式训练方法、装置以及计算机设备 |
PCT/CN2021/106476 WO2022037337A1 (zh) | 2020-08-19 | 2021-07-15 | 机器学习模型的分布式训练方法、装置以及计算机设备 |
US17/887,702 US20220391771A1 (en) | 2020-08-19 | 2022-08-15 | Method, apparatus, and computer device and storage medium for distributed training of machine learning model |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010836317.4A CN111709533B (zh) | 2020-08-19 | 2020-08-19 | 机器学习模型的分布式训练方法、装置以及计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111709533A CN111709533A (zh) | 2020-09-25 |
CN111709533B true CN111709533B (zh) | 2021-03-30 |
Family
ID=72547097
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010836317.4A Active CN111709533B (zh) | 2020-08-19 | 2020-08-19 | 机器学习模型的分布式训练方法、装置以及计算机设备 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220391771A1 (zh) |
CN (1) | CN111709533B (zh) |
WO (1) | WO2022037337A1 (zh) |
Families Citing this family (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112235384B (zh) * | 2020-10-09 | 2023-10-31 | 腾讯科技(深圳)有限公司 | 分布式系统中的数据传输方法、装置、设备及存储介质 |
CN112288083A (zh) * | 2020-10-21 | 2021-01-29 | 周宇浩 | 一种神经网络分布式训练方法、装置、设备及存储介质 |
CN114449550B (zh) * | 2020-11-05 | 2024-10-18 | 中国电信股份有限公司 | 基站节能系统的参数优化方法和装置 |
CN114492723A (zh) * | 2020-11-13 | 2022-05-13 | 华为技术有限公司 | 神经网络模型的训练方法、图像处理方法及装置 |
CN112364819A (zh) * | 2020-11-27 | 2021-02-12 | 支付宝(杭州)信息技术有限公司 | 一种联合训练识别模型的方法和装置 |
CN114548356A (zh) * | 2020-11-27 | 2022-05-27 | 华为技术有限公司 | 一种机器学习方法、装置和系统 |
WO2022116095A1 (en) * | 2020-12-03 | 2022-06-09 | Nvidia Corporation | Distributed neural network training system |
CN112560936B (zh) * | 2020-12-11 | 2024-06-25 | 深圳市帮联科技有限公司 | 模型并行训练方法、装置、设备、存储介质和程序产品 |
CN112561077B (zh) * | 2020-12-14 | 2022-06-21 | 北京百度网讯科技有限公司 | 多任务模型的训练方法、装置及电子设备 |
CN112559007B (zh) * | 2020-12-14 | 2022-09-23 | 北京百度网讯科技有限公司 | 多任务模型的参数更新方法、装置及电子设备 |
CN112561078B (zh) * | 2020-12-18 | 2021-12-28 | 北京百度网讯科技有限公司 | 分布式的模型训练方法及相关装置 |
CA3143855A1 (en) * | 2020-12-30 | 2022-06-30 | Atb Financial | Systems and methods for federated learning on blockchain |
CN112395272B (zh) * | 2021-01-20 | 2021-07-13 | 鹏城实验室 | 通信算法数据库构建方法、分布式机器装置和存储介质 |
CN112836868A (zh) * | 2021-01-22 | 2021-05-25 | 支付宝(杭州)信息技术有限公司 | 一种链接预测模型的联合训练方法和装置 |
CN112799834B (zh) * | 2021-01-26 | 2024-05-07 | 北京迈格威科技有限公司 | 训练数据分发方法、装置、电子设备及存储介质 |
CN112882835B (zh) * | 2021-03-01 | 2022-12-06 | 润联软件系统(深圳)有限公司 | 一种机器节点并行处理方法、装置、计算机设备及存储介质 |
US20220300618A1 (en) * | 2021-03-16 | 2022-09-22 | Accenture Global Solutions Limited | Privacy preserving cooperative learning in untrusted environments |
CN113449459B (zh) * | 2021-04-09 | 2023-04-07 | 江西高创保安服务技术有限公司 | 一种通用的提升神经网络推理准确性和保持运算速度的分布式计算系统设计方法 |
CN112862111B (zh) * | 2021-04-26 | 2021-08-24 | 之江实验室 | 一种加速分布式机器学习梯度汇聚的方法和装置 |
CN113143286B (zh) * | 2021-04-30 | 2023-06-20 | 广州大学 | 基于分布式学习的心电信号识别方法、系统、装置及介质 |
CN113313263A (zh) * | 2021-06-21 | 2021-08-27 | 京东数科海益信息科技有限公司 | 量子线路的参数优化方法、装置和系统 |
CN113610210B (zh) * | 2021-06-28 | 2024-03-29 | 深圳大学 | 基于智能网卡的深度学习训练网络迭代更新方法 |
CN115544029A (zh) * | 2021-06-29 | 2022-12-30 | 华为技术有限公司 | 一种数据处理方法及相关装置 |
CN114298329A (zh) * | 2021-08-05 | 2022-04-08 | 腾讯科技(深圳)有限公司 | 一种模型训练方法、装置、设备及存储介质 |
CN113902137B (zh) * | 2021-12-06 | 2022-04-08 | 腾讯科技(深圳)有限公司 | 流式模型训练方法、装置、计算机设备及存储介质 |
CN114398949B (zh) * | 2021-12-13 | 2024-07-26 | 鹏城实验室 | 一种脉冲神经网络模型的训练方法、存储介质及计算设备 |
CN114371936A (zh) * | 2022-01-04 | 2022-04-19 | 浙江大学中原研究院 | 一种多服务器作业的优化调度方法 |
CN114418129B (zh) * | 2022-03-30 | 2022-07-15 | 苏州浪潮智能科技有限公司 | 一种深度学习模型训练方法及相关装置 |
WO2023197100A1 (en) * | 2022-04-11 | 2023-10-19 | Qualcomm Incorporated | Loss reporting for distributed training of a machine learning model |
CN114580578B (zh) * | 2022-05-06 | 2022-08-23 | 鹏城实验室 | 具有约束的分布式随机优化模型训练方法、装置及终端 |
CN115100461B (zh) * | 2022-06-13 | 2023-08-22 | 北京百度网讯科技有限公司 | 图像分类模型训练方法、装置、电子设备、介质 |
WO2024055191A1 (en) * | 2022-09-14 | 2024-03-21 | Huawei Technologies Co., Ltd. | Methods, system, and apparatus for inference using probability information |
CN115860114B (zh) * | 2022-11-07 | 2023-09-08 | 北京百度网讯科技有限公司 | 深度学习模型的训练方法、装置、电子设备及存储介质 |
CN115665174B (zh) * | 2022-12-13 | 2023-03-14 | 浪潮电子信息产业股份有限公司 | 一种梯度数据的同步方法、系统、设备及存储介质 |
CN115994590B (zh) * | 2023-03-23 | 2023-07-14 | 浪潮电子信息产业股份有限公司 | 基于分布式集群的数据处理方法、系统、设备及存储介质 |
CN116070720B (zh) * | 2023-03-23 | 2023-07-21 | 山东海量信息技术研究院 | 基于分布式集群的数据处理方法、系统、设备及存储介质 |
CN116452951B (zh) * | 2023-04-18 | 2023-11-21 | 郑州大学 | 基于中央数据池的遥感信息提取模型分布式训练方法 |
CN116136838B (zh) * | 2023-04-19 | 2023-07-25 | 之江实验室 | 一种深度学习训练数据集快速载入临时缓存方法和装置 |
CN116226688B (zh) * | 2023-05-10 | 2023-10-31 | 粤港澳大湾区数字经济研究院(福田) | 数据处理、图文检索、图像分类方法及相关设备 |
CN116382599B (zh) * | 2023-06-07 | 2023-08-29 | 之江实验室 | 一种面向分布式集群的任务执行方法、装置、介质及设备 |
CN116451872B (zh) * | 2023-06-08 | 2023-09-01 | 北京中电普华信息技术有限公司 | 碳排放预测分布式模型训练方法、相关方法及装置 |
CN116595384B (zh) * | 2023-07-14 | 2023-11-24 | 支付宝(杭州)信息技术有限公司 | 模型训练方法及装置 |
CN116681973B (zh) * | 2023-08-03 | 2023-11-03 | 浪潮电子信息产业股份有限公司 | 一种图像处理方法、装置、系统、设备及计算机存储介质 |
CN117035125B (zh) * | 2023-10-09 | 2024-01-02 | 中电科大数据研究院有限公司 | 一种分布式人工智能模型的决策系统、方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108154237A (zh) * | 2016-12-06 | 2018-06-12 | 华为技术有限公司 | 一种数据处理系统及方法 |
CN110020877A (zh) * | 2018-01-09 | 2019-07-16 | 腾讯科技(深圳)有限公司 | 点击率的预测方法、点击率的确定方法及服务器 |
CN110929878A (zh) * | 2019-10-30 | 2020-03-27 | 同济大学 | 一种分布式随机梯度下降方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10402469B2 (en) * | 2015-10-16 | 2019-09-03 | Google Llc | Systems and methods of distributed optimization |
US11836576B2 (en) * | 2018-04-13 | 2023-12-05 | International Business Machines Corporation | Distributed machine learning at edge nodes |
CN110084378B (zh) * | 2019-05-07 | 2023-04-21 | 南京大学 | 一种基于本地学习策略的分布式机器学习方法 |
CN110287031B (zh) * | 2019-07-01 | 2023-05-09 | 南京大学 | 一种减少分布式机器学习通信开销的方法 |
CN111369009A (zh) * | 2020-03-04 | 2020-07-03 | 南京大学 | 一种能容忍不可信节点的分布式机器学习方法 |
-
2020
- 2020-08-19 CN CN202010836317.4A patent/CN111709533B/zh active Active
-
2021
- 2021-07-15 WO PCT/CN2021/106476 patent/WO2022037337A1/zh active Application Filing
-
2022
- 2022-08-15 US US17/887,702 patent/US20220391771A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108154237A (zh) * | 2016-12-06 | 2018-06-12 | 华为技术有限公司 | 一种数据处理系统及方法 |
CN110020877A (zh) * | 2018-01-09 | 2019-07-16 | 腾讯科技(深圳)有限公司 | 点击率的预测方法、点击率的确定方法及服务器 |
CN110929878A (zh) * | 2019-10-30 | 2020-03-27 | 同济大学 | 一种分布式随机梯度下降方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2022037337A1 (zh) | 2022-02-24 |
CN111709533A (zh) | 2020-09-25 |
US20220391771A1 (en) | 2022-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111709533B (zh) | 机器学习模型的分布式训练方法、装置以及计算机设备 | |
CN112000459B (zh) | 一种用于服务的扩缩容的方法及相关设备 | |
CN111258767B (zh) | 复杂系统仿真应用的云计算资源智能分配方法与装置 | |
US20230289828A1 (en) | Data processing method, computer device, and readable storage medium | |
CN110765320B (zh) | 数据处理方法、装置、存储介质和计算机设备 | |
CN109919316A (zh) | 获取网络表示学习向量的方法、装置和设备及存储介质 | |
CN111898578B (zh) | 人群密度的获取方法、装置、电子设备 | |
CN108021984A (zh) | 确定机器学习样本的特征重要性的方法及系统 | |
WO2021133253A1 (en) | Method and apparatus for predicting energy consumption, and device and storage medium thereof | |
CN112183899A (zh) | 确定安全度预测模型的方法、装置、设备和存储介质 | |
CN113268403A (zh) | 时间序列的分析预测方法、装置、设备及存储介质 | |
CN110245310A (zh) | 一种对象的行为分析方法、装置及存储介质 | |
CN111209105A (zh) | 扩容处理方法、装置、设备及可读存储介质 | |
CN117311998A (zh) | 一种大模型部署方法及系统 | |
CN112394982A (zh) | 生成语音识别系统的方法、装置、介质及电子设备 | |
CN116737373A (zh) | 负载均衡方法、装置、计算机设备、存储介质 | |
CN115756821A (zh) | 在线任务处理模型训练、任务处理方法及装置 | |
CN107688582B (zh) | 资源推荐模型的获取方法及装置 | |
CN114357242A (zh) | 基于召回模型的训练评估方法及装置、设备、存储介质 | |
CN113159926A (zh) | 贷款业务的还款日期确定方法及装置 | |
CN110415006B (zh) | 广告点击率预估方法和装置 | |
CN112905792A (zh) | 基于非文本场景的文本聚类方法、装置、设备及存储介质 | |
Jittawiriyanukoon et al. | AN APPROXIMATION METHOD OF REGRESSION ANALYSIS IN CONCURRENT BIG DATA STREAM. | |
CN118093518B (zh) | 模型的处理方法和装置、存储介质及电子设备 | |
CN113220547B (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40028914 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |