CN116720567A - 一种模型优化方法以及相关设备 - Google Patents
一种模型优化方法以及相关设备 Download PDFInfo
- Publication number
- CN116720567A CN116720567A CN202210189440.0A CN202210189440A CN116720567A CN 116720567 A CN116720567 A CN 116720567A CN 202210189440 A CN202210189440 A CN 202210189440A CN 116720567 A CN116720567 A CN 116720567A
- Authority
- CN
- China
- Prior art keywords
- information
- model
- neural network
- network model
- terminal
- 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
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本申请公开了一种模型优化方法,该方法应用于终端,该方法中,终端向服务器发送模型优化请求,然后,接收服务器发送的反馈信息,该反馈信息用于指示服务器基于模型优化请求中的模型信息和硬件运行环境信息获得的模型优化结果;接着,终端根据反馈信息,获得优化后的神经网络模型。通过该方法,开发者无需在开发阶段分别针对运行神经网络模型的各种不同终端进行定制化地优化,而是基于终端与服务器的信息交互,获取终端中的神经网络模型的模型优化结果以优化神经网络模型,提升了终端中的神经网络模型的优化效率。
Description
技术领域
本申请涉及人工智能技术领域,具体涉及一种模型优化方法以及相关设备。
背景技术
人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式作出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。人工智能领域的研究包括机器人,自然语言处理,计算机视觉,决策与推理,人机交互,推荐与搜索,AI基础理论等。
随着AI的快速发展,神经网络模型(例如,深度神经网络模型)被部署于各种设备中,以在图像、视频以及语音等多种信息的处理与分析中发挥作用。在部署神经网络模型之前,开发者通常需要在开发阶段完成对神经网络模型的优化。而由于神经网络模型可能会部署在多种不同类型和型号的设备上,因此,开发者需要获得不同设备的信息,并基于不同设备的信息多次执行针对神经网络模型的优化操作,获得神经网络模型分别针对不同设备的优化后的部署模型,并分别集成到各个设备中,还可能需要随着设备的升级操作而不断地发布神经网络模型的更新版本,导致开发者针对设备中部署的神经网络模型进行优化的效率较低。
发明内容
本申请提供一种模型优化方法,以解决目前的开发者对设备中部署的神经网络模型进行优化的效率较低的问题。本申请还提供了相应的装置、设备、计算机可读存储介质和计算机程序产品等。
本申请第一方面提供一种模型优化方法,该方法应用于终端,该方法包括:向服务器发送模型优化请求,模型优化请求携带有第一信息,第一信息包括神经网络模型的模型信息和神经网络模型对应的硬件运行环境信息,硬件运行环境信息包括神经网络模型对应的芯片的信息;接收服务器发送的反馈信息,反馈信息用于指示服务器基于模型信息和硬件运行环境信息获得的模型优化结果;根据反馈信息,获得优化后的神经网络模型。
在第一方面中,该神经网络模型可以与应用程序对应,该应用程序安装于终端,该应用程序对应的神经网络模型可以未与终端的芯片等硬件运行环境相关联,也即是说,该应用程序对应的神经网络模型未针对终端的芯片等硬件进行适配。在一种示例中,反馈信息可以包含对神经网络模型优化并编译而得到的二进制文件,例如,包含神经网络模型的优化后的算子核函数对应的二进制文件,或者优化后的神经网络模型对应的二进制文件,此时,终端可以根据该反馈信息中的二进制文件,获得优化后的神经网络模型。而在另一种示例中,反馈信息可以包括该二进制文件的下载地址等相关信息,此时,终端基于该信息,下载该模型优化结果,再根据下载得到的模型优化结果获得优化后的神经网络模型。此外,该反馈信息中还可以包含神经网络模型对应的应用程序的信息,例如包含应用程序的标识(如,应用程序的名称或者编号等),以便于终端确定该反馈信息对应的模型优化结果与该应用程序相关。
在获得优化后的神经网络模型之后,终端可以存储优化后的神经网络模型。这样,终端可以在后续每次启动应用程序时,都能够基于优化后的神经网络模型进行相关数据处理操作,而不必在每次需要应用程序神经网络模型时,都触发向服务器发送模型优化请求的操作以及后续操作,从而提升了处理效率。
由上述可知,该第一方面中,终端向服务器发送模型优化请求,其中,模型优化请求携带有第一信息,第一信息包括神经网络模型的模型信息和神经网络模型对应的硬件运行环境信息;然后,终端接收服务器发送的反馈信息,以根据反馈信息所指示的基于模型信息和硬件运行环境信息获得的模型优化结果,获得优化后的神经网络模型。这样,开发者无需在开发阶段分别针对运行神经网络模型的各种不同终端进行定制化地优化,而是在神经网络模型部署于终端之后,基于终端与服务器的信息交互,获取神经网络模型的模型优化结果以优化神经网络模型,提升了设备中的神经网络模型的优化效率。此外,神经网络模型部署于终端之后,再针对终端中的相关芯片等硬件运行环境对神经网络模型进行针对性地优化,使得优化后的神经网络模型的针对性较强,与终端的适配度较好,优化性能也相应地较好。
在第一方面的一种可能的实现方式中,终端安装有应用程序和第一程序,神经网络模型与应用程序对应,第一程序为操作系统OS或目标软件开发工具包SDK;上述步骤:向服务器发送模型优化请求,包括:基于应用程序接口API,由应用程序向第一程序传递第一请求,第一请求携带有神经网络模型的信息和应用程序的信息;若第一程序基于第一请求,未在终端中查找到优化后的神经网络模型,则向服务器发送模型优化请求。
该种可能的实现方式中,第一程序可以针对终端中的各个不同的应用程序中的神经网络模型,与服务器进行信息交互,也可以是说,可以通过第一程序与服务器进行交互,从而分别为终端中的各个不同应用程序获得各自对应的神经网络模型的模型优化结果,而不需要在开发阶段在各个不同应用程序中设置与服务器进行交互的相关功能,提升了应用程序的开发效率,并且便于终端执行与服务器进行交互的相关操作。
在第一方面的一种可能的实现方式中,该方法还包括:若第一程序基于第一请求,在终端中查找到优化后的神经网络模型,则获得优化后的神经网络模型。
该种可能的实现方式中,若终端中已经存储有该优化后的神经网络模型,则可以不向服务器发送模型优化请求,而基于在终端中查询到的优化后的神经网络模型,对应用程序的待处理数据进行处理。
在第一方面的一种可能的实现方式中,模型优化请求还携带有应用程序的信息,应用程序的信息用于使服务器查询模型优化结果。
该种可能的实现方式中,应用程序的信息可以包括应用程序的名称、标识、版本号等信息中的一种或多种。这样,当服务器中存储的优化后的参考神经网络模型涉及大量的应用程序时,服务器基于模型优化请求中的应用程序的信息、神经网络模型的模型名称和硬件运行环境信息进行查询,可以快速缩小查询范围,提升匹配的精准度,提升查询效率。
在第一方面的一种可能的实现方式中,第一程序中包含目标配置信息,第一信息基于目标配置信息而生成,目标配置信息用于指示终端能够向服务器发送的关于神经网络模型的信息内容。
该种可能的实现方式中,目标配置信息为对第一程序中的某一配置选项进行配置而得到的。该配置选项的形式可以有多种。举例来说,该配置选项可以对应多个可供开发者选择的配置等级,例如,可以对应有第一等级、第二等级和第三等级等等。第一程序可以针对应用程序提供该配置选项,应用程序的开发者可以针对该应用程序从多个可选择的配置等级中进行选择,而开发者从多个可选择的配置等级中所选定的配置等级,可以作为目标配置信息。具体来说,目标配置信息可以指示应用程序的神经网络模型的哪些模型信息能够向服务器进行传输。其中,配置选项所能提供的配置等级的个数,以及每个配置等级对应的可发送的信息内容可以有多种设置方式,在此不做限制。
这样,通过该配置选项,开发者可以基于自身对应用程序的神经网络模型的相关数据的保密需求,设置相应应用程序的神经网络的数据向服务器的传输权限,以使得应用程序的开发者可以根据自身对于神经网络模型的保密力度,确定模型优化请求中所能够包含的关于神经网络模型的信息内容,避免神经网络模型的相关保密信息被终端传输至服务器,提升相关信息的隐私性,满足不同开发者的数据保密诉求。
在第一方面的一种可能的实现方式中,目标配置信息为第一配置信息、第二配置信息或者第三配置信息;第一配置信息用于指示终端能够向服务器发送神经网络模型的算子的类型信息和算子参数信息,算子参数信息不包括算子的权重信息;第二配置信息用于指示终端能够向服务器发送神经网络模型的算子的类型信息、算子参数信息和算子之间的关联关系信息;第三配置信息用于指示终端能够向服务器发送神经网络模型的算子的权重信息、类型信息、算子参数信息和算子之间的关联关系信息。
该种可能的实现方式中,通常来说,第一配置信息、第二配置信息至第三配置信息所涉及的神经网络模型的信息内容对开发者而言的敏感程度和保密级别由低到高,第一程序中的配置选项可以为应用程序的开发者提供第一配置信息、第二配置信息以及第三配置信息等多种可选择的配置,应用程序的开发者可以根据相关数据保密诉求从第一配置信息、第二配置信息和第三配置信息中确定目标配置信息,以确定终端能够向服务器发送的神经网络模型的信息内容。
在第一方面的一种可能的实现方式中,在获得优化后的神经网络模型之后,还包括:基于优化后的神经网络模型,处理待处理数据。
该种可能的实现方式中,该待处理数据来自于神经网络模型对应的应用程序。终端可以在应用程序的本次运行过程中,获得优化后的神经网络模型,并在本次运行过程中获取应用程序的待处理数据,并基于优化后的神经网络模型对该待处理数据进行处理。此外,还可以在本次运行过程结束之后,下次启动应用程序时,获取终端中存储的该优化后的神经网络模型来对应用程序的待处理数据进行处理。
在第一方面的一种可能的实现方式中,模型信息包括神经网络模型中的算子信息,和/或,神经网络模型中的算子之间的关联关系信息。
该种可能的实现方式中,算子信息可以包括以下信息中的一种或多种:算子类型、算子的权重信息、一个或多个算子参数信息。该算子参数信息与算子的权重信息不同,示例性地,该算子参数信息可以包括算子的输入数据和/或输出数据的维度、算子中的元素的相关参数(例如卷积算子中卷积核的大小)等信息。算子之间的关联关系信息可以指示算子之间的数据流向和算子之间的连接关系,能够描述神经网络模型中的各个算子之间的输入数据和输出数据之间的关系。
该种可能的实现方式中,模型信息的具体形式也可以有多种。在一种示例中,该模型信息可以包含完整的神经网络模型,此时,该模型信息可以包含神经网络模型中的每个算子的算子信息以及算子之间的关联关系信息。而在另一种示例中,该模型信息可以以列表的形式,记录神经网络模型中的一个或多个算子的算子信息。
在第一方面的一种可能的实现方式中,模型优化结果包括二进制文件,二进制文件对应神经网络模型的优化后的算子核函数,和/或,优化后的神经网络模型。
该种可能的实现方式的一种示例中,模型优化请求中的模型信息仅包括神经网络模型中的算子的算子信息,而不包括算子之间的关联关系信息时,服务器可以针对神经网络模型的算子进行优化和编译,从而获得优化后的算子核函数。而在另一种示例中,模型优化请求中可以携带有完整的神经网络模型的信息,这样,服务器可以对完整的神经网络模型进行优化,从而获得优化后的神经网络模型对应的二进制文件。
本申请第二方面提供一种模型优化方法,该方法应用于服务器,该方法包括:接收终端发送的模型优化请求,模型优化请求携带有第一信息,第一信息包括神经网络模型的模型信息和神经网络模型对应的硬件运行环境信息;向终端发送反馈信息,反馈信息用于指示基于模型信息和硬件运行环境信息获得的模型优化结果。
在第二方面中,服务器在接收到模型优化请求之后,可以基于模型优化请求中携带的模型信息和硬件运行环境信息,获得模型优化结果。基于相应的硬件运行环境信息对神经网络模型进行优化的具体方式可以有多种,在此不做限制。举例来说,可以对神经网络模型的图结构进行调整,对神经网络模型的中的算子的计算逻辑进行优化,对神经网络模型的算子进行融合、剪枝,和/或对神经网络模型中的一些参数进行调参操作,以适配硬件运行环境的功能。
在第二方面的一种可能的实现方式中,上述步骤:向终端发送反馈信息,包括:基于模型信息和硬件运行环境信息,查询服务器中是否存储有模型优化结果;若查询到模型优化结果,则向终端发送反馈信息,反馈信息用于指示查询到的模型优化结果。
该种可能的实现方式中,服务器中可以预先存储有关系列表,该关系列表中包含索引信息和优化后的参考神经网络模型的对应关系的信息。服务器可以将模型优化请求中的模型名称和硬件运行环境信息与各个索引信息进行比对,若某一索引信息与该模型信息和硬件运行环境信息匹配成功,则可以根据该索引信息对应的参考神经网络模型,获得模型优化结果。其中,任一参考神经网络模型对应的索引信息包含该参考神经网络模型对应的模型名称和硬件运行环境信息。
在第二方面的一种可能的实现方式中,上述向终端发送反馈信息的步骤,还包括:若没有查询到模型优化结果,则基于模型信息和硬件运行环境信息对神经网络模型进行优化;向终端发送反馈信息,反馈信息用于指示对神经网络模型进行优化后获得的模型优化结果。
该种可能的实现方式中,服务器可以通过模型优化工具,基于模型信息和硬件运行环境信息对神经网络模型进行优化。该模型优化工具可以是第三方提供的工具,也可以是服务器的相关开发人员开发的工具。该模型优化工具可以在服务器对神经网络模型进行优化并编译,获得神经网络模型的模型优化结果。
由于服务器的计算资源较为充足且性能通常较好,因此,通过服务器对神经网络模型进行优化的优化效率通常较高,且对神经网络模型进行优化后获得的模型优化结果还可以存储于服务器,并可以在相同类型的其他终端针对相同应用程序的相同神经网络模型向服务器发送模型优化请求时,由服务器提供给其他终端,资源利用率较高。
在第二方面的一种可能的实现方式中,神经网络模型与应用程序对应,应用程序安装于终端,模型优化请求中还携带有应用程序的信息;上述基于模型信息和硬件运行环境信息,查询服务器中是否存储有模型优化结果的步骤,包括:基于应用程序的信息、模型信息和硬件运行环境信息,查询服务器中是否存储有模型优化结果。
该种可能的实现方式中,索引信息中不仅包含对应的参考神经网络模型的模型名称和硬件运行环境信息,还可以包含对应的参考神经网络模型所关联的应用程序。服务器可以将应用程序的信息、神经网络模型的模型名称和硬件运行环境信息与各个索引信息进行比对。这样,在一些场景中,当服务器中存储的优化后的参考神经网络模型涉及大量的应用程序时,服务器基于模型优化请求中的应用程序的信息、神经网络模型的模型名称和硬件运行环境信息进行查询,可以快速缩小查询范围,提升匹配的精准度,提升查询效率。
在第二方面的一种可能的实现方式中,模型信息包括神经网络模型中的每个算子的算子信息,和/或,神经网络模型中的算子之间的关联关系信息。
在第二方面的一种可能的实现方式中,模型优化结果包括二进制文件,二进制文件对应神经网络模型的优化后的算子核函数,和/或,优化后的神经网络模型。
本申请第三方面提供一种模型优化装置,应用于终端,该装置具有实现上述第一方面或第一方面任意一种可能实现方式的方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块,例如:发送模块、接收模块以及处理模块。
本申请第四方面提供一种终端,该终端包括至少一个处理器、存储器以及存储在存储器中并可在处理器上运行的计算机执行指令,当计算机执行指令被处理器执行时,处理器执行如上述第一方面或第一方面任意一种可能的实现方式的方法。
本申请第五方面提供一种存储一个或多个计算机执行指令的计算机可读存储介质,当计算机执行指令被处理器执行时,处理器执行如上述第一方面或第一方面任意一种可能的实现方式的方法。
本申请第六方面提供一种存储一个或多个计算机执行指令的计算机程序产品,当计算机执行指令被处理器执行时,处理器执行如上述第一方面或第一方面任意一种可能的实现方式的方法。
本申请第七方面提供了一种芯片系统,该芯片系统包括处理器,用于支持终端实现上述第一方面或第一方面任意一种可能的实现方式中所涉及的功能。在一种可能的设计中,芯片系统还可以包括存储器,存储器用于保存计算机设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。
本申请第八方面提供一种模型优化装置,该装置可以应用于服务器,该装置具有实现上述第二方面或第二方面任意一种可能实现方式的方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块,例如:接收模块以及发送模块。
本申请第九方面提供一种服务器,该服务器包括至少一个处理器、存储器以及存储在存储器中并可在处理器上运行的计算机执行指令,当计算机执行指令被处理器执行时,处理器执行如上述第二方面或第二方面任意一种可能的实现方式的方法。
本申请第十方面提供一种存储一个或多个计算机执行指令的计算机可读存储介质,当计算机执行指令被处理器执行时,处理器执行如上述第二方面或第二方面任意一种可能的实现方式的方法。
本申请第十一方面提供一种存储一个或多个计算机执行指令的计算机程序产品,当计算机执行指令被处理器执行时,处理器执行如上述第二方面或第人方面任意一种可能的实现方式的方法。
本申请第十二方面提供了一种芯片系统,该芯片系统包括处理器,用于支持服务器实现上述第二方面或第二方面任意一种可能的实现方式中所涉及的功能。在一种可能的设计中,芯片系统还可以包括存储器,存储器用于保存计算机设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。
其中,第三方面至第七方面或者其中任一种可能实现方式所带来的技术效果可参见第一方面或第一方面的相关可能实现方式所带来的技术效果,第八方面至第十二方面或者其中任一种可能实现方式所带来的技术效果可参见第二方面或第二方面的相关可能实现方式所带来的技术效果,此处不再赘述。
附图说明
图1是本发明实施例提供的一种人工智能主体框架示意图;
图2是本发明实施例提供的服务器和终端的一种示例性示意图;
图3是本发明实施例提供的服务器和终端之间的信息交互流程的一种示例性示意图;
图4是本发明实施例提供的服务器和终端之间的信息交互流程的另一种示例性示意图;
图5是本发明实施例提供的终端中的应用程序、第一程序以及服务器的一种示例性示意图;
图6是本发明实施例提供的服务器和终端之间的信息交互流程的又一种示例性示意图;
图7是本发明实施例提供的服务器和终端之间的信息交互流程的再一种示例性示意图;
图8是本申请实施例提供的模型优化装置的一实施例示意图;
图9是本申请实施例提供的模型优化装置的另一实施例示意图;
图10是本申请实施例提供的终端的一结构示意图;
图11是本申请实施例提供的服务器的一结构示意图。
具体实施方式
下面结合本发明实施例中的附图对本发明实施例进行描述。本发明的实施方式部分使用的术语仅用于对本发明的具体实施例进行解释,而非旨在限定本发明。
下面结合附图,对本申请的实施例进行描述。本领域普通技术人员可知,随着技术的发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项”或其类似表达,是指的这些项中的任意组合,包括单项或复数项的任意组合。本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
由于本申请实施例涉及人工智能领域,为了便于理解,下面先对本申请实施例涉及的相关术语及神经网络等相关概念进行介绍。
请参见图1,图1示出的为人工智能主体框架的一种结构示意图,下面从“智能信息链”(水平轴)和“IT价值链”(垂直轴)两个维度对上述人工智能主题框架进行阐述。其中,“智能信息链”反映从数据的获取到处理的一列过程。举例来说,可以是智能信息感知、智能信息表示与形成、智能推理、智能决策、智能执行与输出的一般过程。在这个过程中,数据经历了“数据—信息—知识—智慧”的凝练过程。“IT价值链”从人智能的底层基础设施、信息(提供和处理技术实现)到系统的产业生态过程,反映人工智能为信息技术产业带来的价值。
(1)基础设施
基础设施为人工智能系统提供计算能力支持,实现与外部世界的沟通,并通过基础平台实现支撑。通过传感器与外部沟通;计算能力由智能芯片(中央处理器(centralprocessing unit,CPU)、神经网络处理器(neural-network processing unit,NPU)、图形处理器(graphics processing unit,GPU)、专用集成电路(application specificintegrated circuit,ASIC)、现场可编程逻辑门阵列(field programmable gate array,FPGA)、张量处理器(tensor processing unit,TPU)等硬件加速芯片)提供;基础平台包括分布式计算框架及网络等相关的平台保障和支持,可以包括云存储和计算、互联互通网络等。举例来说,传感器和外部沟通获取数据,这些数据提供给基础平台提供的分布式计算系统中的智能芯片进行计算。
(2)数据
基础设施的上一层的数据用于表示人工智能领域的数据来源。数据涉及到图形、图像、语音、文本,还涉及到传统设备的物联网数据,包括已有系统的业务数据以及力、位移、液位、温度、湿度等感知数据。
(3)数据处理
数据处理通常包括数据训练,机器学习,深度学习,搜索,推理,决策等方式。
其中,机器学习和深度学习可以对数据进行符号化和形式化的智能信息建模、抽取、预处理、训练等。
推理是指在计算机或智能系统中,模拟人类的智能推理方式,依据推理控制策略,利用形式化的信息进行机器思维和求解问题的过程,典型的功能是搜索与匹配。
决策是指智能信息经过推理后进行决策的过程,通常提供分类、排序、预测等功能。
(4)通用能力
对数据经过上面提到的数据处理后,进一步基于数据处理的结果可以形成一些通用的能力,比如可以是算法或者一个通用系统,例如,翻译,文本的分析,计算机视觉的处理,语音识别,图像的识别等等。
(5)智能产品及行业应用
智能产品及行业应用指人工智能系统在各领域的产品和应用,是对人工智能整体解决方案的封装,将智能信息决策产品化、实现落地应用,其应用领域主要包括:智能终端、智能交通、智能医疗、自动驾驶、智慧城市等。
(6)神经网络
神经网络可以是由神经单元组成的,神经单元可以是指以xs(即输入数据)和截距1为输入的运算单元,该运算单元的输出可以为:
其中,s=1、2、……n,n为大于1的自然数,Ws为xs的权重,b为神经单元的偏置。f为神经单元的激活函数(activation functions),用于将非线性特性引入神经网络中,来将神经单元中的输入信号转换为输出信号。该激活函数的输出信号可以作为下一层卷积层的输入,激活函数可以是sigmoid函数。神经网络是将多个上述单一的神经单元联结在一起形成的网络,即一个神经单元的输出可以是另一个神经单元的输入。每个神经单元的输入可以与前一层的局部接受域相连,来提取局部接受域的特征,局部接受域可以是由若干个神经单元组成的区域。
神经网络有多种类型,例如,深度神经网络(deep neural network,DNN),也称多层神经网络,也就是具有多层隐含层的神经网络;再例如,卷积神经网络(convolutionalneuron network,CNN),是带有卷积结构的深度神经网络。本申请不限定涉及的神经网络的具体类型。
(7)算子
算子是指实现某种特定功能的函数。例如,以reshape算子为例,该算子用于对张量数据的形状进行重新诠释。又例如,以transpose算子为例,该算子用于调整张量数据的维度顺序。在本申请中,用于构建深度学习模型算法的常用的函数统称为算子,对任何函数进行某一项操作都可以认为是一个算子。比如卷积是一种积分变换的数学方法,比如是通过两个函数f1和f2生成的函数f3,则可以将f1、f2以及卷积结果f3分别作为一个算子。
(8)算子核函数(kernel)
算子kernel是算子对应到硬件上可执行的二进制程序。深度学习框架采用算子作为落实计算任务的具体元素,为每个算子都提供了在CPU或者人工智能处理器等计算单元上执行的算子kernel,根据计算图,深度学习框架调度执行计算图中每个算子对应的核函数,完成整个神经网络的计算。
每个算子都需要有对应硬件的kernel实现,因此需要对应硬件实现的算子kernel注册到深度学习框架中,运行模型的时候根据算子名称调用对应的硬件的算子kernel实现。
随着人工智能技术的不断完善,人工智能相关的应用呈现爆炸式地增长。包含神经网络模型(例如,深度神经网络模型)的应用被部署于各种设备中,以在图像、视频以及语音等多种信息的处理与分析中发挥作用。
在开发阶段,开发者通常会通过诸如TensorFlow等训练框架,基于大量的数据集得到一个训练好的原始模型,再基于该训练好的原始模型所要部署的设备的情况,对该训练好的原始模型进行优化。在优化时,需要考虑的因素通常较多,例如,需要考虑相应设备的类型、硬件配置情况、软件配置情况、数据处理能力等等因素,因此,开发者需要花费大量的时间和精力来优化神经网络模型。
此外,开发者通常需要在开发阶段完成对神经网络模型的优化。而由于神经网络模型可能会部署在多种不同类型和型号的设备上,因此,开发者需要获得不同设备的信息,并基于不同设备的信息多次执行针对神经网络模型的优化操作,获得神经网络模型分别针对不同设备的优化后的部署模型,并分别集成到各个设备中,还可能需要随着设备的升级操作而不断地发布神经网络模型的更新版本,导致开发者针对设备中部署的神经网络模型进行优化的效率较低。
基于此,本申请实施例提供一种模型优化方法,以解决目前的开发者对设备中部署的神经网络模型进行优化的效率较低的问题。
下面针对本申请实施例的模型优化方法进行具体介绍。
本申请实施例的模型优化方法可以应用于端云协同系统中,该端云协同系统包括终端和服务器。
本申请实施例中的终端也可称为用户设备(user equipment,UE)。
示例性地,该终端可以是手机(mobile phone)、平板电脑(pad)、带无线收发功能的电脑、虚拟现实(virtual reality,VR)终端、增强现实(augmented reality,AR)终端、工业控制(industrial control)中的无线终端、无人驾驶(self driving)中的无线终端、远程医疗(remote medical)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端、以物联网(internet of things,IoT)中的无线终端等。
本申请实施例中的服务器可以是一个服务器或者是服务器集群。
终端和服务器之间可以基于指定的无线通信方式或者有线通信方式进行数据传输。终端和服务器之间的通信方式可以有多种,本申请实施例在此不做限定。
如图2所示,为服务器和终端的一种示例性示意图。
图2中,服务器201可以与多个终端(例如图2所示的终端211、终端212和终端213)进行信息交互。其中,终端211、终端212和终端213的设备类型以及设备型号可以相同,也可以不同。服务器201还可以与数据存储系统连接。
终端中安装有应用程序,该应用程序中可以包含神经网络模型。该应用程序可以是终端从应用程序市场或者其他途径下载并安装的,也可以是终端出厂时自带的。
该应用程序对应的神经网络模型可以未与终端的芯片等硬件运行环境相关联,也即是说,该应用程序对应的神经网络模型未针对终端的芯片等硬件进行适配。
本申请实施例并不限定该神经网络模型的类型。示例性地,该神经网络模型可以是回归模型、深度神经网络(deep neural network,DNN)、卷积神经网络模型(convolutional neural networks,CNN)、循环神经网络模型(recurrent neuralnetworks,RNN)等。
该应用程序对应的神经网络模型可以包含于应用程序的安装包中,也可以是在终端安装该应用程序之后,再将神经网络模型下载至终端中。该神经网络模型可以用于对应用程序中的待处理数据进行处理。
该应用程序的具体功能以及神经网络模型的功能在此不做限定。举例来说,该应用程序可以实现人脸识别功能,此时,该应用程序中可以包括用于人脸识别的神经网络模型,则通过该神经网络模型可以对应用程序获取到的待处理图像进行处理,获得相应的人脸识别结果。或者,该应用程序可以实现文本翻译功能,则通过该神经网络模型可以对应用程序获取到的文字信息进行翻译,获得翻译结果。
参考图3,具体地,本申请实施例的模型优化方法可以包括步骤301-305。
步骤301、终端向服务器发送模型优化请求。
模型优化请求携带有第一信息,第一信息包括神经网络模型的模型信息和神经网络模型对应的硬件运行环境信息,硬件运行环境信息包括神经网络模型对应的芯片的信息。
本申请实施例中,服务器可以提供指定的应用程序接口(applicationprogramming interface,API),终端调用该API并基于与服务器的通信连接,向服务器发送模型优化请求。
该模型优化请求中,神经网络模型的模型信息可以包括完整的神经网络模型的信息,也可以仅包括神经网络模型的部分信息。
在一些实施例中,该模型优化请求中,神经网络模型的模型信息可以包括以下信息中的一种或多种:神经网络模型中的算子信息、算子之间的关联关系信息。
其中,神经网络模型中的算子的数量和类型可以基于实际应用场景来确定,在此不做限制。例如,任一算子可以为卷积算子、池化算子、激活算子或者全连接算子。神经网络模型中的算子可以对应神经网络中的层(layer)。神经网络模型中的算子的个数可以为一个或多个。
算子信息可以包括以下信息中的一种或多种:算子类型、算子的权重信息、一个或多个算子参数信息。该算子参数信息与算子的权重信息不同,示例性地,该算子参数信息可以包括算子的输入数据和/或输出数据的维度、算子中的元素的相关参数(例如卷积算子中卷积核的大小)的信息。
算子之间的关联关系信息可以指示算子之间的数据的流向和算子之间的连接关系,能够描述神经网络模型中的各个算子之间的输入数据和输出数据之间的关系。
模型信息的具体形式也可以有多种。在一种示例中,该模型信息可以包含完整的神经网络模型,此时,该模型信息可以包含神经网络模型中的每个算子的算子信息以及算子之间的关联关系信息。而在另一种示例中,该模型信息可以以列表的形式,记录神经网络模型中的一个或多个算子的算子信息。
神经网络模型对应的硬件运行环境信息可以包括神经网络模型在终端进行运行时,所关联的硬件信息,其中,可以包括神经网络模型对应的芯片的信息。示例性地,该芯片的信息可以包括芯片的供应商、芯片型号、芯片所包含的计算单元的类型等信息中的一种或多种。芯片中的计算单元的类型可以包括CPU,也可以包括GPU、NPU、TPU中的一种或多种。
此外,模型优化请求中还可以携带有神经网络模型的模型名称、终端的名称、国际移动设备识别码(International mobile equipment identity,IMEI)等标识信息,以便于服务器识别模型优化请求的发送方以及待优化的神经网络模型。
本申请实施例中,可以在终端首次启动应用程序时,触发终端向服务器发送模型优化请求的操作;或者,可以在终端启动应用程序,并首次应用神经网络模型时,触发终端向服务器发送模型优化请求的操作;或者,也可以是终端每次启动应用程序时,检测终端本地是否存储有该应用程序对应的优化后的神经网络模型,若未检测到,则触发终端向服务器发送模型优化请求的操作;或者,可以是终端在应用程序运行时,周期性地触发向服务器发送模型优化请求的操作;或者,还可以在检测到应用程序的神经网络模型的更新信息之后,根据更新后的神经网络模型,触发终端向服务器发送模型优化请求的操作。终端向服务器发送模型优化请求的时机在此不做限制。
在一些实施例中,该模型优化请求还携带有应用程序的信息,应用程序的信息用于服务器查询模型优化结果。
应用程序的信息可以包括应用程序的名称、标识、版本号等信息中的一种或多种。这样,在一些场景中,当服务器中存储的优化后的神经网络模型涉及大量的应用程序时,服务器可以基于模型优化请求中的应用程序的信息进行查询,从而快速缩小查询范围,提升匹配的精准度,提升查询效率。
步骤302、服务器接收终端发送的模型优化请求。
服务器在接收到模型优化请求之后,可以基于模型优化请求中携带的模型信息和硬件运行环境信息,获得模型优化结果。
其中,若服务器中存储有神经网络模型对应的模型优化结果,则可以基于硬件运行环境信息进行查询,以获得存储的模型优化结果。此时,服务器中所存储的模型优化结果可以是人工预先存储于服务器中的,也可以是其他设备(如其他终端)发送至服务器的。
若服务器中未存储有模型优化结果,那么,在一种示例中,可以基于模型优化请求中携带的模型信息和硬件运行环境信息对神经网络模型进行在线优化,获得模型优化结果;或者,在另一种示例中,服务器不具备对神经网络模型进行在线优化的能力,则可以向终端发送指示模型优化失败的信息。
本申请实施例中,基于相应的硬件运行环境信息对神经网络模型进行优化的具体方式可以有多种,在此不做限制。举例来说,可以对神经网络模型的图结构进行调整,对神经网络模型的中的算子的计算逻辑进行优化,对神经网络模型的算子进行融合、剪枝,和/或对神经网络模型中的一些参数进行调参操作,以适配硬件运行环境的功能。
模型优化结果可以为对神经网络模型进行优化并编译所获得的结果。该模型优化结果中可以包含二进制程序的信息,具体地,该二进制程序可以包括对神经网络模型中的部分或者全部算子进行优化并编译后的二进制程序。
在一些实施例中,模型优化结果包括二进制文件,二进制文件对应神经网络模型的优化后的算子核函数,和/或,优化后的神经网络模型。
其中,该优化后的算子核函数可以为对神经网络模型的每个算子进行优化后得到的算子核函数,也可以是对神经网络模型中的部分算子进行优化后得到的算子核函数。当优化后的算子核函数为对神经网络模型中的部分算子进行优化后得到的算子核函数时,神经网络模型中除该部分算子之外的其他算子可以由终端进行优化,或者不进行优化。
而优化后的神经网络模型对应的二进制文件可以是对完整的神经网络模型进行优化并编译之后所获得二进制文件,该二进制文件中可以包括优化后的神经网络模型在相应硬件上可执行的二进制程序。
在一种示例中,模型优化请求中的模型信息仅包括神经网络模型中的算子的算子信息,而不包括算子之间的关联关系信息时,服务器可以针对神经网络模型的算子进行优化和编译,从而获得优化后的算子核函数。
而在另一种示例中,模型优化请求中可以携带有完整的神经网络模型的信息,这样,服务器可以对完整的神经网络模型进行优化,从而获得优化后的神经网络模型对应的二进制文件。
步骤303、服务器向终端发送反馈信息。
反馈信息用于指示基于模型信息和硬件运行环境信息获得的模型优化结果。
该反馈信息中可以包含神经网络模型的名称等标识信息,以指示该反馈信息与该神经网络模型相关。
在一种示例中,反馈信息可以包含对神经网络模型优化并编译而得到的二进制文件,例如,发送神经网络模型的优化后的算子核函数对应的二进制文件,或者优化后的神经网络模型对应的二进制文件。
而在另一种示例中,反馈信息可以包括该二进制文件的下载地址等相关信息,以使得终端基于该信息,下载该模型优化结果。
此外,该反馈信息中还可以包含应用程序的信息,例如包含应用程序的标识(如,应用程序的名称或者编号等),以便于终端确定该反馈信息对应的模型优化结果与该应用程序相关。
步骤304、终端接收服务器发送的反馈信息。
步骤305、终端根据反馈信息,获得优化后的神经网络模型。
在一种示例中,反馈信息包含对神经网络模型优化并编译而得到的二进制文件,则终端可以根据该反馈信息中的二进制文件,获得优化后的神经网络模型。例如,若该二进制文件对应优化后的神经网络模型,则终端可以从反馈信息中直接获得优化后的神经网络模型。而在另一种示例中,若该二进制文件对应神经网络模型的优化后的算子核函数,则终端可以在获得算子核函数之后,根据神经网络模型中的算子之间的关联关系信息和每个算子对应的算子核函数,获得优化后的神经网络模型。例如,终端可以根据算子之间的关联关系信息,确定每个算子对应的算子核函数的执行顺序以及每个算子核函数的输入数据和输出数据之间的关系等。
本申请实施例中,终端向服务器发送模型优化请求,其中,模型优化请求携带有第一信息,第一信息包括神经网络模型的模型信息和神经网络模型对应的硬件运行环境信息;然后,终端接收服务器发送的反馈信息,以根据反馈信息所指示的基于模型信息和硬件运行环境信息获得的模型优化结果,获得优化后的神经网络模型。这样,开发者无需在开发阶段分别针对运行神经网络模型的各种不同终端进行定制化地优化,而是在神经网络模型部署于终端之后,基于终端与服务器的信息交互,获取应用程序中的神经网络模型的模型优化结果以优化神经网络模型,提升了设备中的神经网络模型的优化效率,而研发人员可以在服务器完成对神经网络模型的集中优化,开发效率较高。此外,本申请实施例在神经网络模型部署于终端之后,再针对终端中的相关芯片等硬件运行环境对神经网络模型进行针对性地优化,使得优化后的神经网络模型的针对性较强,与终端的适配度较好,优化性能也相应地较好。
在一些实施例中,在获得优化后的神经网络模型之后,终端可以存储优化后的神经网络模型。
这样,终端可以在后续每次启动神经网络模型对应的应用程序时,都能够基于优化后的神经网络模型进行相关数据处理操作,而不必在每次需要应用神经网络模型时,都触发执行上述步骤301-305,从而提升了处理效率。
在一些实施例中,在获得优化后的神经网络模型之后,终端可以基于优化后的神经网络模型,处理待处理数据。
该待处理数据可以来自于神经网络模型对应的应用程序。终端可以在应用程序的本次运行过程中,执行上述步骤301、304-305,并且在步骤305执行完成之后,在应用程序的本次运行过程中,获取应用程序的待处理数据,并基于优化后的神经网络模型对该待处理数据进行处理。
该待处理数据的数据形式和内容在此不做限定。示例性地,神经网络模型用于人脸识别,则待处理数据可以为包含人脸的待处理图像,终端可以基于优化后的神经网络模型,处理该待处理图像,获得相应的人脸识别结果。或者,神经网络模型用于文本翻译,则待处理数据包含文本信息,终端可以基于优化后的神经网络模型,处理该文本信息,获得相应的翻译结果。
此外,终端还可以在本次运行过程结束之后,下次启动应用程序时,获取终端中存储的该优化后的神经网络模型,以执行应用程序在此次启动并运行应用程序的过程中的待处理数据的相关处理操作。
基于上述模型优化方法的任一实施例,下面对模型优化方法所涉及的终端的内部处理流程进行具体介绍。
在一些实施例中,终端安装有应用程序和第一程序,神经网络模型与应用程序对应,第一程序为操作系统OS或目标软件开发工具包SDK。
如图4所示,上述步骤301可以包括以下步骤401-402。
步骤401,应用程序基于应用程序接口API,向第一程序传递第一请求。
第一请求携带有神经网络模型的信息和应用程序的信息。
步骤402,若第一程序基于第一请求,未在终端中查找到优化后的神经网络模型,则向服务器发送模型优化请求。
下面对上述步骤401-402进行具体介绍。
如图5所示,为终端中的应用程序、第一程序以及服务器的一种示意图。
图5中,终端50的应用程序501、应用程序502和应用程序503可以分别与第一程序504进行信息交互,此外,第一程序504还可以与服务器51进行信息交互。
本申请实施例的一种示例中,第一程序可以为终端中的操作系统(operatingsystem,OS),与服务器进行交互的相关功能可以由终端的操作系统来提供。此时,可以通过操作系统,为终端中的各个不同的应用程序提供与服务器进行交互以获得优化后的神经网络模型的功能,也便于终端中的操作系统对各个应用程序的神经网络模型的优化操作进行管理,而不需要开发者在开发应用程序时,为每个应用程序单独部署与服务器进行交互的相关功能。
而在另一些示例中,第一程序可以为终端中的目标软件开发工具包(softwaredevelopment kit,SDK)。此时,可以通过该目标SDK,为终端中的各个不同的应用程序提供与服务器进行交互以获得优化后的神经网络模型的功能。
该目标SDK可以是在终端出厂后安装至终端中的第三方工具包;或者,也可以是终端的操作系统的工具包,此时,目标SDK的功能可以作为终端的操作系统的补充功能。这样,可以便于在后续对该目标SDK进行更新和配置,从而通过更新和管理目标SDK来管理终端与服务器之间的信息交互的相关功能。
本申请实施例中,可以通过第一程序来提供传递第一请求的API,并由应用程序的进程调用该API,从而使得该应用程序的进程向该第一程序传递该第一请求。此时,可以认为第一程序向终端的各个应用程序提供该API,从而向终端中的各个应用程序提供与服务器进行交互以通过服务器进行神经网络模型的优化操作的功能,若终端中的任一应用程序有针对神经网络模型进行优化的需求,并且该应用程序允许终端向服务器发送神经网络模型的模型信息,则可以调用该API,向第一程序传递第一请求,并在终端中未查找到相应的优化后的神经网络模型时,通过第一程序向服务器发送模型优化请求。
本申请实施例中,第一程序可以针对终端中的各个不同的应用程序中的神经网络模型,与服务器进行信息交互,也可以是说,可以通过第一程序与服务器进行交互,从而分别为终端中的各个不同应用程序获得各自对应的神经网络模型的模型优化结果,而不需要在开发阶段在各个不同应用程序中设置与服务器进行交互的相关功能,提升了应用程序的开发效率,并且便于终端执行与服务器进行交互的相关操作。
需要说明的是,本申请实施例中,通过第一程序向服务器发送的模型优化请求中,所携带的硬件运行环境信息的来源也可以有多种。
示例性地,该硬件运行环境信息可以是包含于第一请求中,以通过第一请求传递至第一程序的;或者,也可以是在第一程序未在终端中查找到优化后的神经网络模型之后,向应用程序发送指定的请求信息,再由应用程序将该硬件运行环境信息发送至第一程序的;或者,该硬件运行环境也可以是第一程序中已经获取到的信息;或者,该硬件运行环境信息还可以是第一程序从终端中除该应用程序之外的其他程序获取到的信息。
此外,本申请实施例中,第一请求中携带的神经网络模型的信息可以包括神经网络模型的名称等标识信息,还可以包括神经网络模型的算子信息等信息。第一请求中携带的神经网络模型的信息可以与模型优化请求中携带的模型信息相同,也可以不同。
例如,在一种示例中,第一请求中携带有模型优化请求所需的模型信息,并且第一程序获取到神经网络模型的硬件运行环境信息,则第一程序可以基于第一请求所携带的信息,生成模型优化请求并向服务器发送。
而在另一种示例中,第一程序没有从应用程序发送的第一请求中获得足够的模型信息(例如第一请求中缺少神经网络模型的算子信息),则第一程序还可以与应用程序进行交互,以请求应用程序发送第一程序所缺少的模型信息。在第一程序从应用程序获得足够的模型信息之后,第一程序可以基于神经网络模型的模型信息,生成模型优化请求并向服务器发送。
本申请实施例中,在通过第一程序向服务器发送模型优化请求之后,可以通过第一程序接收服务器的反馈信息,再由第一程序向应用程序传递该反馈信息,以使得该应用程序根据该反馈信息获得优化后的神经网络模型。或者,也可以由第一程序根据反馈信息获得优化后的神经网络模型,再向应用程序传递优化后的神经网络模型,以使得应用程序可以根据优化后的神经网络模型对待处理数据进行处理。
此外,第一程序还可以对优化后的神经网络模型进行存储和管理。例如,终端周期性地触发对应用程序的神经网络模型的模型优化请求,那么,在获取到新版本的优化后的神经网络模型时,可以立即对历史版本的优化后的神经网络模型进行删除,或者,在保留指定的时长之后进行删除。
在一些实施例中,第一程序中包含目标配置信息,第一信息基于目标配置信息而生成,目标配置信息可以用于指示终端能够向服务器发送的关于神经网络模型的信息内容。
本申请实施例中,目标配置信息为对第一程序中的某一配置选项进行配置而得到的。该配置选项的形式可以有多种。举例来说,该配置选项可以对应多个可供开发者选择的配置等级,例如,可以对应有第一等级、第二等级和第三等级等等。第一程序可以针对应用程序提供该配置选项,应用程序的开发者可以针对该应用程序从多个可选择的配置等级中进行选择,而开发者从多个可选择的配置等级中所选定的配置等级,可以作为目标配置信息。
具体来说,配置等级可以指示应用程序的神经网络模型的哪些模型信息能够向服务器进行传输。其中,配置选项所能提供的配置等级的个数,以及每个配置等级对应的可发送的信息内容可以有多种设置方式,在此不做限制。例如,对于一些涉及开发者的核心知识产权的数据,例如神经网络模型中的算子的权重信息等,可以设置较高的配置等级;而对于一些常规且通用的数据,例如神经网络模型中的算子的类型等数据,可以设置较低的配置等级。
这样,通过该配置选项,开发者可以基于自身对应用程序的神经网络模型的相关数据的保密需求,设置相应应用程序的神经网络的数据向服务器的传输权限,以使得应用程序的开发者可以根据自身对于神经网络模型的保密力度,确定模型优化请求中所能够包含的关于神经网络模型的信息内容,避免神经网络模型的相关保密信息被终端传输至服务器,提升相关信息的隐私性,满足不同开发者的数据保密诉求。
在一些实施例中,目标配置信息为第一配置信息、第二配置信息或者第三配置信息;
第一配置信息用于指示终端能够向服务器发送神经网络模型的算子的类型信息和算子参数信息,算子参数信息不包括算子的权重信息;
第二配置信息用于指示终端能够向服务器发送神经网络模型的算子的类型信息、算子参数信息和算子之间的关联关系信息;
第三配置信息用于指示终端能够向服务器发送神经网络模型的算子的权重信息、类型信息、算子参数信息和算子之间的关联关系信息。
其中,算子参数信息指相应算子的指定参数的信息,比如,算子的输入数据和/或输出数据的维度、算子中的元素的相关参数(例如卷积算子中卷积核的大小)。第一配置信息中的算子类型以及指定的算子参数信息通常来说较为通用,不涉及开发者对神经网络模型的核心知识产权,同时也是进行模型优化所需要的信息。
第二配置信息中的算子之间的关联关系信息可以指示算子之间的数据传输关系,描述神经网络模型中的各个算子之间的输入数据和输出数据之间的关系。算子之间的关联关系信息通常通过神经网络模型的图结构来表示,若开发者对于神经网络模型的图结构存在改进和优化,则该算子之间的关联关系的信息也可能会涉及开发者想要保密的信息。
第三配置信息中的算子中的权重信息通常是由开发者对神经网络模型进行训练之后得到,与应用程序所涉及的具体业务场景相关联,通常需要开发者付出较大的开发成本,因此,通常来说,对于开发者,算子中的权重信息属于神经网络模型中的核心知识产权。
可见,通常来说,第一配置信息、第二配置信息至第三配置信息所涉及的神经网络模型的信息内容对开发者而言的敏感程度和保密级别由低到高,第一程序中的配置选项可以为应用程序的开发者提供第一配置信息、第二配置信息以及第三配置信息等多种配置信息,应用程序的开发者可以根据相关数据保密诉求进行配置,以确定终端能够向服务器发送的神经网络模型的信息内容。
上述不同的配置信息可以实现对神经网络模型的不同的优化程度。例如,若配置选项为第一配置信息,则神经网络模型对应的模型优化结果可以包括神经网络模型对应的优化后的各个算子核函数,若配置选项为第二配置信息,则神经网络模型对应的模型优化结果可以包括神经网络模型对应的优化后的各个算子核函数以及各个算子核函数之间的关联关系,若配置选项为第三配置信息,则神经网络模型对应的模型优化结果可以包括神经网络模型对应的优化后的二进制文件。
在一些实施例中,终端还执行步骤403。
步骤403,若第一程序基于第一请求,在终端中查找到优化后的神经网络模型,则获得优化后的神经网络模型。
本申请实施例中,第一程序在终端中查找到优化后的神经网络模型之后,可以向应用程序传递第一信息,第一信息用于指示在终端中查找到的优化后的神经网络模型,然后应用程序基于第一信息获得优化后的神经网络模型。其中,该第一信息中可以包含该优化后的神经网络模型对应的二进制文件,或者,也可以包含该优化后的神经网络模型对应的二进制文件的下载地址,以使得应用程序根据该下载地址下载优化后的神经网络模型。
本申请实施例中,若终端中已经存储有该优化后的神经网络模型,则可以不向服务器发送模型优化请求,而基于在终端中查询到的优化后的神经网络模型,对应用程序的待处理数据进行处理。
可见,通过本申请实施例,不仅可以通过第一程序实现终端和服务器之间的信息交互操作,还可以通过第一程序管理优化后的神经网络模型。具体地,可以由第一程序查询和管理各个应用程序分别对应的优化后的神经网络模型。由于优化后的神经网络模型的模型文件可能较大,并且,终端中所包含的应用程序的个数通常较多,应用程序所关联的神经网络模型的数量也可能较多,因此,相较于各个应用程序分别对各自对应的优化后的神经网络模型进行查询和管理,通过第一程序来查询和管理终端中所存储的优化后的神经网络模型的方式可以大大提高处理效率,减少各个应用程序对相应的优化后的神经网络模型单独管理所消耗的管理资源。
基于上述模型优化方法的任一实施例,下面对模型优化方法所涉及的服务器的内部处理流程进行具体介绍。
参考图6,在一些实施例中,上述步骤303包括:
步骤601,基于模型信息和硬件运行环境信息,查询服务器中是否存储有模型优化结果;
步骤602,若查询到模型优化结果,则向终端发送反馈信息。
反馈信息用于指示查询到的模型优化结果。
本申请实施例中,服务器中可以预先存储有关系列表,该关系列表中包含索引信息和优化后的参考神经网络模型的对应关系的信息。服务器可以将模型优化请求中的模型名称和硬件运行环境信息与各个索引信息进行比对,若某一索引信息与该模型信息和硬件运行环境信息匹配成功,则可以根据该索引信息对应的参考神经网络模型,获得模型优化结果。其中,任一参考神经网络模型对应的索引信息包含该参考神经网络模型对应的模型名称和硬件运行环境信息。
在一些实施例中,神经网络模型与应用程序对应,应用程序安装于终端,模型优化请求中还携带有应用程序的信息。
步骤601,包括:
基于应用程序的信息、模型信息和硬件运行环境信息,查询服务器中是否存储有模型优化结果。
此时,索引信息中不仅包含对应的参考神经网络模型的模型名称和硬件运行环境信息,还可以包含对应的参考神经网络模型所关联的应用程序。服务器可以将应用程序的信息、神经网络模型的模型名称和硬件运行环境信息与各个索引信息进行比对。
这样,在一些场景中,当服务器中存储的优化后的参考神经网络模型涉及大量的应用程序时,服务器基于模型优化请求中的应用程序的信息、神经网络模型的模型名称和硬件运行环境信息进行查询,可以快速缩小查询范围,提升匹配的精准度,提升查询效率。
在一些实施例中,服务器还执行步骤603-604。
步骤603,若没有查询到模型优化结果,则基于模型信息和硬件运行环境信息对神经网络模型进行优化;
步骤604,向终端发送反馈信息,反馈信息用于指示对神经网络模型进行优化后获得的模型优化结果。
本申请实施例中,服务器可以通过模型优化工具,基于模型信息和硬件运行环境信息对神经网络模型进行优化。
该模型优化工具可以是第三方提供的工具,也可以是服务器的相关开发人员开发的工具。该模型优化工具可以在服务器对神经网络模型进行优化并编译,获得神经网络模型的模型优化结果。并且,在通过模型优化工具获得该模型优化结果之后,还可以在服务器存储该模型优化结果,这样,其他设备(如其他终端)也可以从服务器获取与终端相同的硬件运行环境下的神经网络模型的模型优化结果。
本申请实施例中,服务器可以通过模型优化工具对神经网络模型进行在线优化和编译,从而在服务器获得神经网络模型的模型优化结果。由于服务器的计算资源较为充足且性能通常较好,因此,通过服务器对神经网络模型进行优化的优化效率通常较高,且对神经网络模型进行优化后获得的模型优化结果还可以存储于服务器,并可以在相同类型的其他终端针对相同应用程序的相同神经网络模型向服务器发送模型优化请求时,由服务器提供给其他终端。
这样,可以使得服务器高效获取到各种神经网络模型关于各种硬件运行环境的模型优化结果,并通过端云协同的方式,基于各个终端的需要而向终端发送相应的模型优化结果。此时,应用程序中包含的神经网络模型可以与硬件无关,也即是说未与终端的芯片等进行适配,而是在终端安装应用程序之后,通过端云协同的方式获得应用程序中的神经网络模型的模型优化结果,而无需开发者针对每个神经网络模型的每一种硬件运行环境进行优化,并针对性地部署到相应应用程序中,大大提升了模型优化效率。
上述模型优化方法的任一实施例可以应用于人工智能领域的自然语言处理领域、图像处理领域以及音视频处理领域等多种信息处理领域中,下面对以人脸识别的应用程序场景为例,进行举例介绍。
在一种示例中,应用程序A能够通过人脸识别的神经网络模型A实现人脸识别的功能。该神经网络模型A中包含卷积算子1、卷积算子2、池化算子1、池化算子2、全连接算子1和全连接算子2。这些算子分别对应神经网络模型A中的不同层。并且,这些算子之间的关联关系为:卷积算子1-池化算子1-卷积算子2-池化算子2-全连接算子1-全连接算子2,此时,相连的两个算子中,前一算子的输出为后一算子的输入,例如卷积算子1-池化算子1的关联关系中,卷积算子1的输出为池化算子1的输入。
如图7所示,为终端与服务器之间的信息交互的一种示例性示意图。
其中,图7中示出了两次启动应用程序时分别对应的信息交互流程。
在终端中首次启动应用程序A时,应用程序A可以向终端的第一程序A传递第一请求A1,该第一请求A1携带有目标配置信息的信息、神经网络模型A的描述信息(例如神经网络模型A的名称)、应用程序A的信息、神经网络模型A对应的芯片的信息。
第一程序A在接收到第一请求A1之后,查询终端中是否存储有优化后的神经网络模型A,由于终端中未存储有优化后的神经网络模型A,因此,第一程序A向应用程序A传递第二请求A2,以请求应用程序A基于目标配置信息,发送神经网络模型A的模型信息。
若目标配置信息为第一配置信息,则应用程序A向第一程序A传递神经网络模型A中的卷积算子1、卷积算子2、池化算子1、池化算子2、全连接算子1和全连接算子2各自对应的算子类型以及算子参数信息。若目标配置信息为第二配置信息,则应用程序A向第一程序A发送神经网络模型A中的卷积算子1、卷积算子2、池化算子1、池化算子2、全连接算子1和全连接算子2各自对应的算子类型、算子参数信息以及这些算子之间的关联关系的信息。若目标配置信息为第三配置信息,则应用程序A向第一程序A发送神经网络模型A中的卷积算子1、卷积算子2、池化算子1、池化算子2、全连接算子1和全连接算子2各自对应的算子类型、算子参数信息、权重信息以及这些算子之间的关联关系的信息。
第一程序A在接收到应用程序A基于目标配置信息传递的神经网络模型A的模型信息之后,向服务器发送模型优化请求A,该模型优化请求A中包含应用程序A的信息、神经网络模型A的模型信息以及神经网络模型A对应的芯片的信息。
服务器接收到该模型优化请求A之后,基于模型优化请求A,获得模型优化结果A。该模型优化结果A可以是服务器中预先存储有的,也可以是服务器基于模型优化请求A对神经网络模型A进行在线优化和编译而得到的。
服务器向终端的第一程序A发送反馈信息A,该反馈信息A中包含应用程序A的信息和神经网络模型的模型名称,以指示该反馈信息A与应用程序A的神经网络模型A相关;并且,该反馈信息A中还包含模型优化结果的信息。
第一程序在接收到反馈信息A之后,根据反馈信息A,获得优化后的神经网络模型,并存储于终端。
在终端第二次启动应用程序时,应用程序A向第一程序传递第三请求B1,该第三请求B1携带有目标配置信息、神经网络模型A的描述信息(例如神经网络模型A的名称)、应用程序A的信息、神经网络模型A对应的芯片的信息。
第一程序A在接收到第三请求B1之后,查询终端中是否存储有优化后的神经网络模型A,由于终端中存储有优化后的神经网络模型,因此,第一程序A向应用程序A传递反馈信息B,以使得应用程序A获得并加载优化后的神经网络模型,以在获得待识别图像时,通过优化后的神经网络模型对待识别图像进行人脸识别。
以上,本申请实施例从多个方面介绍了模型优化方法,下面结合附图,介绍本申请的应用于终端的模型优化装置,以及应用于服务器的模型优化装置。
如图8所示,本申请实施例提供一种模型优化装置80,该装置80可以应用于上述实施例中的终端。
该装置80的一实施例包括:
发送模块801,用于向服务器发送模型优化请求,模型优化请求携带有第一信息,第一信息包括神经网络模型的模型信息和神经网络模型对应的硬件运行环境信息,硬件运行环境信息包括神经网络模型对应的芯片的信息;
接收模块802,用于接收服务器发送的反馈信息,反馈信息用于指示服务器基于模型信息和硬件运行环境信息获得的模型优化结果;
处理模块803,用于根据反馈信息,获得优化后的神经网络模型。
可选地,终端安装有应用程序和第一程序,神经网络模型与应用程序对应,第一程序为操作系统OS或目标软件开发工具包SDK;
发送模块801用于:
基于应用程序接口API,由应用程序向第一程序传递第一请求,第一请求携带有神经网络模型的信息和应用程序的信息;
若第一程序基于第一请求,未在终端中查找到优化后的神经网络模型,则向服务器发送模型优化请求。
可选地,处理模块803还用于:
若第一程序基于第一请求,在终端中查找到优化后的神经网络模型,则获得优化后的神经网络模型。
可选地,处理模块803还用于:
基于优化后的神经网络模型,处理待处理数据。
如图9所示,本申请实施例提供一种模型优化装置90,该装置90可以应用于上述实施例中的服务器。
该装置90的一实施例包括:
接收模块901,用于接收终端发送的模型优化请求,模型优化请求携带有第一信息,第一信息包括神经网络模型的模型信息和神经网络模型对应的硬件运行环境信息;
发送模块902,用于向终端发送反馈信息,反馈信息用于指示基于模型信息和硬件运行环境信息获得的模型优化结果。
可选地,发送模块902包括:
查询单元9021,用于基于模型信息和硬件运行环境信息,查询服务器中是否存储有模型优化结果;
发送单元9022,用于若查询到模型优化结果,则向终端发送反馈信息,反馈信息用于指示查询到的模型优化结果。
可选地,发送模块902包括优化单元9023;
优化单元9023用于若没有查询到模型优化结果,则基于模型信息和硬件运行环境信息对神经网络模型进行优化;
发送单元9022用于向终端发送反馈信息,反馈信息用于指示对神经网络模型进行优化后获得的模型优化结果。
可选地,神经网络模型与应用程序对应,应用程序安装于终端,模型优化请求中还携带有应用程序的信息;
查询单元9021用于基于应用程序的信息、模型信息和硬件运行环境信息,查询服务器中是否存储有模型优化结果。
图10所示,是本申请实施例提供的终端100的一种可能的逻辑结构示意图。该终端100用于实现上述任一实施例中所涉及的终端的功能。该终端100包括:存储器1001、处理器1002、通信接口1003以及总线1004。其中,存储器1001、处理器1002、通信接口1003通过总线1004实现彼此之间的通信连接。
存储器1001可以是只读存储器(read only memory,ROM)、静态存储设备、动态存储设备或者随机存取存储器(random access memory,RAM)。存储器1001可以存储程序,当存储器1001中存储的程序被处理器1002执行时,处理器1002和通信接口1003用于执行上述的模型优化方法实施例的步骤301、304-305、401-403等。
处理器1002可以采用中央处理器(central processing unit,CPU)、微处理器、应用专用集成电路(application specific integrated circuit,ASIC)、图形处理器(graphics processing unit,GPU)、数字信号处理器(digital signal processing,DSP)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件或者其任意组合,用于执行相关程序,以实现上述实施例中应用于终端的模型优化装置中的发送模块、接收模块、处理模块等所需执行的功能,或者执行本申请方法实施例的模型优化方法实施例的步骤301、304-305、401-403等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1001,处理器1002读取存储器1001中的信息,结合其硬件执行上述的模型优化方法实施例的步骤301、304-305、401-403等。
通信接口1003使用例如但不限于收发器一类的收发装置,来实现终端100与其他设备或通信网络之间的通信。例如,可以通过通信接口1003与服务器进行信息交互。
总线1004可实现在终端100各个部件(例如,存储器1001、处理器1002以及通信接口1003)之间传送信息的通路。总线1004可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
在本申请的另一实施例中,还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当设备的处理器执行该计算机执行指令时,设备执行上述图10中的处理器所执行的步骤。
在本申请的另一实施例中,还提供一种计算机程序产品,该计算机程序产品包括计算机执行指令,该计算机执行指令存储在计算机可读存储介质中;当设备的处理器执行该计算机执行指令时,设备执行上述图10中的处理器所执行的步骤。
在本申请的另一实施例中,还提供一种芯片系统,该芯片系统包括处理器,该处理器用于实现上述图10的处理器所执行的步骤。在一种可能的设计中,芯片系统还可以包括存储器,存储器,用于保存数据写入的装置必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。
图11所示,是本申请实施例提供的服务器110的一种可能的逻辑结构示意图。该服务器110用于实现上述任一实施例中所涉及的服务器的功能。该服务器110包括:存储器1101、处理器1102、通信接口1103以及总线1104。其中,存储器1101、处理器1102、通信接口1103通过总线1104实现彼此之间的通信连接。
存储器1101可以是只读存储器(read-only memory,ROM)、静态存储设备、动态存储设备或者随机存取存储器(random access memory,RAM)。存储器1101可以存储程序,当存储器1101中存储的程序被处理器1102执行时,处理器1102和通信接口1103用于执行上述的模型优化方法实施例的步骤302-303、601-604等。
处理器1102可以采用中央处理器(central processing unit,CPU)、微处理器、特定应用集成电路(application-specific integrated circuit,ASIC)、图形处理器(graphics processing unit,GPU)、数字信号处理器(digital signal processor,DSP)、现成可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件或者其任意组合,用于执行相关程序,以实现上述实施例应用于服务器的模型优化装置中的接收模块以及发送模块等所需执行的功能,或者执行本申请方法实施例的模型优化方法实施例的步骤302-303、601-604等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1101,处理器1102读取存储器1101中的信息,结合其硬件执行上述的模型优化方法实施例的步骤302-303、601-604等。
通信接口1103使用例如但不限于收发器一类的收发装置,来实现服务器110与其他设备或通信网络之间的通信。例如,可以与上述任一实施例中所涉及的终端进行信息交互。
总线1104可实现在服务器110各个部件(例如,存储器1101、处理器1102以及通信接口1103)之间传送信息的通路。总线1104可以是外设部件互连标准(PeripheralComponent Interconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图11中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
在本申请的另一实施例中,还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当设备的处理器执行该计算机执行指令时,设备执行上述图11中的处理器所执行的步骤。
在本申请的另一实施例中,还提供一种计算机程序产品,该计算机程序产品包括计算机执行指令,该计算机执行指令存储在计算机可读存储介质中;当设备的处理器执行该计算机执行指令时,设备执行上述图11中的处理器所执行的步骤。
在本申请的另一实施例中,还提供一种芯片系统,该芯片系统包括处理器,该处理器用于实现上述图11的处理器所执行的步骤。在一种可能的设计中,芯片系统还可以包括存储器,存储器,用于保存数据写入的装置必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请实施例所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请实施例各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请实施例各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上,仅为本申请实施例的具体实施方式,但本申请实施例的保护范围并不局限于此。
Claims (24)
1.一种模型优化方法,其特征在于,应用于终端,所述方法包括:
向服务器发送模型优化请求,所述模型优化请求携带有第一信息,所述第一信息包括神经网络模型的模型信息和所述神经网络模型对应的硬件运行环境信息,所述硬件运行环境信息包括所述神经网络模型对应的芯片的信息;
接收所述服务器发送的反馈信息,所述反馈信息用于指示所述服务器基于所述模型信息和所述硬件运行环境信息获得的模型优化结果;
根据所述反馈信息,获得优化后的所述神经网络模型。
2.根据权利要求1所述的方法,其特征在于,所述终端安装有应用程序和第一程序,所述神经网络模型与所述应用程序对应,所述第一程序为操作系统OS或目标软件开发工具包SDK;
所述向服务器发送模型优化请求,包括:
基于应用程序接口API,由所述应用程序向所述第一程序传递第一请求,所述第一请求携带有所述神经网络模型的信息和所述应用程序的信息;
若所述第一程序基于所述第一请求,未在所述终端中查找到优化后的所述神经网络模型,则向所述服务器发送所述模型优化请求。
3.根据权利要求2所述的方法,其特征在于,所述模型优化请求还携带有所述应用程序的信息,所述应用程序的信息用于使所述服务器获得所述模型优化结果。
4.根据权利要求2或3所述的方法,其特征在于,所述第一程序中包含目标配置信息,所述第一信息基于所述目标配置信息而生成,所述目标配置信息用于指示所述终端能够向所述服务器发送的关于所述神经网络模型的信息内容。
5.根据权利要求1-4任一项所述的方法,其特征在于,在获得优化后的所述神经网络模型之后,还包括:
基于优化后的所述神经网络模型,处理待处理数据。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述模型信息包括所述神经网络模型中的算子信息,和/或,所述神经网络模型中的算子之间的关联关系信息。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述模型优化结果包括二进制文件,所述二进制文件对应所述神经网络模型的优化后的算子核函数,和/或,优化后的所述神经网络模型。
8.一种模型优化方法,其特征在于,应用于服务器,所述方法包括:
接收终端发送的模型优化请求,所述模型优化请求携带有第一信息,所述第一信息包括神经网络模型的模型信息和所述神经网络模型对应的硬件运行环境信息;
向所述终端发送反馈信息,所述反馈信息用于指示基于所述模型信息和所述硬件运行环境信息获得的模型优化结果。
9.根据权利要求8所述的方法,其特征在于,所述向所述终端发送反馈信息,包括:
基于所述模型信息和所述硬件运行环境信息,查询所述服务器中是否存储有所述模型优化结果;
若查询到所述模型优化结果,则向所述终端发送所述反馈信息,所述反馈信息用于指示查询到的所述模型优化结果。
10.根据权利要求9所述的方法,其特征在于,所述向所述终端发送反馈信息,还包括:
若没有查询到所述模型优化结果,则基于所述模型信息和所述硬件运行环境信息对所述神经网络模型进行优化;
向所述终端发送所述反馈信息,所述反馈信息用于指示对所述神经网络模型进行优化后获得的所述模型优化结果。
11.根据权利要求9或10所述的方法,其特征在于,所述神经网络模型与应用程序对应,所述应用程序安装于所述终端,所述模型优化请求中还携带有应用程序的信息;
所述基于所述模型信息和所述硬件运行环境信息,查询所述服务器中是否存储有所述模型优化结果,包括:
基于所述应用程序的信息、所述模型信息和所述硬件运行环境信息,查询所述服务器中是否存储有所述模型优化结果。
12.根据权利要求8-11任一项所述的方法,其特征在于,所述模型信息包括所述神经网络模型中的算子信息,和/或,所述神经网络模型中的算子之间的关联关系信息。
13.根据权利要求8-12任一项所述的方法,其特征在于,所述模型优化结果包括二进制文件,所述二进制文件对应所述神经网络模型的优化后的算子核函数,和/或,优化后的所述神经网络模型。
14.一种模型优化装置,其特征在于,应用于终端,所述装置包括:
发送模块,用于向服务器发送模型优化请求,所述模型优化请求携带有第一信息,所述第一信息包括神经网络模型的模型信息和所述神经网络模型对应的硬件运行环境信息,所述硬件运行环境信息包括所述神经网络模型对应的芯片的信息;
接收模块,用于接收所述服务器发送的反馈信息,所述反馈信息用于指示所述服务器基于所述模型信息和所述硬件运行环境信息获得的模型优化结果;
处理模块,用于根据所述反馈信息,获得优化后的所述神经网络模型。
15.根据权利要求14所述的装置,其特征在于,所述终端安装有应用程序和第一程序,所述神经网络模型与所述应用程序对应,所述第一程序为操作系统OS或目标软件开发工具包SDK;
所述发送模块用于:
基于应用程序接口API,由所述应用程序向所述第一程序传递第一请求,所述第一请求携带有所述神经网络模型的信息和所述应用程序的信息;
若所述第一程序基于所述第一请求,未在所述终端中查找到优化后的所述神经网络模型,则向所述服务器发送所述模型优化请求。
16.根据权利要求14或15所述的装置,其特征在于,所述处理模块还用于:
基于优化后的所述神经网络模型,处理待处理数据。
17.一种模型优化装置,其特征在于,应用于服务器,所述装置包括:
接收模块,用于接收终端发送的模型优化请求,所述模型优化请求携带有第一信息,所述第一信息包括神经网络模型的模型信息和所述神经网络模型对应的硬件运行环境信息;
发送模块,用于向所述终端发送反馈信息,所述反馈信息用于指示基于所述模型信息和所述硬件运行环境信息获得的模型优化结果。
18.根据权利要求17所述的装置,其特征在于,所述发送模块包括:
查询单元,用于基于所述模型信息和所述硬件运行环境信息,查询所述服务器中是否存储有所述模型优化结果;
发送单元,用于若查询到所述模型优化结果,则向所述终端发送所述反馈信息,所述反馈信息用于指示查询到的所述模型优化结果。
19.根据权利要求18所述的装置,其特征在于,所述发送模块包括:
优化单元,用于若没有查询到所述模型优化结果,则基于所述模型信息和所述硬件运行环境信息对所述神经网络模型进行优化;
所述发送单元用于向所述终端发送所述反馈信息,所述反馈信息用于指示对所述神经网络模型进行优化后获得的所述模型优化结果。
20.根据权利要求18或19所述的装置,其特征在于,所述神经网络模型与应用程序对应,所述应用程序安装于所述终端,所述模型优化请求中还携带有所述应用程序的信息;
所述查询单元用于基于所述应用程序的信息、所述模型信息和所述硬件运行环境信息,查询所述服务器中是否存储有所述模型优化结果。
21.一种终端,其特征在于,所述终端包括至少一个处理器、存储器及存储在所述存储器上并可被所述至少一个处理器执行的指令,所述至少一个处理器执行所述指令,以实现权利要求1-7任一项所述的方法的步骤。
22.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1-7任一项所述的方法。
23.一种服务器,其特征在于,所述服务器包括至少一个处理器、存储器及存储在所述存储器上并可被所述至少一个处理器执行的指令,所述至少一个处理器执行所述指令,以实现权利要求8-13任一项所述的方法的步骤。
24.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求8-13任一项所述的方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202210189440.0A CN116720567A (zh) | 2022-02-28 | 2022-02-28 | 一种模型优化方法以及相关设备 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202210189440.0A CN116720567A (zh) | 2022-02-28 | 2022-02-28 | 一种模型优化方法以及相关设备 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN116720567A true CN116720567A (zh) | 2023-09-08 |
Family
ID=87873910
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202210189440.0A Pending CN116720567A (zh) | 2022-02-28 | 2022-02-28 | 一种模型优化方法以及相关设备 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN116720567A (zh) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2025107811A1 (zh) * | 2023-11-24 | 2025-05-30 | 华为技术有限公司 | 一种信息查询方法、装置及系统 |
-
2022
- 2022-02-28 CN CN202210189440.0A patent/CN116720567A/zh active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2025107811A1 (zh) * | 2023-11-24 | 2025-05-30 | 华为技术有限公司 | 一种信息查询方法、装置及系统 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR102414096B1 (ko) | 종단 장치에서의 기계 학습을 위한 패키지 생성 및 배포 | |
| CN108764487B (zh) | 用于生成模型的方法和装置、用于识别信息的方法和装置 | |
| US20230123077A1 (en) | Automated cloud data and technology solution delivery using machine learning and artificial intelligence modeling | |
| US20140372963A1 (en) | Method and apparatus for customized software development kit (sdk) generation | |
| US11264031B2 (en) | Method for processing plans having multiple end points and electronic device applying the same method | |
| KR20200068050A (ko) | 인공지능 수행을 위한 학습 데이터 생성장치 및 방법 | |
| CN107111725A (zh) | 在输入理解系统中保护私有信息 | |
| CN111066039A (zh) | 包括企业模型的微处理器 | |
| CN110555550B (zh) | 在线预测服务的部署方法、装置及设备 | |
| CN111176761A (zh) | 微服务调用方法和装置 | |
| CN113641413B (zh) | 目标模型加载更新方法及装置、可读介质和电子设备 | |
| CN114662006B (zh) | 端云协同推荐系统、方法以及电子设备 | |
| EP4318319A1 (en) | Model processing method and apparatus | |
| US12254419B2 (en) | Machine learning techniques for environmental discovery, environmental validation, and automated knowledge repository generation | |
| CN112099882A (zh) | 一种业务处理方法、装置及设备 | |
| CN112230911A (zh) | 模型部署方法、装置、计算机设备和存储介质 | |
| US20230110520A1 (en) | Ui service package generation and registration method and apparatus, and ui service loading method and apparatus | |
| CN116720567A (zh) | 一种模型优化方法以及相关设备 | |
| CN116720566A (zh) | 一种模型性能优化方法以及相关设备 | |
| CN111783985A (zh) | 信息处理、模型处理方法及装置、设备、介质 | |
| WO2023143080A1 (zh) | 一种数据处理方法以及相关设备 | |
| CN115237457A (zh) | 一种ai应用的运行方法及相关产品 | |
| CN107633219A (zh) | 一体化光学字符识别方法和系统 | |
| KR20230036945A (ko) | 엣지 컴퓨팅 환경의 자원 관리 방법 및 장치 | |
| CN113946406A (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 |