首页 / 专利库 / 专利权 / 权利要求 / 一种深度学习网络训练系统及方法

一种深度学习网络训练系统及方法

阅读:4发布:2021-01-14

专利汇可以提供一种深度学习网络训练系统及方法专利检索,专利查询,专利分析的服务。并且本 申请 实施例 提供了一种 深度学习 网络训练系统及方法,系统包括:客户端、交换机、存储 服务器 集群及训练服务器集群;客户端获取用户输入的训练 请求 ,并将训练请求发送至交换机;交换机根据训练请求中的 硬件 资源请求,从训练服务器集群中选择多个总硬件资源满足硬件资源请求的第一训练服务器,发送训练任务信息至各第一训练服务器;存储服务器集群包括多个用于存储训练资源的存储服务器;训练服务器集群,包括多个训练服务器;各第一训练服务器根据训练任务信息,从存储服务器集群中读取训练资源;将训练资源分配至各自的容器中,以使各第一训练服务器的容器之间进行深度学习网络并行训练。通过本方案,可以实现深度学习网络的快速训练。,下面是一种深度学习网络训练系统及方法专利的具体信息内容。

1.一种深度学习网络训练系统,其特征在于,所述系统包括:客户端、交换机、存储服务器集群及训练服务器集群;
所述客户端,用于获取用户输入的训练请求,并将所述训练请求发送至所述交换机,所述训练请求包括硬件资源请求以及训练任务信息;
所述交换机,用于根据所述硬件资源请求,从所述训练服务器集群中选择多个第一训练服务器,所述多个第一训练服务器的总硬件资源满足所述硬件资源请求;发送所述训练任务信息至各第一训练服务器;
所述存储服务器集群,包括多个存储服务器;各存储服务器,用于存储训练资源;
所述训练服务器集群,包括多个训练服务器;所述各第一训练服务器,用于根据所述训练任务信息,从所述存储服务器集群中读取训练资源;将所述训练资源分配至各自的容器中,以使各第一训练服务器的容器之间进行深度学习网络并行训练,所述各第一训练服务器的容器具有针对所述训练任务信息的相同的深度学习网络初始模型,并安装有相同的训练脚本运行环境。
2.根据权利要求1所述的系统,其特征在于,所述客户端,还用于提供操作系统windows共享存储服务,以使用户通过windows进行数据操作。
3.根据权利要求1所述的系统,其特征在于,所述客户端、所述交换机、所述存储服务器集群与所述训练服务器集群之间,所述存储服务器集群中的各存储服务器之间,以及,所述训练服务器集群中的各训练服务器之间,均采用万兆网络互连。
4.根据权利要求1所述的系统,其特征在于,所述训练服务器集群通过挂载方式,将所述存储服务器集群中的所有存储服务器均挂载至各训练服务器上。
5.根据权利要求1所述的系统,其特征在于,所述各第一训练服务器,采用远程直接数据存取RDMA方式,从所述存储服务器集群中读取训练资源。
6.根据权利要求1所述的系统,其特征在于,所述多个第一训练服务器中的任一训练服务器根据所述训练任务信息,创建安装有指定训练脚本运行环境的容器,并根据所述训练任务信息,在所述容器中搭建深度学习网络初始模型;将所述容器镜像至所述多个第一训练服务器中的其他训练服务器。
7.根据权利要求1所述的系统,其特征在于,所述客户端,还用于接收用户在壳shell方式下输入的自定义训练脚本,并将所述自定义训练脚本发送至所述交换机;
所述交换机,还用于将所述自定义训练脚本发送至各第一训练服务器;
各第一训练服务器,还用于根据所述自定义训练脚本,从所述存储服务器集群中读取训练资源;将所述训练资源分配至各自的容器中,以使各第一训练服务器的容器之间进行深度学习网络并行训练。
8.根据权利要求1所述的系统,其特征在于,所述各第一训练服务器,还用于将训练结果发送至所述客户端;
所述客户端,还用于在shell目录中存储所述训练结果。
9.根据权利要求1所述的系统,其特征在于,各第一训练服务器中至少包括一个容器。
10.根据权利要求1所述的系统,其特征在于,各第一训练服务器的容器之间通过RDMA方式交互数据。
11.一种深度学习网络训练方法,其特征在于,应用于交换机,所述方法包括:
接收客户端发送的训练请求,所述训练请求包括硬件资源请求以及训练任务信息;
根据所述硬件资源请求,从训练服务器集群中选择多个第一训练服务器,所述多个第一训练服务器的总硬件资源满足所述硬件资源请求;
发送所述训练任务信息至各第一训练服务器,以使各第一训练服务器根据所述训练任务信息,从存储服务器集群中读取训练资源,并将所述训练资源分配至各自的容器中进行深度学习网络并行训练,所述各第一训练服务器的容器具有针对所述训练任务信息的相同的深度学习网络初始模型,并安装有相同的训练脚本运行环境。
12.根据权利要求11所述的方法,其特征在于,所述训练任务信息包括:自定义训练脚本;
所述发送所述训练任务信息至各第一训练服务器,包括:
发送所述自定义训练脚本至各第一训练服务器,以使各第一训练服务器根据所述自定义训练脚本,从所述存储服务器集群中读取训练资源,并将所述训练资源分配至各自的容器中进行深度学习网络并行训练。
13.一种深度学习网络训练方法,其特征在于,应用于第一训练服务器,所述第一训练服务器为训练服务器集群中总硬件资源满足客户端发送的硬件资源请求的多个训练服务器中的任一训练服务器,所述方法包括:
接收交换机发送的训练任务信息;
根据所述训练任务信息,从存储服务器集群中读取训练资源;
将所述训练资源分配至自身的容器中,以使所述容器进行深度学习网络训练。
14.根据权利要求13所述的方法,其特征在于,所述根据所述训练任务信息,从存储服务器集群中读取训练资源,包括:
根据所述训练任务信息,采用RDMA方式,从存储服务器集群中读取训练资源。
15.根据权利要求13所述的方法,其特征在于,在所述将所述训练资源分配至自身的容器中之前,所述方法还包括:
根据所述训练任务信息,创建安装有指定训练脚本运行环境的容器;
根据所述训练任务信息,在所述容器中搭建深度学习网络初始模型;
将所述容器镜像至所述训练服务器集群中总硬件资源满足所述客户端发送的硬件资源请求的多个训练服务器中除所述第一训练服务器以外的其他训练服务器。
16.根据权利要求13所述的方法,其特征在于,所述训练任务信息包括:自定义训练脚本;
所述根据所述训练任务信息,从存储服务器集群中读取训练资源,包括:
根据所述自定义训练脚本,从存储服务器集群中读取训练资源。
17.根据权利要求13所述的方法,其特征在于,在所述将所述训练资源分配至自身的容器中之后,所述方法还包括:
将训练结果发送至客户端,以使所述客户端在shell目录中存储所述训练结果。

说明书全文

一种深度学习网络训练系统及方法

技术领域

[0001] 本申请涉及机器学习技术领域,特别是涉及一种深度学习网络训练系统及方法。

背景技术

[0002] 深度学习,具体来说是一种含多隐层的机器学习结构。深度学习网络,通过模仿人脑的机制来解析数据,是一种通过建立和模拟人脑进行分析学习的智能模型。深度学习网络在计算机视觉语音识别机器人控制等领域已经取得了巨大成功,通过多个网络层的逐层运算,可以提取出目标的特征信息,从而实现智能跟踪、智能检索等功能,因此,深度学习网络逐渐成为了现代人工智能的基石。
[0003] 深度学习网络主要是通过训练服务器预先搜集大量的训练样本,在搭建深度学习网络初始模型后,基于训练样本,对深度学习网络进行训练得到目标深度学习网络。
[0004] 然而,深度学习网络的结构越来越复杂,并且为了保证深度学习网络的准确性,搜集的训练样本数量越来越多。这样,在进行上述训练时,所有的训练样本串行地参与深度学习网络训练,使得深度学习网络的训练速度过慢。发明内容
[0005] 本申请实施例的目的在于提供一种深度学习网络训练系统及方法,以实现深度学习网络的快速训练。具体技术方案如下:
[0006] 第一方面,本申请实施例提供了一种深度学习网络训练系统,所述系统包括:客户端、交换机、存储服务器集群及训练服务器集群;
[0007] 所述客户端,用于获取用户输入的训练请求,并将所述训练请求发送至所述交换机,所述训练请求包括硬件资源请求以及训练任务信息;
[0008] 所述交换机,用于根据所述硬件资源请求,从所述训练服务器集群中选择多个第一训练服务器,所述多个第一训练服务器的总硬件资源满足所述硬件资源请求;发送所述训练任务信息至各第一训练服务器;
[0009] 所述存储服务器集群,包括多个存储服务器;各存储服务器,用于存储训练资源;
[0010] 所述训练服务器集群,包括多个训练服务器;所述各第一训练服务器,用于根据所述训练任务信息,从所述存储服务器集群中读取训练资源;将所述训练资源分配至各自的容器中,以使各第一训练服务器的容器之间进行深度学习网络并行训练,所述各第一训练服务器的容器具有针对所述训练任务信息的相同的深度学习网络初始模型,并安装有相同的训练脚本运行环境。
[0011] 可选的,所述客户端,还用于提供操作系统windows共享存储服务,以使用户通过windows进行数据操作。
[0012] 可选的,所述客户端、所述交换机、所述存储服务器集群与所述训练服务器集群之间,所述存储服务器集群中的各存储服务器之间,以及,所述训练服务器集群中的各训练服务器之间,均采用万兆网络互连。
[0013] 可选的,所述训练服务器集群通过挂载方式,将所述存储服务器集群中的所有存储服务器均挂载至各训练服务器上。
[0014] 可选的,所述各第一训练服务器,采用远程直接数据存取RDMA方式,从所述存储服务器集群中读取训练资源。
[0015] 可选的,所述多个第一训练服务器中的任一训练服务器根据所述训练任务信息,创建安装有指定训练脚本运行环境的容器,并根据所述训练任务信息,在所述容器中搭建深度学习网络初始模型;将所述容器镜像至所述多个第一训练服务器中的其他训练服务器。
[0016] 可选的,所述客户端,还用于接收用户在壳shell方式下输入的自定义训练脚本,并将所述自定义训练脚本发送至所述交换机;
[0017] 所述交换机,还用于将所述自定义训练脚本发送至各第一训练服务器;
[0018] 各第一训练服务器,还用于根据所述自定义训练脚本,从所述存储服务器集群中读取训练资源;将所述训练资源分配至各自的容器中,以使各第一训练服务器的容器之间进行深度学习网络并行训练。
[0019] 可选的,所述各第一训练服务器,还用于将训练结果发送至所述客户端;
[0020] 所述客户端,还用于在shell目录中存储所述训练结果。
[0021] 可选的,各第一训练服务器中至少包括一个容器。
[0022] 可选的,各第一训练服务器的容器之间通过RDMA方式交互数据。
[0023] 第二方面,本申请实施例提供了一种深度学习网络训练方法,应用于交换机,所述方法包括:
[0024] 接收客户端发送的训练请求,所述训练请求包括硬件资源请求以及训练任务信息;
[0025] 根据所述硬件资源请求,从训练服务器集群中选择多个第一训练服务器,所述多个第一训练服务器的总硬件资源满足所述硬件资源请求;
[0026] 发送所述训练任务信息至各第一训练服务器,以使各第一训练服务器根据所述训练任务信息,从存储服务器集群中读取训练资源,并将所述训练资源分配至各自的容器中进行深度学习网络并行训练,所述各第一训练服务器的容器具有针对所述训练任务信息的相同的深度学习网络初始模型,并安装有相同的训练脚本运行环境。
[0027] 可选的,所述训练任务信息包括:自定义训练脚本;
[0028] 所述发送所述训练任务信息至各第一训练服务器,包括:
[0029] 发送所述自定义训练脚本至各第一训练服务器,以使各第一训练服务器根据所述自定义训练脚本,从所述存储服务器集群中读取训练资源,并将所述训练资源分配至各自的容器中进行深度学习网络并行训练。
[0030] 第三方面,本申请实施例提供了一种深度学习网络训练方法,应用于第一训练服务器,所述第一训练服务器为训练服务器集群中总硬件资源满足客户端发送的硬件资源请求的多个训练服务器中的任一训练服务器,所述方法包括:
[0031] 接收交换机发送的训练任务信息;
[0032] 根据所述训练任务信息,从存储服务器集群中读取训练资源;
[0033] 将所述训练资源分配至自身的容器中,以使所述容器进行深度学习网络训练。
[0034] 可选的,所述根据所述训练任务信息,从存储服务器集群中读取训练资源,包括:
[0035] 根据所述训练任务信息,采用RDMA方式,从存储服务器集群中读取训练资源。
[0036] 可选的,在所述将所述训练资源分配至自身的容器中之前,所述方法还包括:
[0037] 根据所述训练任务信息,创建安装有指定训练脚本运行环境的容器;
[0038] 根据所述训练任务信息,在所述容器中搭建深度学习网络初始模型;
[0039] 将所述容器镜像至所述训练服务器集群中总硬件资源满足所述客户端发送的硬件资源请求的多个训练服务器中除所述第一训练服务器以外的其他训练服务器。
[0040] 可选的,所述训练任务信息包括:自定义训练脚本;
[0041] 所述根据所述训练任务信息,从存储服务器集群中读取训练资源,包括:
[0042] 根据所述自定义训练脚本,从存储服务器集群中读取训练资源。
[0043] 可选的,在所述将所述训练资源分配至自身的容器中之后,所述方法还包括:
[0044] 将训练结果发送至客户端,以使所述客户端在shell目录中存储所述训练结果。
[0045] 本申请实施例提供的一种深度学习网络训练系统及方法,深度学习网络训练系统包括:客户端、交换机、存储服务器集群及训练服务器集群;客户端,用于获取用户输入的训练请求,并将训练请求发送至交换机,其中,训练请求包括硬件资源请求以及训练任务信息;交换机,用于根据硬件资源请求,从训练服务器集群中选择多个第一训练服务器,其中,多个第一训练服务器的总硬件资源满足硬件资源请求,发送训练任务信息至各第一训练服务器;存储服务器集群,包括多个存储服务器,各存储服务器,用于存储训练资源;训练服务器集群,包括多个训练服务器,各第一训练服务器,用于根据训练任务信息,从存储服务器集群中读取训练资源,将训练资源分配至各自的容器中,以使各第一训练服务器的容器之间进行深度学习网络并行训练,其中,各第一训练服务器的容器具有针对训练任务信息的相同的深度学习网络初始模型,并安装有相同的训练脚本运行环境。
[0046] 交换机在接收到训练请求之后,根据训练请求中的硬件资源请求,从训练服务器集群中选择多个第一训练服务器,各第一训练服务器分别根据训练任务信息,从存储服务器集群中读取训练资源,并分配训练资源至各自的容器中进行并行训练。将单机训练分配到了多个第一训练服务器上,并且利用容器进行并行训练,每一个第一训练服务器上的容器分配到了一部分训练资源,通过并行的训练方式,快速的利用所有训练资源进行训练,并且各第一训练服务器的容器具有针对训练任务信息的相同的深度学习网络初始模型,并安装有相同的训练脚本运行环境,保证了每一个容器的训练依据相同,这样,在保证训练结果准确性的基础上,实现了深度学习网络的快速训练。附图说明
[0047] 为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0048] 图1为本申请实施例的应用于交换机的深度学习网络训练方法的流程示意图;
[0049] 图2为本申请实施例的应用于第一训练服务器的深度学习网络训练方法的流程示意图;
[0050] 图3为本申请实施例的深度学习网络训练系统的结构示意图;
[0051] 图4为本申请实施例的深度学习网络训练方法的交互流程示意图;
[0052] 图5为本申请实施例的任务资源结构示意图;
[0053] 图6为本申请实施例的容器任务部署示意图;
[0054] 图7为本申请实施例的应用于交换机的深度学习网络训练装置的结构示意图;
[0055] 图8为本申请实施例的应用于第一训练服务器的深度学习网络训练装置的结构示意图;
[0056] 图9为本申请实施例的交换机的结构示意图;
[0057] 图10为本申请实施例的训练服务器的结构示意图。

具体实施方式

[0058] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0059] 为了实现深度学习网络的快速训练,本申请实施例提供了一种深度学习网络训练系统及方法。
[0060] 下面,分别从交换机和训练服务器为执行主体,对本申请实施例所提供的深度学习网络训练方法进行介绍。
[0061] 如图1所示,本申请实施例所提供的一种应用于交换机的深度学习网络训练方法,该方法可以包括如下步骤:
[0062] S101,接收客户端发送的训练请求,其中,训练请求包括硬件资源请求以及训练任务信息。
[0063] 用户在设置目标任务时,会在客户端上输入训练请求,例如,在设置车辆目标检测任务时,会输入与车辆检测任务相应的训练请求。训练请求可以包括硬件资源请求和训练任务信息,硬件资源请求可以包括申请GPU(Graphics Processing Unit,图形处理器)、CPU(Central Processing Unit,中央处理器)、内存、硬盘等资源的请求。训练任务信息至少可以包括请求使用的训练架构,例如Caffe、PyTorch、TensorFlow、MXNet、Caffe2、Kaldi等训练架构,训练任务信息还可以包括目标任务的类型,例如,是进行车辆识别、人脸识别还是语音识别,决定了从存储服务器集群中读取训练资源的类型。
[0064] 用户在客户端上输入训练请求后,客户端将该训练请求发送至交换机,由交换机进行任务、资源调度管理。需要说明的一点,这里所提及的交换机,是指系统外部与系统内部设备之间信息交换的设备,并不是特指的通信领域中传统意义的交换机,能够实现任务、资源调度管理的设备、芯片等也属于本申请实施例的保护范围。
[0065] S102,根据硬件资源请求,从训练服务器集群中选择多个第一训练服务器,其中,多个第一训练服务器的总硬件资源满足硬件资源请求。
[0066] 硬件资源请求决定了需要参与训练的硬件资源的多少,一个训练服务器的硬件资源有限,可以根据硬件资源请求,从训练服务器集群中选择多个第一训练服务器,所有第一训练服务器的总硬件资源需要满足硬件资源请求。例如,硬件资源请求为16个GPU资源,而训练服务器集群中每一个训练服务器的GPU资源为4个,则可以选择4个训练服务器作为第一训练服务器。
[0067] S103,发送训练任务信息至各第一训练服务器。
[0068] 交换机在选择多个第一训练服务器之后,将训练任务信息发送至各第一训练服务器。由于训练任务信息中包含有请求使用的训练架构、目标任务的类型等信息,决定了各第一训练服务器需要去存储服务器集群中读取哪些数据。基于此,各第一训练服务器在接收到训练任务信息后,可以根据训练任务信息,从存储服务器集群中读取训练资源,并将训练资源分配至各自的容器中进行深度学习网络并行训练。训练任务信息中包括有目标任务的类型,例如进行车辆识别任务,则每一个第一训练服务器从存储服务器中读取一部分车辆样本进行训练。
[0069] 训练任务信息中还可以包括容器运行训练脚本的运行环境,这样,各第一训练服务器中的容器可以是在接收到训练任务信息后,各第一训练服务器安装训练任务信息携带的训练脚本运行环境后生成的容器;各第一训练服务器中的容器也可以是某一个第一训练服务器安装训练任务信息携带的训练脚本运行环境后生成容器后,将该容器镜像至其他第一训练服务器;训练任务信息中还可以包括客户端生成的容器镜像,则各第一训练服务器中的容器是基于该容器镜像得到的。训练脚本运行环境可以为Hadoop平台和Spark等分布式的脚本运行环境。
[0070] 将任务训练信息发送至各第一训练服务器,由各第一训练服务器各自到存储服务器集群中读取数据、并到各自的容器中进行训练,训练的过程是各容器并行完成的,将串行的方式进行分布式的并行化处理,明显提升了深度学习网络训练的速度。并且,将训练任务分配到多个第一训练服务器,避免了单个训练服务器中多个容器并行训练时,硬件资源不够所导致的训练效率较低的问题。
[0071] 可选的,训练任务信息可以包括:自定义训练脚本。
[0072] 则S103具体可以为:
[0073] 发送自定义训练脚本至各第一训练服务器,以使各第一训练服务器根据自定义训练脚本,从存储服务器集群中读取训练资源,并将训练资源分配至各自的容器中进行深度学习网络并行训练。
[0074] 用户在输入训练请求时,训练任务信息中请求使用的训练架构可以为Caffe、PyTorch、TensorFlow、MXNet、Caffe2、Kaldi等传统的训练架构中的人一种,也可以为自定义训练,用户输入的训练任务信息中可以包括自定义训练脚本,通过将自定义训练脚本发送至各第一训练服务器,各第一服务器根据自定义训练脚本,读取训练资源,进行深度学习网络训练。通过提供自定义任务,极大的提升了用户任务的可扩展性。
[0075] 应用本实施例,交换机在接收到训练请求之后,根据训练请求中的硬件资源请求,从训练服务器集群中选择多个第一训练服务器,各第一训练服务器分别根据训练任务信息,从存储服务器集群中读取训练资源,并分配训练资源至各自的容器中进行并行训练。将单机训练分配到了多个第一训练服务器上,并且利用容器进行并行训练,每一个第一训练服务器上的容器分配到了一部分训练资源,通过并行的训练方式,快速的利用所有训练资源进行训练,并且各第一训练服务器的容器具有针对训练任务信息的相同的深度学习网络初始模型,并安装有相同的训练脚本运行环境,保证了每一个容器的训练依据相同,这样,在保证训练结果准确性的基础上,实现了深度学习网络的快速训练。
[0076] 如图2所示,本申请实施例所提供的一种应用于第一训练服务器的深度学习网络训练方法,其中,第一训练服务器为训练服务器集群中总硬件资源满足客户端发送的硬件资源请求的多个训练服务器中的任一训练服务器,该方法可以包括如下步骤:
[0077] S201,接收交换机发送的训练任务信息。
[0078] 如图1所示实施例所述,交换机在选择多个第一训练服务器之后,会将训练任务信息发送至各第一训练服务器。
[0079] S202,根据训练任务信息,从存储服务器集群中读取训练资源。
[0080] 可选的,S202具体可以为:
[0081] 根据训练任务信息,采用RDMA(Remote Direct Memory Access,远程直接数据存取)方式,从存储服务器集群中读取训练资源。
[0082] 存储服务器集群提供数据的统一存储,存储服务器集群与训练服务器可以布置在不同位置,为了避免训练服务器与存储服务器集群之间的数据传输延迟,训练服务器可以采用RDMA方式,从存储服务器集群中读取训练资源。
[0083] 由于训练任务信息中包含有请求使用的训练架构、目标任务的类型等信息,决定了各第一训练服务器需要去存储服务器集群中读取哪些数据。基于此,各第一训练服务器在接收到训练任务信息后,可以根据训练任务信息,从存储服务器集群中读取训练资源。训练任务信息中包括有目标任务的类型,例如进行车辆识别任务,则每一个第一训练服务器从存储服务器中读取一部分车辆样本进行训练。
[0084] 可选的,训练任务信息可以包括:自定义训练脚本;
[0085] 则S202具体可以为:
[0086] 根据自定义训练脚本,从存储服务器集群中读取训练资源。
[0087] 系统提供自定义任务,自定义任务训练框架支持但不仅限于传统的训练框架,用户可以在web或者shell下通过自定义训练脚本启动训练,就可以采用自定义任务方式执行训练任务,第一训练服务器在接收到自定义训练脚本后,使用存储服务器集群中的训练资源进行训练。
[0088] S203,将训练资源分配至自身的容器中。
[0089] 容器为一种轻量级的虚拟引擎,例如Docker,每个第一训练服务器中可以创建有至少一个容器,用于运行深度学习网络训练程序,第一训练服务器将训练资源分配到容器中后,容器可以运行相应的训练程序。各第一训练服务器的容器运行训练程序时是并行执行的,因此提高了深度学习网络训练的速度。
[0090] 可选的,在S203之前,本申请实施例所提高的深度学习网络训练方法还可以包括如下步骤:
[0091] 根据训练任务信息,创建安装有指定训练脚本运行环境的容器;
[0092] 根据训练任务信息,在容器中搭建深度学习网络初始模型;
[0093] 将容器镜像至训练服务器集群中总硬件资源满足客户端发送的硬件资源请求的多个训练服务器中除第一训练服务器以外的其他训练服务器。
[0094] 训练任务信息中还可以包括容器运行训练脚本的运行环境,这样,第一训练服务器中的容器可以是在接收到训练任务信息后,第一训练服务器安装训练任务信息携带的训练脚本运行环境后创建的容器;并且训练任务信息中携带深度学习网络的相关信息,基于这些信息可以搭建深度学习网络初始模型;再将搭建了建深度学习网络初始模型的容器镜像至其他训练服务器,这样,保证了各第一训练服务器中的容器具有针对所述训练任务信息的相同的深度学习网络初始模型,并安装有相同的训练脚本运行环境。
[0095] 当然,训练任务信息中还可以包括客户端生成的容器镜像,则各第一训练服务器中的容器是基于该容器镜像得到的。
[0096] 可选的,在S203之后,本申请所提供的深度学习网络训练方法还可以包括如下步骤:
[0097] 将训练结果发送至客户端,以使客户端在shell目录中存储训练结果。
[0098] 第一训练服务器在得到训练结果后,可以将训练结果发送至客户端,客户端为用户提供shell目录,可以将训练结果存储在shell目录下,这样用户可以通过shell目录查看训练结果,为用户提供了更为快捷、便利的操作体验。训练结果可以是第一训练服务器接收其他训练服务器的容器通过RDMA方式发送来的各自的训练结果,通过结果整合、调节,不断迭代得到的最终结果。
[0099] 应用本实施例,第一训练服务器根据训练任务信息,从存储服务器集群中读取训练资源,并分配训练资源至自身的容器中进行训练。由于满足硬件资源请求的第一训练服务器有多个,将单机训练分配到了多个第一训练服务器上,并且利用容器进行并行训练,每一个第一训练服务器上的容器分配到了一部分训练资源,通过并行的训练方式,快速的利用所有训练资源进行训练,并且各第一训练服务器的容器具有针对训练任务信息的相同的深度学习网络初始模型,并安装有相同的训练脚本运行环境,保证了每一个容器的训练依据相同,这样,在保证训练结果准确性的基础上,实现了深度学习网络的快速训练。
[0100] 本申请实施例所提供了一种深度学习网络训练系统,如图3所示,该系统可以包括:客户端310、交换机320、存储服务器集群330及训练服务器集群340;存储服务器集群330包括多个存储服务器331,各存储服务器331,用于存储训练资源;训练服务器集群340包括多个训练服务器341。
[0101] 可选的,客户端310、交换机320、存储服务器集群330与训练服务器集群340之间,存储服务器集群330中的各存储服务器331之间,以及,训练服务器集群340中的各训练服务器341之间,均可以采用万兆网络互连。
[0102] 为了保证设备之间数据传输的高效性,各设备之间可以采用万兆网络互连,当然,这里只是一个具体的实例,设备间的互连方式还可以为其他高速率的互连方式,这里不再一一列举。
[0103] 下面从系统内设备交互,对本申请实施例所提供的深度学习网络训练方法进行更为详细的介绍,如图4所示。
[0104] S401,客户端310将获取的用户输入的训练请求发送至交换机320,其中,训练请求包括硬件资源请求以及训练任务信息。
[0105] 可选的,客户端310还用于提供windows共享存储服务,以使用户通过windows进行数据操作。
[0106] 用用户可以通过web或者shell方式登入客户端,以访问系统,系统可以在客户端上提供windows统一存储共享,采用高可用用户存储共享机制,为用户提供便捷的windows共享存储服务,用户可以通过windows系统进行数据操作,增强了用户的操作体验。
[0107] S402,交换机320根据硬件资源请求,从训练服务器集群340中选择多个第一训练服务器341,其中,多个第一训练服务器的总硬件资源满足硬件资源请求。
[0108] S403,交换机320发送训练任务信息至各第一训练服务器341。
[0109] S404,各第一训练服务器341根据训练任务信息,从存储服务器集群330中读取训练资源。
[0110] 训练任务信息包含有用户需要进行训练任务的相关信息,系统支持多种训练架构,例如,Caffe、PyTorch、TensorFlow、MXNet、Caffe2、Kaldi等,系统还可以支持对任务日志的分析、提供任务日志输出、任务进度状态跟踪、任务loss与精度曲线输出等功能。训练任务信息中包含有选择哪一种训练架构、需要获取哪些输出等请求信息。
[0111] 可选的,客户端310还可以接收用户在shell方式下输入的自定义训练脚本,并将自定义训练脚本发送至交换机320;交换机320在选择多个第一训练服务器之后,将自定义脚本发送至各第一训练服务器341;各第一训练服务器341根据自定义训练脚本,从存储服务器集群330中读取训练资源。
[0112] 系统还可以提供自定义任务,自定义任务训练架构支持并不限于上述Caffe、PyTorch、TensorFlow、MXNet、Caffe2、Kaldi等传统训练架构,自定义任务与shell互通,用户在shell下可以通过输入自定义训练脚本启动训练,就可以采用自定义任务方式执行训练任务。
[0113] 可选的,训练服务器集群340可以通过挂载方式,将存储服务器集群330中的所有存储服务器挂载至各训练服务器341上。
[0114] 通过挂载的方式,在训练服务器上挂载各存储服务器,能够实现训练服务器读取与过程数据存储的统一存储,实现数据的统一存储与访问,保证了在训练时可以遍历所有的训练资源。
[0115] 可选的,各第一训练服务器340可以采用RDMA方式,从存储服务器集群330中读取训练资源。
[0116] 训练资源的读取可以采用RDMA方式,以保证训练资源读取的高效性,减小传输线路延迟对训练资源读取的影响。
[0117] S405,各第一训练服务器341将训练资源分配至各自的容器中,以使各第一训练服务器的容器之间进行深度学习网络并行训练,其中,各第一训练服务器的容器具有针对训练任务信息的相同的深度学习网络初始模型,并安装有相同的训练脚本运行环境。
[0118] 可选的,多个第一训练服务器中的任一训练服务器根据训练任务信息,创建安装有指定训练脚本运行环境的容器,并根据训练任务信息,在容器中搭建深度学习网络初始模型;将容器镜像至多个第一训练服务器中的其他训练服务器。
[0119] 训练任务信息中还可以包括容器运行训练脚本的运行环境,这样,第一训练服务器中的容器可以是在接收到训练任务信息后,第一训练服务器中的任一训练服务器安装训练任务信息携带的训练脚本运行环境后创建的容器;并且训练任务信息中携带深度学习网络的相关信息,基于这些信息可以搭建深度学习网络初始模型;再将搭建了建深度学习网络初始模型的容器镜像至其他第一训练服务器,这样,保证了各第一训练服务器中的容器具有针对所述训练任务信息的相同的深度学习网络初始模型,并安装有相同的训练脚本运行环境。
[0120] 可选的,各第一训练服务器341还可以将训练结果进行整合,将整合后的训练结果发送至客户端310,由客户端310在shell目录中存储训练结果。
[0121] 如图5所示,系统提供统一存储,用户可以通过用户目录(或windows共享目录)进行自定义训练的训练资源选择,动态或者独占的占用硬件资源,用户可以通过任务目录进行传统训练的训练资源选择,动态的占用硬件资源。
[0122] 可选的,各第一训练服务器中至少包括一个容器。
[0123] 各第一训练服务器之间可以并行的进行训练,同一个第一训练服务器中各容器也可以并行的进行训练,进一步提高了训练速度。如图6所示,任务、资源调度管理,统一对任务和资源进行宏观的管理,还职能有交换机320实现;多个第一训练服务器用于执行同一个训练任务,一个第一训练服务器中可以包括至少一个容器,各容器之间协同训练,采用多容器互连的方式,可以实现大规模跨服务器快速训练。同一个第一训练服务器的容器之间可以采用VNT(Virtual Network Technologies,虚拟网络技术)实现交互,不同第一训练服务器的容器之间可以采用RDMA实现交互。由存储服务器集群实现数据统一存储,每一个任务存储对应一部分训练资源。
[0124] 可选的,各第一训练服务器的容器之间通过RDMA方式交互数据。
[0125] 应用本实施例,深度学习网络训练系统包括:客户端、交换机、存储服务器集群及训练服务器集群;客户端,用于获取用户输入的训练请求,并将训练请求发送至交换机,其中,训练请求包括硬件资源请求以及训练任务信息;交换机,用于根据硬件资源请求,从训练服务器集群中选择多个第一训练服务器,其中,多个第一训练服务器的总硬件资源满足硬件资源请求,发送训练任务信息至各第一训练服务器;存储服务器集群,包括多个存储服务器,各存储服务器,用于存储训练资源;训练服务器集群,包括多个训练服务器,各第一训练服务器,用于根据训练任务信息,从存储服务器集群中读取训练资源,将训练资源分配至各自的容器中,以使各第一训练服务器的容器之间进行深度学习网络并行训练,其中,各第一训练服务器的容器具有针对训练任务信息的相同的深度学习网络初始模型,并安装有相同的训练脚本运行环境。
[0126] 交换机在接收到训练请求之后,根据训练请求中的硬件资源请求,从训练服务器集群中选择多个第一训练服务器,各第一训练服务器分别根据训练任务信息,从存储服务器集群中读取训练资源,并分配训练资源至各自的容器中进行并行训练。将单机训练分配到了多个第一训练服务器上,并且利用容器进行并行训练,每一个第一训练服务器上的容器分配到了一部分训练资源,通过并行的训练方式,快速的利用所有训练资源进行训练,并且各第一训练服务器的容器具有针对训练任务信息的相同的深度学习网络初始模型,并安装有相同的训练脚本运行环境,保证了每一个容器的训练依据相同,这样,在保证训练结果准确性的基础上,实现了深度学习网络的快速训练。
[0127] 相应于上述方法实施例,本申请实施例还提供了一种深度学习网络训练装置,应用于交换机,如图7所示,该装置可以包括:
[0128] 接收模710,用于接收客户端发送的训练请求,所述训练请求包括硬件资源请求以及训练任务信息;
[0129] 选择模块720,用于根据所述硬件资源请求,从训练服务器集群中选择多个第一训练服务器,所述多个第一训练服务器的总硬件资源满足所述硬件资源请求;
[0130] 发送模块730,用于发送所述训练任务信息至各第一训练服务器,以使各第一训练服务器根据所述训练任务信息,从存储服务器集群中读取训练资源,并将所述训练资源分配至各自的容器中进行深度学习网络并行训练,所述各第一训练服务器的容器具有针对所述训练任务信息的相同的深度学习网络初始模型,并安装有相同的训练脚本运行环境。
[0131] 可选的,所述训练任务信息包括:自定义训练脚本;
[0132] 所述发送模块730,具体可以用于:
[0133] 发送所述自定义训练脚本至各第一训练服务器,以使各第一训练服务器根据所述自定义训练脚本,从所述存储服务器集群中读取训练资源,并将所述训练资源分配至各自的容器中进行深度学习网络并行训练。
[0134] 应用本实施例,交换机在接收到训练请求之后,根据训练请求中的硬件资源请求,从训练服务器集群中选择多个第一训练服务器,各第一训练服务器分别根据训练任务信息,从存储服务器集群中读取训练资源,并分配训练资源至各自的容器中进行并行训练。将单机训练分配到了多个第一训练服务器上,并且利用容器进行并行训练,每一个第一训练服务器上的容器分配到了一部分训练资源,通过并行的训练方式,快速的利用所有训练资源进行训练,并且各第一训练服务器的容器具有针对训练任务信息的相同的深度学习网络初始模型,并安装有相同的训练脚本运行环境,保证了每一个容器的训练依据相同,这样,在保证训练结果准确性的基础上,实现了深度学习网络的快速训练。
[0135] 相应于上述方法实施例,本申请实施例还提供了一种深度学习网络训练装置,应用于第一训练服务器,所述第一训练服务器为训练服务器集群中总硬件资源满足客户端发送的硬件资源请求的多个训练服务器中的任一训练服务器,如图8所示,该装置可以包括:
[0136] 接收模块810,用于接收交换机发送的训练任务信息;
[0137] 读取模块820,用于根据所述训练任务信息,从存储服务器集群中读取训练资源;
[0138] 分配模块830,用于将所述训练资源分配至自身的容器中,以使所述容器进行深度学习网络训练。
[0139] 可选的,所述读取模块820,具体可以用于:
[0140] 根据所述训练任务信息,采用RDMA方式,从存储服务器集群中读取训练资源。
[0141] 可选的,所述装置还可以包括:
[0142] 创建模块,用于根据所述训练任务信息,创建安装有指定训练脚本运行环境的容器;
[0143] 搭建模块,用于根据所述训练任务信息,在所述容器中搭建深度学习网络初始模型;
[0144] 镜像模块,用于将所述容器镜像至所述训练服务器集群中总硬件资源满足所述客户端发送的硬件资源请求的多个训练服务器中除所述第一训练服务器以外的其他训练服务器。
[0145] 可选的,所述训练任务信息可以包括:自定义训练脚本;
[0146] 所述读取模块820,具体可以用于:
[0147] 根据所述自定义训练脚本,从存储服务器集群中读取训练资源。
[0148] 可选的,所述装置还可以包括:
[0149] 发送模块,用于将训练结果发送至客户端,以使所述客户端在shell目录中存储所述训练结果。
[0150] 应用本实施例,第一训练服务器根据训练任务信息,从存储服务器集群中读取训练资源,并分配训练资源至自身的容器中进行训练。由于满足硬件资源请求的第一训练服务器有多个,将单机训练分配到了多个第一训练服务器上,并且利用容器进行并行训练,每一个第一训练服务器上的容器分配到了一部分训练资源,通过并行的训练方式,快速的利用所有训练资源进行训练,并且各第一训练服务器的容器具有针对训练任务信息的相同的深度学习网络初始模型,并安装有相同的训练脚本运行环境,保证了每一个容器的训练依据相同,这样,在保证训练结果准确性的基础上,实现了深度学习网络的快速训练。
[0151] 本申请实施例还提供了一种交换机,如图9所示,包括处理器901和机器可读存储介质902,其中,
[0152] 机器可读存储介质902,用于存储能够被处理器901执行的机器可执行指令;
[0153] 处理器901,用于被机器可读存储介质902上所存放的机器可执行指令促使执行本申请实施例提供的应用于交换机的深度学习网络训练方法的所有步骤。
[0154] 机器可读存储介质902与处理器901之间可以通过有线连接或者无线连接的方式进行数据传输,并且电子设备可以通过有线通信接口或者无线通信接口与其他的设备进行通信,图9中只将通过总线连接作为一示例,并不是限定具体的连接方式。
[0155] 本实施例中,该交换机的处理器通过读取机器可读存储介质中存储的机器可执行指令,并通过运行该机器可执行指令,能够实现:交换机在接收到训练请求之后,根据训练请求中的硬件资源请求,从训练服务器集群中选择多个第一训练服务器,各第一训练服务器分别根据训练任务信息,从存储服务器集群中读取训练资源,并分配训练资源至各自的容器中进行并行训练。将单机训练分配到了多个第一训练服务器上,并且利用容器进行并行训练,每一个第一训练服务器上的容器分配到了一部分训练资源,通过并行的训练方式,快速的利用所有训练资源进行训练,并且各第一训练服务器的容器具有针对训练任务信息的相同的深度学习网络初始模型,并安装有相同的训练脚本运行环境,保证了每一个容器的训练依据相同,这样,在保证训练结果准确性的基础上,实现了深度学习网络的快速训练。
[0156] 另外,相应于上述实施例所提供的应用于交换机的深度学习网络训练方法,本申请实施例提供了一种机器可读存储介质,用于存储机器可执行指令,所述机器可执行指令促使处理器执行本申请实施例提供的应用于交换机的深度学习网络训练方法的所有步骤。
[0157] 本实施例中,机器可读存储介质存储有在运行时执行本申请实施例所提供的应用于交换机的深度学习网络训练方法的机器可执行指令,因此能够实现:交换机在接收到训练请求之后,根据训练请求中的硬件资源请求,从训练服务器集群中选择多个第一训练服务器,各第一训练服务器分别根据训练任务信息,从存储服务器集群中读取训练资源,并分配训练资源至各自的容器中进行并行训练。将单机训练分配到了多个第一训练服务器上,并且利用容器进行并行训练,每一个第一训练服务器上的容器分配到了一部分训练资源,通过并行的训练方式,快速的利用所有训练资源进行训练,并且各第一训练服务器的容器具有针对训练任务信息的相同的深度学习网络初始模型,并安装有相同的训练脚本运行环境,保证了每一个容器的训练依据相同,这样,在保证训练结果准确性的基础上,实现了深度学习网络的快速训练。
[0158] 本申请实施例还提供了一种训练服务器,如图10所示,包括处理器1001和机器可读存储介质1002,其中,
[0159] 机器可读存储介质1002,用于存储能够被处理器1001执行的机器可执行指令;
[0160] 处理器1001,用于被机器可读存储介质1002上所存放的机器可执行指令促使执行本申请实施例提供的应用于第一训练服务器的深度学习网络训练方法的所有步骤。
[0161] 机器可读存储介质1002与处理器1001之间可以通过有线连接或者无线连接的方式进行数据传输,并且电子设备可以通过有线通信接口或者无线通信接口与其他的设备进行通信,图10中只将通过总线连接作为一示例,并不是限定具体的连接方式。
[0162] 上述机器可读存储介质可以包括RAM(Random Access Memory,随机存取存储器),也可以包括NVM(Non-volatile Memory,非易失性存储器),例如至少一个磁盘存储器。可选的,机器可读存储介质还可以是至少一个位于远离前述处理器的存储装置。
[0163] 上述处理器可以是通用处理器,包括CPU(Central Processing Unit,中央处理器)、NP(Network Processor,网络处理器)等;还可以是DSP(Digital Signal Processor,数字信号处理器)、ASIC(Application Specific Integrated Circuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0164] 本实施例中,该交换机的处理器通过读取机器可读存储介质中存储的机器可执行指令,并通过运行该机器可执行指令,能够实现:第一训练服务器根据训练任务信息,从存储服务器集群中读取训练资源,并分配训练资源至自身的容器中进行训练。由于满足硬件资源请求的第一训练服务器有多个,将单机训练分配到了多个第一训练服务器上,并且利用容器进行并行训练,每一个第一训练服务器上的容器分配到了一部分训练资源,通过并行的训练方式,快速的利用所有训练资源进行训练,并且各第一训练服务器的容器具有针对训练任务信息的相同的深度学习网络初始模型,并安装有相同的训练脚本运行环境,保证了每一个容器的训练依据相同,这样,在保证训练结果准确性的基础上,实现了深度学习网络的快速训练。
[0165] 另外,相应于上述实施例所提供的应用于第一训练服务器的深度学习网络训练方法,本申请实施例提供了一种机器可读存储介质,用于存储机器可执行指令,所述机器可执行指令促使处理器执行本申请实施例提供的应用于第一训练服务器的深度学习网络训练方法的所有步骤。
[0166] 本实施例中,机器可读存储介质存储有在运行时执行本申请实施例所提供的应用于第一训练服务器的深度学习网络训练方法的机器可执行指令,因此能够实现:第一训练服务器根据训练任务信息,从存储服务器集群中读取训练资源,并分配训练资源至自身的容器中进行训练。由于满足硬件资源请求的第一训练服务器有多个,将单机训练分配到了多个第一训练服务器上,并且利用容器进行并行训练,每一个第一训练服务器上的容器分配到了一部分训练资源,通过并行的训练方式,快速的利用所有训练资源进行训练,并且各第一训练服务器的容器具有针对训练任务信息的相同的深度学习网络初始模型,并安装有相同的训练脚本运行环境,保证了每一个容器的训练依据相同,这样,在保证训练结果准确性的基础上,实现了深度学习网络的快速训练。
[0167] 对于交换机、训练服务器以及机器可读存储介质实施例而言,由于其所涉及的方法内容基本相似于前述的方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0168] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0169] 本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统、装置、交换机、训练服务器以及机器可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0170] 以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈