CN114089889B - 模型训练方法、装置以及存储介质 - Google Patents

模型训练方法、装置以及存储介质 Download PDF

Info

Publication number
CN114089889B
CN114089889B CN202110178477.9A CN202110178477A CN114089889B CN 114089889 B CN114089889 B CN 114089889B CN 202110178477 A CN202110178477 A CN 202110178477A CN 114089889 B CN114089889 B CN 114089889B
Authority
CN
China
Prior art keywords
target
training
task
training task
resource group
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.)
Active
Application number
CN202110178477.9A
Other languages
English (en)
Other versions
CN114089889A (zh
Inventor
石鑫
黄绿君
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jingdong Technology Holding Co Ltd
Original Assignee
Jingdong Technology Holding Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Jingdong Technology Holding Co Ltd filed Critical Jingdong Technology Holding Co Ltd
Priority to CN202110178477.9A priority Critical patent/CN114089889B/zh
Publication of CN114089889A publication Critical patent/CN114089889A/zh
Application granted granted Critical
Publication of CN114089889B publication Critical patent/CN114089889B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04847Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请提出一种模型训练方法、装置以及设备,其中,方法包括:在获取到目标用户对象在命令行界面输入的模型训练的训练相关参数后,根据训练相关参数,生成目标用户对象提交的目标训练任务,进而,将目标训练任务添加至目标任务队列中,确定目标资源组所关联的至少一个工作节点的可用资源满足目标训练任务运行所需资源的情况下,采用目标资源组关联的至少一个工作节点执行目标训练任务。由此,在可用资源满足训练任务所需资源的情况下,即可执行目标训练任务,充分利用了硬件资源,缩短了模型创建时间,实现了快速创建模型训练任务的目的。

Description

模型训练方法、装置以及存储介质
技术领域
本申请涉及数据处理技术领域,尤其涉及一种模型训练方法、装置以及存储介质。
背景技术
近几年,随着人工智能、机器学习技术的迅速发展,不仅提高了生产力,而且更重要的是,引发了机器、商业组织乃至整个经济的互补性创新浪潮。我们拥有关于某项领域的大量的数据,通过对这些数据进行训练和分析,会发现很多此前没有发现的规律和价值,或者,换句话说,是机器学习通过其类似于人的分析能力让我们看见了数据的潜在价值。相信在不远的将来,机器学习不仅会对信息时代带来深远的影响,对我们生产力、经济也将产生巨大的影响。
尽管机器学习可以帮助我们从海量数据中,发现潜在的价值。然而,在大数据中,建模人员想要快速学习、快速迭代优化、尝试不同的算法和参数设置,还面临着诸多的难题和考验。
发明内容
本申请旨在至少在一定程度上解决相关技术中的技术问题之一。
本申请提出一种模型训练方法,在可用资源满足训练任务所需资源的情况下,即可执行目标训练任务,缩短了模型创建时间,实现了快速创建模型训练任务的目的。
本申请第一方面实施例提出了一种模型训练方法,包括:
获取目标用户对象在命令行界面输入的模型训练的训练相关参数;
根据所述训练相关参数,生成所述目标用户对象提交的目标训练任务;
将所述目标训练任务添加至目标任务队列中,其中,所述目标任务队列中包括所述目标用户对象所属目标资源组内各用户对象提交的训练任务;
当轮询到所述目标训练任务时,对所述目标资源组所关联的至少一个工作节点监测可用资源;
在确定所述可用资源满足所述目标训练任务运行所需资源的情况下,采用所述目标资源组关联的所述至少一个工作节点执行所述目标训练任务。
作为本申请实施例的一种可能的实现方式,所述方法还包括:
根据所述目标用户对象的属性信息,确定不存在与所述属性信息匹配的资源组时,提示创建目标资源组;
响应于配置操作,创建所述目标资源组,以及配置所述目标资源组关联的工作节点;
将所述目标用户对象添加至所述目标资源组。
作为本申请实施例的另一种可能的实现方式,所述目标训练任务携带有优先级,所述将所述目标训练任务添加至目标任务队列中,包括:
根据所述目标训练任务携带的优先级,将所述目标训练任务添加至堆结构的所述目标任务队列中;其中,所述目标任务队列中的各训练任务在所述堆结构中,自顶至底按照优先级从高至低的顺序排列;优先级最高的训练任务处于所述堆结构的堆顶。
作为本申请实施例的另一种可能的实现方式,所述当轮询到所述目标训练任务时,对所述目标资源组所关联的工作节点监测可用资源,包括:
当所述目标训练任务处于所述堆结构的堆顶时,执行定时任务,以周期性监测所述目标资源组所关联的工作节点的可用资源。
作为本申请实施例的另一种可能的实现方式,所述在确定所述可用资源满足所述目标训练任务运行所需资源的情况下,采用所述目标资源组关联的所述工作节点执行所述目标训练任务,包括:
在确定所述可用资源满足所述目标训练任务运行所需资源的情况下,将所述目标训练任务从所述目标任务队列中取出,采用所述目标资源组关联的所述工作节点执行所述目标训练任务;
根据所述目标任务队列中剩余训练任务携带的优先级,在所述堆结构中更新所述剩余训练任务的排序位置。
作为本申请实施例的另一种可能的实现方式,所述将所述目标训练任务添加至堆结构的所述目标任务队列中之后,还包括:
响应于优先级调整操作,调整所述目标训练任务在所述目标任务队列中的排序。
作为本申请实施例的另一种可能的实现方式,所述根据所述训练相关参数,生成所述目标用户对象提交的目标训练任务之后,还包括:
将所述目标训练任务的文件存储于命令配置文件存储系统内的所述目标用户对象的存储路径下;其中,所述目标训练任务的文件中包含所述训练相关参数。
作为本申请实施例的另一种可能的实现方式,所述目标训练任务的文件中还包括模型训练参数,和/或,运行相关参数;
其中,所述模型训练参数,是执行所述目标训练任务后得到的模型参数,用于模型参数的复用;
所述运行相关参数,包括下列中的一个或多个组合:
执行所述目标训练任务所占用的资源;
执行所述目标训练任务的时间;
所述目标训练任务所训练模型的规模。
作为本申请实施例的另一种可能的实现方式,所述方法还包括:
在执行所述目标训练任务的过程中,执行用于监测所述运行相关参数的自定义对象;其中,所述自定义对象,基于自定义资源CRD创建的;
根据监测到的运行相关参数,对后续提交的训练任务确定所需资源。
本申请实施例的模型训练方法,在获取到目标用户对象在命令行界面输入的模型训练的训练相关参数后,根据训练相关参数,生成目标用户对象提交的目标训练任务,进而,将目标训练任务添加至目标任务队列中,确定目标资源组所关联的至少一个工作节点的可用资源满足目标训练任务运行所需资源的情况下,采用目标资源组关联的至少一个工作节点执行目标训练任务。由此,在可用资源满足训练任务所需资源的情况下,即可执行目标训练任务,充分利用了硬件资源,缩短了模型创建时间,实现了快速创建模型训练任务的目的。
本申请第二方面实施例提出了一种模型训练装置,包括:
获取模块,用于获取目标用户对象在命令行界面输入的模型训练的训练相关参数;
生成模块,用于根据所述训练相关参数,生成所述目标用户对象提交的目标训练任务;
处理模块,用于将所述目标训练任务添加至目标任务队列中,其中,所述目标任务队列中包括所述目标用户对象所属目标资源组内各用户对象提交的训练任务;
监测模块,用于当轮询到所述目标训练任务时,对所述目标资源组所关联的至少一个工作节点监测可用资源;
执行模块,用于在确定所述可用资源满足所述目标训练任务运行所需资源的情况下,采用所述目标资源组关联的所述至少一个工作节点执行所述目标训练任务。
本申请实施例的模型训练装置,在获取到目标用户对象在命令行界面输入的模型训练的训练相关参数后,根据训练相关参数,生成目标用户对象提交的目标训练任务,进而,将目标训练任务添加至目标任务队列中,确定目标资源组所关联的至少一个工作节点的可用资源满足目标训练任务运行所需资源的情况下,采用目标资源组关联的至少一个工作节点执行目标训练任务。由此,在可用资源满足训练任务所需资源的情况下,即可执行目标训练任务,充分利用了硬件资源,缩短了模型创建时间,实现了快速创建模型训练任务的目的。
本申请第三方面实施例提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现第一方面实施例中的模型训练方法。
本申请第四方面实施例提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面实施例中的模型训练方法。
本申请第五方面实施例提出了一种计算机程序产品,当所述计算机程序产品中的指令处理器执行时,执行第一方面实施例中的模型训练方法。
本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本申请实施例提供的一种模型训练方法的流程示意图;
图2为本申请实施例提出的训练任务优先级的实现原理;
图3为本申请实施例提供的另一种模型训练方法的流程示意图;
图4为本申请实施例提供的用户对象与资源组的关系示意图;
图5为本申请实施例提供的一种资源管理的流程示意图;
图6为本申请实施例提供的又一种模型训练方法的流程示意图;
图7为本申请实施例提供的一种文件存储的示例图;
图8为本申请实施例提供的一种模型训练装置的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
相关技术中,建模人员想要快速学习、快速迭代优化、尝试不同的算法和参数设置。构建一个优秀的模型,将其应用到日常生产中,从而提高生产力。这其中也面临着诸多的难题与考验,如以下几点:
1)搭建机器学习的模型训练系统是十分耗时耗力的。如果搭建一个大型的分布式系统,协作各个计算节点,使其能更好的进行模型训练,那更是一个耗时耗力的大工程。如果想要搭建、实现一个高可用、易用的模型训练系统,学习成本也很高。要求算法工程师、数据分析师对计算机资源、存储、网络、容器化技术(如:docker、kubernetes)有一定的专业技能了解。这必然浪费建模人员的时间,应该让其有限的精力投入到代码的编写、参数的优化等更有价值的地方。
2)机器学习模型的构建是一个快速试验和多次探索研究的复杂过程。构建一个性能指标表现良好的可用于生产环境的模型服务,需要对数据做出处理,是直接获取原始数据,还是从原始数据中提取训练、测试数据?构建模型时,选择哪种算法,以怎样的方式调整模型的参数?评定模型的优劣使用什么评估手段?这都需要建模人员、不断地尝试与优化。
3)在机器学习中,数据都是海量级别的,构建模型的算法也是极其复杂。在构建模型训练服务时,对硬件资源的要求也很高,需要有强大的计算能力的计算机。而现在互联网公司很多团队都能训练很大规模的模型,在云计算平台上的花费、资源消耗都很大。所以如何更合理的划分资源池,按需、按业务线分组硬件资源池、提高资源的利用率也是构建机器训练模型时,必须要考虑与研究的问题。
4)现阶段,基于Kubernetes的机器学习技术更是盛行。利用Kubernetes搭建机器学习平台,利用其强大的容器化编排技术,可以提高建模效率。然而针对一些标准化业务场景、或者特殊服务编排场景,我们该如何编排容器,如何组织例如分布式这种多节点协作的容器,也是机器学习必然面临的问题。
针对上述技术问题,本申请提出了一种模型训练方法,在获取到目标用户对象在命令行界面输入的模型训练的训练相关参数后,根据训练相关参数,生成目标用户对象提交的目标训练任务,将目标训练任务添加至目标任务队列中,当轮询到目标训练任务时,对目标资源组所关联的至少一个工作节点监测可用资源,在确定可用资源满足目标训练任务运行所需资源的情况下,采用目标资源组关联的至少一个工作节点执行目标训练任务。
下面参考附图描述本申请实施例的模型训练方法、装置以及存储介质。
图1为本申请实施例提供的一种模型训练方法的流程示意图。
如图1所示,该模型训练方法包括以下步骤:
步骤101,获取目标用户对象在命令行界面输入的模型训练的训练相关参数。
其中,命令行界面(Command-line Interface,简称CLI)是在图形用户界面得到普及之前使用最为广泛的用户界面,它通常不支持鼠标,用户通过键盘输入指令,计算机接收到指令后,予以执行。也有人称之为字符用户界面(CUI)。相较于图形用户界面,命令行界面要节约计算机系统的资源。此外,在目标用户对象熟记命令的前提下,在命令行界面输入模型训练的训练相关参数往往要较使用图形用户界面的操作速度要快。
本申请中,模型训练的训练相关参数,可以为模型训练时目标用户对象提供的相关运行参数,例如,资源大小、启动脚本路径、数据路径、模型路径、日志路径、镜像等参数信息。
可选地,训练相关参数,还可以为配置模型训练参数和软硬件环境参数。其中,配置模型训练参数可以包括:训练集/验证集拆分比例、模型迭代训练次数、批次数据大小、学习率等运行参数。软硬件环境参数可以包括:计算引擎、软件镜像、硬件规格、分布式训练节点数等参数。
本申请实施例中,在进行模型训练时,当目标用户对象在命令行界面输入模型训练的训练相关参数后,可以获取到模型训练的训练相关参数。
步骤102,根据训练相关参数,生成目标用户对象提交的目标训练任务。
本申请实施例中,目标用户对象在命令行界面输入模型训练的训练相关参数后,在提交训练相关参数后,计算机设备获取到训练相关参数后,可以根据训练相关参数,生成目标用户对象提交的目标训练任务。
可以理解的是,由于训练相关参数中指定了启动脚本路径、数据路径和模型路径等训练数据,因此,根据训练相关参数,可以生成目标用户对象提交的目标训练任务。
步骤103,将目标训练任务添加至目标任务队列中。
其中,目标任务队列中包括目标用户对象所属目标资源组内各用户对象提交的训练任务。
本申请实施例中,根据训练相关参数生成目标训练任务后,可以将目标训练任务添加至目标任务对列中。
在一种可能的情况下,目标训练任务中可能携带有优先级,这种情况下,可以根据目标训练任务携带的优先级,将目标训练任务添加至堆结构的目标任务队列中。
其中,目标任务队列中的各训练任务在堆结构中,自顶至底按照优先级从高至低的顺序排列;优先级最高的训练任务处于堆结构的堆顶。
相关技术中,如果硬件资源大小小于建模服务所需资源,提交到k8s集群的任务,将一直处于等待状态。等待资源充足时,才会被调起运行。基于这种调度规则存在两种问题:其一,当多个任务处于等待状态时,根据k8s调度规则,只要资源大小满足其中一个任务的资源大小,就会调起运行。这种场景将可造成资源大的任务长时间处于阻塞状态,无法运行。其二,当运行分布式训练任务时,多个计算节点,部分节点被调起运行,部分节点处于等待状态,这种训练任务为无效的任务,会造成训练失败与资源浪费。为了解决以上两个问题,本申请提出了一种可动态调整训练任务优先级的技术解决方案,更好的实现任务的调度。
作为一种示例,如图2所示,图2为本申请实施例提出的训练任务优先级的实现原理。在训练任务入队时,可以根据训练任务携带的优先级的级别,自下而上堆化处理堆结构。后台有一个定时任务,当任务队列不为空时,每隔几秒调用k8s-client接口,查询资源组对应资源使用情况。当硬件资源满足堆顶任务运行时,就删除堆顶元素,出队,部署于k8s开始模型训练。也可按需调整训练任务的优先级,通过调整堆结构,始终保证优先级最高的训练任务位于堆顶。
本申请实施例中,将目标训练任务添加至堆结构的目标任务队列中之后,还可以按需调整目标训练任务的优先级,以响应于优先级调整操作,调整目标训练任务在目标任务队列中的排序。
步骤104,当轮询到目标训练任务时,对目标资源组所关联的至少一个工作节点监测可用资源。
本申请实施例中,可以将工作节点添加至资源组中,还可以删除资源组中的节点,还可以对资源组中的节点监测可用资源。
作为一种可能的实现方式,当目标训练任务处于堆结构的堆顶时,执行定时任务,以周期性监测目标资源组所关联的工作节点的可用资源。
可选地,可以调用Prometheus接口,查询所有运行中的工作节点的可用资源。其中,Prometheus是由谷歌研发的一款开源的监控软件,可用于监控Kubernetes上所有资源对象。例如,可监控主机资源的中央处理器(Central Processing Unit/Processor,简称CPU)、内存、磁盘使用情况,服务实例的CPU、内存使用情况,还可以设置报警规则。
步骤105,在确定可用资源满足目标训练任务运行所需资源的情况下,采用目标资源组关联的至少一个工作节点执行目标训练任务。
本申请实施例中,在对目标资源组所关联的工作节点监测可用资源时,确定可用资源满足目标训练任务运行所需资源的情况下,可以将目标训练任务从目标任务队列中取出,以采用目标资源组关联的工作节点执行目标训练任务。
进一步地,将目标训练任务从目标任务队列中取出后,可以根据目标任务队列中剩余训练任务携带的优先级,在堆结构中更新剩余训练任务的排序位置。
本申请实施例的模型训练方法,在获取到目标用户对象在命令行界面输入的模型训练的训练相关参数后,根据训练相关参数,生成目标用户对象提交的目标训练任务,进而,将目标训练任务添加至目标任务队列中,确定目标资源组所关联的至少一个工作节点的可用资源满足目标训练任务运行所需资源的情况下,采用目标资源组关联的至少一个工作节点执行目标训练任务。由此,在可用资源满足训练任务所需资源的情况下,即可执行目标训练任务,充分利用了硬件资源,缩短了模型创建时间,实现了快速创建模型训练任务的目的。
在实际的模型训练过程中,对于每一个用户对象,均存在与用户对象的属性信息匹配的资源组,在确定不存在与用户对象的属性信息匹配的资源组时,可以创建资源组,以将用户对象添加至资源组内。下面结合图3进行详细介绍,图3为本申请实施例提供的另一种模型训练方法的流程示意图。
如图3所示,该模型训练方法,还可以包括以下步骤:
步骤201,根据目标用户对象的属性信息,确定不存在与属性信息匹配的资源组时,提示创建目标资源组。
本申请实施例中,用户对象均具有与其属性信息匹配的资源组,当根据目标用户对象的属性信息,确定不存在与属性信息匹配的资源组时,可以提示创建目标资源组,以使得目标用户对象根据提示信息创建资源组。
作为一种示例,如图4所示,图4为本申请实施例提供的用户对象与资源组的关系示意图。在k8s集群中创建资源组,将资源组与一组计算机节点通过标签进行绑定。如图4中,节点1~节点6属于资源组1,节点7~节点9属于资源组2,节点9~节点12属于资源组3。其中,一台计算机节点可以属于不同资源组,例如,节点9可以属于资源组2,也可以属于资源组3。而用户对象隶属于不同的资源组,可以将同组、同业务线的用户划分到一组中,使用一组计算机硬件资源。
步骤202,响应于配置操作,创建目标资源组,以及配置目标资源组关联的工作节点。
本申请实施例中,目标用户对象根据提示信息配置创建目标资源组的参数信息,以及配置目标资源组关联的工作节点后,可以响应于目标用户对象的配置操作,创建目标资源组,以及配置目标资源组关联的工作节点。
步骤203,将目标用户对象添加至目标资源组。
本申请实施例中,在创建目标资源组后,可以将目标用户对象添加至目标资源组。
可选地,还可以对目标资源组关联的工作节点进行添加和/或移出操作,还可以对对目标资源组关联的工作节点的可用资源进行监测。
作为一种示例,如图5所示,图5为本申请实施例提供的一种资源管理的流程示意图。在一种可能的情况下,确定目标用户对象属于某个已经存在的资源组时,可以将目标用户对象添加至该资源组,确定在该资源组添加硬件资源时,可以在该资源组中加入工作节点。
在另一种可能的情况下,确定目标用户对象不属于某个已经存在的资源组时,判断是否存储与目标用户对象的属性信息匹配的资源组,若确定存在与目标用户对象的属性信息匹配的资源组,则将目标用户对象至该资源组,确定在该资源组添加硬件资源时,可以在该资源组中加入工作节点。
若确定不存在与目标用户对象的属性信息匹配的资源组,则提示创建与目标用户对象的属性信息匹配的目标资源组,将目标用户对象至该资源组,确定在该资源组添加硬件资源时,可以在该资源组中加入工作节点。
本申请实施例的模型训练方法,根据目标用户对象的属性信息,确定不存在与属性信息匹配的资源组时,提示创建目标资源组,响应于配置操作,创建目标资源组,以及配置目标资源组关联的工作节点后,将目标用户对象添加至目标资源组。由此,将用户对象、用户对象隶属部门、业务线、硬件资源建立了关联关系,从而实现了可按需调整、灵活的配置资源池,不仅降低运维成本,还提高了硬件资源的利用率。
在上述实施例的基础上,在上述步骤102生成目标训练任务后,可以将目标训练任务的文件存储于命令配置文件存储系统内的目标用户对象的存储路径下,以便于建模人员分析提交训练相关参数的差异和模型评估结果的关系,同时还实现了对训练相关参数的复用,将极大的简化模型训练参数的配置过程,提高建模效率。下面结合图6进行详细介绍,图6为本申请实施例提供的又一种模型训练方法的流程示意图。
如图6所示,该模型训练方法,还可以包括以下步骤:
步骤301,获取目标用户对象在命令行界面输入的模型训练的训练相关参数。
步骤302,根据训练相关参数,生成目标用户对象提交的目标训练任务。
本申请实施例中,步骤301和步骤302的实现过程,可以参见上述实施例中步骤101和步骤102的实现过程,在此不再赘述。
步骤303,将目标训练任务的文件存储于命令配置文件存储系统内的目标用户对象的存储路径下。
其中,目标训练任务的文件中包含训练相关参数。
可选地,目标训练任务的文件中还可以包括模型训练参数,和/或,运行相关参数。其中,模型训练参数,是执行目标训练任务后得到的模型参数,用于模型参数的复用。
运行相关参数,包括下列中的一个或多个组合:执行目标训练任务所占用的资源;执行目标训练任务的时间;目标训练任务所训练模型的规模。
本申请实施例中,在多次建模,多次迭代的过程中,可以将每次用户对象提交的训练相关参数存储于命令配置文件存储系统内的用户对象的存储路径下。
作为一种示例,如图7所示,在对训练相关参数进行存储时,可以是以每个用户对象的域账户(域账户保证了用户名称的唯一性,即不存在名称相同的两个用户对象)建立第一层目录。第二层目录为Project(项目)层,该层级用以划分不同业务,例如,图计算、地址分词等。第三级目录为Task(任务)层,Task层级为同一项目的多次建模迭代的不同训练任务。第四级为参数存储文件,文件中存储提交参数的具体信息(例如图7中Task-1-config-v1)。该文件的命名规范是“任务名称+config+版本自增序号v1/v2/v3”。
用户对象每次提交命令都会生成的一条不可修改、不可删除的记录。例如用户某次以Git仓库develop分支代码进行建模。提交训练任务后,在“任务-1”文件下,生成参数配置信息版本1“task-1-config-v1”。迭代优化训练代码,用户想要基于Git的master分支代码进行建模时,只需要对所有的参数信息进行复用,然后对Git仓库分支进行更新。由此,基于这种指定configFile来复用所有参数,设置个别参数实现动态更新的功能,极大的简化了参数配置过程,提高了建模效率。
步骤304,将目标训练任务添加至目标任务队列中。
步骤305,当轮询到目标训练任务时,对目标资源组所关联的至少一个工作节点监测可用资源。
步骤306,在确定可用资源满足目标训练任务运行所需资源的情况下,采用目标资源组关联的至少一个工作节点执行目标训练任务。
本申请实施例中,步骤304至步骤306的实现过程,可以参见上述实施例中步骤103和步骤105的实现过程,在此不再赘述。
步骤307,在执行目标训练任务的过程中,执行用于监测运行相关参数的自定义对象。
其中,自定义对象,基于自定义资源(Custom Resource Definition,简称CRD)创建的。CRD中描述了自定义资源的名称、副本个数、状态信息、资源作用域、校验机制等。
本申请实施例中,在执行目标训练任务的过程中,可以执行用于监测运行相关参数的自定义对象,以对运行相关参数进行监测。
步骤308,根据监测到的运行相关参数,对后续提交的训练任务确定所需资源。
其中,所需资源,可以指训练任务所需的硬件资源,如硬件资源中央处理器CPU核数、内存大小等。
本申请实施例中,在执行目标训练任务的过程中,执行用于监测运行相关参数的自定义对象时,可以根据监测到的运行相关参数,对后续提交的训练任务确定所需资源,由此,通过动态设置合理的硬件资源大小,既不浪费资源,也不会因硬件资源的不足导致模型训练任务运行失败。
为了实现上述实施例,本申请还提出一种模型训练装置。
图8为本申请实施例提供的一种模型训练装置的结构示意图。
如图8所示,该模型训练装置800,可以包括:获取模块810、生成模块820、处理模块830、监测模块840以及执行模块850。
其中,获取模块810,用于获取目标用户对象在命令行界面输入的模型训练的训练相关参数。
生成模块820,用于根据训练相关参数,生成目标用户对象提交的目标训练任务。
处理模块830,用于将目标训练任务添加至目标任务队列中,其中,目标任务队列中包括目标用户对象所属目标资源组内各用户对象提交的训练任务。
监测模块840,用于当轮询到目标训练任务时,对目标资源组所关联的至少一个工作节点监测可用资源。
执行模块850,用于在确定可用资源满足目标训练任务运行所需资源的情况下,采用目标资源组关联的至少一个工作节点执行目标训练任务。
作为一种可能的情况,该模型训练装置800,还可以包括:
提示模块,用于根据目标用户对象的属性信息,确定不存在与属性信息匹配的资源组时,提示创建目标资源组。
创建模块,用于响应于配置操作,创建目标资源组,以及配置目标资源组关联的工作节点。
添加模块,用于将目标用户对象添加至目标资源组。
作为另一种可能的实现方式,目标训练任务携带有优先级,添加模块,还可以用于:
根据目标训练任务携带的优先级,将目标训练任务添加至堆结构的目标任务队列中;其中,目标任务队列中的各训练任务在堆结构中,自顶至底按照优先级从高至低的顺序排列;优先级最高的训练任务处于堆结构的堆顶。
作为另一种可能的实现方式,监测模块840,还可以用于:当目标训练任务处于堆结构的堆顶时,执行定时任务,以周期性监测目标资源组所关联的工作节点的可用资源。
作为另一种可能的实现方式,执行模块850,还可以用于:
在确定可用资源满足目标训练任务运行所需资源的情况下,将目标训练任务从目标任务队列中取出,采用目标资源组关联的工作节点执行目标训练任务;根据目标任务队列中剩余训练任务携带的优先级,在堆结构中更新剩余训练任务的排序位置。
作为另一种可能的实现方式,该模型训练装置800,还可以包括:
调整模块,用于响应于优先级调整操作,调整目标训练任务在目标任务队列中的排序。
作为另一种可能的实现方式,该模型训练装置800,还可以包括:
存储模块,用于将目标训练任务的文件存储于命令配置文件存储系统内的目标用户对象的存储路径下;其中,目标训练任务的文件中包含训练相关参数。
作为另一种可能的实现方式,目标训练任务的文件中还包括模型训练参数,和/或,运行相关参数;其中,模型训练参数,是执行目标训练任务后得到的模型参数,用于模型参数的复用;运行相关参数,包括下列中的一个或多个组合:执行目标训练任务所占用的资源;执行目标训练任务的时间;目标训练任务所训练模型的规模。
作为另一种可能的实现方式,该模型训练装置800,还可以包括:
第二执行模块,用于在执行目标训练任务的过程中,执行用于监测运行相关参数的自定义对象;其中,自定义对象,基于自定义资源CRD创建的;
资源确定模块,用于根据监测到的运行相关参数,对后续提交的训练任务确定所需资源。
需要说明的是,前述对模型训练方法实施例的解释说明也适用于该实施例的模型训练装置,此处不再赘述。
本申请实施例的模型训练装置,在获取到目标用户对象在命令行界面输入的模型训练的训练相关参数后,根据训练相关参数,生成目标用户对象提交的目标训练任务,进而,将目标训练任务添加至目标任务队列中,确定目标资源组所关联的至少一个工作节点的可用资源满足目标训练任务运行所需资源的情况下,采用目标资源组关联的至少一个工作节点执行目标训练任务。由此,在可用资源满足训练任务所需资源的情况下,即可执行目标训练任务,充分利用了硬件资源,缩短了模型创建时间,实现了快速创建模型训练任务的目的。
为了实现上述实施例,本申请还提出一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现上述实施例中所述的模型训练方法。
为了实现上述实施例,本申请还提出一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述实施例中所述的模型训练方法。
为了实现上述实施例,本申请还提出一种计算机程序产品,当所述计算机程序产品中的指令处理器执行时,执行上述实施例中所述的模型训练方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (11)

1.一种模型训练方法,其特征在于,包括以下步骤:
获取目标用户对象在命令行界面输入的模型训练的训练相关参数;
根据所述训练相关参数,生成所述目标用户对象提交的目标训练任务;
将所述目标训练任务添加至目标任务队列中,其中,所述目标任务队列中包括所述目标用户对象所属目标资源组内各用户对象提交的训练任务;
当轮询到所述目标训练任务时,对所述目标资源组所关联的至少一个工作节点监测可用资源;
在确定所述可用资源满足所述目标训练任务运行所需资源的情况下,采用所述目标资源组关联的所述至少一个工作节点执行所述目标训练任务;
其中,所述目标训练任务携带有优先级,所述将所述目标训练任务添加至目标任务队列中,包括:
根据所述目标训练任务携带的优先级,将所述目标训练任务添加至堆结构的所述目标任务队列中;其中,所述目标任务队列中的各训练任务在所述堆结构中,自顶至底按照优先级从高至低的顺序排列;优先级最高的训练任务处于所述堆结构的堆顶。
2.根据权利要求1所述的模型训练方法,其特征在于,所述方法还包括:
根据所述目标用户对象的属性信息,确定不存在与所述属性信息匹配的资源组时,提示创建目标资源组;
响应于配置操作,创建所述目标资源组,以及配置所述目标资源组关联的工作节点;
将所述目标用户对象添加至所述目标资源组。
3.根据权利要求1所述的模型训练方法,其特征在于,所述当轮询到所述目标训练任务时,对所述目标资源组所关联的工作节点监测可用资源,包括:
当所述目标训练任务处于所述堆结构的堆顶时,执行定时任务,以周期性监测所述目标资源组所关联的工作节点的可用资源。
4.根据权利要求1所述的模型训练方法,其特征在于,所述在确定所述可用资源满足所述目标训练任务运行所需资源的情况下,采用所述目标资源组关联的所述工作节点执行所述目标训练任务,包括:
在确定所述可用资源满足所述目标训练任务运行所需资源的情况下,将所述目标训练任务从所述目标任务队列中取出,采用所述目标资源组关联的所述工作节点执行所述目标训练任务;
根据所述目标任务队列中剩余训练任务携带的优先级,在所述堆结构中更新所述剩余训练任务的排序位置。
5.根据权利要求1所述的模型训练方法,其特征在于,所述将所述目标训练任务添加至堆结构的所述目标任务队列中之后,还包括:
响应于优先级调整操作,调整所述目标训练任务在所述目标任务队列中的排序。
6.根据权利要求1-5任一项所述的模型训练方法,其特征在于,所述根据所述训练相关参数,生成所述目标用户对象提交的目标训练任务之后,还包括:
将所述目标训练任务的文件存储于命令配置文件存储系统内的所述目标用户对象的存储路径下;
其中,所述目标训练任务的文件中包含所述训练相关参数。
7.根据权利要求6所述的模型训练方法,其特征在于,所述目标训练任务的文件中还包括模型训练参数,和/或,运行相关参数;
其中,所述模型训练参数,是执行所述目标训练任务后得到的模型参数,用于模型参数的复用;
所述运行相关参数,包括下列中的一个或多个组合:
执行所述目标训练任务所占用的资源;
执行所述目标训练任务的时间;
所述目标训练任务所训练模型的规模。
8.根据权利要求7所述的模型训练方法,其特征在于,所述方法还包括:
在执行所述目标训练任务的过程中,执行用于监测所述运行相关参数的自定义对象;其中,所述自定义对象,基于自定义资源CRD创建的;
根据监测到的运行相关参数,对后续提交的训练任务确定所需资源。
9.一种模型训练装置,其特征在于,所述装置包括:
获取模块,用于获取目标用户对象在命令行界面输入的模型训练的训练相关参数;
生成模块,用于根据所述训练相关参数,生成所述目标用户对象提交的目标训练任务;
处理模块,用于将所述目标训练任务添加至目标任务队列中,其中,所述目标任务队列中包括所述目标用户对象所属目标资源组内各用户对象提交的训练任务;
监测模块,用于当轮询到所述目标训练任务时,对所述目标资源组所关联的至少一个工作节点监测可用资源;
执行模块,用于在确定所述可用资源满足所述目标训练任务运行所需资源的情况下,采用所述目标资源组关联的所述至少一个工作节点执行所述目标训练任务;
其中,所述目标训练任务携带有优先级,所述处理模块,还用于:
根据所述目标训练任务携带的优先级,将所述目标训练任务添加至堆结构的所述目标任务队列中;其中,所述目标任务队列中的各训练任务在所述堆结构中,自顶至底按照优先级从高至低的顺序排列;优先级最高的训练任务处于所述堆结构的堆顶。
10.一种计算机设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现如权利要求1-8中任一所述的模型训练方法。
11.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-8中任一所述的模型训练方法。
CN202110178477.9A 2021-02-09 2021-02-09 模型训练方法、装置以及存储介质 Active CN114089889B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110178477.9A CN114089889B (zh) 2021-02-09 2021-02-09 模型训练方法、装置以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110178477.9A CN114089889B (zh) 2021-02-09 2021-02-09 模型训练方法、装置以及存储介质

Publications (2)

Publication Number Publication Date
CN114089889A CN114089889A (zh) 2022-02-25
CN114089889B true CN114089889B (zh) 2024-04-09

Family

ID=80295925

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110178477.9A Active CN114089889B (zh) 2021-02-09 2021-02-09 模型训练方法、装置以及存储介质

Country Status (1)

Country Link
CN (1) CN114089889B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114741175A (zh) * 2022-04-15 2022-07-12 支付宝(杭州)信息技术有限公司 任务执行方法、装置、中心节点和下游节点设备
CN117828341A (zh) * 2022-09-27 2024-04-05 华为技术有限公司 一种模型训练管理的方法、装置和系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109634748A (zh) * 2018-12-12 2019-04-16 深圳前海微众银行股份有限公司 集群资源调度方法、装置、设备及计算机可读存储介质
CN110175679A (zh) * 2019-05-29 2019-08-27 深圳前海微众银行股份有限公司 一种监控模型训练的方法及装置
CN111193802A (zh) * 2019-12-31 2020-05-22 苏州浪潮智能科技有限公司 基于用户组的资源动态分配方法、系统、终端及存储介质
CN111310934A (zh) * 2020-02-14 2020-06-19 北京百度网讯科技有限公司 一种模型生成方法、装置、电子设备和存储介质
EP3726439A1 (en) * 2019-04-17 2020-10-21 HERE Global B.V. Edge learning
CN112000450A (zh) * 2020-08-18 2020-11-27 中国银联股份有限公司 神经网络架构搜索方法以及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11397887B2 (en) * 2017-09-26 2022-07-26 Amazon Technologies, Inc. Dynamic tuning of training parameters for machine learning algorithms
CN110413210B (zh) * 2018-04-28 2023-05-30 伊姆西Ip控股有限责任公司 用于处理数据的方法、设备和计算机程序产品

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109634748A (zh) * 2018-12-12 2019-04-16 深圳前海微众银行股份有限公司 集群资源调度方法、装置、设备及计算机可读存储介质
EP3726439A1 (en) * 2019-04-17 2020-10-21 HERE Global B.V. Edge learning
CN110175679A (zh) * 2019-05-29 2019-08-27 深圳前海微众银行股份有限公司 一种监控模型训练的方法及装置
CN111193802A (zh) * 2019-12-31 2020-05-22 苏州浪潮智能科技有限公司 基于用户组的资源动态分配方法、系统、终端及存储介质
CN111310934A (zh) * 2020-02-14 2020-06-19 北京百度网讯科技有限公司 一种模型生成方法、装置、电子设备和存储介质
CN112000450A (zh) * 2020-08-18 2020-11-27 中国银联股份有限公司 神经网络架构搜索方法以及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
人工智能计算与数据服务平台的研究与应用;王彦棡;王珏;曹荣强;;数据与计算发展前沿(第06期);全文 *
基于Kubernetes的Tensorflow分布式模型训练平台的设计与实现;王艺颖;中国优秀硕士学位论文全文数据库信息科技辑(第02期);全文 *

Also Published As

Publication number Publication date
CN114089889A (zh) 2022-02-25

Similar Documents

Publication Publication Date Title
US11392843B2 (en) Utilizing a machine learning model to predict a quantity of cloud resources to allocate to a customer
US10515002B2 (en) Utilizing artificial intelligence to test cloud applications
US10938678B2 (en) Automation plan generation and ticket classification for automated ticket resolution
US10423403B1 (en) Utilizing a machine learning model to predict metrics for an application development process
CN108304201B (zh) 对象更新方法、装置及设备
CN108809694B (zh) 业务编排方法、系统、装置与计算机可读存储介质
Yang et al. Multi-step-ahead host load prediction using autoencoder and echo state networks in cloud computing
CN107943945B (zh) 一种大数据分析开发平台中异构算子管理方法
US11538237B2 (en) Utilizing artificial intelligence to generate and update a root cause analysis classification model
CN114089889B (zh) 模型训练方法、装置以及存储介质
US11379718B2 (en) Ground truth quality for machine learning models
US11113629B2 (en) Adaptive configuration of a heterogeneous cluster environment
CN113010598B (zh) 面向遥感大数据处理的动态自适应分布式协同工作流系统
CN110188135A (zh) 文件生成方法及设备
US10740209B2 (en) Tracking missing data using provenance traces and data simulation
CN115169810A (zh) 一种面向电网调控的人工智能系统构建方法及装置
CN111143039A (zh) 一种虚拟机的调度方法、装置及计算机存储介质
Barbierato et al. A Performance Modeling Language For Big Data Architectures.
Ogasawara et al. Exploring many task computing in scientific workflows
US12001174B2 (en) Determination of task automation using an artificial intelligence model
US20210247989A1 (en) Guiding the installation process of sensor-based devices
CN112817560A (zh) 一种基于表函数的计算任务处理方法、系统及计算机可读存储介质
CN117235527A (zh) 端到端容器化的大数据模型构建方法、装置、设备及介质
US11797770B2 (en) Self-improving document classification and splitting for document processing in robotic process automation
US20220207349A1 (en) Automated Creation of Machine-learning Modeling Pipelines

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