用于训练模型的虚拟环境构建方法及模型的训练方法与流程

文档序号:32889415发布日期:2023-01-12 22:44阅读:28来源:国知局
1.本发明涉及计算机
技术领域
:,尤其涉及一种用于训练深度学习模型的虚拟环境的构建方法、深度学习模型的训练方法、计算设备及可读存储介质。
背景技术
::2.近年来深度学习在诸多领域得到了广泛应用,深度学习模型优良的效果通常依赖于大规模数据的参与,使得模型的规模也很庞大,这对模型的训练方式和训练速度持续性地提出挑战。因此,在深度学习领域,对模型进行分布式训练由于能够提升模型的训练速度而有着广泛的需求。3.分布式训练通常采用多台gpu/cpu服务器,通过构建高性能通信网络进行数据分发和模型同步,形成分布式深度学习计算的模式。分布式训练通常有数据并行和模型并行两种方式,其中,数据并行适用于对绝大部分深度学习模型训练进行加速。常见的深度学习框架或平台包括tensorflow、pytorch、apachemxnet都提供了内置方法以支持多gpu、多工作节点的分布式训练。除此之外,还可以通过使用分布式深度学习框架(例如:horovod)实现模型的分布式训练。4.现有的分布式模型的训练方案有两种,一种方案是将horovod安装在docker容器中,通过kubernetes进行调度,该方案适用于独立的kubernetes集群。然而,该方案不利于kubernetes使用大规模的spark集群资源,在kubernetes集群资源有限的情况下,限制了作业的训练规模,也不利于使用更多的集群资源。另一种方案是将horovod安装在spark集群的所有结点上,开启horovodonspark的支持。该方案的主要缺点包括:1、python和horovod工具包在集群所有结点上的安装环境难以保持一致,例如:如果gcc版本不一致可能会导致horovod所依赖的gloo编译不成功,从而使得horovod安装不成功。而且,在大规模集群上安装任何工具包本身就存在较大困难。2、在python和horovod安装后,对各类的工具包进行扩展和升级都非常困难,难以实现对已安装的各种工具包的升级、扩展其他的工具包以及针对各作业自定义的工具包的安装。3、horovod本身的特性要求作业脚本及访问hdfs的token需要分发到集群所有结点的路径一致,而spark集群每个结点通常有多个数据盘,因此分发到各个结点上的作业和虚拟环境大概率下会临时存放在不同数据盘中,导致存储目录不同,这就导致了horovod与spark结合的冲突。5.为此,本发明提供一种用于训练深度学习模型的虚拟环境的构建方案及深度学习模型的训练方案,以解决现有技术中存在的问题。技术实现要素:6.为此,本发明提供一种用于训练深度学习模型的虚拟环境的构建方法、深度学习模型的训练方法、计算设备及可读存储介质,以解决或至少缓解上面存在的问题。7.根据本发明的第一个方面,提供了一种用于训练深度学习模型的虚拟环境的构建方法,方法包括:构建运行预定计算机语言的虚拟环境;在虚拟环境中安装分布式处理系统和分布式深度学习框架;在虚拟环境中,对运行预定计算机语言的执行器和分布式深度学习框架对应的令牌文件分别生成统一路径;将虚拟环境打包后分发至基于分布式处理系统的集群上。8.可选地,在根据本发明的用于训练深度学习模型的虚拟环境的构建方法中,对运行预定计算机语言的执行器生成统一路径,包括:在分布式深度学习框架的第一预定脚本和第二预定脚本中,判断是否存在预定计算机语言的执行器对应的第一统一路径;如果不存在,则创建一个预定计算机语言的执行器的第一软链接,第一软链接指向第一统一路径。9.可选地,在根据本发明的用于训练深度学习模型的虚拟环境的构建方法中,对运行预定计算机语言的执行器生成第一统一路径,包括:在分布式深度学习框架的第三预定脚本中,将预定计算机语言的执行器的路径设置为第一统一路径。10.可选地,在根据本发明的用于训练深度学习模型的虚拟环境的构建方法中,对分布式深度学习框架对应的令牌文件生成统一路径,包括:在分布式深度学习框架的第一预定脚本和第二预定脚本中,判断是否存在令牌文件对应的第二统一路径;如果不存在,则创建一个令牌文件的第二软连接,第二软链接指向第二统一路径。11.可选地,在根据本发明的用于训练深度学习模型的虚拟环境的构建方法中,对分布式深度学习框架对应的令牌文件生成统一路径,包括:在分布式深度学习框架的第三预定脚本中,将令牌文件的路径设置为第二统一路径。12.可选地,在根据本发明的用于训练深度学习模型的虚拟环境的构建方法中,将虚拟环境打包后分发至基于分布式处理系统的集群上,包括:将虚拟环境进行打包;将打包后的虚拟环境提交至集群,并将打包后的虚拟环境分发至集群的各个节点上;设置集群的环境变量。13.可选地,在根据本发明的用于训练深度学习模型的虚拟环境的构建方法中,第一预定脚本包括分布式处理系统的驱动器相关程序,第二预定脚本包括分布式系统的任务相关程序。14.可选地,在根据本发明的用于训练深度学习模型的虚拟环境的构建方法中,第三预定脚本包括集体通信库相关程序。15.可选地,在根据本发明的用于训练深度学习模型的虚拟环境的构建方法中,分布式处理系统包括spark。16.可选地,在根据本发明的用于训练深度学习模型的虚拟环境的构建方法中,分布式深度学习框架包括horovod。17.根据本发明的第二个方面,提供一种深度学习模型的训练方法,方法包括:通过如上所述的方法将构建的虚拟环境打包后分发至基于分布式处理系统的集群上;将深度学习模型的训练任务拆分为多个子训练任务;将多个子训练任务分发至集群的各节点上,以便各节点通过分布式深度学习框架基于统一路径下的预定计算机语言的执行器和令牌文件对深度学习模型进行分布式训练。18.根据本发明的第三个方面,提供一种计算设备,包括:至少一个处理器;存储器,存储有程序指令,其中,程序指令被配置为适于由上述至少一个处理器执行,程序指令包括用于执行如上所述的方法的指令。19.根据本发明的第四个方面,提供一种存储有程序指令的可读存储介质,当该程序指令被计算设备读取并执行时,使得该计算设备执行如上所述的方法。20.本发明的用于训练深度学习模型的虚拟环境的构建方法,通过在构建的虚拟环境中对运行预定计算机语言的执行器和分布式深度学习框架对应的令牌文件生成统一路径,使得通过虚拟环境在分布式处理系统的集群中运行分布式深度学习框架具有可行性,在实际生产中应用,既能够支持扩大模型的训练规模,缩短模型的训练时间,又能够提高资源利用率。21.本发明的深度学习的训练方法,通过用于训练深度学习模型的虚拟环境的构建方法构建虚拟环境并分发至基于分布式处理系统的集群上,实现深度学习模型的分布式训练,同样能够支持扩大模型的训练规模,缩短模型的训练时间,还能够提高资源利用率。22.上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。附图说明23.为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。24.图1示出了计算设备100的物理组件的框图;25.图2示出了根据本发明一个实施例的用于训练深度学习模型的虚拟环境的构建方法200的流程图。具体实施方式26.下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。27.图1示出了的计算设备100的物理组件(即,硬件)的框图。在基本配置中,计算设备100包括至少一个处理单元102和系统存储器104。根据一个方面,取决于计算设备的配置和类型,处理单元102可以实现为处理器。系统存储器104包括但不限于易失性存储(例如,随机存取存储器)、非易失性存储(例如,只读存储器)、闪速存储器、或者这样的存储器的任何组合。根据一个方面,系统存储器104中包括操作系统105和程序模块106,程序模块106中包括用于执行本发明的用于训练深度学习模型的虚拟环境的构建方法和深度学习模型的训练方法的程序指令120。28.根据一个方面,操作系统105例如适合于控制计算设备100的操作。此外,示例结合图形库、其他操作系统、或任何其他应用程序而被实践,并且不限于任何特定的应用或系统。在图1中通过在虚线108内的那些组件示出了该基本配置。根据一个方面,计算设备100具有额外的特征或功能。例如,根据一个方面,计算设备100包括额外的数据存储设备(可移动的和/或不可移动的),例如磁盘、光盘、或者磁带。这样额外的存储在图1中是由可移动存储设备109和不可移动存储设备110示出的。29.如在上文中所陈述的,根据一个方面,在系统存储器104中存储有程序模块106。根据一个方面,程序模块106可以包括一个或多个应用程序,本发明不限制应用程序的类型,例如应用程序可以包括:电子邮件和联系人应用程序、文字处理应用程序、电子表格应用程序、数据库应用程序、幻灯片展示应用程序、绘画或计算机辅助应用程序、网络浏览器应用程序等。30.根据一个方面,可以在包括分立电子元件的电路、包含逻辑门的封装或集成的电子芯片、利用微处理器的电路、或者在包含电子元件或微处理器的单个芯片上实践示例。例如,可以经由其中在图1中所示出的每个或许多组件可以集成在单个集成电路上的片上系统(soc)来实践示例。根据一个方面,这样的soc设备可以包括一个或多个处理单元、图形单元、通信单元、系统虚拟化单元、以及各种应用功能,其全部作为单个集成电路而被集成(或“烧”)到芯片基底上。当经由soc进行操作时,可以经由在单个集成电路(芯片)上与计算设备100的其他组件集成的专用逻辑来对在本文中所描述的功能进行操作。还可以使用能够执行逻辑操作(例如and、or和not)的其他技术来实践本发明的实施例,所述其他技术包括但不限于机械、光学、流体、和量子技术。另外,可以在通用计算机内或在任何其他任何电路或系统中实践本发明的实施例。31.根据一个方面,计算设备100还可以具有一个或多个输入设备112,例如键盘、鼠标、笔、语音输入设备、触摸输入设备等。还可以包括输出设备114,例如显示器、扬声器、打印机等。前述设备是示例并且也可以使用其他设备。计算设备100可以包括允许与其他计算设备118进行通信的一个或多个通信连接116。合适的通信连接116的示例包括但不限于:rf发射机、接收机和/或收发机电路;通用串行总线(usb)、并行和/或串行端口。32.如在本文中所使用的术语计算机可读介质包括计算机存储介质。计算机存储介质可以包括以任何用于存储信息(例如,计算机可读指示、数据结构、或程序模块)的方法或技术来实现的易失性的和非易失性的、可移动的和不可移动的介质。系统存储器104、可移动存储设备109、和不可移动存储设备110都是计算机存储介质的示例(即,存储器存储)。计算机存储介质可以包括随机存取存储器(ram)、只读存储器(rom)、电可擦只读存储器(eeprom)、闪速存储器或其他存储器技术、cd-rom、数字通用盘(dvd)或其他光存储、盒式磁带、磁带、磁盘存储器或其他磁存储设备、或者可用于存储信息并且可以由计算机设备100访问的任何其他制品。根据一个方面,任何这样的计算机存储介质都可以是计算设备100的一部分。计算机存储介质不包括载波或其他经传播的数据信号。33.根据一个方面,通信介质是由计算机可读指令、数据结构、程序模块、或者经调制的数据信号(例如,载波或其他传输机制)中的其他数据实施的,并且包括任何信息传递介质。根据一个方面,术语“经调制的数据信号”描述了具有一个或多个特征集或者以将信息编码在信号中的方式改变的信号。作为示例而非限制,通信介质包括诸如有线网络或直接有线连接之类的有线介质,以及诸如声学、射频(rf)、红外线的、以及其他无线介质之类的无线介质。34.在本发明的一个实施例中,计算设备100包括一个或多个处理器、以及存储有程序指令的一个或多个可读存储介质。当程序指令被配置为由一个或多个处理器执行时,使得计算设备执行本发明实施例中的用于训练深度学习模型的虚拟环境的构建方法和深度学习模型的训练方法。35.下面对本发明涉及的一些术语进行说明:36.horovod,由uber公司打造的分布式深度学习开源框架,能够与tensorflow、keras、pytorch以及apachemxnet等热门深度学习工具包协同使用。horovod使用allreduce算法取代以往的参数服务器方法进行快速分布式训练,还提供了张量融合、梯度压缩、支持nccl通信等多种优化方法以进一步加快分布式训练的执行速度。allreduce算法的目标是高效地将不同机器中的数据整合(reduce)之后再把结果分发给各个机器。37.spark(全称:apachespark),一种用于大数据工作负载的分布式开源处理系统。它使用内存中缓存和优化的查询执行方式,可针对任何规模的数据进行快速分析查询。它提供使用java、scala、python和r语言的开发api,支持跨多个工作负载重用代码、批处理、交互式查询、实时分析、机器学习和图形处理等。38.tensorflow,一个端到端开源机器学习平台,可以轻松地构建模型,在云端、本地、浏览器中或设备上训练和部署模型。39.mpi,是一个信息传递应用程序接口,包括协议和和语义说明,他们指明其如何在各种实现中发挥其特性。mpi的目标是高性能,大规模性,和可移植性。mpi在今天仍为高性能计算的主要模型。40.gloo,一个集体通信库,带有许多对机器学习应用程序有用的算法,包括屏障、广播和allreduce。41.docker,一个开源的应用容器引擎,可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的linux机器上,也可以实现虚拟化。42.kubernetes,一个用于大规模运行分布式应用和服务的开源容器编排平台。43.图2示出了根据本发明一个实施例的用于训练深度学习模型的虚拟环境的构建方法200的流程图。方法200适于在计算设备(例如前述计算设备100)中执行。如图2所示,方法200始于210。44.210、构建运行预定计算机语言的虚拟环境。45.根据本发明的实施例,预定计算机语言可以是python语言,也可以是其他的计算机语言。可选地,构建运行python语言的虚拟环境。首先,创建python虚拟环境。具体地,创建存放python相关数据的目录,利用环境管理器(例如:conda)安装环境python相关数据到指定目录中。然后,激活python虚拟环境。46.下面是构建运行python虚拟环境的示例性代码:47.mkdir-p/data/python3.648.condacreate-p/data/python3.6python=3.649.sourceactivate/data/python3.650.在示例性代码中python语言的版本为3.6,但不限于此,当然也可以是其他版本的预定计算机语言。51.220、在虚拟环境中安装分布式处理系统和分布式深度学习框架。52.其中,分布式处理系统可以是spark,也可以是其他的分布式处理系统,例如:flink、storm等等。分布式深度学习框架例如可以是horovod,也可以是其他的分布式深度学习框架,例如:pipedream、gpipe等等。53.根据本发明的一个实施例,在虚拟环境中安装spark和horovod的工具包。可选地,还可以在虚拟环境中安装用于训练深度学习模型的其他的工具包,例如:tensorflow的工具包等等。可选地,在虚拟环境中安装分布式处理系统和分布式深度学习框架所依赖的各种工具。例如:在虚拟环境中安装horovod依赖的gloo。gloo在安装到虚拟系统中时需要其版本在gcc5以上,由于gloo是先编译成静态库,再链接到horovod二进制执行程序中,因此,gloo在编译时可以在高版本gcc的机器上进行编译,而运行时的机器的gcc版本既可以是高版本也可以是低版本。为此,在gloo安装时对其版本进行一定限制。54.下面是在虚拟环境中安装工具包的示例性代码:55.python-mpipinstall‑‑upgradepip56.pipinstalltensorflow==2.2.157.pipinstallpyspark==2.4.658.horovod_with_mpi=159.horovod_with_gloo=160.pipinstallhorovod[tensorflow,spark][0061]在上述示例性代码中,首先安装pip工具并对其进行了升级,然后通过pip工具安装了版本为2.2.1的tensorflow和版本为2.4.6的pyspark,pyspark是spark提供的一个python类库。然后设置horovod依赖的mpi和gloo工具,最后安装horovod及其需要的框架。[0062]本发明的技术方案,通过采用虚拟环境的方式安装分布式处理系统和分布式深度学习框架以及其他的工具包,既可以使安装变得简单易行,还可以更加方便容易地对分布式处理系统和分布式深度学习框架以及其他的工具包进行升级、扩展、定制,提升了对分布式处理系统和分布式深度学习框架管理的灵活度,还可以很容易地提升其性能。[0063]230、在虚拟环境中,对运行预定计算机语言的执行器和分布式深度学习框架对应的令牌文件分别生成统一路径。[0064]根据本发明的实施例,在分布式深度学习框架的第一预定脚本和第二预定脚本中,判断是否存在预定计算机语言的执行器的路径对应的第一统一路径。如果不存在,则创建一个预定计算机语言的执行器的第一软链接,第一软链接指向第一统一路径。其中,第一预定脚本包括分布式处理系统的驱动器相关程序,第二预定脚本包括分布式系统的任务相关程序。[0065]具体地,对分布式深度学习框架的源代码进行修改,以实现在分布式处理系统将作业分发至集群各节点并启动运行,而执行作业的分布式深度学习框架的子进程还未启动前,通过对分发至集群上虚拟环境生成统一路径的软链接,达到分布式深度学习框架对预定计算机语言的执行器路径统一的要求。第一预定脚本为horovod/spark/driver/driver_service.py脚本,即horovod/spark/driver/路径下的driver_service.py脚本。第二预定脚本为horovod/spark/task/task_service.py脚本,即horovod/spark/task/路径下的task_service.py脚本。在第一预定脚本的sparkdriverclient.__init__函数和第二预定脚本的sparktaskclient.__init__函数中增加用于判断是否存在预定计算机语言的执行器对应的第一统一路径,如果不存在,则创建一个预定计算机语言的执行器的第一软链接,第一软链接指向第一统一路径的代码。[0066]根据本发明的实施例,在分布式深度学习框架的第一预定脚本和第二预定脚本中,判断是否存在令牌文件对应的第二统一路径。如果不存在,则创建一个令牌文件的第二软连接,其中,第二软链接指向第二统一路径。[0067]具体地,通过对各分发作业存放在相同目录的令牌文件生成统一路径的软链接,达到分布式深度学习框架对令牌文件路径统一的要求。第一预定脚本为horovod/spark/driver/driver_service.py脚本,即horovod/spark/driver/路径下的driver_service.py脚本。第二预定脚本为horovod/spark/task/task_service.py脚本,即horovod/spark/task/路径下的task_service.py脚本。在第一预定脚本的sparkdriverclient.__init__函数和第二预定脚本的sparktaskclient.__init__函数中增加用于判断是否存在令牌文件对应的第二统一路径。如果不存在,则创建一个令牌文件的第二软连接,第二软链接指向第二统一路径的代码。[0068]下面是在分布式深度学习框架中的第一预定脚本和第二预定脚本中增加的示例性代码:[0069]cur_path=os.getcwd()//返回当前进程的工作目录[0070]print('cur_path:',cur_path)[0071]appid=cur_path.split("/")[-2]//获取当前进程的工作目录中由"/"分隔开的倒数第二个内容[0072]user=cur_path.split("/")[-4]//获取当前进程的工作目录中由"/"分隔开的倒数第四个内容[0073]python_path='/tmp/horovod_spark_'+user+'/'+appid//拼接形成python_path路径[0074]os.system('mkdir-p'+python_path)//确保python_path这个路径存在,不存在则创建一个[0075]ifnotos.path.exists(python_path+"/container_tokens"):[0076]os.system('cp-rf./container_tokens'+python_path)//如果不存在pythonpath/containertokens(表示第二统一路径)这个路径,则强制覆盖指定目录下的文件,对令牌文件生成统一路径的软链接[0077]ifnotos.path.exists(python_path+"/python3.6"):[0078]os.system('ln-s'+cur_path+'/horovodtest/python3.6'+”+python_path+'/python3.6')//如果不存在pythonpath/python3.6(表示第一统一路径)这个路径,则建立一个第一统一路径的软链接[0079]根据本发明的实施例,在分布式深度学习框架的第三预定脚本中,将预定计算机语言的执行器的路径设置为第一统一路径。其中,第三预定脚本包括集体通信库相关程序。[0080]具体地,对分布式深度学习框架的源代码进行修改,在分布式深度学习框架源代码的驱动器(driver)分发任务的命令中指定统一的python执行器路径。第三预定脚本为horovod/runner/gloo_run.py脚本,即horovod/runner/路径下的gloo_run.py脚本。在第三预定脚本的launch_gloo函数的开始位置添加用于将预定计算机语言的执行器的路径设置为第一统一路径的代码。[0081]下面是在分布式深度学习框架的第三预定脚本中增加的示例性代码:[0082]cur_path=os.getcwd()//返回当前进程的工作目录[0083]appid=cur_path.split("/")[-2][0084]user=cur_path.split("/")[-4][0085]python_path='/tmp/horovod_spark_'+user+'/'+appid[0086]sys.executable=python_path+'/python3.6/bin/python'//设置python解释器的统一路径。[0087]根据本发明的实施例,在分布式深度学习框架的第三预定脚本中,将令牌文件的路径设置为第二统一路径。其中,第三预定脚本包括集体通信库相关程序。[0088]具体地,对分布式深度学习框架的源代码进行修改,在分布式深度学习框架源代码的驱动器(driver)分发任务的命令中指定统一的python执行器路径。第三预定脚本为horovod/runner/gloo_run.py脚本,即horovod/runner/路径下的gloo_run.py脚本。在第三预定脚本的launch_gloo函数的开始位置添加用于将预定计算机语言的执行器的路径设置为第一统一路径的代码。[0089]下面是在分布式深度学习框架的第三预定脚本中增加的示例性代码:[0090]cur_path=os.getcwd()[0091]appid=cur_path.split("/")[-2][0092]user=cur_path.split("/")[-4][0093]python_path='/tmp/horovod_spark_'+user+'/'+appid[0094]token_path=python_path+'/container_tokens'[0095]env['hadoop_token_file_location']=token_path[0096]根据本发明的技术方案,对虚拟环境中运行预定计算机语言的执行器和分布式深度学习框架对应的令牌文件分别进行了统一,通过软链接的方式,使得集群上的driver和所有tasker上的预定计算机语言的执行器和访问分布式文件系统的令牌具有相同的绝对路径,保证了路径的一致性。[0097]240、将虚拟环境打包后分发至基于分布式处理系统的集群上。[0098]根据本发明的实施例,将构建好的虚拟环境进行打包,然后将打包后的虚拟环境提交至基于分布式处理系统的集群,将打包后的虚拟环境分发至集群的各个节点上,并设置集群的环境变量。[0099]下面示出了将虚拟环境打包后分发至基于分布式处理系统的集群上的示例性代码:[0100]tar-cvfpython3.6.tarpython3.6/*//将构建好的虚拟环境进行打包[0101]spark-submit‑‑masteryarn‑‑deploy-modecluster[0102]‑‑confspark.yarn.dist.archives=python3.6.tar#horovod[0103]‑‑confspark.yarn.appmasterenv.pyspark_python=./horovod/python3.6/bin/python3[0104]‑‑confspark.yarn.appmasterenv.pyspark_driver_python=./horovod/python3.6/bin/python3[0105]‑‑confspark.executorenv.pyspark_python=./horovod/python3.6/bin/python3[0106]‑‑confspark.executorenv.pyspark_driver_python=./horovod/python3.6/bin/python3[0107]run.py[0108]通过spark-submit提交虚拟环境至集群,分发虚拟环境,并设置相关环境变量,包括:pyspark_python、pyspark_driver_python、pyspark_python、和pyspark_driver_python。[0109]本发明的用于训练深度学习模型的虚拟环境的构建方案,解决了现有技术中将python及horovod虚拟环境包通过spark分发到各个计算结点后,提交的作业脚本和虚拟环境包被放置到某个数据盘的某个目录下,而由于spark集群每个结点一般有多个数据盘,分发到各个结点上的作业和虚拟环境大概率临时存放在了不同数据盘,导致存储目录不同,不能满足horovod要求driver及所有tasker上的python执行器、访问hdfs的token都使用统一的绝对路径的问题。本发明的方案通过构建软链接,可以使得driver和所有tasker上的python执行器、访问hdfs的token具有相同的绝对路径,保证了路径的一致性。[0110]根据本发明的实施例,本发明的虚拟环境的构建方法可以应用于训练深度学习模型。方法200可以应用于图像、语音、视频、机器翻译等多种场景,例如,在图像场景下,相应的深度学习模型可以为图像分类模型、目标检测模型等;在机器翻译场景下,相应的深度学习模型可以为神经网络机器翻译模型。其中,神经网络机器翻译模型可以是一个序列到序列模型,具有通过门循环单元制作的编码器、通过门循环单元制作的编码器以及注意力机制。[0111]本发明还提供了一种深度学习模型的训练方法,根据本发明的实施例通过本发明的方法200将构建好的虚拟环境打包后分发至基于分布式处理系统的集群上。将深度学习模型的训练任务拆分为多个子训练任务。将多个子训练任务分发至集群的各节点上,以便各节点通过分布式深度学习框架基于统一路径下的预定计算机语言的执行器和令牌文件对深度学习模型进行分布式训练。[0112]其中,深度学习模型的训练方法可以应用于图像、语音、视频、机器翻译等多种场景,例如,在图像场景下,相应的深度学习模型可以为图像分类模型、目标检测模型等;在机器翻译场景下,相应的深度学习模型可以为神经网络机器翻译模型。[0113]可选地,将深度学习模型可以拆分训练的部分拆分出来形成多份子训练模型,将子训练模型分发至集群各节点上同步训练。[0114]可选地,将深度学习模型的训练数据拆分为多份子训练数据,将子训练数据分发至集群各节点上用于训练模型。在执行分布式训练前,集群中每个节点会获取待训练的深度学习模型,且深度学习模型的模型参数的初始值已经预先设置好。训练数据的类型可以是:图像样本,语音样本,自然语言处理样本。[0115]本发明的用于训练深度学习模型的虚拟环境的构建方法,通过在构建的虚拟环境中对运行预定计算机语言的执行器和分布式深度学习框架对应的令牌文件生成统一路径,使得通过虚拟环境在分布式处理系统的集群中运行分布式深度学习框架具有可行性,在实际生产中应用,既能够支持扩大模型的训练规模,缩短模型的训练时间,又能够提高资源利用率。[0116]本发明的深度学习的训练方法,通过用于训练深度学习模型的虚拟环境的构建方法构建虚拟环境并分发至基于分布式处理系统的集群上,实现深度学习模型的分布式训练,同样能够支持扩大模型的训练规模,缩短模型的训练时间,还能够提高资源利用率。[0117]进一步地,通过虚拟环境的应用可以方便地对分布式处理系统和分布式深度学习框架及各种工具包进行升级、扩展或定制。[0118]a8、根据a3或a5所述的方法,其中,所述第三预定脚本包括集体通信库相关程序。a9、根据a1至a8中任一项所述的方法,其中,所述分布式处理系统包括spark。a10、根据a1至a9中任一项所述的方法,其中,所述分布式深度学习框架包括horovod。[0119]这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如可移动硬盘、u盘、软盘、cd-rom或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。[0120]在程序代码在可编程计算机上执行的情况下,移动终端一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的用于训练深度学习模型的虚拟环境的构建方法和深度学习模型的训练方法。[0121]以示例而非限制的方式,可读介质包括可读存储介质和通信介质。可读存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在可读介质的范围之内。[0122]在此处所提供的说明书中,算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与本发明的示例一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。[0123]在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。[0124]类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。[0125]本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。[0126]本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。[0127]此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。[0128]此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。[0129]如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。[0130]尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本
技术领域
:内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本
技术领域
:的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的而非限制性的,本发明的范围由所附权利要求书限定。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1