一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于执行多机器学习任务的分布式系统及其方法与流程

2022-11-16 13:43:04 来源:中国专利 TAG:

用于执行多机器学习任务的分布式系统及其方法
1.本技术是申请日为2019年8月16日、申请号为201910759163.0、题为“用于执行多机器学习任务的分布式系统及其方法”的专利申请的分案申请。
技术领域
2.本发明总体说来涉及人工智能领域,更具体地讲,涉及一种用于执行多机器学习任务的分布式系统及其方法。


背景技术:

3.一个机器学习训练任务的执行结果通常由大量的(例如,数十项)配置参数(即,超参数)的取值所决定。在自动机器学习等场景中,为了评估不同配置下机器学习训练任务的执行结果,常常需要对配置参数的取值进行不同尝试及不同组合,并对不同配置下的机器学习训练任务进行计算及评估。
4.在探索最佳的机器学习模型的过程中,所需执行的机器学习训练任务的数量,关于配置参数的数目及每项配置参数可能的取值数目呈指数增长,例如,对于一个仅有10项配置参数需要配置的机器学习训练任务,若每项配置参数存在3种可能的取值,则这10项配置参数将产生共计59049种可能的组合,将对应于59049个机器学习训练任务。
5.现有技术通常分别对不同配置下的机器学习训练任务进行独立执行,但存在显著的任务执行效率问题,这使得自动机器学习任务及其他需要对多个机器学习模型进行训练的任务常常无法在合理的时间内完成。


技术实现要素:

6.本发明的示例性实施例在于提供一种用于执行多机器学习任务的分布式系统及其方法,其能够解决现有技术存在的多机器学习任务无法在合理的时间内完成的问题。
7.根据本发明的示例性实施例,提供一种用于执行多机器学习任务的分布式系统,包括:多个计算装置,被配置为分别获取指定数据集的不同部分数据,并共同执行多个机器学习任务;其中,每个计算装置被配置为:基于自身所获取的部分数据并行地执行所述多个机器学习任务,其中,所述多个机器学习任务为多个模型训练任务或多个模型预测任务。
8.可选地,每个计算装置被配置为:一方面从数据源请求所述指定数据集中的数据,并对请求到的数据进行预处理后保存在本地,另一方面读取本地保存的数据,并基于读取的数据执行所述多个机器学习任务。
9.可选地,每个计算装置被配置为:基于读取的每一条数据,并行地执行所述多个机器学习任务中需要使用该条数据的机器学习任务。
10.可选地,每个计算装置被配置为:基于读取的每一条数据,使用向量化指令并行地执行所述多个机器学习任务中需要使用该条数据的机器学习任务。
11.可选地,所述分布式系统还包括:参数服务器,被配置为维护所述多个机器学习任务所涉及的多个机器学习模型的参数,其中,机器学习模型的参数具有键值对的形式,其
中,参数服务器被配置为:按照单个键对应于多个值的形式对所述多个机器学习模型的参数进行相同键合并后保存,或者,按照单个键对应于多个值的形式对所述多个机器学习模型的参数进行相同键合并,并对合并后的结果按照第一压缩方式进行压缩后保存。
12.可选地,当所述多个机器学习任务为所述多个模型训练任务时,每个计算装置被配置为:将被合并了的训练所述多个机器学习模型所得到的结果提供给参数服务器,或者,将被合并且被按照第二压缩方式压缩了的训练所述多个机器学习模型所得到的结果提供给参数服务器,以使参数服务器更新所述多个机器学习模型的参数,其中,所述结果按照单个键对应于多个值的形式被合并。
13.可选地,参数服务器被配置为:将被合并了的每个计算装置所需的所述多个机器学习模型的参数提供给每个计算装置,或者,将被合并且被按照第三压缩方式压缩了的每个计算装置所需的所述多个机器学习模型的参数提供给每个计算装置。
14.可选地,当所述多个机器学习任务为所述多个模型训练任务时,参数服务器被配置为:在每个计算装置执行所述多个机器学习任务的过程中,对计算装置训练一个机器学习模型时产生的能够用于其他机器学习模型的中间计算结果进行保存,以将所述中间计算结果用于所述其他机器学习模型。
15.可选地,所述一个机器学习模型和所述其他机器学习模型所对应的超参数中仅训练轮数不同,其中,所述一个机器学习模型所对应的训练轮数大于所述其他机器学习模型所对应的训练轮数,其中,参数服务器被配置为:将计算装置在训练所述一个机器学习模型的过程中,训练轮数达到所述其他机器学习模型所对应的训练轮数时所得到的所述一个机器学习模型的参数,作为所述其他机器学习模型的参数。
16.可选地,每个计算装置被配置为:设置所述多个机器学习任务所使用的网络配置;和/或,参数服务器被配置为:设置针对所述多个机器学习任务的网络配置。
17.可选地,每个计算装置被配置为:针对所述多个机器学习任务使用零拷贝技术进行网络传输;和/或,针对所述多个机器学习任务设置网络传输中最大传输单元的大小;和/或,参数服务器被配置为:针对所述多个机器学习任务使用零拷贝技术进行网络传输;和/或,针对所述多个机器学习任务设置网络传输中最大传输单元的大小。
18.可选地,每个计算装置被配置为:配置所述多个机器学习任务所使用的内存;和/或,参数服务器被配置为:配置针对所述多个机器学习任务的内存。
19.可选地,每个计算装置被配置为:将所述多个机器学习任务与一组中央处理器cpu绑定,以使所述一组cpu使用与其邻近的内存来执行所述多个机器学习任务;和/或,针对所述多个机器学习任务配置内存管理单位,以使计算装置的操作系统和cpu以配置的内存管理单位来对所述多个机器学习任务所使用的内存进行管理;和/或,参数服务器被配置为:针对所述多个机器学习任务配置内存管理单位,以使参数服务器的操作系统和cpu以配置的内存管理单位来对与所述多个机器学习任务相关的任务所使用的内存进行管理;和/或,将与所述多个机器学习任务相关的任务与一组中央处理器cpu绑定,以使所述一组cpu使用与其邻近的内存来执行与所述多个机器学习任务相关的任务。
20.根据本发明的另一示例性实施例,提供一种利用分布式系统来执行多机器学习任务的方法,其中,所述分布式系统包括多个计算装置,其中,所述方法包括:所述多个计算装置分别获取指定数据集的不同部分数据;所述多个计算装置基于所获取的部分数据,共同
执行多个机器学习任务,其中,每个计算装置基于自身所获取的部分数据并行地执行所述多个机器学习任务,其中,所述多个机器学习任务为多个模型训练任务或多个模型预测任务。
21.可选地,所述多个计算装置分别获取指定数据集的不同部分数据的步骤包括:每个计算装置从数据源请求所述指定数据集中的数据;每个计算装置对请求到的数据进行预处理后保存在本地,其中,每个计算装置基于自身所获取的部分数据并行地执行所述多个机器学习任务的步骤包括:每个计算装置读取本地保存的数据,并基于读取的数据执行所述多个机器学习任务。
22.可选地,每个计算装置基于读取的数据执行所述多个机器学习任务的步骤包括:每个计算装置基于读取的每一条数据,并行地执行所述多个机器学习任务中需要使用该条数据的机器学习任务。
23.可选地,每个计算装置基于读取的数据执行所述多个机器学习任务的步骤包括:每个计算装置基于读取的每一条数据,使用向量化指令并行地执行所述多个机器学习任务中需要使用该条数据的机器学习任务。
24.可选地,所述分布式系统还包括参数服务器,其中,所述方法还包括:参数服务器维护所述多个机器学习任务所涉及的多个机器学习模型的参数,其中,机器学习模型的参数具有键值对的形式,其中,参数服务器按照单个键对应于多个值的形式对所述多个机器学习模型的参数进行相同键合并后保存,或者,参数服务器按照单个键对应于多个值的形式对所述多个机器学习模型的参数进行相同键合并,并对合并后的结果按照第一压缩方式进行压缩后保存。
25.可选地,所述方法还包括:当所述多个机器学习任务为所述多个模型训练任务时,每个计算装置将被合并了的训练所述多个机器学习模型所得到的结果提供给参数服务器,或者,每个计算装置将被合并且被按照第二压缩方式压缩了的训练所述多个机器学习模型所得到的结果提供给参数服务器,以使参数服务器更新所述多个机器学习模型的参数,其中,所述结果按照单个键对应于多个值的形式被合并。
26.可选地,所述方法还包括:参数服务器将被合并了的每个计算装置所需的所述多个机器学习模型的参数提供给每个计算装置,或者,参数服务器将被合并且被按照第三压缩方式压缩了的每个计算装置所需的所述多个机器学习模型的参数提供给每个计算装置。
27.可选地,所述方法还包括:当所述多个机器学习任务为所述多个模型训练任务时,参数服务器在每个计算装置执行所述多个机器学习任务的过程中,对计算装置训练一个机器学习模型时产生的能够用于其他机器学习模型的中间计算结果进行保存,以将所述中间计算结果用于所述其他机器学习模型。
28.可选地,所述一个机器学习模型和所述其他机器学习模型所对应的超参数中仅训练轮数不同,其中,所述一个机器学习模型所对应的训练轮数大于所述其他机器学习模型所对应的训练轮数,其中,参数服务器将计算装置在训练所述一个机器学习模型的过程中,训练轮数达到所述其他机器学习模型所对应的训练轮数时所得到的所述一个机器学习模型的参数,作为所述其他机器学习模型的参数。
29.可选地,所述方法还包括:每个计算装置设置所述多个机器学习任务所使用的网络配置;和/或,参数服务器设置针对所述多个机器学习任务的网络配置。
30.可选地,每个计算装置设置所述多个机器学习任务所使用的网络配置的步骤包括:每个计算装置针对所述多个机器学习任务使用零拷贝技术进行网络传输;和/或,针对所述多个机器学习任务设置网络传输中最大传输单元的大小;其中,参数服务器设置针对所述多个机器学习任务的网络配置的步骤包括:参数服务器针对所述多个机器学习任务使用零拷贝技术进行网络传输;和/或,针对所述多个机器学习任务设置网络传输中最大传输单元的大小。
31.可选地,所述方法还包括:每个计算装置配置所述多个机器学习任务所使用的内存;和/或,参数服务器配置针对所述多个机器学习任务的内存。
32.可选地,每个计算装置配置所述多个机器学习任务所使用的内存的步骤包括:每个计算装置将所述多个机器学习任务与一组中央处理器cpu绑定,以使所述一组cpu使用与其邻近的内存来执行所述多个机器学习任务;和/或,针对所述多个机器学习任务配置内存管理单位,以使计算装置的操作系统和cpu以配置的内存管理单位来对所述多个机器学习任务所使用的内存进行管理;其中,参数服务器配置针对所述多个机器学习任务的内存的步骤包括:参数服务器针对所述多个机器学习任务配置内存管理单位,以使参数服务器的操作系统和cpu以配置的内存管理单位来对与所述多个机器学习任务相关的任务所使用的内存进行管理;和/或,参数服务器将与所述多个机器学习任务相关的任务与一组中央处理器cpu绑定,以使所述一组cpu使用与其邻近的内存来执行与所述多个机器学习任务相关的任务。
33.根据本发明示例性实施例的用于执行多机器学习任务的分布式系统及其方法,能够有效缩短完成多机器学习任务所需的时间,使得多机器学习任务能够在合理的时间内完成。
34.将在接下来的描述中部分阐述本发明总体构思另外的方面和/或优点,还有一部分通过描述将是清楚的,或者可以经过本发明总体构思的实施而得知。
附图说明
35.通过下面结合示例性地示出实施例的附图进行的描述,本发明示例性实施例的上述和其他目的和特点将会变得更加清楚,其中:
36.图1示出根据本发明示例性实施例的用于执行多机器学习任务的分布式系统的框图;
37.图2示出根据本发明示例性实施例的分布式系统执行多机器学习任务的示例;
38.图3示出根据本发明的另一示例性实施例的用于执行多机器学习任务的分布式系统的框图;
39.图4示出根据本发明示例性实施例的参数服务器存储多个机器学习模型的参数的示例;
40.图5示出根据本发明示例性实施例的多机器学习模型的参数的传输示例;
41.图6示出根据本发明示例性实施例的并行执行多机器学习任务的示例;
42.图7示出根据本发明示例性实施例的利用分布式系统来执行多机器学习任务的方法的流程图。
具体实施方式
43.现将详细参照本发明的实施例,所述实施例的示例在附图中示出,其中,相同的标号始终指的是相同的部件。以下将通过参照附图来说明所述实施例,以便解释本发明。
44.图1示出根据本发明示例性实施例的用于执行多机器学习任务的分布式系统的框图。如图1所示,根据本发明示例性实施例的用于执行多机器学习任务的分布式系统包括多个计算装置1000(例如,1000-1、1000-2、

、1000-n(其中,n为大于1的整数))。
45.具体说来,多个计算装置1000被配置为分别获取指定数据集的不同部分数据,并共同执行多个机器学习任务,其中,每个计算装置1000被配置为:基于自身所获取的部分数据并行地执行所述多个机器学习任务。换言之,不同的计算装置1000针对不同的数据共同地执行相同的多个机器学习任务,且同一计算装置1000并行地执行这多个机器学习任务。
46.这里,所述多个机器学习任务为多个模型训练任务或多个模型预测任务。模型训练任务即用于训练机器学习模型的任务,计算装置1000可通过执行模型训练任务来更新对应的机器学习模型的参数;模型预测任务即用于使用机器学习模型进行预测的任务,计算装置1000可通过执行模型预测任务来使用对应的机器学习模型得到预测结果。
47.作为示例,所述多个模型训练任务可为:多个使用相同的机器学习算法但训练配置(例如,超参数配置)不同的模型训练任务;或者,多个使用不同机器学习算法的模型训练任务,所述不同机器学习算法可为属于同一类型的不同机器学习算法(例如,同属于神经网络类型但具体结构(例如,神经网络的深浅等)不同的机器学习算法),也可为属于不同类型的不同机器学习算法。例如,机器学习算法的类型可包括但不限于:线性回归算法、神经网络算法、fm算法。换言之,所述多个模型训练任务所分别训练的多个机器学习模型可为同一类型且同一结构的机器学习模型,或者,可为同一类型但结构不同的机器学习模型,或者,可为不同类型的机器学习模型。
48.每个计算装置1000被配置为获取所述指定数据集的一部分数据,不同计算装置1000获取的数据无交集,且不同计算装置1000获取的数据的合集正好是所述指定数据集。作为示例,每个计算装置1000可被配置为:一方面从数据源请求所述指定数据集中的数据,并对请求到的数据进行预处理后保存在本地,另一方面读取本地保存的数据,并基于读取的数据执行所述多个机器学习任务。
49.在现有技术中,每个计算装置通常独立执行一个机器学习任务,当多个计算装置同时执行多个机器学习任务,且这多个机器学习任务共同使用同一个数据集时,每个计算装置都需要分别读取整个数据集,即,整个数据集将会被读取多次。而根据本发明的示例性实施例,每个计算装置1000仅需读取数据集的一部分而非全部,并且,数据集中的每条数据仅会被读取一次,不会被重复读取,这大大节省了计算装置1000从数据源读取数据及后续对读取的数据进行预处理的时间。
50.作为示例,在每个计算装置1000中,从数据源请求数据的任务和所述多个机器学习任务可由两个(或两组)线程来分别执行,即,从数据源请求数据的任务所使用的线程与所述多个机器学习任务所使用的线程不同。
51.作为示例,数据源在接收到每个计算装置1000的请求时,可为其分配指定数据集中的数据(例如,每次可分配一条数据或包含多条数据的一个数据块),直至指定数据集中的数据全部分配完毕。这样指定数据集中的每条数据只会被一个计算装置1000读取,即每
条数据只会被读取一次。例如,各计算装置1000可通过争抢的方式来获取指定数据集中的数据,处理能力越强的计算装置1000获取的数据越多。
52.图2示出根据本发明示例性实施例的分布式系统执行多机器学习任务的示例。如图2所示,当根据本发明示例性实施例的分布式系统包括4个计算装置1000(即,1000-1、1000-2、1000-3、1000-4)时,4个计算装置1000分别从数据源(例如,数据仓库)获取数据集d的一部分数据,例如,4个计算装置1000分别获取数据集d的1/4,且4个计算装置1000分别获取的数据之和为整个数据集d,即,d1 d2 d3 d4=d。并且,4个计算装置1000基于从数据源获取的数据共同执行多个模型训练任务(即,训练机器学习模型a、训练机器学习模型b及训练机器学习模型c),具体地,每个计算装置1000基于自身获取的1/4个数据集d并行地训练模型a、模型b和模型c。换言之,针对每个模型(例如,模型a)的训练,4个计算装置1000都基于自身获取的数据参与了,且每个计算装置1000基于自身获取的数据并行地训练了多个机器学习模型。
53.作为示例,所述多个机器学习任务所使用的本地保存的数据可完全相同,也可部分相同。
54.作为示例,每个计算装置1000可被配置为:基于读取的每一条数据,并行地执行所述多个机器学习任务中需要使用该条数据的机器学习任务。当所述多个机器学习任务所使用的本地保存的数据完全相同时,针对读取的每一条数据,并行地执行所述多个机器学习任务。例如,当所述多个机器学习任务为多个模型训练任务,且所述多个模型训练任务需要使用相同的数据集来训练各自的机器学习模型时,可针对读取的每一条数据,并行地训练多个机器学习模型。根据本发明的示例性实施例,一方面,一次从本地读取的一条数据可用于多个机器学习任务,避免了数据的重复读取,提高了数据读取的效率;另一方面,针对同一条数据并行执行多个机器学习任务,能够有效缩短多机器学习任务的执行时间。
55.作为示例,每个计算装置1000可被配置为:基于读取的每一条数据,使用向量化指令并行地执行所述多个机器学习任务中需要使用该条数据的机器学习任务。例如,当所述多个机器学习任务为多个模型训练任务时,可基于读取的每一条数据,使用同一条向量化指令来计算多个机器学习模型的更新量,从而既减少了计算量,也缩短了多个机器学习模型的更新量的计算时间。
56.这里,向量化(simd,single instruction multiple data)指令可指:中央处理器中存在的能够通过单一指令同时操作多项数据的指令,这种指令相比于普通指令能够在相同的时间内完成更多的计算。
57.此外,应该理解,也可通过其他适当的方式来实现基于读取的每一条数据,并行地执行所述多个机器学习任务中需要使用该条数据的机器学习任务,以加快多机器学习任务的执行。作为示例,可使用多个或多组线程(或硬件超线程)来并行地执行所述多个机器学习任务中需要使用该条数据的机器学习任务,即,不同的机器学习任务使用不同的线程。此外,还可通过使用计算装置1000中的并行度更高的处理器(例如,图形处理器(gpu)或现场可编程门阵列(fpga))来并行地执行所述多个机器学习任务中需要使用该条数据的机器学习任务,以取得更好的并行执行效果,加快多机器学习任务的执行。
58.图3示出根据本发明的另一示例性实施例的用于执行多机器学习任务的分布式系统的框图。如图3所示,根据本发明的另一示例性实施例的用于执行多机器学习任务的分布
式系统可由多个计算装置1000和参数服务器2000组成。
59.具体说来,参数服务器2000被配置为维护所述多个机器学习任务所涉及的多个机器学习模型的参数,其中,机器学习模型的参数具有键值对(key-value)的形式。
60.应注意,计算装置1000和/或参数服务器2000均由其所执行的处理或所实现的功能来限定,既可指示物理实体,也可指示虚拟实体,例如,计算装置1000可指示实际的计算机器,也可指示部署在该计算机器上的逻辑实体,同样,参数服务器2000既可指示实际的计算机器,也可作为一个或多个逻辑实体而与计算装置1000部署在同样和/或不同的计算机器上。作为示例,参数服务器2000可部署在单个计算机器上;或者,参数服务器2000可同时部署在多个计算机器上。
61.作为示例,参数服务器2000可被配置为:可按照单个键对应于多个值的形式来保存所述多个机器学习模型的参数中具有相同键的多个键值对,以避免参数服务器2000中存储大量的重复信息。
62.进一步地,作为示例,参数服务器2000可被配置为:按照单个键对应于多个值的形式对所述多个机器学习模型的参数进行相同键合并,并对合并后的结果按照第一压缩方式进行压缩后保存。即,对相同键合并之后的所述多个机器学习模型的参数再进行压缩,换言之,对所述多个机器学习模型的参数中的重复信息进行合并,并对非重复信息进行压缩,以进一步减小参数服务器2000的存储开销。
63.图4示出根据本发明示例性实施例的参数服务器存储多个机器学习模型的参数的示例。如图4所示,每一个机器学习模型会对应一套键值对,在这套键值对中,不同键值对的键各不相同,每个键对应各自的值,例如,机器学习模型1对应的一套键值对至少包括键k1、k2、k3、

、km,分别对应值v
m1,1
、v
m1,2
、v
m1,3


、v
m1,m
;机器学习模型2对应另一套键值对,其中至少包括键k1、k2、k3、

、km,分别对应值v
m2,1
、v
m2,2
、v
m2,3


、v
m2,m
,其中,m为大于1的整数,可以看出,两套键值对之中的至少一部分键值对具有完全相同的键,根据本发明的示例性实施例,参数服务器2000在保存多个机器学习模型的参数时,将具有相同键的对应于不同机器学习模型的键值对合并保存为单个键对应于多个值的形式,例如,保存为键k1对应于值v
m1,1
、v
m2,1
、v
m3,1


、v
mn,1
的形式,在此基础上,还可进一步对合并处理后的参数进行压缩,例如,使用h压缩函数,从而避免了在同时存储多个机器学习模型的参数时存储开销呈线性增长的情况。
64.作为示例,参数服务器2000可被配置为将每个计算装置1000为了执行所述多个模型训练任务而需要读取的多个机器学习模型的参数提供给每个计算装置1000,以使每个计算装置1000利用读取的参数来训练所述多个机器学习模型,并且,参数服务器2000根据每个计算装置1000训练所述多个机器学习模型所得到的结果(例如,模型更新量)来更新所述多个机器学习模型的参数;或者,参数服务器2000可将每个计算装置1000为了执行所述多个模型预测任务而需要读取的多个机器学习模型的参数提供给每个计算装置1000,以使每个计算装置1000利用读取的参数来使用所述多个机器学习模型进行预测。
65.作为示例,当所述多个机器学习任务为:所述多个模型训练任务时,每个计算装置1000可被配置为:将训练所述多个机器学习模型所得到的结果按照单个键对应于多个值的形式提供给参数服务器2000,以使参数服务器2000更新所述多个机器学习模型的参数。在此基础上,还可进一步对相同键合并后的训练所述多个机器学习模型所得到的结果按照第
二压缩方式进行压缩后提供给参数服务器2000,即,将被合并和压缩了的训练所述多个机器学习模型所得到的结果提供给参数服务器2000。从而能够有效避免重复信息的传输,减少计算装置1000与参数服务器2000之间需要传输的数据量,有效减少计算装置1000与参数服务器2000之间的网络开销。
66.作为示例,参数服务器2000可被配置为:将每个计算装置1000所需的所述多个机器学习模型的参数中的具有相同键的多个键值对按照单个键对应于多个值的形式提供给每个计算装置1000。此外,还可将被合并且被按照第三压缩方式压缩了的每个计算装置所需的所述多个机器学习模型的参数提供给每个计算装置。
67.应该理解,第一压缩方式、第二压缩方式、以及第三压缩方式相互之间可相同,也可不同。例如,第一压缩方式和第三压缩方式可相同或不同,当第一压缩方式和第三压缩方式不同时,参数服务器2000在向计算装置1000发送其所需的所述多个机器学习模型的参数时,可先对参数服务器2000中保存的已按照第一压缩方式被压缩了的这些参数进行解压缩,再按照第三压缩方式重新进行压缩后发送到计算装置1000;或者,参数服务器2000可对其中保存的已按照第一压缩方式被压缩了的这些参数按照第三压缩方式再次压缩后发送到计算装置1000,从而减少计算装置1000与参数服务器2000之间的网络开销。
68.图5示出根据本发明示例性实施例的多机器学习模型的参数的传输示例。如图5所示,参数服务器2000在向计算装置1000提供多个机器学习模型的参数(例如,关于键k1的键值对)时,可按照单个键对应于多个值的形式将多个机器学习模型的参数(例如,k1:[v
m1,1
、v
m2,1
、v
m3,1


、v
mn,1
])提供给计算装置1000,并且还可进一步对相同键合并后的参数进行压缩后(例如,f(k1,[v
m1,1
、v
m2,1
、v
m3,1


、v
mn,1
]))提供给计算装置1000,即,将被合并和压缩了的计算装置1000所需的所述多个机器学习模型的参数提供给计算装置1000,如图5所示,f函数为压缩函数,应该理解,h函数和f函数可为同一压缩函数,也可为不同的压缩函数。根据本发明的示例性实施例,通过对需要传输的数据中的重复信息进行合并,并对非重复信息进行压缩,来有效减小计算装置1000与参数服务器2000之间的网络传输开销,降低传输代价。
[0069]
图6示出根据本发明示例性实施例的并行执行多机器学习任务的示例。在现有技术中,需要针对每个机器学习模型分别使用对应的指令来获取模型更新量(即,模型训练结果),而根据本发明的示例性实施例,可针对多个机器学习模型使用同一条向量化指令来获取多个机器学习模型的模型更新量。进一步地,作为示例,计算装置1000可将被合并和压缩了的模型训练结果(例如,所述多个机器学习模型的至少一个参数(例如,与键k1对应的参数)的变动量)上传到参数服务器2000,当参数服务器2000接收到计算装置1000上传的被合并和压缩了的模型训练结果时,可对接收到的模型训练结果进行解压缩,对参数服务器2000已存储的所述多个机器学习模型的该参数进行解压缩,并基于解压后的按照单个键对应于多个值的形式的变动量(k1:[

m1,1


m2,1


m3,1




mn,1
]),对解压后得到的参数k1:[v
m1,1
、v
m2,1
、v
m3,1


、v
mn,1
]进行更新,然后再对更新后的所述多个机器学习模型的该参数进行压缩保存。
[0070]
作为示例,当所述多个机器学习任务为:所述多个模型训练任务时,参数服务器2000可被配置为:在每个计算装置1000执行所述多个机器学习任务的过程中,对计算装置1000训练一个机器学习模型时产生的能够用于其他机器学习模型的中间计算结果进行保
存,以将所述中间计算结果用于所述其他机器学习模型。从而避免多个机器学习任务重复计算可重用的信息,提高计算资源的使用效率。
[0071]
作为示例,所述一个机器学习模型和所述其他机器学习模型所对应的超参数中仅训练轮数不同,其中,所述一个机器学习模型所对应的训练轮数大于所述其他机器学习模型所对应的训练轮数,其中,参数服务器2000可被配置为:将计算装置1000在训练所述一个机器学习模型的过程中,训练轮数达到所述其他机器学习模型所对应的训练轮数时所得到的所述一个机器学习模型的参数,作为所述其他机器学习模型的参数。例如,如果模型训练任务1、模型训练任务2、和模型训练任务3对应的超参数中仅训练轮数不同,其他超参数均相同,其中,模型训练任务1的训练轮数为30轮,模型训练任务2的训练轮数为20轮,模型训练任务3的训练轮数为10轮,则可将模型训练任务1的训练轮数达到10轮时得到的机器学习模型的参数作为模型训练任务3对应的机器学习模型的参数;并将模型训练任务1的训练轮数达到20轮时得到的机器学习模型的参数作为模型训练任务2对应的机器学习模型的参数。
[0072]
考虑到在本发明的示例性实施例中,计算装置1000与参数服务器2000之间进行传输时,需用同时传输多个机器学习模型的相关信息,这使得单次传输的消息的体积显著大于各机器学习任务彼此独立地执行时的消息体积,因此,根据本发明的示例性实施例,可针对多机器学习任务并行执行时特有的网络传输需求,对网络配置根据任务类型进行自适应配置,具体地,可针对所述多个机器学习任务,自动调整网络传输参数,使得网络能够更高效地对大体积消息进行传输,提高了网络利用率及任务完成效率。
[0073]
作为示例,每个计算装置1000可被配置为:设置所述多个机器学习任务所使用的网络配置。
[0074]
作为示例,每个计算装置1000可被配置为:针对所述多个机器学习任务使用零拷贝(zero-copy)技术进行网络传输。零拷贝技术可使得网络硬件(例如,网卡)能够直接对内存中的数据进行传输,而无需将数据从内存拷贝至网络硬件的缓存中,再进行传输。这种传输方式对于单个数据包更大的多机器学习任务场景具有更好的传输加速效果。
[0075]
作为示例,每个计算装置1000在针对所述多个机器学习任务从参数服务器2000接收数据或向参数服务器2000发送数据时,均可自动使用零拷贝技术。
[0076]
作为另一示例,每个计算装置1000可被配置为:针对所述多个机器学习任务设置网络传输中最大传输单元(mtu,maximum transmission unit)的大小。即通过设置更大的mtu,能够在网络层将大的数据包拆分为数量更少、体积更大的网络传输包,使得网络能以更高的传输速率进行数据传输。
[0077]
作为示例,参数服务器2000可被配置为:设置针对所述多个机器学习任务的网络配置。
[0078]
作为示例,参数服务器2000可被配置为:针对所述多个机器学习任务使用零拷贝技术进行网络传输;和/或,针对所述多个机器学习任务设置网络传输中最大传输单元的大小。
[0079]
考虑到在本发明的示例性实施例中,在执行多机器学习任务的过程中,需要同时存储多个机器学习模型的相关信息,相比于各机器学习任务彼此独立地执行,尽管因模型信息合并及压缩使得信息总体所需的内存更少,但单次分配所需的内存体积更大。因此,根
据本发明的示例性实施例,可针对多机器学习任务并行执行时特有的内存管理需求,对内存根据任务类型进行自适应配置。具体地,可针对所述多个机器学习任务,自动调整内存分配参数,以提高内存分配效率及内存使用效率。
[0080]
作为示例,每个计算装置1000可被配置为:配置所述多个机器学习任务所使用的内存。
[0081]
考虑到在多路中央处理器cpu的架构下,cpu对内存进行分配及访问的速度与内存所在的具体物理位置相关。在多机器学习任务并行执行的场景下,程序单次访问量更高,对跨cpu进行内存访问的带宽需求更高。
[0082]
作为示例,每个计算装置1000可被配置为:将所述多个机器学习任务与其内的一组cpu绑定,以使所述一组cpu使用与其邻近的内存来执行所述多个机器学习任务。从而实现内存的就近分配及访问,提高了内存的分配及访问效率。例如,可使用非统一内存访问架构(numa,non uniform memory access architecture)来实现将所述多个机器学习任务与一组cpu绑定(即,绑定于计算装置1000的特定的numa区域中)。
[0083]
作为另一示例,每个计算装置1000可被配置为:针对所述多个机器学习任务配置内存管理单位,以使计算装置1000的操作系统和cpu以配置的内存管理单位来对所述多个机器学习任务所使用的内存进行管理。即通过设置更大的内存管理单位(即,page)对所述多个机器学习任务所使用的内存进行管理,使得内存分配器能够更高效地分配少量大块内存,从而使得操作系统和cpu所需管理的page更少,管理效率更高。
[0084]
作为示例,参数服务器2000可被配置为:配置针对所述多个机器学习任务的内存。
[0085]
作为示例,参数服务器2000可被配置为:将与所述多个机器学习任务相关的任务与一组中央处理器cpu绑定,以使所述一组cpu使用与其邻近的内存来执行与所述多个机器学习任务相关的任务。
[0086]
作为示例,参数服务器2000可被配置为:针对所述多个机器学习任务配置内存管理单位,以使参数服务器2000的操作系统和cpu以配置的内存管理单位来对与所述多个机器学习任务相关的任务所使用的内存进行管理。
[0087]
图7示出根据本发明示例性实施例的利用分布式系统来执行多机器学习任务的方法的流程图。所述分布式系统包括多个计算装置。
[0088]
如图7所示,在步骤s10,所述多个计算装置分别获取指定数据集的不同部分数据。
[0089]
作为示例,每个计算装置可从数据源请求所述指定数据集中的数据,并对请求到的数据进行预处理后保存在本地。
[0090]
在步骤s20,所述多个计算装置基于所获取的部分数据,共同执行多个机器学习任务,其中,每个计算装置基于自身所获取的部分数据并行地执行所述多个机器学习任务,其中,所述多个机器学习任务为多个模型训练任务或多个模型预测任务。
[0091]
作为示例,每个计算装置可读取本地保存的数据,并基于读取的数据执行所述多个机器学习任务。
[0092]
作为示例,可先执行步骤s10,再执行步骤s20,即,在计算装置将所对应的指定数据集的部分数据全部保存在本地之后才开始执行多个机器学习任务;作为另一示例,可同时执行步骤s10和步骤s20,即,计算装置可一边获取数据保存在本地,一边基于本地已保存的数据执行多个机器学习任务。
[0093]
作为示例,每个计算装置可基于读取的每一条数据,并行地执行所述多个机器学习任务中需要使用该条数据的机器学习任务。
[0094]
作为示例,每个计算装置可基于读取的每一条数据,使用向量化指令并行地执行所述多个机器学习任务中需要使用该条数据的机器学习任务。
[0095]
作为示例,所述分布式系统还可包括参数服务器,其中,根据本发明示例性实施例的利用分布式系统来执行多机器学习任务的方法还可包括:参数服务器维护所述多个机器学习任务所涉及的多个机器学习模型的参数,其中,机器学习模型的参数具有键值对的形式,其中,参数服务器按照单个键对应于多个值的形式对所述多个机器学习模型的参数进行相同键合并后保存,或者,参数服务器按照单个键对应于多个值的形式对所述多个机器学习模型的参数进行相同键合并,并对合并后的结果按照第一压缩方式进行压缩后保存。
[0096]
作为示例,根据本发明示例性实施例的利用分布式系统来执行多机器学习任务的方法还可包括:当所述多个机器学习任务为所述多个模型训练任务时,每个计算装置将被合并了的训练所述多个机器学习模型所得到的结果提供给参数服务器,或者,每个计算装置将被合并且被按照第二压缩方式压缩了的训练所述多个机器学习模型所得到的结果提供给参数服务器,以使参数服务器更新所述多个机器学习模型的参数,其中,所述结果按照单个键对应于多个值的形式被合并。
[0097]
作为示例,根据本发明示例性实施例的利用分布式系统来执行多机器学习任务的方法还可包括:参数服务器将被合并了的每个计算装置所需的所述多个机器学习模型的参数提供给每个计算装置,或者,参数服务器将被合并且被按照第三压缩方式压缩了的每个计算装置所需的所述多个机器学习模型的参数提供给每个计算装置。
[0098]
作为示例,根据本发明示例性实施例的利用分布式系统来执行多机器学习任务的方法还可包括:当所述多个机器学习任务为所述多个模型训练任务时,参数服务器在每个计算装置执行所述多个机器学习任务的过程中,对计算装置训练一个机器学习模型时产生的能够用于其他机器学习模型的中间计算结果进行保存,以将所述中间计算结果用于所述其他机器学习模型。
[0099]
作为示例,所述一个机器学习模型和所述其他机器学习模型所对应的超参数中仅训练轮数不同,其中,所述一个机器学习模型所对应的训练轮数大于所述其他机器学习模型所对应的训练轮数,其中,参数服务器可将计算装置在训练所述一个机器学习模型的过程中,训练轮数达到所述其他机器学习模型所对应的训练轮数时所得到的所述一个机器学习模型的参数,作为所述其他机器学习模型的参数。
[0100]
作为示例,根据本发明示例性实施例的利用分布式系统来执行多机器学习任务的方法还可包括:每个计算装置设置所述多个机器学习任务所使用的网络配置;和/或,参数服务器设置针对所述多个机器学习任务的网络配置。
[0101]
作为示例,每个计算装置可针对所述多个机器学习任务使用零拷贝技术进行网络传输;和/或,针对所述多个机器学习任务设置网络传输中最大传输单元的大小。
[0102]
作为示例,参数服务器可针对所述多个机器学习任务使用零拷贝技术进行网络传输;和/或,针对所述多个机器学习任务设置网络传输中最大传输单元的大小。
[0103]
作为示例,根据本发明示例性实施例的利用分布式系统来执行多机器学习任务的方法还可包括:每个计算装置配置所述多个机器学习任务所使用的内存;和/或,参数服务
器配置针对所述多个机器学习任务的内存。
[0104]
作为示例,每个计算装置可将所述多个机器学习任务与一组中央处理器cpu绑定,以使所述一组cpu使用与其邻近的内存来执行所述多个机器学习任务;和/或,针对所述多个机器学习任务配置内存管理单位,以使计算装置的操作系统和cpu以配置的内存管理单位来对所述多个机器学习任务所使用的内存进行管理。
[0105]
作为示例,参数服务器可针对所述多个机器学习任务配置内存管理单位,以使参数服务器的操作系统和cpu以配置的内存管理单位来对与所述多个机器学习任务相关的任务所使用的内存进行管理;和/或,将与所述多个机器学习任务相关的任务与一组中央处理器cpu绑定,以使所述一组cpu使用与其邻近的内存来执行与所述多个机器学习任务相关的任务。
[0106]
应该理解,上述方法涉及的步骤可由之前描述的分布式系统中的计算装置1000和/或参数服务器2000来执行,上述步骤所涉及的操作已经参照图1至图6进行了详细描述,这里将不再赘述相关细节。
[0107]
应理解,根据本发明示例性实施例的分布式系统中的参数服务器、计算装置或组成它们的装置或单元等组成部分可被分别配置为执行特定功能的软件、硬件、固件或上述项的任意组合。例如,这些组成部分可对应于专用的集成电路,也可对应于纯粹的软件代码,还可对应于软件与硬件相结合的模块。当它们以软件、固件、中间件或微代码实现时,用于执行相应操作的程序代码或者代码段可以存储在诸如存储介质的计算机可读介质中,使得处理器可通过读取并运行相应的程序代码或者代码段来执行相应的操作。此外,这些组成部分所实现的一个或多个功能也可由物理实体设备(例如,计算机器等)中的组件来统一执行。
[0108]
应注意,根据本发明示例性实施例的分布式系统可完全依赖计算机程序的运行来实现相应的功能,即,各个组成部分在计算机程序的功能架构中与各步骤相应,使得整个系统通过专门的软件包(例如,lib库)而被调用,以实现相应的功能。
[0109]
以上描述了本发明的各示例性实施例,应理解,上述描述仅是示例性的,并非穷尽性的,本发明不限于所披露的各示例性实施例。在不偏离本发明的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。因此,本发明的保护范围应该以权利要求的范围为准。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献