CN114238237A - 任务处理方法、装置、电子设备和计算机可读存储介质 - Google Patents
任务处理方法、装置、电子设备和计算机可读存储介质 Download PDFInfo
- Publication number
- CN114238237A CN114238237A CN202111567988.6A CN202111567988A CN114238237A CN 114238237 A CN114238237 A CN 114238237A CN 202111567988 A CN202111567988 A CN 202111567988A CN 114238237 A CN114238237 A CN 114238237A
- Authority
- CN
- China
- Prior art keywords
- model
- target
- slice
- file
- task
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/62—Uninstallation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Human Computer Interaction (AREA)
- Databases & Information Systems (AREA)
- Image Analysis (AREA)
Abstract
本公开提供一种任务处理方法、装置、电子设备和计算机可读存储介质,包括:获取目标计算任务;确定目标计算任务与目标模型镜像对应,目标模型镜像包括运行环境配置文件、模型镜像切片描述文件、和多个模型切片,多个模型切片包括目标模型切片,多个模型切片是对目标模型进行切片处理后获得的;从非模型文件中拉取运行环境配置文件和模型镜像切片描述文件,并根据运行环境配置文件和模型镜像切片描述文件启动目标容器;确定目标模型切片用于处理目标计算任务;从目标模型镜像中拉取目标模型切片,并在启动后的目标容器中运行目标模型切片以进行目标计算任务。
Description
技术领域
本公开涉及计算机与互联网技术领域,尤其涉及一种任务处理方法及装置、电子设备和计算机可读存储介质。
背景技术
随着计算机的快速发展,通过NN(Neural Network,神经网络)模型对待处理任务进行推理计算已经成为一种常用技术手段。
其中,上述NN模型可以在一个设备(例如设备A)中训练好,然后在另一个设备(例如设备B)中针对某个任务进行推理预测。
一般来说,当设备B在需要NN模型针对某个任务进行推理预测时,需要从设备A中拉取上述NN模型的完整镜像,这对存储资源受限的设备B(尤其当该设备B是终端)来说是一个挑战。而随着AI应用容器化的逐渐普及,NN模型所导致的大体积镜像,也会成为镜像下发、容器部署的瓶颈。
发明内容
本公开的目的在于提供一种任务处理方法、装置、电子设备以及计算机可读存储介质,能够将容器启动和模型运行独立部署,降低了设备的计算负担,从而提高了任务处理的速度和效率。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
本公开实施例提供了一种任务处理方法,包括:获取目标计算任务;确定所述目标计算任务与目标模型镜像对应,所述目标模型镜像包括非模型文件和模型切片文件,所述非模型文件包括运行环境配置文件和模型镜像切片描述文件,所述模型切片文件包括多个模型切片,所述多个模型切片包括目标模型切片,所述多个模型切片是对目标模型进行切片处理后获得的;从所述非模型文件中拉取所述运行环境配置文件和所述模型镜像切片描述文件,并根据所述运行环境配置文件和所述模型镜像切片描述文件启动目标容器;确定所述目标模型切片用于处理所述目标计算任务;从所述目标模型镜像中拉取所述目标模型切片,并在启动后的目标容器中运行所述目标模型切片以进行所述目标计算任务。
在一些实施例中,所述目标模型切片包括第一模型切片和第二模型切片,所述模型镜像切片描述文件包括对所述目标模型的结构进行描述的结构描述信息;其中,从所述目标模型镜像中拉取所述目标模型切片,并在启动后的目标容器中运行所述目标模型切片以进行所述目标计算任务,包括:根据所述结构描述信息确定在所述目标计算任务中,所述第一模型切片的执行顺序在所述第二模型切片之前;从所述目标模型镜像中拉取并加载所述第一模型切片,并在启动后的目标容器中运行所述第一模型切片;在运行所述第一模型切片的同时,从所述目标模型镜像中拉取和加载所述第二模型切片,以进行所述目标计算任务。
在一些实施例中,所述模型镜像切片描述文件还包括对各个模型切片在所述目标模型镜像中的位置进行描述的位置描述信息,所述位置描述信息包括对所述第一模型切片的位置进行描述的第一位置描述信息和对所述第二模型切片的位置进行描述的第二位置描述信息;其中,从所述目标模型镜像中拉取并加载所述第一模型切片,包括:根据所述第一位置描述信息从所述目标模型镜像中拉取和加载所述第一模型切片;其中,在运行所述第一模型切片的同时,从所述目标模型镜像中拉取和加载所述第二模型切片,包括:在运行所述第一模型切片的同时,根据所述第二位置描述信息从所述目标模型镜像中拉取和加载所述第二模型切片。
在一些实施例中,所述目标模型镜像用来处理目标待处理任务,所述目标计算任务是所述目标待处理任务的协同子任务,其中,从所述目标模型镜像中拉取所述目标模型切片,并在启动后的目标容器中运行所述目标模型切片以进行所述目标计算任务,包括:在启动后的目标容器中运行所述目标模型切片以进行所述目标计算任务,获得目标计算结果;其中,所述方法还包括:将所述目标计算结果发送至目标汇总设备,以便所述目标汇总设备基于所述目标计算结果完成所述目标待处理任务。
在一些实施例中,获取目标计算任务可以包括:获取所述目标计算任务;获取所述目标计算任务对应的目标输入数据,其中所述目标输入数据是所述目标待处理任务的中间计算结果;其中,在启动后的目标容器中运行所述目标模型切片以进行所述目标计算任务,获得目标计算结果,包括:通过运行所述目标模型切片对所述目标输入数据进行处理,以获取所述目标计算结果。
在一些实施例中,所述目标模型镜像是第一设备对所述目标模型进行镜像处理后获得的,所述目标模型是神经网络模型;在在获取目标计算任务之前,所述方法还包括:以神经网络层为单位或者以神经元为单位对所述目标模型进行分片化处理,以获得多个模型切片;按照所述目标模型的层结构顺序将所述多个模型切片进行存储以生成所述模型切片文件,其中每个模型切片分别存储于一个模型镜像层中;根据对所述目标模型的结构进行描述的结构描述信息、和各个模型切片在所述目标模型镜像中的位置进行描述的位置描述信息生成所述模型镜像切片描述文件;根据所述目标模型的运行环境和配置生成所述运行环境配置文件;根据所述模型切片文件、所述模型镜像切片描述文件以及所述运行环境配置为镜生成所述目标模型镜像。
在一些实施例中,所述目标模型镜像中的模型镜像切片描述文件还包括各个模型切片对应的计算量信息、和对所述目标模型的结构进行描述的结构描述信息;其中,所述目标模型镜像用来处理目标待处理任务,所述目标计算任务是所述目标待处理任务的协同子任务;其中,在获取目标计算任务之前,所述方法还包括:第二设备获取所述目标待处理任务;确定所述目标模型镜像用于处理所述目标待处理任务;确定对所述目标待处理任务进行协同卸载处理的至少一个待卸载设备的可用计算量;根据所述至少一个待卸载设备的可用计算量各个模型切片对应的计算量,对所述目标待处理任务进行任务分割以将所述目标待处理任务分为多个待处理子任务;根据所述结构描述信息在所述多个模型切片中确定各个待处理子任务对应的模型切片,所述多个待处理子任务包括所述目标计算任务;所述第二设备将各个待处理子任务发送至所述至少一个待卸载设备,以便所述至少一个待卸载设备根据模型切片完成对应的待处理子任务。
在一些实施例中,所述非模型文件和所述模型切片文件在镜像文件系统中通过landmark文件进行分割,所述非模型文件位于所述landmark文件的下方;其中,从所述非模型文件中拉取所述运行环境配置文件和所述模型镜像切片描述文件,包括:访问存储所述目标模型镜像的镜像文件系统;在所述镜像文件系统中确定所述目标模型镜像对应的landmark文件;在所述landmark文件的下方搜索所述运行环境配置文件和所述模型镜像切片描述文件。
在一些实施例中,根据所述运行环境配置文件和所述模型镜像切片描述文件启动目标容器,包括:根据所述模型镜像切片描述文件对所述目标模型的每个模型切片创建模型切片目录;确定所述运行环境配置文件和所述模型镜像切片描述文件所在的非模型文件层;将所述模型切片目录与所述非模型文件层作为所述目标容器的rootfs的挂载,以便根据由所述模型切片目录和所述非模型文件层组成的rootfs启动所述目标容器。
在一些实施例中,模型镜像切片描述文件包括各个模型切片在所述目标模型镜像中的文件偏移量;其中,从所述目标模型镜像中拉取所述目标模型切片,包括:确定所述目标模型切片所在的目标模型镜像层;根据各个模型切片在所述目标模型镜像中的文件偏移量,确定所述目标模型镜像层在所述模型切片文件中的目标文件偏移量;根据所述目标文件偏移量从所述目标模型镜像中拉取所述目标模型切片。
本公开实施例提供了一种任务处理装置,包括:计算任务获取模块、镜像确定模块、容器启动模块、镜像切片确定模块、以及切片拉取模块。
其中,所述计算任务获取模块用于获取目标计算任务;所述镜像确定模块可以用于确定所述目标计算任务与目标模型镜像对应,所述目标模型镜像包括非模型文件和模型切片文件,所述非模型文件包括运行环境配置文件和模型镜像切片描述文件,所述模型切片文件包括多个模型切片,所述多个模型切片包括目标模型切片,所述多个模型切片是对目标模型进行切片处理后获得的;所述容器启动模块可以用于从所述非模型文件中拉取所述运行环境配置文件和所述模型镜像切片描述文件,并根据所述运行环境配置文件和所述模型镜像切片描述文件启动目标容器;所述镜像切片确定模块可以用于确定所述目标模型切片用于处理所述目标计算任务;所述切片拉取模块可以用于从所述目标模型镜像中拉取所述目标模型切片,并在启动后的目标容器中运行所述目标模型切片以进行所述目标计算任务。
本公开实施例提出一种电子设备,该电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一项所述的任务处理方法。
本公开实施例提出一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述任一项所述的任务处理方法。
本公开实施例提出一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述任务处理方法。
本公开实施例提供的任务处理方法、装置及电子设备和计算机可读存储介质,一方面本申请将容器的启动和模型的运行分别执行,降低了设备在同一时间段的负载,提高了任务处理的效率和成功率;另一方面,本公开将目标模型镜像切分为多个切片,以便目标设备能够根据目标计算任务有针对性的拉取对应的镜像切片,无需拉取冗余部分,节约了存储资源和通信资源,提高了任务处理效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了可以应用于本公开实施例的任务处理方法或任务处理装置的示例性系统架构的示意图。
图2是根据一示例性实施例示出的一种模型镜像构建方法的流程图。
图3是根据一示例性实施例示出的一种任务处理方法的流程图。
图4是根据一示例性实施例示出的一种切片拉取方法的流程图。
图5是根据一示例性实施例示出的一种任务处理方法的示意图。
图6是根据一示例性实施例示出的一种任务分割处理方法。
图7是根据一示例性实施例示出的一种模型镜像示意图。
图8是根据一示例性实施例示出的一种文件存储示意图。
图9是根据一示例性实施例示出的一种任务分割方法的示意图。
图10是根据一示例性实施例示出的一种任务卸载处理方法的示意图。
图11是根据一示例性实施例示出的一种任务处理装置的框图。
图12示出了适于用来实现本公开实施例的的电子设备的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本公开将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
本公开所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本公开的各方面。
附图仅为本公开的示意性图解,图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和步骤,也不是必须按所描述的顺序执行。例如,有的步骤还可以分解,而有的步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
本说明书中,用语“一个”、“一”、“该”、“所述”和“至少一个”用以表示存在一个或多个要素/组成部分/等;用语“包含”、“包括”和“具有”用以表示开放式的包括在内的意思并且是指除了列出的要素/组成部分/等之外还可存在另外的要素/组成部分/等;用语“第一”、“第二”和“第三”等仅作为标记使用,不是对其对象的数量限制。
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述,需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
下面结合附图对本公开示例实施方式进行详细说明。
图1示出了可以应用于本公开实施例的任务处理方法或任务处理装置的示例性系统架构的示意图。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。其中,终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机、台式计算机、可穿戴设备、虚拟现实设备、智能家居等等。
终端101、102、103可例如获取目标计算任务;终端101、102、103可例如确定目标计算任务与目标模型镜像对应,目标模型镜像包括非模型文件和模型切片文件,非模型文件包括运行环境配置文件和模型镜像切片描述文件,模型切片文件包括多个模型切片,多个模型切片包括目标模型切片,多个模型切片是对目标模型进行切片处理后获得的;终端101、102、103可例如从非模型文件中拉取运行环境配置文件和模型镜像切片描述文件,并根据运行环境配置文件和模型镜像切片描述文件启动目标容器;终端101、102、103可例如确定目标模型切片用于处理目标计算任务;终端101、102、103可例如从目标模型镜像中拉取目标模型切片,并在启动后的目标容器中运行目标模型切片以进行目标计算任务。
服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所进行操作的装置提供支持的后台管理服务器。后台管理服务器可以对接收到的请求等数据进行分析等处理,并将处理结果反馈给终端设备。
服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器等,本公开对此不做限制。
服务器105可例如获取目标计算任务;服务器105可例如确定目标计算任务与目标模型镜像对应,目标模型镜像包括非模型文件和模型切片文件,非模型文件包括运行环境配置文件和模型镜像切片描述文件,模型切片文件包括多个模型切片,多个模型切片包括目标模型切片,多个模型切片是对目标模型进行切片处理后获得的;服务器105可例如从非模型文件中拉取运行环境配置文件和模型镜像切片描述文件,并根据运行环境配置文件和模型镜像切片描述文件启动目标容器;服务器105可例如确定目标模型切片用于处理目标计算任务;服务器105可例如从目标模型镜像中拉取目标模型切片,并在启动后的目标容器中运行目标模型切片以进行目标计算任务。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的,服务器105可以是一个实体的服务器,还可以为多个服务器组成,根据实际需要,可以具有任意数目的终端设备、网络和服务器。
在介绍本公开之前,可以对本公开涉及的相关技术进行解释说明。
1.容器技术
容器化是软件开发的一种方法,通过该方法可将应用程序或服务、其依赖项及其配置(抽象化为部署清单文件)一起打包为容器镜像。容器化应用程序可作为一个单元进行测试,并可作为容器镜像实例部署到主机上。容器充当软件部署的标准单元,开发人员和IT(Information Technology,信息技术)专业人员只需进行极少修改或不修改,即可将其部署到不同的环境。这使容器具有易于移植的特点,支持一次构建,随处部署。
容器化的另一个优势在于可伸缩性。通过容器编排管理平台为短期任务创建新容器,可以快速扩大应用部署规模,由平台对容器实行弹性管理。
综上,容器在整个应用程序生命周期工作流中提供以下优点:隔离性、可移植性、灵活性、可伸缩性和可控性。其最重要的优点是可在开发和运营之间提供隔离,加快应用发行和部署的速度。
2.容器镜像
从数据类型上说,镜像的本质是元数据(如环境变量、挂载信息等)和一个rootfs(Docker镜像的文件内容以及一些运行Docker容器所需要的配置文件组成了Dokcer容器运行的静态文件系统rootfs)。元数据信息最终会在启动容器时被整合;rootfs则提供容器运行所需文件系统。通常,镜像由以下四部分组成:1)ImageIndex(optional):包含Manifest描述符列表,每个Manifest可提供镜像的不同实现,如适用于不同平台属性的镜像;2)ImageManifest:包含ImageConfig和镜像层的描述符;3)ImageConfig:包含镜像层顺序和镜像配置信息;4)Filesystem(rootfs)Layers:基础镜像层和镜像层变更集。其中描述符通常包括为被描述文件内容的哈希码和文件大小等。
3.NN模型分割与计算任务卸载
近年来,AI移动端应用程序的计算强度、内存消耗和功耗越来越大。而终端设备以及部分边缘设备通常对离线运行完整的NN模型推理,有着严格的能耗、计算和内存成本限制。因此可通过NN模型分割的方式,将全部或部分的模型计算任务卸载到其他节点(云设备、边缘设备或终端设备)上,以设备间协同推理计算的方式,减轻原设备上的计算、内存占用、存储、功率和所需数据速率的压力,同时减小推理延迟,提高AI应用的服务质量。
根据当前任务和环境,NN模型可被分割为多个切片,目的是将计算密集、耗能密集的部分卸载到其他节点,将隐私敏感和延迟敏感部分留在终端设备。设备执行模型特定部分的推理计算,再将剩余计算任务和中间结果发送到其他节点,由接收到任务和中间结果的一个或多个节点完成剩余的推理计算,最终将推理结果返回给设备(见图1)。
4.NN模型计算卸载算法
NN模型计算卸载算法的关键,是选择最优的分割模式和分割点,保证所需资源低于移动设备可用资源的上限,并优化设备和各参与节点的计算、存储/内存、功率、通信资源的消耗。根据不同的优化目标,NN模型可以在不同的点进行分割。
在本公开中,NN模型计算卸载中会以NN层为最小单位进行切片分割,常见NN层如卷积层、池化层等,当然也可以以NN模型中的神经元为最小单位进行切分,本公开对此步骤限制。
本公开提高的技术方案,首先需要在构建侧(例如第一设备)对目标模型进行就镜像处理,以构建目标模型镜像,其中目标模型可以是神经网络模型。
图2是根据一示例性实施例示出的一种模型镜像构建方法的流程图。
参考图2,上述模型镜像构建方法可以包括以下步骤。
步骤S202,以神经网络层为单位或者以神经元为单位对目标模型进行分片化处理,以获得多个模型切片。
在一些实施例中,若以神经网络层为单位对目标模型进行分片化处理,那么一个模型分片可以包括一个或者多个神经网络层,本公开对此不做限制。
在另外一些实施例中,若以神经元为单位对目标模型进行分片化处理,那么一个模型分片可以包括一个或者多个神经元,本公开对此不做限制。
在一些实施例中,在获得多个模型切片后,还需要记录各个模型切片之间的结构和关联关系(例如记录各个模型切片的上一层切片),以便后续在使用切片时能够根据各个模型切片之间的结构和关联关系确定每个切片处理后的数据的流向。本质上来讲,上述过程就是在记录模型结构。
步骤S204,按照目标模型的层结构顺序将多个模型切片进行存储以生成模型切片文件,其中每个模型切片分别存储于一个模型镜像层中。
步骤S206,根据对目标模型的结构进行描述的结构描述信息、和各个模型切片在目标模型镜像中的位置进行描述的位置描述信息生成模型镜像切片描述文件。
步骤S208,根据目标模型的运行环境和配置生成运行环境配置文件。
步骤S210,根据模型切片文件、模型镜像切片描述文件以及运行环境配置为镜生成目标模型镜像。
在构建侧完成对目标模型镜像的构建之后,运行侧可以根据图3所示实施例使用目标模型镜像中的切片对目标计算任务进行处理。
其中,运行侧与构建侧可以是同一设备,也可以是不同的设备,本公开对此不做限制。其中,运行侧可以针对目标模型镜像所对应的完整的任务进行处理,也可以针对目标模型镜像所对应的部分的任务进行处理。例如目标模型镜像对应的可以是一个需要进行计算卸载任务,那么运行侧对应的任务可以是计算卸载过程中的协同任务,运行侧对应的任务还可以是计算卸载过程中卸载侧对应的主任务,本公开对此不做限制。
上述构建侧可以是任意具备计算处理能力的电子设备,例如可以是上述图1实施例中的服务器或终端设备,也可以由服务器和终端设备共同组成,本公开对此不做限制。
图3是根据一示例性实施例示出的一种任务处理方法的流程图。
下述实施例可以由运行侧执行,该运行侧可以是任意具备计算处理能力的电子设备,例如可以是上述图1实施例中的服务器或终端设备,也可以由服务器和终端设备共同组成,本公开对此不做限制。
参照图3,本公开实施例提供的任务处理方法可以包括以下步骤。
步骤S302,获取目标计算任务。
其中,目标计算任务可以是一个完整的计算任务,也可以是一个完整任务中的部分任务,本公开对此不做限制。
例如,目标模型镜像可以用来处理目标待处理任务,目标计算任务可以是目标待处理任务的协同子任务(例如,由卸载端执行的子任务,或者由协同端执行的子任务),或者目标计算任务可以就是该目标待处理任务,本公开对此不做限制。
步骤S304,确定目标计算任务与目标模型镜像对应,目标模型镜像包括非模型文件和模型切片文件,非模型文件包括运行环境配置文件和模型镜像切片描述文件,模型切片文件包括多个模型切片,多个模型切片包括目标模型切片,多个模型切片是对目标模型进行切片处理后获得的。
步骤S306,从非模型文件中拉取运行环境配置文件和模型镜像切片描述文件,并根据运行环境配置文件和模型镜像切片描述文件启动目标容器。
在一些实施例中,上述非模型文件和模型切片文件在镜像文件系统中可以通过landmark文件进行隔离。
在一些实施例中,非模型文件可以位于landmark文件的下方(当然非模型文件也可以位于landmark文件的下方、左方等)。
那么,从非模型文件中拉取运行环境配置文件和模型镜像切片描述文件可以包括:访问存储目标模型镜像的镜像文件系统;在镜像文件系统中确定目标模型镜像对应的landmark文件;在landmark文件的下方(或者上方)搜索运行环境配置文件和模型镜像切片描述文件。
在一些实施例中,根据运行环境配置文件和模型镜像切片描述文件启动目标容器可以包括:根据模型镜像切片描述文件对目标模型的每个模型切片创建模型切片目录;确定运行环境配置文件和模型镜像切片描述文件所在的非模型文件层;将模型切片目录与非模型文件层作为目标容器的rootfs的挂载,以便根据由模型切片目录和非模型文件层组成的rootfs启动目标容器。
步骤S308,确定目标模型切片用于处理目标计算任务。
其中,目标模型切片可以是上述多个模型切片,目标模型切片还可以是上述多个模型切片中的部分切片,本公开对此不做限制。
步骤S310,从目标模型镜像中拉取目标模型切片,并在启动后的目标容器中运行目标模型切片以进行目标计算任务。
在一些实施例中,模型镜像切片描述文件包括各个模型切片在目标模型镜像中的文件偏移量;那么从目标模型镜像中拉取目标模型切片可以包括:确定目标模型切片所在的目标模型镜像层;根据各个模型切片在目标模型镜像中的文件偏移量,确定目标模型镜像层在模型切片文件中的目标文件偏移量;根据目标文件偏移量从目标模型镜像中拉取目标模型切片。
在一些实施例中,在拉取目标模型切片时可以一次性拉取所有模型切片,还可以分次拉取各个模型切片。例如,假设上述目标模型切片中包括两个模型切片,那么可以一次性拉取该两个模型切片,还可以先拉取一个模型切片,然后在运行上一个模型切片的同时再拉取另一个模型切片,以便在上一个模型切片运行完成后接着运行另一个模型切片。通过该方法,既可以保证目标模型切片可以全部被拉取运行,还可以减少设备因为存储镜像切片所需要的存储资源。
本公开实施例提供的技术方案,一方面将容器的启动与模型的运行独立部署,节约了存储资源和启动资源;另一方面,依次拉取目标模型镜像,使得可以一边运行一边拉取,从而降低存储资源的占用。
图4是根据一示例性实施例示出的一种切片拉取方法的流程图。
在一些实施例中,目标模型切片可以包括第一模型切片和第二模型切片,模型镜像切片描述文件包括对目标模型的结构进行描述的结构描述信息。
参考图4,上述切片拉取方法可以包括以下步骤。
步骤S402,根据结构描述信息确定在目标计算任务中,第一模型切片的执行顺序在第二模型切片之前。
步骤S404,从目标模型镜像中拉取并加载第一模型切片,并在启动后的目标容器中运行第一模型切片。
在一些实施例中,模型镜像切片描述文件还可以包括对各个模型切片在目标模型镜像中的位置进行描述的位置描述信息,其中位置描述信息可以包括对第一模型切片的位置进行描述的第一位置描述信息。那么,从目标模型镜像中拉取并加载第一模型切片可以包括:根据第一位置描述信息从目标模型镜像中拉取和加载第一模型切片。
步骤S406,在运行第一模型切片的同时,从目标模型镜像中拉取和加载第二模型切片,以进行目标计算任务。
在一些实施例中,上述位置描述信息可以包括对第二模型切片的位置进行描述的第二位置描述信息。那么,那么在运行第一模型切片的同时,从目标模型镜像中拉取和加载第二模型切片可以包括:在运行第一模型切片的同时,根据第二位置描述信息从目标模型镜像中拉取和加载第二模型切片,以便在第一镜像切片运行完成后继续运行该第二镜像切片。在一些实施例中,当第一镜像切片完成后,可以将第一镜像切片直接删除,以节约存储资源。
上述过程可以通过图5所示实施例进行具体说明。如图5所示,运行侧设备要运行的目标计算任务是计算任务A中的计算任务A’,计算任务A’和目标模型镜像中的切片FC_1和FC_2对应。那么,运行侧设备可以首先拉取目标模型镜像的非模型文件以创建模型切片对应目录并启动容器;容器启动后,运行侧设备然后可以读取模型切片FC_1以进行运行;在切片FC_1运行的同时,运行侧设备还可以拉取切片FC_2,以便在切片FC_1运行完成时继续运行切片FC_2。
对于计算能力受限的终端来说,AI模型的推理(预测)可通过计算卸载的方式完成。而相关技术中,在设备协同推理时,为适应NN(Neural Network,神经网络)计算任务的动态卸载方案,通常需要在所有参与设备端上存储完整的NN模型,这对存储资源受限的设备,尤其是终端来说是一个挑战。而随着AI应用容器化的逐渐普及,NN模型所导致的大体积镜像,也会成为镜像下发、容器部署的瓶颈。
因此,本申请将上述模型切片方案与计算任务卸载方案结合,具体可以通过如下实施例进行说明。
图6是根据一示例性实施例示出的一种任务分割处理方法。
在一些实施例中,目标模型镜像中的模型镜像切片描述文件还可以包括各个模型切片对应的计算量信息、和对目标模型的结构进行描述的结构描述信息。
在一些实施例中,目标模型镜像可以用来处理目标待处理任务,其中目标计算任务可以是目标待处理任务的协同子任务(即目标待处理任务是需要进行分割卸载的任务,目标计算任务可以指的是分割后的子任务)。
在一些实施例中,图6所示实施例中的任务分割方法可以由运行侧来执行,该运行侧可以是协同卸载任务的卸载端(即需要进行任务分割卸载的一端)。
参考图6,上述协同子任务处理方法可以包括以下步骤。
步骤S602,第二设备获取目标待处理任务。
在一些实施例中,第二设备就可以是上述运行侧。
步骤S604,确定目标模型镜像用于处理目标待处理任务。
上述目标待处理任务可以是一个完整的任务。
步骤S606,确定对目标待处理任务进行协同卸载处理的至少一个待卸载设备的可用计算量。
步骤S608,根据至少一个待卸载设备的可用计算量和各个模型切片对应的计算量,对目标待处理任务进行任务分割以将目标待处理任务分为多个待处理子任务。
上述至少一个待卸载设备可以指的是接受第二设备发送的卸载任务,以协同第二设备完成目标待处理任务的设备。
上述可用计算量可以指的是待卸载设备能够为目标待处理任务的卸载任务提供的计算量。
步骤S610,根据结构描述信息在多个模型切片中确定各个待处理子任务对应的模型切片,多个待处理子任务包括目标计算任务。
步骤S612,第二设备将各个待处理子任务发送至至少一个待卸载设备,以便至少一个待卸载设备根据模型切片完成对应的待处理子任务。
在一些实施例中,上述待卸载设备可以包括处理目标计算任务的任意设备。
在完成任务分割之后,第二设备会将各个待处理任务发送至至少一个待卸载设备和第二设备自身,以便第二设备和各个待卸载设备并列独立完成任务,或者按次序完成任务等。各个待卸载设备在接收到待处理任务之后,具体可以执行以下步骤(以目标计算任务为例进行说明):获取目标计算任务;确定目标计算任务与目标模型镜像对应,目标模型镜像包括非模型文件和模型切片文件,非模型文件包括运行环境配置文件和模型镜像切片描述文件,模型切片文件包括多个模型切片,多个模型切片包括目标模型切片,多个模型切片是对目标模型进行切片处理后获得的;从目标模型镜像中拉取目标模型切片;从非模型文件中拉取运行环境配置文件和模型镜像切片描述文件,并根据运行环境配置文件和模型镜像切片描述文件启动目标容器;确定目标模型切片用于处理目标计算任务;从目标模型镜像中拉取目标模型切片,并在启动后的目标容器中运行目标模型切片以进行目标计算任务,获得目标计算结果;将目标计算结果发送至目标汇总设备,以便目标汇总设备基于目标计算结果完成目标待处理任务。
在一些实施例中,第二设备在下发任务时,可能还会下发一些中间数据;或者,若各个待卸载设备之间的任务存在执行顺序,那么当某个待卸载设备完成卸载任务后会将中间处理结果下发给下一任务对应的设备。
因此,在一些实施例中,上述获取目标计算任务可以包括:获取目标计算任务;获取目标计算任务对应的目标输入数据,其中目标输入数据是目标待处理任务的中间计算结果。那么,在启动后的目标容器中运行目标模型切片以进行目标计算任务,获得目标计算结果可以包括:通过运行目标模型切片对目标输入数据进行处理,以获取目标计算结果。
以下,将结合具体实施例给出本申请的一个具体应用场景。
本公开提供的技术方案,首先需要在构建侧(例如第一设备)制作模型切片文件与非模型文件分隔开的目标模型镜像:
1.模型切片文件
如图7所示,可以以神经网络层为单位或者以神经元为单位对NN模型(神经网络模型)进行自动化切片以生成多个模型切片,切片的同时记录NN模型的层顺序,在获得多个模型切片后,还可以将模型切片以层结构顺序分层存储于镜像文件系统中。
如图8所示,在分层存储不同切片的同时,还可以按照不同的数据类型对切片进行存储,例如可以将该切片中的权重参数信息(即模型参数)单独进行存储,将切片的结构文件单独进行存储,以方便对权重参数随时进行更新和变换。
2.非模型文件
在一些实施例中,可以将Image Manifest、Image Config等配置生成运行环境配置文件,还可以根据模型切片镜像层名和NN层结构顺序生成模型镜像切片描述文件,并在镜像Manifest中添加其标识及描述符以便寻址。模型镜像切片描述文件中至少包括:模型每层对应的切片镜像层名称,每个模型切片镜像层的文件偏移量,以有向无环图表示的完整的模型结构等;也可写入其它额外信息,如模型适用的机器学习框架信息等用以检查模型容器的运行环境,如每个模型切片所涉及的计算量等以便于规划模型卸载方案。
3.Landmark文件
在镜像文件系统中,可以通过Landmark将模型切片镜像文件与非模型文件分隔。
其中,构建侧可以是任意一个设备,可以与运行侧是同一个设备,也可以是不同的设备,本公开对此不做限制。
在构建玩目标模型镜像之后,任务卸载端(例如第二设备)可以根据图9完成对目标待处理任务的分割,例如第二设备获取目标待处理任务;确定目标模型镜像用于处理目标待处理任务;确定对目标待处理任务进行协同卸载处理的至少一个待卸载设备的可用计算量;根据至少一个待卸载设备的可用计算量和各个模型切片对应的计算量,对目标待处理任务进行任务分割以将目标待处理任务分为多个待处理子任务;根据结构描述信息在多个模型切片中确定各个待处理子任务对应的模型切片,多个待处理子任务包括目标计算任务;第二设备将各个待处理子任务发送至至少一个待卸载设备,以便至少一个待卸载设备根据模型切片完成对应的待处理子任务。
在完成任务分割之后,运行侧可以根据图10所示示意图完成任务卸载,每个接收任务的一端(包括卸载任务的一端和接受卸载任务的一端)可以根据以下步骤完成任务。
步骤1:根据计算任务所指定的NN模型镜像,从镜像仓库或计算集群中的其他节点中读取镜像Manifest(一种文件名)、Config(一种文件名)、模型镜像切片描述文件等由landmark分隔出的非模型文件。
步骤2:根据模型镜像切片描述文件对每层模型切片创建对应目录,与非模型文件层共同作为容器的rootfs挂载,根据非模型文件及模型切片目录组成的rootfs启动容器。
步骤3:运行侧设备根据当前计算任务,确定所需模型切片镜像层名称,并根据模型镜像切片描述文件所记录的偏移量确定该镜像层在镜像中的位置,按照模型结构的层顺序读取模型切片,并将读取到的切片加载到容器rootfs对应目录中。
步骤4:进行模型切片多层读取时,在完成一层切片读取和加载后,容器即可开始该层计算,计算的同时拉取其它层。
目前AI相关容器需要读取整个模型镜像,深度NN模型所导致的大体积镜像,对存储资源受限的设备,尤其是终端来说是一个挑战,同时这也易造成网络拥塞,是镜像下发、容器部署的瓶颈。
本专利模型切片式容器化方案,创新性地在镜像中置入landmark和可被Manifest寻址的模型镜像切片描述文件,以构建可高效完成计算任务的AI模型镜像。
通过landmark文件区分模型镜像层与非模型镜像层,可支持模型与其配置、运行环境和应用的分离,在容器运行侧实现基于非模型文件和模型切片目录的容器启动,以及模型切片的计算和读取过程分离。
镜像的模型镜像切片描述文件可实现模型切片的定位以及模型切片的组装,也可通过添加额外信息对任务卸载方案提供支持,在模型计算和计算卸载场景中可根据计算任务需求读取指定的模型切片,有效节省运行侧设备资源及网络资源。
和现有技术相比,主要优势在于:
1.模型切片镜像按需读取的方式,在模型计算卸载场景中,参与的计算节点无需下载整个模型,可节省节点设备和网络的资源,缩减读取整个模型镜像时所造成的时延,可提高计算任务的执行效率,尤其适合在终端上应用。
2.支持模型与其配置、运行环境和应用的分离,可提高容器的启动速度,以及应用的部署效率。
3.支持模型切片的计算过程与读取过程分离,以二者并行的方式,可在模型计算和计算卸载场景中进一步提高计算任务的执行效率。
另外,还可以对各个切片的权重文件单独进行存储,实现模型切片权重文件的分离存储,可便于设备运行侧对模型权重文件的更新,即在模型更新权重后,运行侧只需拉取计算任务指定模型切片的新权重文件即可。
另外,通过上述模型切片权重文件的分离存储,还可以实现目标模型的分离训练。例如,将不同的模型切片部署在不同的设备中,在模型训练过程中,只需要将训练中间结果以及权重文件下发给各个设备,即可实现对目标模型的训练。
本专利提出的方案旨在解决上述问题。运行侧(端/边/云)可以根据当前卸载方案执行NN模型切片计算时,无需下载完整的NN模型,只需要读取相应的模型切片镜像层,便可在容器中完成模型计算。同时,在使用多层NN模型计算的情况下,也可通过模型层在容器中的加载和计算并行,加速计算。
图11是根据一示例性实施例示出的一种任务处理装置的框图。参照图11,本公开实施例提供的任务处理装置1100可以包括:计算任务获取模块1101、镜像确定模块1102、容器启动模块1103、镜像切片确定模块1104、切片拉取模块1105.
其中,计算任务获取模块1101可以用于获取目标计算任务;镜像确定模块1102可以用于确定目标计算任务与目标模型镜像对应,目标模型镜像包括非模型文件和模型切片文件,非模型文件包括运行环境配置文件和模型镜像切片描述文件,模型切片文件包括多个模型切片,多个模型切片包括目标模型切片,多个模型切片是对目标模型进行切片处理后获得的;容器启动模块1103可以用于从非模型文件中拉取运行环境配置文件和模型镜像切片描述文件,并根据运行环境配置文件和模型镜像切片描述文件启动目标容器;镜像切片确定模块1104可以用于确定目标模型切片用于处理目标计算任务;切片拉取模块1105可以用于从目标模型镜像中拉取目标模型切片,并在启动后的目标容器中运行目标模型切片以进行目标计算任务。
在一些实施例中,目标模型切片包括第一模型切片和第二模型切片,模型镜像切片描述文件包括对目标模型的结构进行描述的结构描述信息;其中,切片拉取模块1105可以包括:执行顺序确定子模块、第一模型切片拉取子模块、和第二模型切片拉取子模块。
其中,执行顺序确定子模块用于根据结构描述信息确定在目标计算任务中,第一模型切片的执行顺序在第二模型切片之前;第一模型切片拉取子模块用于从目标模型镜像中拉取并加载第一模型切片,并在启动后的目标容器中运行第一模型切片;第二模型切片拉取子模块用于在运行第一模型切片的同时,从目标模型镜像中拉取和加载第二模型切片,以进行目标计算任务。
在一些实施例中,模型镜像切片描述文件还包括对各个模型切片在目标模型镜像中的位置进行描述的位置描述信息,位置描述信息包括对第一模型切片的位置进行描述的第一位置描述信息和对第二模型切片的位置进行描述的第二位置描述信息;其中,第一模型切片拉取子模块包括:第一拉取单元,第二模型切片拉取子模块包括:第二拉取单元。
其中,第一拉取单元用于根据第一位置描述信息从目标模型镜像中拉取和加载第一模型切片;第二拉取单元用于在运行第一模型切片的同时,根据第二位置描述信息从目标模型镜像中拉取和加载第二模型切片。
在一些实施例中,目标模型镜像用来处理目标待处理任务,目标计算任务是目标待处理任务的协同子任务;其中,从目标模型镜像中拉取目标模型切片,并在启动后的目标容器中运行目标模型切片以进行目标计算任务,包括:在启动后的目标容器中运行目标模型切片以进行目标计算任务,获得目标计算结果;其中,任务处理装置1100还用于将目标计算结果发送至目标汇总设备,以便目标汇总设备基于目标计算结果完成目标待处理任务。
在一些实施例中,获取目标计算任务可以包括:获取目标计算任务;获取目标计算任务对应的目标输入数据,其中目标输入数据是目标待处理任务的中间计算结果;其中,在启动后的目标容器中运行目标模型切片以进行目标计算任务,获得目标计算结果,包括:通过运行目标模型切片对目标输入数据进行处理,以获取目标计算结果。
在一些实施例中,目标模型镜像是第一设备对目标模型进行镜像处理后获得的,目标模型是神经网络模型;其中,任务处理装置1100包括分片处理模块、模型切片文件生成模块、切片描述文件生成模块、运行环境配置文件生成模块、和目标模型镜像生成模块。
其中,分片处理模块用于在在获取目标计算任务之前以神经网络层为单位或者以神经元为单位对目标模型进行分片化处理,以获得多个模型切片;模型切片文件生成模块用于按照目标模型的层结构顺序将多个模型切片进行存储以生成模型切片文件,其中每个模型切片分别存储于一个模型镜像层中;切片描述文件生成模块用于根据对目标模型的结构进行描述的结构描述信息、和各个模型切片在目标模型镜像中的位置进行描述的位置描述信息生成模型镜像切片描述文件;运行环境配置文件生成模块用于根据目标模型的运行环境和配置生成运行环境配置文件;目标模型镜像生成模块用于根据模型切片文件、模型镜像切片描述文件以及运行环境配置为镜生成目标模型镜像。
在一些实施例中,目标模型镜像中的模型镜像切片描述文件还包括各个模型切片对应的计算量信息、和对目标模型的结构进行描述的结构描述信息;其中,目标模型镜像用来处理目标待处理任务,目标计算任务是目标待处理任务的协同子任务;其中,任务处理装置1100可以包括:目标待处理任务获取模块、目标模型镜像确定模块、可用计算量确定模块、任务分割模块、切片匹配模块、以及任务发送模块。
其中,目标待处理任务获取模块用于在获取目标计算任务之前通过第二设备获取目标待处理任务;目标模型镜像确定模块用于确定目标模型镜像用于处理目标待处理任务;可用计算量确定模块用于确定对目标待处理任务进行协同卸载处理的至少一个待卸载设备的可用计算量;任务分割模块用于根据至少一个待卸载设备的可用计算量各个模型切片对应的计算量,对目标待处理任务进行任务分割以将目标待处理任务分为多个待处理子任务;切片匹配模块用于根据结构描述信息在多个模型切片中确定各个待处理子任务对应的模型切片,多个待处理子任务包括目标计算任务;任务发送模块用于第二设备将各个待处理子任务发送至至少一个待卸载设备,以便至少一个待卸载设备根据模型切片完成对应的待处理子任务。
在一些实施例中,非模型文件和模型切片文件在镜像文件系统中通过landmark文件进行分割,非模型文件位于landmark文件的下方;其中,容器启动模块1103可以包括:镜像文件系统访问子模块、分割文件定位子模块、以及搜索子模块。
其中,镜像文件系统访问子模块用于访问存储目标模型镜像的镜像文件系统;分割文件定位子模块用于在镜像文件系统中确定目标模型镜像对应的landmark文件;搜索子模块用于在landmark文件的下方搜索运行环境配置文件和模型镜像切片描述文件。
在一些实施例中,容器启动模块1103可以包括:目录创建子模块、非模型文件层定位子模块、以及挂载子模块
其中,目录创建子模块用于根据模型镜像切片描述文件对目标模型的每个模型切片创建模型切片目录;非模型文件层定位子模块用于确定运行环境配置文件和模型镜像切片描述文件所在的非模型文件层;挂载子模块用于将模型切片目录与非模型文件层作为目标容器的rootfs的挂载,以便根据由模型切片目录和非模型文件层组成的rootfs启动目标容器。
在一些实施例中,模型镜像切片描述文件包括各个模型切片在目标模型镜像中的文件偏移量;其中切片拉取模块1105可以包括:切片层确定子模块、文件偏移量确定子模块、以及拉取子模块。
其中,切片层确定子模块用于确定目标模型切片所在的目标模型镜像层;文件偏移量确定子模块用于根据各个模型切片在目标模型镜像中的文件偏移量,确定目标模型镜像层在模型切片文件中的目标文件偏移量;拉取子模块用于根据目标文件偏移量从目标模型镜像中拉取目标模型切片。
由于装置1100的各功能已在其对应的方法实施例中予以详细说明,本公开于此不再赘述。
描述于本申请实施例中所涉及到的模块和/或子模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块和/或子模块也可以设置在处理器中。其中,这些模块和/或子模块的名称在某种情况下并不构成对该模块和/或子模块本身的限定。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
此外,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
图12示出了适于用来实现本公开实施例的的电子设备的结构示意图。需要说明的是,图12示出的电子设备1200仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图12所示,电子设备1200包括中央处理单元(CPU)1201,其可以根据存储在只读存储器(ROM)1202中的程序或者从储存部分1208加载到随机访问存储器(RAM)1203中的程序而执行各种适当的动作和处理。在RAM 1203中,还存储有电子设备1200操作所需的各种程序和数据。CPU 1201、ROM 1202以及RAM 1203通过总线1204彼此相连。输入/输出(I/O)接口1205也连接至总线1204。
以下部件连接至I/O接口1205:包括键盘、鼠标等的输入部分1206;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1207;包括硬盘等的储存部分1208;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1209。通信部分1209经由诸如因特网的网络执行通信处理。驱动器1210也根据需要连接至I/O接口1205。可拆卸介质1211,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1210上,以便于从其上读出的计算机程序根据需要被安装入储存部分1208。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1209从网络上被下载和安装,和/或从可拆卸介质1211被安装。在该计算机程序被中央处理单元(CPU)1201执行时,执行本申请的系统中限定的上述功能。
需要说明的是,本公开所示的计算机可读存储介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读存储介质,该计算机可读存储介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
作为另一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备可实现功能包括:获取目标计算任务;确定目标计算任务与目标模型镜像对应,目标模型镜像包括非模型文件和模型切片文件,非模型文件包括运行环境配置文件和模型镜像切片描述文件,模型切片文件包括多个模型切片,多个模型切片包括目标模型切片,多个模型切片是对目标模型进行切片处理后获得的;从非模型文件中拉取运行环境配置文件和模型镜像切片描述文件,并根据运行环境配置文件和模型镜像切片描述文件启动目标容器;确定目标模型切片用于处理目标计算任务;从目标模型镜像中拉取目标模型切片,并在启动后的目标容器中运行目标模型切片以进行目标计算任务。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例的各种可选实现方式中提供的方法。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,本公开实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者智能设备等)执行根据本公开实施例的方法,例如图3所示的步骤。
本领域技术人员在考虑说明书及实践在这里公开的公开后,将容易想到本公开的其他实施例。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不限于这里已经示出的详细结构、附图方式或实现方法,相反,本公开意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。
Claims (13)
1.一种任务处理方法,其特征在于,包括:
获取目标计算任务;
确定所述目标计算任务与目标模型镜像对应,所述目标模型镜像包括非模型文件和模型切片文件,所述非模型文件包括运行环境配置文件和模型镜像切片描述文件,所述模型切片文件包括多个模型切片,所述多个模型切片包括目标模型切片,所述多个模型切片是对目标模型进行切片处理后获得的;
从所述非模型文件中拉取所述运行环境配置文件和所述模型镜像切片描述文件,并根据所述运行环境配置文件和所述模型镜像切片描述文件启动目标容器;
确定所述目标模型切片用于处理所述目标计算任务;
从所述目标模型镜像中拉取所述目标模型切片,并在启动后的目标容器中运行所述目标模型切片以进行所述目标计算任务。
2.根据权利要求1所述方法,其特征在于,所述目标模型切片包括第一模型切片和第二模型切片,所述模型镜像切片描述文件包括对所述目标模型的结构进行描述的结构描述信息;其中,从所述目标模型镜像中拉取所述目标模型切片,并在启动后的目标容器中运行所述目标模型切片以进行所述目标计算任务,包括:
根据所述结构描述信息确定在所述目标计算任务中,所述第一模型切片的执行顺序在所述第二模型切片之前;
从所述目标模型镜像中拉取并加载所述第一模型切片,并在启动后的目标容器中运行所述第一模型切片;
在运行所述第一模型切片的同时,从所述目标模型镜像中拉取和加载所述第二模型切片,以进行所述目标计算任务。
3.根据权利要求2所述方法,其特征在于,所述模型镜像切片描述文件还包括对各个模型切片在所述目标模型镜像中的位置进行描述的位置描述信息,所述位置描述信息包括对所述第一模型切片的位置进行描述的第一位置描述信息和对所述第二模型切片的位置进行描述的第二位置描述信息;其中,从所述目标模型镜像中拉取并加载所述第一模型切片,包括:
根据所述第一位置描述信息从所述目标模型镜像中拉取和加载所述第一模型切片;
其中,在运行所述第一模型切片的同时,从所述目标模型镜像中拉取和加载所述第二模型切片,包括:
在运行所述第一模型切片的同时,根据所述第二位置描述信息从所述目标模型镜像中拉取和加载所述第二模型切片。
4.根据权利要求1所述方法,其特征在于,所述目标模型镜像用来处理目标待处理任务,所述目标计算任务是所述目标待处理任务的协同子任务;其中,从所述目标模型镜像中拉取所述目标模型切片,并在启动后的目标容器中运行所述目标模型切片以进行所述目标计算任务,包括:
在启动后的目标容器中运行所述目标模型切片以进行所述目标计算任务,获得目标计算结果;
其中,所述方法还包括:
将所述目标计算结果发送至目标汇总设备,以便所述目标汇总设备基于所述目标计算结果完成所述目标待处理任务。
5.根据权利要求4所述方法,其特征在于,获取目标计算任务,包括:
获取所述目标计算任务;
获取所述目标计算任务对应的目标输入数据,其中所述目标输入数据是所述目标待处理任务的中间计算结果;
其中,在启动后的目标容器中运行所述目标模型切片以进行所述目标计算任务,获得目标计算结果,包括:
通过运行所述目标模型切片对所述目标输入数据进行处理,以获取所述目标计算结果。
6.根据权利要求1所述方法,其特征在于,所述目标模型镜像是第一设备对所述目标模型进行镜像处理后获得的,所述目标模型是神经网络模型;在在获取目标计算任务之前,所述方法还包括:
以神经网络层为单位或者以神经元为单位对所述目标模型进行分片化处理,以获得所述多个模型切片,其中一个模型切片包括一个或多个神经网络层,或者一个模型切片包括一个或多个神经元;
按照所述目标模型的层结构顺序将所述多个模型切片进行存储以生成所述模型切片文件,其中每个模型切片分别存储于一个模型镜像层中;
根据对所述目标模型的结构进行描述的结构描述信息、和各个模型切片在所述目标模型镜像中的位置进行描述的位置描述信息生成所述模型镜像切片描述文件;
根据所述目标模型的运行环境和配置生成所述运行环境配置文件;
根据所述模型切片文件、所述模型镜像切片描述文件以及所述运行环境配置为镜生成所述目标模型镜像。
7.根据权利要求1所述方法,其特征在于,所述目标模型镜像中的模型镜像切片描述文件还包括各个模型切片对应的计算量信息、和对所述目标模型的结构进行描述的结构描述信息;其中,所述目标模型镜像用来处理目标待处理任务,所述目标计算任务是所述目标待处理任务的协同子任务;其中,在获取目标计算任务之前,所述方法还包括:
第二设备获取所述目标待处理任务;
确定所述目标模型镜像用于处理所述目标待处理任务;
确定对所述目标待处理任务进行协同卸载处理的至少一个待卸载设备的可用计算量;
根据所述至少一个待卸载设备的可用计算量和各个模型切片对应的计算量,对所述目标待处理任务进行任务分割以将所述目标待处理任务分为多个待处理子任务;
根据所述结构描述信息在所述多个模型切片中确定各个待处理子任务对应的模型切片,所述多个待处理子任务包括所述目标计算任务;
所述第二设备将各个待处理子任务发送至所述至少一个待卸载设备,以便所述至少一个待卸载设备根据模型切片完成对应的待处理子任务。
8.根据权利要求1所述方法,其特征在于,所述非模型文件和所述模型切片文件在镜像文件系统中通过landmark文件进行隔离。
9.根据权利要求1所述方法,其特征在于,根据所述运行环境配置文件和所述模型镜像切片描述文件启动目标容器,包括:
根据所述模型镜像切片描述文件对所述目标模型的每个模型切片创建模型切片目录;
确定所述运行环境配置文件和所述模型镜像切片描述文件所在的非模型文件层;
将所述模型切片目录与所述非模型文件层作为所述目标容器的rootfs的挂载,以便根据由所述模型切片目录和所述非模型文件层组成的rootfs启动所述目标容器。
10.根据权利要求9所述方法,其特征在于,模型镜像切片描述文件包括各个模型切片在所述目标模型镜像中的文件偏移量;其中,从所述目标模型镜像中拉取所述目标模型切片,包括:
确定所述目标模型切片所在的目标模型镜像层;
根据各个模型切片在所述目标模型镜像中的文件偏移量,确定所述目标模型镜像层在所述目标模型镜像中的目标文件偏移量;
根据所述目标文件偏移量从所述目标模型镜像中拉取所述目标模型切片。
11.一种任务处理装置,其特征在于,包括:
计算任务获取模块,用于获取目标计算任务;
镜像确定模块,用于确定所述目标计算任务与目标模型镜像对应,所述目标模型镜像包括非模型文件和模型切片文件,所述非模型文件包括运行环境配置文件和模型镜像切片描述文件,所述模型切片文件包括多个模型切片,所述多个模型切片包括目标模型切片,所述多个模型切片是对目标模型进行切片处理后获得的;
容器启动模块,用于从所述非模型文件中拉取所述运行环境配置文件和所述模型镜像切片描述文件,并根据所述运行环境配置文件和所述模型镜像切片描述文件启动目标容器;
镜像切片确定模块,用于确定所述目标模型切片用于处理所述目标计算任务;
切片拉取模块,用于从所述目标模型镜像中拉取所述目标模型切片,并在启动后的目标容器中运行所述目标模型切片以进行所述目标计算任务。
12.一种电子设备,其特征在于,包括:
存储器;以及耦合到所述存储器的处理器,所述处理器被用于基于存储在所述存储器中的指令,执行如权利要求1-10任一项所述的任务处理方法。
13.一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现如权利要求1-10任一项所述的任务处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111567988.6A CN114238237A (zh) | 2021-12-21 | 2021-12-21 | 任务处理方法、装置、电子设备和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111567988.6A CN114238237A (zh) | 2021-12-21 | 2021-12-21 | 任务处理方法、装置、电子设备和计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114238237A true CN114238237A (zh) | 2022-03-25 |
Family
ID=80760027
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111567988.6A Pending CN114238237A (zh) | 2021-12-21 | 2021-12-21 | 任务处理方法、装置、电子设备和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114238237A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116048728A (zh) * | 2023-01-16 | 2023-05-02 | 安超云软件有限公司 | 基于按需延迟加载的容器镜像加速的方法及应用 |
CN116661992A (zh) * | 2023-05-09 | 2023-08-29 | 支付宝(杭州)信息技术有限公司 | 端边云协同计算方法、设备、系统、介质及程序产品 |
TWI832627B (zh) * | 2022-08-16 | 2024-02-11 | 大陸商中國銀聯股份有限公司 | 一種生物特徵提取方法及裝置 |
-
2021
- 2021-12-21 CN CN202111567988.6A patent/CN114238237A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI832627B (zh) * | 2022-08-16 | 2024-02-11 | 大陸商中國銀聯股份有限公司 | 一種生物特徵提取方法及裝置 |
CN116048728A (zh) * | 2023-01-16 | 2023-05-02 | 安超云软件有限公司 | 基于按需延迟加载的容器镜像加速的方法及应用 |
CN116661992A (zh) * | 2023-05-09 | 2023-08-29 | 支付宝(杭州)信息技术有限公司 | 端边云协同计算方法、设备、系统、介质及程序产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109120678B (zh) | 用于分布式存储系统的服务托管的方法和装置 | |
CN114238237A (zh) | 任务处理方法、装置、电子设备和计算机可读存储介质 | |
WO2021103479A1 (zh) | 用于训练深度学习模型的方法和装置 | |
CN111340220B (zh) | 用于训练预测模型的方法和装置 | |
CN110727468A (zh) | 管理算法模型的方法和装置 | |
US20230033019A1 (en) | Data processing method and apparatus, computerreadable medium, and electronic device | |
CN114296933A (zh) | 端边云架构下轻量化容器的实现方法、数据处理系统 | |
CN113760488A (zh) | 调度任务的方法、装置、设备和计算机可读介质 | |
US11409564B2 (en) | Resource allocation for tuning hyperparameters of large-scale deep learning workloads | |
WO2022206295A1 (en) | Program context migration | |
CN111580883A (zh) | 应用程序启动方法、装置、计算机系统和介质 | |
US11789774B2 (en) | Optimization of workload scheduling in a distributed shared resource environment | |
CN115794400A (zh) | 深度学习模型的内存管理方法、装置、设备及存储介质 | |
CN115617358A (zh) | 模型推理服务部署方法、模型推理方法、装置 | |
Niroshan et al. | Machine learning with kay | |
CN116820663A (zh) | 镜像构建方法、设备、存储介质及装置 | |
CN116848580A (zh) | 用于针对多方对话的话语解析的结构自感知模型 | |
CN112988738B (zh) | 用于区块链的数据分片方法和装置 | |
CN114443215A (zh) | 业务应用部署方法、装置、计算机设备和存储介质 | |
CN113569256A (zh) | 漏洞扫描方法和装置、系统、电子设备、计算机可读介质 | |
CN111353585A (zh) | 神经网络模型的结构搜索方法和装置 | |
CN113743425A (zh) | 一种生成分类模型的方法和装置 | |
CN116603245B (zh) | 程序版本调整方法、装置、设备及可读存储介质 | |
US11323512B2 (en) | Peer to peer infrastructure management architecture | |
US11985213B1 (en) | Stateless triggering and execution of interactive computing kernels |
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 |