CN104980518B - 多学习主体并行训练模型的方法、装置和系统 - Google Patents

多学习主体并行训练模型的方法、装置和系统 Download PDF

Info

Publication number
CN104980518B
CN104980518B CN201510367503.7A CN201510367503A CN104980518B CN 104980518 B CN104980518 B CN 104980518B CN 201510367503 A CN201510367503 A CN 201510367503A CN 104980518 B CN104980518 B CN 104980518B
Authority
CN
China
Prior art keywords
parameter value
model
learning agent
copy
training
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
CN201510367503.7A
Other languages
English (en)
Other versions
CN104980518A (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.)
Shenzhen Tencent Computer Systems Co Ltd
Original Assignee
Shenzhen Tencent Computer Systems 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 Shenzhen Tencent Computer Systems Co Ltd filed Critical Shenzhen Tencent Computer Systems Co Ltd
Priority to CN201510367503.7A priority Critical patent/CN104980518B/zh
Publication of CN104980518A publication Critical patent/CN104980518A/zh
Application granted granted Critical
Publication of CN104980518B publication Critical patent/CN104980518B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition
    • G06N5/025Extracting rules from data

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明涉及一种多学习主体并行训练模型的方法、装置和系统。所述方法包括以下步骤:通过单台机器中的多个训练的学习主体各自读取样本;在同一时刻一个训练的学习主体从训练模型中获取当前的参数值;根据所述当前的参数值对读取的样本进行训练得到新的参数值;将所述新的参数值更新到所述训练模型中,所述训练模型中保存一个参数值。上述多学习主体并行训练模型的方法、装置和系统,因模型只保存一个参数值,它的最新状态所有学习主体都能访问,任何学习主体更新了模型的状态,随后读取模型状态的学习主体都能看到最新的更新,大大减少了由于模型不共享,不同学习主体看到的模型状态有差异带来的影响,训练过程中,模型可以收敛很快。

Description

多学习主体并行训练模型的方法、装置和系统
技术领域
本发明涉及数据处理领域,特别是涉及一种多学习主体并行训练模型的方法、装置和系统。
背景技术
在机器学习领域,很多机器学习需要进行建模,即建立学习模型。在训练过程中,模型的结构固定,但是模型节点内和节点之间连接边上的权重需要通过训练过程来调整直到收敛点。节点内和节点间的权重被称为参数。很多机器学习算法属于多次迭代优化算法,模型训练过程中的每个迭代主要包括以下步骤:随机取一个或一批样本,根据当前模型的状态,给出模型对该样本的预测;根据预测值和样本的期望输出,计算出如何对模型状态进行调整,模型状态即指模型中各个参数的值。
一般采用一台机器利用单线程的方式根据模型状态做预测,随后根据残差调整模型状态。随着大数据时代的来临,训练样本越来越多,模型规模越来越大,所以计算代价也随着变大,此时采用单线程训练模型的方式,训练过程太慢,如在语音识别、图像分类等领域,训练一个模型可能需要数月或几年的时间,在实际中无法接受如此长的训练时间。
随着hadoop和Spark的成熟,很多公司也采用它们作为基础平台来训练机器学习模型。常用的方法是有一个主控角色,还有多个工作者,在一次迭代起始时,主控角色将最新模型分发到所有工作者上,工作者读取训练数据,独自更新它所维护的模型实例,然后在迭代结束时,主控角色收集多份模型,将其中的参数取平均化作为每个参数的最新值,即得到最新的模型状态。该方法的缺点时,一个迭代全局同步一次模型,造成模型收敛慢,对于非凸的优化问题,较易导致训练过程发散而使得训练作业失败。
发明内容
基于此,有必要针对传统的模型训练方法收敛慢的问题,提供一种多学习主体并行训练模型的方法,能提高收敛速度。
此外,还有必要提供一种多学习主体并行训练模型的装置和系统,能提高收敛速度。
一种多学习主体并行训练模型的方法,包括以下步骤:
通过单台机器中的多个训练的学习主体各自读取样本;
在同一时刻一个训练的学习主体从训练模型中获取当前的参数值;
根据所述当前的参数值对读取的样本进行训练得到新的参数值;
将所述新的参数值更新到所述训练模型中,所述训练模型中保存一个参数值。
一种多学习主体并行训练模型的装置,包括:
读取模块,用于通过单台机器中的多个训练的学习主体各自读取样本;
获取模块,用于在同一时刻一个训练的学习主体从训练模型的获取当前的参数值;
训练模块,用于根据所述当前的参数值对读取的样本进行训练得到新的参数值;
更新模块,用于将所述新的参数值更新到所述训练模型中,所述训练模型中保存一个参数值。
一种多学习主体并行训练模型的系统,所述系统包括单台机器,所述单台机器中的多个训练的学习主体各自读取样本,在同一时刻一个训练的学习主体从训练模型中获取当前的参数值,根据所述当前的参数值对读取的样本进行训练得到新的参数值,将所述新的参数值更新到所述训练模型中,所述训练模型中保存一个参数值。
上述多学习主体并行训练模型的方法、装置和系统,因每个学习主体独立工作,相互之间不需要同步和协调,在访问训练模型的参数时也不需要申请锁保护,所以其性能几乎随线程数或进程数的增加而线性增长,且因模型只保存一个参数值,它的最新状态所有学习主体都能访问,任何学习主体更新了模型的状态,随后读取模型状态的学习主体都能看到最新的更新,大大减少了由于模型不共享,不同学习主体看到的模型状态有差异带来的影响,训练过程中,模型可以收敛很快。
附图说明
图1A为一个实施例中终端的内部结构示意图;
图1B为一个实施例中服务器的内部结构示意图;
图2为一个实施例中多学习主体并行训练模型的方法的流程图;
图3为训练模型中参数的存储及读取和修改参数的过程示意图;
图4为线程B的写入丢失的过程示意图;
图5为线程A的写入丢失的过程示意图;
图6为线程A读取到过期数据的示意图;
图7为一个实施例中对等网络环境中的系统组件示意图;
图8为对等网络环境中单台机器利用其它机器模型差进行训练的流程图;
图9为对等网络环境中的模型更新的时序示意图;
图10为存在模型服务器的系统组件示意图;
图11为存在模型服务器环境中单台机器进行训练模型的流程图;
图12为一个实施例中多学习主体并行训练模型的装置的结构框图;
图13为另一个实施例中多学习主体并行训练模型的装置的结构框图;
图14为另一个实施例中多学习主体并行训练模型的装置的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1A为一个实施例中终端的内部结构示意图。如图1A所示,该终端包括通过系统总线连接的处理器、存储介质、内存、网络接口和输入装置。其中,终端的存储介质存储有操作系统,还包括一种多学习主体并行训练模型的装置,该新闻数据显示装置用于实现一种多学习主体并行训练模型的方法。该处理器用于提供计算和控制能力,支撑整个终端的运行。终端中的内存为存储介质中的多学习主体并行训练模型的装置的运行提供环境,网络接口用于与服务器进行网络通信,如发送模型差至服务器,接收服务器返回的参数值等。终端的输入装置可以是显示屏上覆盖的触摸层,也可以是终端外壳上设置的按键、轨迹球或触控板,也可以是外接的键盘、触控板或鼠标等。该终端可以是手机、平板电脑或者个人数字助理。本领域技术人员可以理解,图1A中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的终端的限定,具体的终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
图1B为一个实施例中服务器的内部结构示意图。如图1B所示,该服务器包括通过系统总线连接的处理器、存储介质、内存和网络接口。其中,该服务器的存储介质存储有操作系统、数据库和多学习主体并行训练模型的装置,数据库中存储有训练模型的参数值,该多学习主体并行训练模型的装置用于实现适用于服务器的一种多学习主体并行训练模型的方法。该服务器的处理器用于提供计算和控制能力,支撑整个服务器的运行。该服务器的内存为存储介质中的多学习主体并行训练模型的装置的运行提供环境。该服务器的网络接口用于据以与外部的终端通过网络连接通信,比如接收终端发送的模型差以及向终端返回最新的参数值等。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。本领域技术人员可以理解,图1B中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的服务器的限定,具体的服务器可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
图2为一个实施例中多学习主体并行训练模型的方法的流程图。图2中的多学习主体并行训练模型的方法应用于图1A的终端上。如图2所示,一种多学习主体并行训练模型的方法,包括以下步骤:
步骤202,通过单台机器中的多个训练的学习主体各自读取样本。
具体地,学习主体可为单台机器中操作系统的线程或进程。该线程可为多核中央处理器上的物理线程,或者为基于英特尔phi协处理器之上的多线程,或者为虚拟机(如java虚拟机)提供的用户态线程等。
在多台机器的场景中,学习主体可指一台机器。多个线程或进程各自读取样本进行训练。模型(即参数)被存放在共享内存区且只保存一份。
样本是指训练数据。训练数据可为文本数据、语音数据、图像数据等等。
步骤204,在同一时刻一个训练的学习主体从训练模型获取当前的参数值。
从单一训练的线程或进程的角度来看,它不了解是否还有其他学习主体同时也在访问和修改模型,它认为只有自己在训练模型。对于单一参数的访问,无论是读取还是写入,可看作是一个原子性操作。原子性操作是指不会被线程调度机制打断的操作,这种操作一旦开始,就一直运行到结束,中间不会有任何切换。如此可保证在多进程或多线程访问资源时,所有其他的进程或线程都不在同一时间内访问相同的资源。
步骤206,根据该当前的参数值对读取的样本进行训练得到新的参数值。
具体地,单个进程或线程根据从训练模型中获取的当前的参数值对读取的样本进行训练得到新的参数值,再将新的参数值更新到训练模型中。
步骤208,将该新的参数值更新到该训练模型中,该训练模型中保存一个参数值。
每个学习主体按照步骤202至步骤208并行训练模型,模型收敛很快。
上述多学习主体并行训练模型的方法,因每个学习主体独立工作,相互之间不需要同步和协调,在访问训练模型的参数时也不需要申请锁保护,所以其性能几乎随线程数或进程数的增加而线性增长。且因模型只保存一个参数值,它的最新状态所有学习主体都能访问,任何学习主体更新了模型的状态,随后读取模型状态的学习主体都能看到最新的更新,大大减少了由于模型不共享,不同学习主体看到的模型状态有差异带来的影响,训练过程中,模型可以收敛很快。
图3为训练模型中参数的存储及读取和修改参数的过程示意图。如图3所示,学习主体包括线程0、线程1至线程N。线程0从训练模型中读取参数p2,采用参数p2进行训练得到新的参数值p0,将得到的新参数值p0更新存储到训练模型中。线程1至线程N进行训练时,也一样读取训练模型中当前的参数值,根据当前的参数值进行训练后,将得到的新参数值更新存储到训练模型中。训练模型中存储的可调整部分由很多参数组成,每个参数由一个浮点数表示,在x86计算机体系结构中是32位或64位浮点数。
需要说明的是,多个线程在写入数据时,可能会丢失。图4为线程B的写入丢失的过程示意图。图5为线程A的写入丢失的过程示意图。假定参数p当前值为1,线程A试图将参数p修改为2,线程B几乎同时试图将参数p修改为3。如图4所示,如果线程B先写入,将参数p的值由1修改为3,则随后线程A的写入会覆盖线程B的操作,参数p的值最终为2。最终效果上等同于线程B的更新被丢弃了。如图5所示,如果线程A先写入,将参数p的值由1修改为2,则随后线程B的写入会覆盖线程A的操作,参数p的值最终为3,线程A的写入丢失。
此外,在读取参数时存在读到过期状态的问题。假定参数p当前是1,线程A意图读到p的最新值,在线程A读取完后,线程B随即将参数p的值修改为2,则严格来说线程A并没有看到p的最新状态。图6为线程A读取到过期数据的示意图。如图6所示,参数p为1,线程A读取p时的值为1,随后线程B写入2,将参数p由1修改为2,则线程A并没有读取到参数p为2。
因此,在多个线程或进程独自更新训练模型的过程中,有些更新可能会因为写入冲突而丢失,而且读取的某些模型状态是有些过时的。然而,在机器学习模型的训练过程中,尤其是针对神经网络(不论稀疏或稠密,不论浅层还是深层),这个训练过程是非常健壮的,部分写入丢失和状态过时不会影响收敛性,在实际系统中,这些额外的扰动反而将模型训练到一个更好、更稳定的收敛点上。
下面描述多学习主体并行训练模型的方法应用在无模型服务器的多机对等网络环境的情况。对等网络可以基于以太网或InfiniBand或Roce等网络条件。InfiniBand是一种支持多并发链接的转换线缆技术。Roce是mellanox支持的一个网络设备连接方式。软件实现可以基于TCP(Transmission Control Protocol,传输控制协议)协议或基于MPI(Multi Point Interface,多点接口)或者硬件提供商特定的驱动和传输协议。图7为一个实施例中对等网络环境中的系统组件示意图。如图7所示,无模型服务器的对等网络环境包括网络连接的多台机器,单台机器作为一个训练机器。图7中包括通过网络连接的机器1、机器2至机器N。一个学习主体是一台物理机器。单台机器内包括多个训练的学习主体、广播模型差的学习主体、收集模型差的学习主体,且单台机器内设有工作副本和基础副本,该工作副本用于存储更新后的参数值;该基础副本用于存储更新前的参数值。学习主体在单台机器中可为线程或进程。本实施例中,单台机器内的学习主体以线程进行描述。如图7所示,最开始时,所有对等机器节点装置同样的模型到各自的内存中。每台机器中维护有两份模型:模型的工作副本和模型的基础副本。模型的工作副本是指用于机器内部被多个线程或进程随时更新的模型。模型的基础副本是用于存放更新前的模型。每台机器内包括多个训练线程、广播模型差的线程和收集模型差的线程。训练线程用于更新模型。广播模型差的线程用于将学习到的模型差广播给其它机器。收集模型差的线程用于接收其它机器的训练成果(即模型差),并且直接运用到本机的训练模型上。在具体实现中,机器间两两维护有长效的两个网络连接,一个用于发送数据,一个用于接收数据。为了最大化性能,网络收发线程和获取本地模型差的线程、运用其他机器模型差的线程是分离的,即训练线程、广播模型差的线程和收集模型差的线程是分离的。此外,这些线程和本地的计算线程之间都不采用任何同步机制。
图8为对等网络环境中单台机器利用其它机器模型差进行训练的流程图。如图8所示,对等网络环境中单台机器利用其它机器模型差进行训练的步骤包括:
步骤802,通过该收集模型差的学习主体获取广播的模型差。
具体地,学习主体可为线程或进程。其他机器广播的模型差。模型差是指训练模型过程中,模型从一个状态到了另一个状态,前后两个状态之差称为模型差。因模型差由一个或多个参数组成。模型差即体现了这些参数值的前后之差。
步骤804,将该工作副本中存储的参数值和基础副本中存储的参数值均加上获取的模型差得到更新后工作副本中存储的参数值和基础副本中存储的参数值。
具体地,例如训练模型中的参数p的初始值为w0,机器A训练后,参数p被更新为w1,则机器A的工作副本中存储的参数值为w1,基础副本中存储的参数值为w0。机器B训练后,参数p被更新为w2,机器B的训练成果即模型差为w2-w0。机器A获取到机器B的模型差w2-w0后,将工作副本中存储的参数值更新得到参数值w3=w1+w2-w0,将基础副本中存储的参数值更新得到参数值为w2=w0+w2-w0。
步骤806,通过该训练的学习主体按照更新后工作副本中存储的参数值进行训练,并将更新后工作副本中存储的参数值和基础副本中存储的参数值之差作为自身的模型差,通过该广播模型差的学习主体将自身的模型差广播出去。
具体地,按照w3进行训练。自身的模型差为更新后的工作副本中存储的参数值w3与基础副本中存储的参数值w2之差,即w1-w0。通过广播模型差的线程或进程将模型差w3-w2广播出去。
步骤808,将更新后的基础副本中存储的参数值再更新为更新后工作副本中存储的参数值。
具体地,将基础副本中存储的参数值w2再更新为更新后工作副本中存储的参数值w3。
需要说明的是,在单台机器内部仍然采用多个线程或进程并行训练更新模型,更新过程同步骤202至208中描述及图3中一样。多台机器并行按照步骤802至步骤808进行训练。
上述对等网络环境中单台机器利用其它机器模型差进行训练,通过模型的工作副本和基础副本存储更新后的参数值和更新前的参数值,训练的学习主体进行训练模型,广播模型差的学习主体发送自身的模型差,收集模型差的学习主体接收其他模型差,实现不同学习主体分离,处理不同任务,不同单台机器各自训练模型,始终不间断的将自身的模型差分享给他人,同时也不间断接收他人学到的模型差,提高了收敛速度。且每台机器内部多个学习主体无协调并行训练一份模型,进一步提高了收敛速度。
为了更清楚的说明多个机器训练模型的过程,以两台机器更新某参数p的情况为例说明。图9为对等网络环境中的模型更新的时序示意图。如图9所示,对等网络环境中的模型更新的过程包括:
训练模型中参数p的初始值为w0。
在T0时刻,机器A和机器B的工作副本和基础副本中存储的参数均为w0。
在T1时刻,机器A上的参数p被更新为w1,则工作副本中存储的参数为w1,基础副本中存储的参数为w0,机器B上的参数p被更新为w2,则工作副本中存储的参数为w2,基础副本中存储的参数为w0。机器B将模型差w2-w0广播给机器A,同时修改自身的基础副本至w2。
在T2时刻,机器A接收到机器B广播的模型差后,将基础副本和工作副本中存储的参数值均加上模型差w2-w0,则,机器A的基础副本成为w2,工作副本成为w1+w2-w0,记为w3。
在T3时刻,机器B继续自己的训练过程,将机器B的工作副本中存储的参数值更新为w4,机器B的基础副本中存储的参数值为w2。此时机器A将自己的训练成果即模型差w3-w2广播出去,并且修改了基础副本为w3。机器A的工作副本中存储的参数值为w3=w1+w2-w0,机器A的基础副本中存储的参数值为w3。
在T4时刻,机器B收到机器A广播的模型差w3-w2后,将机器B的基础副本从w2修改为w3,将机器B的工作副本从w4修改为w5(w5=w4+w3-w2)。机器A的工作副本中存储的参数值为w3=w1+w2-w0,机器A的基础副本中存储的参数值为w3。
上述多学习主体并行训练的方法可应用于存在模型服务器的环境中。存在模型服务器的环境可以基于以太网或InfiniBand或Roce等网络条件。软件实现可以基于TCP(Transmission Control Protocol,传输控制协议)协议或基于MPI(Multi PointInterface,多点接口)或者硬件提供商特定的驱动和传输协议。图10为存在模型服务器的系统组件示意图,图10与图7的区别在于,增加了模型服务器,图7中的对等网络中,机器间交换的是模型差;图10中存在模型服务器时,机器从模型服务器拉取的是最新的参数值,发送给模型服务器的是模型差。在模型特别大的应用领域,需要采用多台模型服务器拆分模型,每台模型服务器存放一部分模型。一台物理机器为一个学习主体。存在模型服务器的环境包括与模型服务器网络连接的多台机器,单台机器作为一个训练机器,单台机器内包括多个训练的学习主体、拉取参数的学习主体、发送模型差的学习主体,且单台机器内设有工作副本和基础副本;该基础副本用于存储更新前的参数值;该工作副本用于存储更新后的参数值;该模型服务器用于存储最新的参数值。
图11为存在模型服务器环境中单台机器进行训练模型的流程图。如图11所示,存在模型服务器环境中各个单台机器进行训练模型的步骤包括:
步骤1102,通过拉取参数的学习主体从模型服务器获取最新的参数值。
具体地,学习主体为线程或进程。最开始时,每台训练机器从模型服务器拉取最新的参数值,每台训练机器内部按照单台机器环境中多线程或多进程并行更新的方式进行训练。
步骤1104,将该工作副本中存储的参数值更新为将工作副本中存储的参数值加上从模型服务器获取的参数值再减去基础副本中存储的参数值所得到的值,以及将基础副本中存储的参数值更新为从模型服务器获取的参数值。
步骤1106,根据更新后该工作副本中存储的参数值进行训练。
步骤1108,将该基础副本内存储的参数值更新为更新后工作副本中存储的参数值。
步骤1110,将更新前工作副本中的参数值与更新前基础副本中的参数值之差作为模型差通过发送模型差的学习主体发送给模型服务器,以使该模型服务器根据该模型差调整自身所存储的参数值。
例如,以某一参数p为例说明,假设基础副本中存储的参数值为w0,工作副本中存储的参数值为w1,模型服务器上存储的最新参数值为w2,某台训练机器从模型服务器拉取最新参数值w2到本地,将基础副本中存储的参数值更新为w2,同时将工作副本存储的参数值更新为w1+w2-w0。如此,拉取参数的学习主体(线程或进程)不会破坏本地已经积累的模型差,本地的模型差依然为w1-w0。发送模型差的学习主体将基础副本更新为w1+w2-w0,同时将模型差w1-w0发送给模型服务器。模型服务器接收到训练机器发送的模型差后,可以根据一个步长更新参数p的值。步长大小可根据具体情况调整。例如当参与数据并行的训练机器数目特别多,而网络条件又不好时,有必要适当调整这个步长。如果物理网络非常好,机器间交换模型差非常快速,不同机器看到的模型状态(即参数值)差异较小,时延低,此时模型的收敛速度快。当物理网络条件较差,因为交换模型差导致的时延较大,此时需要适当降低步长以保证训练过程的正常进行。
上述多学习主体并行训练模型的方法,在模型服务器环境中,每台机器通过拉取参数的学习主体从模型服务器获取最新的参数值,根据训练的学习主体进行训练,并将训练结果即模型差通过发送模型差的学习主体发送给模型服务器,模型服务器根据模型差进行调整参数值,实现不同学习主体分离,处理不同任务,不同单台机器各自训练模型,因多台机器并行训练,提高了模型的收敛速度,且单台机器内部多个学习主体无协调并行训练一份模型,进一步提高了收敛速度。
需要说明的是,在多机环境中,单台机器内部的训练不局限于单台机器环境中所描述的方法,也可以是基于单GPU(Graphics Processing Unit,图形处理器)卡、多GPU卡或英特尔Phi协处理器进行模型训练。
图12为一个实施例中多学习主体并行训练模型的装置的结构框图。如图12所示,一种多学习主体并行训练模型的装置,包括读取模块1210、获取模块1220、训练模块1230和更新模块1240,其中:
读取模块1210用于通过单台机器中的多个训练的学习主体各自读取样本。
具体地,学习主体可为单台机器中操作系统的线程或进程。该线程可为多核中央处理器上的物理线程,或者为基于英特尔phi协处理器之上的多线程,或者为虚拟机(如java虚拟机)提供的用户态线程等。
在多台机器的场景中,学习主体可指一台机器。多个线程或进程各自读取样本进行训练。模型(即参数)被存放在共享内存区且只保存一份。样本是指训练数据。训练数据可为文本数据、语音数据、图像数据等等。
获取模块1220用于在同一时刻一个训练的学习主体从训练模型的获取当前的参数值。
训练模块1230用于根据该当前的参数值对读取的样本进行训练得到新的参数值。
更新模块1240用于将该新的参数值更新到该训练模型中,该训练模型中保存一个参数值。
上述多学习主体并行训练模型的装置,因每个学习主体独立工作,相互之间不需要同步和协调,在访问训练模型的参数时也不需要申请锁保护,所以其性能几乎随线程数或进程数的增加而线性增长。且因模型只保存一个参数值,它的最新状态所有学习主体都能访问,任何学习主体更新了模型的状态,随后读取模型状态的学习主体都能看到最新的更新,大大减少了由于模型不共享,不同学习主体看到的模型状态有差异带来的影响,训练过程中,模型可以收敛很快。
在一个实施例中,多学习主体并行训练模型的装置应用在无模型服务器的多机对等网络环境的情况。无模型服务器的对等网络环境包括网络连接的多台机器,单台机器作为一个训练机器,单台机器内包括多个训练的学习主体、广播模型差的学习主体、收集模型差的学习主体,且单台机器内设有工作副本和基础副本,该工作副本用于存储更新后的参数值;该基础副本用于存储更新前的参数值。
图13为另一个实施例中多学习主体并行训练模型的装置的结构框图。如图13所示,一种多学习主体并行训练模型的装置,除了包括读取模块1210、获取模块1220、训练模块1230和更新模块1240,还包括收集模块1250、广播模块1260。其中:
收集模块1250用于通过该收集模型差的学习主体获取广播的模型差。
更新模块1240还用于将该工作副本中存储的参数值和基础副本中存储的参数值均加上获取的模型差得到更新后工作副本中存储的参数值和基础副本中存储的参数值。
具体地,例如训练模型中的参数p的初始值为w0,机器A训练后,参数p被更新为w1,则机器A的工作副本中存储的参数值为w1,基础副本中存储的参数值为w0。机器B训练后,参数p被更新为w2,机器B的训练成果即模型差为w2-w0。机器A获取到机器B的模型差w2-w0后,将工作副本中存储的参数值更新得到参数值w3=w1+w2-w0,将基础副本中存储的参数值更新得到参数值为w2=w0+w2-w0。
训练模块1230用于通过该训练的学习主体按照更新后工作副本中存储的参数值进行训练。
广播模块1260用于将更新后工作副本中存储的参数值和基础副本中存储的参数值之差作为自身的模型差,通过该广播模型差的学习主体将自身的模型差广播出去。
具体地,按照w3进行训练。自身的模型差为更新后的工作副本中存储的参数值w3与基础副本中存储的参数值w2之差,即w1-w0。通过广播模型差的线程或进程将模型差w3-w2广播出去。
更新模块1240还用于将更新后的基础副本中存储的参数值再更新为更新后工作副本中存储的参数值。具体地,将基础副本中存储的参数值w2再更新为更新后工作副本中存储的参数值w3。
上述对等网络环境中单台机器利用其它机器模型差进行训练,通过模型的工作副本和基础副本存储更新后的参数值和更新前的参数值,训练的学习主体进行训练模型,广播模型差的学习主体发送自身的模型差,收集模型差的学习主体接收其他模型差,实现不同学习主体分离,处理不同任务,不同单台机器各自训练模型,始终不间断的将自身的模型差分享给他人,同时也不间断接收他人学到的模型差,提高了收敛速度。且单台机器内部多个学习主体无协调并行训练一份模型,进一步提高了收敛速度。
上述多学习主体并行训练的装置可应用于存在模型服务器的环境中。存在模型服务器的环境可以基于以太网或InfiniBand或Roce等网络条件。软件实现可以基于TCP(Transmission Control Protocol,传输控制协议)协议或基于MPI(Multi PointInterface,多点接口)或者硬件提供商特定的驱动和传输协议。存在模型服务器的环境包括与模型服务器网络连接的多台机器,单台机器作为一个训练机器,单台机器内包括多个训练的学习主体、拉取参数的学习主体、发送参数差的学习主体,且单台机器内设有工作副本和基础副本;该基础副本用于存储更新前的参数值;该工作副本用于存储更新后的参数值;该模型服务器用于存储最新的参数值。
图14为另一个实施例中多学习主体并行训练模型的装置的结构框图。如图14所示,一种多学习主体并行训练模型的装置,除了包括读取模块1210、获取模块1220、训练模块1230和更新模块1240,还包括拉取模块1270、发送模块1280。
拉取模块1270用于通过该拉取参数的学习主体从模型服务器获取最新的参数值。
更新模块1240还用于将该工作副本中存储的参数值更新为将工作副本中存储的参数值加上从模型服务器获取的参数值再减去基础副本中存储的参数值所得到的值,以及将基础副本中存储的参数值更新为从模型服务器获取的参数值。
训练模块1230用于根据更新后该工作副本中存储的参数值进行训练。
更新模块1240还用于将该基础副本内存储的参数值更新为更新后工作副本中存储的参数值。
发送模块1280用于将更新前工作副本中的参数值与更新前基础副本中的参数值之差作为模型差发送给模型服务器,以使该模型服务器根据该模型差调整自身所存储的参数值。
例如,以某一参数p为例说明,假设基础副本中存储的参数值为w0,工作副本中存储的参数值为w1,模型服务器上存储的最新参数值为w2,某台训练机器从模型服务器拉取最新参数值w2到本地,将基础副本中存储的参数值更新为w2,同时将工作副本存储的参数值更新为w1+w2-w0。如此,拉取参数的学习主体(线程或进程)不会破坏本地已经积累的模型差,本地的模型差依然为w1-w0。发送模型差的学习主体将基础副本更新为w1+w2-w0,同时将模型差w1-w0发送给模型服务器。模型服务器接收到训练机器发送的模型差后,可以根据一个步长更新参数p的值。步长大小可根据具体情况调整。例如当参与数据并行的训练机器数目特别多,而网络条件又不好时,有必要适当调整这个步长。如果物理网络非常好,机器间交换模型差非常快速,不同机器看到的模型状态(即参数值)差异较小,时延低,此时模型的收敛速度快。当物理网络条件较差,因为交换模型差导致的时延较大,此时需要适当降低步长以保证训练过程的正常进行。
上述多学习主体并行训练模型的装置,在模型服务器环境中,每台单台机器通过拉取参数的学习主体从模型服务器获取最新的参数值,根据训练的学习主体进行训练,并将训练结果即模型差通过发送模型差的学习主体发送给模型服务器,模型服务器根据模型差进行调整参数值,实现不同学习主体分离,处理不同任务,不同单台机器各自训练模型,因多台单台机器并行训练,提高了模型的收敛速度,且每个单台机器内部多个学习主体无协调并行训练一份模型,进一步提高了收敛速度。
本发明还提供了一种多学习主体并行训练模型的系统。该多学习主体并行训练模型的系统包括单台机器。
单台机器中的多个训练的学习主体各自读取样本,在同一时刻一个训练的学习主体从训练模型中获取当前的参数值,根据该当前的参数值对读取的样本进行训练得到新的参数值,将该新的参数值更新到该训练模型中,该训练模型中保存一个参数值。
具体地,学习主体可为单台机器中操作系统的线程或进程。该线程可为多核中央处理器上的物理线程,或者为基于英特尔phi协处理器之上的多线程,或者为虚拟机(如java虚拟机)提供的用户态线程等。在多台机器的场景中,学习主体可指一台机器。多个线程或进程各自读取样本进行训练。模型(即参数)被存放在共享内存区且只保存一份。样本是指训练数据。训练数据可为文本数据、语音数据、图像数据等等。
上述多学习主体并行训练模型的系统,因每个学习主体独立工作,相互之间不需要同步和协调,在访问训练模型的参数时也不需要申请锁保护,所以其性能几乎随线程数或进程数的增加而线性增长。且因模型只保存一个参数值,它的最新状态所有学习主体都能访问,任何学习主体更新了模型的状态,随后读取模型状态的学习主体都能看到最新的更新,大大减少了由于模型不共享,不同学习主体看到的模型状态有差异带来的影响,训练过程中,模型可以收敛很快。
该多学习主体并行训练模型的系统还包括无模型服务器的对等网络中网络连接的多台机器,参见图7所示的对等网络环境中的系统组件。单台机器作为一个训练机器,单台机器内包括多个训练的学习主体、广播模型差的学习主体、收集模型差的学习主体,且单台机器内设有工作副本和基础副本,该工作副本用于存储更新后的参数值;该基础副本用于存储更新前的参数值。
单台机器内的收集模型差的学习主体获取广播的模型差,以及将该工作副本中存储的参数值和基础副本中存储的参数值均加上获取的模型差得到更新后工作副本中存储的参数值和基础副本中存储的参数值;该训练的学习主体按照更新后工作副本中存储的参数值进行训练,并将更新后工作副本中存储的参数值和基础副本中存储的参数值之差作为自身的模型差,通过该广播模型差的学习主体将自身的模型差广播出去;将更新后的基础副本中存储的参数值再更新为更新后工作副本中存储的参数值。
模型差是指训练模型过程中,模型从一个状态到了另一个状态,前后两个状态之差称为模型差。因模型差由一个或多个参数组成。模型差即体现了这些参数值的前后之差。
每台机器内包括多个训练线程、广播模型差的线程和收集模型差的线程。训练线程用于更新模型。广播模型差的线程用于将学习到的模型差广播给其它机器。收集模型差的线程用于接收其它机器的训练成果(即模型差),并且直接运用到本机的训练模型上。在具体实现中,机器间两两维护有长效的两个网络连接,一个用于发送数据,一个用于接收数据。为了最大化性能,网络收发线程和获取本地模型差的线程、运用其他机器模型差的线程是分离的,即训练线程、广播模型差的线程和收集模型差的线程是分离的。此外,这些线程和本地的计算线程之间都不采用任何同步机制。
上述对等网络环境中单台机器利用其它机器模型差进行训练,通过模型的工作副本和基础副本存储更新后的参数值和更新前的参数值,训练的学习主体进行训练模型,广播模型差的学习主体发送自身的模型差,收集模型差的学习主体接收其他模型差,实现不同学习主体分离,处理不同任务,不同单台机器各自训练模型,始终不间断的将自身的模型差分享给他人,同时也不间断接收他人学到的模型差,提高了收敛速度。且每台机器内部多个学习主体无协调并行训练一份模型,进一步提高了收敛速度。
上述多学习主体并行训练的系统可应用于存在模型服务器的环境中。该多学习主体并行训练的系统还包括模型服务器和与该模型服务器网络连接的多台机器,参见图10。单台机器作为一个训练机器,单台机器内包括多个训练的学习主体、拉取参数的学习主体、发送模型差的学习主体,且单台机器内设有工作副本和基础副本;该基础副本用于存储更新前的参数值;该工作副本用于存储更新后的参数值;该模型服务器用于存储最新的参数值。
该单台机器中的拉取参数的学习主体从该模型服务器获取最新的参数值,将该工作副本中存储的参数值更新为将工作副本中存储的参数值加上从模型服务器获取的参数值再减去基础副本中存储的参数值所得到的值,以及将基础副本中存储的参数值更新为从模型服务器获取的参数值。
该多个训练的学习主体根据更新后该工作副本中存储的参数值进行训练,将该基础副本内存储的参数值更新为更新后工作副本中存储的参数值。
该发送模型差的学习主体将更新前工作副本中的参数值与更新前基础副本中的参数值之差作为模型差发送给该模型服务器。
该模型服务器还用于根据该模型差调整自身所存储的参数值。
例如,以某一参数p为例说明,假设基础副本中存储的参数值为w0,工作副本中存储的参数值为w1,模型服务器上存储的最新参数值为w2,某台训练机器从模型服务器拉取最新参数值w2到本地,将基础副本中存储的参数值更新为w2,同时将工作副本存储的参数值更新为w1+w2-w0。如此,拉取参数的学习主体(线程或进程)不会破坏本地已经积累的模型差,本地的模型差依然为w1-w0。发送模型差的学习主体将基础副本更新为w1+w2-w0,同时将模型差w1-w0发送给模型服务器。模型服务器接收到训练机器发送的模型差后,可以根据一个步长更新参数p的值。步长大小可根据具体情况调整。例如当参与数据并行的训练机器数目特别多,而网络条件又不好时,有必要适当调整这个步长。如果物理网络非常好,机器间交换模型差非常快速,不同机器看到的模型状态(即参数值)差异较小,时延低,此时模型的收敛速度快。当物理网络条件较差,因为交换模型差导致的时延较大,此时需要适当降低步长以保证训练过程的正常进行。
上述多学习主体并行训练模型的系统,在模型服务器环境中,每台机器通过拉取参数的学习主体从模型服务器获取最新的参数值,根据训练的学习主体进行训练,并将训练结果即模型差通过发送模型差的学习主体发送给模型服务器,模型服务器根据模型差进行调整参数值,实现不同学习主体分离,处理不同任务,不同单台机器各自训练模型,因多台机器并行训练,提高了模型的收敛速度,且单台机器内部多个学习主体无协调并行训练一份模型,进一步提高了收敛速度。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (16)

1.一种多学习主体并行训练模型的方法,包括以下步骤:
通过单台机器中的多个训练的学习主体各自读取样本;
在同一时刻一个训练的学习主体从训练模型中获取当前的参数值;
根据所述当前的参数值对读取的样本进行训练得到新的参数值;
将所述新的参数值更新到所述训练模型中,所述训练模型中保存所述新的参数值;
所述单台机器内包括所述多个训练的学习主体、广播模型差的学习主体、收集模型差的学习主体,所述单台机器内设有工作副本和基础副本,所述工作副本用于存储更新后的参数值;所述基础副本用于存储更新前的参数值;
所述方法还包括:
通过所述收集模型差的学习主体获取广播的模型差;
将所述工作副本中存储的参数值和基础副本中存储的参数值均加上获取的模型差得到更新后工作副本中存储的参数值和基础副本中存储的参数值;
通过所述训练的学习主体按照更新后工作副本中存储的参数值进行训练,并将更新后工作副本中存储的参数值和基础副本中存储的参数值之差作为自身的模型差,通过所述广播模型差的学习主体将自身的模型差广播出去;
将更新后的基础副本中存储的参数值再更新为更新后工作副本中存储的参数值。
2.根据权利要求1所述的方法,其特征在于,无模型服务器的对等网络环境包括网络连接的多台机器,所述单台机器作为一个训练机器,所述学习主体为线程或进程。
3.根据权利要求2所述的方法,其特征在于,所述线程为多核中央处理器上的物理线程,或者为基于英特尔phi协处理器之上的多线程,或者为虚拟机提供的用户态线程。
4.一种多学习主体并行训练模型的方法,包括以下步骤:
通过单台机器中的多个训练的学习主体各自读取样本;
在同一时刻一个训练的学习主体从训练模型中获取当前的参数值;
根据所述当前的参数值对读取的样本进行训练得到新的参数值;
将所述新的参数值更新到所述训练模型中,所述训练模型中保存所述新的参数值;
所述单台机器内包括所述多个训练的学习主体、拉取参数的学习主体、广播模型差的学习主体,且单台机器内设有工作副本和基础副本;所述基础副本用于存储更新前的参数值;所述工作副本用于存储更新后的参数值;所述模型服务器用于存储最新的参数值;
所述方法还包括:
通过所述拉取参数的学习主体从模型服务器获取最新的参数值;
将所述工作副本中存储的参数值更新为将工作副本中存储的参数值加上从模型服务器获取的参数值再减去基础副本中存储的参数值所得到的值,以及将基础副本中存储的参数值更新为从模型服务器获取的参数值;
根据更新后所述工作副本中存储的参数值进行训练;
将所述基础副本内存储的参数值更新为更新后工作副本中存储的参数值;
将更新前工作副本中的参数值与更新前基础副本中的参数值之差作为模型差通过所述广播模型差的学习主体发送给模型服务器,以使所述模型服务器根据所述模型差调整自身所存储的参数值。
5.根据权利要求4所述的方法,其特征在于,存在模型服务器的环境包括与模型服务器网络连接的多台机器,所述单台机器作为一个训练机器,所述学习主体为线程或进程。
6.根据权利要求5所述的方法,其特征在于,所述线程为多核中央处理器上的物理线程,或者为基于英特尔phi协处理器之上的多线程,或者为虚拟机提供的用户态线程。
7.一种多学习主体并行训练模型的装置,其特征在于,包括:
读取模块,用于通过单台机器中的多个训练的学习主体各自读取样本;
获取模块,用于在同一时刻一个训练的学习主体从训练模型的获取当前的参数值;
训练模块,用于根据所述当前的参数值对读取的样本进行训练得到新的参数值;
更新模块,用于将所述新的参数值更新到所述训练模型中,所述训练模型中保存所述新的参数值;
所述单台机器内包括所述多个训练的学习主体、广播模型差的学习主体、收集模型差的学习主体,且单台机器内设有工作副本和基础副本,所述工作副本用于存储更新后的参数值;所述基础副本用于存储更新前的参数值;
所述装置还包括:
收集模块,用于通过所述收集模型差的学习主体获取广播的模型差;
所述更新模块还用于将所述工作副本中存储的参数值和基础副本中存储的参数值均加上获取的模型差得到更新后工作副本中存储的参数值和基础副本中存储的参数值;
所述训练模块还用于通过所述训练的学习主体按照更新后工作副本中存储的参数值进行训练;
广播模块,用于将更新后工作副本中存储的参数值和基础副本中存储的参数值之差作为自身的模型差,通过所述广播模型差的学习主体将自身的模型差广播出去;
所述更新模块还用于将更新后的基础副本中存储的参数值再更新为更新后工作副本中存储的参数值。
8.根据权利要求7所述的装置,其特征在于,无模型服务器的对等网络环境包括网络连接的多台机器,所述单台机器作为一个训练机器,所述学习主体为线程或进程。
9.根据权利要求8所述的装置,其特征在于,所述线程为多核中央处理器上的物理线程,或者为基于英特尔phi协处理器之上的多线程,或者为虚拟机提供的用户态线程。
10.一种多学习主体并行训练模型的装置,其特征在于,包括:
读取模块,用于通过单台机器中的多个训练的学习主体各自读取样本;
获取模块,用于在同一时刻一个训练的学习主体从训练模型的获取当前的参数值;
训练模块,用于根据所述当前的参数值对读取的样本进行训练得到新的参数值;
更新模块,用于将所述新的参数值更新到所述训练模型中,所述训练模型中保存所述新的参数值;
所述单台机器内包括多个训练的学习主体、拉取参数的学习主体、广播模型差的学习主体,且单台机器内设有工作副本和基础副本;所述基础副本用于存储更新前的参数值;所述工作副本用于存储更新后的参数值;所述模型服务器用于存储最新的参数值;
所述装置还包括:
拉取模块,用于通过所述拉取参数的学习主体从模型服务器获取最新的参数值;
所述更新模块还用于将所述工作副本中存储的参数值更新为将工作副本中存储的参数值加上从模型服务器获取的参数值再减去基础副本中存储的参数值所得到的值,以及将基础副本中存储的参数值更新为从模型服务器获取的参数值;
所述训练模块还用于根据更新后所述工作副本中存储的参数值进行训练;
所述更新模块还用于将所述基础副本内存储的参数值更新为更新后工作副本中存储的参数值;
发送模块,用于将更新前工作副本中的参数值与更新前基础副本中的参数值之差作为模型差通过所述广播模型差的学习主体发送给模型服务器,以使所述模型服务器根据所述模型差调整自身所存储的参数值。
11.根据权利要求10所述的装置,其特征在于,存在模型服务器的环境包括与模型服务器网络连接的多台机器,所述单台机器作为一个训练机器,所述学习主体为线程或进程。
12.根据权利要求11所述的装置,其特征在于,所述线程为多核中央处理器上的物理线程,或者为基于英特尔phi协处理器之上的多线程,或者为虚拟机提供的用户态线程。
13.一种多学习主体并行训练模型的系统,其特征在于,所述系统包括单台机器,所述单台机器中的多个训练的学习主体各自读取样本,在同一时刻一个训练的学习主体从训练模型中获取当前的参数值,根据所述当前的参数值对读取的样本进行训练得到新的参数值,将所述新的参数值更新到所述训练模型中,所述训练模型中保存所述新的参数值;
所述单台机器内包括所述多个训练的学习主体、广播模型差的学习主体、收集模型差的学习主体,且单台机器内设有工作副本和基础副本,所述工作副本用于存储更新后的参数值;所述基础副本用于存储更新前的参数值;
所述单台机器内的收集模型差的学习主体获取广播的模型差,以及将所述工作副本中存储的参数值和基础副本中存储的参数值均加上获取的模型差得到更新后工作副本中存储的参数值和基础副本中存储的参数值;所述训练的学习主体按照更新后工作副本中存储的参数值进行训练,并将更新后工作副本中存储的参数值和基础副本中存储的参数值之差作为自身的模型差,通过所述广播模型差的学习主体将自身的模型差广播出去;将更新后的基础副本中存储的参数值再更新为更新后工作副本中存储的参数值。
14.根据权利要求13所述的系统,其特征在于,所述系统还包括无模型服务器的对等网络中网络连接的多台机器,所述单台机器作为一个训练机器,所述学习主体为线程或进程。
15.一种多学习主体并行训练模型的系统,其特征在于,所述系统包括单台机器,所述单台机器中的多个训练的学习主体各自读取样本,在同一时刻一个训练的学习主体从训练模型中获取当前的参数值,根据所述当前的参数值对读取的样本进行训练得到新的参数值,将所述新的参数值更新到所述训练模型中,所述训练模型中保存所述新的参数值;所述单台机器内包括所述多个训练的学习主体、拉取参数的学习主体、广播模型差的学习主体,且单台机器内设有工作副本和基础副本;所述基础副本用于存储更新前的参数值;所述工作副本用于存储更新后的参数值;所述模型服务器用于存储最新的参数值;
所述单台机器中的拉取参数的学习主体从所述模型服务器获取最新的参数值,将所述工作副本中存储的参数值更新为将工作副本中存储的参数值加上从模型服务器获取的参数值再减去基础副本中存储的参数值所得到的值,以及将基础副本中存储的参数值更新为从模型服务器获取的参数值;
所述多个训练的学习主体根据更新后所述工作副本中存储的参数值进行训练,将所述基础副本内存储的参数值更新为更新后工作副本中存储的参数值;
所述广播模型差的学习主体将更新前工作副本中的参数值与更新前基础副本中的参数值之差作为模型差发送给所述模型服务器;
所述模型服务器还用于根据所述模型差调整自身所存储的参数值。
16.根据权利要求15所述的系统,其特征在于,所述系统还包括模型服务器和与所述模型服务器网络连接的多台机器,所述单台机器作为一个训练机器,所述学习主体为线程或进程。
CN201510367503.7A 2015-06-26 2015-06-26 多学习主体并行训练模型的方法、装置和系统 Active CN104980518B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510367503.7A CN104980518B (zh) 2015-06-26 2015-06-26 多学习主体并行训练模型的方法、装置和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510367503.7A CN104980518B (zh) 2015-06-26 2015-06-26 多学习主体并行训练模型的方法、装置和系统

Publications (2)

Publication Number Publication Date
CN104980518A CN104980518A (zh) 2015-10-14
CN104980518B true CN104980518B (zh) 2018-11-23

Family

ID=54276611

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510367503.7A Active CN104980518B (zh) 2015-06-26 2015-06-26 多学习主体并行训练模型的方法、装置和系统

Country Status (1)

Country Link
CN (1) CN104980518B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106909529B (zh) * 2015-12-22 2020-12-01 阿里巴巴集团控股有限公司 一种机器学习工具中间件及机器学习训练方法
CN109643347A (zh) * 2016-08-11 2019-04-16 推特公司 检测与社交媒体平台的脚本化或其他异常交互
CN108009642B (zh) * 2016-10-31 2021-12-14 腾讯科技(深圳)有限公司 分布式机器学习方法和系统
US11836610B2 (en) * 2017-12-13 2023-12-05 Advanced Micro Devices, Inc. Concurrent training of functional subnetworks of a neural network
US20190378016A1 (en) * 2018-06-07 2019-12-12 International Business Machines Corporation Distributed computing architecture for large model deep learning
CN109165515A (zh) * 2018-08-10 2019-01-08 深圳前海微众银行股份有限公司 基于联邦学习的模型参数获取方法、系统及可读存储介质
CN110610242B (zh) * 2019-09-02 2023-11-14 深圳前海微众银行股份有限公司 一种联邦学习中参与者权重的设置方法及装置
CN110874638B (zh) * 2020-01-19 2020-06-02 同盾控股有限公司 面向行为分析的元知识联邦方法、装置、电子设备及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102779025A (zh) * 2012-03-19 2012-11-14 南京大学 一种基于Hadoop的并行化PLSA方法
CN103475711A (zh) * 2013-09-09 2013-12-25 深圳市富斯遥控模型技术有限公司 一种基于模型遥控器实现参数同步的方法及系统
CN103745225A (zh) * 2013-12-27 2014-04-23 北京集奥聚合网络技术有限公司 分布式ctr预测模型训练的方法和系统
CN104714852A (zh) * 2015-03-17 2015-06-17 华中科技大学 一种适用于分布式机器学习的参数同步优化方法及其系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102013213397A1 (de) * 2013-07-09 2015-01-15 Robert Bosch Gmbh Verfahren und Vorrichtung zum Bereitstellen von Stützstellendaten für ein datenbasiertes Funktionsmodell

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102779025A (zh) * 2012-03-19 2012-11-14 南京大学 一种基于Hadoop的并行化PLSA方法
CN103475711A (zh) * 2013-09-09 2013-12-25 深圳市富斯遥控模型技术有限公司 一种基于模型遥控器实现参数同步的方法及系统
CN103745225A (zh) * 2013-12-27 2014-04-23 北京集奥聚合网络技术有限公司 分布式ctr预测模型训练的方法和系统
CN104714852A (zh) * 2015-03-17 2015-06-17 华中科技大学 一种适用于分布式机器学习的参数同步优化方法及其系统

Also Published As

Publication number Publication date
CN104980518A (zh) 2015-10-14

Similar Documents

Publication Publication Date Title
CN104980518B (zh) 多学习主体并行训练模型的方法、装置和系统
US10019294B2 (en) Method of achieving intra-machine workload balance for distributed graph-processing systems
US10917457B2 (en) Command processing in distributed computing systems
EP2834755B1 (en) Platform for continuous graph update and computation
CN110168580A (zh) 使用分布式系统训练分类器模型时的容错恢复系统和方法
CN105138679B (zh) 一种基于分布式缓存的数据处理系统及处理方法
Zhang et al. An adaptive synchronous parallel strategy for distributed machine learning
US10545993B2 (en) Methods and systems of CRDT arrays in a datanet
CN108009642A (zh) 分布式机器学习方法和系统
CN106462582A (zh) 批处理优化渲染和获取架构
CN117785490B (zh) 一种图神经网络模型的训练架构、方法、系统及服务器
CN115048254A (zh) 数据分配策略的仿真测试方法、系统、设备和可读介质
EP3771995A1 (en) Determining object geolocations based on heterogeneous data sources
CN108958933A (zh) 任务执行器的配置参数更新方法、装置及设备
Lu et al. Distributed machine learning based mitigating straggler in big data environment
CN109063265B (zh) 一种海量数据环境下跨域异地协同设计方法和装置
Garcia et al. Asynchronous peer-to-peer distributed computing for financial applications
Li et al. Determining optimal update period for minimizing inconsistency in multi-server distributed virtual environments
Jin et al. Simulation of information propagation over complex networks: Performance studies on multi-GPU
Liao et al. Scalable distributed control plane for On-line social networks support cognitive neural computing in software defined networks
Tomsic et al. Scaling geo-replicated databases to the MEC environment
CN108875930B (zh) 基于多机集群的神经网络训练方法及系统
CN108304370A (zh) 数据更新方法及装置
Yang et al. Compass: A Decentralized Scheduler for Latency-Sensitive ML Workflows
Gupta A heuristic for architecting cloud applications

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant