CN117435354B - 算法模型的运行方法、装置、系统、电子设备及存储介质 - Google Patents
算法模型的运行方法、装置、系统、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117435354B CN117435354B CN202311757597.XA CN202311757597A CN117435354B CN 117435354 B CN117435354 B CN 117435354B CN 202311757597 A CN202311757597 A CN 202311757597A CN 117435354 B CN117435354 B CN 117435354B
- Authority
- CN
- China
- Prior art keywords
- terminal
- algorithm model
- model
- running
- target 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.)
- Active
Links
- 238000004422 calculation algorithm Methods 0.000 title claims abstract description 361
- 238000000034 method Methods 0.000 title claims abstract description 118
- 238000004364 calculation method Methods 0.000 claims description 36
- 230000008569 process Effects 0.000 claims description 35
- 230000015654 memory Effects 0.000 claims description 34
- 238000004590 computer program Methods 0.000 claims description 25
- 230000004044 response Effects 0.000 claims description 13
- 239000000725 suspension Substances 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 16
- 230000002159 abnormal effect Effects 0.000 description 12
- 230000003993 interaction Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000013473 artificial intelligence Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 2
- 238000013136 deep learning model Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012821 model calculation Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请提供了一种算法模型的运行方法、算法模型的运行装置、算法模型的运行系统、电子设备以及计算机可读存储介质,应用于终端资源调度技术领域。该方法包括:服务器在接收到算法模型的运行任务后,从多个终端中,确定出可支持所述算法模型运行的终端集合;进一步地,根据该终端集合中每个终端当前的运行状态,从该终端集合中确定出目标终端;进而通过该目标终端运行上述算法模型。可见,服务器可以根据终端的运行状态,灵活地确定出为算法模型提供计算资源的目标终端,能够将不同算法模型分别调度至不同终端来运行,从而实现多个算法模型的分布式运行,有利于提升算法模型的运行效率,同时能够减少算法模型的运行成本。
Description
技术领域
本申请实施例涉及终端资源调度技术领域,尤其涉及一种算法模型的运行方法、算法模型的运行装置、算法模型的运行系统、电子设备以及计算机可读存储介质。
背景技术
相关技术中,算法模型,尤其是人工智能内容生成(AI-Generated Content,AIGC)等大模型,一般是在云端运行。但是通过云端运行算法模型的单一的资源提供方式,会导致云端资源紧张,进而不利于模型运行效率以及运行成本。
发明内容
本申请提供一种算法模型的运行方法、算法模型的运行装置、算法模型的运行系统、电子设备以及计算机可读存储介质,能够灵活地为算法模型提供计算资源,有利于提升算法模型的运行效率以及减少算法模型的运行成本。
第一方面,本申请提供一种算法模型的运行方法,应用于服务器,该方法包括:响应接收到算法模型的运行任务,从多个终端中,确定出可支持上述算法模型运行的终端集合;以及,根据上述终端集合中每个终端当前的运行状态,从上述终端集合中确定出目标终端,以用于运行上述算法模型。
本申请实施例提供的算法模型的运行方法中,服务器可以根据终端的运行状态,灵活地确定出为算法模型提供计算资源的目标终端,有利于提升算法模型的运行效率。
第二方面,本申请提供了一种算法模型的运行装置,配置于服务器,上述装置包括:终端集合确定模块以及目标终端确定模块;其中,上述终端集合确定模块,用于响应接收到算法模型的运行任务,从多个终端中,确定出可支持上述算法模型运行的终端集合;以及,上述目标终端确定模块,用于根据上述终端集合中每个终端当前的运行状态,从上述终端集合中确定出目标终端,以用于运行上述算法模型。
在一些实施例中,基于上述方案,上述算法模型的运行装置还包括:算力匹配模块以及模型运行模块;
其中,上述算力匹配模块用于:在上述目标终端确定模块根据上述终端集合中每个终端当前的运行状态,从上述终端集合中确定出目标终端之后,获取上述算法模型的实时性等级和每个上述目标终端对应的模型可用算力;将与上述实时性要求等级相匹配的模型可用算力,确定为目标可用算力;以及,上述模型运行模块用于:通过提供上述目标可用算力的目标终端,运行上述算法模型。
在一些实施例中,基于上述方案,上述算法模型的运行装置还包括:请求发送模块;
其中,上述请求发送模块用于:在通过上述目标终端运行上述算法模型的过程中,向上述目标终端发送状态获取请求,以使上述目标终端生成上述算法模型的运行状态;以及,上述目标终端确定模块还用于:在第一预设时长内没有接收到上述算法模型的运行状态的情况下,根据上述终端集合中每个终端当前的运行状态,从上述终端集合中重新确定出目标终端,以用于运行上述算法模型。
在一些实施例中,基于上述方案,上述运行状态包括:模型运行正常且处于运行状态;上述算法模型的运行装置还包括:确定模块;
其中,上述确定模块用于:在接收到上述算法模型的运行状态为模型运行正常且处于运行状态的情况下,确定上述目标终端运行上述算法模型的总时长;上述目标终端确定模块还用于:在上述总时长超过第二预设时长的情况下,根据上述终端集合中每个终端当前的运行状态,从上述终端集合中重新确定出目标终端,以用于运行上述算法模型。
在一些实施例中,基于上述方案,上述请求发送模块还用于:在上述总时长未超过上述第二预设时长的情况下,保持通过上述目标终端运行上述算法模型不变,并向上述目标终端发送状态获取请求,以使上述目标终端生成上述算法模型的运行状态。
在一些实施例中,基于上述方案,上述运行状态包括:模型运行正常且处于暂停状态;上述确定模块还用于:在接收到上述算法模型的运行状态为模型运行正常且处于暂停状态的情况下,确定上述目标终端是否运行前端任务;上述模型运行模块还用于:在确定上述目标终端运行前端任务且上述前端任务属于目标类型的情况下,保持通过上述目标终端运行上述算法模型不变,并向上述目标终端发送状态获取请求,以使上述目标终端生成上述算法模型的运行状态;其中,上述目标类型为运行时长不超过第三预设时长的类型。
在一些实施例中,基于上述方案,上述请求发送模块还用于:在确定上述目标终端运行前端任务且上述前端任务属于目标类型的情况下,至少间隔上述第三预设时长后向上述目标终端发送状态获取请求,以使上述目标终端生成上述算法模型的运行状态;上述目标终端确定模块还用于:若上述运行状态为模型运行正常且处于暂停状态,根据上述终端集合中每个终端当前的运行状态,从上述终端集合中重新确定出目标终端,以用于运行上述算法模型。
在一些实施例中,基于上述方案,上述目标终端确定模块还用于:在确定上述目标终端运行前端任务且上述前端任务不属于上述目标类型的情况下,根据上述终端集合中每个终端当前的运行状态,从上述终端集合中重新确定出目标终端,以用于运行上述算法模型。
在一些实施例中,基于上述方案,上述目标终端确定模块包括:等级调整子模块和重新确定子模块;其中,上述等级调整子模块用于:增加上述算法模型的实时性等级;以及,上述重新确定子模块用于:根据上述终端集合中每个终端当前的运行状态和上述算法模型当前的实时性等级,从上述终端集合中重新确定出目标终端。
在一些实施例中,基于上述方案,上述重新确定子模块具体用于:确定通过上述终端集合中第i个终端运行上述算法模型所要求的最低性能需求,其中i取值为不大于上述终端集合中终端总数的正整数;以及,在上述第i个终端当前的运行状态满足上述最低性能需求,且上述第i个终端对应的模型可用算力与上述算法模型当前的实时性等级相匹配的情况下,确定上述第i个终端。
在一些实施例中,基于上述方案,上述上述目标终端确定模块还具体用于:确定通过上述终端集合中第i个终端运行上述算法模型所要求的最低性能需求,其中i取值为不大于上述终端集合中终端总数的正整数;以及,在上述第i个终端当前的运行状态满足上述最低性能需求的情况下,确定上述第i个终端为上述目标终端。
本申请实施例提供的算法模型的运行装置,可以根据终端的运行状态,灵活地确定出为算法模型提供计算资源的目标终端,有利于提升算法模型的运行效率以及减少算法模型的运行成本。
第三方面,提供了一种终端,包括处理器和存储器。所述存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,以执行上述第一方面所提供的方法。
第四方面,提供了一种芯片,用于实现上述第一方面中任一方面或其各实现方式中的方法。具体地,所述芯片包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有所述芯片的设备执行如上述第一方面所提供的方法。
第五方面,提供了一种计算机可读存储介质,用于存储计算机程序,所述计算机程序使得计算机执行上述第一方面所提供的方法。
第六方面,提供了一种计算机程序产品,包括计算机程序指令,所述计算机程序指令使得计算机执行上述第一方面所提供的方法。
第七方面,提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面所提供的方法。
综上,本申请实施例提供的方案中,通过多个终端来提供计算资源,服务器可以通过调度上述多个终端来实现算法模型的运行。具体地,服务器在接收到算法模型的运行任务后,从用于提供计算资源的上述多个终端中,确定出可支持所述算法模型运行的终端集合;进一步地,根据该终端集合中每个终端当前的运行状态,从该终端集合中确定出目标终端;进而通过该目标终端运行上述算法模型。可见,服务器可以根据终端的运行状态,灵活地确定出为算法模型提供计算资源的目标终端,能够将不同算法模型分别调度至不同终端来运行,从而实现多个算法模型的分布式运行,有利于提升算法模型的运行效率,同时能够减少算法模型的运行成本。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的在终端运行算法模型的方案的应用场景示意图;
图2为本申请实施例提供的算法模型的运行方法的流程示意图;
图3为本申请另一实施例提供的算法模型的运行方法的流程示意图;
图4为本申请实施例提供的目标终端运行算法模型的信息交互示意图;
图5为本申请实施例提供的目标终端运行算法模型过程中服务器进行终端调度的流程示意图;
图6为本申请另一实施例提供的目标终端运行算法模型过程中服务器进行终端调度的流程示意图;
图7为本申请实施例提供的终端向调度服务器上报自身运行状态的交互示意图;
图8为本申请实施例提供的调度服务器响应接收到算法模型运算任务初步进行终端调度的交互示意图;
图9是本申请实施例提供的算法模型运行过程中调度服务器进行重新调度的交互示意图;
图10为本申请实施例提供的算法模型的运行装置的结构示意图;
图11为本申请实施例提供的算法模型的运行系统的结构示意图;
图12是本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够除了在这里图示或描述的那些以外的顺序实施。在本申请实施例中,“与A对应的B”表示B与A相关联。在一种实现方式中,可以根据A确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。在本申请的描述中,除非另有说明,“多个”是指两个或多于两个。
本申请实施例中,术语“模块”或“单元”是指有预定功能的计算机程序或计算机程序的一部分,并与其他相关部分一起工作以实现预定目标,并且可以通过使用软件、硬件(如处理电路或存储器)或其组合来全部或部分实现。同样的,一个处理器(或多个处理器或存储器)可以用来实现一个或多个模块或单元。此外,每个模块或单元都可以是包含该模块或单元功能的整体模块或单元的一部分。
相关技术中,算法模型尤其是大模型,一般是在云端运行。随着大模型的应用越来越广泛,云端提供的算力资源会越来越紧张,可以能会影响模型运行效率,并且利用云端算力的成本也会越来越高。
同时,随着终端人工智能(Artificial Intelligence,AI)芯片算力越来越强,目前越来越多的终端具备大模型计算能力。而通过本申请实施例提供的方案,能够充分地利用端侧算力。本申请实施例提供的方案中,通过多个终端来提供计算资源,与上述多个终端关联的服务器可以通过调度上述多个终端来实现算法模型的运行。具体地,服务器在接收到算法模型的运行任务后,从用于提供计算资源的上述多个终端中,确定出可支持所述算法模型运行的终端集合;进一步地,根据该终端集合中每个终端当前的运行状态,从该终端集合中确定出目标终端;进而通过该目标终端运行上述算法模型。可见,服务器可以根据终端的运行状态,灵活地确定出为算法模型提供计算资源的目标终端,有利于提升算法模型的运行效率,同时能够减少算法模型的运行成本。
图1为本申请实施例提供的算法模型的运行系统1100的示意图。参考图1,该算法模型的运行系统1100包括:服务器100以及可以用于提供计算资源的多个终端102-108等。示例性的,服务器100与终端之间可以通过通信网络10进行数据传输交互。
本申请实施例中,服务器在判断到某个终端启动时,可以向终端发送信息以询问用户是否把该终端加入算力共享池。假如用户同意将该终端加入算力共享池,则可以认为该终端属于上述用于提供计算资源的终端,也可以认为该终端属于本申请实施例提供的算法模型的运行系统。
上述终端在实施的过程中可以为运行算法模型提供计算资源。例如,上述终端可以包括智能手机、台式计算机、移动计算装置、笔记本(例如,膝上型)计算机、平板电脑、机顶盒、电视、相机、显示装置、数字媒体播放器、视频游戏控制台、车载计算机、导航仪、数字电话、视频电话、电视机、传感设备以及服务器等,本申请实施例不作限;
上述服务器100在接收到算法模型的运行任务的情况下,根据各个终端当前的运行状态,确定将算法模型的运行任务分配至哪个终端。具体的,服务器100可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
上述通信网络10可以包括有线或无线通信方式进行直接或间接地连接,本申请实施例在此不做限制。
需要说明的是,图1只是本申请实施例所提供的算法模型的运行系统的一种示例,本申请实施例的算法模型的运行系统包括但不限于图1所示。
下面通过一些实施例对本申请实施例的技术方案进行详细说明。下面这几个实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图2为本申请实施例提供的算法模型的运行方法P200的流程示意图。其中,方法P200的执行主体为用于进行终端调度的服务器(可以称为:调度服务器),如图1中服务器100。参考图2,方法P200包括:S210和S220。
在S210中,响应接收到算法模型的运行任务,从多个终端中,确定出可支持上述算法模型运行的终端集合。
本申请实施例中,算法模型具体可以包括机器学习(Machine Learning,ML)模型、深度学习模型等,例如,上述算法模型具体可以是大语言模型、AIGC模型等。上述目标算法模型可以是多种算法模型中的任意一种。本申请实施例中,在终端运行目标算法模型,可以是具体可以是对模型的预训练任务、预训练后的微调任务,还可以是在终端后台运行训练后的模型应用任务等。例如,在用户终端运行训练后的AIGC模型,从而可以便于用户随时地内容生成需求,便于提升用户体验。需要说明的是,上述关于算法模型的任务只要是与模型相关的计算任务即可,不限于上述所列举的具体任务。
在示例性的实施例中,上述算法模型可以具体是指大模型。其中,大模型泛指参数很多的机器学习模型或深度学习模型。根据场景不同,可以分为大语言模型、计算机视觉(包含图像和视频)大模型、音频大模型、多模态大模型。
由于大模型因为指令集、资源需求量等原因不可能在所有的终端上运行,因此本申请实施例中需要提前进行大模型在各个终端上的适配,适配后记录相关信息供调度使用,记录的主要信息如表1。
表1
从而,通过表1示出的收集信息,可以确定支持当下算法模型运行的终端的身份标识(记作目标身份标识),例如手机型号。进一步地,将算力共享池中属于所确定的目标身份标识的终端,得到上述终端集合。
在S220中,根据上述终端集合中每个终端当前的运行状态,从上述终端集合中确定出目标终端,以用于运行上述算法模型。
假如S210所确定的终端集合中包含N(正整数)个终端,本实施例中以该终端集合中第i个终端为例,介绍第i(不大于N的正整数)个终端是否可以确定为用于运行算法模型的目标终端。作为S220的一种具体实施方式包括:S220-1和S220-2。
在S220-1中,确定通过终端集合中第i个终端运行上述算法模型所要求的最低性能需求。
示例性的,可以通过上述表1来确定通过终端集合中第i个终端运行上述算法模型所要求的最低性能需求。上述性能可以包括内存、网络以及运行频率。例如,第i个终端为型号为Pxxx的智能手机,通过该智能手机运行上述算法模型所要求的最低性能需求可以包括:模型运行时需要的最小内存为500MB,模型运行所需要的最小带宽,单位为1000MB/s,以及模型运行时所需的最小运行频率为1000Hz。
在S220-2中,在第i个终端当前的运行状态满足所述最低性能需求的情况下,确定所述第i个终端为所述目标终端。
可见,本申请实施例一方面确定第i个终端运行上述算法模型所需资源量,另一反面需确定第i个终端当前可提供的资源量,进一步地,通过比对可提供的资源量是否满足所需资源量,来确定第i个终端当前是否适用于运行上述算法模型。
由于通过S220-1已经确定了第i个终端运行上述算法模型所需资源量,接下来,介绍如何确定第i个终端运行上述算法模型当前可提供的资源量。
本申请实施例中,当假如算力共享池的终端没有执行算法模型任务时,终端将定时将运行状态上报值调度服务器。从而,在调度服务器接收到算法模型的运行任务时,便可以根据终端上报信息,确定合适执行上述任务的终端。示例性的,服务器需要获取的信息或者终端上报的信息包括:
(1)、终端运行有前端应用的状态。当终端运行有前端应用,说明用户当前正在操作使用终端。为了避免运行算法模型对终端使用带来不便,该情况下,服务器并不向该终端调度算法模型的运行任务。因此,该情况下终端只需要上报体现终端当前状态的信息,例如该状态通过预设标识体现,则终端只需上报该预设标识。
(2)、终端的运行状态。当终端并没有运行前端应用,说明用户当前未在操作使用终端。因此可以通过该终端为算法模型提供计算资源,也不会对终端用户带来不便。示例性的,该情况下,终端可以上报其计算资源的当前状态,如NPU的运行频率、可用内存大小及当前带宽大小等信息。调度服务器接收并不断更新关于终端的运行状态信息。
从而,调度服务器存储有第i个终端的最新运行状态,本申请实施例中可以将该最新运行状态确定为第i个终端当前的运行状态。
进一步地,若第i个终端当前的运行状态满足上述最低性能需求,则说明第i个终端当前可以用于运行算法模型。例如,第i个终端为型号为Pxxx的智能手机,该手机的当前运行状态包括:可提供给算法模型的内存为800MB,当前带宽为1200MB/s,以及当前运行频率为1200Hz,同前述关于该型号手机运行算法模型的最低性能需求相比对。可见,该手机当前运行状态能够满足上述最低性能需求,因此可以将该手机确定为目标终端并用于运行上述算法模型。
在示例性的实施例中,若上述终端集合中的终端,均单独不能够满足上述最低性能需求。在模型支持分布式运行的情况下,还可以联合至少两个终端完成该模型的运算。例如,终端集合中存在终端A和终端B,终端A和终端B当前提供的可用内存之和满足最低性能要求中的内存要求,同时带宽以及品行频率也能够满足最低运行需求,则可以联合终端A和终端B来完成模型运行。
可以理解的是,在调度服务器确定无法通过终端完成算法模型的运算的情况下,还可以将算法模型的部分或全部计算任务分配至能够提供算力的云端,以保障算法模型任务的顺利执行。
方法P200实施例提供的方案中,通过多个终端来提供计算资源,与上述多个终端关联的服务器可以通过调度上述多个终端来实现算法模型的运行。具体地,服务器在接收到算法模型的运行任务后,从用于提供计算资源的上述多个终端中,确定出可支持所述算法模型运行的终端集合;进一步地,根据该终端集合中每个终端当前的运行状态,从该终端集合中确定出目标终端;进而通过该目标终端运行上述算法模型。可见,服务器可以根据终端的运行状态,灵活地确定出为算法模型提供计算资源的目标终端,能够将不同算法模型分别调度至不同终端来运行,从而实现多个算法模型的分布式运行,有利于提升算法模型的运行效率,同时能够减少算法模型的运行成本。
图3为本申请另一实施例提供的算法模型的运行方法P300的流程示意图。其中,方法P300的执行主体为用于进行终端调度的服务器,如图1中服务器100。参考图3,方法P300包括:S310至S350。
其中S310的具体实施方式与S210一致,在此不再赘述。S320的具体实施方式与S220基本一致,不同之处在于:在S220中所确定出的目标终端无需再进一步精简,调度服务器可以将算法模型的运行任务直接分配至所确定出的目标终端。例如,在S220中在S220中所确定出的目标终端为一个,则调度服务器可以将算法模型的运行任务直接分配至该目标终端;或者,在S220中所确定出的目标终端为多个,且算法模型的任务可以通过所确定出的多个终端联合完成,则调度服务器可以将算法模型的运行任务直接分配至该上述多个目标终端。而在S320中所确定出的目标终端需进一步精简,调度服务器可以将算法模型的运行任务不能直接分配至所确定出的目标终端。针对该问题,本申请实施例提供以下解决方案:
在S330中,获取上述算法模型的实时性等级和每个上述目标终端对应的模型可用算力;在S340中,将与上述实时性要求等级相匹配的模型可用算力,确定为目标可用算力;在S350中,通过提供上述目标可用算力的目标终端,运行上述算法模型。
示例性的,算法模型1的实时性等级为低等级,算法模型2的实时性等级为高等级。同时确定终端A和终端B均能够满足两算法模型的最低性能需求,此时可以根据算法模型的实时性需求,进行匹配。根据实时性需求,可用算力较多的终端B适合运行实时性要求较高的算法模型2,可用算力更少的终端A适合运行实时性要求较低的算法模型1。从而,能够保障算法模型任务的实时性需求,同时实现终端资源的合理分配。
方法P300是在P200的基础上实现的,除了具备方法P200所具备的技术效果外,方法P300提供了一种进一步精简目标终端的方案,同时还能够满足不同算法模型的实时性需求,以及实现终端资源的合理分配。
通过上述实施例能够从算法模型的运行系统1100中确定出目标终端,接下来在通过目标终端运行上述算法模型的过程中,服务器通过不断地获取终端对算法模型的执行信息,来动态调整及更新用于处理算法模型的终端,以保障算法模型的运行效率。
图4为本申请实施例提供的目标终端运行算法模型的信息交互示意图。具体为,算法模型的运行系统1100中服务器100与目标终端之间的信息交互。
在S40中,服务器在确定目标终端后,将运行算法模型的信息传递至目标终端;例如,包括大模型及大模的参数。
在S42中,运行算法模型;目标终端接收到上述信息后并可以启动该大模型的计算任务。
在S44中,在通过所述目标终端运行所述算法模型的过程中,服务器向目标终端发送状态获取请求;示例性的,服务器可以定时发送上述状态获取请求,以持续关注算法模型的运行过程,以保障算法模型的顺利运行。例如,在目标终端运行算法模型出现异常状况的情况下,需将算法模型重新调度至下一个目标模型。相关实施例将在下述实施例中详细介绍。
在S46中,目标终端在接收到上述状态获取请求的情况下,一般情况下会生成算法模型的运行状态。
在S48中,目标终端将生成的算法模型的运行状态,反馈至服务器。
在S410中,服务器根据算法模型的运行状态,确定保持该算法模型在目标终端运行,或者重新确定目标终端,并将算法模型由原来的目标终端调度至重新确定的目标终端。相关实施例将在下述实施例中详细介绍。
以下结合图5和图6介绍,在目标终端执行算法模型的运行任务的过程中,为了保障算法模型的运行效率,调度服务器根据模型运行状态进行的再次调度实施例。
图5为本申请实施例提供的目标终端运行算法模型过程中服务器执行终端调度方法P500的流程示意图;其中,方法P500的执行主体为用于进行终端调度的服务器,如图1中服务器100。参考图5,方法P500包括:S510至S550。
在S510中,服务器向目标终端发送状态获取请求,以使目标终端生成算法模型的运行状态。
示例性的实施例中,参考图1,在终端104被确定为算法模型X的目标终端,且通过终端104运行算法模型X的过程中,服务器100定时向终端104发送状态获取请求,以确定算法模型X在终端104的执行情况。
在S520中,服务器第一预设时长内是否接收到所述算法模型的运行状态。
示例性的实施例中,可以通过第一预设时长内是否能够接收到目标终端的应答信息,来确定是否执行异常。其中,上述第一预设时长可以是10秒,当然也可以是其他时长,本申请实施例对此不做限定。
参考图5,服务器第一预设时长内未接收到所述算法模型的运行状态的情况下,说明终端存在异常,执行S530:根据所述终端集合中每个终端当前的运行状态,从所述终端集合中重新确定出目标终端,以用于运行所述算法模型。
仍以前述实施例为例,参考图1,服务器100向终端104最新一次发送终端获取请求后,10秒内没有接收到终端104应答信息,说明终端104发生设备离线或故障等异常情况。服务器100可以将当前终端104标记为不可用,同时把计算任务重新调度到其他可用终端。
在一种是实例中,S530中重新确定目标终端的实施例,可以参考步骤S220的具体实施方式,在此不再赘述。
需要说明的是,在另一种是实例中,为了保障算法模型的运行效率,在通过S530对算法模型的重新调度后,可以增加该算法模型的实时性等级,进而为算法模型匹配算力资源较丰富的目标终端。在本示例性的实施例中,S530的具体实施方式包括:
S530-1;增加被重新调度的算法算法模型的实时性等级;
S530-2:根据上述终端集合中每个终端当前的运行状态和该被重新调度的算法模型当前的实时性等级,从上述终端集合中重新确定出目标终端。
例如,算法模型a的实时性等级为低等级,并通过终端104执行该算法模型a的运行任务。由于服务器确定终端104执行该任务超时,则服务器对算法模型a进行重新调度。具体地,在算法模型a原来的实时性等级(低等级)的基础上,增加实时性等级,例如增加等级后算法模型a的实时性等级变为高等级。进一步地,确定可执行算法模型a的终端集合;确定终端集合中第j个终端运行算法模型a所要求的最低性能需求;在第j个终端当前的运行状态满足其所对应的最低性能需求,且该第j个终端对应的模型可用算力与算法模型a当前的实时性等级相匹配的情况下,通过该第j个终端运行上述算法模型a。可见,本申请实施例中对于重新调度的算法模型,可以增加该算法模型的实时性等级,进而为算法模型匹配算力资源较丰富的目标终端,起到提升算法模型运行效率的技术效果。
本申请实施例中,在服务器重新调度算法模型的过程中,在调度之前的目标终端获取运行该算法模型的中间态数据。进一步地,将上述中间态数据传递至调度后的目标终端,以使调度后的目标终端能够从断点处继续执行该算法模型的运行任务,以保障模型的运行效率。
继续参考图5,服务器第一预设时长内接收到所述算法模型的运行状态的情况下,说明终端正常运行算法模型,执行S540和S550。
在S540中,服务器接收到算法模型的运行状态为:模型运行正常且处于运行状态;以及,在S550中,确定目标终端运行算法模型的总时长是否超过第二预设时长。
本申请实施例中,为了保障模型运行效率,在确定终端正常运行算法模型的情况下,进一步判断模型运行是否超时。示例性的,可以根据该终端运行该算法模型的总时长是否超过第二预设时长。其中,上述第二预设时长可以取值为3分钟,可以理解的是,还可以根据模型类型不同而确定不同的预设时长,本申请实施例对此不做限定。
参考图5,在确定目标终端运行算法模型的总时长超过第二预设时长的情况下,执行S530:根据终端集合中每个终端当前的运行状态,从终端集合中重新确定出目标终端,以用于运行所述算法模型。在确定目标终端运行算法模型的总时长不超过第二预设时长的情况下,执行S510:服务器向目标终端发送状态获取请求,以使目标终端生成算法模型的运行状态。也就是说,如果终端运行模型超时,则终止模型在当前终端的运行并重新调度到其他终端进行运算;如果终端运行该模型没有超时,则执行下一轮如图5所示实施例,以跟进终端对算法模型的运行过程。
方法P500提供的实施例中,在通过目标终端运行算法模型的过程中,服务器跟进终端对算法模型的运行过程,及时发现终端异常或模型运行超时的情况。并在终端异常或模型运行超时的情况下,及时重新调度算法模型至新的目标终端。服务器通过灵活分配终端资源的方式,有效保障模型运行效率。
图6为本申请另一实施例提供的目标终端运行算法模型过程中服务器执行终端调度方法P600的流程示意图;其中,方法P600的执行主体为用于进行终端调度的服务器,如图1中服务器100。参考图6,方法P600包括:S610至S670。
其中,S610-S630的具体实施方式与S510-S530的具体实施方式相同,在此不再赘述。
在S640中,服务器接收到算法模型的运行状态为:模型运行正常且处于暂停状态。
服务器向终端发送状态获取请求后,终端向服务器反馈的模型运行状态信息还包括:模型运行正常,但是当前处于暂停状态。即终端运行该算法模型的过程中没有出现错误报告,但是当前终端可能正在执行前端任务,为了避免算法模型抢占前端任务的计算资源,因此算法模型的任务处于暂停状态。
在S650中,确定目标终端是否运行前端任务。
服务器在接收到模型运行正常且处于暂停状态的模型运行状态后,进一步确定该目标终端是否运行前端任务。具体地,若该目标终端当前没有运行前端任务,为了避免算法模型运行超时,可以执行S630对算法模型进行重新调度。其中关于重新调度的具体实施方式与S530相同,在此不再赘述。
在S660中,确定前端任务是否属于目标类型。
其中,上述目标类型为运行时长不超过第三预设时长的类型。例如上述目标类型为即时通信应用。其中,上述第三预设时长可以根据实际需求设定,例如1分钟。若前端任务属于目标类型的应用,说明前端任务执行时长较短。也就是说,在最多第三预设时长后该目标终端可以继续执行算法模型的运行,对算法模型的时效性影响较小。因此在确定前端任务属于目标类型的情况下,执行S670:保持通过该目标终端运行所述算法模型不变。在确定前端任务不属于目标类型的情况下,说明前端任务对算法模型的时效性影响较大,因此执行S630,以对算法模型进行重新调度。
在示例性的实施例中,服务器可以根据预设映射关系确定前端任务是否属于目标类型。一种实施例中,上述预设关系可以是预先设置的,如设置即时通信应用与目标类型存在映射,视频播放应用与非目标类型存在映射关系。另一种实施例中,还可以训练后的预测模型实现预测,例如将用户的个性化信息输入训练后的预测模型,根据模型输出的预测结果确定前端任务是否处于目标类型,本实施例有利于提升对前端任务的预测准确度。
方法P600提供的实施例中,在通过目标终端运行算法模型的过程中,服务器跟进终端对算法模型的运行过程,及时发现模型运行超时或终端资源被前端任务占用的情况。并在出现上述情况时,及时重新调度算法模型至新的目标终端。服务器通过灵活分配终端资源的方式,有效保障模型运行效率。
本申请实施例提供的方案中,服务器可以根据终端的运行状态,灵活地确定出为算法模型提供计算资源的目标终端,能够将不同算法模型分别调度至不同终端来运行,从而实现多个算法模型的分布式运行,有利于提升算法模型的运行效率,同时能够减少算法模型的运行成本。另外,服务器在对算法模型的执行任务进行调度的过程中,除了运行模型的最小性能需求、终端当前运行状态外,还可以将模型实时性等级作为参考因此,从而能够满足不同算法模型的实时性需求,以及实现终端资源的合理分配。具体地,在通过目标终端运行算法模型的过程中,服务器跟进终端对算法模型的运行过程,及时发现终端异常、模型运行超时模型运行超时或终端资源被前端任务占用等情况。并在终端异常或模型运行超时等情况下,及时重新调度算法模型至新的目标终端。服务器通过灵活分配终端资源的方式,有效保障模型运行效率。
上文通过图1至图6所提供的实施例对算法模型的运行方法在整体上进行了描述,以下通过图7至图9所提供的实施例对算法模型(如,AIGC模型)的具体运行方式进行更加具体地描述。
图7为本申请实施例提供的终端向调度服务器上报自身运行状态的交互示意图。参考图7,图7所示实施例包含终端102与服务器100之间的信息交互。
在S1中,对于加入算力共享池的终端,可以定时地将自身运行状态上报服务器。其中,在用户允许终端在闲时运行计算算法任务的情况下,可以通过与服务器交互的方式确定将该终端加入算力共享池。对于加入算力共享池的终端,定时启动本流程向服务器上报当前终端的状态。
在S2中,终端判断当前是否处于空闲状态。示例性的,确定终端自身当前是否正在运行前端应用。如果运行前端应用,说明终端当前没有处于空闲状态;如果未运行前端应用,说明终端当前处于空闲状态。
示例性的,在确定终端未处于空闲状态的情况下,执行S3:服务器100标记当前终端102为不可用状态。服务器根据终端返回状态把当前终端的状态更新为不可用状态,并基于结束终端开启的此次上报流程。
示例性的,在确定终端未处于空闲状态的情况下,执行S3:终端102获取自身当前的运行状态。示例性的如表1所示的参数,如当前可用内存、当前的可用带宽、当前可用NPU算力等。进一步地,终端将其所确定的上述状态信息发送至服务器。在S5中,服务器通过接收并存储终端状态信息。并在下次接收到关于该终端的状态信息之前,服务器将所存储的状态信息作为该终端最新状态信息,以便供后续计算任务调度使用。
图8为本申请实施例提供的调度服务器响应接收到算法模型运算任务初步进行终端调度的交互示意图。参考图8,本实施例中算法模型以AIGC模型为例进行说明。
在S1中,服务器100在接收到AIGC模型的运行任务时,启动调度流程。
在S2中,服务器100进行初始化。示例性的,服务器100根据该任务中AIGC模型的身份标识,获取可支持运行该AIGC模型的终端集合。具体实施方式如S210,在此不再赘述。
在S3中,服务器100在上述终端集合中确定出用于运行该AIGC模型的目标终端。具体实施方式可以参考S220对应的实施例,在此不再赘述。
在S4中,服务器100确定目标终端后,将AIGC模型及输入参数传送至该终端(如图8中示出的终端102)。进而有该目标终端启动该AIGC模型的计算任务。
在S5中,终端获取前端事件。在终端启动AIGC模型的计算后,终端开始进行本地前端事件的获取。具体可以用于在确定用户在本地启动前端应用的情况下,暂停或终止上述AIGC模型的计算任务,以避免算法模型抢占前端任务的计算资源,影响用户体验。
在S6中,服务器判断调度是否成功。如果计算任务在终端正常完成调度,则执行S7;如果计算任务在终端没有正常启动,如出现终端资源被其他应用占用等情况,服务器则执行S1,以重新启动调度流程。
在S7中,服务器获取终端执行算法模型的信息。服务器接收到计算任务在终端正常启动的返回后,服务器端持续获取计算任务运行状态,如,服务器定时向目标终端发送模型状态获取请求。相关详细测流程可参考图9对应的实施例。
图9是本申请实施例提供的算法模型运行过程中调度服务器进行重新调度的交互示意图。参考图9,本实施例中算法模型以AIGC模型为例进行说明。
在S1中,响应目标终端开时运行,本实施例中算法模型以AIGC模型为例进行说明,服务器100持续端持续获取计算任务运行状态。服务器100确定计算任务在终端102正常启动后,不间断地获取模型运行状态。如,在目标终端运行AIGC模型的过程中,定时向终端发送模型的状态获取请求,以及时确定AIGC模型在终端的执行情况。
在S2中,服务器100向终端102发送模型的状态获取请求后,终端102获取计算任务的运行状态并返回给服务器100。
在S3中,服务器判断终端是否返回响应信息。如果服务器100没有接收到终端102的返回的响应信息,说明终端102可能出现了异常(如,断网、关机等),则服务器100执行S11:重新发起调度流程,确定新的目标终端,并将上述AIGC模型重新调度至新的目标终端,以通过新的目标终端执行该AIGC模型的计算任务。其中,进行重新调度的具体实施方式在前述实施例中进行了详细介绍,在此不再赘述。
如果通过S3服务器100接收到终端102的返回的响应信息,则执行S4:服务器100判断AIGC模型的计算任务是否处于运行中。
如果通过S4服务器100确定AIGC模型的计算任务处于运行中,则执行S5:服务器100判断终端任务是否出现超时。其中,服务器判断终止执行AIGC模型任务是否超时的具体实施方式,也在前述实施例中进行了介绍,在此不再赘述。
如果通过S5服务器100确定终端运行AIGC模型没有超时,则执行S1,以继续定时获取AIGC模型在终端的运行状态;如果通过S5服务器100确定终端运行AIGC模型出现超时,则执行S10,通知终端终止运行AIGC模型的任务;并执行S11重新发起调度流程,确定新的目标终端,并将AIGC模型重新调度至新的目标终端,以通过新的目标终端执行该AIGC模型的计算任务。
如果通过S4服务器100确定AIGC模型的计算任务并未处于运行中,则执行S6:服务器100判断AIGC模型的计算任务是否已完成。如果通过S6确定AIGC模型的计算任务已完成,进入执行S7,服务器100结束S1中的定时获取计算任务运行状态,并确定结束关于该AIGC模型的计算任务。示例性的,可以生成关于该AIGC模型的计算结果,可以将计算结果返回至该AIGC模型计算任务的委托方。
如果通过S6确定AIGC模型的计算任务没有完成,则执行S8进行下一步判断。在S8中,服务器100判断AIGC模型的计算任务是否处于暂停状态。
如果服务器通过S8确定AIGC模型的计算任务在终端处于暂停状态,则执行S9:判断暂停中的任务是否可以继续执行。根据前述逻辑判断暂停中的计算任务是否可在本终端继续运行,如果可以继续运行进入S1,继续定时获取计算任务运行状态;如果不能继续运行则执行S10和S11。即服务器100通知终端102结束任务的执行,同时服务器100执行重新调度计算任务。
如果服务器通过S8确定AIGC模型的计算任务在终端未处于暂停状态,则可以确定该AIGC模型的计算任务既没有处于运行中,也没有运行完成,也没有被暂停,则可以推定该AIGC模型的计算任务出现了异常。则服务器执行S10以及S11。即服务器100通知终端102结束任务的执行,同时服务器100执行重新调度计算任务。
通过本技术方案可以充分利用终端的闲时算力完成算法模型(如,AIGC模型)的计算,能够节省运营成本。同时,在终端运行算法模型任务的过程中,调度服务器不间断地获取模型在终端的运行状态,在终端出现异常时或模型运行出现异常的情况下,对算法模型及时进行重新调度到其他终端,在确保计算任务能够正常完成的同时,还能够尽量提升模型运行效率。
上文结合图1至图9,详细描述了本申请的算法模型的运行方法实施例,下文结合图10,详细描述本申请的装置实施例。
图10为本申请实施例提供的算法模型的运行装置1000的结构示意图。该算法模型的运行装置1000配置于上述服务器(调度服务器)。如图10所示,算法模型的运行装置1000包括:终端集合确定模块1010以及目标终端确定模块1020;
上述终端集合确定模块1010,用于响应接收到算法模型的运行任务,从多个终端中,确定出可支持上述算法模型运行的终端集合;以及,上述目标终端确定模块1020,用于根据上述终端集合中每个终端当前的运行状态,从上述终端集合中确定出目标终端,以用于运行上述算法模型。
在一些实施例中,基于上述方案,上述算法模型的运行装置1000还包括:算力匹配模块以及模型运行模块;
其中,上述算力匹配模块用于:在上述目标终端确定模块1020根据上述终端集合中每个终端当前的运行状态,从上述终端集合中确定出目标终端之后,获取上述算法模型的实时性等级和每个上述目标终端对应的模型可用算力;将与上述实时性要求等级相匹配的模型可用算力,确定为目标可用算力;以及,上述模型运行模块用于:通过提供上述目标可用算力的目标终端,运行上述算法模型。
在一些实施例中,基于上述方案,上述算法模型的运行装置1000还包括:请求发送模块;
其中,上述请求发送模块用于:在通过上述目标终端运行上述算法模型的过程中,向上述目标终端发送状态获取请求,以使上述目标终端生成上述算法模型的运行状态;以及,上述目标终端确定模块1020还用于:在第一预设时长内没有接收到上述算法模型的运行状态的情况下,根据上述终端集合中每个终端当前的运行状态,从上述终端集合中重新确定出目标终端,以用于运行上述算法模型。
在一些实施例中,基于上述方案,上述运行状态包括:模型运行正常且处于运行状态;上述算法模型的运行装置1000还包括:确定模块;
其中,上述确定模块用于:在接收到上述算法模型的运行状态为模型运行正常且处于运行状态的情况下,确定上述目标终端运行上述算法模型的总时长;上述目标终端确定模块1020还用于:在上述总时长超过第二预设时长的情况下,根据上述终端集合中每个终端当前的运行状态,从上述终端集合中重新确定出目标终端,以用于运行上述算法模型。
在一些实施例中,基于上述方案,上述请求发送模块还用于:在上述总时长未超过上述第二预设时长的情况下,保持通过上述目标终端运行上述算法模型不变,并向上述目标终端发送状态获取请求,以使上述目标终端生成上述算法模型的运行状态。
在一些实施例中,基于上述方案,上述运行状态包括:模型运行正常且处于暂停状态;上述确定模块还用于:在接收到上述算法模型的运行状态为模型运行正常且处于暂停状态的情况下,确定上述目标终端是否运行前端任务;上述模型运行模块还用于:在确定上述目标终端运行前端任务且上述前端任务属于目标类型的情况下,保持通过上述目标终端运行上述算法模型不变,并向上述目标终端发送状态获取请求,以使上述目标终端生成上述算法模型的运行状态;其中,上述目标类型为运行时长不超过第三预设时长的类型。
在一些实施例中,基于上述方案,上述请求发送模块还用于:在确定上述目标终端运行前端任务且上述前端任务属于目标类型的情况下,至少间隔上述第三预设时长后向上述目标终端发送状态获取请求,以使上述目标终端生成上述算法模型的运行状态;上述目标终端确定模块1020还用于:若上述运行状态为模型运行正常且处于暂停状态,根据上述终端集合中每个终端当前的运行状态,从上述终端集合中重新确定出目标终端,以用于运行上述算法模型。
在一些实施例中,基于上述方案,上述目标终端确定模块1020还用于:在确定上述目标终端运行前端任务且上述前端任务不属于上述目标类型的情况下,根据上述终端集合中每个终端当前的运行状态,从上述终端集合中重新确定出目标终端,以用于运行上述算法模型。
在一些实施例中,基于上述方案,上述目标终端确定模块1020包括:等级调整子模块和重新确定子模块;其中,上述等级调整子模块用于:增加上述算法模型的实时性等级;以及,上述重新确定子模块用于:根据上述终端集合中每个终端当前的运行状态和上述算法模型当前的实时性等级,从上述终端集合中重新确定出目标终端。
在一些实施例中,基于上述方案,上述重新确定子模块具体用于:确定通过上述终端集合中第i个终端运行上述算法模型所要求的最低性能需求,其中i取值为不大于上述终端集合中终端总数的正整数;以及,在上述第i个终端当前的运行状态满足上述最低性能需求,且上述第i个终端对应的模型可用算力与上述算法模型当前的实时性等级相匹配的情况下,确定上述第i个终端。
在一些实施例中,基于上述方案,上述上述目标终端确定模块1020还具体用于:确定通过上述终端集合中第i个终端运行上述算法模型所要求的最低性能需求,其中i取值为不大于上述终端集合中终端总数的正整数;以及,在上述第i个终端当前的运行状态满足上述最低性能需求的情况下,确定上述第i个终端为上述目标终端。
应理解的是,装置实施例与算法模型的运行方法实施例可以相互对应,类似的描述可以参照方法实施例。为避免重复,此处不再赘述。具体地,图10所示的算法模型的运行装置可以执行上述算法模型的运行方法的实施例,并且算法模型的运行装置中的各个模块的前述和其它操作和/或功能分别为了实现主节点组中的节点对应的方法实施例,为了简洁,在此不再赘述。
本申请实施例提供的方案中,通过多个终端来提供计算资源,与上述多个终端关联的服务器可以通过调度上述多个终端来实现算法模型的运行。具体地,服务器在接收到算法模型的运行任务后,从用于提供计算资源的上述多个终端中,确定出可支持所述算法模型运行的终端集合;进一步地,根据该终端集合中每个终端当前的运行状态,从该终端集合中确定出目标终端;进而通过该目标终端运行上述算法模型。可见,服务器可以根据终端的运行状态,灵活地确定出为算法模型提供计算资源的目标终端,能够将不同算法模型分别调度至不同终端来运行,从而实现多个算法模型的分布式运行,有利于提升算法模型的运行效率,同时能够减少算法模型的运行成本。另外,服务器在对算法模型的执行任务进行调度的过程中,除了运行模型的最小性能需求、终端当前运行状态外,还可以将模型实时性等级作为参考因此,从而能够满足不同算法模型的实时性需求,以及实现终端资源的合理分配。
具体地,在通过目标终端运行算法模型的过程中,服务器跟进终端对算法模型的运行过程,及时发现终端异常、模型运行超时模型运行超时或终端资源被前端任务占用等情况。并在终端异常或模型运行超时等情况下,及时重新调度算法模型至新的目标终端。服务器通过灵活分配终端资源的方式,有效保障模型运行效率。
上文中结合附图从功能模块的角度描述了本申请实施例的装置。应理解,该功能模块可以通过硬件形式实现,也可以通过软件形式的指令实现,还可以通过硬件和软件模块组合实现。具体地,本申请实施例中的方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路和/或软件形式的指令完成,结合本申请实施例公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。可选地,软件模块可以位于随机存储器,闪存、只读存储器、可编程只读存储器、电可擦写可编程存储器、寄存器等本领域的成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法实施例中的步骤。
图11为本申请实施例提供的算法模型的运行系统1100的结构示意图。如图11所示,该算法模型的运行系统1100包括:服务器(调度服务器)100和用于提供计算资源,如终端102、终端104、终端106以及终端108等。其中,上述服务器100用于在接收到算法模型的运行任务的情况下,确定用于执行上述任务的目标终端,并将算法模型的运行任务调度至该目标终端。具体的,基于如图11所示出的算法模型的运行系统1100,可以执行上文所提供的算法模型的运行方法实施例。
图12是本申请实施例提供的电子设备1200的结构示意图。在一种是实例中,图12示出的电子设备1200可以是算法模型的运行系统中的服务器(调度服务器),并用于执行上述算法模型的运行方法;在另一种实施例中,该电子设备1200可以为算法模型的运行系统中的用于提供计算资源的终端。如图12所示,该电子设备1200可包括:
存储器1212和处理器1220,该存储器1212用于存储计算机程序1230,并将该程序代码1230传输给该处理器1220。换言之,该处理器1220可以从存储器1212中调用并运行计算机程序1230,以实现本申请实施例中的方法。
例如,该处理器1220可用于根据该计算机程序1230中的指令执行上述方法中的步骤。
在本申请的一些实施例中,该处理器1220可以包括但不限于:通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等等。
在本申请的一些实施例中,该存储器1212包括但不限于:
易失性存储器和/或非易失性存储器。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double DataRate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)。
在本申请的一些实施例中,该计算机程序1230可以被分割成一个或多个模块,该一个或者多个模块被存储在该存储器1212中,并由该处理器1220执行,以完成本申请算法模型的运行方法。该一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述该计算机程序1230在该电子设备中的执行过程。
如图12所示,该电子设备1200还可包括:收发器1240,该收发器1240可连接至该处理器1220或存储器1212。
其中,处理器1220可以控制该收发器1240与其他设备进行通信,具体地,可以向其他设备发送信息或数据,或接收其他设备发送的信息或数据。收发器1240可以包括发射机和接收机。收发器1240还可以进一步包括天线,天线的数量可以为一个或多个。
应当理解,该电子设备1200中的各个组件通过总线系统相连,其中,总线系统除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。
根据本申请的一个方面,提供了一种计算机存储介质,其上存储有计算机程序,该计算机程序被计算机执行时使得该计算机能够执行上述方法实施例的方法。或者说,本申请实施例还提供一种包含指令的计算机程序产品,该指令被计算机执行时使得计算机执行上述方法实施例的方法。
根据本申请的另一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方法实施例的方法。
换言之,当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例该的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。例如,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以该权利要求的保护范围为准。
Claims (13)
1.一种算法模型的运行方法,其特征在于,应用于服务器,所述方法包括:
响应接收到算法模型的运行任务,从多个终端中,确定出可支持所述算法模型运行的终端集合,所述算法模型为大模型;
根据所述终端集合中每个终端当前的运行状态,从所述终端集合中确定出目标终端,以用于运行所述算法模型;
所述方法还包括:
在通过所述目标终端运行所述算法模型的过程中,向所述目标终端发送状态获取请求,以使所述目标终端生成所述算法模型的运行状态;
所述运行状态包括:模型运行正常且处于暂停状态;在接收到所述算法模型的运行状态为模型运行正常且处于暂停状态的情况下,确定所述目标终端是否运行前端任务;
在确定所述目标终端运行前端任务且所述前端任务属于目标类型的情况下,保持通过所述目标终端运行所述算法模型不变,并至少间隔第三预设时长后向所述目标终端发送状态获取请求,以使所述目标终端生成所述算法模型的运行状态;其中,所述目标类型为运行时长不超过所述第三预设时长的类型;
在至少间隔所述第三预设时长后向所述目标终端发送状态获取请求之后,若所述运行状态为模型运行正常且处于暂停状态,根据所述终端集合中每个终端当前的运行状态,从所述终端集合中重新确定出目标终端,以用于运行所述算法模型。
2.根据权利要求1所述的方法,其特征在于,在所述根据所述终端集合中每个终端当前的运行状态,从所述终端集合中确定出目标终端之后,所述方法还包括:
获取所述算法模型的实时性等级和每个所述目标终端对应的模型可用算力;
将与所述实时性要求等级相匹配的模型可用算力,确定为目标可用算力;
通过提供所述目标可用算力的目标终端,运行所述算法模型。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在第一预设时长内没有接收到所述算法模型的运行状态的情况下,根据所述终端集合中每个终端当前的运行状态,从所述终端集合中重新确定出目标终端,以用于运行所述算法模型。
4.根据权利要求3所述的方法,其特征在于,所述运行状态包括:模型运行正常且处于运行状态;所述方法还包括:
在接收到所述算法模型的运行状态为模型运行正常且处于运行状态的情况下,确定所述目标终端运行所述算法模型的总时长;
在所述总时长超过第二预设时长的情况下,根据所述终端集合中每个终端当前的运行状态,从所述终端集合中重新确定出目标终端,以用于运行所述算法模型。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
在所述总时长未超过所述第二预设时长的情况下,保持通过所述目标终端运行所述算法模型不变,并向所述目标终端发送状态获取请求,以使所述目标终端生成所述算法模型的运行状态。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在确定所述目标终端运行前端任务且所述前端任务不属于所述目标类型的情况下,根据所述终端集合中每个终端当前的运行状态,从所述终端集合中重新确定出目标终端,以用于运行所述算法模型。
7.根据权利要求4或6所述的方法,其特征在于,所述根据所述终端集合中每个终端当前的运行状态,从所述终端集合中重新确定出目标终端,包括:
增加所述算法模型的实时性等级;
根据所述终端集合中每个终端当前的运行状态和所述算法模型当前的实时性等级,从所述终端集合中重新确定出目标终端。
8.根据权利要求7所述的方法,其特征在于,所述根据所述终端集合中每个终端当前的运行状态和所述算法模型当前的实时性等级,从所述终端集合中重新确定出目标终端,包括:
确定通过所述终端集合中第i个终端运行所述算法模型所要求的最低性能需求,其中i取值为不大于所述终端集合中终端总数的正整数;
在所述第i个终端当前的运行状态满足所述最低性能需求,且所述第i个终端对应的模型可用算力与所述算法模型当前的实时性等级相匹配的情况下,确定所述第i个终端。
9.根据权利要求1至6中任意一项所述的方法,其特征在于,所述根据所述终端集合中每个终端当前的运行状态,从所述终端集合中确定出目标终端,包括:
确定通过所述终端集合中第i个终端运行所述算法模型所要求的最低性能需求,其中i取值为不大于所述终端集合中终端总数的正整数;
在所述第i个终端当前的运行状态满足所述最低性能需求的情况下,确定所述第i个终端为所述目标终端。
10.一种算法模型的运行装置,其特征在于,配置于服务器,所述装置包括:
终端集合确定模块,用于响应于接收到算法模型的计算任务,从多个终端中,确定出可支持所述算法模型运行的终端集合,所述算法模型为大模型;
目标终端确定模块,用于根据所述终端集合中每个终端当前的运行状态,从所述终端集合中确定出目标终端,以用于运行所述算法模型;
所述装置还包括:
请求发送模块,用于在通过所述目标终端运行所述算法模型的过程中,向所述目标终端发送状态获取请求,以使所述目标终端生成所述算法模型的运行状态;
所述运行状态包括:模型运行正常且处于暂停状态;前端任务确定模块,用于在接收到所述算法模型的运行状态为模型运行正常且处于暂停状态的情况下,确定所述目标终端是否运行前端任务;所述模型运行模块还用于:在确定所述目标终端运行前端任务且所述前端任务属于目标类型的情况下,保持通过所述目标终端运行所述算法模型不变,并至少间隔第三预设时长后向所述目标终端发送状态获取请求,以使所述目标终端生成所述算法模型的运行状态;其中,所述目标类型为运行时长不超过所述第三预设时长的类型;以及,在至少间隔所述第三预设时长后向所述目标终端发送状态获取请求之后,若所述运行状态为模型运行正常且处于暂停状态,根据所述终端集合中每个终端当前的运行状态,从所述终端集合中重新确定出目标终端,以用于运行所述算法模型。
11.一种算法模型的运行系统,其特征在于,所述系统包括:服务器和与所述服务器关联的用于提供计算资源的多个终端;
其中,所述服务器用于执行权利要求1至9中任意一项所述的方法。
12.一种电子设备,其特征在于,所述电子设备包括:处理器和存储器;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述计算机程序以实现如上述权利要求1至9中任意一项所述的算法模型的运行方法。
13.一种计算机可读存储介质,其特征在于,用于存储计算机程序;
所述计算机程序使得计算机执行如上述权利要求1至9中任意一项所述的算法模型的运行方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311757597.XA CN117435354B (zh) | 2023-12-20 | 2023-12-20 | 算法模型的运行方法、装置、系统、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311757597.XA CN117435354B (zh) | 2023-12-20 | 2023-12-20 | 算法模型的运行方法、装置、系统、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117435354A CN117435354A (zh) | 2024-01-23 |
CN117435354B true CN117435354B (zh) | 2024-04-09 |
Family
ID=89558617
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311757597.XA Active CN117435354B (zh) | 2023-12-20 | 2023-12-20 | 算法模型的运行方法、装置、系统、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117435354B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110493828A (zh) * | 2019-08-05 | 2019-11-22 | 深圳传音控股股份有限公司 | 一种网络带宽分配方法、终端及计算机存储介质 |
CN112698848A (zh) * | 2020-12-31 | 2021-04-23 | Oppo广东移动通信有限公司 | 机器学习模型的下载方法、装置、终端及存储介质 |
CN112905350A (zh) * | 2021-03-22 | 2021-06-04 | 北京市商汤科技开发有限公司 | 任务调度方法及装置、电子设备和存储介质 |
CN114675967A (zh) * | 2022-03-22 | 2022-06-28 | 杭州海康威视系统技术有限公司 | 一种任务处理系统、方法、装置、电子设备及存储介质 |
CN116070691A (zh) * | 2022-09-30 | 2023-05-05 | 重庆长安汽车股份有限公司 | 一种车载终端处理器的算法模型的生成方法、装置、设备及介质 |
CN116471277A (zh) * | 2023-04-07 | 2023-07-21 | 西安万像电子科技有限公司 | 算力分配方法、装置、服务器和计算机可读存储介质 |
CN116861070A (zh) * | 2023-05-26 | 2023-10-10 | 中国银行股份有限公司 | 推荐模型的处理方法、装置、计算机设备和存储介质 |
CN116991585A (zh) * | 2023-08-11 | 2023-11-03 | 上海数珩信息科技股份有限公司 | 一种ai算力自动调度方法、装置及介质 |
-
2023
- 2023-12-20 CN CN202311757597.XA patent/CN117435354B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110493828A (zh) * | 2019-08-05 | 2019-11-22 | 深圳传音控股股份有限公司 | 一种网络带宽分配方法、终端及计算机存储介质 |
CN112698848A (zh) * | 2020-12-31 | 2021-04-23 | Oppo广东移动通信有限公司 | 机器学习模型的下载方法、装置、终端及存储介质 |
CN112905350A (zh) * | 2021-03-22 | 2021-06-04 | 北京市商汤科技开发有限公司 | 任务调度方法及装置、电子设备和存储介质 |
CN114675967A (zh) * | 2022-03-22 | 2022-06-28 | 杭州海康威视系统技术有限公司 | 一种任务处理系统、方法、装置、电子设备及存储介质 |
CN116070691A (zh) * | 2022-09-30 | 2023-05-05 | 重庆长安汽车股份有限公司 | 一种车载终端处理器的算法模型的生成方法、装置、设备及介质 |
CN116471277A (zh) * | 2023-04-07 | 2023-07-21 | 西安万像电子科技有限公司 | 算力分配方法、装置、服务器和计算机可读存储介质 |
CN116861070A (zh) * | 2023-05-26 | 2023-10-10 | 中国银行股份有限公司 | 推荐模型的处理方法、装置、计算机设备和存储介质 |
CN116991585A (zh) * | 2023-08-11 | 2023-11-03 | 上海数珩信息科技股份有限公司 | 一种ai算力自动调度方法、装置及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117435354A (zh) | 2024-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11146502B2 (en) | Method and apparatus for allocating resource | |
CN110858843B (zh) | 业务请求处理方法、装置及计算机可读存储介质 | |
CN109376011B (zh) | 虚拟化系统中管理资源的方法和装置 | |
CN108920120B (zh) | 一种信息显示控制方法及装置 | |
CN112465615B (zh) | 账单数据的处理方法、装置及系统 | |
CN106331783B (zh) | 一种资源分配方法、装置和智能电视系统 | |
CN112492372B (zh) | 评论消息的显示方法、装置、电子设备、系统及存储介质 | |
CN102624634B (zh) | 一种在客户端控制网络带宽的方法及装置 | |
CN102523422A (zh) | 多方通信控制系统、多方通信系统及多方通信处理方法 | |
CN115278648A (zh) | 业务载体切换方法及装置 | |
KR20180088880A (ko) | 네트워크 이용을 개선하기 위한 네트워크 지원 프로토콜 사용 | |
CN117435354B (zh) | 算法模型的运行方法、装置、系统、电子设备及存储介质 | |
CN115550354A (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
CN113138812A (zh) | 航天器任务调度方法及装置 | |
CN114816744A (zh) | 内存管控方法、装置、存储介质及电子设备 | |
CN114416013A (zh) | 数据发送方法、装置、电子设备及计算机可读存储介质 | |
CN114189567A (zh) | 一种智能门禁系统管理方法、装置及电子设备 | |
CN113676504A (zh) | 一种低功耗分布式调用方法、设备及装置 | |
CN117435350B (zh) | 算法模型的运行方法、装置、终端以及存储介质 | |
CN111367853A (zh) | 数据传输方法、装置、设备及计算机可读存储介质 | |
CN112653717A (zh) | 一种多云协作分布式系统和应用分发的方法 | |
CN113747100B (zh) | 音视频通话方法、装置、存储介质及电子设备 | |
CN115037753B (zh) | 消息通知方法和系统 | |
CN114286040B (zh) | 布控管理方法、装置、系统及存储介质 | |
CN111935313B (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 |