CN112783520A - 执行方法、装置、电子设备及存储介质 - Google Patents

执行方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN112783520A
CN112783520A CN201911067981.0A CN201911067981A CN112783520A CN 112783520 A CN112783520 A CN 112783520A CN 201911067981 A CN201911067981 A CN 201911067981A CN 112783520 A CN112783520 A CN 112783520A
Authority
CN
China
Prior art keywords
execution
computing unit
machine learning
execution information
learning model
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
CN201911067981.0A
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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201911067981.0A priority Critical patent/CN112783520A/zh
Publication of CN112783520A publication Critical patent/CN112783520A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)

Abstract

本公开实施例公开了一种执行方法、装置、电子设备及存储介质,所述方法包括:在遍历执行机器学习模型时,将当前被遍历的计算单元与预设映射信息进行匹配;其中,所述预设映射信息中包括所述机器学习模型中预设计算单元与第一执行信息之间的映射关系;在匹配成功后,根据所述预设映射信息获取与当前被遍历的所述计算单元具有映射关系的第一执行信息;根据所述第一执行信息执行当前被遍历的所述计算单元。该技术方案,能够使得机器学习模型有更新之后,无需增发新的应用版本,从而大大降低了成本。

Description

执行方法、装置、电子设备及存储介质
技术领域
本公开涉及计算机技术领域,具体涉及一种执行方法、装置、电子设备及存储介质。
背景技术
随着技术的发展,人工智能的应用越来越广泛。机器学习作为人工智能的一种实现,越来越多的被应用到各个技术领域。在机器学习应用中,通常会利用训练样本训练一个机器学习模型,然后将该训练好的机器学习模型部署到硬件平台,通过在该硬件平台上执行该机器学习模型来实现相应的功能。机器学习模型可以包括多个计算单元,输入至机器学习模型的数据被输入至这些计算单元进行处理之后,得到机器学习模型的输出结果。在应用过程中,一旦封装机器学习模型的应用程序被发布之后,如果需要扩充计算单元或者已有的计算单元需要修改时,则需要重新增发更新后的应用版本,但是增发应用版本的成本较高,如何在不增加成本的前提下更新机器学习模型是当前亟需解决的问题之一。
发明内容
本公开实施例提供一种执行方法、装置、电子设备及计算机可读存储介质。
第一方面,本公开实施例中提供了一种执行方法,包括:
在遍历执行机器学习模型的过程中,当前被遍历的计算单元为动态计算单元时,确定所述动态计算单元对应的预设更新位置;
从所述预设更新位置获取所述动态计算单元的第一执行信息;
根据所述第一执行信息执行当前被遍历的所述计算单元。
进一步地,还包括:
在当前被遍历的计算单元为非动态计算单元时,从所述机器学习模型中获取当前被遍历的所述计算单元的第二执行信息;
根据所述第二执行信息执行当前被遍历的所述计算单元。
进一步地,确定所述动态计算单元对应的预设更新位置,包括:
将所述动态计算单元与预设映射信息进行匹配;
根据匹配结果获取所述动态计算单元对应的所述预设更新位置。
进一步地,所述第一执行信息包括shader程序和所述shader程序的运行参数;根据所述第一执行信息执行当前被遍历的所述计算单元,包括:
利用所述运行参数对所述shader程序进行配置,并在GPU上加载执行所述shader程序。
进一步地,所述第一执行信息包括动态库;根据所述第一执行信息执行当前被遍历的所述计算单元,包括:
在CPU的即时编辑环境下加载执行所述动态库。
进一步地,所述第一执行信息包括脚本程序;根据所述第一执行信息执行当前被遍历的所述计算单元,包括:
在CPU的虚拟机环境下加载执行所述脚本程序。
进一步地,还包括:
获取所述机器学习模型的更新数据;其中,所述更新数据包括所述预设映射信息和所述第一执行信息;
存储所述更新数据。
第二方面,本公开实施例中提供了一种执行方法,包括:
在遍历执行机器学习模型时,将当前被遍历的计算单元与预设映射信息进行匹配;其中,所述预设映射信息中包括所述机器学习模型中预设计算单元与第一执行信息之间的映射关系;
在匹配成功后,根据所述预设映射信息获取与当前被遍历的所述计算单元具有映射关系的第一执行信息;
根据所述第一执行信息执行当前被遍历的所述计算单元。
进一步地,还包括:
在匹配失败后,从所述机器学习模型中获取当前被遍历的所述计算单元的第二执行信息;
根据所述第二执行信息执行当前被遍历的所述计算单元。
进一步地,根据所述预设映射信息获取与当前被遍历的所述计算单元具有映射关系的第一执行信息,包括:
根据所述预设映射信息确定所述第一执行信息的获取方式;其中,所述获取方式包括所述第一执行信息的标识和/或存储位置;
根据所述第一执行信息的标识和/或存储位置从本地存储设备获取所述第一执行信息。
进一步地,所述第一执行信息包括shader程序和所述shader程序的运行参数;根据所述第一执行信息执行当前被遍历的所述计算单元,包括:
利用所述运行参数对所述shader程序进行配置,并在GPU上加载执行所述shader程序。
进一步地,所述第一执行信息包括动态库;根据所述第一执行信息执行当前被遍历的所述计算单元,包括:
在CPU的即时编辑环境下加载执行所述动态库。
进一步地,所述第一执行信息包括脚本程序;根据所述第一执行信息执行当前被遍历的所述计算单元,包括:
在CPU的虚拟机环境下加载执行所述脚本程序。
进一步地,还包括:
获取所述机器学习模型的更新数据;其中,所述更新数据包括所述预设映射信息和所述第一执行信息;
存储所述更新数据。
第三方面,本公开实施例中提供了一种更新方法,包括:
获取所述机器学习模型的更新数据;其中,所述更新数据包括所述机器学习模型中至少一个动态计算单元对应的第一执行信息;
根据所述更新数据重新部署所述机器学习模型;
响应于对所述机器学习模型的执行请求,遍历执行所述机器学习模型,并在当前被遍历的计算单元为所述动态计算单元时,获取所述动态计算单元对应的所述第一执行信息,以及根据所述第一执行信息执行当前被遍历的所述计算单元。
进一步地,还包括:
在当前被遍历的计算单元为非动态执行单元时,执行当前被遍历的所述计算单元对应的第二执行信息;其中,所述第二执行信息位于所述机器学习模型中。
进一步地,所述第一执行信息包括shader程序和所述shader程序的运行参数;根据所述第一执行信息执行当前被遍历的所述计算单元,包括:
利用所述运行参数对所述shader程序进行配置,并在GPU上加载执行所述shader程序。
进一步地,所述第一执行信息包括动态库;根据所述第一执行信息执行当前被遍历的所述计算单元,包括:
在CPU的即时编辑环境下加载执行所述动态库。
进一步地,所述第一执行信息包括脚本程序;根据所述第一执行信息执行当前被遍历的所述计算单元,包括:
在CPU的虚拟机环境下加载执行所述脚本程序。
第四方面,本公开实施例中提供了一种更新方法,包括:
获取所述机器学习模型的更新数据;其中,所述更新数据包括预设映射信息以及第一执行信息;所述预设映射信息包括所述第一执行信息与所述机器学习模型中的预设计算单元之间的映射关系;
根据所述更新数据重新部署所述机器学习模型;
响应于对所述机器学习模型的执行请求,遍历执行所述机器学习模型,并在当前被遍历的计算单元与所述预设映射信息中的所述预设计算单元相匹配时,根据所述第一执行信息执行当前被遍历的所述计算单元。
进一步地,还包括:
在当前被遍历的计算单元与所述预设映射信息中的所述预设计算单元不匹配时,执行当前被遍历的所述计算单元对应的第二执行信息;其中,所述第二执行信息位于所述机器学习模型中。
进一步地,所述第一执行信息包括shader程序和所述shader程序的运行参数;根据所述第一执行信息执行当前被遍历的所述计算单元,包括:
利用所述运行参数对所述shader程序进行配置,并在GPU上加载执行所述shader程序。
进一步地,所述第一执行信息包括动态库;根据所述第一执行信息执行当前被遍历的所述计算单元,包括:
在CPU的即时编辑环境下加载执行所述动态库。
进一步地,所述第一执行信息包括脚本程序;根据所述第一执行信息执行当前被遍历的所述计算单元,包括:
在CPU的虚拟机环境下加载执行所述脚本程序。
第五方面,本发明实施例中提供了一种执行装置,包括:
第一确定模块,被配置为在遍历执行机器学习模型的过程中,当前被遍历的计算单元为动态计算单元时,确定所述动态计算单元对应的预设更新位置;
第一获取模块,被配置为从所述预设更新位置获取所述动态计算单元的第一执行信息;
第一执行模块,被配置为根据所述第一执行信息执行当前被遍历的所述计算单元。
进一步地,还包括:
第二获取模块,被配置为在当前被遍历的计算单元为非动态计算单元时,从所述机器学习模型中获取当前被遍历的所述计算单元的第二执行信息;
第二执行模块,被配置为根据所述第二执行信息执行当前被遍历的所述计算单元。
进一步地,所述第一确定模块,包括:
第一匹配子模块,被配置为将所述动态计算单元与预设映射信息进行匹配;
第一获取子模块,被配置为根据匹配结果获取所述动态计算单元对应的所述预设更新位置。
进一步地,所述第一执行信息包括shader程序和所述shader程序的运行参数;所述第一执行模块,包括:
第一执行子模块,被配置为利用所述运行参数对所述shader程序进行配置,并在GPU上加载执行所述shader程序。
进一步地,所述第一执行信息包括动态库;所述第一执行模块,包括:
第二执行子模块,被配置为在CPU的即时编辑环境下加载执行所述动态库。
进一步地,所述第一执行信息包括脚本程序;所述第一执行模块,包括:
第三执行子模块,被配置为在CPU的虚拟机环境下加载执行所述脚本程序。
进一步地,还包括:
第三获取模块,被配置为获取所述机器学习模型的更新数据;其中,所述更新数据包括所述预设映射信息和所述第一执行信息;
第一存储模块,被配置为存储所述更新数据。
第六方面,本发明实施例中提供了一种执行装置,包括:
匹配模块,被配置为在遍历执行机器学习模型时,将当前被遍历的计算单元与预设映射信息进行匹配;其中,所述预设映射信息中包括所述机器学习模型中预设计算单元与第一执行信息之间的映射关系;
第四获取模块,被配置为在匹配成功后,根据所述预设映射信息获取与当前被遍历的所述计算单元具有映射关系的第一执行信息;
第三执行模块,被配置为根据所述第一执行信息执行当前被遍历的所述计算单元。
进一步地,还包括:
第五获取模块,被配置为在匹配失败后,从所述机器学习模型中获取当前被遍历的所述计算单元的第二执行信息;
第四执行模块,被配置为根据所述第二执行信息执行当前被遍历的所述计算单元。
进一步地,所述第四获取模块,包括:
第一确定子模块,被配置为根据所述预设映射信息确定所述第一执行信息的获取方式;其中,所述获取方式包括所述第一执行信息的标识和/或存储位置;
第二获取子模块,被配置为根据所述第一执行信息的标识和/或存储位置从本地存储设备获取所述第一执行信息。
进一步地,所述第一执行信息包括shader程序和所述shader程序的运行参数;所述第三执行模块,包括:
第四执行子模块,被配置为利用所述运行参数对所述shader程序进行配置,并在GPU上加载执行所述shader程序。
进一步地,所述第一执行信息包括动态库;所述第三执行模块,包括:
第五执行子模块,被配置为在CPU的即时编辑环境下加载执行所述动态库。
进一步地,所述第一执行信息包括脚本程序;所述第三执行模块,包括:
第六执行子模块,被配置为在CPU的虚拟机环境下加载执行所述脚本程序。
进一步地,还包括:
第六获取模块,被配置为获取所述机器学习模型的更新数据;其中,所述更新数据包括所述预设映射信息和所述第一执行信息;
第二存储模块,被配置为存储所述更新数据。
第七方面,本发明实施例中提供了一种更新装置,包括:
第七获取模块,被配置为获取所述机器学习模型的更新数据;其中,所述更新数据包括所述机器学习模型中至少一个动态计算单元对应的第一执行信息;
第一部署模块,被配置为根据所述更新数据重新部署所述机器学习模型;
第五执行模块,被配置为响应于对所述机器学习模型的执行请求,遍历执行所述机器学习模型,并在当前被遍历的计算单元为所述动态计算单元时,获取所述动态计算单元对应的所述第一执行信息,以及根据所述第一执行信息执行当前被遍历的所述计算单元。
进一步地,还包括:
第六执行模块,被配置为在当前被遍历的计算单元为非动态执行单元时,执行当前被遍历的所述计算单元对应的第二执行信息;其中,所述第二执行信息位于所述机器学习模型中。
进一步地,所述第一执行信息包括shader程序和所述shader程序的运行参数;所述第五执行模块,包括:
第七执行子模块,被配置为利用所述运行参数对所述shader程序进行配置,并在GPU上加载执行所述shader程序。
进一步地,所述第一执行信息包括动态库;所述第五执行模块,包括:
第八执行子模块,被配置为在CPU的即时编辑环境下加载执行所述动态库。
进一步地,所述第一执行信息包括脚本程序;所述第五执行模块,包括:
第九执行子模块,被配置为在CPU的虚拟机环境下加载执行所述脚本程序。
第八方面,本发明实施例中提供了一种更新装置,包括:
第八获取模块,被配置为获取所述机器学习模型的更新数据;其中,所述更新数据包括预设映射信息以及第一执行信息;所述预设映射信息包括所述第一执行信息与所述机器学习模型中的预设计算单元之间的映射关系;
第二部署模块,被配置为根据所述更新数据重新部署所述机器学习模型;
第七执行模块,被配置为响应于对所述机器学习模型的执行请求,遍历执行所述机器学习模型,并在当前被遍历的计算单元与所述预设映射信息中的所述预设计算单元相匹配时,根据所述第一执行信息执行当前被遍历的所述计算单元。
进一步地,还包括:
第八执行模块,被配置为在当前被遍历的计算单元与所述预设映射信息中的所述预设计算单元不匹配时,执行当前被遍历的所述计算单元对应的第二执行信息;其中,所述第二执行信息位于所述机器学习模型中。
进一步地,所述第一执行信息包括shader程序和所述shader程序的运行参数;所述第七执行模块,包括:
第十执行子模块,被配置为利用所述运行参数对所述shader程序进行配置,并在GPU上加载执行所述shader程序。
进一步地,所述第一执行信息包括动态库;所述第七执行模块,包括:
第十一执行子模块,被配置为在CPU的即时编辑环境下加载执行所述动态库。
进一步地,所述第一执行信息包括脚本程序;所述第七执行模块,包括:
第十二执行子模块,被配置为在CPU的虚拟机环境下加载执行所述脚本程序。
所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
在一个可能的设计中,执行装置或者更新装置的结构中包括存储器和处理器,所述存储器用于存储一条或多条支持执行装置或者更新装置执行上述任一方法的计算机指令,所述处理器被配置为用于执行所述存储器中存储的计算机指令。所述执行装置或者更新装置还可以包括通信接口,用于执行装置或者更新装置与其他设备或通信网络通信。
第九方面,本公开实施例提供了一种电子设备,包括存储器和处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现上述任一方面所述的方法。
第十方面,本公开实施例提供了一种计算机可读存储介质,用于存储企业账户的安全认证装置所用的计算机指令,其包含用于执行上述任一方面所述方法所涉及的计算机指令。
本公开实施例提供的技术方案可以包括以下有益效果:
本公开实施例在机器学习模型的遍历执行过程中,当前被遍历的计算单元为动态计算单元时,确定动态计算单元对应的预设更新位置,并从预设更新位置获取该动态计算单元的第一执行信息,并根据第一执行信息执行当前被遍历的计算单元。通过这种方式,在动态执行单元的执行逻辑发生变化时,可以将发生变化后的执行逻辑部署到预设更新位置处,而机器学习模型在被遍历执行时可以从预设更新位置处获取并执行更新后的执行逻辑,能够使得如客户端等机器学习模型的应用场景中,机器学习模型发生更新之后,无需增发新的应用版本,从而大大降低了成本。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
结合附图,通过以下非限制性实施方式的详细描述,本公开的其它特征、目的和优点将变得更加明显。在附图中:
图1示出了根据本公开一实施方式的更新机器学习模型的完整流程示意图;
图2示出根据本公开一实施方式的执行方法的流程图;
图3示出根据本公开一实施方式中执行未更新计算单元部分的流程图;
图4示出根据图2所示实施方式的步骤S202的流程图;
图5示出根据本公开一实施方式的更新方法的流程图;
图6示出根据本公开另一实施方式的执行方法的流程图;
图7示出根据本公开另一实施方式的更新方法的流程图;
图8示出根据本公开一实施方式的执行装置的结构框图;
图9示出根据本公开另一实施方式的执行装置的结构框图;
图10示出根据本公开一实施方式中执行未更新计算单元部分的结构框图;
图11示出根据图9所示实施方式的第四获取模块902的结构框图;
图12示出根据本公开一实施方式的更新后的机器学习模型重新部署部分的结构框图;
图13示出根据本公开一实施方式的更新装置的结构框图;
图14示出根据本公开另一实施方式的更新装置的结构框图;
图15是适于用来实现根据本公开一实施方式的执行方法或更新方法的电子设备的结构示意图。
具体实施方式
下文中,将参考附图详细描述本公开的示例性实施方式,以使本领域技术人员可容易地实现它们。此外,为了清楚起见,在附图中省略了与描述示例性实施方式无关的部分。
在本公开中,应理解,诸如“包括”或“具有”等的术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不欲排除一个或多个其他特征、数字、步骤、行为、部件、部分或其组合存在或被添加的可能性。
另外还需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开。
图1示出了根据本公开一实施方式的更新机器学习模型的完整流程示意图。如图1所示,机器学习模型训练完成后,将该机器学习模型封装成应用程序后上传至服务器101,客户端102从服务器101获取该应用程序的安装文件,并安装至客户端101本地,并由本地CPU来执行该应用程序。之后,如果机器学习模型中的计算单元有更新,例如增加了新的计算单元或者某个已有计算单元有修改时,可以建立该需要增加或者修改的计算单元的标识与该计算单元对应的执行信息(例如计算单元的执行逻辑以及运行参数等)之间的对应关系,并将该预设的映射关系表写入机器学习模型,与需要增加或者修改的计算单元的执行信息一起上传至服务器101,或者上述映射关系表不写入机器学习模型,而是单独作为配置信息,与需要增加或者修改的计算单元的执行信息一起上传至服务器101。服务器101可以主动通知客户端102该机器学习模型已被更新,或者由客户端102周期性询问服务器101时,通知客户端102该机器学习模型已被更新。客户端102从服务器101获取机器学习模型、增加或者修改的计算单元的执行信息,并保存在客户端102的存储设备1021上。在用户通过客户端102打开由该机器学习模型实现其功能的应用程序时,客户端102在CPU 1022上加载该机器学习模型,并遍历执行该机器学习模型中的计算单元,对于当前遍历的计算单元,先根据上述映射关系表确定该计算单元是否为动态计算单元,例如如果该当前被遍历的计算单元在映射关系表中存在映射关系时,可以认为该计算单元为动态计算单元;如果该计算单元为动态计算单元,则根据映射关系表确定与该动态计算单元具有映射关系的执行信息的存储位置,并将该执行信息加载至客户端的GPU 1023,GPU 1023利用执行信息中的运行参数配置该计算单元的执行逻辑后,在GPU 1023上执行该执行逻辑,以实现该计算单元的计算任务。
可以理解的是,本公开实施例中的上述执行逻辑不限于在GPU 1023上执行,还可以在各种机器学习加速硬件中执行,如FPGA/ASIC/GPA等。
还可以理解的是,本公开实施例不限于采用机器学习模型实现客户端上的应用程序,还可以用于自管理、数据中心等应用场景,通过本公开实施例应用在数据中心时,可以不中断数据服务的情况下进行更新,且不需要做大范围的升级。
需要说明的是,为了能够在GPU 1023上动态执行,与动态计算单元具有映射关系的执行逻辑可以被实现为shader程序。
还需要说明的是,执行信息中的执行逻辑也可以被实现为动态库或者脚本程序,在实现为动态库或者脚本程序时,动态计算单元的执行逻辑还可以加载到客户端102的CPU1022上执行。
图2示出根据本公开一实施方式的执行方法的流程图。如图2所示,所述执行方法包括以下步骤:
在步骤S201中,在遍历执行机器学习模型时,将当前被遍历的计算单元与预设映射信息进行匹配;其中,所述预设映射信息中包括所述机器学习模型中预设计算单元与第一执行信息之间的映射关系;
在步骤S202中,在匹配成功后,根据所述预设映射信息获取与当前被遍历的所述计算单元具有映射关系的第一执行信息;
在步骤S203中,根据所述第一执行信息执行当前被遍历的所述计算单元。
本实施例中,机器学习模型可以被封装成应用程序,以便在客户端上通过安装该应用程序来部署该机器学习模型。机器学习模型可以包括多个计算单元以及多个计算单元之间的连接关系;每个计算单元可以完成一个计算任务。计算单元的计算任务可以由计算机程序代码来实现,具体与机器学习模型的类型有关,例如神经网络模型中的一个神经元可以是一个计算单元。多个计算单元之间的连接关系可以包括但不限于顺序执行关系和/并行执行关系。本实施例以应用程序为例进行说明,但可以理解的是,本公开实施例不限于采用机器学习模型实现客户端上的应用程序,还可以用于自管理、数据中心等应用场景,通过本公开实施例应用在数据中心时,可以不中断数据服务的情况下进行更新,且不需要做大范围的升级。
应用程序在被安装到客户端上时,机器学习模型中的计算单元也根据当时的安装环境(例如CPU环境、缓存大小等)被部署在客户端上,该应用程序在客户端上被打开运行时,将输入数据输入至机器学习模型,并遍历执行该机器学习模型中的计算单元,得到输出结果。
该应用程序在客户端设备的CPU上执行,因此机器学习模型中计算单元的执行环境为应用程序被安装时的CPU环境。如果机器学习模型需要更新,如计算单元需要修改或者需要增加新的计算单元,则可以在客户端设备上重新安装应用程序,以便将更新后的机器学习模型部署在客户端设备上,使得修改后或者新增的计算单元能够在该客户端设备的当前CPU环境下执行。但是这种方式需要增发新的应用程序版本,在使用该应用程序的客户端较多的情况下,其增发成本较高。
本实施例在机器学习模型有更新的情况下,为了不增发应用程序新版本,首先根据机器学习模型的更新数据建立预设映射信息,该预设映射信息中包括新增加的计算单元或者有修改的计算单元与第一执行信息之间的映射关系。第一执行信息可以包括但不限于计算单元的执行逻辑以及运行参数;执行逻辑可以是用于实现该计算单元对应的计算任务的一段程序代码,运行参数可以包括但不限于该执行逻辑的执行环境信息(例如缓存大小等)、该计算单元的输入(例如从哪个计算单元获得输入)、计算单元的输出(例如将该计算单元的执行结果输出给哪个单元等)等。
在建立了预设映射信息之后,可以将预设映射信息写入机器学习模型,也可以单独将预设映射信息存成配置文件,之后将机器学习模型、预设映射信息和第一执行信息等更新数据上传至服务器,服务器可以通知客户端该机器学习模型有更新数据,并将该更新数据发送给客户端,或者客户端可以周期性地询问服务器,并从服务器获取该更新数据。需要说明的是,如果预设映射信息单独存成配置文件时,可以不将整个机器学习模型发送给客户端,而是将预设映射信息以及第一执行信息发送给客户端。
客户端接收到机器学习模型的更新数据之后,可以将更新数据存储在本地存储设备。在客户端上打开该机器学习模型对应的应用程序,并由该应用程序遍历执行该机器学习模型时,可以针对每个当前被遍历到的计算单元,查看预设映射信息中是否记录了该计算单元的更新信息,也即将当前被遍历的计算单元与预设映射信息中的内容进行匹配,如果预设映射信息中存在相匹配的内容,则可以认为该计算单元的执行信息被更新过,因此可以根据预设映射信息中的映射关系确定与该计算单元具有映射关系的第一执行信息,进而从相应的存储位置获取该第一执行信息,并根据该第一执行信息执行当前被遍历的该计算单元。
例如,该第一执行信息可以包括更新后的该计算单元对应的计算任务的程序代码以及运行参数,可以通过该运行参数配置该程序代码,并加载执行该程序代码,以实现该计算单元的计算任务。当前被遍历的计算单元被执行完成之后可以执行下一计算单元,当然可以理解的是,机器学习模型中的多个计算单元还可以是并行执行关系,在当前被遍历的计算单元被执行的同时,其他计算单元也可以通过同样的方式被遍历执行。
需要说明的是,在机器学习模型的更新为增加了新的计算单元时,需要将更新后的机器学习模型、预设映射信息以及第一执行信息均上传到服务器,并由客户端下载至本地。因为机器学习模型中新增加的计算单元的计算时机(例如该新增加的计算单元与哪些计算单元相连,并且在哪些计算单元之后执行等)是写在机器学习模型中的,因此需要将更新后的整个机器学习模型动态部署到客户端本地,客户端在遍历执行机器学习模型时,也时遍历执行该更新后的机器学习模型。
本公开实施例在机器学习模型的遍历执行过程中,将当前遍历的计算单元与预设映射信息进行匹配,预设映射信息中包括机器学习模型中预设计算单元与第一执行信息之间的映射关系。在匹配成功后,可以根据预设映射信息获取与当前被遍历的计算单元具有映射关系的第一执行信息,并根据第一执行信息执行当前被遍历的计算单元。通过这种方式,在计算单元的执行逻辑发生变化时,可以建立发生变化后的执行逻辑与计算单元之间的映射关系,并在机器学习模型在被执行时,根据该映射关系获取并执行更新后的执行逻辑,能够使得如客户端等机器学习模型的应用场景中,机器学习模型发生更新之后,无需增发新的应用版本,从而大大降低了成本。
在本实施例的一个可选实现方式中,如图3所示,所述方法进一步还包括以下步骤:
在步骤S301中,在匹配失败后,从所述机器学习模型中获取当前被遍历的所述计算单元的第二执行信息;
在步骤S302中,根据所述第二执行信息执行当前被遍历的所述计算单元。
该可选的实现方式中,对于机器学习模型中未被更新过的计算单元,可以从机器学习模型中获取第二执行信息,该第二执行信息是机器模型中该计算单元的原始执行信息,在安装应用程序时,根据当时的安装环境配置过的,因此直接在客户端设备的CPU上执行该第二执行信息即可。
在本实施例的一个可选实现方式中,如图4所示,所述步骤S202,即根据所述预设映射信息获取与当前被遍历的所述计算单元具有映射关系的第一执行信息的步骤,进一步包括以下步骤:
在步骤S401中,根据所述预设映射信息确定所述第一执行信息的获取方式;其中,所述获取方式包括所述第一执行信息的标识和/或存储位置;
在步骤S402中,根据所述第一执行信息的标识和/或存储位置从本地存储设备获取所述第一执行信息。
该可选的实现方式中,预设映射信息中可以包括新增加的或者更新过的预设计算单元与第一执行信息之间的映射关系,该映射关系具体可以为预设计算单元的标识与第一执行信息的标识和/或相对存储位置之间的映射关系,因此可以根据该映射关系确定了第一执行信息的标识和/或相对存储之后,可以从客户端的存储设备上找到该第一执行信息,并从存储设备获取该第一执行信息。需要说明的是,该第一执行信息的相对存储位置可以是该第一执行信息在本次更新数据中的位置,客户端在从服务器接收到机器学习模型的更新数据之后,可以将该更新数据存储在本地存储设备上,并且记录下来该更新数据在本地存储设备的起始位置,在获取该第一执行信息时,可以通过该起始位置以及预设映射信息中的相对位置确定该第一执行信息在客户端的本地存储设备上的真实存储地址,进而从该真实存储地址获得该第一执行信息。
在本实施例的一个可选实现方式中,所述第一执行信息包括shader程序和所述shader程序的运行参数;步骤S203,即根据所述第一执行信息执行当前被遍历的所述计算单元的步骤,进一步包括以下步骤:
利用所述运行参数对所述shader程序进行配置,并在GPU上加载执行所述shader程序。
该可选的实现方式中,机器学习模型中新增加或者有修改的计算单元的第一执行信息中的执行逻辑可以采用shader程序来实现,由于shader程序是运行在GPU上,并且可以被动态配置并加载,因此使用shader程序实现机器学习模型中新增加或有修改的计算单元后,可以直接将该shader程序利用运行参数配置完成后加载到GPU上执行,而无需重新在客户端设备的CPU环境下安装封装有该机器学习模型的安装程序。由于在CPU上执行的程序需要在安装过程中根据CPU环境进行自动配置(例如配置缓存信息等)后才能执行,而shader程序可以在GPU上动态配置并加载执行,因此通过在GPU上执行shader程序的方式可以实现机器学习模型中计算单元的动态扩充及修改。可以理解的是,本公开实施例中的上述执行逻辑不限于在GPU 1023上执行,还可以在各种机器学习加速硬件中执行,如FPGA/ASIC/GPA等。
在本实施例的一个可选实现方式中,所述第一执行信息包括动态库;步骤S203,即根据所述第一执行信息执行当前被遍历的所述计算单元的步骤,进一步包括以下步骤:
在CPU的即时编辑环境下加载执行所述动态库。
该可选的实现方式中,如果客户端设备的CPU环境支持即时编译环境如JIT环境,则机器学习模型中新增加或者有修改的计算单元的第一执行信息中的执行逻辑还可以采用动态库的形式来实现。这种方式下,新增加或者修改后的计算单元可以实现为动态库,并且在CPU上加载执行机器学习模型的时候,通过动态加载该动态库来实现该计算单元的计算任务。
在本实施例的一个可选实现方式中,所述第一执行信息包括脚本程序;步骤S203,即根据所述第一执行信息执行当前被遍历的所述计算单元的步骤,进一步包括以下步骤:
在CPU的虚拟机环境下加载执行所述脚本程序。
该可选的实现方式中,机器学习模型中新增加或者有修改的计算单元的第一执行信息还可以采用脚本来实现。通过在CPU上执行一虚拟机,并在执行机器学习模型上的该计算单元时,将对应的脚本加载到虚拟机执行,以完成计算单元的计算任务。
在本实施例的一个可选实现方式中,所述方法进一步还包括以下步骤:
获取所述机器学习模型的更新数据;其中,所述更新数据包括所述预设映射信息和所述第一执行信息;
存储所述更新数据。
该可选的实现方式中,客户端在安装了封装有机器学习模型的应用程序之后,如果该机器学习模型有更新,客户端可以从服务器获取该机器学习模型的更新数据,并存储在客户端本地。该更新数据包括预设映射信息以及第一执行信息,预设映射信息包括该机器学习模型中新增加或者有修改的预设计算单元与预设该计算单元的第一执行信息之间的映射关系,第一执行信息可以包括但不限于该预设计算单元的执行逻辑和运行参数等。客户端将更新数据存储在本地存储设备后,完成了对更新后的机器学习模型的动态部署,而在执行该机器学习模型的时候,则可以根据该预设映射信息以及第一执行信息执行预设计算单元,而其他计算单元可以依然基于机器学习模型自带的执行逻辑来执行。
图5示出根据本公开一实施方式的更新方法的流程图。如图5所示,所述更新方法包括以下步骤:
在步骤S501,获取所述机器学习模型的更新数据;其中,所述更新数据包括预设映射信息以及第一执行信息;所述预设映射信息包括所述第一执行信息与所述机器学习模型中的预设计算单元之间的映射关系;
在步骤S502,根据所述更新数据重新部署所述机器学习模型;
在步骤S503,响应于对所述机器学习模型的执行请求,遍历执行所述机器学习模型,并在当前被遍历的计算单元与所述预设映射信息中的所述预设计算单元相匹配时,根据所述第一执行信息执行当前被遍历的所述计算单元。
本实施例中,机器学习模型可以被封装成应用程序,以便在客户端上通过安装该应用程序来部署该机器学习模型。机器学习模型可以包括多个计算单元以及多个计算单元之间的连接关系;每个计算单元可以完成一个计算任务。计算单元的计算任务可以由计算机程序代码来实现,具体与机器学习模型的类型有关,例如神经网络模型中的一个神经元可以是一个计算单元。多个计算单元之间的连接关系可以包括但不限于顺序执行关系和/并行执行关系。
应用程序在被安装到客户端上时,机器学习模型中的计算单元也根据当时的安装环境(例如CPU环境、缓存大小等)被部署在客户端上,该应用程序在客户端上被打开运行时,将输入数据输入至机器学习模型,并遍历执行该机器学习模型中的计算单元,得到输出结果。
该应用程序在客户端设备的CPU上执行,因此机器学习模型中计算单元的执行环境为应用程序被安装时的CPU环境。如果机器学习模型需要更新,如计算单元需要修改或者需要增加新的计算单元,则可以在客户端设备上重新安装应用程序,以便将更新后的机器学习模型部署在客户端设备上,使得修改后或者新增的计算单元能够在该客户端设备的当前CPU环境下执行。但是这种方式需要增发新的应用程序版本,在使用该应用程序的客户端较多的情况下,其增发成本较高。
本实施例在机器学习模型有更新的情况下,为了不增发应用程序新版本,首先根据机器学习模型的更新数据建立预设映射信息,该预设映射信息中包括新增加的计算单元或者有修改的计算单元与第一执行信息之间的映射关系。第一执行信息可以包括但不限于计算单元的执行逻辑以及运行参数;执行逻辑可以是用于实现该计算单元对应的计算任务的一段程序代码,运行参数可以包括但不限于该执行逻辑的执行环境信息(例如缓存大小等)、该计算单元的输入(例如从哪个计算单元获得输入)、计算单元的输出(例如将该计算单元的执行结果输出给哪个单元等)等。
在建立了预设映射信息之后,可以将预设映射信息写入机器学习模型,也可以单独将预设映射信息存成配置文件,之后将机器学习模型、预设映射信息和第一执行信息等更新数据上传至服务器,服务器可以通知客户端该机器学习模型有更新数据,并将该更新数据发送给客户端,或者客户端可以周期性地询问服务器,并从服务器获取该更新数据。需要说明的是,如果预设映射信息单独存成配置文件时,可以不将整个机器学习模型发送给客户端,而是将预设映射信息以及第一执行信息发送给客户端。
客户端可以从服务器获取该机器学习模型的更新数据,并存储在客户端本地。该更新数据包括预设映射信息以及第一执行信息,预设映射信息包括该机器学习模型中新增加或者有修改的预设计算单元与预设该计算单元的第一执行信息之间的映射关系,第一执行信息可以包括但不限于该预设计算单元的执行逻辑和运行参数等。客户端将更新数据存储在本地存储设备后,完成了对更新后的机器学习模型的动态部署,而在执行该机器学习模型的时候,则可以根据该预设映射信息以及第一执行信息执行预设计算单元,而其他计算单元可以依然基于机器学习模型自带的执行逻辑来执行。
用户可以通过在客户端上打开该机器学习模型对应的应用程序,以便由该应用程序遍历执行该机器学习模型的过程中,可以针对每个当前被遍历到的计算单元,查看预设映射信息中是否记录了该计算单元的更新信息,也即将当前被遍历的计算单元与预设映射信息中的内容进行匹配,如果预设映射信息中存在相匹配的内容,则可以认为该计算单元的执行信息被更新过,因此可以根据预设映射信息中的映射关系确定与该计算单元具有映射关系的第一执行信息,进而从相应的存储位置获取该第一执行信息,并根据该第一执行信息执行当前被遍历的该计算单元。
例如,该第一执行信息可以包括更新后的该计算单元对应的计算任务的程序代码以及运行参数,可以通过该运行参数配置该程序代码,并加载执行该程序代码,以实现该计算单元的计算任务。当前被遍历的计算单元被执行完成之后可以执行下一计算单元,当然可以理解的是,机器学习模型中的多个计算单元还可以是并行执行关系,在当前被遍历的计算单元被执行的同时,其他计算单元也可以通过同样的方式被遍历执行。
需要说明的是,在机器学习模型的更新为增加了新的计算单元时,需要将更新后的机器学习模型、预设映射信息以及第一执行信息均上传到服务器,并由客户端下载至本地。因为机器学习模型中新增加的计算单元的计算时机(例如该新增加的计算单元与哪些计算单元相连,并且在哪些计算单元之后执行等)是写在机器学习模型中的,因此需要将更新后的整个机器学习模型动态部署到客户端本地,客户端在遍历执行机器学习模型时,也时遍历执行该更新后的机器学习模型。
本公开实施例在机器学习模型的遍历执行过程中,将当前遍历的计算单元与预设映射信息进行匹配,预设映射信息中包括机器学习模型中预设计算单元与第一执行信息之间的映射关系。在匹配成功后,可以根据预设映射信息获取与当前被遍历的计算单元具有映射关系的第一执行信息,并根据第一执行信息执行当前被遍历的计算单元。通过这种方式,在计算单元的执行逻辑发生变化时,可以建立发生变化后的执行逻辑与计算单元之间的映射关系,并在机器学习模型在被执行时,根据该映射关系获取并执行更新后的执行逻辑,能够使得如客户端等机器学习模型的应用场景中,机器学习模型发生更新之后,无需增发新的应用版本,从而大大降低了成本。
在本实施例的一个可选实现方式中,所述方法进一步还包括以下步骤:
在当前被遍历的计算单元与所述预设映射信息中的所述预设计算单元不匹配时,执行当前被遍历的所述计算单元对应的第二执行信息;其中,所述第二执行信息位于所述机器学习模型中。
该可选的实现方式中,预设映射信息中存储有新增加或者有修改的计算单元与对应的第一执行信息之间的映射关系。如果是机器学习模型原始框架中的未被修改过的计算单元,则预设映射信息中不存在其对应的信息。因此,对于机器学习模型中未被更新过的计算单元,可以从机器学习模型中获取第二执行信息,该第二执行信息是机器模型中该计算单元的原始执行信息,在安装应用程序时,根据当时的安装环境配置过的,因此直接在客户端设备的CPU上执行该第二执行信息即可。
在本实施例的一个可选实现方式中,所述第一执行信息包括shader程序和所述shader程序的运行参数;步骤S503中,根据所述第一执行信息执行当前被遍历的所述计算单元的步骤,进一步包括以下步骤:
利用所述运行参数对所述shader程序进行配置,并在GPU上加载执行所述shader程序。
该可选的实现方式中,机器学习模型中新增加或者有修改的计算单元的第一执行信息中的执行逻辑可以采用shader程序来实现,由于shader程序是运行在GPU上,并且可以被动态配置并加载,因此使用shader程序实现机器学习模型中新增加或有修改的计算单元后,可以直接将该shader程序利用运行参数配置完成后加载到GPU上执行,而无需重新在客户端设备的CPU环境下安装封装有该机器学习模型的安装程序。由于在CPU上执行的程序需要在安装过程中根据CPU环境进行自动配置(例如配置缓存信息等)后才能执行,而shader程序可以在GPU上动态配置并加载执行,因此通过在GPU上执行shader程序的方式可以实现机器学习模型中计算单元的动态扩充及修改。
在本实施例的一个可选实现方式中,所述第一执行信息包括动态库;步骤S503,即根据所述第一执行信息执行当前被遍历的所述计算单元的步骤,进一步包括以下步骤:
在CPU的即时编辑环境下加载执行所述动态库。
该可选的实现方式中,如果客户端设备的CPU环境支持即时编译环境如JIT环境,则机器学习模型中新增加或者有修改的计算单元的第一执行信息中的执行逻辑还可以采用动态库的形式来实现。这种方式下,新增加或者修改后的计算单元可以实现为动态库,并且在CPU上加载执行机器学习模型的时候,通过动态加载该动态库来实现该计算单元的计算任务。
在本实施例的一个可选实现方式中,所述第一执行信息包括脚本程序;步骤S503,即根据所述第一执行信息执行当前被遍历的所述计算单元的步骤,进一步包括以下步骤:
在CPU的虚拟机环境下加载执行所述脚本程序。
该可选的实现方式中,机器学习模型中新增加或者有修改的计算单元的第一执行信息还可以采用脚本来实现。通过在CPU上执行一虚拟机,并在执行机器学习模型上的该计算单元时,将对应的脚本加载到虚拟机执行,以完成计算单元的计算任务。
图6示出根据本公开另一实施方式的执行方法的流程图。如图6所示,所述执行方法包括以下步骤:
在步骤S601中,在遍历执行机器学习模型的过程中,当前被遍历的计算单元为动态计算单元时,确定所述动态计算单元对应的预设更新位置;
在步骤S602中,从所述预设更新位置获取所述动态计算单元的第一执行信息;
在步骤S603中,根据所述第一执行信息执行当前被遍历的所述计算单元。
本实施例中,机器学习模型可以被封装成应用程序,以便在客户端上通过安装该应用程序来部署该机器学习模型。机器学习模型可以包括多个计算单元以及多个计算单元之间的连接关系;每个计算单元可以完成一个计算任务。计算单元的计算任务可以由计算机程序代码来实现,具体与机器学习模型的类型有关,例如神经网络模型中的一个神经元可以是一个计算单元。多个计算单元之间的连接关系可以包括但不限于顺序执行关系和/并行执行关系。本实施例以应用程序为例进行说明,但可以理解的是,本公开实施例不限于采用机器学习模型实现客户端上的应用程序,还可以用于自管理、数据中心等应用场景,通过本公开实施例应用在数据中心时,可以不中断数据服务的情况下进行更新,且不需要做大范围的升级。
应用程序在被安装到客户端上时,机器学习模型中的计算单元也根据当时的安装环境(例如CPU环境、缓存大小等)被部署在客户端上,该应用程序在客户端上被打开运行时,将输入数据输入至机器学习模型,并遍历执行该机器学习模型中的计算单元,得到输出结果。
该应用程序在客户端设备的CPU上执行,因此机器学习模型中计算单元的执行环境为应用程序被安装时的CPU环境。如果机器学习模型需要更新,如计算单元需要修改或者需要增加新的计算单元,则可以在客户端设备上重新安装应用程序,以便将更新后的机器学习模型部署在客户端设备上,使得修改后或者新增的计算单元能够在该客户端设备的当前CPU环境下执行。但是这种方式需要增发新的应用程序版本,在使用该应用程序的客户端较多的情况下,其增发成本较高。
本实施例在机器学习模型有更新的情况下,为了不增发应用程序新版本,首先根据机器学习模型的更新数据将有修改或新增加的计算单元设置为动态计算单元,并且建立动态计算单元与第一执行信息之间的映射关系,例如可以建立预设映射信息,该预设映射信息中包括新增加的计算单元或者有修改的计算单元与第一执行信息之间的映射关系,并且还可以包括第一执行信息的存储位置,根据该存储位置可以获得动态计算单元对应的预设更新位置。预设更新位置可以是第一执行信息的本地存储位置。第一执行信息可以包括但不限于计算单元的执行逻辑以及运行参数;执行逻辑可以是用于实现该动态计算单元对应的计算任务的一段程序代码,运行参数可以包括但不限于该执行逻辑的执行环境信息(例如缓存大小等)、该动态计算单元的输入(例如从哪个计算单元获得输入)、动态计算单元的输出(例如将该计算单元的执行结果输出给哪个单元等)等。
在建立了预设映射信息之后,可以将预设映射信息写入机器学习模型,也可以单独将预设映射信息存成配置文件,之后将机器学习模型、预设映射信息和第一执行信息等更新数据上传至服务器,服务器可以通知客户端该机器学习模型有更新数据,并将该更新数据发送给客户端,或者客户端可以周期性地询问服务器,并从服务器获取该更新数据。需要说明的是,如果预设映射信息单独存成配置文件时,可以不将整个机器学习模型发送给客户端,而是将预设映射信息以及第一执行信息发送给客户端。
客户端接收到机器学习模型的更新数据之后,可以将更新数据存储在本地存储设备。在客户端上打开该机器学习模型对应的应用程序,并由该应用程序遍历执行该机器学习模型时,可以针对每个当前被遍历到的计算单元,确定其是否为动态计算单元,例如可以通过查看预设映射信息中是否记录了该计算单元的更新信息来确定其是否为动态计算单元,也即将当前被遍历的计算单元与预设映射信息中的内容进行匹配,如果预设映射信息中存在相匹配的内容,则可以认为该计算单元的执行信息被更新过,因此可以根据预设映射信息中的映射关系确定与该计算单元具有映射关系的第一执行信息,进而从相应的存储位置获取该第一执行信息,并根据该第一执行信息执行当前被遍历的该计算单元。当然可以理解的是,还可以通过其他方式例如将动态计算单元的类别设置为预设类别,以便通过查看该预设类别来确定当前被遍历的计算单元是否为动态计算单元,如果是动态计算单元,则可以根据预设映射信息等获取与动态计算单元具有映射关系的第一执行信息。
例如,该第一执行信息可以包括更新后的该计算单元对应的计算任务的程序代码以及运行参数,可以通过该运行参数配置该程序代码,并加载执行该程序代码,以实现该计算单元的计算任务。当前被遍历的计算单元被执行完成之后可以执行下一计算单元,当然可以理解的是,机器学习模型中的多个计算单元还可以是并行执行关系,在当前被遍历的计算单元被执行的同时,其他计算单元也可以通过同样的方式被遍历执行。
需要说明的是,在机器学习模型的更新为增加了新的计算单元时,需要将更新后的机器学习模型、预设映射信息以及第一执行信息均上传到服务器,并由客户端下载至本地。因为机器学习模型中新增加的计算单元的计算时机(例如该新增加的计算单元与哪些计算单元相连,并且在哪些计算单元之后执行等)是写在机器学习模型中的,因此需要将更新后的整个机器学习模型动态部署到客户端本地,客户端在遍历执行机器学习模型时,也时遍历执行该更新后的机器学习模型。
本公开实施例在机器学习模型的遍历执行过程中,当前被遍历的计算单元为动态计算单元时,确定动态计算单元对应的预设更新位置,并从预设更新位置获取该动态计算单元的第一执行信息,并根据第一执行信息执行当前被遍历的计算单元。通过这种方式,在动态执行单元的执行逻辑发生变化时,可以将发生变化后的执行逻辑部署到预设更新位置处,而机器学习模型在被遍历执行时可以从预设更新位置处获取并执行更新后的执行逻辑,能够使得如客户端等机器学习模型的应用场景中,机器学习模型发生更新之后,无需增发新的应用版本,从而大大降低了成本。
在本实施例的一个可选实现方式中,所述方法进一步还包括以下步骤:
在当前被遍历的计算单元为非动态计算单元时,从所述机器学习模型中获取当前被遍历的所述计算单元的第二执行信息;
根据所述第二执行信息执行当前被遍历的所述计算单元。
该可选的实现方式中,对于机器学习模型中未被更新过的计算单元,可以从机器学习模型中获取第二执行信息,该第二执行信息是机器模型中该计算单元的原始执行信息,在安装应用程序时,根据当时的安装环境配置过的,因此直接在客户端设备的CPU上执行该第二执行信息即可。
在本实施例的一个可选实现方式中,所述步骤S601,即确定所述动态计算单元对应的预设更新位置的步骤,进一步包括以下步骤:
将所述动态计算单元与预设映射信息进行匹配;
根据匹配结果获取所述动态计算单元对应的所述预设更新位置。
该可选的实现方式中,动态计算单元对应的预设更新位置可以通过预先设置预设映射信息的方式来实现。预设映射信息可以包括动态计算单元与第一执行信息的映射关系,并且还可以包括第一执行信息的存储位置,根据该存储位置可以获得动态计算单元对应的预设更新位置。通过这种方式,机器学习模型在被执行时,根据该映射关系获取并执行更新后的执行逻辑,能够使得如客户端等机器学习模型的应用场景中,机器学习模型发生更新之后,无需增发新的应用版本,从而大大降低了成本。
在一些实施例中,预设映射信息中可以包括新增加的或者更新过的预设计算单元与第一执行信息之间的映射关系,该映射关系具体可以为预设计算单元的标识与第一执行信息的标识和/或相对存储位置之间的映射关系,因此可以根据该映射关系确定了第一执行信息的标识和/或相对存储之后,可以从客户端的存储设备上找到该第一执行信息,并从存储设备获取该第一执行信息。需要说明的是,该第一执行信息的相对存储位置可以是该第一执行信息在本次更新数据中的位置,客户端在从服务器接收到机器学习模型的更新数据之后,可以将该更新数据存储在本地存储设备上,并且记录下来该更新数据在本地存储设备的起始位置,在获取该第一执行信息时,可以通过该起始位置以及预设映射信息中的相对位置确定该第一执行信息在客户端的本地存储设备上的真实存储地址,进而从该真实存储地址获得该第一执行信息。
在本实施例的一个可选实现方式中,所述第一执行信息包括shader程序和所述shader程序的运行参数;步骤S603,即根据所述第一执行信息执行当前被遍历的所述计算单元的步骤,进一步包括以下步骤:
利用所述运行参数对所述shader程序进行配置,并在GPU上加载执行所述shader程序。
该可选的实现方式中,机器学习模型中新增加或者有修改的计算单元的第一执行信息中的执行逻辑可以采用shader程序来实现,由于shader程序是运行在GPU上,并且可以被动态配置并加载,因此使用shader程序实现机器学习模型中新增加或有修改的计算单元后,可以直接将该shader程序利用运行参数配置完成后加载到GPU上执行,而无需重新在客户端设备的CPU环境下安装封装有该机器学习模型的安装程序。由于在CPU上执行的程序需要在安装过程中根据CPU环境进行自动配置(例如配置缓存信息等)后才能执行,而shader程序可以在GPU上动态配置并加载执行,因此通过在GPU上执行shader程序的方式可以实现机器学习模型中计算单元的动态扩充及修改。可以理解的是,本公开实施例中的上述执行逻辑不限于在GPU 1023上执行,还可以在各种机器学习加速硬件中执行,如FPGA/ASIC/GPA等。
在本实施例的一个可选实现方式中,所述第一执行信息包括动态库;步骤S603,即根据所述第一执行信息执行当前被遍历的所述计算单元的步骤,进一步包括以下步骤:
在CPU的即时编辑环境下加载执行所述动态库。
该可选的实现方式中,如果客户端设备的CPU环境支持即时编译环境如JIT环境,则机器学习模型中新增加或者有修改的计算单元的第一执行信息中的执行逻辑还可以采用动态库的形式来实现。这种方式下,新增加或者修改后的计算单元可以实现为动态库,并且在CPU上加载执行机器学习模型的时候,通过动态加载该动态库来实现该计算单元的计算任务。
在本实施例的一个可选实现方式中,所述第一执行信息包括脚本程序;步骤S603,即根据所述第一执行信息执行当前被遍历的所述计算单元的步骤,进一步包括以下步骤:
在CPU的虚拟机环境下加载执行所述脚本程序。
该可选的实现方式中,机器学习模型中新增加或者有修改的计算单元的第一执行信息还可以采用脚本来实现。通过在CPU上执行一虚拟机,并在执行机器学习模型上的该计算单元时,将对应的脚本加载到虚拟机执行,以完成计算单元的计算任务。
在本实施例的一个可选实现方式中,所述方法进一步还包括以下步骤:
获取所述机器学习模型的更新数据;其中,所述更新数据包括所述预设映射信息和所述第一执行信息;
存储所述更新数据。
该可选的实现方式中,客户端在安装了封装有机器学习模型的应用程序之后,如果该机器学习模型有更新,客户端可以从服务器获取该机器学习模型的更新数据,并存储在客户端本地。该更新数据包括预设映射信息以及第一执行信息,预设映射信息包括该机器学习模型中新增加或者有修改的预设计算单元与预设该计算单元的第一执行信息之间的映射关系,第一执行信息可以包括但不限于该预设计算单元的执行逻辑和运行参数等。客户端将更新数据存储在本地存储设备后,完成了对更新后的机器学习模型的动态部署,而在执行该机器学习模型的时候,则可以根据该预设映射信息以及第一执行信息执行预设计算单元,而其他计算单元可以依然基于机器学习模型自带的执行逻辑来执行。
图7示出根据本公开另一实施方式的更新方法的流程图。如图7所示,所述更新方法包括以下步骤:
在步骤S701,获取所述机器学习模型的更新数据;其中,所述更新数据包括所述机器学习模型中至少一个动态计算单元对应的第一执行信息;
在步骤S702,根据所述更新数据重新部署所述机器学习模型;
在步骤S703,响应于对所述机器学习模型的执行请求,遍历执行所述机器学习模型,并在当前被遍历的计算单元为所述动态计算单元时,获取所述动态计算单元对应的所述第一执行信息,以及根据所述第一执行信息执行当前被遍历的所述计算单元。
本实施例中,机器学习模型可以被封装成应用程序,以便在客户端上通过安装该应用程序来部署该机器学习模型。机器学习模型可以包括多个计算单元以及多个计算单元之间的连接关系;每个计算单元可以完成一个计算任务。计算单元的计算任务可以由计算机程序代码来实现,具体与机器学习模型的类型有关,例如神经网络模型中的一个神经元可以是一个计算单元。多个计算单元之间的连接关系可以包括但不限于顺序执行关系和/并行执行关系。
应用程序在被安装到客户端上时,机器学习模型中的计算单元也根据当时的安装环境(例如CPU环境、缓存大小等)被部署在客户端上,该应用程序在客户端上被打开运行时,将输入数据输入至机器学习模型,并遍历执行该机器学习模型中的计算单元,得到输出结果。
该应用程序在客户端设备的CPU上执行,因此机器学习模型中计算单元的执行环境为应用程序被安装时的CPU环境。如果机器学习模型需要更新,如计算单元需要修改或者需要增加新的计算单元,则可以在客户端设备上重新安装应用程序,以便将更新后的机器学习模型部署在客户端设备上,使得修改后或者新增的计算单元能够在该客户端设备的当前CPU环境下执行。但是这种方式需要增发新的应用程序版本,在使用该应用程序的客户端较多的情况下,其增发成本较高。
本实施例在机器学习模型有更新的情况下,为了不增发应用程序新版本,首先根据机器学习模型的更新数据将有修改或新增加的计算单元设置为动态计算单元,并且建立动态计算单元与第一执行信息之间的映射关系,例如可以建立预设映射信息,该预设映射信息中包括新增加的计算单元或者有修改的计算单元与第一执行信息之间的映射关系,并且还可以包括第一执行信息的存储位置,根据该存储位置可以获得动态计算单元对应的预设更新位置。预设更新位置可以是第一执行信息的本地存储位置。第一执行信息可以包括但不限于计算单元的执行逻辑以及运行参数;执行逻辑可以是用于实现该动态计算单元对应的计算任务的一段程序代码,运行参数可以包括但不限于该执行逻辑的执行环境信息(例如缓存大小等)、该动态计算单元的输入(例如从哪个计算单元获得输入)、动态计算单元的输出(例如将该计算单元的执行结果输出给哪个单元等)等。
在建立了预设映射信息之后,可以将预设映射信息写入机器学习模型,也可以单独将预设映射信息存成配置文件,之后将机器学习模型、预设映射信息和第一执行信息等更新数据上传至服务器,服务器可以通知客户端该机器学习模型有更新数据,并将该更新数据发送给客户端,或者客户端可以周期性地询问服务器,并从服务器获取该更新数据。需要说明的是,如果预设映射信息单独存成配置文件时,可以不将整个机器学习模型发送给客户端,而是将预设映射信息以及第一执行信息发送给客户端。
客户端可以从服务器获取该机器学习模型的更新数据,并存储在客户端本地。该更新数据包括预设映射信息以及第一执行信息,预设映射信息包括该机器学习模型中新增加或者有修改的预设计算单元与预设该计算单元的第一执行信息之间的映射关系,第一执行信息可以包括但不限于该预设计算单元的执行逻辑和运行参数等。客户端将更新数据存储在本地存储设备后,完成了对更新后的机器学习模型的动态部署,而在执行该机器学习模型的时候,则可以根据该预设映射信息以及第一执行信息执行预设计算单元,而其他计算单元可以依然基于机器学习模型自带的执行逻辑来执行。
用户可以通过在客户端上打开该机器学习模型对应的应用程序,以便由该应用程序遍历执行该机器学习模型的过程中,可以针对每个当前被遍历到的计算单元,可以针对每个当前被遍历到的计算单元,确定其是否为动态计算单元,例如可以通过查看预设映射信息中是否记录了该计算单元的更新信息来确定其是否为动态计算单元,也即将当前被遍历的计算单元与预设映射信息中的内容进行匹配,如果预设映射信息中存在相匹配的内容,则可以认为该计算单元的执行信息被更新过,因此可以根据预设映射信息中的映射关系确定与该计算单元具有映射关系的第一执行信息,进而从相应的存储位置获取该第一执行信息,并根据该第一执行信息执行当前被遍历的该计算单元。当然可以理解的是,还可以通过其他方式例如将动态计算单元的类别设置为预设类别,以便通过查看该预设类别来确定当前被遍历的计算单元是否为动态计算单元,如果是动态计算单元,则可以根据预设映射信息等获取与动态计算单元具有映射关系的第一执行信息。
例如,该第一执行信息可以包括更新后的该计算单元对应的计算任务的程序代码以及运行参数,可以通过该运行参数配置该程序代码,并加载执行该程序代码,以实现该计算单元的计算任务。当前被遍历的计算单元被执行完成之后可以执行下一计算单元,当然可以理解的是,机器学习模型中的多个计算单元还可以是并行执行关系,在当前被遍历的计算单元被执行的同时,其他计算单元也可以通过同样的方式被遍历执行。
需要说明的是,在机器学习模型的更新为增加了新的计算单元时,需要将更新后的机器学习模型、预设映射信息以及第一执行信息均上传到服务器,并由客户端下载至本地。因为机器学习模型中新增加的计算单元的计算时机(例如该新增加的计算单元与哪些计算单元相连,并且在哪些计算单元之后执行等)是写在机器学习模型中的,因此需要将更新后的整个机器学习模型动态部署到客户端本地,客户端在遍历执行机器学习模型时,也时遍历执行该更新后的机器学习模型。
本公开实施例在机器学习模型的遍历执行过程中,当前被遍历的计算单元为动态计算单元时,确定动态计算单元对应的预设更新位置,并从预设更新位置获取该动态计算单元的第一执行信息,并根据第一执行信息执行当前被遍历的计算单元。通过这种方式,在动态执行单元的执行逻辑发生变化时,可以将发生变化后的执行逻辑部署到预设更新位置处,而机器学习模型在被遍历执行时可以从预设更新位置处获取并执行更新后的执行逻辑,能够使得如客户端等机器学习模型的应用场景中,机器学习模型发生更新之后,无需增发新的应用版本,从而大大降低了成本。
在本实施例的一个可选实现方式中,所述方法进一步还包括以下步骤:
在当前被遍历的计算单元与所述预设映射信息中的所述预设计算单元不匹配时,执行当前被遍历的所述计算单元对应的第二执行信息;其中,所述第二执行信息位于所述机器学习模型中。
该可选的实现方式中,预设映射信息中存储有新增加或者有修改的计算单元与对应的第一执行信息之间的映射关系。如果是机器学习模型原始框架中的未被修改过的计算单元,则预设映射信息中不存在其对应的信息。因此,对于机器学习模型中未被更新过的计算单元,可以从机器学习模型中获取第二执行信息,该第二执行信息是机器模型中该计算单元的原始执行信息,在安装应用程序时,根据当时的安装环境配置过的,因此直接在客户端设备的CPU上执行该第二执行信息即可。
在本实施例的一个可选实现方式中,所述第一执行信息包括shader程序和所述shader程序的运行参数;步骤S703中,根据所述第一执行信息执行当前被遍历的所述计算单元的步骤,进一步包括以下步骤:
利用所述运行参数对所述shader程序进行配置,并在GPU上加载执行所述shader程序。
该可选的实现方式中,机器学习模型中新增加或者有修改的计算单元的第一执行信息中的执行逻辑可以采用shader程序来实现,由于shader程序是运行在GPU上,并且可以被动态配置并加载,因此使用shader程序实现机器学习模型中新增加或有修改的计算单元后,可以直接将该shader程序利用运行参数配置完成后加载到GPU上执行,而无需重新在客户端设备的CPU环境下安装封装有该机器学习模型的安装程序。由于在CPU上执行的程序需要在安装过程中根据CPU环境进行自动配置(例如配置缓存信息等)后才能执行,而shader程序可以在GPU上动态配置并加载执行,因此通过在GPU上执行shader程序的方式可以实现机器学习模型中计算单元的动态扩充及修改。
在本实施例的一个可选实现方式中,所述第一执行信息包括动态库;步骤S703,即根据所述第一执行信息执行当前被遍历的所述计算单元的步骤,进一步包括以下步骤:
在CPU的即时编辑环境下加载执行所述动态库。
该可选的实现方式中,如果客户端设备的CPU环境支持即时编译环境如JIT环境,则机器学习模型中新增加或者有修改的计算单元的第一执行信息中的执行逻辑还可以采用动态库的形式来实现。这种方式下,新增加或者修改后的计算单元可以实现为动态库,并且在CPU上加载执行机器学习模型的时候,通过动态加载该动态库来实现该计算单元的计算任务。
在本实施例的一个可选实现方式中,所述第一执行信息包括脚本程序;步骤S703,即根据所述第一执行信息执行当前被遍历的所述计算单元的步骤,进一步包括以下步骤:
在CPU的虚拟机环境下加载执行所述脚本程序。
该可选的实现方式中,机器学习模型中新增加或者有修改的计算单元的第一执行信息还可以采用脚本来实现。通过在CPU上执行一虚拟机,并在执行机器学习模型上的该计算单元时,将对应的脚本加载到虚拟机执行,以完成计算单元的计算任务。
下述为本公开装置实施例,可以用于执行本公开方法实施例。
图8示出根据本公开一实施方式的执行装置的结构框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图8所示,所述执行装置包括:
第一确定模块801,被配置为在遍历执行机器学习模型的过程中,当前被遍历的计算单元为动态计算单元时,确定所述动态计算单元对应的预设更新位置;
第一获取模块802,被配置为从所述预设更新位置获取所述动态计算单元的第一执行信息;
第一执行模块803,被配置为根据所述第一执行信息执行当前被遍历的所述计算单元。
进一步地,还包括:
第二获取模块,被配置为在当前被遍历的计算单元为非动态计算单元时,从所述机器学习模型中获取当前被遍历的所述计算单元的第二执行信息;
第二执行模块,被配置为根据所述第二执行信息执行当前被遍历的所述计算单元。
进一步地,所述第一确定模块,包括:
第一匹配子模块,被配置为将所述动态计算单元与预设映射信息进行匹配;
第一获取子模块,被配置为根据匹配结果获取所述动态计算单元对应的所述预设更新位置。
进一步地,所述第一执行信息包括shader程序和所述shader程序的运行参数;所述第一执行模块,包括:
第一执行子模块,被配置为利用所述运行参数对所述shader程序进行配置,并在GPU上加载执行所述shader程序。
进一步地,所述第一执行信息包括动态库;所述第一执行模块,包括:
第二执行子模块,被配置为在CPU的即时编辑环境下加载执行所述动态库。
进一步地,所述第一执行信息包括脚本程序;所述第一执行模块,包括:
第三执行子模块,被配置为在CPU的虚拟机环境下加载执行所述脚本程序。
进一步地,还包括:
第三获取模块,被配置为获取所述机器学习模型的更新数据;其中,所述更新数据包括所述预设映射信息和所述第一执行信息;
第一存储模块,被配置为存储所述更新数据。
本实施例提出的执行装置与图6所示实施例中及相关实施例中的执行方法对应一致,具体细节可参见上述对图6所示实施例及相关实施例中执行方法的描述,在此不再赘述。
图9示出根据本公开另一实施方式的执行装置的结构框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图9所示,所述执行装置包括:
匹配模块901,被配置为在遍历执行机器学习模型时,将当前被遍历的计算单元与预设映射信息进行匹配;其中,所述预设映射信息中包括所述机器学习模型中预设计算单元与第一执行信息之间的映射关系;
第四获取模块902,被配置为在匹配成功后,根据所述预设映射信息获取与当前被遍历的所述计算单元具有映射关系的第一执行信息;
第三执行模块903,被配置为根据所述第一执行信息执行当前被遍历的所述计算单元。
本实施例中,机器学习模型可以被封装成应用程序,以便在客户端上通过安装该应用程序来部署该机器学习模型。机器学习模型可以包括多个计算单元以及多个计算单元之间的连接关系;每个计算单元可以完成一个计算任务。计算单元的计算任务可以由计算机程序代码来实现,具体与机器学习模型的类型有关,例如神经网络模型中的一个神经元可以是一个计算单元。多个计算单元之间的连接关系可以包括但不限于顺序执行关系和/并行执行关系。
应用程序在被安装到客户端上时,机器学习模型中的计算单元也根据当时的安装环境(例如CPU环境、缓存大小等)被部署在客户端上,该应用程序在客户端上被打开运行时,将输入数据输入至机器学习模型,并遍历执行该机器学习模型中的计算单元,得到输出结果。
该应用程序在客户端设备的CPU上执行,因此机器学习模型中计算单元的执行环境为应用程序被安装时的CPU环境。如果机器学习模型需要更新,如计算单元需要修改或者需要增加新的计算单元,则可以在客户端设备上重新安装应用程序,以便将更新后的机器学习模型部署在客户端设备上,使得修改后或者新增的计算单元能够在该客户端设备的当前CPU环境下执行。但是这种方式需要增发新的应用程序版本,在使用该应用程序的客户端较多的情况下,其增发成本较高。
本实施例在机器学习模型有更新的情况下,为了不增发应用程序新版本,首先根据机器学习模型的更新数据建立预设映射信息,该预设映射信息中包括新增加的计算单元或者有修改的计算单元与第一执行信息之间的映射关系。第一执行信息可以包括但不限于计算单元的执行逻辑以及运行参数;执行逻辑可以是用于实现该计算单元对应的计算任务的一段程序代码,运行参数可以包括但不限于该执行逻辑的执行环境信息(例如缓存大小等)、该计算单元的输入(例如从哪个计算单元获得输入)、计算单元的输出(例如将该计算单元的执行结果输出给哪个单元等)等。
在建立了预设映射信息之后,可以将预设映射信息写入机器学习模型,也可以单独将预设映射信息存成配置文件,之后将机器学习模型、预设映射信息和第一执行信息等更新数据上传至服务器,服务器可以通知客户端该机器学习模型有更新数据,并将该更新数据发送给客户端,或者客户端可以周期性地询问服务器,并从服务器获取该更新数据。需要说明的是,如果预设映射信息单独存成配置文件时,可以不将整个机器学习模型发送给客户端,而是将预设映射信息以及第一执行信息发送给客户端。
客户端接收到机器学习模型的更新数据之后,可以将更新数据存储在本地存储设备。在客户端上打开该机器学习模型对应的应用程序,并由该应用程序遍历执行该机器学习模型时,可以针对每个当前被遍历到的计算单元,查看预设映射信息中是否记录了该计算单元的更新信息,也即将当前被遍历的计算单元与预设映射信息中的内容进行匹配,如果预设映射信息中存在相匹配的内容,则可以认为该计算单元的执行信息被更新过,因此可以根据预设映射信息中的映射关系确定与该计算单元具有映射关系的第一执行信息,进而从相应的存储位置获取该第一执行信息,并根据该第一执行信息执行当前被遍历的该计算单元。
例如,该第一执行信息可以包括更新后的该计算单元对应的计算任务的程序代码以及运行参数,可以通过该运行参数配置该程序代码,并加载执行该程序代码,以实现该计算单元的计算任务。当前被遍历的计算单元被执行完成之后可以执行下一计算单元,当然可以理解的是,机器学习模型中的多个计算单元还可以是并行执行关系,在当前被遍历的计算单元被执行的同时,其他计算单元也可以通过同样的方式被遍历执行。
需要说明的是,在机器学习模型的更新为增加了新的计算单元时,需要将更新后的机器学习模型、预设映射信息以及第一执行信息均上传到服务器,并由客户端下载至本地。因为机器学习模型中新增加的计算单元的计算时机(例如该新增加的计算单元与哪些计算单元相连,并且在哪些计算单元之后执行等)是写在机器学习模型中的,因此需要将更新后的整个机器学习模型动态部署到客户端本地,客户端在遍历执行机器学习模型时,也时遍历执行该更新后的机器学习模型。
本公开实施例在机器学习模型的执行过程中,确定当前执行的目标计算单元的类别,并在目标计算单元为预设类别时,则从预设存储位置获取该目标计算单元的执行逻辑,并将该执行逻辑加载至GPU执行。通过这种方式,在目标执行单元的执行逻辑发生变化时,可以将发生变化后的执行逻辑部署到预设存储位置处,而机器学习模型在执行时从预设存储位置处取出更新后的执行逻辑,并加载至GPU执行,能够使得机器学习模型有更新之后,无需增发新的应用版本,从而大大降低了成本。
在本实施例的一个可选实现方式中,如图10所示,所述装置进一步还包括:
第五获取模块1001,被配置为在匹配失败后,从所述机器学习模型中获取当前被遍历的所述计算单元的第二执行信息;
第四执行模块1002,被配置为根据所述第二执行信息执行当前被遍历的所述计算单元。
该可选的实现方式中,对于机器学习模型中未被更新过的计算单元,可以从机器学习模型中获取第二执行信息,该第二执行信息是机器模型中该计算单元的原始执行信息,在安装应用程序时,根据当时的安装环境配置过的,因此直接在客户端设备的CPU上执行该第二执行信息即可。
在本实施例的一个可选实现方式中,如图11所示,所述第四获取模块902,包括:
第一确定子模块1101,被配置为根据所述预设映射信息确定所述第一执行信息的获取方式;其中,所述获取方式包括所述第一执行信息的标识和/或存储位置;
第二获取子模块1102,被配置为根据所述第一执行信息的标识和/或存储位置从本地存储设备获取所述第一执行信息。
该可选的实现方式中,预设映射信息中可以包括新增加的或者更新过的预设计算单元与第一执行信息之间的映射关系,该映射关系具体可以为预设计算单元的标识与第一执行信息的标识和/或相对存储位置之间的映射关系,因此可以根据该映射关系确定了第一执行信息的标识和/或相对存储之后,可以从客户端的存储设备上找到该第一执行信息,并从存储设备获取该第一执行信息。需要说明的是,该第一执行信息的相对存储位置可以是该第一执行信息在本次更新数据中的位置,客户端在从服务器接收到机器学习模型的更新数据之后,可以将该更新数据存储在本地存储设备上,并且记录下来该更新数据在本地存储设备的起始位置,在获取该第一执行信息时,可以通过该起始位置以及预设映射信息中的相对位置确定该第一执行信息在客户端的本地存储设备上的真实存储地址,进而从该真实存储地址获得该第一执行信息。
在本实施例的一个可选实现方式中,所述第一执行信息包括shader程序和所述shader程序的运行参数;所述第三执行模块903,包括:
第四执行子模块,被配置为利用所述运行参数对所述shader程序进行配置,并在GPU上加载执行所述shader程序。
该可选的实现方式中,机器学习模型中新增加或者有修改的计算单元的第一执行信息中的执行逻辑可以采用shader程序来实现,由于shader程序是运行在GPU上,并且可以被动态配置并加载,因此使用shader程序实现机器学习模型中新增加或有修改的计算单元后,可以直接将该shader程序利用运行参数配置完成后加载到GPU上执行,而无需重新在客户端设备的CPU环境下安装封装有该机器学习模型的安装程序。由于在CPU上执行的程序需要在安装过程中根据CPU环境进行自动配置(例如配置缓存信息等)后才能执行,而shader程序可以在GPU上动态配置并加载执行,因此通过在GPU上执行shader程序的方式可以实现机器学习模型中计算单元的动态扩充及修改。
在本实施例的一个可选实现方式中,所述第一执行信息包括动态库;所述第三执行模块903,包括:
第五执行子模块,被配置为在CPU的即时编辑环境下加载执行所述动态库。
该可选的实现方式中,如果客户端设备的CPU环境支持即时编译环境如JIT环境,则机器学习模型中新增加或者有修改的计算单元的第一执行信息中的执行逻辑还可以采用动态库的形式来实现。这种方式下,新增加或者修改后的计算单元可以实现为动态库,并且在CPU上加载执行机器学习模型的时候,通过动态加载该动态库来实现该计算单元的计算任务。
在本实施例的一个可选实现方式中,所述第一执行信息包括脚本程序;所述第三执行模块903,包括:
第六执行子模块,被配置为在CPU的虚拟机环境下加载执行所述脚本程序。
该可选的实现方式中,机器学习模型中新增加或者有修改的计算单元的第一执行信息还可以采用脚本来实现。通过在CPU上执行一虚拟机,并在执行机器学习模型上的该计算单元时,将对应的脚本加载到虚拟机执行,以完成计算单元的计算任务。
在本实施例的一个可选实现方式中,如图12所示,所述装置进一步还包括:
第六获取模块1201,被配置为获取所述机器学习模型的更新数据;其中,所述更新数据包括所述预设映射信息和所述第一执行信息;
第二存储模块1202,被配置为存储所述更新数据。
该可选的实现方式中,客户端在安装了封装有机器学习模型的应用程序之后,如果该机器学习模型有更新,客户端可以从服务器获取该机器学习模型的更新数据,并存储在客户端本地。该更新数据包括预设映射信息以及第一执行信息,预设映射信息包括该机器学习模型中新增加或者有修改的预设计算单元与预设该计算单元的第一执行信息之间的映射关系,第一执行信息可以包括但不限于该预设计算单元的执行逻辑和运行参数等。客户端将更新数据存储在本地存储设备后,完成了对更新后的机器学习模型的动态部署,而在执行该机器学习模型的时候,则可以根据该预设映射信息以及第一执行信息执行预设计算单元,而其他计算单元可以依然基于机器学习模型自带的执行逻辑来执行。
图13示出根据本公开一实施方式的更新装置的结构框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图13所示,所述更新装置包括:
第七获取模块1301,被配置为获取所述机器学习模型的更新数据;其中,所述更新数据包括所述机器学习模型中至少一个动态计算单元对应的第一执行信息;
第一部署模块1302,被配置为根据所述更新数据重新部署所述机器学习模型;
第五执行模块1303,被配置为响应于对所述机器学习模型的执行请求,遍历执行所述机器学习模型,并在当前被遍历的计算单元为所述动态计算单元时,获取所述动态计算单元对应的所述第一执行信息,以及根据所述第一执行信息执行当前被遍历的所述计算单元。
进一步地,还包括:
第六执行模块,被配置为在当前被遍历的计算单元为非动态执行单元时,执行当前被遍历的所述计算单元对应的第二执行信息;其中,所述第二执行信息位于所述机器学习模型中。
进一步地,所述第一执行信息包括shader程序和所述shader程序的运行参数;所述第五执行模块,包括:
第七执行子模块,被配置为利用所述运行参数对所述shader程序进行配置,并在GPU上加载执行所述shader程序。
进一步地,所述第一执行信息包括动态库;所述第五执行模块,包括:
第八执行子模块,被配置为在CPU的即时编辑环境下加载执行所述动态库。
进一步地,所述第一执行信息包括脚本程序;所述第五执行模块,包括:
第九执行子模块,被配置为在CPU的虚拟机环境下加载执行所述脚本程序。
本实施例提出的执行装置与图7所示实施例中及相关实施例中的更新方法对应一致,具体细节可参见上述对图7所示实施例及相关实施例中更新方法的描述,在此不再赘述。
图14示出根据本公开一实施方式的更新装置的结构框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图14所示,所述更新装置包括:
第八获取模块1401,被配置为获取所述机器学习模型的更新数据;其中,所述更新数据包括预设映射信息以及第一执行信息;所述预设映射信息包括所述第一执行信息与所述机器学习模型中的预设计算单元之间的映射关系;
第二部署模块1402,被配置为根据所述更新数据重新部署所述机器学习模型;
第七执行模块1403,被配置为响应于对所述机器学习模型的执行请求,遍历执行所述机器学习模型,并在当前被遍历的计算单元与所述预设映射信息中的所述预设计算单元相匹配时,根据所述第一执行信息执行当前被遍历的所述计算单元。
本实施例中,机器学习模型可以被封装成应用程序,以便在客户端上通过安装该应用程序来部署该机器学习模型。机器学习模型可以包括多个计算单元以及多个计算单元之间的连接关系;每个计算单元可以完成一个计算任务。计算单元的计算任务可以由计算机程序代码来实现,具体与机器学习模型的类型有关,例如神经网络模型中的一个神经元可以是一个计算单元。多个计算单元之间的连接关系可以包括但不限于顺序执行关系和/并行执行关系。
应用程序在被安装到客户端上时,机器学习模型中的计算单元也根据当时的安装环境(例如CPU环境、缓存大小等)被部署在客户端上,该应用程序在客户端上被打开运行时,将输入数据输入至机器学习模型,并遍历执行该机器学习模型中的计算单元,得到输出结果。
该应用程序在客户端设备的CPU上执行,因此机器学习模型中计算单元的执行环境为应用程序被安装时的CPU环境。如果机器学习模型需要更新,如计算单元需要修改或者需要增加新的计算单元,则可以在客户端设备上重新安装应用程序,以便将更新后的机器学习模型部署在客户端设备上,使得修改后或者新增的计算单元能够在该客户端设备的当前CPU环境下执行。但是这种方式需要增发新的应用程序版本,在使用该应用程序的客户端较多的情况下,其增发成本较高。
本实施例在机器学习模型有更新的情况下,为了不增发应用程序新版本,首先根据机器学习模型的更新数据建立预设映射信息,该预设映射信息中包括新增加的计算单元或者有修改的计算单元与第一执行信息之间的映射关系。第一执行信息可以包括但不限于计算单元的执行逻辑以及运行参数;执行逻辑可以是用于实现该计算单元对应的计算任务的一段程序代码,运行参数可以包括但不限于该执行逻辑的执行环境信息(例如缓存大小等)、该计算单元的输入(例如从哪个计算单元获得输入)、计算单元的输出(例如将该计算单元的执行结果输出给哪个单元等)等。
在建立了预设映射信息之后,可以将预设映射信息写入机器学习模型,也可以单独将预设映射信息存成配置文件,之后将机器学习模型、预设映射信息和第一执行信息等更新数据上传至服务器,服务器可以通知客户端该机器学习模型有更新数据,并将该更新数据发送给客户端,或者客户端可以周期性地询问服务器,并从服务器获取该更新数据。需要说明的是,如果预设映射信息单独存成配置文件时,可以不将整个机器学习模型发送给客户端,而是将预设映射信息以及第一执行信息发送给客户端。
客户端可以从服务器获取该机器学习模型的更新数据,并存储在客户端本地。该更新数据包括预设映射信息以及第一执行信息,预设映射信息包括该机器学习模型中新增加或者有修改的预设计算单元与预设该计算单元的第一执行信息之间的映射关系,第一执行信息可以包括但不限于该预设计算单元的执行逻辑和运行参数等。客户端将更新数据存储在本地存储设备后,完成了对更新后的机器学习模型的动态部署,而在执行该机器学习模型的时候,则可以根据该预设映射信息以及第一执行信息执行预设计算单元,而其他计算单元可以依然基于机器学习模型自带的执行逻辑来执行。
用户可以通过在客户端上打开该机器学习模型对应的应用程序,以便由该应用程序遍历执行该机器学习模型的过程中,可以针对每个当前被遍历到的计算单元,查看预设映射信息中是否记录了该计算单元的更新信息,也即将当前被遍历的计算单元与预设映射信息中的内容进行匹配,如果预设映射信息中存在相匹配的内容,则可以认为该计算单元的执行信息被更新过,因此可以根据预设映射信息中的映射关系确定与该计算单元具有映射关系的第一执行信息,进而从相应的存储位置获取该第一执行信息,并根据该第一执行信息执行当前被遍历的该计算单元。
例如,该第一执行信息可以包括更新后的该计算单元对应的计算任务的程序代码以及运行参数,可以通过该运行参数配置该程序代码,并加载执行该程序代码,以实现该计算单元的计算任务。当前被遍历的计算单元被执行完成之后可以执行下一计算单元,当然可以理解的是,机器学习模型中的多个计算单元还可以是并行执行关系,在当前被遍历的计算单元被执行的同时,其他计算单元也可以通过同样的方式被遍历执行。
需要说明的是,在机器学习模型的更新为增加了新的计算单元时,需要将更新后的机器学习模型、预设映射信息以及第一执行信息均上传到服务器,并由客户端下载至本地。因为机器学习模型中新增加的计算单元的计算时机(例如该新增加的计算单元与哪些计算单元相连,并且在哪些计算单元之后执行等)是写在机器学习模型中的,因此需要将更新后的整个机器学习模型动态部署到客户端本地,客户端在遍历执行机器学习模型时,也时遍历执行该更新后的机器学习模型。
本公开实施例在机器学习模型的执行过程中,确定当前执行的目标计算单元的类别,并在目标计算单元为预设类别时,则从预设存储位置获取该目标计算单元的执行逻辑,并将该执行逻辑加载至GPU执行。通过这种方式,在目标执行单元的执行逻辑发生变化时,可以将发生变化后的执行逻辑部署到预设存储位置处,而机器学习模型在执行时从预设存储位置处取出更新后的执行逻辑,并加载至GPU执行,能够使得机器学习模型有更新之后,无需增发新的应用版本,从而大大降低了成本。
在本实施例的一个可选实现方式中,所述装置进一步还包括:
第八执行模块,被配置为在当前被遍历的计算单元与所述预设映射信息中的所述预设计算单元不匹配时,执行当前被遍历的所述计算单元对应的第二执行信息;其中,所述第二执行信息位于所述机器学习模型中。
该可选的实现方式中,预设映射信息中存储有新增加或者有修改的计算单元与对应的第一执行信息之间的映射关系。如果是机器学习模型原始框架中的未被修改过的计算单元,则预设映射信息中不存在其对应的信息。因此,对于机器学习模型中未被更新过的计算单元,可以从机器学习模型中获取第二执行信息,该第二执行信息是机器模型中该计算单元的原始执行信息,在安装应用程序时,根据当时的安装环境配置过的,因此直接在客户端设备的CPU上执行该第二执行信息即可。
在本实施例的一个可选实现方式中,所述第一执行信息包括shader程序和所述shader程序的运行参数;所述第七执行模块1403,包括:
第十执行子模块,被配置为利用所述运行参数对所述shader程序进行配置,并在GPU上加载执行所述shader程序。
该可选的实现方式中,机器学习模型中新增加或者有修改的计算单元的第一执行信息中的执行逻辑可以采用shader程序来实现,由于shader程序是运行在GPU上,并且可以被动态配置并加载,因此使用shader程序实现机器学习模型中新增加或有修改的计算单元后,可以直接将该shader程序利用运行参数配置完成后加载到GPU上执行,而无需重新在客户端设备的CPU环境下安装封装有该机器学习模型的安装程序。由于在CPU上执行的程序需要在安装过程中根据CPU环境进行自动配置(例如配置缓存信息等)后才能执行,而shader程序可以在GPU上动态配置并加载执行,因此通过在GPU上执行shader程序的方式可以实现机器学习模型中计算单元的动态扩充及修改。
在本实施例的一个可选实现方式中,所述第一执行信息包括动态库;所述第七执行模块1403,包括:
第十一执行子模块,被配置为在CPU的即时编辑环境下加载执行所述动态库。
该可选的实现方式中,如果客户端设备的CPU环境支持即时编译环境如JIT环境,则机器学习模型中新增加或者有修改的计算单元的第一执行信息中的执行逻辑还可以采用动态库的形式来实现。这种方式下,新增加或者修改后的计算单元可以实现为动态库,并且在CPU上加载执行机器学习模型的时候,通过动态加载该动态库来实现该计算单元的计算任务。
在本实施例的一个可选实现方式中,所述第一执行信息包括脚本程序;所述第七执行模块1403,包括:
第十二执行子模块,被配置为在CPU的虚拟机环境下加载执行所述脚本程序。
该可选的实现方式中,机器学习模型中新增加或者有修改的计算单元的第一执行信息还可以采用脚本来实现。通过在CPU上执行一虚拟机,并在执行机器学习模型上的该计算单元时,将对应的脚本加载到虚拟机执行,以完成计算单元的计算任务。
图15是适于用来实现根据本公开实施方式的执行方法或更新方法的电子设备的结构示意图。
如图15所示,电子设备1500包括中央处理单元(CPU)1501,其可以根据存储在只读存储器(ROM)1502中的程序或者从存储部分1508加载到随机访问存储器(RAM)1503中的程序而执行本公开上述方法的实施方式中的各种处理。在RAM1503中,还存储有电子设备1500操作所需的各种程序和数据。CPU1501、ROM1502以及RAM1503通过总线1504彼此相连。输入/输出(I/O)接口1505也连接至总线1504。
以下部件连接至I/O接口1505:包括键盘、鼠标等的输入部分1506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1507;包括硬盘等的存储部分1508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1509。通信部分1509经由诸如因特网的网络执行通信处理。驱动器1510也根据需要连接至I/O接口1505。可拆卸介质1511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1510上,以便于从其上读出的计算机程序根据需要被安装入存储部分1508。
特别地,根据本公开的实施方式,上文参考本公开实施方式中的方法可以被实现为计算机软件程序。例如,本公开的实施方式包括一种计算机程序产品,其包括有形地包含在及其可读介质上的计算机程序,所述计算机程序包含用于执行本公开实施方式中方法的程序代码。在这样的实施方式中,该计算机程序可以通过通信部分1509从网络上被下载和安装,和/或从可拆卸介质1511被安装。
附图中的流程图和框图,图示了按照本公开各种实施方式的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,路程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施方式中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
作为另一方面,本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施方式中所述装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本公开的方法。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (50)

1.一种执行方法,其特征在于,包括:
在遍历执行机器学习模型的过程中,当前被遍历的计算单元为动态计算单元时,确定所述动态计算单元对应的预设更新位置;
从所述预设更新位置获取所述动态计算单元的第一执行信息;
根据所述第一执行信息执行当前被遍历的所述计算单元。
2.根据权利要求1所述的方法,其特征在于,还包括:
在当前被遍历的计算单元为非动态计算单元时,从所述机器学习模型中获取当前被遍历的所述计算单元的第二执行信息;
根据所述第二执行信息执行当前被遍历的所述计算单元。
3.根据权利要求1-2任一项所述的方法,其特征在于,确定所述动态计算单元对应的预设更新位置,包括:
将所述动态计算单元与预设映射信息进行匹配;
根据匹配结果获取所述动态计算单元对应的所述预设更新位置。
4.根据权利要求1-2任一项所述的方法,其特征在于,所述第一执行信息包括shader程序和所述shader程序的运行参数;根据所述第一执行信息执行当前被遍历的所述计算单元,包括:
利用所述运行参数对所述shader程序进行配置,并在GPU上加载执行所述shader程序。
5.根据权利要求1-2任一项所述的方法,其特征在于,所述第一执行信息包括动态库;根据所述第一执行信息执行当前被遍历的所述计算单元,包括:
在CPU的即时编辑环境下加载执行所述动态库。
6.根据权利要求1-2任一项所述的方法,其特征在于,所述第一执行信息包括脚本程序;根据所述第一执行信息执行当前被遍历的所述计算单元,包括:
在CPU的虚拟机环境下加载执行所述脚本程序。
7.根据权利要求3所述的方法,其特征在于,还包括:
获取所述机器学习模型的更新数据;其中,所述更新数据包括所述预设映射信息和所述第一执行信息;
存储所述更新数据。
8.一种执行方法,其特征在于,包括:
在遍历执行机器学习模型时,将当前被遍历的计算单元与预设映射信息进行匹配;其中,所述预设映射信息中包括所述机器学习模型中预设计算单元与第一执行信息之间的映射关系;
在匹配成功后,根据所述预设映射信息获取与当前被遍历的所述计算单元具有映射关系的第一执行信息;
根据所述第一执行信息执行当前被遍历的所述计算单元。
9.根据权利要求8所述的方法,其特征在于,还包括:
在匹配失败后,从所述机器学习模型中获取当前被遍历的所述计算单元的第二执行信息;
根据所述第二执行信息执行当前被遍历的所述计算单元。
10.根据权利要求8-9任一项所述的方法,其特征在于,根据所述预设映射信息获取与当前被遍历的所述计算单元具有映射关系的第一执行信息,包括:
根据所述预设映射信息确定所述第一执行信息的获取方式;其中,所述获取方式包括所述第一执行信息的标识和/或存储位置;
根据所述第一执行信息的标识和/或存储位置从本地存储设备获取所述第一执行信息。
11.根据权利要求8-9任一项所述的方法,其特征在于,所述第一执行信息包括shader程序和所述shader程序的运行参数;根据所述第一执行信息执行当前被遍历的所述计算单元,包括:
利用所述运行参数对所述shader程序进行配置,并在GPU上加载执行所述shader程序。
12.根据权利要求8-9任一项所述的方法,其特征在于,所述第一执行信息包括动态库;根据所述第一执行信息执行当前被遍历的所述计算单元,包括:
在CPU的即时编辑环境下加载执行所述动态库。
13.根据权利要求8-9任一项所述的方法,其特征在于,所述第一执行信息包括脚本程序;根据所述第一执行信息执行当前被遍历的所述计算单元,包括:
在CPU的虚拟机环境下加载执行所述脚本程序。
14.根据权利要求8-9任一项所述的方法,其特征在于,还包括:
获取所述机器学习模型的更新数据;其中,所述更新数据包括所述预设映射信息和所述第一执行信息;
存储所述更新数据。
15.一种更新方法,其特征在于,包括:
获取所述机器学习模型的更新数据;其中,所述更新数据包括所述机器学习模型中至少一个动态计算单元对应的第一执行信息;
根据所述更新数据重新部署所述机器学习模型;
响应于对所述机器学习模型的执行请求,遍历执行所述机器学习模型,并在当前被遍历的计算单元为所述动态计算单元时,获取所述动态计算单元对应的所述第一执行信息,以及根据所述第一执行信息执行当前被遍历的所述计算单元。
16.根据权利要求15所述的方法,其特征在于,还包括:
在当前被遍历的计算单元为非动态执行单元时,执行当前被遍历的所述计算单元对应的第二执行信息;其中,所述第二执行信息位于所述机器学习模型中。
17.根据权利要求15-16任一项所述的方法,其特征在于,所述第一执行信息包括shader程序和所述shader程序的运行参数;根据所述第一执行信息执行当前被遍历的所述计算单元,包括:
利用所述运行参数对所述shader程序进行配置,并在GPU上加载执行所述shader程序。
18.根据权利要求15-16任一项所述的方法,其特征在于,所述第一执行信息包括动态库;根据所述第一执行信息执行当前被遍历的所述计算单元,包括:
在CPU的即时编辑环境下加载执行所述动态库。
19.根据权利要求15-16任一项所述的方法,其特征在于,所述第一执行信息包括脚本程序;根据所述第一执行信息执行当前被遍历的所述计算单元,包括:
在CPU的虚拟机环境下加载执行所述脚本程序。
20.一种更新方法,其特征在于,包括:
获取所述机器学习模型的更新数据;其中,所述更新数据包括预设映射信息以及第一执行信息;所述预设映射信息包括所述第一执行信息与所述机器学习模型中的预设计算单元之间的映射关系;
根据所述更新数据重新部署所述机器学习模型;
响应于对所述机器学习模型的执行请求,遍历执行所述机器学习模型,并在当前被遍历的计算单元与所述预设映射信息中的所述预设计算单元相匹配时,根据所述第一执行信息执行当前被遍历的所述计算单元。
21.根据权利要求20所述的方法,其特征在于,还包括:
在当前被遍历的计算单元与所述预设映射信息中的所述预设计算单元不匹配时,执行当前被遍历的所述计算单元对应的第二执行信息;其中,所述第二执行信息位于所述机器学习模型中。
22.根据权利要求20-21任一项所述的方法,其特征在于,所述第一执行信息包括shader程序和所述shader程序的运行参数;根据所述第一执行信息执行当前被遍历的所述计算单元,包括:
利用所述运行参数对所述shader程序进行配置,并在GPU上加载执行所述shader程序。
23.根据权利要求20-21任一项所述的方法,其特征在于,所述第一执行信息包括动态库;根据所述第一执行信息执行当前被遍历的所述计算单元,包括:
在CPU的即时编辑环境下加载执行所述动态库。
24.根据权利要求20-21任一项所述的方法,其特征在于,所述第一执行信息包括脚本程序;根据所述第一执行信息执行当前被遍历的所述计算单元,包括:
在CPU的虚拟机环境下加载执行所述脚本程序。
25.一种执行装置,其特征在于,包括:
第一确定模块,被配置为在遍历执行机器学习模型的过程中,当前被遍历的计算单元为动态计算单元时,确定所述动态计算单元对应的预设更新位置;
第一获取模块,被配置为从所述预设更新位置获取所述动态计算单元的第一执行信息;
第一执行模块,被配置为根据所述第一执行信息执行当前被遍历的所述计算单元。
26.根据权利要求25所述的装置,其特征在于,还包括:
第二获取模块,被配置为在当前被遍历的计算单元为非动态计算单元时,从所述机器学习模型中获取当前被遍历的所述计算单元的第二执行信息;
第二执行模块,被配置为根据所述第二执行信息执行当前被遍历的所述计算单元。
27.根据权利要求25-26任一项所述的装置,其特征在于,所述第一确定模块,包括:
第一匹配子模块,被配置为将所述动态计算单元与预设映射信息进行匹配;
第一获取子模块,被配置为根据匹配结果获取所述动态计算单元对应的所述预设更新位置。
28.根据权利要求25-26任一项所述的装置,其特征在于,所述第一执行信息包括shader程序和所述shader程序的运行参数;所述第一执行模块,包括:
第一执行子模块,被配置为利用所述运行参数对所述shader程序进行配置,并在GPU上加载执行所述shader程序。
29.根据权利要求25-26任一项所述的装置,其特征在于,所述第一执行信息包括动态库;所述第一执行模块,包括:
第二执行子模块,被配置为在CPU的即时编辑环境下加载执行所述动态库。
30.根据权利要求25-26任一项所述的装置,其特征在于,所述第一执行信息包括脚本程序;所述第一执行模块,包括:
第三执行子模块,被配置为在CPU的虚拟机环境下加载执行所述脚本程序。
31.根据权利要求27所述的装置,其特征在于,还包括:
第三获取模块,被配置为获取所述机器学习模型的更新数据;其中,所述更新数据包括所述预设映射信息和所述第一执行信息;
第一存储模块,被配置为存储所述更新数据。
32.一种执行装置,其特征在于,包括:
匹配模块,被配置为在遍历执行机器学习模型时,将当前被遍历的计算单元与预设映射信息进行匹配;其中,所述预设映射信息中包括所述机器学习模型中预设计算单元与第一执行信息之间的映射关系;
第四获取模块,被配置为在匹配成功后,根据所述预设映射信息获取与当前被遍历的所述计算单元具有映射关系的第一执行信息;
第三执行模块,被配置为根据所述第一执行信息执行当前被遍历的所述计算单元。
33.根据权利要求32所述的装置,其特征在于,还包括:
第五获取模块,被配置为在匹配失败后,从所述机器学习模型中获取当前被遍历的所述计算单元的第二执行信息;
第四执行模块,被配置为根据所述第二执行信息执行当前被遍历的所述计算单元。
34.根据权利要求32-33任一项所述的装置,其特征在于,所述第四获取模块,包括:
第一确定子模块,被配置为根据所述预设映射信息确定所述第一执行信息的获取方式;其中,所述获取方式包括所述第一执行信息的标识和/或存储位置;
第二获取子模块,被配置为根据所述第一执行信息的标识和/或存储位置从本地存储设备获取所述第一执行信息。
35.根据权利要求32-33任一项所述的装置,其特征在于,所述第一执行信息包括shader程序和所述shader程序的运行参数;所述第三执行模块,包括:
第四执行子模块,被配置为利用所述运行参数对所述shader程序进行配置,并在GPU上加载执行所述shader程序。
36.根据权利要求32-33任一项所述的装置,其特征在于,所述第一执行信息包括动态库;所述第三执行模块,包括:
第五执行子模块,被配置为在CPU的即时编辑环境下加载执行所述动态库。
37.根据权利要求32-33任一项所述的装置,其特征在于,所述第一执行信息包括脚本程序;所述第三执行模块,包括:
第六执行子模块,被配置为在CPU的虚拟机环境下加载执行所述脚本程序。
38.根据权利要求32-33任一项所述的装置,其特征在于,还包括:
第六获取模块,被配置为获取所述机器学习模型的更新数据;其中,所述更新数据包括所述预设映射信息和所述第一执行信息;
第二存储模块,被配置为存储所述更新数据。
39.一种更新装置,其特征在于,包括:
第七获取模块,被配置为获取所述机器学习模型的更新数据;其中,所述更新数据包括所述机器学习模型中至少一个动态计算单元对应的第一执行信息;
第一部署模块,被配置为根据所述更新数据重新部署所述机器学习模型;
第五执行模块,被配置为响应于对所述机器学习模型的执行请求,遍历执行所述机器学习模型,并在当前被遍历的计算单元为所述动态计算单元时,获取所述动态计算单元对应的所述第一执行信息,以及根据所述第一执行信息执行当前被遍历的所述计算单元。
40.根据权利要求39所述的装置,其特征在于,还包括:
第六执行模块,被配置为在当前被遍历的计算单元为非动态执行单元时,执行当前被遍历的所述计算单元对应的第二执行信息;其中,所述第二执行信息位于所述机器学习模型中。
41.根据权利要求39-40任一项所述的装置,其特征在于,所述第一执行信息包括shader程序和所述shader程序的运行参数;所述第五执行模块,包括:
第七执行子模块,被配置为利用所述运行参数对所述shader程序进行配置,并在GPU上加载执行所述shader程序。
42.根据权利要求39-40任一项所述的装置,其特征在于,所述第一执行信息包括动态库;所述第五执行模块,包括:
第八执行子模块,被配置为在CPU的即时编辑环境下加载执行所述动态库。
43.根据权利要求39-40任一项所述的装置,其特征在于,所述第一执行信息包括脚本程序;所述第五执行模块,包括:
第九执行子模块,被配置为在CPU的虚拟机环境下加载执行所述脚本程序。
44.一种更新装置,其特征在于,包括:
第八获取模块,被配置为获取所述机器学习模型的更新数据;其中,所述更新数据包括预设映射信息以及第一执行信息;所述预设映射信息包括所述第一执行信息与所述机器学习模型中的预设计算单元之间的映射关系;
第二部署模块,被配置为根据所述更新数据重新部署所述机器学习模型;
第七执行模块,被配置为响应于对所述机器学习模型的执行请求,遍历执行所述机器学习模型,并在当前被遍历的计算单元与所述预设映射信息中的所述预设计算单元相匹配时,根据所述第一执行信息执行当前被遍历的所述计算单元。
45.根据权利要求44所述的装置,其特征在于,还包括:
第八执行模块,被配置为在当前被遍历的计算单元与所述预设映射信息中的所述预设计算单元不匹配时,执行当前被遍历的所述计算单元对应的第二执行信息;其中,所述第二执行信息位于所述机器学习模型中。
46.根据权利要求44-45任一项所述的装置,其特征在于,所述第一执行信息包括shader程序和所述shader程序的运行参数;所述第七执行模块,包括:
第十执行子模块,被配置为利用所述运行参数对所述shader程序进行配置,并在GPU上加载执行所述shader程序。
47.根据权利要求44-45任一项所述的装置,其特征在于,所述第一执行信息包括动态库;所述第七执行模块,包括:
第十一执行子模块,被配置为在CPU的即时编辑环境下加载执行所述动态库。
48.根据权利要求44-45任一项所述的装置,其特征在于,所述第一执行信息包括脚本程序;所述第七执行模块,包括:
第十二执行子模块,被配置为在CPU的虚拟机环境下加载执行所述脚本程序。
49.一种电子设备,其特征在于,包括存储器和处理器;其中,
所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现权利要求1-24任一项所述的方法。
50.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,该计算机指令被处理器执行时实现权利要求1-24任一项所述的方法。
CN201911067981.0A 2019-11-04 2019-11-04 执行方法、装置、电子设备及存储介质 Pending CN112783520A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911067981.0A CN112783520A (zh) 2019-11-04 2019-11-04 执行方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911067981.0A CN112783520A (zh) 2019-11-04 2019-11-04 执行方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN112783520A true CN112783520A (zh) 2021-05-11

Family

ID=75747362

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911067981.0A Pending CN112783520A (zh) 2019-11-04 2019-11-04 执行方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN112783520A (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120180024A1 (en) * 2011-01-07 2012-07-12 International Business Machines Corporation Synchronizing development code and deployed executable versioning within distributed systems
WO2017071494A1 (zh) * 2015-10-26 2017-05-04 阿里巴巴集团控股有限公司 一种应用部署方法和装置
CN108804077A (zh) * 2017-04-28 2018-11-13 英特尔公司 用来执行用于机器学习的浮点和整数操作的指令和逻辑
CN109034394A (zh) * 2018-07-02 2018-12-18 第四范式(北京)技术有限公司 一种机器学习模型的更新方法和装置
CN109313721A (zh) * 2016-05-20 2019-02-05 渊慧科技有限公司 训练机器学习模型
CN109844868A (zh) * 2016-08-18 2019-06-04 谷歌有限责任公司 使用机器学习模型处理眼底图像
US20190294528A1 (en) * 2018-03-26 2019-09-26 Ca, Inc. Automated software deployment and testing

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120180024A1 (en) * 2011-01-07 2012-07-12 International Business Machines Corporation Synchronizing development code and deployed executable versioning within distributed systems
WO2017071494A1 (zh) * 2015-10-26 2017-05-04 阿里巴巴集团控股有限公司 一种应用部署方法和装置
CN109313721A (zh) * 2016-05-20 2019-02-05 渊慧科技有限公司 训练机器学习模型
CN109844868A (zh) * 2016-08-18 2019-06-04 谷歌有限责任公司 使用机器学习模型处理眼底图像
CN108804077A (zh) * 2017-04-28 2018-11-13 英特尔公司 用来执行用于机器学习的浮点和整数操作的指令和逻辑
US20190294528A1 (en) * 2018-03-26 2019-09-26 Ca, Inc. Automated software deployment and testing
CN109034394A (zh) * 2018-07-02 2018-12-18 第四范式(北京)技术有限公司 一种机器学习模型的更新方法和装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HAYDAR A.I.等: "CPU and memory performance analysis on dynamic and dedicated resource allocation using XenServer in Data Center environment", 2016 2ND INTERNATIONAL CONFERENCE ON SCIENCE AND TECHNOLOGY-COMPUTER (ICST), 16 March 2017 (2017-03-16) *
林文愉;王聪;: "动态模式识别算法的GPU平台实现", 计算技术与自动化, no. 01, 15 March 2013 (2013-03-15) *

Similar Documents

Publication Publication Date Title
US11405274B2 (en) Managing virtual network functions
US11288055B2 (en) Model-based differencing to selectively generate and deploy images in a target computing environment
US9075638B2 (en) Efficient hosting of virtualized containers using read-only operating systems
US7823023B2 (en) Test framework for testing an application
US11513789B2 (en) Application deployment method, apparatus, and system
US9582623B2 (en) Dynamically loaded system-level simulation
CN107193607B (zh) 用于更新代码文件的方法和装置、存储介质、处理器以及终端
US11886302B1 (en) System and method for execution of applications in a container
CN105955805A (zh) 一种应用容器迁移的方法及装置
US8516480B1 (en) Enabling offline work in a virtual data center
CN113467882A (zh) 部署容器的方法及系统
US11656864B2 (en) Automatic application of software updates to container images based on dependencies
CN113434283B (zh) 服务调度方法及装置、服务器、计算机可读存储介质
WO2022100439A1 (en) Workflow patching
CN108062239A (zh) 一种加速器加载方法、系统和加速器加载装置
CN110083366B (zh) 应用运行环境的生成方法、装置、计算设备及存储介质
CN110958138B (zh) 一种容器扩容方法及装置
US11385923B2 (en) Container-based virtualization system extending kernel functionality using kernel modules compiled by a compiling container and loaded by an application container
CN113204376A (zh) 文件解析方法、装置、计算机设备以及存储介质
CN116107657B (zh) 基于qiankun的应用存储方法、装置、设备和计算机存储介质
CN112783520A (zh) 执行方法、装置、电子设备及存储介质
CN114756261B (zh) 一种容器集群的升级方法、系统、电子设备及介质
US11474807B1 (en) Firmware update method and computer program product for updating firmware
CN113778564B (zh) 一种高效执行evm智能合约的方法、设备及储存介质
CN112804352B (zh) 云服务器初始化方法、装置及存储介质

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