CN116204272A - 一种模型训练的复现方法、系统、装置以及相关设备 - Google Patents

一种模型训练的复现方法、系统、装置以及相关设备 Download PDF

Info

Publication number
CN116204272A
CN116204272A CN202111441777.8A CN202111441777A CN116204272A CN 116204272 A CN116204272 A CN 116204272A CN 202111441777 A CN202111441777 A CN 202111441777A CN 116204272 A CN116204272 A CN 116204272A
Authority
CN
China
Prior art keywords
model
training
virtual device
user
virtual
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
Application number
CN202111441777.8A
Other languages
English (en)
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202111441777.8A priority Critical patent/CN116204272A/zh
Publication of CN116204272A publication Critical patent/CN116204272A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请提供了一种模型训练的复现方法,该方法通过获取待训练模型的虚拟装置镜像,让模型训练在虚拟装置中进行,并提供固定的随机种子,可以使得不同训练设备运行待训练模型,或者同一训练设备多次运行待训练模型都在相同的环境中,且待训练模型的模型参数组合的初始值是相同的。进而,该方法能使得每次模型训练得到的训练结果相同,减少了模型复现过程中耗费的人力和时间。并且,该方法能保存每次迭代的模型参数以及训练结果,并可视化模型训练的训练结果,能尽早发现模型训练中的问题。

Description

一种模型训练的复现方法、系统、装置以及相关设备
技术领域
本发明涉及IT领域,尤其涉及一种模型训练的复现方法、系统、装置以及相关设备。
背景技术
AI模型运行时的随机模型参数、软件环境、软件版本的不同等原因,都会导致AI模型在相同数据集上重复运行时,每次产生的训练结果会不同,例如,损失函数的值(loss值)不同。但是,对AI模型进行数据分析或者展示报告等情况时,往往需要重复运行该AI模型,并期望每次得到相同的训练结果,才能方便不同用户共同对同一训练结果进行分析,或者同一用户在数据分析和展示报告等不同阶段,是对同一训练结果进行分析和展示的。
为了能复现模型训练结果,需要对训练环境和模型代码进行调整,往往需要耗费大量时间和人力。因此,如何减少AI模型复现过程中耗费的时间以及人力,是亟待解决的问题。
发明内容
本申请提供了一种模型训练的复现方法、系统、装置以及相关设备,用于解决AI模型复现过程中耗费的时间以及人力的问题。
第一方面,本申请提供一种模型训练的复现方法,包括:训练设备接收第一用户输入的第一模型的模型信息;根据模型信息从云服务器拉取对应的虚拟装置,虚拟装置存储有第一模型的初始参数;使用虚拟装置对初始参数对应的神经网络模型进行训练。
通过本申请提供的方法,训练设备能获取虚拟装置镜像,让模型训练在虚拟装置中进行,并提供固定的模型初始参数,可以使得不同训练设备运行待训练模型,或者同一训练设备多次运行待训练模型都在相同的环境中,进而,使得每次模型训练得到的训练结果相同。并且,在云服务器上没有待训练模型对应的虚拟装置时,还可以选择其他模型对应的虚拟装置,只要确保下一次对待训练模型进行训练也是选择的相同的虚拟装置即可。
结合第一方面,在一些实现方式中,云服务器包括多个虚拟装置,其中,不同虚拟装置存储不同的初始参数。
每个虚拟装置能对不同的模型进行训练,虚拟装置存储有不同模型对应的初始参数,使得虚拟装置能为同一模型提供相同初始参数,避免了每次训练时初始参数不同,导致训练过程不同的问题。
结合第一方面,在一些实现方式中,在训练设备接收第一用户输入的第一模型的模型信息之前,还包括:接收第二用户输入的第一模型的模型信息,第二用户与第一用户为同一用户,或者第二用户与第一用户为不同用户;从云服务器拉取虚拟装置,使用第一数值生成第一模型的初始参数;使用虚拟装置对第一模型进行训练;向云服务器发送第一数值,以供云服务器将第一模型的初始参数存储至虚拟装置并记录虚拟装置与第一模型信息之间的对应关系。
虚拟装置中可以存储的是初始参数,可以存储产生初始参数的第一数值。并且,第一数值是在虚拟装置第一次对第一模型进行训练时,由用户提供的,在用户使用该第一数值对第一模型进行训练后,训练设备将上传该第一数值给云服务器,使得下一次从云服务器获取该虚拟装置时也能为模型提供相同的第一数值,进而提供相同的初始参数,避免了每次训练时初始参数不同,导致训练过程不同的问题。
结合第一方面,在一些实现方式中,虚拟装置为包括容器或者虚拟机。
虚拟装置的类型可以为容器、虚拟机或者其他虚拟技术生成的虚拟装置,进而用户可以根据需求以及训练设备的硬件配置,选择合适的虚拟装置类型。
结合第一方面,在一些实现方式中,使用虚拟装置对初始参数对应的神经网络模型进行训练,包括:使用虚拟装置对神经网络模型进行多次迭代训练,向第一用户显示每次迭代训练的训练结果,每次迭代训练的训练结果包括所述神经网络模型每次迭代训练后的模型参数、损失函数值。
虚拟装置能可视化训练过程,将模型参数和损失函数值随迭代次数的变化进行展示,能使用户尽早观察到梯度爆炸或者梯度消失等梯度无法收敛情况,尽快结束模型训练,不浪费训练时间。
结合第一方面,在一些实现方式中,在使用虚拟装置对初始参数对应的神经网络模型进行训练之前,还包括:向第一接口发送样本集信息,样本集信息包括样本集所属的目标数据库的信息,第一接口用于根据样本集信息从目标数据库中获取对应的样本集;接收第一接口发送的样本集;使用虚拟装置对初始参数对应的神经网络模型进行训练,包括:使用虚拟装置和样本集对初始参数对应的神经网络模型进行训练。
不同来源的数据库接口不同,虚拟装置能通过对不同来源的数据库进行封装,使得不同数据库具有统一的接口,进而虚拟装置能支持更多来源的数据库样本集对待训练模型进行训练。
结合第一方面,在一些实现方式中,根据模型信息从云服务器拉取对应的虚拟装置,包括:根据模型信息从云服务器拉取对应的虚拟装置镜像,虚拟装置镜像包括虚拟装置的配置文件;根据虚拟装置镜像,生成虚拟装置。
云服务器上存储的是虚拟装置的镜像,训练设备需要先获取虚拟装置的镜像,再通过虚拟装置镜像,再训练设备中搭建虚拟装置。
第二方面,本申请提供一种模型训练的复现方法,云服务器接收训练设备转发的第一用户输入的第一模型的模型信息;根据模型信息向训练设备发送对应的虚拟装置,虚拟装置存储有第一模型的初始参数,虚拟装置用于对初始参数对应的神经网络模型进行训练。
结合第二方面,在一些实现方式中,云服务器包括多个虚拟装置,其中,不同虚拟装置存储不同的初始参数。
结合第二方面,在一些实现方式中,在云服务器接收训练设备转发的第一用户输入的第一模型的模型信息之前,还包括:云服务器接收训练设备转发的第二用户输入的第一模型信息,第二用户与第一用户为同一用户,或者第二用户与第一用户为不同用户;向训练设备发送虚拟装置,以供训练设备使用第一数值生成第一模型的初始参数;接收训练设备发送的第一数值;将第一模型的初始参数存储至虚拟装置并记录虚拟装置与第一模型信息之间的对应关系。
结合第二方面,在一些实现方式中,虚拟装置包括容器或者虚拟机。
结合第二方面,在一些实现方式中,根据模型信息向训练设备发送对应的虚拟装置,包括:根据模型信息向训练设备发送对应的虚拟装置镜像,虚拟装置镜像包括虚拟装置的配置文件,以供训练设备根据虚拟装置镜像,生成虚拟装置。
第三方面,本申请提供一种模型训练的复现系统,系统包括训练设备和云服务器,其中,训练设备用于实现如第一方面所述的方法,云服务器用于实现如第二方面所述的方法。
第四方面,本申请提供一种模型训练的复现装置,包括接收单元、获取单元以及训练单元,接收单元用于接收第一用户输入的第一模型的模型信息;获取单元用于根据模型信息从云服务器拉取对应的虚拟装置,虚拟装置存储有第一模型的初始参数;训练单元用于使用虚拟装置对初始参数对应的神经网络模型进行训练。
结合第四方面,在一些实现方式中,云服务器包括多个虚拟装置,其中,不同虚拟装置存储不同的初始参数。
结合第四方面,在一些实现方式中,接收单元还用于接收第二用户输入的第一模型的模型信息,第二用户与第一用户为同一用户,或者第二用户与第一用户为不同用户;获取单元还用于从云服务器拉取虚拟装置,使用第一数值生成第一模型的初始参数;训练单元还用于使用虚拟装置对第一模型进行训练;模型训练的复现装置还包括发送单元,发送单元用于向云服务器发送第一数值,以供云服务器将第一模型的初始参数存储至虚拟装置并记录虚拟装置与第一模型信息之间的对应关系。
结合第四方面,在一些实现方式中,虚拟装置包括容器或者虚拟机。
结合第四方面,在一些实现方式中,训练单元还用于使用虚拟装置对神经网络模型进行多次迭代训练,向第一用户显示每次迭代训练的训练结果,每次迭代训练的训练结果包括所述神经网络模型每次迭代训练后的模型参数和损失函数值。
结合第四方面,在一些实现方式中,发送单元还用于向第一接口发送样本集信息,样本集信息包括样本集所属的目标数据库的信息,第一接口用于根据样本集信息从目标数据库中获取对应的样本集;接收单元还用于接收第一接口发送的样本集;训练单元还用于使用虚拟装置和样本集对初始参数对应的神经网络模型进行训练。
结合第四方面,在一些实现方式中,获取单元还用于根据模型信息从云服务器拉取对应的虚拟装置镜像,虚拟装置镜像包括虚拟装置的配置文件;模型训练的复现装置还包括生成单元,生成单元用于根据虚拟装置镜像,生成虚拟装置。
第五方面,本申请提供一种计算机可读存储介质,其特征在于,包括指令,当指令在计算设备上运行时,使得该计算设备执行如第一方面或第二方面所描述的方法。
第六方面,本申请提供了一种计算设备,其特征在于,包括处理器和存储器,其中,处理器执行存储器中的代码执行如第一方面或第二方面所描述的方法。
第七方面,本申请提供了一种计算机程序产品,其特征在于,包括计算机程序,当计算机程序被计算设备读取并执行时,使得计算设备执行如第一方面或第二方面所描述的方法。
综上所述,本申请通过获取待训练模型的虚拟装置镜像,让模型训练在虚拟装置中进行,并提供固定的初始参数,可以使得不同训练设备运行待训练模型,或者同一训练设备多次运行待训练模型都在相同的环境中,进而,能使得每次模型训练得到的训练结果相同,减少了模型复现过程中耗费的人力和时间。并且,该方法能保存每次迭代的模型参数以及训练结果,并可视化模型训练的训练结果,能尽早发现模型训练中的问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1是本申请提供的一种AI系统的架构示意图;
图2是本申请提供的一种模型训练的复现系统的结构示意图;
图3是本申请提供的一种包含容器的训练设备的结构示意图;
图4是本申请提供的一种包含虚拟机的训练设备的结构示意图;
图5是本申请提供的一种虚拟装置的结构示意图;
图6是本申请提供的一种模型训练的复现方法的流程示意图;
图7A-图7E是本申请提供的一种复现模型训练的界面示意图;
图8是本申请提供的一种模型训练的复现装置的结构示意图;
图9是本申请提供的一种计算设备的结构示意图。
具体实施方式
本申请的实施方式部分使用的术语仅用于对本申请的具体实施例进行解释,而非旨在限定本申请。
首先,对本申请涉及的应用场景进行解释说明。
人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的计算设备模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。人工智能包括数据训练,机器学习,深度学习,搜索,推理,决策等数据处理方式,对数据经过上面提到的数据处理后,进一步基于数据处理的结果可以形成一些通用的能力,比如可以是算法或者一个通用系统,例如,翻译,文本分析,语音识别,图像识别等等。其中,机器学习和深度学习可以对数据进行智能信息建模、预处理、AI模型训练等。AI模型是一种实现AI的数学方法集合,可以使用大量的样本对AI模型进行训练来使训练完成的AI模型获得预测的能力。
下面对AI模型的训练结构进行解释说明。如图1所示,图1是一种AI系统的架构图,该AI系统100是AI领域常用的系统架构,该系统100包括:数据采集设备110、数据库120、训练设备130、执行设备140以及客户设备150。该系统100中的各个部件可以通过网络相互连接,这里的网络可以是有线网络也可以是无线网络,还可以是二者的混合。
数据采集设备110用于从环境中采集数据样本,数据样本可以为图形、图像、语音、文本,还可以为传统设备的物联网数据,包括已有系统的业务数据以及力、位移、液位、温度、湿度等感知数据。
数据库120用于保存样本集,其中,样本集中的数据样本来自于数据采集设备110和客户设备150,数据库120还用于将数据样本发送训练设备130进行模型训练。其中,数据库120中维护的样本集不一定都来自于数据采集设备110和客户设备150,也有可能从其他设备接收得到。
训练设备130用于使用数据库120中的样本集对待训练模型进行训练,获得目标模型,并将其发送至执行设备140。其中,待训练模型以及目标模型可以是任一种AI模型,比如分类垃圾邮件的神经网络模型,也可以是图像分类模型,也可以是语义识别模型等等,本申请不作具体限定。训练设备130在训练模型前将先获取设定好的超参数组合,并随机初始化模型参数组合,即生成一组初始参数。其中,超参数组合包括多个超参数,例如训练迭代次数、学习率等,模型参数组合包括多个模型参数,模型参数为AI模型内部的参数,例如,AI模型为神经网络模型时,模型参数组合包括神经网络的权重;AI模型为支持向量机模型时,模型参数包括支持向量等。训练设备130获取到超参数和初始参数后,将使用一批数据样本对待训练模型进行一次迭代训练,将待训练模型的输出结果与样本数据的标签进行对比,并根据对比结果调整待训练模型的模型参数,然后进行下一次迭代训练,直到模型训练符合预设终止条件,则终止训练,获得目标模型。其中,预设终止条件可以是训练达到训练迭代次数,或者损失函数(loss function)或目标函数(objective function)的值小于预设值,其中,损失函数和目标函数用于衡量模型输出结果和样本数据标签的差异,即预测值和目标值的差异。
执行设备140用于根据训练设备130训练好的目标模型实现各种各样的功能。在图1中,用户还可以通过客户设备150向执行设备140输入数据,执行设备140使用目标模型对输入数据进行预测,获得输出结果。执行设备140可以将输出结果返回给客户设备150;执行设备140也可以将输出结果作为新的样本,存入数据库120,以供训练设备130使用新的样本重新调整目标模型,提升目标模型性能。
客户设备150用于用户查看执行设备140输出的结果,具体的呈现形式可以是显示、声音、动作等具体方式。
其中,上述数据库120可以是本地数据库,也可以是云端或者其他第三方平台的数据库。训练设备130可以是物理服务器,比如X86服务器、ARM服务器等等,也可以是提供强计算力的训练卡,还可以是基于通用的物理服务器结合网络功能虚拟化(Network FunctionsVirtualization,NFV)技术实现的虚拟机(Virtual Machine,VM),虚拟机指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统,本申请不作具体限定。执行设备140可以是终端,如手机终端、平板电脑、笔记本电脑、增强现实/虚拟现实、车载终端等等,还可以是服务器或云端设备等,本申请不作具体限定。举例来说,客户设备150为手机终端,执行设备140为云端设备,训练好的目标模型为语义识别模型,用户可以通过客户设备150向执行设备输入待识别的文字数据,执行设备140通过目标模型对上述待识别的文字数据进行语义识别,将语义识别的结果返回至客户设备150,使得用户可以通过客户设备150查看语义识别的结果。
值得注意的,图1仅是本申请实施例提供的一种系统架构的示意图,图中所示设备、器件、模块等之间的位置关系不构成任何限制,例如,在图1中,数据库120相对训练设备130是外部存储器,在其它情况下,也可以将数据库120置于训练设备130中,本申请不作具体限定。
综上可知,AI领域各种应用的实现依赖于AI模型,通过AI模型实现不同的功能,例如分类、识别、检测等等,而AI模型需要使用样本集预先训练后才能部署到执行设备140中使用。
但是,在构建AI模型的过程中,存在需要使用AI模型在相同数据集上重复训练,并期望每次训练的结果能相同的情况。例如,AI模型设计完成后,还包括再次运行AI模型的代码,并对AI模型运行结果进行数据分析、展示报告等等。在另一些实施例中,AI模型设计完成后,还可用于教学等情况,老师与学生们采用相同数据集对同一AI模型进行训练,如果能得到同样的训练结果,可帮助学生们理解模型训练过程,并方便共同对训练结果进行分析。如果采用相同数据集对同一AI模型进行训练,本身训练结果就会不同,不利于发现学生在操作过程中的失误。
也即是说,AI模型在上述不同阶段,往往需要不同训练设备运行同一待训练模型,或者同一训练设备多次运行待训练模型,并期望在每次运行得到的结果是相同的,便于用户理解和分析该AI模型及其训练结果。在实际情况中,因为AI模型运行时的部分参数是随机产生的,以及每次AI模型运行时的软件环境、软件版本的不同等原因,都会导致AI模型在相同数据集上重复运行时,产生的训练结果会不同,例如,损失函数的值(loss值)不同。为了能复现模型训练结果,需要对训练环境和模型代码进行调整,往往需要耗费大量时间和人力,即AI模型训练可复现性差。
为了解决AI模型训练可复现性差的问题,减少复现过程中耗费的时间以及人力,本申请提供了一种模型训练的复现系统,如图2所示,包括云服务器200和训练设备130,云服务器200上提供了AI模型库210,镜像仓库220以及数据库120。
AI模型库210中包括多个AI模型,训练设备130可以从AI模型库210中下载需要训练的AI模型。应理解,训练设备130也可以从本地或者其余设备上获取待训练模型。
数据库120中包括了多个样本集,训练设备130可以从数据库120中下载模型训练所需的样本集。数据库120也可以是位于其余服务器,本申请不作具体限定。关于数据库120的内容可参考图1中的相关描述,此处不再赘述。
镜像仓库220提供了多个虚拟装置镜像,训练设备130可以从镜像仓库220上获取待训练模型对应的虚拟装置镜像,其中,一个训练设备130可以获取多个虚拟装置镜像,同时对多个模型进行训练,一个虚拟装置镜像也可以被多个训练设备130获取。虚拟装置可以是容器或者虚拟机,或者其他虚拟技术实现的虚拟装置,本申请不作具体限定。虚拟装置镜像中包括虚拟装置运行所需要的可执行文件,依赖软件,库文件,配置文件等等,训练设备130通过虚拟装置镜像,添加一个可读可写层后,就能构建一个虚拟装置。
下面结合训练设备130的结构,对训练设备130的虚拟装置层进行详细介绍。其中,训练设备130包括软件设施以及硬件设施。软件设施包括虚拟装置层和宿主机层。训练设备130在进行模型训练前,将先从云服务器200上拉取待训练模型对应的虚拟装置镜像,构建虚拟装置,训练设备130的模型训练是在虚拟装置中进行的。硬件设施包括处理器、存储器以及网络接口等。
具体实现中,虚拟装置层可以包括多个容器,也可以包括多个虚拟机,或者,即包括容器又包括虚拟机,以及其他虚拟技术实现的虚拟装置,本申请不作具体限定。
当训练设备130中虚拟装置层为容器时,训练设备130中软件设施的结构如图3所示,容器包括应用以及运行时环境,使得容器具有独立的文件系统、命名空间、资源视图等。运行时环境具体包括应用所需要的操作系统核心库和系统库,比如功能函数库、三维图形处理库(如OpenGLES)、媒体库(Media Libraries)、输入管理器(Input Manager)等等。训练设备130的模型训练以容器的形式与训练设备130上其他的模型训练共享硬件资源和操作系统,每个模型训练所处的容器使用硬件资源和操作系统,但是不会对硬件资源进行独占,而是和其他模型训练所处的容器共享硬件资源和操作系统。换句话说,各个容器没有自己的内核,容器内的应用程序进程直接运行在服务器的内核上。
在一些实施例中,训练设备130中虚拟装置层为虚拟机时,训练设备130中软件设施的结构如图4所示,虚拟机的虚拟资源包括应用、操作系统以及运行时环境。虚拟机是基于通用的物理服务器结合网络功能虚拟化(Network Function Virtualization,NFV)技术实现的,虚拟机指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。虚拟机的操作系统可以与宿主机操作系统302不同,不同虚拟机的操作系统也可以互不相同,例如,操作系统1与操作系统2可以为不同操作系统。
如图3中部所示,软件设施中还包括宿主机层,宿主机层主要包括宿主机操作系统301。宿主机操作系统301可以是各种计算机适用的操作系统,比如Windows操作系统,本申请不作具体限定。需要说明的是,操作系统可以是官方完整的操作系统,也可以是为了适应服务器的运行方式对官方完整的操作系统的个别驱动模块进行修改后的操作系统,本申请不做具体限定。当虚拟装置层包括虚拟机时,如图4中部所示,宿主机操作系统302还包括虚拟机管理器,上述虚拟机管理器可以通过虚拟监视器(Virtual Machine Monitor,VMM)、Hypervisor实现,也可以是由其他能够实现平台虚拟化的软件实现,本申请不作具体限定。
在一些实施例中,宿主机层还包括驱动(比如驱动311以及驱动312)以及固件(比如固件321以及固件322)。驱动包含设备管理、查询驱动,图执行任务调度驱动,以及训练数据传输预处理驱动驱等,本申请不作具体限定。固件包括统一可扩展固件接口(UnifiedExtensible Firmware Interface,UEFI)等基础固件。
在一些实施例中,宿主机层还包括异构计算架构(Compute Architecture forNeuro Net,CANN),CANN用于进行代码开发、编译、调测等开发活动,包括算子库、运行时组件、编译包等,其中,算子库包括算子原型库及算子实现库、算子插件、融合规则,运行时组件包括任务调度执行、图执行、数据传输、图像数据加速处理等相关接口和功能,编译包包括图、算子、集合通信等编译和优化的相关接口和功能。
硬件资源(比如硬件设施331以及硬件设施332)包括处理器、存储器以及网络接口。处理器是计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元,其功能主要是获取并执行计算机可读的指令和存储在存储器中的数据,解释计算机指令以及处理计算机软件中的数据。处理器可以是单独的处理单元或多个处理单元,其全部可包括多个计算单元。处理器可以实现为一个或一个以上微处理器、微型计算机、微型控制器、数字信号处理器、中央处理单元、状态机、逻辑电路和/或基于操作指令来处理信号的任意设备。存储器是用来存储程序和各种数据信息的记忆部件,可以包括本领域公知的任意计算机可读介质。寄存器的功能是存储二进制代码,它是由具有存储功能的触发器组合起来构成的。网络接口指的网络设备的各种接口。可选的,该硬件设施还包括输入/输出(input/output,I/O)设备、硬盘和网卡等硬件。
训练设备130的虚拟装置内部的单元模块也可以有多种划分,图5为一种虚拟装置示例性的划分方式,如图5所示,可实现的功能包括模型管理模块510、数据管理模块520、参数管理模块530以及可视化模块540。
具体实现中,训练设备130先安装训练所需的驱动和固件,再从云服务器200拉取待训练模型对应的虚拟装置镜像,并根据虚拟装置镜像构建虚拟装置。虚拟装置中的模型管理模块510从本地或云服务器200获取待训练模型,数据管理模块520将从数据库120中获取样本集,并由参数管理模块530使用固定随机种子生成模型训练的初始参数,然后训练设备130开始模型训练,参数管理模块530将保存模型训练每次迭代后调整后的模型参数,并将每次迭代调整后的模型参数发送给可视化模块540,由可视化模块540将模型参数和训练结果按迭代次数进行实时可视化展示。
下面首先对虚拟装置的各个功能模块进行详细介绍。
模型管理模块510用于获取需要进行训练的AI模型,待训练模型可以是存储在训练设备130的代码,虚拟装置中带有的模型代码,也可以是从网络上获取的代码,获取用户在虚拟装置的应用中输入的代码等等。例如,模型管理模块510从昇腾模型库ModelZoo网站中下载待训练模型的代码。举例来说,待训练模型的代码包括:包含数据存储路径和模型参数的保存路径等的配置(例如dvc.config),数据的加载(例如data_loader.py),程序运行逻辑(例如main.py),包含加载检查点(例如load_checkpoint_path)、调整学习率、多次迭代训练、验证训练结果以及保存检查点(例如save_checkpoint_path)的网络运行逻辑(例如train.py)以及包含前向传播和反向传播的单次迭代训练的运行逻辑(例如train_epoch.py)。
数据管理模块520用于从数据库120中获取样本集,进而使用样本集对待训练模型进行训练,数据管理模块520即支持本地数据库提供的样本集,也支持远端数据库提供的样本集,例如,对象存储服务(Object Storage Service,OBS)、Hadoop分布式文件系统(Hadoop Distributed File System,HDFS)提供的数据集本。应理解,不同来源的样本集的接口不相同,数据管理模块520还用于将不同数据库进行封装,为每个数据库添加第一接口,并建立第一接口与各个数据库接口的连接,进而,虚拟装置可以使用统一的第一接口获取不同来源的样本集。
参数管理模块530用于使用第一数值为待训练模型生成模型参数的初始值,第一数值为固定的随机种子。其中,待训练模型训练时初始化的模型参数是随机产生的,通常,训练设备130产生随机数是先产生一个随机种子,然后根据这个随机种子采用一定算法,迭代产生其他随机数。举例来说,训练设备130先产生一个随机数,然后将这个随机数平方后取中间若干位数为下一个随机数,再由新的随机数平方后取中间若干位数为下一个随机数,进而可以由一个随机数生成多个模型参数,组成模型训练时初始化的模型参数。也即是说,若每次随机产生的随机种子不相同,则模型训练时初始化的模型参数也不相同。参数管理模块530使用固定的随机种子,即第一数值,进而每次能产生一组相同的随机数,使用该组随机数替换待训练模型的模型参数,能使得每次模型训练时初始化的模型参数相同。
在一些实施例中,参数管理模块530还用于保存由固定的随机种子产生的一组初始参数,当用户使用虚拟装置训练待训练模型时,能直接使用该初始参数进行训练。
在一些实施例中,参数管理模块530还用于保存多个第一数值和/或多组初始参数,每个第一数值以及每组初始参数都与不同模型有对应关系。参数管理模块530会根据待训练模型的模型信息为待训练模型提供对应的第一数值或对应的初始参数。
在一些实施例中,参数管理模块530中第一数值或每组初始参数与不同模型之间的对应关系可以是用户在虚拟装置中对待训练模型进行训练后,训练设备130向云服务器200上传的。云服务器200还会将根据第一数值或每组初始参数,以及待训练模型的模型信息,记录第一数值或每组初始参数与模型的对应关系,进而,该虚拟装置再次被拉取并需要对待训练模型进行训练时,虚拟装置能使用第一数值或每组初始参数对待训练模型进行训练。
参数管理模块530还用于保存模型训练过程中每次迭代调整后的模型参数,并将每次迭代调整后的模型参数发送给可视化模块540。每次训练后,训练设备130会根据待训练模型的训练结果与样本数据的标签的对比结果,调整待训练模型的模型参数,参数管理模块530将保存每次迭代的训练结果以及调整后的模型参数。进而,用户利用进度追踪软件(例如tuner)可以追踪到当前模型训练的进度。在一些实施例中,训练设备130可以同时训练多个AI模型,参数管理模块530还将分别保存每个AI模型每次迭代的训练结果以及调整后的模型参数。
可视化模块540用于获取每次迭代训练的训练结果,训练结果包括每次迭代调整后的模型参数以及损失函数值,并将训练结果按迭代次数进行可视化展示。具体地,可视化模块540将获取当前迭代训练次数前,每次迭代训练后的训练结果,生成多个第一图像,其中第一图像用于反映各个模型参数组合、损失函数值随迭代次数的变化情况。在模型进行完下一次迭代训练后,将更新各个模型参数,生成新的训练结果,可视化模块540将在第一图像中加入新一轮迭代训练后的训练结果。其中,模型参数组合以及训练结果的可视化可以是根据每次迭代后训练结果与对应的迭代次数绘制的折线图或者散点图等等,例如,将权重随迭代次数的变化用折线图展示,将loss值随迭代次数的变化用折线图展示。
通过可视化模块540可以能尽早观察到梯度爆炸或者梯度消失等梯度无法收敛情况,用户观察到上述情况后,能尽快结束模型训练,不浪费训练时间。其中,梯度用于反映损失函数的变化情况,梯度消失指的就是梯度越来越小,模型参数无法进行更新,梯度爆炸指的就是梯度越来越大,模型参数大幅更新。
综上可知,图2所示的训练设备130在训练模型前,通过在云服务器200拉取待训练模型的虚拟装置镜像,让模型训练在虚拟装置中进行,可以使得不同训练设备运行待训练模型,或者同一训练设备多次运行待训练模型都在相同的环境中。虚拟装置中还包括参数管理模块530,可以为待训练模型提供固定的随机种子,使得每次运行待训练模型,待训练模型的模型参数组合的初始值是相同的。进而,每次运行待训练模型都能产生相同的训练结果。并且,虚拟装置还能可视化模型训练过程中的模型参数以及训练结果,能尽早发现梯度不能收敛的问题。
为了解决AI模型训练可复现性差的问题,减少复现过程中耗费的时间以及人力,本申请提供了一种模型训练的复现方法,通过拉取训练AI模型的虚拟装置以及使用固定随机种子生成模型参数组合,能使每次待训练模型的训练结果相同。并且,本申请还保存模型训练每次迭代调整后的模型参数以及训练结果,并可视化模型参数以及训练结果,能及时发现模型训练中的问题。
下面首先结合图6,对本申请提供的模型训练的复现方法进行解释说明。如图6所示,本申请提供的模型训练的复现方法包括以下步骤:
S610、训练设备130接收用户输入的第一模型的模型信息。
用户在训练设备130中输入第一模型的模型信息,训练设备130接收到用户输入的第一模型的模型信息后,将转发给云服务器200,以供云服务器200根据第一模型的模型信息获取到对应的虚拟装置。其中,用户输入的第一模型的模型信息,还可以是用户根据云服务器200向用户展示的多个虚拟装置的信息,选择其中一个虚拟装置,虚拟装置的信息可以为虚拟装置对应的模型信息,或者虚拟装置的配置信息。
其中,云服务器200中包括多个虚拟装置镜像,不同的待训练模型对应不同的虚拟装置。虚拟装置可以是容器或者虚拟机,或者其他虚拟技术实现的虚拟装置,本申请不作具体限定。关于容器以及虚拟机的结构,可以参考上述图2以及图3的相关描述,此处不再赘述。
具体地,当云服务器200中存在待训练模型对应的虚拟装置时,用户输入的第一模型的模型信息就是待训练模型的模型信息,进而,使用户能直接从云服务器200获取到待训练模型对应的虚拟装置。
当云服务器200中任一虚拟装置都没有对待训练模型训练过的虚拟装置时,即第一模型不是待训练模型,是用户从云服务器200上选择的一个合适的虚拟装置对应的模型。应理解,在用户需要再次对该待训练模型进行训练时,也需要输入第一模型的模型信息,进而选择第一模型对应的虚拟装置对待训练模型进行训练。
在另一些实施例中,云服务器200中任一虚拟装置都没有对待训练模型训练过的虚拟装置时,云服务器200可以为用户新创建一个虚拟装置,虚拟装置的配置可以为预设的默认值,或者用户自己设定的配置参数。进而,在用户需要再次对该待训练模型进行训练时,就能直接从云服务器200上获取该新创建的虚拟装置。
S620、训练设备130根据模型信息从云服务器200拉取对应的虚拟装置,虚拟装置存储有第一模型的初始参数。
云服务器200根据用户输入的第一模型的模型信息,将第一模型对应的虚拟装置发送给训练设备130。可选地,云服务器200也可以是将第一模型对应的虚拟装置镜像发送给训练设备130,虚拟装置镜像中包括虚拟装置运行所需要的可执行文件,依赖软件,库文件,配置文件等等,训练设备130通过虚拟装置镜像,添加一个可读可写层后,就能构建一个虚拟装置。
在一些实施例中,虚拟装置存储有第一数值,根据该第一数值,虚拟装置可以产生一组初始参数。进而,使用该组随机数替换待训练模型的模型参数组合,能使得每次模型训练时初始化的模型参数组合相同。
在一些实施例中,训练设备130获取待训练模型对应的虚拟装置前,还需要安装训练所需的驱动和固件,以及安装CANN。固件和驱动的具体内容可参考关于图2以及图3的相关描述,这里不展开描述。
S630、训练设备130获取待训练模型代码以及样本集。
训练设备130的虚拟装置获取需要进行训练的AI模型以及样本集。待训练模型可以是存储在本地的代码,也可以是从网络上获取的代码。例如,从昇腾模型库ModelZoo网站中下载待训练模型的代码。样本集可以是本地数据库提供的样本集,也可以是远端数据库提供的样本集,例如,华为云对象存储服务(Object Storage Service,OBS)、阿里云对象存储服务(Object Storage Service,OSS)或者亚马逊云服务(Amazon Web Service,AWS)提供的数据集本。应理解,不同来源的样本集的接口不相同,训练设备130还用于将不同数据库的样本集进行封装,为不同来源的数据库添加第一接口,并建立第一接口与各个数据库接口的连接。虚拟装置根据需要获取的样本集信息,确定样本集所属的目标数据库,进而通过第一接口从目标数据库中获取样本集。
S640、训练设备130使用虚拟装置对初始参数对应的神经网络模型进行训练。
训练设备130初始参数替换待训练模型的初始模型参数组合,进而,使得每次模型训练时初始化的模型参数组合相同。
在一些实施例中,虚拟装置是第一次对第一模型进行训练的情况下,虚拟装置将获取用户提供的初始参数对第一模型进行训练,或者获取用户提供的第一数值,生成一组初始参数对第一模型进行训练。虚拟装置将向云服务器200上传用户提供的第一数值或初始参数,以供云服务器200记录虚拟装置与第一模型信息之间的对应关系,使得虚拟装置再次进行模型训练时能为第一模型提供初始参数。
S650、训练设备130将每次迭代的模型参数组合以及训练结果进行可视化。
训练设备130将根据初始参数在虚拟装置中对待训练模型进行训练,每次训练后,训练设备130会根据待训练模型的输出结果与样本数据的标签的对比结果,调整待训练模型的模型参数。虚拟装置将保存每次迭代的训练结果,并将训练结果进行可视化。
具体地,虚拟装置将获取当前迭代训练次数前,每次迭代训练后的模型参数组合和训练结果,生成多个第一图像,其中第一图像用于反映各个模型参数组合、训练结果随迭代次数的变化情况。在模型进行完下一次迭代训练后,将生成新的训练结果,以及更新各个模型参数,将在第一图像中加入新一轮迭代训练后的训练结果和调整后的各个模型参数。其中,模型参数组合以及训练结果的可视化可以是根据每次迭代后模型参数和训练结果与对应的迭代次数绘制的折线图或者散点图等等,例如,将权重随迭代次数的变化用折线图展示,将loss值随迭代次数的变化用折线图展示。具体内容可参考上述图5中相关描述,此处不再赘述。
综上可知,本申请提供的模型训练的复现方法,通过训练设备130在云服务器200拉取待训练模型的虚拟装置镜像,让模型训练在虚拟装置中进行,可以使得不同训练设备或者同一训练设备在每次运行待训练模型都在相同的环境中。并且,本申请提供的方法为待训练模型提供固定的随机种子,使得每次运行待训练模型,待训练模型的模型参数组合的初始值是相同的。进而,每次运行待训练模型都能产生相同的训练结果。训练设备130的虚拟装置还能保存每次迭代的模型参数组合以及训练结果,并可视化模型训练过程中的模型参数以及训练结果,能尽早发现梯度不能收敛的问题。
为便于理解本申请实施例所提方案的有益效果,示例性地,以图7A-图7E所示的界面对用户使用训练设备130从云服务器200的镜像仓库220中拉取虚拟装置镜像,并在虚拟装置中进行模型训练的过程进行了说明。
图7A示例性示出了训练设备130上用于展示镜像仓库目录的示例性界面70,界面70包括输入框701以及显示框702。其中,用户可以在输入框701中输入需要获取的虚拟装置的相关信息。显示框702中显示了镜像仓库220中的虚拟装置镜像的信息,包括虚拟装置镜像的名称、提供者、描述、下载地址以及编号等等。用户可以根据上述虚拟装置镜像的信息,从虚拟装置镜像对应的下载地址下载该虚拟装置镜像。例如,用户需要对模型A进行复现,则从获取虚拟装置A对应的下载地址可以将虚拟装置A的镜像下载到本地。
图7B示例性示出了利用虚拟装置进行模型训练的示例性界面71,界面71包括输入框703、控件704、输入框705、输入框706以及控件707。用户可以在输入框703中输入本次模型训练的训练任务名称;在控件704选择待训练模型的代码来源,其中,可以选择代码来源为本地或者云端,并在输入框705中输入训练代码的地址;用户在输入框706中可以输入样本集的来源;完成上述内容的输入后,点击控件707可以在虚拟装置A中进行模型训练。应理解,图7B为示例性的图形化界面,在一些实施例中,利用虚拟装置进行模型训练也可以是输入命令行进行的。
图7C示例性展示了虚拟装置A进行训练的界面72,包括显示框708、显示框709、控件710和控件711。显示框708中显示了训练任务名称,显示框709中显示了已训练时长,点击控件710可以查看训练日志,点击控件711可以查看训练的实时可视化图像。
图7D示例性展示了用户点击控件710后,虚拟装置A展示模型训练保存的训练日志的界面73。其中,保存的日志(logger)的输出目录(outputs)中包括训练时间年月日(例如2021-03-21),并按每次迭代训练时间的时分秒(例如11-52-35以及11-57-55)保存了训练的模型参数(例如.hydra)、训练参数日志(例如test_hydra.log)、算子(例如kernel-meta)以及训练结果(例如checkpoint_rank0),如果样本集为图像,还包括当前迭代的输出图像(例如somas)。其中,模型参数下包括的文件具体还可以包括config.yaml、hydra.yaml、overrides.yaml等。
图7E示例性展示了用户点击控件711后,虚拟装置中显示训练的实时可视化图像的界面74,其中,图7E中示例性展示了准确率(accuracy)、损失值(loss)以及权重W、S随迭代次数的变化曲线。
为了解决AI模型训练可复现性差的问题,减少复现过程中耗费的时间以及人力,本申请提供了一种模型训练的复现装置,如图8所示,所述模型训练的复现装置包括接收单元810、获取单元820、训练单元830、发送单元840以及生成单元850。
接收单元810用于接收第一用户输入的第一模型的模型信息;获取单元820用于根据模型信息从云服务器200拉取对应的虚拟装置,虚拟装置存储有第一模型的初始参数;训练单元830用于使用虚拟装置对初始参数对应的神经网络模型进行训练。
在一些实施例中,云服务器200包括多个虚拟装置,不同虚拟装置存储不同的初始参数。
在一些实施例中,接收单元810还用于接收第二用户输入的第一模型的模型信息,第二用户与第一用户为同一用户,或者第二用户与第一用户为不同用户;获取单元820还用于从云服务器200拉取虚拟装置,使用第一数值生成第一模型的初始参数;训练单元830还用于使用虚拟装置对第一模型进行训练;模型训练的复现装置还包括发送单元840,发送单元840用于向云服务器200发送第一数值,以供云服务器200将第一模型的初始参数存储至虚拟装置并记录虚拟装置与第一模型信息之间的对应关系。
在一些实施例中,虚拟装置包括容器或者虚拟机。
在一些实施例中,训练单元830还用于使用虚拟装置对模型进行多次迭代训练,向第一用户显示每次迭代训练的训练结果,每次迭代训练的训练结果包括所述神经网络模型每次迭代训练的模型参数、损失函数值。
在一些实施例中,发送单元840还用于向第一接口发送样本集信息,样本集信息包括样本集所属的目标数据库的信息,第一接口用于根据样本集信息从目标数据库中获取对应的样本集;接收单元810还用于接收第一接口发送的样本集;训练单元830还用于使用虚拟装置和样本集对初始参数对应的神经网络模型进行训练。
在一些实施例中,获取单元820还用于根据模型信息从云服务器200拉取对应的虚拟装置镜像,虚拟装置镜像包括虚拟装置的配置文件;模型训练的复现装置还包括生成单元850,生成单元850用于根据虚拟装置镜像,生成虚拟装置。
图9是本申请提供的一种计算设备900的结构示意图,该计算设备900可以是前述内容中训练设备130或者云服务器200。如图9所示,计算设备900包括:处理器910、通信接口920以及存储器930。其中,处理器910、通信接口920以及存储器930可以通过内部总线940相互连接,也可通过无线传输等其他手段实现通信。
处理器910可以由至少一个通用处理器构成,例如中央处理器(CentralProcessingUnit,CPU),或者CPU和硬件芯片的组合。上述硬件芯片可以是专用集成电路(Application-SpecificIntegratedCircuit,ASIC)、可编程逻辑器件(ProgrammableLogicDevice,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(ComplexProgrammableLogicDevice,CPLD)、现场可编程逻辑门阵列(Field-ProgrammableGateArray,FPGA)、通用阵列逻辑(GenericArrayLogic,GAL)或其任意组合。处理器910执行各种类型的数字存储指令,例如存储在存储器930中的软件或者固件程序,它能使计算设备900提供多种服务。
存储器930用于存储程序代码,并由处理器910来控制执行,以执行上述实施例中模型训练的复现方法的处理步骤。程序代码中可以包括一个或多个软件模块,这一个或多个软件模块可以为图8实施例中提供的软件模块,如接收单元、获取单元、训练单元、发送单元以及生成单元:接收单元用于接收第一用户输入的第一模型的模型信息;获取单元用于根据模型信息从云服务器拉取对应的虚拟装置,虚拟装置存储有第一模型的初始参数;训练单元用于使用虚拟装置对初始参数对应的神经网络模型进行训练;发送单元还包括向第一接口发送样本集信息;生成单元用于根据虚拟装置镜像,生成虚拟装置。具体可用于执行图6实施例中的S610-步骤S650及其可选步骤,这里不再进行赘述。
需要说明的是,本实施例可以是通用的物理服务器实现的,例如,ARM服务器或者X86服务器,也可以是基于通用的物理服务器结合NFV技术实现的虚拟机实现的,虚拟机指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统,本申请不作具体限定。
存储器930可以包括易失性存储器(VolatileMemory),例如随机存取存储器(RandomAccessMemory,RAM);存储器1030也可以包括非易失性存储器(Non-VolatileMemory),例如只读存储器(Read-OnlyMemory,ROM)、快闪存储器(FlashMemory)、硬盘(Hard DiskDrive,HDD)或固态硬盘(Solid-StateDrive,SSD);存储器930还可以包括上述种类的组合。存储器930可以存储有程序代码,具体可用于执行图6实施例中的S610-步骤S650及其可选步骤,这里不再进行赘述。
通信接口920可以为有线接口(例如以太网接口),可以为内部接口(例如高速串行计算机扩展总线(PeripheralComponentInterconnectexpress,PCIe)总线接口)、有线接口(例如以太网接口)或无线接口(例如蜂窝网络接口或使用无线局域网接口),用于与其他设备或模块进行通信。
总线940可以是快捷外围部件互连标准(PeripheralComponentInterconnectExpress,PCIe)总线,或扩展工业标准结构(extendedindustrystandardarchitecture,EISA)总线、统一总线(unifiedbus,Ubus或UB)、计算机快速链接(computeexpresslink,CXL)、缓存一致互联协议(cachecoherentinterconnectforaccelerators,CCIX)等。总线940可以分为地址总线、数据总线、控制总线等。总线940除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线940。
需要说明的,图9仅仅是本申请实施例的一种可能的实现方式,实际应用中,计算设备900还可以包括更多或更少的部件,这里不作限制。关于本申请实施例中未示出或未描述的内容,可参见前述图6实施例中的相关阐述,这里不再赘述。
应理解,图9所示的计算设备还可以是至少一个服务器构成的计算机集群,本申请不作具体限定。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在处理器上运行时,图6所示的方法流程得以实现。
本申请实施例还提供一种计算机程序产品,当计算机程序产品在处理器上运行时,图6所示的方法流程得以实现。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DigitalSubscriberLine,DSL)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,高密度数字视频光盘(DigitalVideoDisc,DVD)、或者半导体介质。半导体介质可以是SSD。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
上述详细阐述了本申请实施例的方法,为了便于更好的实施本申请实施例上述方案,相应地,下面还提供用于配合实施上述方案的相关设备。

Claims (23)

1.一种模型训练的复现方法,其特征在于,所述方法包括:
训练设备接收第一用户输入的第一模型的模型信息;
根据所述模型信息从云服务器拉取对应的虚拟装置,所述虚拟装置存储有所述第一模型的初始参数;
使用所述虚拟装置对所述初始参数对应的神经网络模型进行训练。
2.根据权利要求1所述的方法,其特征在于,
所述云服务器包括多个虚拟装置,其中,不同虚拟装置存储不同的初始参数。
3.根据权利要求2所述的方法,其特征在于,在所述训练设备接收第一用户输入的第一模型的模型信息之前,还包括:
接收第二用户输入的所述第一模型的模型信息,所述第二用户与所述第一用户为同一用户,或者所述第二用户与所述第一用户为不同用户;
从所述云服务器拉取所述虚拟装置,使用第一数值生成所述第一模型的初始参数;
使用所述虚拟装置对所述第一模型进行训练;
向所述云服务器发送所述第一数值,以供所述云服务器将所述第一模型的初始参数存储至所述虚拟装置并记录所述虚拟装置与所述第一模型信息之间的对应关系。
4.根据权利要求3所述的方法,其特征在于,所述虚拟装置包括容器或者虚拟机。
5.根据权利要求4所述的方法,其特征在于,使用所述虚拟装置对所述初始参数对应的神经网络模型进行训练,包括:
使用所述虚拟装置对所述神经网络模型进行多次迭代训练,向所述第一用户显示每次迭代训练的训练结果,所述每次迭代训练的训练结果包括所述神经网络模型每次迭代训练后的模型参数和损失函数值。
6.根据权利要求5所述的方法,其特征在于,在所述使用所述虚拟装置对所述初始参数对应的神经网络模型进行训练之前,所述方法还包括:
向第一接口发送样本集信息,所述样本集信息包括样本集所属的目标数据库的信息,所述第一接口用于根据所述样本集信息从所述目标数据库中获取对应的样本集;
接收所述第一接口发送的所述样本集;
所述使用所述虚拟装置对所述初始参数对应的神经网络模型进行训练,包括:
使用所述虚拟装置和所述样本集对所述初始参数对应的神经网络模型进行训练。
7.根据权利要求1-6任一所述的方法,其特征在于,根据所述模型信息从云服务器拉取对应的虚拟装置,包括:
根据所述模型信息从所述云服务器拉取对应的虚拟装置镜像,所述虚拟装置镜像包括所述虚拟装置的配置文件;
根据所述虚拟装置镜像,生成所述虚拟装置。
8.一种模型训练的复现方法,其特征在于,所述方法包括:
云服务器接收训练设备转发的第一用户输入的第一模型的模型信息;
根据所述模型信息向所述训练设备发送对应的虚拟装置,所述虚拟装置存储有所述第一模型的初始参数,所述虚拟装置用于对所述初始参数对应的神经网络模型进行训练。
9.根据权利要求8所述的方法,其特征在于,
所述云服务器包括多个虚拟装置,其中,不同虚拟装置存储不同的初始参数。
10.根据权利要求9所述的方法,其特征在于,在所述云服务器接收训练设备转发的第一用户输入的第一模型的模型信息之前,还包括:
所述云服务器接收所述训练设备转发的第二用户输入的所述第一模型信息,所述第二用户与所述第一用户为同一用户,或者所述第二用户与所述第一用户为不同用户;
向所述训练设备发送所述虚拟装置,以供所述训练设备使用第一数值生成所述第一模型的初始参数;
接收所述训练设备发送的所述第一数值;
将所述第一模型的初始参数存储至所述虚拟装置并记录所述虚拟装置与所述第一模型信息之间的对应关系。
11.根据权利要求10所述的方法,其特征在于,所述虚拟装置包括容器或者虚拟机。
12.根据权利要求8-11任一所述的方法,其特征在于,根据所述模型信息向所述训练设备发送对应的虚拟装置,包括:
根据所述模型信息向所述训练设备发送对应的虚拟装置镜像,所述虚拟装置镜像包括所述虚拟装置的配置文件,以供所述训练设备根据所述虚拟装置镜像,生成所述虚拟装置。
13.一种模型训练的复现系统,其特征在于,所述系统包括训练设备和云服务器,其中,所述训练设备用于实现如权利要求1-7任一权利要求所述的方法,所述云服务器用于实现如权利要求8-12任一权利要求所述的方法。
14.一种模型训练的复现装置,其特征在于,包括接收单元、获取单元以及训练单元,
所述接收单元用于接收第一用户输入的第一模型的模型信息;
所述获取单元用于根据所述模型信息从云服务器拉取对应的虚拟装置,所述虚拟装置存储有所述第一模型的初始参数;
所述训练单元用于使用所述虚拟装置对所述初始参数对应的神经网络模型进行训练。
15.根据权利要求14所述的装置,其特征在于,
所述云服务器包括多个虚拟装置,其中,不同虚拟装置存储不同的初始参数。
16.根据权利要求15所述的装置,其特征在于,
所述接收单元还用于接收第二用户输入的所述第一模型的模型信息,所述第二用户与所述第一用户为同一用户,或者所述第二用户与所述第一用户为不同用户;
所述获取单元还用于从所述云服务器拉取所述虚拟装置,使用第一数值生成所述第一模型的初始参数;
所述训练单元还用于使用所述虚拟装置对所述第一模型进行训练;
所述模型训练的复现装置还包括发送单元,所述发送单元用于向所述云服务器发送所述第一数值,以供所述云服务器将所述第一模型的初始参数存储至所述虚拟装置并记录所述虚拟装置与所述第一模型信息之间的对应关系。
17.根据权利要求16所述的装置,其特征在于,所述虚拟装置包括容器或者虚拟机。
18.根据权利要求17所述的装置,其特征在于,
所述训练单元还用于使用所述虚拟装置对所述神经网络模型进行多次迭代训练,向所述第一用户显示每次迭代训练的训练结果,所述每次迭代训练的训练结果包括所述神经网络模型每次迭代训练后的模型参数和损失函数值。
19.根据权利要求18所述的装置,其特征在于,
所述发送单元还用于向第一接口发送所述样本集信息,样本集信息包括所述样本集所属的目标数据库的信息,所述第一接口用于根据所述样本集信息从所述目标数据库中获取对应的样本集;
所述接收单元还用于接收所述第一接口发送的所述样本集;
所述训练单元还用于使用所述虚拟装置和所述样本集对所述初始参数对应的神经网络模型进行训练。
20.根据权利要求14-19任一所述的装置,其特征在于,
所述获取单元还用于根据所述模型信息从所述云服务器拉取对应的虚拟装置镜像,所述虚拟装置镜像包括所述虚拟装置的配置文件;
所述模型训练的复现装置还包括生成单元,所述生成单元用于根据所述虚拟装置镜像,生成所述虚拟装置。
21.一种计算机可读存储介质,其特征在于,包括指令,当所述指令在计算设备上运行时,使得所述计算设备执行如权利要求1至7,或权利要求8至12任一权利要求所述的方法。
22.一种计算设备,其特征在于,包括处理器和存储器,所述处理器执行所述存储器中的代码执行如权利要求1至7,或权利要求8至12任一权利要求所述的方法。
23.一种计算机程序产品,其特征在于,包括计算机程序,当所述计算机程序被计算设备读取并执行时,使得所述计算设备执行如权利要求1至7,或权利要求8至12任一权利要求所述的方法。
CN202111441777.8A 2021-11-27 2021-11-27 一种模型训练的复现方法、系统、装置以及相关设备 Pending CN116204272A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111441777.8A CN116204272A (zh) 2021-11-27 2021-11-27 一种模型训练的复现方法、系统、装置以及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111441777.8A CN116204272A (zh) 2021-11-27 2021-11-27 一种模型训练的复现方法、系统、装置以及相关设备

Publications (1)

Publication Number Publication Date
CN116204272A true CN116204272A (zh) 2023-06-02

Family

ID=86515128

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111441777.8A Pending CN116204272A (zh) 2021-11-27 2021-11-27 一种模型训练的复现方法、系统、装置以及相关设备

Country Status (1)

Country Link
CN (1) CN116204272A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117812604A (zh) * 2024-02-28 2024-04-02 荣耀终端有限公司 通信方法、系统及相关设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117812604A (zh) * 2024-02-28 2024-04-02 荣耀终端有限公司 通信方法、系统及相关设备

Similar Documents

Publication Publication Date Title
US10719301B1 (en) Development environment for machine learning media models
US20230195845A1 (en) Fast annotation of samples for machine learning model development
US11537506B1 (en) System for visually diagnosing machine learning models
US11366683B2 (en) Images deployment system across multiple architectures
US11379718B2 (en) Ground truth quality for machine learning models
US11790239B2 (en) Deep learning testing
US11544566B2 (en) Deep learning model insights using provenance data
US11176019B2 (en) Automated breakpoint creation
US11061739B2 (en) Dynamic infrastructure management and processing
US11474892B2 (en) Graph-based log sequence anomaly detection and problem diagnosis
WO2021224720A1 (en) Determining multivariate time series data dependencies
US20230034173A1 (en) Incident resolution
US20180225357A1 (en) Self-improving classification
CN113448678A (zh) 应用信息生成方法、部署方法及装置、系统、存储介质
US11055204B2 (en) Automated software testing using simulated user personas
CN109254830A (zh) 深度学习系统中可视化管理方法和装置
US20180330230A1 (en) Remote neural network processing for guideline identification
CN116204272A (zh) 一种模型训练的复现方法、系统、装置以及相关设备
CN114064079A (zh) 算法应用元的打包方法及装置、设备、存储介质
WO2022037985A1 (en) Generating organic synthesis procedures from simplified molecular-input line-entry system reaction
US11210108B2 (en) Guiding the installation process of sensor-based devices
US20240061674A1 (en) Application transition and transformation
US20210149793A1 (en) Weighted code coverage
CN112416700A (zh) 分析启动的预测性故障和smart日志
CN111459506A (zh) 深度学习平台集群的部署方法、装置、介质及电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication