CN111357014B - 一种ai模型的开发方法及装置 - Google Patents
一种ai模型的开发方法及装置 Download PDFInfo
- Publication number
- CN111357014B CN111357014B CN201880074664.9A CN201880074664A CN111357014B CN 111357014 B CN111357014 B CN 111357014B CN 201880074664 A CN201880074664 A CN 201880074664A CN 111357014 B CN111357014 B CN 111357014B
- Authority
- CN
- China
- Prior art keywords
- model
- candidate
- parameter
- strategy
- platform
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/10—Interfaces, programming languages or software development kits, e.g. for simulating neural networks
- G06N3/105—Shells for specifying net layout
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请实施例公开了一种AI模型的开发方法及装置,涉及AI技术领域,可以在较低的成本下,开发出符合终端的运行环境以及性能要求的AI模型。具体方案为:开发平台获取待生成的AI模型的平台指示信息、业务指示信息和参数要求信息;从算子数据库中选择出与运行平台对应且用于执行第一业务的多个可用算子;从多个可用算子中选择算子并完成选择的算子的参数设置,生成第一候选策略;对第一候选策略进行样本训练得到第一候选AI模型;调用运行平台的模拟器组件运行第一候选AI模型执行第一业务处理测试数据,得到第一运行参数;若第一运行参数与参数要求信息匹配,则确定第一候选AI模型为目标AI模型。
Description
技术领域
本申请实施例涉及人工智能(artificial intelligence,AI)技术领域,尤其涉及一种AI模型的开发方法及装置。
背景技术
随着通信技术的发展和终端计算能力的增强,移动终端逐渐成为人们生活、娱乐、工作和学习中不可或缺的通用设备,扮演着个人智能助理的角色。AI是移动终端实现人工智能必不可少的技术。
传统的,云端可以针对不同的业务需求训练出多个AI模型。移动终端可以通过网络将待处理数据传输至云端的AI服务接口。云端通过相应的AI模型处理待处理数据,然后通过AI服务接口向移动终端传输处理结果。然而,随着人们对个人隐私的重视,AI模型端侧化的需求越来强烈。其中,AI模型的端侧化是指在移动终端中配置AI模型,由移动终端通过AI模型处理待处理数据。
一种方案中,可以在移动终端中搭载AI专用处理芯片,如神经网络计算单元(neural network processing unit,NPU)芯片,以及智能视频处理单元(VideoProcessing Unit,VPU)芯片等。但是,上述AI专用处理芯片的开发过程极其繁琐,且开发成本较大。
另一种方案中,可以在移动终端中配置云端的AI模型。但是,云端的AI模型通常会占用较大内存空间。并且,移动终端需要具备较强的计算能力,才可以通过该AI模型在较短的时间内得到处理结果。这样,AI模型则不能被广泛配置于移动终端中。即使一些方案中,可以尝试通过对AI模型的剪裁和压缩等技术降低AI模型的大小,提高AI模型的运算速度以降低对移动终端的要求。但是,不同的移动终端的系统不同,其所能够提供的AI模型的运行环境则不同,并且不同移动终端对AI模型的性能(如功耗、存储空间占用情况等)要求也不同。在上述方案中,需要业务能力较高的开发人员,针对每个终端的运行环境和对AI模型的性能要求,对多个AI模型逐个进行优化,调试难度大,开发成本较高。
发明内容
本申请实施例提供一种AI模型的开发方法及装置,可以在较低的成本下,开发出符合终端的运行环境以及性能要求的AI模型。
第一方面,本申请实施例提供一种AI模型的开发方法,该方法可以包括:开发平台获取待生成的AI模型的平台指示信息、业务指示信息和参数要求信息;其中,平台指示信息用于指示运行待生成的AI模型的运行平台,业务指示信息用于指示待生成的AI模型所要执行的第一业务,参数要求信息用于指示对待生成的AI模型的性能参数的要求;开发平台从算子数据库中选择出与运行平台对应,且用于执行第一业务的多个可用算子;开发平台从多个可用算子中选择算子,并完成选择的算子的参数设置,生成第一候选策略;开发平台对第一候选策略进行样本训练,得到第一候选AI模型;开发平台调用运行平台的模拟器组件,运行第一候选AI模型执行第一业务处理测试数据,得到第一运行参数;若第一运行参数与参数要求信息匹配,开发平台确定第一候选AI模型为目标AI模型。
其中,由于开发平台生成AI模型时,不仅参考了平台指示信息,还参考了对运行平台运行AI模型的性能参数的要求;因此,开发平台生成的AI模型符合运行平台的运行环境,可以用于执行第一业务,并且执行第一业务时性能参数符合参数要求信息的要求。并且,可以由开发平台针对不同的业务需求和运行环境,自动生成能够在运行平台上运行的模型代码,并在运行平台部署该模型代码。
结合第一方面,在一种可能的设计方式中,开发平台确定第一候选AI模型为目标AI模型之后,可以根据第一候选AI模型,生成能够在运行平台运行的模型代码。开发平台可以向运行平台发送该模型代码。这样,运行平台便可以运行该模型代码,执行第一业务。
结合第一方面,在另一种可能的设计方式中,执行第一业务的AI模型的策略结构是一定的。开发平台在第一业务的策略结构中填充对应的算子得到第一候选策略。具体的,上述开发平台从算子数据库中选择出与运行平台对应,且用于执行第一业务的多个可用算子的方法可以包括:开发平台根据所述第一业务,确定待生成的AI模型的策略结构;按照处理数据的逻辑,从算子数据库中选择出与运行平台对应的所述多个可用算子。其中,上述策略结构用于表征待生成的AI模型处理数据的逻辑,策略结构中按照处理数据的逻辑填充算子可以生成第一候选策略。上述开发平台从多个可用算子中选择算子,并完成选择的算子的参数设置,生成第一候选策略的方法可以包括:从多个可用算子中选择算子,在策略结构中填入选择的算子,完成选择的算子的参数设置,生成第一候选策略。
结合第一方面,在另一种可能的设计方式中,上述参数要求信息可以包括:参数要求信息包括:对运行平台运行待生成的AI模型的功耗的要求、对运行平台运行所述待生成的AI模型处理数据的准确率的要求、对运行平台运行所述待生成的AI模型处理数据的速度的要求,对待生成的AI模型占用存储空间的要求,以及对运行平台运行待生成的AI模型所需要的存储空间的要求中的至少一项。
结合第一方面,在另一种可能的设计方式中,上述第一运行参数可能与上述参数要求信息不匹配。若第一运行参数与所述参数要求信息不匹配,开发平台可以获取第一差异信息。该第一差异信息用于指示第一运行参数和参数要求信息的差异。然后,开发平台根据第一差异信息,调整第一候选策略中的算子,得到第二候选策略。开发平台对第二候选策略进行样本训练,得到第二候选AI模型。开发平台调用模拟器组件,运行第二候选AI模型,得到第二运行参数。若第二运行参数与参数要求信息匹配,开发平台确定第二候选AI模型为目标AI模型。
其中,开发平台判断第一运行参数与参数要求信息是否匹配,具体可以包括:开发平台判断运行平台的模拟器组件运行第一候选AI模型的功耗是否小于或者等于参数要求信息要求功耗,开发平台判断模拟器组件运行第一候选AI模型处理数据的准确率是否高于或者等于参数要求信息要求的准确率,开发平台判断模拟器组件运行第一候选AI模型处理数据的速度是否高于或者等于参数要求信息要求的速度,开发平台判断模拟器组件运行第一候选AI模型所占用存储空间(即模拟器组件运行第一候选AI模型的运行内存)是否小于或者等于参数要求信息要求运行内存。其中,参数要求信息要求运行内存是参数要求信息要求运行平台运行第一候选AI模型所占用的存储空间。
如果模拟器组件运行第一候选AI模型的功耗小于或者等于参数要求信息要求功耗,模拟器组件运行第一候选AI模型处理数据的准确率高于或者等于参数要求信息要求的准确率,模拟器组件运行第一候选AI模型处理数据的速度高于或者等于参数要求信息要求的速度,且模拟器组件运行第一候选AI模型所占用存储空间小于或者等于参数要求信息要求的运行内存,则表示第一运行参数与参数要求信息匹配,第一候选AI模型符合上述参数要求信息的要求。如果第一运行参数与参数要求信息匹配。
如果第一运行参数不满足“模拟器组件运行第一候选AI模型的功耗小于或者等于参数要求信息要求功耗”、“模拟器组件运行第一候选AI模型处理数据的准确率高于或者等于参数要求信息要求的准确率”、“模拟器组件运行第一候选AI模型处理数据的速度高于或者等于参数要求信息要求的速度”和“模拟器组件运行第一候选AI模型所占用存储空间小于或者等于参数要求信息要求的运行内存”中的任一条件,则表示第一运行参数与参数要求信息不匹配。
如果第一运行参数与参数要求信息不匹配,开发平台可以获取第一运行参数和参数要求信息的差异(即第一差异信息),以便于根据第一差异信息调整第一候选策略,生产新的候选AI模型,直到开发平台得到符合参数要求信息的要求的AI模型。
结合第一方面,在另一种可能的设计方式中,开发平台可以修改已有的标杆模型,生成能够在运行平台运行以执行第一业务的AI模型。具体的,开发平台生成第一候选策略之前,可以确定第一业务的标杆模型,该标杆模型是用于处理第一业务的AI模型。在这种情况下,待生成的AI模型的策略结构为标杆模型的策略结构,策略结构用于表征标杆模型处理数据的逻辑。上述开发平台从多个可用算子中选择算子,并完成选择的算子的参数设置,生成第一候选策略的方法可以包括:开发平台按照标杆模型的策略结构从多个可用算子中随机选择算子,采用随机选择的算子替换标杆模型中、与运行平台不对应的算子,并调整各个算子的参数,得到第一候选策略。
其中,开发平台可以按照标杆模型的策略结构从多个可用算子中随机选择算子,采用随机选择的算子替换标杆模型中、与运行平台不对应的算子,并调整各个算子的参数,得到第一候选策略。其中,标杆模型是用于执行第一业务的AI模型,也就是说,开发平台生成AI模型时,参考了平台指示信息。并且,开发平台生成AI模型时,还参考了对运行平台运行AI模型的性能参数的要求。因此,开发平台生成的AI模型符合运行平台的运行环境,可以用于执行第一业务,并且执行第一业务时性能参数符合参数要求信息的要求。
并且,可以由开发平台针对不同的业务需求和运行环境,自动生成能够在运行平台上运行的模型代码,并在运行平台部署该模型代码。
结合第一方面,在另一种可能的设计方式中,如果第一运行参数与参数要求信息不匹配,开发平台210调整第一候选策略时,不仅可以参考上述第一差异信息(即第一运行参数与参数要求信息的差异信息),还可以参考标杆模型执行第一业务处理测试数据得到的第三运行参数与第一运行参数的差异信息(即第二差异信息)。具体的,若第一运行参数与参数要求信息不匹配,开发平台获取第一差异信息和第二差异信息;开发平台根据第一差异信息和第二差异信息,调整第一候选策略中的算子,得到第二候选策略;开发平台对第二候选策略进行样本训练,得到第二候选AI模型;开发平台调用模拟器组件,运行第二候选AI模型,得到第二运行参数;若第二运行参数与参数要求信息匹配,开发平台确定第二候选AI模型为目标AI模型。
结合第一方面,在另一种可能的设计方式中,开发平台生成的第一候选策略可能并不满足上述参数要求信息的要求。例如,上述参数要求信息中至少可以包括:对待生成的AI模型占用存储空间的要求。第一候选策略所要占用的存储空间可能会大于参数要求信息中要求待生成的AI模型占用的存储空间。开发平台生成第一候选策略后,可以采用压缩算法压缩第一候选策略,得到压缩后的第一候选策略。相应的,开发平台对压缩后的第一候选策略进行样本训练,得到第一候选AI模型。
结合第一方面,在另一种可能的设计方式中,开发平台在生成第一候选策略后,可以对上述第一候选策略进行编码,得到第一候选策略的二进制数串。开发平台可以对第一候选策略的二进制数串进行样本训练,得到第一候选AI模型。
结合第一方面,在另一种可能的设计方式中,开发平台生成的第一候选策略可能并不满足上述参数要求信息的要求。例如,上述参数要求信息中至少可以包括:对待生成的AI模型占用存储空间的要求。基于此,开发平台在对第一候选策略进行样本训练之前,可以先判断第一候选策略是否满足预设条件。上述预设条件包括:第一候选策略所需的存储空间满足参数要求信息对待生成的AI模型占用存储空间的要求。其中,第一候选策略所需的存储空间满足参数要求信息对待生成的AI模型占用存储空间的要求,具体是指:第一候选策略所要占用的存储空间小于参数要求信息中要求待生成的AI模型占用的存储空间。开发平台可以对满足预设条件的第一候选策略进行样本训练,得到第一候选AI模型。
其中,开发平台在生成第一候选策略后,先判断第一候选策略是否满足预设条件;开发平台对满足预设条件的第一候选策略进行样本训练,得到第一候选AI模型。这样,可以降低开发平台根据不满足预设条件的第一候选策略生成不符合参数要求信息的要求的第一候选AI模型的可能性,提高开发平台生成符合要求的AI模型的效率。
第二方面,本申请实施例提供一种开发平台,该开发平台包括:处理器、存储器和多个模拟器组件;存储器、多个模拟器组件与处理器耦合;多个模拟器组件中包括运行平台的模拟器组件,存储器用于存储计算机程序代码;计算机程序代码包括计算机指令,当处理器执行上述计算机指令时,处理器,用于获取待生成的AI模型的平台指示信息、业务指示信息和参数要求信息,平台指示信息用于指示运行待生成的AI模型的运行平台,业务指示信息用于指示待生成的AI模型所要执行的第一业务,参数要求信息用于指示对待生成的AI模型的性能参数的要求;从算子数据库中选择出与运行平台对应,且用于执行第一业务的多个可用算子,算子数据库中保存有多个用于生成AI模型的算子;从多个可用算子中选择算子,并完成选择的算子的参数设置,生成第一候选策略;第一候选策略由多个算子组成;对第一候选策略进行样本训练,得到第一候选AI模型;处理器,还用于调用多个模拟器组件中、运行平台的模拟器组件,运行第一候选AI模型执行第一业务处理测试数据,得到第一运行参数;若第一运行参数与参数要求信息匹配,确定第一候选AI模型为目标AI模型。
结合第二方面,在一种可能的设计方式中,上述处理器,还用于在确定第一候选AI模型为目标AI模型之后,根据第一候选AI模型,生成能够在运行平台运行的模型代码。
结合第二方面,在另一种可能的设计方式中,上述处理器,用于从算子数据库中选择出与运行平台对应,且用于执行第一业务的多个可用算子,包括:处理器,用于根据第一业务,确定待生成的AI模型的策略结构,策略结构用于表征待生成的AI模型处理数据的逻辑,策略结构中按照处理数据的逻辑填充算子生成第一候选策略;按照处理数据的逻辑,从算子数据库中选择出与运行平台对应的多个可用算子。上述处理器,用于从多个可用算子中选择算子,并完成选择的算子的参数设置,生成第一候选策略,包括:处理器,用于从多个可用算子中选择算子,在策略结构中填入选择的算子,完成选择的算子的参数设置,生成第一候选策略。
结合第二方面,在另一种可能的设计方式中,上述处理器,还用于若第一运行参数与参数要求信息不匹配,获取第一差异信息,第一差异信息用于指示第一运行参数和参数要求信息的差异;根据第一差异信息,调整第一候选策略中的算子,得到第二候选策略;对第二候选策略进行样本训练,得到第二候选AI模型。处理器,还用于调用运行平台的模拟器组件,运行第二候选AI模型,得到第二运行参数;若第二运行参数与参数要求信息匹配,确定第二候选AI模型为目标AI模型。
结合第二方面,在另一种可能的设计方式中,上述处理器,还用于在从多个可用算子中选择算子,并完成选择的算子的参数设置,生成第一候选策略之前,确定第一业务的标杆模型,标杆模型是用于处理第一业务的AI模型;其中,待生成的AI模型的策略结构为标杆模型的策略结构,策略结构用于表征标杆模型处理数据的逻辑。处理器,用于从多个可用算子中选择算子,并完成选择的算子的参数设置,生成第一候选策略,包括:处理器,用于按照标杆模型的策略结构从多个可用算子中随机选择算子,采用随机选择的算子替换标杆模型中、与运行平台不对应的算子,并调整各个算子的参数,得到第一候选策略。
结合第二方面,在另一种可能的设计方式中,上述处理器,还用于若第一运行参数与参数要求信息不匹配,获取第一差异信息和第二差异信息;第一差异信息用于指示第一运行参数和参数要求信息的差异;第二差异信息用于指示第一运行参数和第三运行参数的差异,第三运行参数是标杆模型执行第一业务处理测试数据得到的运行参数;根据第一差异信息和第二差异信息,调整第一候选策略中的算子,得到第二候选策略;对第二候选策略进行样本训练,得到第二候选AI模型。处理器,还用于调用运行平台的模拟器组件,运行第二候选AI模型,得到第二运行参数;若第二运行参数与参数要求信息匹配,确定第二候选AI模型为目标AI模型。
结合第二方面,在另一种可能的设计方式中,上述处理器,还用于在生成第一候选策略之后,采用压缩算法压缩第一候选策略,得到压缩后的第一候选策略。处理器,用于对第一候选策略进行样本训练,得到第一候选AI模型,包括:处理器,用于对压缩后的第一候选策略进行样本训练,得到第一候选AI模型。
结合第二方面,在另一种可能的设计方式中,上述处理器,还用于在生成第一候选策略之后,对第一候选策略进行编码,得到第一候选策略的二进制数串。处理器,用于对第一候选策略进行样本训练,得到第一候选AI模型,包括:处理器,用于对第一候选策略的二进制数串进行样本训练,得到第一候选AI模型。
结合第二方面,在另一种可能的设计方式中,上述参数要求信息包括:对运行平台运行待生成的AI模型的功耗的要求、对运行平台运行待生成的AI模型处理数据的准确率的要求、对运行平台运行待生成的AI模型处理数据的速度的要求,对待生成的AI模型占用存储空间的要求,以及对运行平台运行待生成的AI模型所需要的存储空间的要求中的至少一项。
结合第二方面,在另一种可能的设计方式中,上述参数要求信息至少包括:对待生成的AI模型占用存储空间的要求。处理器,还用于在对第一候选策略进行样本训练,得到第一候选AI模型之前,判断第一候选策略是否满足预设条件;预设条件包括:第一候选策略所需的存储空间满足参数要求信息对待生成的AI模型占用存储空间的要求。处理器,用于对第一候选策略进行样本训练,得到第一候选AI模型,包括:处理器,用于若第一候选策略满足预设条件,对第一候选策略进行样本训练,得到第一候选AI模型。
第三方面,本申请实施例提供一种开发平台,该开发平台包括:约束库、策略生成器、人工智能AI模型生成器、评价器、代码生成器和多个模拟器组件。其中,约束库,用于提供待生成的AI模型的平台指示信息、业务指示信息和参数要求信息,平台指示信息用于指示运行待生成的AI模型的运行平台,业务指示信息用于指示待生成的AI模型所要执行的第一业务,参数要求信息用于指示对待生成的AI模型的性能参数的要求。策略生成器,用于根据约束库提供的平台指示信息和业务指示信息,从算子数据库中选择出与运行平台对应,且用于执行第一业务的多个可用算子,算子数据库中保存有多个用于生成AI模型的算子;从多个可用算子中选择算子,并完成选择的算子的参数设置,生成第一候选策略;第一候选策略由多个算子组成。AI模型生成器,用于对策略生成器生成的第一候选策略进行样本训练,得到第一候选AI模型。评价器,用于调用运行平台的模拟器组件,运行AI模型生成器生成的第一候选AI模型执行第一业务处理测试数据,得到第一运行参数;判断第一运行参数是否与参数要求信息匹配;运行平台的模拟器组件是多个模拟器组件中的一个。代码生成器,用于若评价器判断得到第一运行参数与参数要求信息匹配,则根据AI模型生成器生成的第一候选AI模型,生成能够在运行平台运行的模型代码。
结合第三方面,在一种可能的设计方式中,上述策略生成器,用于从算子数据库中选择出与运行平台对应,且用于执行第一业务的多个可用算子,包括:策略生成器,用于根据第一业务,确定待生成的AI模型的策略结构,策略结构用于表征待生成的AI模型处理数据的逻辑;按照处理数据的逻辑,从算子数据库中选择出与运行平台对应的多个可用算子。上述策略生成器,用于从多个可用算子中选择算子,并完成选择的算子的参数设置,生成第一候选策略;第一候选策略由多个算子组成,包括:策略生成器,用于从多个可用算子中选择算子,在策略结构中填入选择的算子,完成选择的算子的参数设置,生成第一候选策略。
结合第三方面,在另一种可能的设计方式中,上述评价器,还用于若第一运行参数与参数要求信息不匹配,获取第一差异信息,第一差异信息用于指示第一运行参数和参数要求信息的差异。策略生成器,还用于根据第一差异信息,调整第一候选策略中的算子,得到第二候选策略。AI模型生成器,还用于对策略生成器生成的第二候选策略进行样本训练,得到第二候选AI模型。评价器,还用于调用运行平台的模拟器组件,运行AI模型生成器生成的第二候选AI模型,得到第二运行参数;判断第二运行参数是否与参数要求信息匹配;运行平台的模拟器组件是多个模拟器组件中的一个。代码生成器,还用于若评价器判断得到第二运行参数与参数要求信息匹配,则根据AI模型生成器生成的第二候选AI模型,生成能够在运行平台运行的模型代码。
结合第三方面,在另一种可能的设计方式中,上述策略生成器,还用于在从多个可用算子中选择算子,并完成选择的算子的参数设置,生成第一候选策略之前,从标杆模型数据库中选择出第一业务的标杆模型,标杆模型是用于处理第一业务的AI模型;其中,待生成的AI模型的策略结构为标杆模型的策略结构,策略结构用于表征标杆模型处理数据的逻辑;标杆模型数据库中保存有多个AI模型。策略生成器,用于从多个可用算子中选择算子,并完成选择的算子的参数设置,生成第一候选策略,包括:策略生成器,用于按照标杆模型的策略结构从多个可用算子中随机选择算子,采用随机选择的算子替换标杆模型中、与运行平台不对应的算子,并调整各个算子的参数,得到第一候选策略。
结合第三方面,在另一种可能的设计方式中,上述评价器,还用于若第一运行参数与参数要求信息不匹配,获取第一差异信息和第二差异信息,第一差异信息用于指示第一运行参数和参数要求信息的差异;第二差异信息用于指示第一运行参数和第三运行参数的差异,第三运行参数是标杆模型执行第一业务处理测试数据得到的运行参数。策略生成器,还用于根据第一差异信息和第二差异信息,调整第一候选策略中的算子,得到第二候选策略。AI模型生成器,还用于对策略生成器生成的第二候选策略进行样本训练,得到第二候选AI模型。评价器,还用于调用运行平台的模拟器组件,运行AI模型生成器生成的第二候选AI模型,得到第二运行参数;判断第二运行参数是否与参数要求信息匹配;运行平台的模拟器组件是多个模拟器组件中的一个。代码生成器,还用于若评价器判断得到第二运行参数与参数要求信息匹配,则根据AI模型生成器生成的第二候选AI模型,生成能够在运行平台运行的模型代码。
结合第三方面,在另一种可能的设计方式中,上述策略生成器,还用于在生成第一候选策略之后,采用压缩算法压缩第一候选策略,得到压缩后的第一候选策略。AI模型生成器,用于对策略生成器压缩后的第一候选策略进行样本训练,得到第一候选AI模型。
结合第三方面,在另一种可能的设计方式中,上述策略生成器,还用于在生成第一候选策略之后,对第一候选策略进行编码,得到第一候选策略的二进制数串。AI模型生成器,用于对第一候选策略的二进制数串进行样本训练,得到第一候选AI模型。
结合第三方面,在另一种可能的设计方式中,上述参数要求信息包括:对运行平台运行待生成的AI模型的功耗的要求、对运行平台运行待生成的AI模型处理数据的准确率的要求、对运行平台运行待生成的AI模型处理数据的速度的要求,对待生成的AI模型占用存储空间的要求,以及对运行平台运行待生成的AI模型所需要的存储空间的要求中的至少一项。
结合第三方面,在另一种可能的设计方式中,上述参数要求信息至少包括:对待生成的AI模型占用存储空间的要求。AI模型生成器,还用于在对第一候选策略进行样本训练,得到第一候选AI模型之前,判断第一候选策略是否满足预设条件;预设条件包括:第一候选策略所需的存储空间满足参数要求信息对待生成的AI模型占用存储空间的要求。AI模型生成器,用于对第一候选策略进行样本训练,得到第一候选AI模型,包括:AI模型生成器,用于若第一候选策略满足预设条件,对第一候选策略进行样本训练,得到第一候选AI模型。
第四方面,本申请实施例提供一种计算机存储介质,该计算机存储介质包括计算机指令,当所述计算机指令在开发平台上运行时,使得所述开发平台执行如第一方面及其任一种可能的设计方式所述的AI模型的开发方法。
第五方面,本申请实施例提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如第一方面及其任一种可能的设计方式所述的AI模型的开发方法。
另外,第二方面和第三方面及其任一种设计方式所述的开发平台,以及第四方面所述的计算机存储介质、第五方面所述的计算机程序产品所带来的技术效果可参见上述第一方面及其不同设计方式所带来的技术效果,此处不再赘述。
附图说明
图1为本申请实施例提供的一种电子设备的硬件结构示意图;
图2为本申请实施例提供的一种AI模型的开发方法所应用的系统网络结构示意图;
图3为本申请实施例提供的一种AI模型的开发方法流程图一;
图4为本申请实施例提供的一种策略结构的实例示意图;
图5为本申请实施例提供的一种第一候选策略的实例示意图一;
图6为本申请实施例提供的一种第一候选策略的实例示意图二;
图7为本申请实施例提供的一种AI模型开发方法原理示意图一;
图8A为本申请实施例提供的一种AI模型开发方法原理示意图二;
图8B为本申请实施例提供的一种AI模型的开发方法流程图二;
图8C为本申请实施例提供的一种AI模型开发方法原理示意图三;
图9为本申请实施例提供的一种AI模型的开发方法流程图三;
图10为本申请实施例提供的一种标杆模型的实例示意图;
图11为本申请实施例提供的一种OCR业务的AI模型实例示意图;
图12为图11所示的OCR业务的AI模型中的卷积块和卷积层的结构实例示意图;
图13为本申请实施例提供的一种开发平台的结构组成示意图。
具体实施方式
本申请实施例提供一种AI模型的开发方法,可以应用于AI模型的开发过程中。具体的,开发平台可以根据待生成的AI模型的运行平台的指示信息(即平台指示信息)、该AI模型所要处理的业务,以及对运行平台运行AI模型的性能参数的要求,生成AI模型。然后,开发平台可以根据已生成的AI模型,结合运行平台的指示信息,生成能够在该运行平台上运行的模型代码。其中,开发平台可以向运行平台(即终端)下发该模型代码,以在运行平台上部署该模型代码,使得运行平台可以执行该模型代码以运行AI模型。
其中,由于开发平台生成AI模型时,不仅参考了要运行AI模型的运行平台的指示信息,还参考了对运行平台运行AI模型的性能参数的要求;因此,开发平台生成的AI模型符合运行平台(即终端)的运行环境以及性能要求。并且,本申请实施例中,可以由开发平台针对不同的业务需求和运行环境,自动生成能够在该运行平台上运行的模型代码,并在运行平台部署该模型代码。
示例性的,本申请实施例中的开发平台可以为个人计算机(personal computer,PC)、笔记本电脑或者云服务器等具有较强的计算能力和存储能力的设备。本申请实施例中的运行平台可以为便携式计算机(如手机)、笔记本电脑、PC、可穿戴电子设备(如智能手表)、平板电脑、增强现实(augmented reality,AR)\虚拟现实(virtual reality,VR)设备、车载电脑等,以下实施例对该终端的具体形式不做特殊限制。
需要注意的是,开发平台中配置有运行平台的模拟器组件。开发平台可以在生成AI模型后,在运行平台的模拟器组件上模拟运行AI模型,以得到模拟器组件运行AI模型的性能参数。这样,开发平台便可以判断得到的性能参数是否符合对运行平台运行AI模型的性能参数的要求。
参考图1,其示出本申请实施例提供的运行平台的结构示意图。该运行平台可以为图1所示的电子设备100。该电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identificationmodule,SIM)卡接口195等。其中,传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本发明实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器graphics processing unit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本申请另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过电子设备100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(codedivision multiple access,CDMA),宽带码分多址(wideband code division multipleaccess,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(global navigation satellite system,GLONASS),北斗卫星导航系统(beidounavigation satellite system,BDS),准天顶卫星系统(quasi-zenith satellitesystem,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N为大于1的正整数。
电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头193中。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,电子设备100可以包括1个或N个摄像头193,N为大于1的正整数。
NPU为神经网络(Neural-Network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现电子设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。例如,NPU可以运行本申请实施例中的AI模型的模型代码,执行上述图像识别,人脸识别,语音识别,文本理解等业务。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。例如,存储器(如内部存储器121)可以用于保存AI模型的模型代码。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。
马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
SIM卡接口195用于连接SIM卡。SIM卡可以通过插入SIM卡接口195,或从SIM卡接口195拔出,实现和电子设备100的接触和分离。电子设备100可以支持1个或N个SIM卡接口,N为大于1的正整数。SIM卡接口195可以支持Nano SIM卡,Micro SIM卡,SIM卡等。同一个SIM卡接口195可以同时插入多张卡。所述多张卡的类型可以相同,也可以不同。SIM卡接口195也可以兼容不同类型的SIM卡。SIM卡接口195也可以兼容外部存储卡。电子设备100通过SIM卡和网络交互,实现通话以及数据通信等功能。在一些实施例中,电子设备100采用eSIM,即:嵌入式SIM卡。eSIM卡可以嵌在电子设备100中,不能和电子设备100分离。
请参考图2,其示出本申请实施例提供的一种开发平台和运行平台组成的系统架构示意图。如图2所示,该系统包括开发平台200和运行平台210。开发平台200可以执行本申请实施例提供的AI模型的开发方法生成AI模型的模型代码。开发平台200可以将生成的模型代码传输至运行平台210。运行平台210便可以执行该模型代码以运行AI模型。
本申请实施例提供一种AI模型的开发方法,应用于图2所示的开发平台200。如图3所示,该AI模型的开发方法可以包括:
S301、开发平台200获取待生成的AI模型的平台指示信息、业务指示信息和参数要求信息。
其中,平台指示信息用于指示运行待生成的AI模型的运行平台210。其中,平台指示信息可以为运行待生成的AI模型的运行平台210的标识。例如,平台指示信息可以指示运行待生成的AI模型的运行平台210为华为的Mate10。该平台指示信息可以为华为Mate10的标识。
业务指示信息用于指示待生成的AI模型所要执行的业务。其中,本申请实施例中的业务可以包括:文字识别、图像识别和自然语言处理等。例如,文字识别可以为光学字符识别(optical character recognition,OCR),图像识别可以为人脸识别。
上述参数要求信息用于指示对运行平台210运行待生成的AI模型的性能参数的要求。示例性的,该参数要求信息可以包括:对运行平台210运行待生成的AI模型的功耗的要求、对运行平台210运行待生成的AI模型处理数据的准确率的要求、对运行平台210运行待生成的AI模型处理数据的速度的要求,对待生成的AI模型占用存储空间的要求,以及对运行平台210运行待生成的AI模型所需要的存储空间的要求等中的至少一项。
在一种实现方式中,开发平台200可以为开发人员提供设置上述平台指示信息、业务指示信息和参数要求信息的设置界面。开发平台200显示该设置界面。该设置界面中可以包括多个设置选项。如运行平台的设置选项、业务的设置选项、功耗的设置选项、准确率的设置选项、速度的设置选项和存储空间的设置选项等。其中,运行平台的设置选项用于设置运行待生成的AI模型的运行平台。业务的设置选项用于设置待生成的AI模型所要处理的业务。功耗的设置选项用于设置对运行平台运行待生成的AI模型的功耗的要求。准确率的设置选项用于设置对运行平台运行待生成的AI模型处理数据的准确率的要求。速度的设置选项用于设置对运行平台运行待生成的AI模型处理数据的速度的要求。存储空间的设置选项用于设置对运行平台运行待生成的AI模型所占用存储空间的要求。开发平台200可以接收用户在上述设置界面对各个设置选项的设置操作,得到上述平台指示信息、业务指示信息和参数要求信息。
在另一种实现方式中,开发平台200可以接收其他设备(如运行平台210)发送的平台指示信息、业务指示信息和参数要求信息。
S302、开发平台200从算子数据库中选择出与运行平台210对应,且用于执行第一业务的多个可用算子。算子数据库中保存有多个用于生成AI模型的算子。
示例性的,算子数据库可以按照算子的类型保存多个算子。按照算子的类型可以将多个算子分为:卷积(Convolution)算子、反卷积(deConv)算子、加和(Sum)算子、批标准化(Batch Normalization)算子、尺度变化(Scale)算子和激活函数(ReLu/Sigmoid)算子等。本申请实施例中的算子包括但不限于上述卷积算子、反卷积算子、加和算子、批标准化算子、尺度变化算子和激活函数算子。算子数据库中可以包括用于生成各种AI模型的算子。
例如,算子数据库可以采用表1所示的算子信息表的方式,保存多个算子。
表1
如表1所示,算子数据库中可以保存有卷积算子、反卷积算子、加和算子、批标准化算子、尺度变化算子和激活函数算子等多种算子。并且,算子数据库中针对每一种类型算子,保存了可以在不同运行平台运行的多个算子。例如,如表1所示,算子数据库中针对卷积算子,保存了可以在运行平台210运行卷积算子1和卷积算子4,可以在运行平台b运行卷积算子1,以及可以在运行平台c运行的卷积算子2和卷积算子3等。
需要说明的是,本申请实施例中的算子数据库可以保存在开发平台200中。或者,算子数据库可以保存在云服务器中。开发平台200可以读取云服务器中的算子数据库中的数据,以从算子数据库中选择多个可用算子。
示例性的,以平台指示信息指示的运行平台为运行平台210,业务指示信息指示的第一业务为业务a为例。请参考表2所示的可用算子表。如表2所示,假设用于执行业务a的可用算子包括:卷积算子、反卷积算子、加和算子和激活函数算子。由表1可知:如表2所示,算子数据库中与运行平台210对应的卷积算子包括卷积算子1和卷积算子4,即卷积算子1和卷积算子4可以在运行平台210运行;算子数据库中与运行平台210对应的反卷积算子包括反卷积算子1和反卷积算子n,即反卷积算子1和反卷积算子n可以在运行平台210运行;算子数据库中与运行平台210对应的加和算子包括加和算子1和加和算子3,即加和算子1和加和算子3可以在运行平台210运行;算子数据库中与运行平台210对应的激活函数算子包括激活函数算子1,即激活函数算子1可以在运行平台210运行。
表2
其中,执行每个业务的AI模型的策略结构是一定的。示例性的,假设业务指示信息用于指示待生成的AI模型所要处理的业务为业务a。开发平台200在根据业务指示信息确定该业务a后,便可以确定执行该业务a的AI模型的策略结构,即待生成的AI模型的策略结构。AI模型的策略结构可以表征AI模型执行业务时处理数据的逻辑。
请参考图4,其示出执行业务a的AI模型的策略结构实例示意图。图4所示的策略结构400由卷积算子、反卷积算子、加和算子和激活函数算子组成。图4所示的策略结构400所表征的AI模型处理数据的逻辑为:一个卷积算子(卷积算子X)处理数据401(待处理的数据)输出数据402;另一个卷积算子(卷积算子K)处理数据402输出数据404;激活函数算子处理数据402得到数据403;反卷积算子处理数据403得到数据405;加和算子处理数据404和数据405得到数据406;另一个卷积算子(卷积算子Y)处理数据406得到处理结果。
开发平台200在确定执行第一业务(如业务a)的AI模型的策略结构后,可以按照该策略结构所表征的处理数据的逻辑,从算子数据库中选择出与运行平台210对应的多个可用算子。例如,开发平台200在确定业务a的AI模型的策略结构为图4所示的策略结构400后,可以确定图4所示的策略结构400由卷积算子、反卷积算子、加和算子和激活函数算子组成。然后,开发平台可以从算子数据库中选择出与运行平台210对应的多个卷积算子、反卷积算子、加和算子和激活函数算子。例如,开发平台200可以从表1所示的多个算子中选择出表2所示的多个可用算子。
S303、开发平台200从多个可用算子中选择算子,并完成选择的算子的参数设置,生成第一候选策略。
其中,上述第一候选策略由多个算子组成。该第一候选策略用于表征待生成的AI模型处理数据的逻辑。
开发平台200可以确定执行第一业务的AI模型的策略结构。然后,开发平台200可以从上述多个可用算子中随机选择算子,并将选择的算子填充至该策略结构中,完成选择的算子的参数,便可以得到第一候选策略。其中,开发平台200根据平台指示信息从多个可用算子中选择算子,并完成选择的算子的参数设置,可以生成一个或多个第一候选策略。
结合上述实例,开发平台200可以从表2所示的可用算子中随机选择算子,并将选择的算子填充至图4所示的策略结构400中。
例如,开发平台200可以随机选择表2中的卷积算子1填充在图4所示的卷积算子X中,选择表2中的卷积算子4填充在图4所示的卷积算子K中,选择表2中的激活函数算子1填充在图4所示的激活函数算子中,选择表2中的反卷积算子1填充在图4所示的反卷积算子中,选择表2中的加和算子1填充在图4所示的加和算子中,选择表2中的卷积算子4填充在图4所示的卷积算子Y中,得到图5所示的第一候选策略500。
又例如,开发平台200可以随机选择表2中的卷积算子4填充在图4所示的卷积算子X中,选择表2中的卷积算子4填充在图4所示的卷积算子K中,选择表2中的激活函数算子1填充在图4所示的激活函数算子中,选择表2中的反卷积算子n填充在图4所示的反卷积算子中,选择表2中的加和算子3填充在图4所示的加和算子中,选择表2中的卷积算子4填充在图4所示的卷积算子Y中,得到图6所示的第一候选策略600。
开发平台200在策略结构中填充算子后,可以完成算子的参数设置。其中,开发平台200可以随机设置填充在策略结构中的算子的参数。示例性的,以卷积算子为例,卷积算子的参数可以是卷积算子的卷积核尺寸。例如,例如,开发平台200可以将图5所示的卷积算子1的卷积核尺寸设置为2*2,即图5所示的卷积算子1可以对输入该卷积算子1的数据执行2*2的卷积运算。
S304、开发平台200对第一候选策略进行样本训练,得到第一候选AI模型。
其中,开发平台200中针对各个业务,可以保存多个用于进行样本训练的样本数据,开发平台200可以根据第一业务对应的样本数据,对第一候选策略进行样本训练得到第一候选AI模型。例如,假设第一业务是OCR业务,上述样本数据可以为大量的文字及其文字图样。开发平台200根据OCR业务的样本数据对第一候选策略进行样本训练后得到的第一候选AI模型,可以将文字图样与对应的文字联系起来。这样,第一候选AI模型便可以识别文字图样,确定出对应的文字。
开发平台200根据样本数据对第一候选策略进行样本训练,得到第一候选AI模型的方法,可以参考常规技术中,开发平台对候选策略进行样本训练得到AI模型的方法,本申请实施例这里不予赘述。
开发平台200生成第一候选策略后,可以采用压缩算法压缩第一候选策略,得到压缩后的第一候选策略。相应的,开发平台200对压缩后的第一候选策略进行样本训练,得到第一候选AI模型。
本申请实施例中,开发平台200在生成第一候选策略后,可以对上述第一候选策略进行编码,得到第一候选策略的二进制数串。开发平台200可以对第一候选策略的二进制数串进行样本训练,得到第一候选AI模型。
可选的,开发平台200生成的第一候选策略(或者开发平台200压缩后的第一候选策略)可能并不满足上述参数要求信息的要求。例如,上述参数要求信息中至少可以包括:对待生成的AI模型占用存储空间的要求。基于此,开发平台200在对第一候选策略(或者压缩后的第一候选策略)进行样本训练之前,可以先判断第一候选策略是否满足预设条件。本申请实施例这里将第一候选策略和压缩后的第一候选策略统称为第一候选策略。该预设条件包括:第一候选策略所需的存储空间满足参数要求信息对待生成的AI模型占用存储空间的要求。其中,第一候选策略所需的存储空间满足参数要求信息对待生成的AI模型占用存储空间的要求,具体是指:第一候选策略所要占用的存储空间小于参数要求信息中要求待生成的AI模型占用的存储空间。开发平台200可以对满足预设条件的第一候选策略进行样本训练,得到第一候选AI模型。其中,本申请实施例中,待生成的AI模型占用存储空间是指运行平台210保存该待生成的AI模型的模型代码时,该模型代码所要占用的存储空间。
开发平台200可以生成一个或多个第一候选策略。在开发平台200生成一个第一候选策略的情况下,如果该第一候选策略不满足预设条件,开发平台200则可以生成新的候选策略。在开发平台200生成多个第一候选策略的情况下,开发平台200可以对这多个第一候选策略中满足预设条件的第一候选策略进行样本训练,得到第一候选AI模型。如果这多个第一候选策略都不满足预设条件,那么开发平台200则可以生成新的候选策略。
S305、开发平台200调用运行平台210的模拟器组件,运行第一候选AI模型执行第一业务处理测试数据,得到第一运行参数。
其中,第一运行参数可以包括:运行平台210的模拟器组件(AI Model Simulator)运行第一候选AI模型的功耗、模拟器组件运行第一候选AI模型处理数据的准确率、模拟器组件运行第一候选AI模型处理数据的速度,以及模拟器组件运行第一候选AI模型所占用存储空间的大小中的至少一项。可以理解地,开发平台得到的第一运行参数和上述参数要求信息相对应,例如:上述参数要求信息中包括了对运行平台运行待生成的AI模型的功耗的要求、对运行平台运行待生成的AI模型处理数据的准确率的要求,则第一运行参数中相应地包括运行平台的模拟器组件(AI Model Simulator)运行第一候选AI模型的功耗、模拟器组件运行第一候选AI模型处理数据的准确率。
在一种实现方式中,开发平台200中可以保存多个运行平台210的模拟器组件。开发平台200调用运行平台210的模拟器组件之前,可以先确定出上述平台指示信息所指示的运行平台210;然后,初始化该运行平台210的模拟器组件。
在另一种实现方式中,运行平台210的模拟器组件可以保存在云端服务器中。云端服务器中可以保存多个运行平台210的模拟器组件。开发平台200可以向云端服务器发送上述平台指示信息、上述业务指示信息和第一候选AI模型。云端服务器接收到平台指示信息、业务指示信息和第一候选AI模型后,可以先确定出上述平台指示信息所指示的运行平台210;然后,初始化该运行平台210的模拟器组件,调用该模拟器组件运行第一候选AI模型执行上述业务指示信息指示的第一业务处理测试数据,得到第一运行参数;最后,云端服务器可以向开发平台200发送该第一运行参数;开发平台200可以接收云端服务器发送的第一运行参数。
S306、开发平台200判断第一运行参数与参数要求信息是否匹配。
其中,开发平台200判断第一运行参数与参数要求信息是否匹配,根据参数要求信息的设置,得到相应地第一运行参数,将两者进行比较,具体可以包括以下至少一项:开发平台200判断运行平台210的模拟器组件运行第一候选AI模型的功耗是否小于或者等于参数要求信息要求功耗,开发平台200判断模拟器组件运行第一候选AI模型处理数据的准确率是否高于或者等于参数要求信息要求的准确率,开发平台200判断模拟器组件运行第一候选AI模型处理数据的速度是否高于或者等于参数要求信息要求的速度,开发平台200判断模拟器组件运行第一候选AI模型所占用存储空间(即模拟器组件运行第一候选AI模型的运行内存)是否小于或者等于参数要求信息要求运行内存。其中,参数要求信息要求运行内存是参数要求信息要求运行平台210运行第一候选AI模型所占用的存储空间。可以理解地,此处参数要求信息可以包括对待生成的AI模型占用存储空间的要求,第一运行参数可以包括第一候选AI模型的占用存储空间的大小,则步骤S306中包括开发平台200判断第一候选AI模型的占用存储空间的大小是否小于或等于参数要求信息要求的存储空间的要求。可以理解地,此处第一运行参数可以不包括第一候选AI模型的占用存储空间的大小。此处参数要求信息中对于待生成的AI模型占用存储空间的要求可以通过对第一候选策略所需存储空间大小进行判断是否满足,如步骤S304中的相关描述。
如果模拟器组件运行第一候选AI模型的功耗小于或者等于参数要求信息要求功耗,模拟器组件运行第一候选AI模型处理数据的准确率高于或者等于参数要求信息要求的准确率,模拟器组件运行第一候选AI模型处理数据的速度高于或者等于参数要求信息要求的速度,且模拟器组件运行第一候选AI模型所占用存储空间小于或者等于参数要求信息要求的运行内存,则表示第一运行参数与参数要求信息匹配,第一候选AI模型符合上述参数要求信息的要求。如果第一运行参数与参数要求信息匹配,开发平台则可以继续执行S307。
如果第一运行参数不满足“模拟器组件运行第一候选AI模型的功耗小于或者等于参数要求信息要求功耗”、“模拟器组件运行第一候选AI模型处理数据的准确率高于或者等于参数要求信息要求的准确率”、“模拟器组件运行第一候选AI模型处理数据的速度高于或者等于参数要求信息要求的速度”和“模拟器组件运行第一候选AI模型所占用存储空间小于或者等于参数要求信息要求的运行内存”中的任一条件,则表示第一运行参数与参数要求信息不匹配,第一候选AI模型不符合上述参数要求信息的要求。如果第一运行参数与参数要求信息不匹配,开发平台则可以继续执行S308。
S307、开发平台200根据第一候选AI模型,生成能够在运行平台210运行的模型代码。
其中,如果第一运行参数与参数要求信息匹配,开发平台200则可以确定第一候选AI模型是目标AI模型。开发平台200可以根据第一候选AI模型(即目标AI模型),生成能够在运行平台210运行的模型代码。开发平台200可以在生成模型代码后,向运行平台210发送模型代码。其中,开发平台200可以按照平台指示信息所指示的运行平台210,根据第一候选AI模型生成能够在运行平台210运行的模型代码。该模型代码部署到运行平台210后,运行平台210便可以执行该模型代码,以运行对应的AI模型。也就是说,本申请实施例中,开发平台200生成的AI模型可以一键部署到运行平台210(即终端)中。
S308、开发平台200获取第一差异信息。第一差异信息用于指示第一运行参数和参数要求信息的差异。
如果第一运行参数与参数要求信息不匹配,则表示第一候选AI模型不符合上述参数要求信息的要求。在这种情况下,开发平台200可以获取第一运行参数和参数要求信息的差异(即第一差异信息),以便于根据第一差异信息调整第一候选策略。
示例性的,如表3所示,为本申请实施例示出的一种运行参数表实例。
表3
如表3所示,要求的参数是指参数要求信息要求运行平台210运行待生成的AI模型时所要达到的参数,模拟参数是指运行平台210的模拟器组件运行第一候选AI模型时的参数。例如,假设参数要求信息要求功耗为A,参数要求信息要求的准确率为B,参数要求信息要求的速度为C,参数要求信息要求运行占用的存储空间大小为D。如果模拟器组件运行第一候选AI模型的功耗为a,模拟器组件运行第一候选AI模型处理数据的准确率为b,模拟器组件运行第一候选AI模型处理数据的速度为c,模拟器组件运行第一候选AI模型所占用存储空间的大小为d;那么,上述第一差异信息则可以为:功耗差异A-a,准确率差异B-b,速度差异C-c,存储空间差异D-d。
S309、开发平台200根据第一差异信息,调整第一候选策略,得到第二候选策略。
其中,开发平台200可以采用预设算法根据第一差异信息调整第一候选策略,得到第二候选策略。例如,该预设算法可以为多目标基因算法(Multi-Objective evolutionaryalgorithm,MOEA)或者梯度下降算法等。
本申请实施例中,开发平台200调整第一候选策略,可以包括:开发平台200采用可用算子替换第一候选策略中对应的算子。例如,开发平台200可以采用表2中的加和算子3替换图5所示的第一候选策略500中的加和算子1。开发平台200调整第一候选策略,还可以包括:开发平台200调整第一候选策略中算子的参数。例如,开发平台200可以将图5所示的第一候选策略500中的卷积算子1的卷积核尺寸由2*2调成为3*3,使得卷积算子1可以对输入该卷积算子1的数据执行3*3的卷积运算。
S310、开发平台200对第二候选策略进行样本训练,得到第二候选AI模型。
其中,S310的详细描述可以参考本申请实施例对S304的介绍,本申请实施例这里不再赘述。
S311、开发平台200调用运行平台210的模拟器组件,运行第二候选AI模型,得到第二运行参数,第二运行参数为模拟器运行第二候选AI模型的性能参数。
其中,S311的详细描述可以参考本申请实施例对S305的介绍,本申请实施例这里不再赘述。
S312、开发平台200判断第二运行参数与参数要求信息是否匹配。
其中,S312的详细描述可以参考本申请实施例对S306的介绍,本申请实施例这里不再赘述。
其中,如果第二运行参数与参数要求信息匹配,则表示第二候选AI模型符合上述参数要求信息的要求,开发平台则可以继续执行S313。如果第二运行参数与参数要求信息不匹配,则表示第二候选AI模型不符合上述参数要求信息的要求,开发平台则可以继续执行S314:
S313、开发平台200根据第二候选AI模型,生成能够在运行平台210运行的模型代码。
S314、开发平台200根据第二运行参数和参数要求信息的差异信息,调整第二候选策略,并对调整后的第二候选策略进行样本训练得到第三候选AI模型。
本申请实施例中,开发平台200可以调用模拟器组件,运行第三候选AI模型,得到运行参数。然后,开发平台200判断该运行参数与参数要求信息是否匹配。如果该运行参数与参数要求信息匹配,开发平台则可以根据第三候选AI生成能够在运行平台210运行的模型代码。如果该运行参数与参数要求信息不匹配,开发平台200则可以继续调整第二候选策略,直到开发平台200得到符合参数要求信息的要求的AI模型。
其中,S312-S314的详细描述可以参考本申请实施例对S306-S310的介绍,本申请实施例这里不再赘述。
请参考图7,其示出了本申请实施例提供的一种AI模型的开发方法的原理框架示意图。如图7所示,开发平台200可以划分为5个模块:约束库701、策略生成器702、AI模型生成器703、评价器704和代码生成器705。约束库701可以获取对待生成的AI模型的约束条件,即上述平台指示信息、业务指示信息和参数要求信息。策略生成器702可以根据约束库701中的平台指示信息和业务指示信息,从算子数据库700中选择出多个可用算子;然后,将选择出的可用算子填充至执行业务指示信息所指示的第一业务的AI模型的策略结构中,并完成算子的参数设置,得到候选策略(即第一候选策略)。AI模型生成器703可以对策略生成器702生成的候选策略进行样本训练,生成候选AI模型。评价器704可以初始化平台指示信息所指示的运行平台210的模拟器组件,采用该模拟器组件运行候选AI模型,得到第一运行参数。评价器704对比参数要求信息和第一运行参数。如果参数要求信息与第一运行参数匹配,则由代码生成器705根据候选AI模型生成模型代码。如果参数要求信息与第一运行参数不匹配,则向策略生成器702反馈reward信号,由策略生成器702调整候选策略,然后由AI模型生成器703对调整后的候选策略进行样本训练,得到新的候选AI模型。reward信号中携带差异信息(如第一差异信息)。
本申请实施例提供一种AI模型的开发方法。由于开发平台200生成AI模型时,不仅参考了平台指示信息,还参考了对运行平台210运行AI模型的性能参数的要求;因此,开发平台210生成的AI模型符合运行平台210的运行环境,可以用于执行第一业务,并且执行第一业务时性能参数符合参数要求信息的要求。
并且,可以由开发平台200针对不同的业务需求和运行环境,自动生成能够在运行平台210上运行的模型代码,并在运行平台210部署该模型代码。
在本申请另一实施例中,如果第一运行参数与参数要求信息不匹配,开发平台210调整第一候选策略时,不仅可以参考上述第一差异信息(即第一运行参数与参数要求信息的差异信息),还可以参考标杆模型执行第一业务处理测试数据得到的第三运行参数与第一运行参数的差异信息(即第二差异信息)。
请参考图8A,其示出了本申请实施例提供的一种AI模型的开发方法的原理框架示意图。如图8A所示,与图7不同的是:如果评价器704确定第一运行参数与运行参数信息不匹配,评价器704向策略生成器702反馈reward信号中还可以包括标杆模型数据库800中的标杆模型的运行参数(即上述第三运行参数)的相关信息(如第二差异信息)。其中,标杆模型是策略生成器702根据业务指示信息所指示的第一业务从标杆模型数据库800中获取的。其中,该标杆模型是用于执行第一业务的AI模型。
其中,标杆模型数据库800中保存了多个可以用于处理各类业务的AI模型。这些AI模型可以在开发平台210中运行以执行对应的业务。但是,这些AI模型不一定可以在运行平台210中运行。因此,本申请实施例中,开发平台200可以修改标杆模型(即标杆模型数据库800中用于执行第一业务的AI模型),以得到上述目标AI模型。
例如,标杆模型数据库800可以采用表4所示的模型信息表的方式,保存多个AI模型。
表4
其中,针对每一种业务,标杆模型数据库800可以保存一个或多个用于执行该业务的AI模型。例如,标杆模型数据库800可以保存一个或多个用于执行文字识别业务的AI模型(简称文字识别AI模型)。
示例性的,如表4所示,标杆模型数据库800中可以保存有x个文字识别AI模型、y个图像识别AI模型和z个自然语言处理AI模型等。开发平台200可以从标杆模型数据库800中选择用于执行业务指示信息所指示的第一业务的AI模型,作为标杆模型。
本申请实施例还提供一种AI模型的开发方法。如图8B所示,本申请实施例的方法可以包括S301-S308、S801-S802、S310-S313和S803。该方法先执行S301-S308,然后执行S801:
S801、开发平台200获取第二差异信息。第二差异信息用于指示第一运行参数与第三运行参数的差异。第三运行参数是标杆模型执行第一业务处理上述测试数据得到的运行参数。
开发平台200可以运行标杆模型执行第一业务处理测试数据得到上述第三运行参数。其中,开发平台200运行标杆模型得到第三运行参数后,可以保存该第三运行参数。这样,开发平台200调整第一候选策略生成新的候选AI模型(如第二候选AI模型)后,如果模拟器组件运行第二候选AI模型得到的运行参数(如上述第二运行参数)与参数要求信息不匹配,开发平台200便可以对比第二运行参数和保存的第三运行参数,而不需要再次运行标杆模型以获取第三运行参数。
S802、开发平台200根据第一差异信息和第二差异信息,调整第一候选策略,得到第二候选策略。
在S802之后,本申请实施例的方法还可以包括上述S310-S312。在S312之后,如果第二候选模型的运行的性能参数(第二运行参数)和参数要求信息匹配就执行S313;如果不匹配,本申请实施例的方法还可以包括S803:
S803、开发平台200根据第二运行参数和参数要求信息的差异信息,以及第二运行参数和上述第三运行参数的差异信息,调整第二候选策略,并对调整后的第二候选策略进行样本训练得到第三候选AI模型。
本申请实施例中,开发平台200可以调用模拟器组件,运行第三候选AI模型,得到运行参数。然后,开发平台200判断该运行参数与参数要求信息是否匹配。如果该运行参数与参数要求信息匹配,开发平台则可以根据第三候选AI生成能够在运行平台210运行的模型代码。如果该运行参数与参数要求信息不匹配,开发平台200则可以继续调整第三候选策略,直到开发平台200得到符合参数要求信息的要求的AI模型。
在本申请另一实施例中,开发平台200可以修改已有的标杆模型,生成能够在运行平台210运行以执行第一业务的AI模型。请参考图8C,其示出了本申请实施例提供的一种AI模型的开发方法的原理框架示意图。如图8C所示,与图8A不同的是:策略生成器702根据约束库701中的平台指示信息和业务指示信息,从算子数据库700中选择出多个可用算子后,不需要在第一业务的AI模型的策略结构中填充可用算子生成新的候选策略;而是按照标杆模型的策略结构从多个可用算子中随机选择算子,采用随机选择的算子替换标杆模型中、与运行平台不对应的算子,并调整各个算子的参数,得到候选策略。
本申请实施例还提供一种AI模型的开发方法。如图9所示,该AI模型的开发方法可以包括S901-S916:
S901、开发平台200获取待生成的AI模型的平台指示信息、业务指示信息和参数要求信息。
S902、开发平台200从算子数据库中选择出与运行平台210对应,且用于执行第一业务的多个可用算子。
其中,S901与S301相同。S902与S302相同。
S903、开发平台200确定第一业务的标杆模型,标杆模型是用于处理第一业务的AI模型。
其中,标杆模型数据库800中包括一个或多个用于执行业务指示信息所指示的第一业务的AI模型。开发平台200可以从这一个或多个AI模型(标杆模型数据库800中用于执行第一业务的AI模型)中随机选择一个AI模型,作为标杆模型。例如,假设第一业务为文字识别业务。开发平台200可以从表4所示的文字识别AI模型1、文字识别AI模型2和文字识别AI模型x等文字识别AI模型中,随机选择一个文字识别AI模型,作为标杆模型。
S904、开发平台200按照标杆模型的策略结构从多个可用算子中随机选择算子,采用随机选择的算子替换标杆模型中、与运行平台210不对应的算子,并调整各个算子的参数,得到第一候选策略。
示例性的,如图10中的(a)所示,标杆模型1000为开发平台为第一业务选择的标杆模型。参考表2可知:图10中的(a)所示的标杆模型1000中的卷积算子2,激活函数算子k、反卷积算子2和加和算子2与运行平台210不对应。即图10中的(a)所示的卷积算子2,激活函数算子k、反卷积算子2和加和算子2不能在运行平台210运行。
开发平台200可以从上述可用算子(如表2所示的可用算子表中)随机选择出卷积算子、激活函数算子、反卷积算子和加和算子,来替换图10中的(a)所示的卷积算子2,激活函数算子k、反卷积算子2和加和算子2。例如,假设开发平台200从表2所示的可用算子表中选择卷积算子1,激活函数算子1、反卷积算子1和加和算子1,然后采用卷积算子1替换图10中的(a)所示的卷积算子2,采用激活函数算子1替换图10中的(a)所示的激活函数算子k,采用反卷积函数算子1替换图10中的(a)所示的激活函数算子2,采用加和函数算子1替换图10中的(a)所示的加和算子2,得到图10中的(b)所示的模型1001。并且,开发平台200还可以调整图10中的(b)所示的模型1001中各个算子的参数。
S905、开发平台200采用压缩算法压缩第一候选策略,得到压缩后的第一候选策略。
其中,S905的详细描述可以参考本申请实施例中开发平台200压缩第一候选策略的方法,本申请实施例这里不再赘述。其中,S905是可选的。
S906、开发平台200对压缩后的第一候选策略进行样本训练,得到第一候选AI模型。
S907、开发平台200调用运行平台210的模拟器组件,运行第一候选AI模型执行第一业务处理测试数据,得到第一运行参数。
S908、开发平台200判断第一运行参数与参数要求信息是否匹配。
其中,S907与S305相同。S908与S306相同。
具体的,如果第一运行参数与参数要求信息匹配,开发平台200则执行S909;如果第一运行参数与参数要求信息不匹配,开发平台200则执行S910:
S909、开发平台200根据第一候选AI模型,生成能够在运行平台210运行的模型代码。
开发平台200可以在生成模型代码后,向运行平台210发送模型代码。其中,S909的详细描述可以参考本申请实施例对S307的介绍,本申请实施例这里不再赘述。
S910、开发平台200获取第一差异信息和第二差异信息,第一差异信息用于指示第一运行参数和参数要求信息的差异,第二差异信息用于指示第一运行参数与第三运行参数的差异。
由于上述第一候选策略是开发平台200修改标杆模型得到的;因此,如果第一运行参数与参数要求信息不匹配,那么开发平台200在重新生成候选策略时,则可以参考标杆模型执行第一业务处理测试数据得到运行参数(即第三运行参数)与第一候选AI模型执行第一业务处理测试数据得到运行参数(即第一运行参数)的差异。这样,可以更加快速的生成符合参数要求信息的要求的AI模型。
S911、开发平台200根据第一差异信息和第二差异信息,调整第一候选策略,得到第二候选策略。
本申请实施例中,开发平台200调整第一候选策略得到新的候选策略(如第三候选策略)时,不仅可以参考参数要求信息与第一候选AI模型执行第一业务处理测试数据得到运行参数的差异信息(即第一差异信息),还可以参考标杆模型执行第一业务处理测试数据得到运行参数与第一候选AI模型执行第一业务处理测试数据得到运行参数的差异信息(即第二差异信息)。
S912、开发平台200对第二候选策略进行样本训练,得到第二候选AI模型。
S913、开发平台200调用运行平台210的模拟器组件,运行第二候选AI模型,得到第二运行参数。
其中,S912与S310相同,S913与S311相同。
S914、开发平台200判断第二运行参数与参数要求信息是否匹配。
其中,如果第二运行参数与参数要求信息匹配,则表示第三候选AI模型符合上述参数要求信息的要求,开发平台则可以继续执行S915。如果第二运行参数与参数要求信息不匹配,则表示第二候选AI模型不符合上述参数要求信息的要求,开发平台则可以继续执行S916:
S915、开发平台200根据第二候选AI模型,生成能够在运行平台210运行的模型代码。
S916、开发平台200根据第二运行参数和参数要求信息的差异信息,以及第二运行参数和上述第三运行参数的差异信息,调整第二候选策略,并对调整后的第二候选策略进行样本训练得到第三候选AI模型。
其中,S915与S313相同。S916与S314相同。
本申请实施例提供一种AI模型的开发方法。开发平台200可以按照标杆模型的策略结构从多个可用算子中随机选择算子,采用随机选择的算子替换标杆模型中、与运行平台210不对应的算子,并调整各个算子的参数,得到第一候选策略。其中,标杆模型是用于执行第一业务的AI模型,也就是说,开发平台200生成AI模型时,参考了平台指示信息。并且,开发平台200生成AI模型时,还参考了对运行平台210运行AI模型的性能参数的要求。因此,开发平台210生成的AI模型符合运行平台210的运行环境,可以用于执行第一业务,并且执行第一业务时性能参数符合参数要求信息的要求。并且,可以由开发平台200针对不同的业务需求和运行环境,自动生成能够在运行平台210上运行的模型代码,并在运行平台210部署该模型代码。
示例性的,请参考图11,其示出本申请实施例提供的一种用于执行OCR业务的AI模型实例。假设上述业务指示信息指示的第一业务为OCR业务。上述平台指示信息指示的运行平台为华为Mate10。参数要求信息要求待生成的AI模型(即目标AI模型)识别一行文本的时间小于或者等于1秒(s),即参数要求信息要求华为Mate10运行目标AI模型处理数据的速度为:小于或等于1s/行文本。参数要求信息要求华为Mate10运行目标AI模型所占用存储空间小于或等于10兆比特(MB)。参数要求信息要求目标AI模型识别文本的召回率高于或者等于90%,参数要求信息要求目标AI模型识别文本的准确率高于或者等于90%。
其中,目标AI模型识别文本的召回率是指目标AI模型识别一行文本时,识别出的文本在这行文本中的占比。例如,假设一行文本包括10个汉字。目标AI模型识别出这10个汉字中的9个汉字,那么目标AI模型识别文本的召回率则为90%。目标AI模型识别文本的准确率是指目标AI模型识别一行文本时,正确识别出的文本在识别出的文本中的占比。例如,假设一行文本包括10个汉字。目标AI模型识别出这10个汉字中的9个汉字,识别出的9个汉字中有8个汉字的识别结果是正确的,1个汉字的识别结果是错误的。那么目标AI模型识别文本的准确率则为(8/9)*100%=88.89%。
如图11所示,OCR业务的AI模型1100可以包括:卷积块1101、卷积块1102、卷积块1103、反卷积算子1104、卷积块1106、加和算子1107、反卷积算子1108、卷积块1105、加和算子1109、卷积块1110、卷积块1111和卷积块1112。其中,OCR业务的AI模型1100按照以如图11所示的数据流入各个算子或者卷积块的箭头对应的方向对应的处理数据的逻辑处理OCR业务的数据。
其中,图11所示的卷积块中包括多个卷积层。例如,以卷积块1101为例。如图12中的(a)所示,卷积块1101可以包括卷积层1、卷积层2和卷积层N等卷积层。每个卷积层可以包括卷积算子、反卷积算子、批标准化算子和激活函数算子等。例如,如图12中的(b)所示,卷积层1可以包括卷积算子、反卷积算子、批标准化算子和激活函数算子等。
开发平台200生成图11所示的OCR业务的AI模型1100后,调用华为Mate10的模拟器组件运行OCR业务的AI模型1100执行OCR业务处理数据(如一行文本)可以得到如下第一运行参数:小于处理速度800毫秒(ms),运行占用存储空间8MB,识别文本的召回率91%,识别文本的准确率90%。由于800ms<1s,8MB<10MB,91%>90%,90%=90%;因此,图11所示的OCR业务的AI模型1100是目标AI模型。开发平台200可以生成OCR业务的AI模型1100的模型代码。
可以理解的是,上述开发平台200为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的范围。
本申请实施例可以根据上述方法示例对上述开发平台200进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用集成的单元的情况下,图13示出了上述实施例中所涉及的开发平台的一种可能的结构示意图。该开发平台1300包括:处理器1301、存储器1302和多个模拟器组件(如模拟器组件1303和模拟器组件1304)。其中,模拟器组件1303是平台指示信息指示的运行平台的模拟器组件。模拟器组件1304是其他运行平台的模拟器组件。存储器1302、模拟器组件1303与处理器1301耦合。存储器1302用于存储计算机程序代码;该计算机程序代码包括计算机指令,当处理器1301执行上述计算机指令时,处理器1301用于支持开发平台1300执行上述方法实施例中的S301-S304、S306-S310、S312-S314、S801-S803、S901-S906、S908-912、S914-S916,和/或用于本文所描述的技术的其它过程。模拟器组件1303用于响应于处理器1301的调用,支持开发平台1300执行上述方法实施例中的S305、S311、S907、S913,和/或用于本文所描述的技术的其它过程。
其中,上述模拟器组件1303可以模拟运行平台的运行环境。上述处理器1301可以是中央处理器(Central Processing Unit,CPU),通用处理器,数字信号处理器(DigitalSignal Processor,DSP),专用集成电路(Application-Specific Integrated Circuit,ASIC),现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。上述处理器1301还可以包括NPU。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。通信模块可以是收发器、收发电路或通信接口等。
可选的,上述存储器1302中可以保存上述实施例中所述的算子数据库和标杆模型数据库。上述存储器1302中还可以保存标杆模型执行第一业务处理测试数据的运行参数,即第三运行参数。
当然,开发平台1300中的单元模块包括但不限于处理器1301、存储器1302和多个模拟器组件。例如,开发平台1300中还可以包括通信接口(如射频模块、Wi-Fi模块和蓝牙模块等通信模块)、显示器、音频模块(包括麦克风、扬声器、受话器和耳机接口)。其中,上述存储器1302、多个模拟器组件、通信接口、显示器、麦克风、受话器和扬声器可以通过总线(图13所示的粗黑线)与处理器1301耦合在一起。
本申请实施例还提供一种计算机存储介质,该计算机存储介质中存储有计算机程序代码,当上述处理器1301执行该计算机程序代码时,开发平台1300执行图3、图8B或图9任一附图中的相关方法步骤实现上述实施例中的方法。
本申请实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行图3、图8B或图9任一附图中的相关方法步骤实现上述实施例中的方法。
其中,本申请实施例提供的开发平台1300、计算机存储介质或者计算机程序产品均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以使用硬件的形式实现,也可以使用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (30)
1.一种人工智能AI模型的开发方法,其特征在于,包括:
开发平台获取待生成的AI模型的平台指示信息、业务指示信息和参数要求信息,所述平台指示信息用于指示运行所述待生成的AI模型的运行平台,所述业务指示信息用于指示所述待生成的AI模型所要执行的第一业务,所述参数要求信息用于指示对所述待生成的AI模型的性能参数的要求;
所述开发平台从算子数据库中选择出与所述运行平台对应,且用于执行所述第一业务的多个可用算子,所述算子数据库中保存有多个用于生成AI模型的算子;
所述开发平台从所述多个可用算子中选择算子,并完成选择的算子的参数设置,生成第一候选策略;所述第一候选策略由多个算子组成;
所述开发平台对所述第一候选策略进行样本训练,得到第一候选AI模型;
所述开发平台调用所述运行平台的模拟器组件,运行所述第一候选AI模型执行第一业务处理测试数据,得到第一运行参数;
若所述第一运行参数与所述参数要求信息匹配,所述开发平台确定所述第一候选AI模型为目标AI模型。
2.根据权利要求1所述的AI模型的开发方法,其特征在于,在所述开发平台确定所述第一候选AI模型为目标AI模型之后,所述方法还包括:
所述开发平台根据所述第一候选AI模型,生成能够在所述运行平台运行的模型代码。
3.根据权利要求1或2所述的AI模型的开发方法,其特征在于,所述开发平台从算子数据库中选择出与所述运行平台对应,且用于执行所述第一业务的多个可用算子,包括:
所述开发平台根据所述第一业务,确定所述待生成的AI模型的策略结构,所述策略结构用于表征所述待生成的AI模型处理数据的逻辑;
所述开发平台按照所述处理数据的逻辑,从所述算子数据库中选择出与所述运行平台对应的所述多个可用算子;
所述开发平台从所述多个可用算子中选择算子,并完成选择的算子的参数设置,生成第一候选策略;所述第一候选策略由多个算子组成,包括:
所述开发平台从所述多个可用算子中选择算子,在所述策略结构中填入选择的算子,完成选择的算子的参数设置,生成所述第一候选策略。
4.根据权利要求1或2所述的AI模型的开发方法,其特征在于,所述方法还包括:
若所述第一运行参数与所述参数要求信息不匹配,所述开发平台获取第一差异信息,所述第一差异信息用于指示所述第一运行参数和所述参数要求信息的差异;
所述开发平台根据所述第一差异信息,调整所述第一候选策略中的算子,得到第二候选策略;
所述开发平台对所述第二候选策略进行样本训练,得到第二候选AI模型;
所述开发平台调用所述模拟器组件,运行所述第二候选AI模型,得到第二运行参数;
若所述第二运行参数与所述参数要求信息匹配,所述开发平台确定所述第二候选AI模型为目标AI模型。
5.根据权利要求1或2所述的AI模型的开发方法,其特征在于,在所述开发平台从所述多个可用算子中选择算子,并完成选择的算子的参数设置,生成第一候选策略之前,所述方法还包括:
所述开发平台确定所述第一业务的标杆模型,所述标杆模型是用于处理所述第一业务的AI模型;其中,所述待生成的AI模型的策略结构为所述标杆模型的策略结构,所述策略结构用于表征所述标杆模型处理数据的逻辑;
所述开发平台从所述多个可用算子中选择算子,并完成选择的算子的参数设置,生成第一候选策略,包括:
所述开发平台按照所述标杆模型的策略结构从所述多个可用算子中随机选择算子,采用随机选择的算子替换所述标杆模型中、与所述运行平台不对应的算子,并调整各个算子的参数,得到所述第一候选策略。
6.根据权利要求1或2所述的AI模型的开发方法,其特征在于,所述方法还包括:
若所述第一运行参数与所述参数要求信息不匹配,所述开发平台获取第一差异信息和第二差异信息;所述第一差异信息用于指示所述第一运行参数和所述参数要求信息的差异;所述第二差异信息用于指示所述第一运行参数和第三运行参数的差异,所述第三运行参数是标杆模型执行所述第一业务处理所述测试数据得到的运行参数;
所述开发平台根据所述第一差异信息和所述第二差异信息,调整所述第一候选策略中的算子,得到第二候选策略;
所述开发平台对所述第二候选策略进行样本训练,得到第二候选AI模型;
所述开发平台调用所述模拟器组件,运行所述第二候选AI模型,得到第二运行参数;
若所述第二运行参数与所述参数要求信息匹配,所述开发平台确定所述第二候选AI模型为目标AI模型。
7.根据权利要求1或2所述的AI模型的开发方法,其特征在于,在所述生成第一候选策略之后,所述方法还包括:
所述开发平台采用压缩算法压缩所述第一候选策略,得到压缩后的第一候选策略;
其中,所述开发平台对所述第一候选策略进行样本训练,得到第一候选AI模型,包括:
所述开发平台对压缩后的第一候选策略进行样本训练,得到所述第一候选AI模型。
8.根据权利要求1或2所述的AI模型的开发方法,其特征在于,在所述生成第一候选策略之后,所述方法还包括:
所述开发平台对所述第一候选策略进行编码,得到所述第一候选策略的二进制数串;
其中,所述开发平台对所述第一候选策略进行样本训练,得到第一候选AI模型,包括:
所述开发平台对所述第一候选策略的二进制数串进行样本训练,得到所述第一候选AI模型。
9.根据权利要求1或2所述的AI模型的开发方法,其特征在于,所述参数要求信息包括:对所述运行平台运行所述待生成的AI模型的功耗的要求、对所述运行平台运行所述待生成的AI模型处理数据的准确率的要求、对所述运行平台运行所述待生成的AI模型处理数据的速度的要求,对所述待生成的AI模型占用存储空间的要求,以及对所述运行平台运行所述待生成的AI模型所需要的存储空间的要求中的至少一项。
10.根据权利要求9所述的AI模型的开发方法,其特征在于,所述参数要求信息至少包括:对所述待生成的AI模型占用存储空间的要求;
在所述开发平台对所述第一候选策略进行样本训练,得到第一候选AI模型之前,所述方法还包括:
所述开发平台判断所述第一候选策略是否满足预设条件;所述预设条件包括:所述第一候选策略所需的存储空间满足所述参数要求信息对所述待生成的AI模型占用存储空间的要求;
其中,所述开发平台对所述第一候选策略进行样本训练,得到第一候选AI模型,包括:
若所述第一候选策略满足所述预设条件,所述开发平台对所述第一候选策略进行样本训练,得到所述第一候选AI模型。
11.一种开发平台,其特征在于,所述开发平台包括:处理器、存储器和多个模拟器组件;所述存储器、所述多个模拟器组件与所述处理器耦合;所述多个模拟器组件中包括运行平台的模拟器组件,所述存储器用于存储计算机程序代码;所述计算机程序代码包括计算机指令,当所述处理器执行上述计算机指令时,
所述处理器,用于获取待生成的人工智能AI模型的平台指示信息、业务指示信息和参数要求信息,所述平台指示信息用于指示运行所述待生成的AI模型的运行平台,所述业务指示信息用于指示所述待生成的AI模型所要执行的第一业务,所述参数要求信息用于指示对所述待生成的AI模型的性能参数的要求;从算子数据库中选择出与所述运行平台对应,且用于执行所述第一业务的多个可用算子,所述算子数据库中保存有多个用于生成AI模型的算子;从所述多个可用算子中选择算子,并完成选择的算子的参数设置,生成第一候选策略;所述第一候选策略由多个算子组成;对所述第一候选策略进行样本训练,得到第一候选AI模型;
所述处理器,还用于调用所述多个模拟器组件中、所述运行平台的模拟器组件,运行所述第一候选AI模型执行所述第一业务处理测试数据,得到第一运行参数;若所述第一运行参数与所述参数要求信息匹配,确定所述第一候选AI模型为目标AI模型。
12.根据权利要求11所述的开发平台,其特征在于,所述处理器,还用于在确定所述第一候选AI模型为所述目标AI模型之后,根据所述第一候选AI模型,生成能够在所述运行平台运行的模型代码。
13.根据权利要求11或12所述的开发平台,其特征在于,所述处理器,用于从算子数据库中选择出与所述运行平台对应,且用于执行所述第一业务的多个可用算子,包括:
所述处理器,用于根据所述第一业务,确定所述待生成的AI模型的策略结构,所述策略结构用于表征所述待生成的AI模型处理数据的逻辑,所述策略结构中按照所述处理数据的逻辑填充算子生成所述第一候选策略;按照所述处理数据的逻辑,从所述算子数据库中选择出与所述运行平台对应的所述多个可用算子;
所述处理器,用于从所述多个可用算子中选择算子,并完成选择的算子的参数设置,生成第一候选策略;所述第一候选策略由多个算子组成,包括:
所述处理器,用于从所述多个可用算子中选择算子,在所述策略结构中填入选择的算子,完成选择的算子的参数设置,生成所述第一候选策略。
14.根据权利要求11或12所述的开发平台,其特征在于,所述处理器,还用于若所述第一运行参数与所述参数要求信息不匹配,获取第一差异信息,所述第一差异信息用于指示所述第一运行参数和所述参数要求信息的差异;根据所述第一差异信息,调整所述第一候选策略中的算子,得到第二候选策略;对所述第二候选策略进行样本训练,得到第二候选AI模型;
所述处理器,还用于调用所述运行平台的模拟器组件,运行所述第二候选AI模型,得到第二运行参数;若所述第二运行参数与所述参数要求信息匹配,确定所述第二候选AI模型为目标AI模型。
15.根据权利要求11或12所述的开发平台,其特征在于,所述处理器,还用于在从所述多个可用算子中选择算子,并完成选择的算子的参数设置,生成第一候选策略之前,确定所述第一业务的标杆模型,所述标杆模型是用于处理所述第一业务的AI模型;其中,所述待生成的AI模型的策略结构为所述标杆模型的策略结构,所述策略结构用于表征所述标杆模型处理数据的逻辑;
所述处理器,用于从所述多个可用算子中选择算子,并完成选择的算子的参数设置,生成第一候选策略,包括:
所述处理器,用于按照所述标杆模型的策略结构从所述多个可用算子中随机选择算子,采用随机选择的算子替换所述标杆模型中、与所述运行平台不对应的算子,并调整各个算子的参数,得到所述第一候选策略。
16.根据权利要求11或12所述的开发平台,其特征在于,所述处理器,还用于若所述第一运行参数与所述参数要求信息不匹配,获取第一差异信息和第二差异信息;所述第一差异信息用于指示所述第一运行参数和所述参数要求信息的差异;所述第二差异信息用于指示所述第一运行参数和第三运行参数的差异,所述第三运行参数是标杆模型执行所述第一业务处理所述测试数据得到的运行参数;根据所述第一差异信息和所述第二差异信息,调整所述第一候选策略中的算子,得到第二候选策略;对所述第二候选策略进行样本训练,得到第二候选AI模型;
所述处理器,还用于调用所述运行平台的模拟器组件,运行所述第二候选AI模型,得到第二运行参数;若所述第二运行参数与所述参数要求信息匹配,确定所述第二候选AI模型为目标AI模型。
17.根据权利要求11或12所述的开发平台,其特征在于,所述处理器,还用于在生成所述第一候选策略之后,采用压缩算法压缩所述第一候选策略,得到压缩后的第一候选策略;
所述处理器,用于对所述第一候选策略进行样本训练,得到第一候选AI模型,包括:
所述处理器,用于对压缩后的第一候选策略进行样本训练,得到所述第一候选AI模型。
18.根据权利要求11或12所述的开发平台,其特征在于,所述处理器,还用于在生成所述第一候选策略之后,对所述第一候选策略进行编码,得到所述第一候选策略的二进制数串;
所述处理器,用于对所述第一候选策略进行样本训练,得到第一候选AI模型,包括:
所述处理器,用于对所述第一候选策略的二进制数串进行样本训练,得到所述第一候选AI模型。
19.根据权利要求11或12所述的开发平台,其特征在于,所述参数要求信息包括:对所述运行平台运行所述待生成的AI模型的功耗的要求、对所述运行平台运行所述待生成的AI模型处理数据的准确率的要求、对所述运行平台运行所述待生成的AI模型处理数据的速度的要求,对所述待生成的AI模型占用存储空间的要求,以及对所述运行平台运行所述待生成的AI模型所需要的存储空间的要求中的至少一项。
20.根据权利要求19所述的开发平台,其特征在于,所述参数要求信息至少包括:对所述待生成的AI模型占用存储空间的要求;
所述处理器,还用于在对所述第一候选策略进行样本训练,得到第一候选AI模型之前,判断所述第一候选策略是否满足预设条件;所述预设条件包括:所述第一候选策略所需的存储空间满足所述参数要求信息对所述待生成的AI模型所占用存储空间的要求;
所述处理器,用于对所述第一候选策略进行样本训练,得到第一候选AI模型,包括:
所述处理器,用于若所述第一候选策略满足所述预设条件,对所述第一候选策略进行样本训练,得到所述第一候选AI模型。
21.一种开发平台,其特征在于,包括:约束库、策略生成器、人工智能AI模型生成器、评价器、代码生成器和多个模拟器组件;
所述约束库,用于提供待生成的AI模型的平台指示信息、业务指示信息和参数要求信息,所述平台指示信息用于指示运行所述待生成的AI模型的运行平台,所述业务指示信息用于指示所述待生成的AI模型所要执行的第一业务,所述参数要求信息用于指示对所述待生成的AI模型的性能参数的要求;
所述策略生成器,用于根据所述约束库提供的所述平台指示信息和所述业务指示信息,从算子数据库中选择出与所述运行平台对应,且用于执行所述第一业务的多个可用算子,所述算子数据库中保存有多个用于生成AI模型的算子;从所述多个可用算子中选择算子,并完成选择的算子的参数设置,生成第一候选策略;所述第一候选策略由多个算子组成;
所述AI模型生成器,用于对所述策略生成器生成的所述第一候选策略进行样本训练,得到第一候选AI模型;
所述评价器,用于调用所述运行平台的模拟器组件,运行所述AI模型生成器生成的所述第一候选AI模型执行第一业务处理测试数据,得到第一运行参数;判断所述第一运行参数是否与所述约束库提供的所述参数要求信息匹配;所述运行平台的模拟器组件是多个模拟器组件中的一个;
所述代码生成器,用于若所述评价器判断得到所述第一运行参数与所述参数要求信息匹配,则根据所述AI模型生成器生成的所述第一候选AI模型,生成能够在所述运行平台运行的模型代码。
22.根据权利要求21所述的开发平台,其特征在于,所述策略生成器,用于从算子数据库中选择出与所述运行平台对应,且用于执行所述第一业务的多个可用算子,包括:
所述策略生成器,用于根据所述第一业务,确定所述待生成的AI模型的策略结构,所述策略结构用于表征所述待生成的AI模型处理数据的逻辑;按照所述处理数据的逻辑,从所述算子数据库中选择出与所述运行平台对应的所述多个可用算子;
所述策略生成器,用于从所述多个可用算子中选择算子,并完成选择的算子的参数设置,生成第一候选策略;所述第一候选策略由多个算子组成,包括:
所述策略生成器,用于从所述多个可用算子中选择算子,在所述策略结构中填入选择的算子,完成选择的算子的参数设置,生成所述第一候选策略。
23.根据权利要求21或22所述的开发平台,其特征在于,所述评价器,还用于若所述第一运行参数与所述参数要求信息不匹配,获取第一差异信息,所述第一差异信息用于指示所述第一运行参数和所述参数要求信息的差异;
所述策略生成器,还用于根据所述第一差异信息,调整所述第一候选策略中的算子,得到第二候选策略;
所述AI模型生成器,还用于对所述策略生成器生成的所述第二候选策略进行样本训练,得到第二候选AI模型;
所述评价器,还用于调用所述运行平台的模拟器组件,运行所述AI模型生成器生成的所述第二候选AI模型,得到第二运行参数;判断所述第二运行参数是否与所述参数要求信息匹配;所述运行平台的模拟器组件是多个模拟器组件中的一个;
所述代码生成器,还用于若所述评价器判断得到所述第二运行参数与所述参数要求信息匹配,则根据所述AI模型生成器生成的所述第二候选AI模型,生成能够在所述运行平台运行的模型代码。
24.根据权利要求21或22所述的开发平台,其特征在于,所述策略生成器,还用于在从所述多个可用算子中选择算子,并完成选择的算子的参数设置,生成第一候选策略之前,从标杆模型数据库中选择出所述第一业务的标杆模型,所述标杆模型是用于处理所述第一业务的AI模型;其中,所述待生成的AI模型的策略结构为所述标杆模型的策略结构,所述策略结构用于表征所述标杆模型处理数据的逻辑;所述标杆模型数据库中保存有多个AI模型;
所述策略生成器,用于从所述多个可用算子中选择算子,并完成选择的算子的参数设置,生成第一候选策略,包括:
所述策略生成器,用于按照所述标杆模型的策略结构从所述多个可用算子中随机选择算子,采用随机选择的算子替换所述标杆模型中、与所述运行平台不对应的算子,并调整各个算子的参数,得到所述第一候选策略。
25.根据权利要求21或22所述的开发平台,其特征在于,所述评价器,还用于若所述第一运行参数与所述参数要求信息不匹配,获取第一差异信息和第二差异信息,所述第一差异信息用于指示所述第一运行参数和所述参数要求信息的差异;所述第二差异信息用于指示所述第一运行参数和第三运行参数的差异,所述第三运行参数是标杆模型执行所述第一业务处理所述测试数据得到的运行参数;
所述策略生成器,还用于根据所述第一差异信息和所述第二差异信息,调整所述第一候选策略中的算子,得到第二候选策略;
所述AI模型生成器,还用于对所述策略生成器生成的所述第二候选策略进行样本训练,得到第二候选AI模型;
所述评价器,还用于调用所述运行平台的模拟器组件,运行所述AI模型生成器生成的所述第二候选AI模型,得到第二运行参数;判断所述第二运行参数是否与所述参数要求信息匹配;所述运行平台的模拟器组件是多个模拟器组件中的一个;
所述代码生成器,还用于若所述评价器判断得到所述第二运行参数与所述参数要求信息匹配,则根据所述AI模型生成器生成的所述第二候选AI模型,生成能够在所述运行平台运行的模型代码。
26.根据权利要求21或22所述的开发平台,其特征在于,所述策略生成器,还用于在生成所述第一候选策略之后,采用压缩算法压缩所述第一候选策略,得到压缩后的第一候选策略;
所述AI模型生成器,用于对所述策略生成器压缩后的第一候选策略进行样本训练,得到所述第一候选AI模型。
27.根据权利要求21或22所述的开发平台,其特征在于,所述策略生成器,还用于在生成所述第一候选策略之后,对所述第一候选策略进行编码,得到所述第一候选策略的二进制数串;
所述AI模型生成器,用于对所述第一候选策略的二进制数串进行样本训练,得到所述第一候选AI模型。
28.根据权利要求21或22所述的开发平台,其特征在于,所述参数要求信息包括:对所述运行平台运行所述待生成的AI模型的功耗的要求、对所述运行平台运行所述待生成的AI模型处理数据的准确率的要求、对所述运行平台运行所述待生成的AI模型处理数据的速度的要求,对所述待生成的AI模型占用存储空间的要求,以及对所述运行平台运行所述待生成的AI模型所需要的存储空间的要求中的至少一项。
29.根据权利要求28所述的开发平台,其特征在于,所述参数要求信息至少包括:对所述待生成的AI模型占用存储空间的要求;
所述AI模型生成器,还用于在对所述第一候选策略进行样本训练,得到所述第一候选AI模型之前,判断所述第一候选策略是否满足预设条件;所述预设条件包括:所述第一候选策略所需的存储空间满足所述参数要求信息对所述待生成的AI模型占用存储空间的要求;
所述AI模型生成器,用于对所述第一候选策略进行样本训练,得到第一候选AI模型,包括:
所述AI模型生成器,用于若所述第一候选策略满足所述预设条件,对所述第一候选策略进行样本训练,得到所述第一候选AI模型。
30.一种计算机存储介质,其特征在于,所述计算机存储介质包括计算机指令,当所述计算机指令在开发平台上运行时,使得所述开发平台执行如权利要求1-10中任意一项所述的AI模型的开发方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2018/106566 WO2020056647A1 (zh) | 2018-09-19 | 2018-09-19 | 一种ai模型的开发方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111357014A CN111357014A (zh) | 2020-06-30 |
CN111357014B true CN111357014B (zh) | 2023-07-11 |
Family
ID=69888118
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880074664.9A Active CN111357014B (zh) | 2018-09-19 | 2018-09-19 | 一种ai模型的开发方法及装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220036236A1 (zh) |
EP (1) | EP3836021B1 (zh) |
CN (1) | CN111357014B (zh) |
WO (1) | WO2020056647A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116261729A (zh) * | 2020-07-30 | 2023-06-13 | 华为技术有限公司 | 一种神经网络模型构建方法及其设备 |
CN112101529A (zh) * | 2020-10-14 | 2020-12-18 | 杭州海康威视数字技术股份有限公司 | 一种用于神经网络模型推理跨平台的部署方法及架构 |
CN112949061B (zh) * | 2021-03-01 | 2023-11-10 | 北京清华同衡规划设计研究院有限公司 | 基于可复用算子的村镇发展模型构建方法和系统 |
CN113723437B (zh) * | 2021-04-02 | 2022-06-07 | 荣耀终端有限公司 | 一种ai模型的自动化训练方法及ai模型训练系统 |
CN116634553A (zh) * | 2022-02-10 | 2023-08-22 | 维沃移动通信有限公司 | 信息处理方法及通信设备 |
CN114444338B (zh) * | 2022-04-11 | 2022-07-01 | 北京瑞莱智慧科技有限公司 | Ai模型组合快速轻量级验证的方法、装置及存储介质 |
US11815934B1 (en) * | 2022-04-21 | 2023-11-14 | Microsoft Technology Licensing, Llc. | Coding activity task (CAT) evaluation for source code generators |
CN117751563A (zh) * | 2022-07-22 | 2024-03-22 | 北京小米移动软件有限公司 | 异构人工智能ai框架的模型交互方法、装置及系统 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8568145B2 (en) * | 2010-09-28 | 2013-10-29 | The United States Of America As Represented By The Secretary Of The Air Force | Predictive performance optimizer |
US10261760B1 (en) * | 2013-12-05 | 2019-04-16 | The Mathworks, Inc. | Systems and methods for tracing performance information from hardware realizations to models |
WO2018033137A1 (zh) * | 2016-08-19 | 2018-02-22 | 北京市商汤科技开发有限公司 | 在视频图像中展示业务对象的方法、装置和电子设备 |
CN106548210B (zh) * | 2016-10-31 | 2021-02-05 | 腾讯科技(深圳)有限公司 | 基于机器学习模型训练的信贷用户分类方法及装置 |
CN106547871B (zh) * | 2016-10-31 | 2020-04-07 | 北京百度网讯科技有限公司 | 基于神经网络的搜索结果的召回方法和装置 |
US10157045B2 (en) * | 2016-11-17 | 2018-12-18 | The Mathworks, Inc. | Systems and methods for automatically generating code for deep learning systems |
CN108229267B (zh) * | 2016-12-29 | 2020-10-16 | 北京市商汤科技开发有限公司 | 对象属性检测、神经网络训练、区域检测方法和装置 |
CN107562875A (zh) * | 2017-08-31 | 2018-01-09 | 北京麒麟合盛网络技术有限公司 | 一种模型的更新方法、装置及系统 |
-
2018
- 2018-09-19 EP EP18933825.4A patent/EP3836021B1/en active Active
- 2018-09-19 WO PCT/CN2018/106566 patent/WO2020056647A1/zh unknown
- 2018-09-19 US US17/276,949 patent/US20220036236A1/en active Pending
- 2018-09-19 CN CN201880074664.9A patent/CN111357014B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111357014A (zh) | 2020-06-30 |
US20220036236A1 (en) | 2022-02-03 |
EP3836021A4 (en) | 2021-08-25 |
EP3836021B1 (en) | 2024-05-15 |
EP3836021A1 (en) | 2021-06-16 |
WO2020056647A1 (zh) | 2020-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111357014B (zh) | 一种ai模型的开发方法及装置 | |
CN110347269B (zh) | 一种空鼠模式实现方法及相关设备 | |
CN109559270B (zh) | 一种图像处理方法及电子设备 | |
CN113722058B (zh) | 一种资源调用方法及电子设备 | |
CN111178546A (zh) | 机器学习模型的搜索方法及相关装置、设备 | |
CN113538273A (zh) | 图像处理方法及图像处理装置 | |
CN113436576B (zh) | 应用于二维码扫描的oled显示屏调光方法及装置 | |
CN110727380A (zh) | 一种消息提醒方法及电子设备 | |
CN111078376A (zh) | 一种进程管理方法及设备 | |
CN112214294A (zh) | 调用硬件接口的方法及电子设备 | |
CN113542580A (zh) | 去除眼镜光斑的方法、装置及电子设备 | |
CN114466134A (zh) | 生成hdr图像的方法及电子设备 | |
CN113837984A (zh) | 播放异常检测方法、电子设备和计算机可读存储介质 | |
CN116720563A (zh) | 一种提升定点神经网络模型精度的方法、装置及电子设备 | |
CN111768765B (zh) | 语言模型生成方法和电子设备 | |
CN111147861A (zh) | 图像压缩方法、装置、用户设备和计算机可读存储介质 | |
WO2023000746A1 (zh) | 增强现实视频的处理方法与电子设备 | |
EP4261739A1 (en) | Qr code generation method and related device | |
CN116795435A (zh) | 兼容性管控方法及相关设备 | |
CN113849194A (zh) | 烧录方法和终端设备 | |
CN116703741B (zh) | 一种图像对比度的生成方法、装置和电子设备 | |
CN117130765B (zh) | 计算资源的配置方法和电子设备 | |
CN116074624B (zh) | 一种对焦方法和装置 | |
CN115619628A (zh) | 图像处理方法和终端设备 | |
CN113760239A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |