CN108475349A - 用于稳健的大规模机器学习的系统和方法 - Google Patents
用于稳健的大规模机器学习的系统和方法 Download PDFInfo
- Publication number
- CN108475349A CN108475349A CN201780005404.1A CN201780005404A CN108475349A CN 108475349 A CN108475349 A CN 108475349A CN 201780005404 A CN201780005404 A CN 201780005404A CN 108475349 A CN108475349 A CN 108475349A
- Authority
- CN
- China
- Prior art keywords
- block
- worker
- computing system
- distributed computing
- machine
- 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.)
- Granted
Links
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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
Abstract
本公开提供了用于广义线性模型的新的可缩放坐标下降(SCD)算法和关联系统,不管SCD被横向扩展多少并且不管计算环境如何,其收敛行为始终相同。这使得SCD高度稳健并且使得其能够缩放到低成本商用服务器上的大规模数据集。根据一个方面,通过使用将参数自然分区成块,可以在不折中收敛的情况下一次一块地并行执行更新。对实际广告数据集的实验结果用于证明SCD的成本效益和可缩放性。
Description
技术领域
本公开总体上涉及新颖、高度可缩放和稳健的机器学习系统和技术,并且更特别地涉及用于在分布式计算环境中的稳健的大规模机器学习的系统和方法。
背景技术
尽管已经广泛地对分布式机器学习(ML)算法进行了研究,但是到大数量机器的缩放可能仍然存在挑战性。最快速收敛单机器算法以非常高的速率更新模型参数,这种非常高的速率使得它们难以在没有折衷的情况下分布。作为一个示例,单机器随机梯度下降(SGD)技术在处理每个训练样例之后更新模型参数。作为另一示例,坐标下降(CD)技术在处理单个特征之后更新模型参数。
通往分布SGD或CD的一般方法通过让更新的发生具有一些延迟或通过批处理打断单机器算法的基本流。然而,这会改变算法的收敛行为,使得其对于机器的数量以及计算环境敏感。结果,缩放可能变得非线性并且由于添加机器的益处可能早早变少。
由于这些缩放问题,一些作者已经争论,仅使用具有许多存储器、网卡和GPU的几个“胖”服务器来横向扩展(scale out)ML算法会更好。尽管这对于一些问题来说是有吸引力的方法,但是就I/O带宽来说其具有明显的缩放局限。一般来说,其还比使用低成本的商用服务器(commodity server)的横向扩展更昂贵。GPU特别地对于稀疏数据集来说不总是具有成本效益的解决方案。
发明内容
本公开的实施例的各个方面和优点将部分地在下面的描述中阐述,或者可以从描述中获知,或者可以通过实施例的实践而获知。
本公开的一个示例性方面涉及计算机实现的方法。所述方法包括通过一个或多个计算机器获得有用于机器学习多个模型参数的训练数据集。所述训练数据集包括多个样例。每个样例包括用于多个特征的条目。所述多个特征分别与所述多个模型参数对应。所述方法还包括通过所述一个或多个计算机器将所述多个特征分区成多个块。所述多个块中的至少一个包含至少两个特征。
本公开的另一个示例性方面涉及执行大规模机器学习的分布式计算系统。所述系统包括主计算机器,所述主计算机器包括至少一个处理装置。所述系统包括在所述主计算机器的控制下的多个工作者计算机器。每个工作者计算机器包括至少一个处理装置。所述系统被配置为将训练数据集的多个特征分区成多个块。所述训练数据集包括多个样例。每个样例包括用于多个特征的条目。所述多个块中的至少一个包括至少两个特征。所述系统还被配置为执行机器学习技术的多次迭代以从所述多个块学习模型的多个参数。所述多个参数分别与所述多个特征对应。所述系统被配置为每次迭代仅处理所述多个块中的一个。
本公开的另一个示例性方面涉及结构化数值表示,其至少表示线性模型的多个参数。所述结构化数值表示通过过程而产生。所述过程包括通过分布式计算系统获得训练数据集。所述训练数据集包括多个样例。每个样例包括用于多个特征的条目。所述多个特征分别与线性模型的多个参数对应。所述过程还包括通过分布式计算系统将所述多个特征分区成多个块。所述多个块中的至少一个包含至少两个特征。所述过程还包括通过分布式计算系统执行机器学习技术的多次迭代以从所述多个块学习线性模型的多个参数的值。执行多次迭代包括通过分布式计算系统每次迭代仅处理多个块中的一个。
本公开的其他方面涉及用于实现本文描述的一个或多个方面的系统、方法、设备和有形非暂态计算机可读介质。
参考下面的描述和随附的权利要求书,将可以更好地理解各种实施例的这些和其他特征、方面和优点。结合于本说明书中并且构成本说明书一部分的附图示意了本公开的实施例,并且与描述一起用于说明相关原理。
附图说明
图1描绘了根据本公开的示例性实施例的用于具有标签的训练数据集的模型参数的图形表示。
图2描绘了根据本公开的示例性实施例的示例性稀疏数据集的图形表示。
图3描绘了根据本公开的示例性实施例的被分区成块的特征的图形表示。
图4描绘了根据本公开的示例性实施例的示例性分布式计算系统。
图5描绘了根据本公开的示例性实施例的在特征和样例维度两者上被分片(sharded)的数据的图形表示。
图6描绘了根据本公开的示例性实施例的提供给工作者机器(worker machine)的块的样例分片的图形表示。
图7描绘了根据本公开的示例性实施例的可缩放坐标下降算法的一次迭代的流程图。
图8描绘了由根据本公开的示例性实施例的示例性分布式计算系统进行的对充分统计量的合计的图形图。
图9描绘了示出根据本公开的示例性实施例的可缩放坐标下降算法的横向扩展行为的示例性实验结果的图表。
图10描绘了示出根据本公开的示例性实施例的可缩放坐标下降算法的加速行为的示例性实验结果的图表。
图11描绘了示出根据本公开的示例性实施例的学习具有不同数量的工作者的模型的时间/成本权衡的示例性实验结果的图表。
具体实施方式
本公开的概述
总体上,本公开提供用于稳健的大规模机器学习的系统和方法。特别地,本公开提供用于广义线性模型的新的可缩放坐标下降(scalable coordinate descent,SCD)算法,其克服了在上面背景技术部分概述的缩放问题。本文描述的SCD算法是高度稳健的,不管其被横向扩展(scale out)多少并且不管计算环境如何,都具有相同的收敛行为。这允许SCD缩放到成千上万个核并且使得其很适合用于在分布式计算环境(举例来说,诸如,具有低成本商用服务器的云环境)中运行。
特别地,通过使用将参数自然分区成块,可以在不折中收敛的情况下一次一块地并行执行更新。实际上,对于许多现实世界的问题,SCD具有与流行的单机器坐标下降算法相同的收敛行为。这样,本公开提供了一种新的可缩放坐标下降(SCD)算法,不管SCD被横向扩展多少并且不管计算环境如何,其收敛行为始终相同。
除了SCD算法之外,本公开还提供了一种分布式计算系统,其解决在云计算环境中缩放SCD的特定挑战。例如,慢机(straggler)处理对用SCD实现线性缩放是一个巨大挑战,本文提供了用于慢机处理的特定示例性技术。这样,本公开还提供了用于SCD的分布式系统,其能够使用成千上万个核提供近似线性的缩放。
最后,为了证明SCD的成本效益和可缩放性,本公开还提供对通过使用实际广告数据集而获得的实验结果的概述。特别地,从使用低成本抢占式虚拟机的云计算系统提供实验结果,以显示SCD能够解决具有一万亿训练样例的大规模ML问题。
示例性机器学习环境
在本公开的一些实现方式中,可以将本文描述的系统和方法应用于具有大稀疏数据集的广义线性模型。线性模型在行业内普遍用于大规模预测任务,原因是它们的高预测质量和可解释性。例如,图1描绘了根据本公开的示例性实施例的用于具有标签Y的训练数据集X的模型参数θ的图形表示。
特别地,假设是特征向量并且y是感兴趣的未知变量(例如,点击/非点击、评级等)。线性模型假设输入特征向量和感兴趣的变量y之间的线性相关性如下:
其中是对相关性参数化的模型参数。
使用链接函数(link function),线性模型可以被泛化(GLM)到预测任务,诸如逻辑回归(二元分类)、泊松回归(计数数据)等。要注意,即便线性模型假设x中的线性相关性,但是在本公开的一些实现方式中,可以通过预处理x来引入非线性(例如,使用多项式展开或对数变换)。预处理允许线性模型在原始空间中非常具有表达性和高度非线性。本公开的其余部分假设如果需要则适当的预处理已经完成,并且x是变换之后的特征向量。
作为优化任务的示例性实例,给定被标记的训练样例(x,y)的组S,ML算法能够学习模型参数θ的值。在矩阵符号中,是具有标签的设计矩阵。一个示例性优化任务是找到模型参数使损失最小化:
其中l是取决于优化任务的损失函数。在示例性实例中,可以使用平方损失或者可以使用逻辑损失(logistics loss) 符号λ可以是用于泛化的正则化值。出于简便,将假设L2正则化。然而,本文提供的所有讨论都可以延伸到L1正则化。
根据本公开的另一方面,本文描述的系统和方法可以应用于可能具有上万亿训练样例的数据集,也就是说,因此,训练数据集一般不能装入(fit in)当前可用的存储器容量。本文描述的系统和方法还可以应用于具有数以亿计特征的模型,也就是说,模型将通常装入存储器中,但是本文描述的解决方案也可以处理比可用的存储器大的模型。
一般地,具有大量特征的训练数据集也将具有大量稀疏性。可能有数以亿计的特征,但是每个样例仅少量(例如,几百个)的非零特征。例如,图2描绘了根据本公开的示例性实施例的示例性稀疏数据集的图形表示。在图2中,用带阴影单元指示非零特征,而零值特征被示出为不带阴影。
高稀疏性的原因通常是由于独热(one-hot)编码的分类变量。例如,特征向量x的一部分可能包括由二元向量表示的国家变量,具有与国家一样多的条目。但是每个二元向量将仅包括一个非零条目,与选择的国家对应。对于国家之类的变量,可能仅存在几百个条目,而对于视频ID或用户ID之类的变量,可能存在数以亿计的条目,导致非常高的稀疏性。然而,本文提供的方法不限于分类变量,而是支持任何种类的实值(real-valued)特征向量
例如,假设Nz(x)是特征向量x或设计矩阵X中非零的数量。ML算法可以利用稀疏性并且通常具有Nz(x)而不是|S|×p的等级(order)的运行时。
示例性计算环境
根据本公开的另一方面,本文描述的系统和方法可以在云计算环境的上下文中实现。对于许多应用来说(尤其对于需要随其数据大小缩放的批应用来说)云计算已经变成具有成本效益的解决方案。
因此,尽管本文描述的系统和方法可以应用于任何大规模分布式计算环境,但是本公开中讨论的示例性实施方式聚焦于具有下列特性的云计算环境:共享机器;分布式文件系统;抢占式VM;以及机器故障,如下所述。
共享机器:为了增加利用率,每个物理机器可以被多个虚拟机(VM)共享。
分布式文件系统:容错的分布式文件系统(DFS),诸如谷歌文件系统(Google FileSystemTM)可用于存储数据。除了训练数据之外,DFS可以用于保存容错所需的任何应用状态。
抢占式VM:云调度器可以自由地抢占低优先级的VM,支持优先级较高的VM。当被抢占时,丢失VM的所有状态。然而,在VM被抢占之前向其发送通知。如果需要,这包括长到足以用于应用将其状态保存到用于容错的DFS的宽限期。
机器故障:物理机器可能在没有任何通知的情况下发生故障。假设故障罕有,但确实会发生。因此,长期运行(long-running)的作业需要将它们的状态作为检查点记录到DFS以供容错。
除了抢占式VM之外,在上面概述的特征是大多数现代云计算环境的相当标准的特性。抢占式VM在谷歌的云平台(Cloud PlatformTM(GCP))上并且作为来自亚马逊网络服务(Amazon Web ServicesTM(AWS))的“现货实例(spot instance)”而可获得。抢占式VM是降低用于长期运行批作业的成本的具有吸引力的方式。例如,抢占式VM目前比GCP上的标准VM便宜70%。
就成本来说,具有上述特性的云计算系统对于运行分布式ML作业来说特别具有吸引力。然而,在这样的云上缩放分布式ML算法变得更加具有挑战性。这是因为,由于对于诸如CPU和联网的物理资源的争夺或对于诸如到DFS的访问的软件资源的争夺,机器性能可能存在很大变化。抢占还产生棘手的局面。所有这些事情负面地影响收敛行为。
本公开的系统和方法通过举例的方式而不是限制公开的方式参考在云计算环境中的实现方式来进行讨论。本公开的系统和方法不限于在云计算环境中的实现方式,而是一般地适用于分布式机器学习,而不管其发生在云中还是计算机的另一集合中。
分布式学习的示例性目标
就学习算法和其分布式系统设计来说,本公开的一些主要目标如下:
1、稳健的分布:算法的收敛行为应当始终相同,不管其被横向扩展多少并且不管计算环境如何。
2、线性横向扩展:如果训练样例的数量|S|以及计算资源的数量以M的因子增长,解决学习问题的时间应当保持恒定。这也被称为“弱缩放”。
3、线性加速:如果计算资源的数量以M的因子增长,则在实际时间(wall time)上相同的学习问题应当被M倍快地解决。这也被称为“强缩放”。
本公开的学习算法和分布式系统对于大范围的问题大小和缩放因子满足所有这三个目标。
坐标下降算法的概述和分析
在该部分,提供了对于流行的坐标下降(CD)算法的概述,该算法固有地被限制于单个机器。CD算法一次考虑单个模型参数或坐标θj,假设其他模型参数θ\θj的值是已知且固定的。在这种假设下,对于θj的最优解(optimum)具有如下闭合形式解:
对于线性回归,充分统计量Tj和T′j如下:
为了简化讨论,线性回归被用于所有算法描述中,但是可以类似地处理其他损失函数,诸如使用二阶泰勒展开的逻辑回归。对于稀疏数据,可以通过仅在样例x(其中xj≠0)上迭代来加速对Tj和T′j的计算。
根据这种分析,下面进行如下所示的算法1。如所示,CD一次在一个模型参数θj上迭代。在每次迭代中,合计(aggregate)充分统计量Tj和T′j(8-11行),并且计算局部最优解(12行)。为了使计算Tj的成本独立于其他特征,x\xj,预先计算每个样例的当前预测使用Tj的计算简化为如下:
对于每个样例的预先计算的预测也需要每次迭代进行更新(13-15行)。最后,用其局部最优解更新模型参数(16行)。
CD称为对于装在单个机器上的问题的快速收敛算法。对于算法1的变化包括循环坐标下降和随机坐标下降。
算法1坐标下降
要记得CD一次处理一个参数。CD迭代可以被定义为一个参数的更新并且回合(epoch)作为所有参数上的通过。每个迭代的计算量平均为并且每个回合为
刚在合计充分统计量Tj和T′j之后,算法1的直白的分布式版本将需要系统级同步屏障(system-wide synchronization barrier)(8-11行)。一般地,只有在就通信和屏障来说开销相比于并行的工作的量为小的情况下,分布工作才收到效果。然而,在参数的大数量p和每个特征向量x的高稀疏性(Nz(x)<<p)的情况下,在CD的迭代中存在相对很少的要进行的工作。因此,算法1的直白的分布式版本将不横向扩展也不加速。
可缩放坐标下降算法的概述
SCD通过仔细地将参数分区成多个块并且通过一次迭代一个参数的块来增加每次迭代的工作量。通过跨机器并行地在样例上计算充分统计量来实现缩放。通过保持分区固定并且与机器数量无关来实现稳健性。通过对参数的聪明分区来实现快速收敛。
将在此处讨论假定已经给出分区的SCD算法的一个示例性实现方式,并且其在下面被示为算法2。稍后,本公开将讨论如何选择良好分区。
假设是特征的分区或参数索引{1,…,p}。称为块。与块B关联的参数θ的子集以θB表示;特征向量x的子向量以xB表示,并且设计矩阵X的子矩阵以XB表示。
例如,图3描绘了根据本公开的示例性实施例的被分区成示例性块B1、B2和B3的特征的图形表示。如图3所示,块B中的每一个可以包括一个或多个特征。例如,块B1包含单个特征;块B2包含三个特征;并且块B3包含四个特征。这样,根据本公开的一个方面,多个块中的一个或多个可以包含两个或更多个特征。每个块具有多个特征有助于克服上面在背景技术部分概述的缩放问题。然而,本公开的系统和方法不要求块具有多于一个特征。例如,在至少一个实现方式中,特征/参数可以被分区成分区,其中每个特征一个块。
根据本公开的另一方面,与一次在一个模型参数上迭代的CD相比,SCD一次在参数的块B上迭代(见算法2,7行)。在每次迭代中,并行地计算充分统计量T和T′的部分和(8-13行)。这些被跨机器合计(见算法2,14行),计算B中每个参数的新值(见算法2,15-17行)。
因为已经并行地计算了几个特征的充分统计量,所以违反了CD更新步骤(式3)的独立假设。为了确保收敛,常用的线搜索(line-search)方法被用于找到步长α∈[0,1]并以下述更新每个参数:
显然,步长α越小,与CD相比收敛越慢。在下面包含的进一步讨论中,显示出通过使用聪明的分区,SCD可以通常采用最优步骤,在这种情况下α=1。在已经计算出新值之后,更新对于每个样例预先计算的预测(见算法2,18-22行)。最后,用其新值来更新B中的每个模型参数(见算法2,23-25行)。
算法2可缩放坐标下降
在算法2中,重要的是要注意在样例上完成并行执行。例如,可以通过将样例分片(shard)成多个分片来实现在样例上的这样的并行执行。这意味着每个机器负责为选择的块B中的所有参数θB计算部分充分统计量T和T′,但是仅针对样例的子集。
因此,机器越多,充分统计量计算得越快。只要对于块的工作量足够大,SCD就随更多机器缩放。另外,因为分区固定并且不随机器数量改变,所以SCD稳健。
示例性用纯块的最优更新
至此,已经对稳健性和可缩放性进行讨论。本部分关注收敛速度。本公开的一个关键理念是将模型参数分区成可以被称为纯块的独立参数。下面的讨论证明纯块内的并行更新等效于顺序地处理更新,并且因此,可以采取全更新步骤α=1。
定义1:(纯块(PURE BLOCK))。当且仅当每个样例(x,y)∈S的特征子向量xB至多具有一个非零条目时,块B是纯的:
类似地,如果分区中的所有块是纯的,则{1,...,p}的分区是纯的。
引理1:(更新的独立性)。分区中的所有参数更新是纯的。
证明:正则化最小二乘问题的已知闭合形式解为θ=(XtX+λI)-1Xy,假设结果,块B的参数的闭合形式解为 因为B是纯的,所以格拉姆(XB)tXB是对角矩阵diag(T′1,T′2,...)。于是,标准CD更新(式3)与对于块的所有参数θB的连接的闭合形式解相同。这意味着,在纯块B内,一个参数的更新不影响另一参数的更新。证明完毕。
引理1的一个要点(upshot)是,在纯块内,并行地处理参数更新等效于顺序地处理更新。换言之,在纯分区上的SCD等效于CD,同时还允许缩放。
要注意,纯性和稳健性是两个不同的概念。无论选择了纯或不纯的分区,SCD都是稳健的。纯分区是优选的,因为可以采用最优步长。
例如,图3所示的块B1、B2和B3中的每一个都是纯块。特别地,在块B1、B2和B3中的一个中的每个相应样例的特征子向量至多包含一个非零条目。
生成分区的示例性技术
本部分描述构造用于训练集S=(X,y)的分区的示例性技术。在一些实现方式中,良好分区具有两个特性:(1)针对收敛速度的纯块;和(2)针对系统速度的每块大量的工作。
乍看之下,同时实现这两个特性似乎具有挑战性。然而,大多数现实世界的数据集具有带有良好特性的自然分区。如上所述,通常从几个变量生成输入特征向量。
根据本公开的一个方面,特征可以通过变量分区。更特别地,对于每个变量v,可以构造与从v生成的特征对应的块。这样的分区的特性为:(1)对于许多变量类型,产生的块是纯的。这包括分类变量、分类变量的叉积、桶分化的数值变量(bucketized numericalvariables)、密数值变量等。(2)对于这些变量,每个产生的块具有相等的计算复杂度,其中Nz(XB)=|S|。
简而言之,通过基本变量(underlying variable)的自然分区通常具有所有期望特性。许多现实世界的数据集由这些变量类型组成。
一些数据集包含具有次优特定的变量类型。一个实例为集值变量(set-valuedvariable),诸如电影流派,其中几种流派可以被分配给一部电影。在这种情况下,通过变量的拆分将产生不纯块。
根据本公开的另一方面,为了适应上述在其中通过变量的拆分将导致一个或多个不纯块的情景,可以将这样的变量v的特征拆分成Nz(Xv)/|S|个块。以这种方式拆分特征意味着平均每个块将存在一个有效特征。然而,也可以存在具有多于一个有效特征的训练样例。这意味着一组变量的块可以不纯,并且可以使用步长α<1。
SCD算法的示例性分析
在一些实现方式中,SCD迭代一次处理模型参数的一个块B。迭代的计算复杂度为更新所有参数,也就是说,一个SCD回合采用||次迭代,所以一个回合的总体复杂度为
尽管未在算法2中未示出,但是在每次SCD迭代中需要少数量的同步屏障。当对使用实现SCD的示例性系统进行描述时将在下面对此进行进一步说明。结果,每个SCD回合的屏障数量为
与CD相比,SCD将屏障的数量从减少到在大稀疏数据集上,这可以意味着数百个屏障而不是数以亿计的屏障。屏障数量的减少,连同每个屏障工作量的增加,促成在大量机器上分布SCD上的可行性。
SCD算法满足在上面的分布式学习的示例性目标部分中描述的三个目标。第一,在不管使用多少机器其都执行完全相同的更新计算的意义上,SCD是稳健的。另外,每个SCD更新步骤的结果是确定性的,且不受计算环境影响。第二,每次迭代工作的增加允许SCD理论上线性缩放。实际上,各种系统开销和慢机变成限制性因素,这将在下面进一步描述。
示例性分布式SCD系统和方法
在该部分中,提供了一种分布式系统,其解决在云计算环境中缩放SCD的特定挑战。特别地,图4描绘了根据本公开的示例性实施例的示例性分布式计算系统400。示例性系统400的架构包括单个主计算机器402(下文称为“主机”)和多个工作者计算机器(例如,工作者计算机器404、406和408(下文称为“工作者”))。尽管仅示意了三个工作者404-408,但是系统400可以包括任何数量的工作者,例如包括具有数千核的数百个工作者。
主计算机器402和工作者计算机器404-408中的每一个可以包括一个或多个处理装置和非暂态计算机可读存储介质。处理装置可以是处理器、微处理器或其组件(例如,处理器的一个或多个核)。在一些实现方式中,主计算机器402和工作者计算机器404-408中的每一个可以具有多个处理装置。例如,单个工作者计算机器可以利用或包括一个或多个处理器的多个核。
非暂态计算机可读存储介质可以包括任何形式的计算机存储设备,包括RAM(例如,DRAM)、ROM(例如,EEPROM)、光学存储装置、磁存储装置、快闪存储装置、固态存储装置、硬盘驱动器等。存储介质可以存储一个或多个指令集,在被对应的计算机器执行时,所述指令集使对应的计算机器执行与本公开一致的操作。存储介质还可以存储数据(例如,先前观察或计算的数据)的高速缓存,这将在下面进一步描述。
主计算机器402和工作者计算机器404-408可以分别通过网络相互通信。网络可以包括局域网、广域网或其某种组合。网络可以包括任何数量的有线或无线连接。跨网络的通信可以使用任何数量的协议来进行。
在一些实现方式中,主计算机器402和工作者计算机器404-408中的两个或更多个可以使用单个物理装置来实现。例如,主计算机器402和工作者计算机器404-408中的两个或更多个可以是虚拟机,其共享单个物理机器(例如,单个服务器计算装置)或通过单个物理机器来实现。
在一个示例性实现方式中,主计算机器402和工作者计算机器404-408中的每一个是包括在云计算环境/系统中的计算装置(例如,服务器计算装置)的组件。特别地,计算系统400可以使用符合在上面的示例性计算环境部分中描述的特性的云计算系统来实现,举例来说,诸如,谷歌的云平台(Cloud PlatformTM(GCP))和亚马逊网络服务(Amazon WebServicesTM(AWS))。
根据本公开的一个方面,主机402可以充当协调器(orchestrator)并且可以负责分配工作,而工作者404-408可以执行SCD算法的在计算上花费大的部分。为了分配工作,主机402可以将工作项分发给工作者404-408。每个工作项可以与执行通常仅花费几百毫秒的工作的小单元对应。主机402和工作者404-408二者可以是多线程的以利用多核并行性。
单个主机在某个点可能成为缩放瓶颈。但是如下面讨论的性能实验所示,即便是单个主机也能够缩放到具有成千核的成百工作者。
根据本公开的另一方面,如图5所示,可以在特征和样例维度两者上分片用于SCD的训练数据S=(X,y)。使用块分区(即,之后分片)在特征维度上分片训练数据,而使用行分片(row sharding)在样例维度上将其分片。特征分片使得SCD能够独立于其他块处理与一个块对应的数据,而样例分片使得SCD能够并行地处理XB的不同分片。
特别地,如将在下面进一步描述的,在样例维度的分片使得工作者能够并行地并且以分布式方式对样例分片进行操作。例如,图6描绘了根据本公开的示例性实施例的提供给相应工作者机器(605和606)的块604的样例分片601、602和603的图形表示。特别地,将样例分片601提供给工作者机器606,而将样例分片602和603提供给工作者机器605。
再次参考图5,其余数据按照下述方式分片。仅在特征维度(在之后)对模型参数θ分片,而仅在样例维度(在行分片之后)对标签y和预测分片。
网格中的每个单元可以存储在单独文件中。所述文件可以保持对于一个块的许多样例的数据。例如,如果存在被分区成个块的p=109个特征和每行具有106个样例的被分片为104行的|S|=1010个样例,则设计矩阵X可以存储在104*100=106个文件中。这样,尽管图1、图2、图3和图6中的单元一般表示单个值,但是图5的单元可以与一大组样例、参数、标签、预测对应,视情况而定。
要记得,SCD算法的主循环一次在参数的一个块上迭代(见算法2,4-26行)。在一些实现方式中,如图7所示,该循环的一次迭代可以转换成下列步骤:
1、选择块:主机基于各种启发法选择块B,所述启发法尝试估计哪个块将对收敛具有最大影响。
2、计算充分统计量:工作者在块B的行分片上计算充分统计量T和T′的部分和。将部分和存储在工作者的存储器中。
3、合计充分统计量:将工作者的充分统计量合计并发送回到主机。
4、搜索步长:主机根据在上面可缩放坐标下降算法的概述部分中描述的线搜索方法来选择步长。
5、更新模型参数:主机使用选择的步长和充分统计量更新块B的模型参数θ。
6、更新预测:工作者更新其预测来反映模型参数的改变。
在图7中描绘了这个流中的步骤。主机可以通过自己执行步骤(例如,步骤1、4和5)或通过对于在计算上花费大的步骤(例如,步骤2、3和6)将工作项分配给工作者来顺序地执行步骤。后者可以被分布在工作者上并且并行执行。
步骤的顺序执行在步骤2、3和6之后有效地为工作者创建系统级屏障。一般地,SCD的整个迭代花费少于一分钟,这意味着每几秒存在系统级屏障。处理慢机、抢占式和/或发生故障的工作者并且以这种速率执行系统级屏障存在某些挑战。现在更具体地描述分配给工作者的步骤。
对于计算充分统计量,工作者可以在选择的块的行分片上计算充分统计量的部分和(见算法2,8-13行;以及图6)。每个工作者可以是多线程的,并且线程可以并行地执行工作项。在这种情况下,每个工作项可以指一个行分片。给定工作项,工作者线程可以获得用于对应行分片的训练数据、标签y和预测以便计算统计量。这些可以在工作者的高速缓存、在另一工作者的高速缓存或在DFS中找到。下面提供关于由每个工作者保持的高速缓存的更多细节。
可以使用用于十万个最频繁的特征的线程本地存储和用于其余特征的工作者级存储(在所有线程上)将充分统计量存储在每个工作者的存储器中。这种两级方案改善了硬件高速存储本地性并且还允许统计量的无锁定更新。在工作者级存储中可能会发生更新冲突,但是他们具有非常低的发生概率,因为其仅用于不频繁的特征。
在通过工作者计算充分统计量的部分和之后,可以跨工作者对其进行合计(见算法2,14行)。如果每个工作者将其统计量发送回到主机,则由于TCP聚播(Incast)问题将创建缩放瓶颈。相反,根据本公开的一个方面,可以将统计量分区成范围并且可以在工作者之间分布合计。例如,图8描绘了由根据本公开的示例性实施例的示例性分布式计算系统进行的对充分统计量的合计的图形图。
在这种情况下,每个工作项可以指充分统计量的一个范围。为了负载平衡,每个范围的大小可以设为约128KB。被分配特定工作项的工作者线程可以变成对于统计量的对应范围的合计器。其可以从其他工作者收集对于范围的统计量,执行合计,然后将合计的范围发送到主机。可以跨工作者并行地合计多个范围,以利用所有可用网络带宽。
例如,假设|W|为工作者的数量,并且假设r>|B|/|W|是合计范围的数量,其中|B|是块中特征的数量。每个范围的大小为|B|/r。每个范围创建对于合计器的入站网络流量,对于每个(叶)工作者的|B|/r出站流量,以及对于主机的|B|/r入站流量。这意味着,在所有范围上,每个工作者具有|B|入站和出站网络流量,而主机具有|B|入站流量。结果,不管存在多少工作者,工作者和主机的网络流量保持恒定。
在主机更新模型参数之后,可以更新预测以反映模型参数的改变(见算法2,18-22行)。在这种情况下,每个工作项可以指一个行分片。给定工作项,工作者线程可以获得对应行分片的训练数据和标签y以便更新预测。同样,这些可以在工作者的高速缓存、在另一工作者的高速缓存或在DFS中找到。
如上所述,慢机处理对于实现线性缩放可能是一个巨大挑战。特别地,SCD在理论上完美地缩放。然而,实际上,各种开销和慢机成为限制因素。多达约一千个工作者,慢机到目前为止成为最大的限制因素。这之后,单个主机设计变成限制因素。
要记得,在SCD系统流中的步骤2、3、6之后存在对于工作者的系统级屏障(见图7)。因此,由最慢的工作者(即,最差的慢机)节制执行这些步骤花费的时间。系统横向扩展越多,慢机效应变得越大。慢机在SCD中尤其具有挑战性,因为每几秒就存在屏障。另外,SCD被加速越多,屏障之间的时间越短。
慢机通常由CPU、网络或DFS性能的变化引起。在本公开的一些实现方式中,动态负载平衡是用于应对慢机的主要机制。动态负载平衡消除了由CPU和网络性能引起的大部分慢机。然而,由于尾延迟(tail latency),在一些实现方式中,单单负载平衡不足以处理一些DFS慢机。可以添加高速缓存和预取来应对这些尾延迟。
关于动态负载平衡,DFS使得任何工作者能够对任何工作项进行工作。任何时候工作者线程空闲,其向主机索要新工作项。这产生与多线程程序中的动态负载平衡类似的动态负载平衡,其中较快的工作者被分配更多的工作项,反之对于较慢的工作者也一样。在一些实现方式中,为了促进负载平衡,系统被配置为使得每个工作者线程存在至少四个工作项。
在一些实现方式中,本公开的系统和方法还利用高速缓存和预取来提供改进的性能。更特别地,在具有对于DFS的共享访问的云计算环境中,尾延迟可能严重至几秒。减轻这些尾延迟的最好方式是使用高速缓存尽量避免DFS。这样,用于训练数据、标签y和预测的文件可以使用最近最少使用(“LRU”)收回策略(eviction strategy)被高速缓存在每个工作者中。压缩文件可以被高速缓存在存储器中,并且在工作者需要访问它们时被解压缩。
在一些实现方式中,为了改善高速缓存,在其主循环的每次迭代中,主机尝试将相同的行分片分配给给定工作者。如果由于负载平衡行分片最终被不同的工作者“偷取”,则通过从旧工作者的高速缓存请求行分片的文件,新工作者可以避免访问DFS。当这种情况发生时,可以使用对冲请求(hedged-request)以避免响应慢的工作者。可以将请求发送到旧工作者和DFS两者。完成的第一请求成为“优胜者”而“失败者”被取消。
使用压缩,即便是用于标签y和预测的小高速缓存也可以是高度有效的。然而,对于训练数据来说高速缓存不太有效。这是因为SCD算法的每次迭代访问与不同的块B关联的训练数据。结果,对于训练数据的高速缓存命中率常常低得多。这意味着工作者为了训练数据不得不频繁访问DFS。在这种情况下,为了最小化尾延迟的影响,预取用于下一次迭代的训练数据。结果,即便是非常慢的DFS访问也不具有影响,只要其比整个迭代短。
在一些实现方式中,本公开的系统和方法还可以包括应对VM抢占的技术。特别地,要记得在VM被抢占之前可以向其发送通知。如果需要,这可以包括长到足以用于应用将其状态保存到用于容错的DFS的宽限期。根据本公开的一个方面,这个宽限期可用于耗尽(drain)将被抢占的工作者。例如,当工作者被通知其将被抢占时,其简单地停止索要新工作项。结果,其他工作者将最终会偷取所有被抢占的工作者的行分片和关联数据。
在一些实现方式中,主机通常被配置为使用标准VM来阻止抢占。然而,即便主机被配置有抢占式VM,仅存在一个主机和许多工作者,所以其被抢占的几率为低。如果主机被抢占,则这可以被当做机器故障。
机器故障非常罕见,但的确会发生。在一些实现方式中,当对于行分片的预测从工作者的高速缓存收回时,它们仅被写入到DFS中。结果,如果工作者发生故障,则预测会被丢失。当发生这种情况时,由主机协调的恢复阶段可以简单地重新计算丢失的预测。
当然,主机也会发生故障。因此,在每次迭代结束时,主机可以将其状态的检查点记录到DFS,其包括模型参数θ的当前值。这样,如果主机发生故障并且重启,其可以使用最后的检查点来恢复其状态并且从停止的地方继续。
示例性实验数据
在该部分中,研究SCD对大规模广告数据集的性能。该数据集具有17亿个参数(p=1.7*109),其具有在个块中的纯分区。用从设计矩阵中具有四万亿非零元素的两百亿样例直到1万亿样例(|S|=1012)和2百万亿元素(Nz(X)=2*1014),对数据集的几个缩放进行实验。
CD被考虑为对于线性模型的最快解决算法,并且是对于单机器实现方式的流行选择(例如,LIBLINEAR或glmnet)。如在上面示例性用纯块的最优更新部分中所表明,在纯分区上,SCD产生具有与CD相同的收敛行为的相同模型。这样,当前描述的实验关注于运行时和缩放问题。特别地,研究了SCD的横向扩展和加速。
所有实验使用低优先级抢占式VM在内部谷歌GoogleTM云中运行。每个VM使用了8个核和少于30GB的存储器。在谷歌GoogleTM的外部云中相当的抢占式VM是n1-标准-8(n1-standard-8),每小时价格为$0.12。工作者以2∶1的比率被过线程(overthreaded)以隐藏I/O延迟。
如在上面分布式学习的示例性目标部分中限定的,横向扩展涉及当问题以及机器数量增长时的系统行为。当前描述的实验考虑了数据集的M∈{1,2,4,8,16,32,50}缩放和相应地以相同因子M增加的机器数量。对于M横向扩展变体中的每一个,针对一个回合运行SCD,例如194次迭代,并且报告平均迭代时间。基线1倍实验对于200亿训练样例使用了20个机器,2倍横向扩展对于400亿训练样例使用了40个机器等。要注意,对于50倍缩放,数据集由1万亿样例组成,其比“大规模”NetflixTM奖金数据集(prize dataset)多10000倍数据点。压缩的50倍数据集在DFS上占据约1拍字节,包括标准复制。
图9示出SCD的横向扩展行为。与完美的线性缩放相比,SCD对于16倍(=1600%)横向扩展显示小于10%的退化,并且对于50倍横向扩展显示约35%的退化。退化的主要原因之一是由SCD的非常短的屏障引起的慢机。数据集越大,并且随之文件越多,撞见严重慢机的几率越高。例如,在更新预测阶段,系统在约6秒内协调具有8000核的1000个工作者和几十万的工作项。因此,作为结论,SCD允许近似线性的横向扩展到极其大的数据集。
来自分布式系统的第二个增益是加速。也就是说,在问题大小保持相同时增加机器的数量。在200亿训练样例上研究上面提出的系统的加速,并且机器的数量从1个工作者变化到128个工作者。同样,运行系统的每个变体一个回合,并且报告平均迭代时间。因为SCD是稳健的,所以每个配置都准确地学习到相同模型。
图10的图表显示平均迭代时间对工作者数量的关系。可以看出,SCD提供对线性加速行为的近似。实际上,所有配置的性能都超出单个工作者的理论线性加速。超线性加速的原因在于能够被高速缓存的数据量随更多的工作者增加。例如,如果一个工作者具有1GB存储器用于高速缓存标签数据并且存在10GB标签文件,则借助一个工作者,至多10%的标签请求为高速缓存命中,而借助32个工作者,可以高速缓存总共32GB标签,这导致高得多的高速缓存命中率。
在图10和图11中,超线性加速在借助16至32个工作者时具有其最优表现,并且在借助更多工作者时移向接近线性加速。这是被预期的,因为更多的机器导致更快的迭代,更短的屏障,并且因此更强的慢机效应。例如,具有1秒的慢机可能对于具有32个机器的运行没有任何影响,原因是屏障是每3秒,而对于64个机器,其中完美的加速意味着1.5秒屏障,相同的慢机具有更大影响。更激进的预取(例如,提前两次迭代)可以解决这种尾延迟问题。
使系统加速意指在使用更多资源时更快地得到结果。如果像在一般的云环境中一样对于资源的成本是恒定的,则理论线性加速意指用完全相同的成本更快地获得结果。然而,实际上,加速不是完全线性的,并且可能会发生附加成本。
特别地,图11的图表示出用于加速SCD算法的时间对成本的权衡。资源的数量从1个工作者变化到128个工作者,并且图表示出收敛时间(例如,在这种情况下为运行SCD五个回合)对机器的成本的关系。例如,用128个机器运行SCD五个回合花费大约一个小时,而一个工作者的时间大约为140小时。运行128个工作者约1个小时的成本约为$16,而运行一个工作者140小时的成本约为$17。因为SCD是稳健的,所以这意味着SCD可以用与单个机器相同的资源账单快100倍地得到相同模型。
考虑主机的成本,用128个工作者运行SCD实际上便宜得多。特别地,用少两倍的成本快100倍地实现相同结果。如果单单需要最小化成本,则最优选择将是使用16个工作者,其成本少于$10并且需要大约5小时。多花1美元并且用32个机器运行将在2.5小时后给出结果。
除了资源成本之外,学习模型还与其他成本关联,诸如等候结果的终端用户的时间或薪水,能够探索的实验的数量等。这意味着减少运行时通常比计算成本宝贵得多。考虑这样的其他成本,本文描述的系统和方法以少量高的计算成本提供很大加速。
最后,重要的是要注意,在低优先级云环境上运行非常大的数据集非常廉价。例如,运行广告数据集的200亿样例版本使其收敛在谷歌GoogleTM云中将花费大约$10。给定在其被应用时这样的模型提供的值,成本为小多个数量级。
这样,本公开提供了用于广义线性模型的新的可缩放坐标下降(SCD)算法。SCD是高度稳健的,不管其被横向扩展多少并且不管计算环境如何,都具有相同的收敛行为。这允许SCD缩放到成千上万个核并且使得其很适合用于在具有低成本商用服务器的云环境中运行。对于许多现实世界的问题,SCD具有与流行的单机器坐标下降(CD)算法相同的收敛行为。
除了SCD算法之外,还提供了一种分布式系统,其解决在云计算环境中缩放SCD的特定挑战。使用谷歌GoogleTM的内部云,显示出SCD可以使用成千上万个核在拍字节的压缩数据上为1万亿的训练样例提供近似线性的缩放。
附加公开
本文讨论的技术涉及服务器、数据库、软件应用和其他基于计算机的系统以及由这样的系统采取的动作和发送到和来自这样的系统的信息。基于计算机的系统的固有灵活性允许在两个部件和多个部件之间对任务和功能进行各种各样的可能的配置、组合和划分。例如,可以使用单个服务器或组合工作的多个服务器来实现本文讨论的服务器过程。数据库和应用可以实现在单个系统上或跨多个系统分布。分布式组件可以顺序或并行地操作。
尽管已经关于本公开的主题的各种特定示例性实施例详细描述了本公开的主题,但是每个示例性实施例是通过进行说明的方式来提供的,并不限制本公开。在获得前述内容的理解之后,本领域技术人员可以容易形成对这样的实施例的更改、变化和等效方案。因此,对于本领域普通技术人员显而易见的是,主题公开内容不排除包含对当前主题的这样的修改、变化和/或添加。例如,被示意或描述为一个实施例或实施方式的一部分的特征可以与另一实施例或实施方式一起使用以产生再进一步的实施例。因此,本公开包含这样的更改、变化和等效方案。
此外,尽管图7描绘了以特定顺序执行的步骤用于示意和讨论的目的,但是本公开的方法不限于特定地示意的顺序或布置。在不脱离本公开的范围的情况下,可以以各种方式对图7中示意的各种步骤进行省略、重新布置、组合和/或改编。
Claims (20)
1.一种计算机实现的方法,包括:
通过一个或多个计算机器获得有用于机器学习多个模型参数的训练数据集,所述训练数据集包括多个样例,每个样例包括用于多个特征的条目,并且其中所述多个特征分别与所述多个模型参数对应;
通过所述一个或多个计算机器将所述多个特征分区成多个块,其中,所述多个块中的至少一个包含至少两个特征。
2.根据权利要求1所述的计算机实现的方法,其中,通过所述一个或多个计算机器将所述多个特征分区成所述多个块包括:通过所述一个或多个计算机器将所述多个特征分区成所述多个块,所述多个块中的至少一个包括纯块,并且其中,在每个纯块中,用于每个样例的相应特征子向量至多具有一个非零条目。
3.根据权利要求1所述的计算机实现的方法,其中:
所述多个特征中的每一个与多个变量中的一个对应;并且
通过所述一个或多个计算机器将所述多个特征分区成所述多个块包括:通过所述一个或多个计算机器根据所述多个变量分区所述多个特征,使得块的数量等于变量的数量,并且使得所述多个块中的每一个包括与所述多个变量中的相应一个对应的相应特征。
4.根据权利要求1所述的计算机实现的方法,其中:
所述多个特征中的每一个与多个变量中的一个对应,所述多个变量包括一个或多个分类变量和一个或多个集值变量;并且
通过所述一个或多个计算机器将所述多个特征分区成所述多个块包括:
对于所述一个或多个分类变量中的每一个,通过所述一个或多个计算机器根据所述一个或多个分类变量分区与所述一个或多个分类变量对应的特征,使得每个产生的块包括与所述一个或多个分类变量中的相应一个对应的相应特征;以及
对于一个或多个集值变量中的每一个,通过所述一个或多个计算机器将与所述一个或多个集值变量对应的特征分区成每个集值变量至少两个块,使得每个产生的块平均包括每个样例一个有效特征。
5.根据权利要求1所述的计算机实现的方法,还包括:
通过所述一个或多个计算机器从所述多个块学习模型参数,其中学习模型参数包括:通过所述一个或多个计算机器执行多次迭代,并且其中执行所述多次迭代包括:通过所述一个或多个计算机器每次迭代仅处理所述多个块中的一个。
6.根据权利要求5所述的计算机实现的方法,其中,通过所述一个或多个计算机器从所述多个块学习模型参数还包括:
通过所述一个或多个计算机器将所述多个样例分片为多个样例分片;以及
在每次迭代时,通过多个工作者计算机器分别地并行处理用于所述多个块中的一个的多个样例分片。
7.一种执行大规模机器学习的分布式计算系统,所述系统包括:
主计算机器,包括至少一个处理装置;以及
在所述主计算机器的控制下的多个工作者计算机器,其中每个工作者计算机器包括至少一个处理装置;
其中,所述系统被配置为:
将训练数据集的多个特征分区成多个块,其中所述训练数据集包括多个样例,其中每个样例包括用于所述多个特征的条目,并且其中所述多个块中的至少一个包括至少两个特征;以及
执行机器学习技术的多次迭代以从所述多个块学习模型的多个参数,其中所述多个参数分别与所述多个特征对应,并且其中所述系统被配置为每次迭代仅处理所述多个块中的一个。
8.根据权利要求7所述的分布式计算系统,其中,为了执行每次迭代,所述系统被配置为:
通过所述主计算机器选择所述多个块中的一个;
通过所述工作者计算机器确定用于选择的块的充分统计量;
合计确定的充分统计量;
基于合计的充分统计量更新与选择的块对应的参数;以及
分别为多个更新的参数的更新多个预测。
9.根据权利要求8所述的分布式计算系统,其中,在每次迭代时,所述主计算机器基于一个或多个启发法选择所述多个块中的一个,所述一个或多个启发法估计哪个块将对收敛具有最大影响。
10.根据权利要求8所述的分布式计算系统,其中,为了执行每次迭代,所述系统还被配置为:
在合计所述充分统计量之后并且在更新所述模型的参数之前通过主计算机器确定步长。
11.根据权利要求8所述的分布式计算系统,其中,为了确定用于选择的块的充分统计量,所述多个工作者计算机器被配置为:
获得用于选择的块的多个样例的相应分片;以及
并行地分别为相应分片确定充分统计量。
12.根据权利要求11所述的分布式计算系统,其中,所述主计算机器尝试在每次迭代中将相同的相应分片分配给每个工作者计算机器以便改善高速缓存。
13.根据权利要求11所述的分布式计算系统,其中,每个工作者计算机器还被配置成为下一次迭代预取相应分片以便减少尾延迟的影响。
14.根据权利要求8所述的分布式计算系统,其中,为了确定用于选择的块的充分统计量,所述多个工作者计算机器中的至少一个被配置为:
从保持在这样的工作者计算机器的第一存储器中的第一高速缓存和保持在至少一个其他工作者计算机器的第二存储器中的第二高速缓存中的至少一个获得相应分片、用于相应分片的一个或多个标签和用于相应分片的多个预测中的一个或多个中的至少一个。
15.根据权利要求8所述的分布式计算系统,其中,为了合计确定的充分统计量,所述系统被配置为:
将确定的充分统计量分区成多个范围;
通过所述主计算机器将所述多个范围分配给所述多个工作者计算机器中的相应工作者计算机器;
通过被分配所述范围中的一个的每个工作者计算机器从其他工作者计算机器取得用于对应范围的充分统计量;
通过被分配所述范围中的一个的每个工作者计算机器合计用于对应范围的充分统计量;以及
通过被分配所述多个范围中的一个的每个工作者计算机器将合计的用于对应范围的充分统计量发送到所述主计算机器。
16.根据权利要求8所述的分布式计算系统,其中:
每个工作者计算机器被配置为实现并行地执行工作项的多个工作者线程;并且
每个工作者计算机器被配置为:
保持至少两级存储器存储,包括单个工作者级存储和多个线程级存储,所述多个线程级存储分别用于这样的工作者计算机器实现的多个工作者线程;
在每个线程级存储处存储与最频繁观察到的特征对应的第一数量的充分统计量;并且
在工作者级存储处存储与不频繁地观察到的特征对应并且未存储在线程级存储处的第二数量的充分统计量;
其中,所述两级存储器存储能够实现充分统计量的无锁定更新。
17.一种至少表示线性模型的多个参数的结构化数值表示,所述结构化数值表示通过一个过程产生,所述过程包括:
通过分布式计算系统获得训练数据集,所述训练数据集包括多个样例,每个样例包括用于多个特征的条目,并且其中所述多个特征分别与所述线性模型的所述多个参数对应;
通过所述分布式计算系统将所述多个特征分区成多个块,其中,所述多个块中的至少一个包含至少两个特征;以及
通过分布式计算系统执行机器学习技术的多次迭代以从所述多个块学习用于所述线性模型的多个参数的值;
其中,执行多次迭代包括通过分布式计算系统每次迭代仅处理多个块中的一个。
18.根据权利要求17所述的结构化数值表示,其中,通过所述分布式计算系统将所述多个特征分区成所述多个块包括:通过所述分布式计算系统将所述多个特征分区成多个纯块,在所述多个纯块中用于每个样例的相应特征子向量至多具有一个非零条目。
19.根据权利要求17所述的结构化数值表示,其中:
所述多个特征中的每一个与多个变量中的一个对应;并且
通过所述分布式计算系统将所述多个特征分区成所述多个块包括:通过所述分布式计算系统根据所述多个变量分区所述多个特征,使得块的数量等于变量的数量,并且使得所述多个块中的每一个包括与所述多个变量中的相应一个对应的相应特征。
20.根据权利要求17所述的结构化数值表示,其中,通过所述分布式计算系统执行机器学习技术的多次迭代包括对于每次迭代:
通过所述分布式计算系统的主计算机器选择所述多个块中的一个;
通过所述分布式计算系统的多个工作者计算机器获得用于选择的块的多个样例的相应分片;
通过所述多个工作者计算机器并行地分别确定用于相应分片的充分统计量;
通过所述分布式计算系统合计确定的充分统计量;
通过所述分布式计算系统基于合计的充分统计量更新与选择的块对应的参数;以及
通过所述分布式计算系统更新分别用于多个更新的参数的多个预测。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662294683P | 2016-02-12 | 2016-02-12 | |
US62/294,683 | 2016-02-12 | ||
PCT/US2017/017310 WO2017139534A1 (en) | 2016-02-12 | 2017-02-10 | Systems and methods for robust large-scale machine learning |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108475349A true CN108475349A (zh) | 2018-08-31 |
CN108475349B CN108475349B (zh) | 2021-10-08 |
Family
ID=58159519
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780005404.1A Active CN108475349B (zh) | 2016-02-12 | 2017-02-10 | 用于稳健的大规模机器学习的系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10482392B2 (zh) |
EP (1) | EP3380993B1 (zh) |
CN (1) | CN108475349B (zh) |
WO (1) | WO2017139534A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110929884A (zh) * | 2019-11-22 | 2020-03-27 | 北京大学 | 一种基于列划分的分布式机器学习优化的分类方法及装置 |
CN112818291A (zh) * | 2019-11-18 | 2021-05-18 | 百度在线网络技术(北京)有限公司 | 转化率预测方法、装置、设备和介质 |
CN113135480A (zh) * | 2021-05-13 | 2021-07-20 | 上海梯之星信息科技有限公司 | 基于局部和整体特征的电梯故障预警方法 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018031958A1 (en) * | 2016-08-11 | 2018-02-15 | Twitter, Inc. | Aggregate features for machine learning |
US11353868B2 (en) * | 2017-04-24 | 2022-06-07 | Intel Corporation | Barriers and synchronization for machine learning at autonomous machines |
CN109388661B (zh) * | 2017-08-02 | 2020-04-21 | 创新先进技术有限公司 | 一种基于共享数据的模型训练方法及装置 |
CN108521352B (zh) * | 2018-03-26 | 2022-07-22 | 天津大学 | 基于随机回报网的在线云服务尾延迟预测方法 |
US11461694B2 (en) | 2018-09-27 | 2022-10-04 | International Business Machines Corporation | Machine learning implementation in processing systems |
US20220108215A1 (en) * | 2019-01-16 | 2022-04-07 | Google Llc | Robust and Data-Efficient Blackbox Optimization |
US11573803B2 (en) | 2019-05-07 | 2023-02-07 | International Business Machines Corporation | Parallel training of machine learning models |
US11886960B2 (en) | 2019-05-07 | 2024-01-30 | International Business Machines Corporation | Elastic training of machine learning models via re-partitioning based on feedback from the training algorithm |
US11562270B2 (en) | 2020-04-02 | 2023-01-24 | International Business Machines Corporation | Straggler mitigation for iterative machine learning via task preemption |
US20210390483A1 (en) * | 2020-06-10 | 2021-12-16 | Tableau Software, LLC | Interactive forecast modeling based on visualizations |
US20220050718A1 (en) * | 2020-08-12 | 2022-02-17 | Core Scientific, Inc. | Scalability advisor |
CN114143536B (zh) * | 2021-12-07 | 2022-09-02 | 重庆邮电大学 | 一种shvc空间可伸缩帧的视频编码方法 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6473080B1 (en) * | 1998-03-10 | 2002-10-29 | Baker & Taylor, Inc. | Statistical comparator interface |
US20050086185A1 (en) * | 2000-11-16 | 2005-04-21 | Microsoft Corporation | Methods and systems for computing singluar valve decompositions of matrices and low rank approximations of matrices |
US20100031003A1 (en) * | 2008-07-30 | 2010-02-04 | International Business Machines Corporation | Method and apparatus for partitioning and sorting a data set on a multi-processor system |
JP2010128762A (ja) * | 2008-11-27 | 2010-06-10 | Alps Electric Co Ltd | 操作感触付与型入力装置 |
CN102141963A (zh) * | 2010-01-28 | 2011-08-03 | 阿里巴巴集团控股有限公司 | 一种数据分析方法和设备 |
CN102227121A (zh) * | 2011-06-21 | 2011-10-26 | 中国科学院软件研究所 | 基于机器学习的分布式缓存策略自适应切换方法及系统 |
CN104200222A (zh) * | 2014-08-28 | 2014-12-10 | 中国人民解放军国防信息学院 | 一种基于因子图模型的图片中对象识别方法 |
CN104636273A (zh) * | 2015-02-28 | 2015-05-20 | 中国科学技术大学 | 一种带多级Cache的SIMD众核处理器上的稀疏矩阵存储方法 |
CN104915636A (zh) * | 2015-04-15 | 2015-09-16 | 北京工业大学 | 基于多级框架显著性特征的遥感影像道路识别方法 |
US20150324655A1 (en) * | 2013-12-01 | 2015-11-12 | University Of Florida Research Foundation, Inc. | Distributive Hierarchical Model for Object Recognition in Video |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SG126752A1 (en) * | 2004-03-05 | 2006-11-29 | Infineon Technologies Ag | Protocols for transmission of data, in particular over telephone lines |
US10890589B2 (en) | 2014-05-27 | 2021-01-12 | Georgetown University | Metabolic biomarkers for memory loss |
-
2017
- 2017-02-10 US US15/429,216 patent/US10482392B2/en active Active
- 2017-02-10 WO PCT/US2017/017310 patent/WO2017139534A1/en active Application Filing
- 2017-02-10 CN CN201780005404.1A patent/CN108475349B/zh active Active
- 2017-02-10 EP EP17707145.3A patent/EP3380993B1/en active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6473080B1 (en) * | 1998-03-10 | 2002-10-29 | Baker & Taylor, Inc. | Statistical comparator interface |
US20050086185A1 (en) * | 2000-11-16 | 2005-04-21 | Microsoft Corporation | Methods and systems for computing singluar valve decompositions of matrices and low rank approximations of matrices |
US20100031003A1 (en) * | 2008-07-30 | 2010-02-04 | International Business Machines Corporation | Method and apparatus for partitioning and sorting a data set on a multi-processor system |
JP2010128762A (ja) * | 2008-11-27 | 2010-06-10 | Alps Electric Co Ltd | 操作感触付与型入力装置 |
CN102141963A (zh) * | 2010-01-28 | 2011-08-03 | 阿里巴巴集团控股有限公司 | 一种数据分析方法和设备 |
CN102227121A (zh) * | 2011-06-21 | 2011-10-26 | 中国科学院软件研究所 | 基于机器学习的分布式缓存策略自适应切换方法及系统 |
US20150324655A1 (en) * | 2013-12-01 | 2015-11-12 | University Of Florida Research Foundation, Inc. | Distributive Hierarchical Model for Object Recognition in Video |
CN104200222A (zh) * | 2014-08-28 | 2014-12-10 | 中国人民解放军国防信息学院 | 一种基于因子图模型的图片中对象识别方法 |
CN104636273A (zh) * | 2015-02-28 | 2015-05-20 | 中国科学技术大学 | 一种带多级Cache的SIMD众核处理器上的稀疏矩阵存储方法 |
CN104915636A (zh) * | 2015-04-15 | 2015-09-16 | 北京工业大学 | 基于多级框架显著性特征的遥感影像道路识别方法 |
Non-Patent Citations (3)
Title |
---|
DONGYEOP KANG 等: "Data/Feature Distributed Stochastic Coordinate Descent for Logistic Regression", 《 CIKM "14: PROCEEDINGS OF THE 23RD ACM INTERNATIONAL CONFERENCE ON CONFERENCE ON INFORMATION AND KNOWLEDGE MANAGEMENT》 * |
HSIANG-FU YU 等: "Scalable Coordinate Descent Approaches to Parallel Matrix Factorization for Recommender Systems", 《2012 IEEE 12TH INTERNATIONAL CONFERENCE ON DATA MINING》 * |
KAI-WEI CHANG: "Coordinate Descent Method for Large-scale L2-loss Linear Support Vector Machines", 《JOURNAL OF MACHINE LEARNING RESEARCH》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112818291A (zh) * | 2019-11-18 | 2021-05-18 | 百度在线网络技术(北京)有限公司 | 转化率预测方法、装置、设备和介质 |
CN112818291B (zh) * | 2019-11-18 | 2023-09-01 | 百度在线网络技术(北京)有限公司 | 转化率预测方法、装置、设备和介质 |
CN110929884A (zh) * | 2019-11-22 | 2020-03-27 | 北京大学 | 一种基于列划分的分布式机器学习优化的分类方法及装置 |
CN113135480A (zh) * | 2021-05-13 | 2021-07-20 | 上海梯之星信息科技有限公司 | 基于局部和整体特征的电梯故障预警方法 |
CN113135480B (zh) * | 2021-05-13 | 2022-08-16 | 上海梯之星信息科技有限公司 | 基于局部和整体特征的电梯故障预警方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2017139534A1 (en) | 2017-08-17 |
CN108475349B (zh) | 2021-10-08 |
US10482392B2 (en) | 2019-11-19 |
EP3380993B1 (en) | 2021-04-07 |
EP3380993A1 (en) | 2018-10-03 |
US20170236072A1 (en) | 2017-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108475349A (zh) | 用于稳健的大规模机器学习的系统和方法 | |
Peng et al. | A multi-start variable neighbourhood descent algorithm for hybrid flowshop rescheduling | |
Rendle et al. | Robust large-scale machine learning in the cloud | |
EP2671152A1 (en) | Estimating a performance characteristic of a job using a performance model | |
CN105468439A (zh) | 在cpu-gpu异构框架下遍历固定半径内邻居的自适应并行算法 | |
CN108446253A (zh) | 一种针对神威体系架构的稀疏矩阵向量乘的并行计算方法 | |
Zhang et al. | Learning-driven interference-aware workload parallelization for streaming applications in heterogeneous cluster | |
CN109951875A (zh) | 基于内容流行度预测的缓存方法、装置、设备和介质 | |
Hefny et al. | Comparative study load balance algorithms for map reduce environment | |
Kllapi et al. | Elastic processing of analytical query workloads on iaas clouds | |
Wei et al. | A GPU-specialized inference parameter server for large-scale deep recommendation models | |
CN106155936B (zh) | 一种缓存替换方法与相关装置 | |
Yan et al. | Hmfs: efficient support of small files processing over HDFS | |
Peng et al. | Adaptive runtime exploiting sparsity in tensor of deep learning neural network on heterogeneous systems | |
Khan et al. | Analysis of fast parallel sorting algorithms for GPU architectures' | |
Shi et al. | An intelligent data placement strategy for hierarchical storage systems | |
Ni et al. | Scalable asynchronous contact mechanics using Charm++ | |
CN106708973A (zh) | 一种蒙特卡洛逆向求解PageRank问题的加速方法 | |
Wang et al. | Improved intermediate data management for mapreduce frameworks | |
Mohan et al. | Synergy: Resource sensitive DNN scheduling in multi-tenant clusters | |
Zhou et al. | A Parallel Scheme for Large‐scale Polygon Rasterization on CUDA‐enabled GPUs | |
Zhang et al. | Learning driven parallelization for large-scale video workload in hybrid CPU-GPU cluster | |
Huang et al. | Improving speculative execution performance with coworker for cloud computing | |
KR20220142059A (ko) | 이미지 기반 딥 러닝 학습의 배칭 연산 가속을 위한 인 메모리 소프트웨어 디코딩 캐시 구조 및 관리 기법 | |
Gogolińska et al. | GPU computations and memory access model based on Petri nets |
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 |