CN115099352A - 模型训练系统、模型训练方法及装置 - Google Patents
模型训练系统、模型训练方法及装置 Download PDFInfo
- Publication number
- CN115099352A CN115099352A CN202210792462.6A CN202210792462A CN115099352A CN 115099352 A CN115099352 A CN 115099352A CN 202210792462 A CN202210792462 A CN 202210792462A CN 115099352 A CN115099352 A CN 115099352A
- Authority
- CN
- China
- Prior art keywords
- data
- training
- module
- format
- target
- 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.)
- Pending
Links
- 238000012549 training Methods 0.000 title claims abstract description 373
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000012545 processing Methods 0.000 claims abstract description 58
- 238000006243 chemical reaction Methods 0.000 claims abstract description 45
- 230000006978 adaptation Effects 0.000 claims abstract description 37
- 230000015654 memory Effects 0.000 claims description 43
- 238000004590 computer program Methods 0.000 claims description 14
- 238000005538 encapsulation Methods 0.000 claims description 8
- 230000008569 process Effects 0.000 description 21
- 238000004891 communication Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 5
- 238000007405 data analysis Methods 0.000 description 5
- 238000004806 packaging method and process Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 4
- 230000011218 segmentation Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012950 reanalysis Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Feedback Control In General (AREA)
- Communication Control (AREA)
Abstract
本公开涉及一种模型训练系统、模型训练方法及装置,其中,该系统包括:源数据处理模块以及一种或多种训练框架,训练框架包括训练适配模块和训练模块;其中,由源数据处理模块对输入的业务需求对应的数据集进行数据格式转换得到预设通用格式的初始训练数据,并输出至业务需求所对应的目标训练框架;由目标训练框架包括的目标训练适配模块对初始训练数据进行转换得到符合目标训练模块支持的指定数据格式的目标训练数据,并将目标训练数据输出至目标训练模块进行模型训练,以训练得到满足训练结束条件的模型。通过将数据的读取与训练框架进行解耦,提高训练速度。
Description
技术领域
本公开涉及数据处理技术领域,尤其涉及一种模型训练系统、模型训练方法及装置。
背景技术
在模型训练场景中,训练速度是用于评价训练框架性能极其重要的评价指标之一,训练框架包括大量的异构组件,如多种类型的训练器,此外,训练数据的存储类型以及数据格式种类也较多,这导致训练数据的读取成为训练的瓶颈,严重影响训练速度。因此,如何提高训练速度是当前亟待解决的问题。
发明内容
为了解决上述技术问题,本公开提供了一种模型训练系统、模型训练方法及装置。
第一方面,本公开实施例提供了一种模型训练系统,包括:
源数据处理模块,用于将输入的业务需求对应的数据集转换成预设通用格式,将符合所述预设通用格式的数据集作为初始训练数据并传递给所述模型训练系统中与所述业务需求对应的目标训练适配模块;
所述目标训练适配模块,用于将所述初始训练数据转换成所述业务需求对应的目标训练模块支持的指定数据格式得到符合所述指定数据格式的目标训练数据,将所述目标训练数据输出至所述目标训练模块;
所述目标训练模块,用于根据所述业务需求和接收到的所述目标训练数据进行模型训练,以训练得到满足训练结束条件的模型。
在一些实施例中,所述预设通用格式包括:数据包头、元数据以及数据部分;数据包头用于指示所述数据集的属性信息,所述元数据用于指示所述初始训练数据的特征的数据类型,所述数据部分用于存储所述初始训练数据的特征;
其中,所述属性信息包括:所述数据集的大小、所述目标训练模块预先指定的数据编码方式、协议版本号以及魔数中的一项或多项。
在一些实施例中,所述目标训练适配模块具体用于对所述初始训练数据进行数据解析,获取所述数据集的属性信息、样本数据的特征以及特征的数据类型;基于所述训练模块支持的指定数据格式对应的数据封装规则,将所述数据集的属性信息、样本数据的特征以及特征的数据类型封装得到所述目标训练数据。
在一些实施例中,所述源数据处理模块,具体用于对所述数据集进行数据解析,获取所述数据集的属性信息、样本数据的特征以及特征的数据类型;以及,按照所述预设通用格式对应的数据封装规则,将所述数据集的属性信息、样本数据的特征以及特征的数据类型封装得到所述初始训练数据,并向所述目标训练适配模块发送所述初始训练数据。
在一些实施例中,所述源数据处理模块通过匿名管道、命名管道、套接字方式以及共享内存方式中任一方式向所述目标训练适配模块发送所述预设通用格式的初始训练数据。
在一些实施例中,还包括:源数据读取模块,用于支持多种类型的数据源的接入,从所述业务需求对应的指定数据源中读取所述业务需求所需的数据集,并将读取的数据集输出至所述源数据处理模块进行数据格式转换。
在一些实施例中,所述源数据读取模块,具体用于调用所述指定数据源对应的软件工具包,通过运行所述软件工具包访问所述指定数据源,读取所述业务需求所需的数据集。
第二方面,本公开提供了一种训练方法,包括:
调用源数据处理模块将输入的业务需求对应数据集转换成预设通用格式,将符合所述预设通用格式的数据集作为初始训练数据并传递给模型训练系统中的与所述业务需求相对应的训练适配模块;
调用所述训练适配模块将所述初始训练数据转换成所述模型训练系统中的与所述业务需求对应的训练模块支持的指定数据格式得到符合所述指定数据格式的目标训练数据,将所述目标训练数据输出至所述训练模块;
调用所述训练模块根据所述业务需求和接收到的所述目标训练数据进行模型训练,以训练得到满足训练结束条件的模型。
在一些实施例中,所述预设通用格式包括:数据包头、元数据以及数据部分;数据包头用于指示所述数据集的属性信息,所述元数据用于指示所述初始训练数据的特征的数据类型,所述数据部分用于存储所述初始训练数据的特征;
其中,所述属性信息包括:所述数据集的大小、所述训练模块预先指定的数据编码方式、协议版本号以及魔数中的一项或多项。
第三方面,本公开提供了一种电子设备,包括:存储器和处理器;
所述存储器被配置为存储计算机程序指令;
所述处理器被配置为执行所述计算机程序指令,使得所述电子设备实现如第二方面以及第二方面任一项所述的模型训练方法。
第四方面,本公开提供了一种可读存储介质,包括:计算机程序指令;电子设备执行所述计算机程序指令,使得所述电子设备实现如第二方面以及第二方面任一项所述的模型训练方法。
第五方面,本公开提供了一种计算机程序产品,包括:电子设备的至少一个处理器执行所述计算机程序产品,使得所述电子设备实现如第二方面以及第二方面任一项所述的模型训练方法。
本公开实施例提供一种模型训练系统、模型训练方法及装置,其中,该系统包括:源数据处理模块以及一种或多种训练框架,所述训练框架包括训练适配模块和训练模块;其中,源数据处理模块用于对输入的业务需求对应的数据集进行数据格式转换得到预设通用格式的初始训练数据,并输出至业务需求所对应的目标训练框架中;由目标训练框架包括的目标训练适配模块对预设通用格式的初始训练数据进行转换得到符合目标训练模块支持的指定数据格式的目标训练数据,并将目标训练数据输出至目标训练模块进行模型训练,以训练得到满足训练结束条件的模型。该系统通过将数据的读取与训练框架进行解耦,提高训练速度,且能够大幅降低训练框架中用于进行数据读取的代码复杂度。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本公开一实施例提供的模型训练系统的整体架构示意图;
图2为本公开另一实施例提供的模型训练系统的整体架构示意图;
图3为本公开一实施例提供的预设通用格式的数据结构示意图;
图4为本公开一实施例提供的模型训练方法的流程图;
图5为本公开一实施例提供的模型训练方法的流程图;
图6为本公开一实施例提供的电子设备的结构示意图。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
目前的训练框架针对不同数据格式的数据读取有各自的实现方式,且训练框架就中存在大量的异构组件需要适配,例如,tensorflow、pytorch等等,此外,数据存储类型和数据格式种类也较多,例如,数据存储类型有对象存储、流式存储等等多种类型,数据格式有csv、parquet、text等。而目前的训练框架的重心在于训练的算法,对于框架的通用性关注度较低,这导致用户需要针对每种存储类型、每种数据格式在每种训练框架上单独实现一套代码,这导致整个训练框架执行训练时数据的读取复杂度较高,数据读取耗时严重,也严重影响训练速度。
基于此,本公开提供一种模型训练系统、模型训练方法及装置,其中,该系统通过将数据的读取与训练框架解耦,使训练框架更加专注训练本身,无需关注所需的训练数据在前端的数据格式,由模型训练系统中的源数据处理模块完成多种不同的数据格式到预设通用格式的转换,由训练框架中的训练适配模块完成预设通用格式到与训练框架中的训练模块所匹配的指定数据格式的转换,极大降低了训练框架中用于实现数据读取代码的复杂度。
举例说明复杂度的变化,假设有M个数据格式、N个训练框架,目前已有的模型训练系统实现数据读取的复杂度为M*N,而本公开提供的模型训练系统实现数据读取的复杂度为M+N,对比而言,本公开提供的模型训练系统的复杂度较低,对于训练速度的提升也极其明显。
接下来将通过几个具体实施例结合实际场景以及附图,对本公开提供的模型训练系统以及模型训练方法进行举例介绍。
图1为本公开提供的模型训练系统的整体架构示意图。请参阅图1所示,本实施例提供的模型训练系统100包括:源数据处理模块101以及多种训练框架102。其中,每种训练框架102包括训练适配模块102a以及训练模块102b。
其中,模型训练系统100中可以部署调度模块(也可以理解为任务调度模块,图1中未示出),用于基于接收到业务需求进行任务的调度,示例性地,调度模块可以基于业务需求向执行数据读取的模块、源数据处理模块101及模型训练系统包括的多个训练框架中与业务需求匹配的目标训练框架102分别下发相应的任务。接收到任务的各个模块执行相应的操作。
其中,当业务需求对应的数据集从业务需求对应的指定数据源中读出并输入至源数据处理模块101,源数据处理模块101主要负责将输入的不同数据格式的数据集转换为预设通用格式后发送给下游的训练框架102。其中,不同数据格式可以包括但不限于csv、parquet、text、json、tfrecord等等。其中,csv(Comma-Separated Values)表示逗号分隔值文件格式,parquet是一种列存储格式,text表示文本格式,json(JavaScript ObjectNotation,JS对象简谱)是一种轻量级的数据交换格式,tfrecord是tensorflow使用的一种二进制数据格式。
在一些实施例中,源数据处理模块101可以通过匿名管道、命名管道、套接字(socket)方式或者共享内存方式向训练框架102发送预设通用格式的数据。
其中,匿名管道可以用于进程之间的通信,且仅限于本地父子进程之间的通信,可以通过文件的方式实现,即模型训练系统可以创建一个文件,源数据处理模块调用的用于进行数据格式转换的进程以及训练框架调用的用于进行数据格式转换的进程均可以访问该文件,其中源数据处理模块调用的用于进行数据格式转换的进程可以向文件中写入输入,训练框架调用的用于进行数据格式转换的进程可以从文件中读取数据,不需要提供额外的端口、文件等权限,匿名管道的结构简单且占用小。
命名管道也是一种简单的进程间通信机制,模型训练系统创建命名管道时为管道指定一个名字,任何进程(包括源数据处理模块调用的用于进行数据格式转换的进程以及训练框架调用的用于进行数据格式转换的进程)可以通过该名字打开管道的另一端,可以实现进程以不同的方式调用,更加灵活。
套接字(socket)是对于不同应用进程之间进行双向通信的端口的抽象,一个套接字就是网络上进程通信的一端,提供了应用层进程利用网络协议交换数据的机制。源数据处理模块可以将预设通用格式的初始训练数据写入它对应的socket中,该socket通过传输介质将这些数据传输至目标训练框架对应的socket中,使得目标训练框架能够接收到这段信息。
共享内存(shared memory)在多处理器的计算系统中,可以被不同中央处理器访问的大容量内存。共享内存是一种多进程之间的通信方法,这种方法通常用于一个程序的多进程间通信,实际上多个程序间也可以通过共享内存来传递信息。当业务需求到达模型训练系统,可以触发创建一个共享内存区,源数据处理模块调用的用于进行数据格式转换的进程将预设通用格式的初始训练数据写入共享内存区中,训练框架调用的用于进行数据格式转换的进程从共享内存区中读取所需的预设通用格式的初始训练数据。共享内存方式是目前效率最高的通信机制。
在一些实施例中,可以主要通过匿名管道的方式传输数据,这种方式实现简单,不要额外的端口,文件等权限,但是如果遇到了管道缓存上限的话,会导致数据读写速度慢,这时切换至套接字方式,这种方式需要支持端口相关的调度,防止冲突,且设备上不能运行太多服务,否则会绑定失败。共享内存方式,也是需要本地的一些权限,并且开发复杂,因此可以设置一些指定的任务采用共享内存方式。
或者,在一些实施例中,可以预先基于不同类型的业务需求配置相应的是数据传输方式,当模型训练系统接收到业务需求时,采用预先配置的方式向训练框架传输初始训练数据。且在配置时,可以考虑不同类型的业务需求对于吞吐量的需求。
需要说明的是,用户可根据其他策略选择合适的方式进行初始训练数据的传输。
在一些实施例中,源数据处理模块101可以包括多个数据格式转换模块,每个数据格式转换模块用于支持将预先设定的数据格式转换为预设通用格式,且多个数据格式转换模块分别对应的预先设定的数据格式不同。其中,本公开对于预设通用格式的具体数据结构不做限定,可参照后文中图3所示实施例的详细描述。
例如,源数据处理模块101支持csv、parquet、text、json以及tfrecord这5种数据格式到预设通用格式的转换,则源数据处理模块101可以包括5个数据格式转换模块,分别为数据格式转换模块1至5,其中,数据格式转换模块1用于将csv格式转换为预设通用格式,数据格式转换模块2用于将parquet格式转换为预设通用格式,数据格式转换模块3用于将text格式转换为预设通用格式,数据格式转换模块4用于将json格式转换为预设通用格式,数据格式转换模块5用于将tfrecord格式转换为预设通用格式。
在数据格式转换的过程中,数据格式转换模块通过对对应的数据格式的数据集进行数据解析,获取数据集的属性信息、数据集包括的各样本数据的特征以及特征的数据类型,之后,再基于预设通用格式的数据封装规则,将数据集的属性信息、数据集包括的各样本数据的特征以及特征的数据类型封装得到预设通用格式的初始训练数据。
其中,数据集的属性信息可以包括但不限于:数据集的大小、相应的目标训练模块指定的数据编码方式、幻数、协议版本号等等。此处提及的协议版本号为源数据处理模块与训练框架之间进行数据传输所使用的数据传输协议的协议版本号。
示例性地,以csv、parquet、text、json以及tfrecord这几种数据格式为例,举例说明源数据处理模块实现数据格式转换的方式。
1、csv格式转换为预设通用格式
可以先根据换行符,读出一条一条的数据,然后再根据分割符,将数据切分得到多列数据,再将切分得到的多列数据填充至预设通用格式中,从而完成数据格式转换。
2、parquet格式转换为预设通用格式
通过parquet提供的API实现的接口转换逻辑以后,直接调用API就能读出一个批(batch)的数据,读出的数据符合预设通用格式。
3、text格式转换为预设通用格式
Text格式与csv格式类似,可以先根据换行符,读出一条一条的数据,然后再根据分割符,将数据切分得到多列数据,再将切分得到的多列数据填充至预设通用格式中,从而完成数据格式转换。
4、json格式转换为预设通用格式
其中,用户需要先定义数据描述文档(schema),接下来逐条读取json数据,并使用jsonparser根据用户定义的schema将数据解析,再填充至预设通用格式中,从而完成数据格式转换。
5、tfrecord格式转换为预设通用格式
可以通过调用tfrecord提供的API,对数据进行解析,读出每行每列的数据,再将读出的数据填充至预设通用格式中,从而完成数据格式转换。
在一些实施例中,基于业务需求可能需要从多个指定数据源中读取数据,为了提高源数据处理模块101的处理效率,可以通过多线程并发向源数据处理模块101中写入需要进行数据格式转换的数据集。其中,在写入时,可以通过线程加锁的方式实现,以避免多线程写入导致数据写入混乱的现象出现;当然,也可以使用无锁队列的方式实现,各线程将从指定数据源中读取的数据集写入数据队列中,源数据处理模块101从数据队列中读取数据集,并调用与数据集所采用的数据格式相匹配的数据格式转换模块进行数据格式转换处理,可以理解的是,模型训练系统还可以通过其他方式解决数据写入混乱的问题,本公开对此不做限定。
采用本公开提供的模型训练系统,当有新的数据格式的数据集需要作为训练数据进行模型训练时,可以通过在源数据处理模块101中部署新增的数据格式对应的数据格式转换模块,以完成新增的数据格式到预设通用格式的转换,且无需对后端的任一训练框架102中的训练适配模块102a以及训练模块102b进行修改。
训练适配模块102,主要负责将初始训练数据由预设通用格式转换为训练模块102b支持的指定数据格式,并输入至相连接的训练模块102b进行模型训练。
在一些实施例中,训练适配模块102a具体基于源数据处理模块101定义的交互方式(也可以理解为通信机制),从匿名管道、命名管道、socket或者共享内存中读取预设通用格式的初始训练数据,再对预设通用格式的初始训练数据进行数据解析,获取数据集的属性信息、样本数据的特征以及特征的数据类型;基于与训练适配模块102a相连接的训练模块102b支持的指定数据格式对应的数据封装规则,将数据集的属性信息、样本数据的特征以及特征的数据类型封装得到训练模块102b所支持的指定数据格式的目标训练数据,之后,便可以将目标训练数据输入至训练模块102b中进行模型训练。
例如,模型训练系统包括:tensorflow和pytorch两种训练框架,则tensorflow中包括tensorflow对应的训练适配模块1,pytorch中包括pytorch对应的训练适配模块2。
模型训练系统100中可以部署任意类型的训练框架,在训练框架中部署能够将预设通用格式到训练框架中相应训练模块所支持的指定数据格式转换的训练适配模块。
基于上述介绍,可知,当有新增的训练框架102需要部署至模型训练系统时,在训练框架中开发并部署能够将预设通用格式转换为训练框架中相应训练模块所支持的指定数据格式的训练适配模块,便可以实现预设通用格式的数据与新增训练框架包括的训练模块之间的适配,满足用户对于训练框架灵活扩展的需求,且无需对前端的源数据处理模块101进行任何修改。
图2为本公开另一实施例提供的模型训练系统的整体架构示意图。请参阅图2所示,本实施例提供的模型训练系统在图1所示实施例的基础上,还包括:源数据读取模块103。
源数据读取模块103设置在源数据处理模块101的前端,用于支持多种类型的数据源的接入,从数据源中读取业务需求所需的数据集并输入至源数据处理模块以进行数据格式转换。结合前述图1所示实施例的介绍,模型训练系统中的调度模块可以基于业务需求向源数据读取模块103下发数据读取任务,源数据读取模块103接收到数据读取任务后,从业务需求对应的指定数据源中读取所需的数据集。
作为一种可能的实施方式,模型训练系统中可以配置一个库,用于存储不同类型的数据源分别提供的软件工具开发包(Software Development Kit,SDK),源数据读取模块103可以基于业务需求调用库中所存储与业务需求所对应的指定数据源的SDK,源数据读取模块103通过运行SDK,从而访问指定数据源,读取指定数据源中的数据。
例如,模型训练系统支持从HDFS、S3、Kafka三种数据源中读取数据,则库中可以存储HDFS、S3、Kafka三种类型的数据源分别提供的SDK,使得源数据读取模块103能够通过调用相应数据源对应的SDK成功读取数据源中的数据。
其中,为了提高数据读取效率,源数据读取模块103中可以包括多个数据读取模块,多个数据读取模块可以并行执行数据读取,且多个数据读取模块可以分别支持调用不同类型的数据源的SDK,并将数据读取模块与后端源数据处理模块101中相应类型的数据格式转换模块对应连接。
需要说明的是,在数据源中数据可以以一种或多种数据格式存储,因此,数据读取模块可以与后端多个数据格式转换模块连接。
在一些实施例中,若模型训练系统需要支持从新增类型的数据源中读取数据,则可以在模型训练系统的库中部署新增类型的数据源对应的SDK即可实现源数据读取模块103成功读取数据,且无需对后端的源数据处理模块101以及训练框架102进行任何修改,方便用户灵活地进行数据源的扩展及接入。
结合图1以及图2所示实施例,采用本公开提供的模型训练系统能够实现多线程的数据读取,不仅能够提升训练速度,还能够打破现有的训练框架中单线程训练的限制。
接下来,举例介绍预设通用格式的数据结构。其中,图3为本公开一实施例提供的预设通用格式的数据结构示意图。请参阅图3所示,预设通用格式包括:数据包头(header)、元数据(metadata)以及数据(data)部分。
header描述了数据集的属性信息,其中,属性信息可以包括数据集的大小、业务需求所对应的目标训练模块指定的数据编码方式、协议版本号以及魔数(magic number)中的一项或多项。其中,magic number能够解决由于放置数据位错误导致整个数据无法解析的问题。可以理解的是,随着模型训练方式的不断优化,header中存储的数据集的属性信息可以进行调整,如,可以增加新的属性信息或者减少一些属性信息。
metadata主要用于描述数据集中包括的各样本数据的特征的数据类型。此处提及的特征的数据类型可以包括但不限于:整型、浮点型、短整型等等。
data部分用于存储样本数据的特征,其中,每个样本数据均是由多个前述metadata描述的特征组成的。
需要说明的是,预设通用格式的数据结构并不限于图3所示实施例中的示例,还可以为其他数据结构实现。本公开对于预设通用格式所采用的具体数据结构不做限定。
图4为本公开一实施例提供的模型训练方法的流程图。该方法可以通过前述图1或者图2所示实施例的模型训练系统实现。请参阅图4所示,本实施例提供的方法包括:
S401、调用源数据处理模块将输入的业务需求对应的数据集转换成预设通用格式,将符合预设通用格式的数据集作为初始训练数据并传递给模型训练系统中的与业务需求相对应的目标训练适配模块。
业务需求用于指业务对应的模型训练需求,业务需求可以但不限于是基于用户输入的操作指令生成的。其中,业务可以为任意业务,本公开不限定业务类型,例如,可以为图像识别业务、语音识别业务、文本处理业务等等。不同业务所需的数据集不同,例如,图像识别业务所需的数据集包括样本图像数据,语音识别业务所需的数据集包括音频样本数据,文本处理业务所需的数据集为文本样本数据。
其中,数据集可以是模型训练系统中的源数据读取模块调用业务需求所对应的指定数据源对应的SDK,进而从指定数据源读取得到的。其中,业务需求所对应的指定数据源可以为一个或者多个。
若指定数据源的数量为多个,则可以调用源数据读取模块中的多个数据读取子模块用于并发执行从多个指定数据源读取业务需求所需的数据集,以提高数据读取效率。
结合前述模型训练系统的介绍可知,本实施例可以调用源数据处理模块对数据集中包括的样本数据进行数据解析,得到数据集的属性信息、样本数据的特征以及特征数据类型,之后,再按照预设通用格式的数据封装规则将数据集的属性信息写入数据包头、将样本数据的特征写入数据部分,以及将特征的数据类型写入元数据部分,重新封装得到初始训练数据。
此外,源数据处理模块可以通过匿名管道、命名管道、socket或者共享内存中任一种方式向业务需求对应的目标训练框架中的目标训练适配模块发送初始训练数据。具体通过何种方式向目标训练适配模块发送初始训练数据,可以但不限于由用户基于模型训练系统所搭载的硬件资源占用情况、硬件资源的数据处理能力等等决定,也可以由模型训练系统自行确定。
S402、调用目标训练适配模块将初始训练数据转换成模型训练系统中的与业务需求对应的目标训练模块支持的指定数据格式得到符合指定数据格式的目标训练数据,将目标训练数据输出至目标训练模块。
调用目标训练适配模块基于上游的源数据处理模块定义的交互方式,从相应的匿名管道、命名管道、socket或者共享内存中读取通用数据格式的初始训练数据。再对通用数据格式的初始训练数据进行数据解析得到数据集的属性信息、样本数据的特征以及特征的数据类型,之后,再按照目标训练模块支持的指定数据格式对应的数据封装规则对数据集的属性信息、样本数据的特征以及特征的数据类型重新封装得到能够直接输入至目标训练模块的目标训练数据。
S403、调用目标训练模块根据业务需求和接收到的目标训练数据进行模型训练,以训练得到满足训练结束条件的模型。
目标训练模块能够加载待训练模型,并基于业务需求,将目标训练数据输入至待训练模型中进行训练,通过不断迭代训练,直至满足训练结束条件得到训练好的模型。
本实施例提供的方法通过采用数据读取与训练框架解耦的模型训练系统进行模型训练,实现训练加速。其中,源数据处理模块支持多种不同类型的数据源的接入,通过调用源数据处理模块基于业务需求对从指定数据源读取的所需的数据集进行数据格式转换得到预设通用格式的初始训练数据,并输出至业务需求所对应的目标训练框架中;由目标训练框架包括的目标训练适配模块对预设通用格式的初始训练数据进行转换得到符合目标训练模块支持的指定数据格式的目标训练数据,并将目标训练数据输出至目标训练模块进行模型训练,以训练得到满足训练结束条件的模型。
请参阅图5所示,在一个具体的实施例中,假设前端有3个数据源分别采用存储类型A、存储类型B以及存储类型C存储数据,后端有两个训练框架有相应的模型训练业务需求。模型训练系统的源数据读取模块能够通过调用3个数据源分别对应的SDK读取业务需求所需的数据,其中,存储类型A的数据读出为数据格式x,存储类型B的数据读出为数据格式y,存储类型C的数据读出为数据格式z,之后,通过模型训练系统中的源数据处理模块将数据格式x、数据格式y以及数据格式z的数据集转换为预设通用格式得到初始训练数据,并将训练框架1所需的初始训练数据存储至训练框架1对应的指定管道/socket/指定共享内存中,由训练框架1中的训练适配模块从相应的管道/socket/指定共享内存中读出所需的初始训练数据重新解析以及封装之后输入后端的训练框架1包括的训练模块进行模型训练。
类似地,源数据处理模块将训练框架2所需的初始训练数据存储至训练框架2对应的指定管道/socket/指定共享内存中,由训练框架2中的训练适配模块从相应的管道/socket/指定共享内存中读出所需的初始训练数据重新解析以及封装之后输入后端的训练框架2包括的训练模块进行模型训练。
若采用现有的模型训练系统,则需要在整个模型训练系统中部署6种代码进行数据读取,而采用本公开提供的方案通过5种代码便可实现数据读取。随着数据源种类不断增多,数据格式也不断增多,以及,随着训练框架数量的不断增多,本公开提供的模型训练系统相比于现有的模型训练系统而言,训练速度提升效果会更加明显。且采用源数据处理模块与训练框架分层的方式进行部署,有利于整个模型训练系统的维护以及灵活扩展,能够满足用户日益增多的模型训练需求。
示例性地,本公开还提供一种电子设备。图6为本公开一实施例提供的电子设备的结构示意图。请参阅图6所示,本实施例提供的电子设备600包括:存储器601和处理器602。
其中,存储器601可以是独立的物理单元,与处理器602可以通过总线603连接。存储器601、处理器602也可以集成在一起,通过硬件实现等。
存储器601用于存储程序指令,处理器602调用该程序指令,执行以上任一方法实施例提供的模型训练方法。
可选地,当上述实施例的方法中的部分或全部通过软件实现时,上述电子设备600也可以只包括处理器602。用于存储程序的存储器601位于电子设备600之外,处理器602通过电路/电线与存储器连接,用于读取并执行存储器中存储的程序。
处理器602可以是中央处理器(central processing unit,CPU),网络处理器(network processor,NP)或者CPU和NP的组合。
处理器602还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmablelogic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complexprogrammable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gatearray,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。
存储器601可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器也可以包括非易失性存储器(non-volatilememory),例如快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器还可以包括上述种类的存储器的组合。
本公开还提供一种可读存储介质,包括:计算机程序指令,所述计算机程序指令被电子设备的至少一个处理器执行时,使得所述电子设备实现如上任一方法实施例提供的模型训练方法。
本公开还提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机实现如上任一方法实施例提供的模型训练方法。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (12)
1.一种模型训练系统,其特征在于,包括:
源数据处理模块,用于将输入的业务需求对应的数据集转换成预设通用格式,将符合所述预设通用格式的数据集作为初始训练数据并传递给所述模型训练系统中与所述业务需求对应的目标训练适配模块;
所述目标训练适配模块,用于将所述初始训练数据转换成所述业务需求对应的目标训练模块支持的指定数据格式得到符合所述指定数据格式的目标训练数据,将所述目标训练数据输出至与所述目标训练模块;
所述目标训练模块,用于根据所述业务需求和接收到的所述目标训练数据进行模型训练,以训练得到满足训练结束条件的模型。
2.根据权利要求1所述的系统,其特征在于,所述预设通用格式包括:数据包头、元数据以及数据部分;数据包头用于指示所述数据集的属性信息,所述元数据用于指示所述初始训练数据的特征的数据类型,所述数据部分用于存储所述初始训练数据的特征;
其中,所述属性信息包括:所述数据集的大小、所述目标训练模块预先指定的数据编码方式、协议版本号以及魔数中的一项或多项。
3.根据权利要求2所述的系统,其特征在于,所述目标训练适配模块,具体用于对所述初始训练数据进行数据解析,获取所述数据集的属性信息、样本数据的特征以及特征的数据类型;基于所述目标训练模块支持的指定数据格式对应的数据封装规则,将所述数据集的属性信息、样本数据的特征以及特征的数据类型封装得到所述目标训练数据,并向所述目标训练模块发送所述目标训练数据。
4.根据权利要求2所述的系统,其特征在于,所述源数据处理模块,具体用于对所述数据集进行数据解析,获取所述数据集的属性信息、样本数据的特征以及特征的数据类型;以及,按照所述预设通用格式对应的数据封装规则,将所述数据集的属性信息、样本数据的特征以及特征的数据类型封装得到所述初始训练数据,并向所述目标训练适配模块发送所述初始训练数据。
5.根据权利要求1所述的系统,其特征在于,所述源数据处理模块通过匿名管道、命名管道、套接字方式以及共享内存方式中任一方式向所述目标训练适配模块发送所述预设通用格式的初始训练数据。
6.根据权利要求1至5任一项所述的系统,其特征在于,还包括:源数据读取模块,用于支持多种类型的数据源的接入,从所述业务需求对应的指定数据源中读取所述业务需求所需的数据集,并将读取的数据集输出至所述源数据处理模块进行数据格式转换。
7.根据权利要求6所述的系统,其特征在于,所述源数据读取模块,具体用于调用所述指定数据源对应的软件工具包,通过运行所述软件工具包访问所述指定数据源,读取所述业务需求所需的数据集。
8.一种模型训练方法,其特征在于,包括:
调用源数据处理模块将输入的业务需求对应的数据集转换成预设通用格式,将符合所述预设通用格式的数据集作为初始训练数据并传递给模型训练系统中的与所述业务需求相对应的目标训练适配模块;
调用所述目标训练适配模块将所述初始训练数据转换成所述模型训练系统中的与所述业务需求对应的目标训练模块支持的指定数据格式得到符合所述指定数据格式的目标训练数据,将所述目标训练数据输出至所述目标训练模块;
调用所述目标训练模块根据所述业务需求和接收到的所述目标训练数据进行模型训练,以训练得到满足训练结束条件的模型。
9.根据权利要求8所述的方法,其特征在于,所述预设通用格式包括:数据包头、元数据以及数据部分;数据包头用于指示所述数据集的属性信息,所述元数据用于指示所述初始训练数据的特征的数据类型,所述数据部分用于存储所述初始训练数据的特征;
其中,所述属性信息包括:所述数据集的大小、所述目标训练模块预先指定的数据编码方式、协议版本号以及魔数中的一项或多项。
10.一种电子设备,其特征在于,包括:存储器和处理器;
所述存储器被配置为存储计算机程序指令;
所述处理器被配置为执行所述计算机程序指令,使得所述电子设备实现如权利要求8或9所述的模型训练方法。
11.一种可读存储介质,其特征在于,包括:计算机程序指令;
电子设备执行所述计算机程序指令,使得所述电子设备实现如权利要求8或9所述的模型训练方法。
12.一种计算机程序产品,其特征在于,电子设备的至少一个处理器执行所述计算机程序产品,使得所述电子设备实现如权利要求8或9所述的模型训练方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210792462.6A CN115099352A (zh) | 2022-07-05 | 2022-07-05 | 模型训练系统、模型训练方法及装置 |
PCT/CN2023/098217 WO2024007787A1 (zh) | 2022-07-05 | 2023-06-05 | 模型训练系统、模型训练方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210792462.6A CN115099352A (zh) | 2022-07-05 | 2022-07-05 | 模型训练系统、模型训练方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115099352A true CN115099352A (zh) | 2022-09-23 |
Family
ID=83296920
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210792462.6A Pending CN115099352A (zh) | 2022-07-05 | 2022-07-05 | 模型训练系统、模型训练方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115099352A (zh) |
WO (1) | WO2024007787A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116822657A (zh) * | 2023-08-25 | 2023-09-29 | 之江实验室 | 一种模型训练加速的方法、装置、存储介质及电子设备 |
WO2024007787A1 (zh) * | 2022-07-05 | 2024-01-11 | 北京火山引擎科技有限公司 | 模型训练系统、模型训练方法及装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107516135A (zh) * | 2017-07-14 | 2017-12-26 | 浙江大学 | 一种支持多源数据的自动化监督性学习方法 |
CN110516815A (zh) * | 2019-08-29 | 2019-11-29 | 腾讯科技(深圳)有限公司 | 人工智能推荐模型的特征处理方法、装置及电子设备 |
CN112328674B (zh) * | 2020-11-17 | 2024-05-14 | 深圳力维智联技术有限公司 | 跨数据格式的模型转化加速方法及装置 |
CN115794913B (zh) * | 2020-12-30 | 2024-03-15 | 华为技术有限公司 | 一种人工智能系统中数据处理方法及装置 |
CN115099352A (zh) * | 2022-07-05 | 2022-09-23 | 北京火山引擎科技有限公司 | 模型训练系统、模型训练方法及装置 |
-
2022
- 2022-07-05 CN CN202210792462.6A patent/CN115099352A/zh active Pending
-
2023
- 2023-06-05 WO PCT/CN2023/098217 patent/WO2024007787A1/zh unknown
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024007787A1 (zh) * | 2022-07-05 | 2024-01-11 | 北京火山引擎科技有限公司 | 模型训练系统、模型训练方法及装置 |
CN116822657A (zh) * | 2023-08-25 | 2023-09-29 | 之江实验室 | 一种模型训练加速的方法、装置、存储介质及电子设备 |
CN116822657B (zh) * | 2023-08-25 | 2024-01-09 | 之江实验室 | 一种模型训练加速的方法、装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2024007787A1 (zh) | 2024-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11372919B2 (en) | Distributed graph databases that facilitate streaming data insertion and queries by efficient throughput edge addition | |
US11010681B2 (en) | Distributed computing system, and data transmission method and apparatus in distributed computing system | |
US11321393B2 (en) | Distributed graph databases that facilitate streaming data insertion and queries by reducing number of messages required to add a new edge by employing asynchronous communication | |
US20210406068A1 (en) | Method and system for stream computation based on directed acyclic graph (dag) interaction | |
US11314775B2 (en) | Distributed graph databases that facilitate streaming data insertion and low latency graph queries | |
CN115099352A (zh) | 模型训练系统、模型训练方法及装置 | |
US11893424B2 (en) | Training a neural network using a non-homogenous set of reconfigurable processors | |
US11847395B2 (en) | Executing a neural network graph using a non-homogenous set of reconfigurable processors | |
US11941447B2 (en) | Object-oriented memory client | |
CN113918101B (zh) | 一种写数据高速缓存的方法、系统、设备和存储介质 | |
US20190228308A1 (en) | Deep learning accelerator system and methods thereof | |
US9244734B2 (en) | Mechanism of supporting sub-communicator collectives with o(64) counters as opposed to one counter for each sub-communicator | |
CN111562885A (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
US20220206846A1 (en) | Dynamic decomposition and thread allocation | |
US20170013090A1 (en) | Client-side aggregation of nested resource dependencies | |
US20230056665A1 (en) | Mechanism to provide reliable receipt of event messages | |
US11656972B1 (en) | Paginating results obtained from separate programmatic interfaces | |
Que et al. | Exploring network optimizations for large-scale graph analytics | |
US20230259477A1 (en) | Dynamically-Sized Data Structures on Data Flow Architectures | |
US20240111694A1 (en) | Node identification allocation in a multi-tile system with multiple derivatives | |
CN117453127A (zh) | 一种id资源存储系统、分配方法、回收方法及装置 |
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 |