CN116010067A - 模型推理方法、云平台、设备和存储介质 - Google Patents

模型推理方法、云平台、设备和存储介质 Download PDF

Info

Publication number
CN116010067A
CN116010067A CN202111223481.9A CN202111223481A CN116010067A CN 116010067 A CN116010067 A CN 116010067A CN 202111223481 A CN202111223481 A CN 202111223481A CN 116010067 A CN116010067 A CN 116010067A
Authority
CN
China
Prior art keywords
model
sub
instance
instances
reasoning
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111223481.9A
Other languages
English (en)
Inventor
练韵文
李亿
刘畅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Cloud Computing Technologies Co Ltd
Original Assignee
Huawei Cloud Computing Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Cloud Computing Technologies Co Ltd filed Critical Huawei Cloud Computing Technologies Co Ltd
Priority to CN202111223481.9A priority Critical patent/CN116010067A/zh
Priority to PCT/CN2022/093378 priority patent/WO2023065656A1/zh
Publication of CN116010067A publication Critical patent/CN116010067A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Stored Programmes (AREA)

Abstract

本申请提供了一种模型推理的方法、云平台、设备和存储介质,属于人工智能技术领域。该方法包括:获取模型切分得到的第一子模型和第二子模型,设置第一实例集,第一实例集包括分别加载第一子模型的多个第一实例,设置第二实例集,第二实例集包括分别加载第二子模型的多个第二实例,为第一实例集设置第一负载均衡器,第一负载均衡器用于将多个推理样本分发至第一实例集中的多个第一实例进行模型推理,以产生多个第一推理结果,为第二实例集设置第二负载均衡器,第二负载均衡器用于将该多个第一推理结果分发至第二实例集中的多个第二实例进行模型推理。采用本申请,每个子模型由多个实例加载,使得模型推理的可靠性较高。

Description

模型推理方法、云平台、设备和存储介质
技术领域
本申请涉及人工智能技术领域,特别涉及一种模型推理方法、云平台、设备和存储介质。
背景技术
随着人工智能技术的发展,推理模型(如深度学习模型)的参数越来越多,使得推理模型占用的内存比较大,进而使得推理模型无法部署到一个计算卡上。
相关技术中,将推理模型切分为多个子模型,将每个子模型部署在不同的计算卡上。在对一个推理样本进行推理时,将该推理样本输入第一个子模型,第一个子模型对该推理样本进行推理处理,获得处理结果,将该处理结果输入第二个推理模型进行推理处理,依此类推,获得该推理样本的推理结果。这样,在某个计算卡故障时,会导致无法输出推理样本的推理结果。
发明内容
本申请提供了一种模型推理方法、云平台、设备和存储介质,能够使得模型推理的可靠性较高。
第一方面,本申请提供了一种模型推理的方法,该方法应用于云平台,该方法包括:获取租户输入的多个推理样本,获取模型切分得到的第一子模型和第二子模型,该第二子模型的输入数据为该第一子模型的输出数据。设置第一实例集,该第一实例集包括分别加载该第一子模型的多个第一实例。设置第二实例集,该第二实例集包括分别加载该第二子模型的多个第二实例;为该第一实例集设置第一负载均衡器,该第一负载均衡器用于将该多个推理样本分发至该第一实例集中的该多个第一实例进行模型推理,以产生多个第一推理结果。为该第二实例集设置第二负载均衡器,该第二负载均衡器用于将该多个第一推理结果分发至该第二实例集中的该多个第二实例进行模型推理。
本申请所示的方案,云平台获取模型切分得到的第一子模型和第二子模型,第二子模型的输入数据为第一子模型的输出数据。云平台能够设置第一实例集和第二实例集,第一实例集中的每个第一实例分别加载第一子模型,第二实例集中的每个第二实例分别加载第二子模型。云平台还能为第一实例集设置第一负载均衡器,并且为第二实例集设置第二负载均衡器。在使用模型对租户输入的多个推理样本进行推理时,第一负载均衡器将多个推理样本分发至第一实例集中的多个第一实例进行模型推理,该多个第一实例加载第一子模型对多个推理样本进行推理,获得多个第一推理结果。第二负载均衡器将多个第一推理结果分发至第二实例集中的多个第二实例进行模型推理,该多个第二实例加载第二子模型对多个第一推理结果进行推理。这样,对于任一子模型,多个实例分别加载该子模型,即使某个实例故障后,也能使用其它实例,使得模型推理的可靠性较高。
在一种可能的实现方式中,该设置第一实例集,包括:提供第一配置接口,该第一配置接口用于获取租户输入的第一配置指令,该第一配置指令用于指示该第一实例集的实例数量和/或实例规格,根据该租户输入的第一配置指令创建该第一实例集。该设置第二实例集,包括:提供第二配置接口,该第二配置接口用于获取该租户输入的第二配置指令,该第二配置指令用于指示该第二实例集的实例数量和/或实例规格,根据该租户输入的第二配置指令设置该第二实例集。
本申请所示的方案,云平台能够提供第一配置接口,通过第一配置接口,获得租户输入的第一配置指令,第一配置指令能够指示第一实例集的实例数量和/或实例规格,实例数量为第一实例的数量,实例规格指示运行第一实例的硬件规格。云平台使用第一实例集的实例数量,创建该实例数量个第一实例,或者云平台使用第一实例集的实例规格,创建该实例规格的多个第一实例,或者云平台使用第一实例集的实例数量和实例规格,创建该实例数量个该实例规格的第一实例。云平台能够提供第二配置接口,通过第二配置接口,获得租户输入的第二配置指令,第二配置指令能够指示第二实例集的实例数量和/或实例规格,实例数量为第二实例的数量,实例规格指示运行第二实例的硬件规格。云平台使用第二实例集的实例数量,创建该实例数量个第二实例,或者云平台使用第二实例集的实例规格,创建该实例规格的多个第二实例,或者云平台使用第二实例集的实例数量和实例规格,创建该实例数量个该实例规格的第二实例。这样,租户可以配置实例数量和/或实例规格,使得加载子模型的实例的数量更合适,而且使得运行加载子模型的实例的硬件规格与子模型更匹配,进而使得模型的并行推理能力更高。
在一种可能的实现方式中,该获取模型切分得到的第一子模型和第二子模型,包括:提供第三配置接口,该第三配置接口用于获取该租户输入的切分指令,根据该租户输入的切分指令,将该模型切分为该第一子模型和该第二子模型。
本申请所示的方案,云平台还能够提供第三配置接口,租户可以通过第三配置接口输入切分指令。云平台能够通过第三配置接口获得该切分指令,对模型进行切分,获得第一子模型和第二子模型。这样,租户还能够控制切分模型,使得模型切分更准确。
在一种可能的实现方式中,该获取模型切分得到的第一子模型和第二子模型之前,包括:提供模型获取接口,该模型获取接口用于获取该租户上传的该模型。这样,模型可以是由租户上传的,使得更便于对租户输入的多个推理样本进行推理。
在一种可能的实现方式中,该方法还包括:提供第四配置接口,该第四配置接口用于获取该租户上传的扩容条件,该扩容条件指示当该第二实例集的平均处理时长与第一实例集的平均处理时长的差值大于或等于目标数值,则增加该第二实例集中的实例数量。当该扩容条件满足时,增加该第二实例集中的实例数量。
本申请所示的方案,云平台还提供第四配置接口,租户可以通过该第四配置接口上传扩容条件。云平台确定第二实例集的平均处理时长与第一实例集的平均处理时长的差值大于或等于目标数值时,确定满足扩容条件,增加第二实例集中第二实例的数目。这样,基于相邻实例集的平均处理时长,动态调整处理较慢的实例的数量,不仅能够使得模型推理的并行能力更高,而且能够使得资源利用率更高。
第二方面,本申请提供了一种云平台,该云平台包括第一个或多个模块,该一个或多个模块用于实现上述第一方面或第一方面任一种可选方式所提供的模型推理的方法。
第三方面,本申请提供了一种模型推理的设备,该设备包括处理器和存储器,该存储器中存储有至少一条计算机指令,该计算机指令由处理器加载并执行以实现上述第一方面或第一方面任一种可选方式所提供的模型推理的方法。
第四方面,本申请提供了一种计算机可读存储介质,该存储介质中存储有至少一条计算机指令,该计算机指令由模型推理的设备的处理器加载并执行以实现上述第一方面或第一方面任一种可选方式所提供的模型推理的方法。
第五方面,本申请提供了一种计算机程序产品,该计算机程序产品包括至少一条计算机指令,该计算机程序产品在模型推理的设备上运行时,使得该设备实现上述第一方面或第一方面任一种可选方式所提供的模型推理的方法。
附图说明
图1是本申请一个示例性实施例提供的云平台与租户交互的示意图;
图2是本申请一个示例性实施例提供的模型推理的设备的结构示意图;
图3是本申请一个示例性实施例提供的模型推理的方法的流程示意图;
图4是本申请一个示例性实施例提供的配置子模型的实例数量的示意图;
图5是本申请一个示例性实施例提供的配置子模型的实例数量和实例规格的示意图;
图6是本申请一个示例性实施例提供的模型推理的框架示意图;
图7是本申请一个示例性实施例提供的模型推理的框架示意图;
图8是本申请一个示例性实施例提供的配置子模型分片的实例数量和实例规格的示意图;
图9是本申请一个示例性实施例提供的模型推理的框架示意图;
图10是本申请一个示例性实施例提供的模型推理的流程的示意图;
图11是本申请一个示例性实施例提供的云平台的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
随着人工智能技术的发展,推理模型的参数越来越多,使得运行推理模型所需的内存比较大,进而使得推理模型无法部署到一个计算卡上。在一种相关技术中,将推理模型切分为多个子模型,将每个子模型部署在不同的计算卡上。在对一个推理样本进行推理时,是将该推理样本输入第一子模型,第一个子模型对该推理样本进行推理处理,获得处理结果,将该处理结果输入第二个推理模型进行推理处理,依此类推,获得该推理样本的推理结果。这样,在某个计算卡故障时,会导致无法输出推理样本的推理结果。在另一种相关技术中,为了进行高并发的推理,将多个子模型所部署的计算卡作为一个推理业务实例,部署多个推理业务实例,这样,由于存在多个推理业务实例,所以可以同时对多个推理样本进行推理,但是还会出现由于计算卡故障而导致一个推理业务实例异常,进而导致无法输出推理样本的推理结果。
然而本申请实施例中,每个子模型由多个实例加载,而且还设置有负载均衡器,所以即使加载子模型的某个实例故障后,负载均衡器也能将子模型的输入数据调度至加载该子模型的其它实例,使得模型推理的可靠性较高。
下面描述本申请实施例的应用场景,本申请实施例的模型推理方法能够应用于任意模型推理过程,该模型是能被切分成多个部分的推理模型,切分成的每个部分可以称为是子模型,切分成的多个部分依次对推理样本进行处理,获得推理样本的推理结果。本申请实施例对模型的具体结构不做限定,如该模型是深度学习模型等。本申请实施例对推理样本也不做限定,如推理样本为图片、文本等。
下面描述本申请实施例的执行主体。
本申请实施例中模型推理方法的执行主体可以是云平台,云平台也能称为是云计算平台。图1是本申请实施例提供的一种云平台与租户交互的示意图。如图1所示,云平台是云计算模式下利用基础资源向租户提供云服务的实体。云平台包括云服务提供商拥有的大量基础资源,该基础资源包括计算资源、存储资源和网络资源等,该计算资源可以是大量的计算设备,如服务器、计算卡等,计算卡可以插在服务器上。租户可以与云平台进行交互,使用云平台中的基础资源,对推理样本进行推理。例如,租户向云平台上传多个推理样本,租户配置实例数量和实例规格等。租户指在云平台中租用基础资源的用户。
可选的,云平台还能够动态对实例集进行扩容,即增加实例集中实例的数量。
可选的,云平台还能够监控实例的运行状态和负载情况,运行状态包括故障和正常,负载情况包括空闲和忙碌。该运行状态和负载情况用于云平台为实例分发输入数据。
示例性的,模型推理方法的执行主体具体可以是云平台中的模型推理的设备200,该设备200可以是云平台中的服务器等,图2提供了设备200的硬件结构示意图。如图2所示,设备200可选地由一般性的总线体系结构来实现。设备200包括至少一个处理器201、通信总线202、存储器203以及至少一个网络接口204。
处理器201例如是通用中央处理器(central processing unit,CPU)、网络处理器(network processer,NP)、图形处理器(graphics processing unit,GPU)、神经网络处理器(neural-network processing units,NPU)、数据处理单元(data processing unit,DPU)、微处理器或者一个或多个用于实现本申请方案的集成电路。例如,处理器201包括专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。PLD例如是复杂可编程逻辑器件(complexprogrammable logic device,CPLD)、现场可编程逻辑门阵列(field-programmable gatearray,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合。
通信总线202用于在上述组件之间传送信息。通信总线202可以分为地址总线、数据总线、控制总线等。为便于表示,图2中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器203例如是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其它类型的静态存储设备,又如是随机存取存储器(random access memory,RAM)或者可存储信息和指令的其它类型的动态存储设备,又如是电可擦可编程只读存储器(electrically erasable programmable read-only Memory,EEPROM)、只读光盘(compactdisc read-only memory,CD-ROM)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器203例如是独立存在,并通过通信总线202与处理器201相连接。存储器203也可以和处理器201集成在一起。
可选地,存储器203用于保存后文中提到的推理样本、模型等。当设备200需要使用模型时,处理器201访问存储器203,获得存储器203中保存的模型。
网络接口204使用任何收发器一类的装置,用于与其它设备或通信网络通信。网络接口204包括有线网络接口,还可以包括无线网络接口。其中,有线网络接口例如可以为以太网接口。以太网接口可以是光接口,电接口或其组合。无线网络接口可以为无线局域网(wireless local area networks,WLAN)接口,蜂窝网络的网络接口或其组合等。
在具体实现中,作为一种示例,处理器201可以包括一个或多个CPU。
在具体实现中,作为一种示例,设备200可以包括多个处理器。这些处理器中的每一个可以是一个单核处理器(single-CPU),也可以是一个多核处理器(multi-CPU)。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(如计算机程序指令)的处理核。
在一些实施例中,存储器203用于存储执行本申请中模型推理的程序代码2031,处理器201执行存储器203中存储的程序代码2031。也即是,设备200可以通过处理器201以及存储器203中的程序代码2031,来实现方法实施例提供的模型推理方法。
以上介绍了云平台以及模型推理的硬件设备,下面介绍本申请实施例中的模型推理方法。图3示出了模型推理方法的流程。
步骤301,获取租户输入的多个推理样本。
其中,推理样本可以是图像、文本等,本申请实施例中对推理样本的具体内容不做限定。
在本实施例中,租户请求云平台对多个推理样本进行推理时,云平台提供了推理样本输入界面,在推理样本输入界面中提供有推理样本的输入接口,该输入接口可以是输入框。租户可以在该输入接口中输入多个推理样本的存储地址,向云平台输入多个推理样本。云平台获取到租户输入的多个推理样本。
步骤302,获取模型切分得到的第一子模型和第二子模型,第二子模型的输入数据为第一子模型的输出数据。
其中,模型是推理模型,该推理模型用于对推理样本进行推理,如该推理模型是深度学习模型等。该模型可以是租户上传的模型,也可以是云平台提供的模型。
在本实施例中,云平台获取模型,对该模型进行切分,获得多个子模型,该多个子模型中包括第一子模型和第二子模型。或者,云平台获取用户输入的多个子模型,多个子模型中包括第一子模型和第二子模型,用户输入的多个子模型由用户自行切分。第一子模型的输入数据为推理样本,第一子模型的输出数据为第二子模型的输入数据。
步骤303,设置第一实例集,第一实例集包括分别加载第一子模型的多个第一实例。
其中,每个实例是能够加载子模型进行计算的进程,该进程运行在云平台分配的计算组件上,该计算组件包括处理资源、存储资源和网络资源等。在步骤303中第一实例是能够加载第一子模型进行计算的进程。
在本实施例中,在获得第一子模型后,云平台创建多个第一实例(可以认为是启动多个进程),多个第一实例分别用于加载第一子模型。该多个第一实例组成第一实例集。
步骤304,设置第二实例集,第二实例集包括分别加载第二子模型的多个第二实例。
其中,第二实例是能够加载第二子模型进行计算的进程。
在本实施例中,在获得第二子模型后,云平台创建多个第二实例(可以认为是启动多个进程),多个第二实例分别用于加载第二子模型。该多个第二实例组成第二实例集。
步骤305,为第一实例集设置第一负载均衡器,第一负载均衡器用于将多个推理样本分发至第一实例集中的多个第一实例进行模型推理,以产生多个第一推理结果。
其中,第一负载均衡器为软件程序或者硬件。
在本实施例中,云平台能够为第一实例集接入第一负载均衡器,使得第一负载均衡器能向第一实例集输入推理样本。
在对任一推理样本进行推理时,该推理样本被输入至第一负载均衡器。第一负载均衡器接收到该推理样本,按照负载均衡原则,将该推理样本分发至第一实例集中空闲的第一实例,该第一实例加载第一子模型对该推理样本进行推理,获得该推理样本的第一推理结果。第一实例集连接有第二负载均衡器,第二负载均衡器与第一负载均衡器相同或者不相同。第一实例向第二负载均衡器发送该推理样本的第一推理结果。
步骤306,为第二实例集设置第二负载均衡器,第二负载均衡器用于将多个第一推理结果分发至第二实例集中的多个第二实例进行模型推理。
其中,第二负载均衡器为软件程序或者硬件。
在本实施例中,云平台为第二实例集接入第二负载均衡器,使得第二负载均衡器能向第二实例集输入第一推理结果。第二负载均衡器接收第一实例发送的第一推理结果,按照负载均衡原则,将该第一推理结果分发至第二实例集中空闲的第二实例进行推理。该第二实例加载第二子模型对该第一推理结果进行推理,获得目标推理结果。
若模型仅被切分为第一子模型和第二子模型,则目标推理结果为推理样本的最终推理结果。若模型还包括除第一子模型和第二子模型之外的子模型,则第二实例向下一个负载均衡器发送目标推理结果。该下一个负载均衡器接收到目标推理结果,按照负载均衡原则,将目标推理结果分发至下一个实例集中的实例进行推理,该实例加载下一个子模型对目标推理结果进行推理,获得推理结果,依此类推,直至最后一个子模型所运行的实例,输出推理样本的推理结果。
需要说明的是,各个实例集接入的负载均衡器可以是通过软件程序实现,也可以是通过硬件实现,本申请实施例不做限定。另外,各个实例集接入的负载均衡器可以相同,也可以不相同。在各个实例集接入的负载均衡器相同时,各个负载均衡器基于模型切分后的子模型的拓扑关系,将接收到的第i子模型输出的推理结果,准确输入至第i+1子模型,i为大于或等于1的正整数。子模型的拓扑关系记录了各个子模型之间的连接关系。
还需要说明的是,在每个实例所运行的计算组件中可选的运行有负载均衡代理,负载均衡代理用于将每个实例上运行的子模型输出的结果发送给负载均衡器,该负载均衡器是为下一个实例集设置的负载均衡器,该下一个实例集为该子模型相邻的下一个子模型运行的实例集。这样,实例只负责加载子模型对推理样本进行处理即可,而不需要关心推理结果的输出处理过程。
基于图3所示的流程,对于任一子模型,多个实例分别加载该子模型,即使某个实例故障后,也能使用其它实例,使得模型推理的可靠性较高。
针对图3的流程需要说明的是,上述各个步骤的执行顺序在不违背正常模型推理逻辑的情况下,能够互换。例如,步骤303和步骤304可以互换顺序,步骤301可以在步骤304后执行。
接下来对图3所示的流程进行具体说明以及对图3的所示的流程进行补充说明。
在一种可能的实现方式中,模型由租户选择。在步骤302之前,租户向云平台上传模型。示例性的,租户在使用云平台进行推理时,通过自己使用的终端显示模型选择界面,模型选择界面中包括模型输入接口。租户可以在模型输入接口中输入模型,使得云平台获取到租户上传的模型。或者租户在使用云平台进行推理时,通过自己使用的终端显示模型选择界面,模型选择界面中包括云平台提供的各种模型。租户可以在各种模型中选择模型,使得云平台获取到租户选择的模型。
在步骤302中,有多种方式能够对模型进行切分,如下给出两种可行的方式,方式一为租户指示对模型进行切分,方式二为云平台对模型进行切分,租户不参与。具体的:
方式一,云平台提供第三配置接口,第三配置接口用于获取租户输入的切分指令,根据租户输入的切分指令,将模型切分为第一子模型和第二子模型。
在本实施例中,云平台向租户提供第三配置接口,第三配置接口可以是输入框。例如,云平台向租户提供模型切分界面,模型切分界面中包括输入框。租户可以在输入框中输入切分指令,该切分指令指示模型的切分规则。例如,该切分规则是每个子模型包括的模型的层数。云平台获取到切分规则后,按照该切分规则,对模型进行切分,获得多个子模型,多个子模型中包括第一子模型和第二子模型。
可选的,云平台向租户提供模型切片界面,模型切分界面中提供了多种切分规则。租户可以在多种切分规则中选择一种,云平台获取到租户选择的切分规则。
方式二,云平台基于预设的切分规则,对模型进行切分,获得第一子模型和第二子模型。
在本实施例中,预设的切分规则可以是切分后的子模型占用的存储空间接近,且每个子模型占用的存储空间不超过第一数值。
云平台使用预设的切分规则对模型进行切分,使得切分后的每个子模型占用的存储空间接近,且占用的存储空间不超过第一数值。例如,模型为深度学习模型,深度学习模型包括多层模型,切分后的子模型可以包括至少一层模型,或者切分后的子模型也可以包括一层模型中的一部分。第一数值为技术人员预设的经验值。
以上是两种切分模型的可能方式,本申请实施例不做限定。
在步骤303中,有多种方式设置第一实例集,如下给出两种可行的方式。方式一为租户提供第一实例的实例数量和/或第一实例的实例规格,供云平台设置第一实例集,方式二为云平台基于一定原则设置第一实例集。具体的:
方式一,提供第一配置接口,第一配置接口用于获取租户输入的第一配置指令,第一配置指令用于指示第一实例集的实例数量和/或实例规格,根据租户输入的第一配置指令创建第一实例集。
其中,实例数量指设置的实例的数量,例如,实例数量为3,设置的实例为3个。实例规格指示运行第一实例的硬件规格。例如,实例规格为GPU,说明运行实例的硬件规格为GPU,再例如,实例规格为NPU,说明运行实例的硬件规格为NPU。此处硬件规格也能称为是硬件资源。
在本实施例中,云平台切分模型获得第一子模型后,云平台向租户反馈实例配置界面,在实例配置界面中包括第一配置接口,第一配置接口可以是输入框。租户在该输入框中输入实例数量,云平台获取该实例数量,云平台创建该实例数量个第一实例,每个第一实例分别加载第一子模型。例如,实例数量为3,云平台创建3个第一实例,3个第一实例分别部署在3个计算组件上,每个计算组件包括租户配置的计算卡、配套的CPU和内存等必须硬件资源。或者租户在该输入框中输入实例规格,云平台获取该实例规格,将第一实例部署在该实例规格的计算组件上。例如,租户输入的实例规格为GPU,将第一实例部署在硬件规格为GPU的计算组件上。在租户输入实例规格而没有输入实例数量的情况下,云平台可以创建预设数量个第一实例,预设数量可以是技术人员设置的经验值。或者租户在该输入框中输入实例数量和实例规格,云平台获取该实例数量和实例规格,创建该实例数量个该实例规格的第一实例,每个第一实例上分别加载第一子模型。例如,实例数量为3,实例规格为NPU,云平台创建3个第一实例,3个第一实例部署分别在硬件规格为NPU的计算组件上。
方式二,云平台基于第一子模型,创建第一实例集。
在本实施例中,云平台获取预设的实例数量,创建该实例数量个第一实例,每个第一实例分别加载第一子模型。或者,云平台获取预设的实例数量和预设的实例规格,创建该实例数量个该实例规格的第一实例。
在步骤304中,有多种方式设置第二实例集,如下给出两种可行的方式。方式一为租户提供第二实例的实例数量和/或第二实例的实例规格,供云平台设置第二实例集,方式二为云平台基于一定原则设置第二实例集。具体的:
方式一,提供第二配置接口,第二配置接口用于获取租户输入的第二配置指令,第二配置指令用于指示第二实例集的实例数量和/或实例规格,根据租户输入的第二配置指令设置第二实例集。
在本实施例中,云平台切分模型获得第二子模型后,云平台向租户反馈实例配置界面,在实例配置界面中包括第二配置接口,第二配置接口可以是输入框。租户在该输入框中输入实例数量,云平台获取该实例数量,云平台创建该实例数量个第二实例,每个第二实例上分别加载第二子模型。或者租户在该输入框中输入实例规格,云平台获取该实例规格,将第二实例部署在该实例规格的计算组件上。在租户输入实例规格而没有输入实例数量的情况下,云平台可以创建预设数量个第二实例,预设数量可以是技术人员设置的经验值。或者租户在该输入框中输入实例数量和实例规格,云平台获取该实例数量和实例规格,创建该实例数量个该实例规格的第二实例,每个第二实例上分别加载第二子模型。
方式二,云平台基于第二子模型,创建第二实例集。
在本实施例中,云平台获取预设的实例数量,创建该实例数量个第二实例,每个第二实例分别加载第二子模型。或者,云平台获取预设的实例数量和预设的实例规格,创建该实例数量个该实例规格的第二实例。
需要说明的是,在步骤303的两种处理方式中,以及在步骤304的两种处理方式中,租户在输入实例数量时,租户可以使用根据经验值输入实例数量,租户在输入实例规格时,可以基于子模型的计算类型选择实例规格。例如,在子模型的计算类型为高精度的复杂计算类型时,实例规格为CPU,在子模型的计算类型为矩阵计算类型时,实例规格为NPU。或者,租户在输入实例规格时,也可以基于子模型的算力诉求选择实例规格。例如,对于高算力诉求的子模型,选择的实例规格为GPU或者NPU,对于低算力诉求的子模型,选择的实例规格为CPU。在云平台中CPU资源是服务器的CPU资源,云平台中CPU资源较多,租户可以选择更多的CPU并发处理。
还需要说明的是,在步骤303和步骤304的描述中,云平台切分模型获得第一子模型后,向租户反馈实例配置界面,并且切分模型获得第二子模型后,向租户反馈实例配置界面。云平台也可以同时提供各个子模型对应的配置接口,示例性的,云平台切分模型获得多个子模型后,向租户反馈实例配置界面,在该实例配置界面中包括各个子模型对应的配置接口,租户可以在各个子模型对应的配置接口中输入实例数量,和/或实例规格。图4示出了实例配置界面的示意图,该实例配置界面中各个子模型对应有配置接口,配置接口是“加”和“减”选项,租户可以通过触发“加”选项,增加子模型对应的实例数量,通过触发“减”选项,减少子模型对应的实例数量,并且云平台还可以在实例配置界面中显示实例数量,显示实例数量可以通过显示图形标记的形式,也可以是通过数字的形式。图5示出了实例配置界面的示意图,如图5所示,该实例配置界面中各个模型对应有配置接口,配置接口是输入框,配置接口中提供了云平台提供的多种实例规格(如CPU、NPU和GPU等),供租户选择,在图5中,租户为第一子模型选择CPU,为第二子模型选择GPU。租户在配置接口中输入实例数量,并且在配置接口中选择实例规格。可选的,在租户将光标移动至各种实例规格时,还显示提示消息,该提示消息用于指示光标所在的实例规格的详细信息,该详细信息可以是该实例规格所适配的计算类型。图4和图5为本申请实施例中两种可能的显示方式,本申请实施例不做限定,在图4和图5中,实例数量使用包括子模型的图形标记表示,如第一实例的实例数量为3,第二实例的实施数量为4。
还需要说明的是,在步骤303和步骤304中的方式二中,云平台也可以识别子模型的计算类型,基于计算类型与实例规格的对应关系,确定子模型的计算类型对应的实例规格。这样云平台也能确定出实例规格。
上述过程中实例规格是以包括CPU、GPU和NPU为例进行说明,在本申请实施例中,实例规格还可以包括内存等。
这样,为子模型设置实例规格,能够使得在一个并行推理业务中使用不同的硬件规格,能够更有效的提高资源利用率,进而降低并行推理业务的成本。
在一种可能的实现方式中,在设置第二实例集时设置的第二实例比较少,或者在进行推理过程,第二实例集中某些第二实例故障,有可能会使得第一实例集输出的第一推理结果不能在第二实例集中及时处理,本申请实施例中提供了如下动态调整实例的处理。
提供第四配置接口,第四配置接口用于获取租户上传的扩容条件,扩容条件指示当第二实例集的平均处理时长与第一实例集的平均处理时长的差值大于或等于目标数值,则增加第二实例集中的实例数量。当扩容条件满足时,增加第二实例集中的实例数量。
在本实施例中,云平台向租户提供第四配置接口,该第四配置接口可以是输入框。示例性的,第四配置接口可以是云平台切分模型后向租户反馈的接口,第四配置接口也可以是设置于实例配置界面中,此处仅是两种可行的方式,本申请实施例不对此进行限定。在第四配置接口为输入框时,租户可以在该输入框中输入扩容条件,向云平台上传该扩容条件。云平台获取到该扩容条件后,存储该扩容条件。例如,云平台提供了扩容条件模板,在扩容条件模板中包括“相邻的两个实例集的平均处理时长的差值大于或等于”,扩容条件模板的后面设置有输入框(该输入框为第四配置接口),租户在该输入框中输入目标数值,云平台获取到目标数值后,即可确定扩容条件是相邻的两个实例集的平均处理时长的差值大于或等于目标数值。租户可以根据经验值确定目标数值。再例如,云平台提供了多种扩容条件,并提供每种扩容条件的说明,租户可以在多种扩容条件中选择扩容条件。
云平台周期性获取第一实例集的平均处理时长,并且获取第二实例集的平均处理时长。云平台计算第二实例集的平均处理时长与第一实例集的平均处理时长的差值,判断该差值与目标数值的关系。若该差值大于或等于目标数值,则确定第二实例集满足扩容扩条件,说明第二实例集没能及时处理第一实例集输出的第一推理结果,增加第二实例集中第二实例的数量。这样,由于第二实例集处理时长相比第一实例集处理时长较长,会造成第一推理结果在第二实例集处排队时长过长,所以增加第二实例集中第二实例的数量,能够减少排队时长。
可选的,云平台获取第一实例集的平均处理时长的方式为:云平台确定一个推理样本在第一实例的处理时长,将多个第一推理结果在第一实例的处理时长的平均值,确定为第一实例集的平均处理时长。
云平台获取第二实例集的平均处理时长的方式为:云平台确定每个第一推理结果在第二实例的处理时长,将多个第一推理结果在第二实例的处理时长的平均值,确定为第二实例集的平均处理时长。或者,云平台确定第一实例集输出的第一推理结果在第二实例集处的队列长度,在队列长度与处理时长的对应关系中,确定第二实例集处的队列长度对应的处理时长,将确定出的处理时长确定为第二实例集的平均处理时长。
上述确定平均处理时长的方式仅是可能的实现方式,本申请实施例不做限定。
可选的,云平台增加第二实例的数量的方式为:云平台获取第二实例集的平均处理时长与第一实例集的平均处理时长的差值,并获取差值范围与实例数量的对应关系,在该对应关系中,一般是差值范围越大,对应的实例数量越大,但是差值范围增大到一个数值范围后,实例数量不再增加。云平台在该对应关系中,确定该差值所属差值范围对应的实例数量。云平台增加该实例数量个第二实例。此处仅是一种可能的实现方式,本申请实施例不做限定,例如,还可以是不管差值多大,每次增加固定数量个实例,如该固定数量为1等。
需要说明的是,上述是以租户输入扩容条件为例进行说明,本申请实施例中也可以是技术人员在云平台中预设扩容条件,不需要租户参与。
还需要说明的是,上述是对第二实例集进行扩容的描述,在对其他子模型所属实例集的扩容与上述过程类似,上述扩容条件为当第i+1实例集的平均处理时长与第i实例集的平均处理时长的差值大于或等于目标数值,则增加第i+1实例集中的实例数量,i为大于或等于1的正整数。
上述过程是以对第i+1实例集进行扩容为例进行说明,在某些情况下也能减少第i+1实例集中的实例。例如,第i+1实例集中的实例已经增加到最大数量,第i+1实例集的平均处理时长与第i实例集的平均处理时长的差值仍然大于或等于目标数值,说明此时第i实例集中实例的数量比较多,可以减少第i实例集中实例的数量。此处减少实例的数量的方式,参见增加实例的数量的方式,此处不再赘述。
在一种可能的实现方式中,云平台还具备监控实例的功能,云平台监控实例的运行状态和负载情况,运行状态包括故障和正常两种状态,负载情况包括空闲和忙碌两种情况。云平台能够基于实例的运行状态和负载情况,为实例调度输入数据,并控制实例的数量。
此处以第二实例集为例说明监控实例的运行状态的过程:云平台确定第二实例集中每个第二实例处理数据的时长(即每个第二实例从获得输入数据到获得输出数据的时长),若对于某个第二实例,该第二实例处理数据的时长高于第二实例集中其它第二实例处理数据的时长超过参考数值,则确定该第二实例故障,否则确定该第二实例正常,参考数值可以由技术人员设置。尤其是在某些第二实例故障后,第二实例并不能处理输入数据,所以这些第二实例处理输入数据的时长远远超出第二实例集中其它第二实例处理数据的时长。
此处以第二实例集为例说明监控实例的负载情况的过程:云平台将输入数据输入给某个第二实例后,在未获得该第二实例的输出数据之前,确定该第二实例忙碌,在获得该第二实例的输出数据之后,确定第二实例空闲。
此处以第二负载均衡器为第二实例集调度输入数据为例进行说明。第二负载均衡器每接收到一个第一推理结果,在第二实例集中确定当前空闲且正常的第二实例,将该第一推理结果输入至当前空闲且正常的第二实例。
另外,在第二负载均衡器将第一推理结果输入某个第二实例后,确定该第二实例故障时,可以将该第一推理结果重新输入其它第二实例。另外,在确定某个第二实例故障时,可以重新创建一个第二实例,以保证第二实例的数量不变。并且云平台在确定某个第二实例故障后,还可以重启该第二实例,若重启不成功,向云平台的管理人员汇报第二实例故障。
上述是以监控第二实例为例进行说明,对每个实例的监控方式参见监控第二实例的方式,此处不再赘述。
在一种可能的实现方式中,针对一个推理样本处理的子模型占用的内存有可能比较大,模型切分后的某些子模型有可能会包括多个子模型分片,同样推理样本也会被切分为多个推理样本切片,每个子模型分片针对一个推理样本切片进行处理。如下以第一子模型包括两个子模型分片为例进行说明。
第一子模型包括第一子模型分片和第二子模型分片,第一实例集包括第一子实例集和第二子实例集,第一子实例集包括分别加载第一子模型分片的多个第一子实例,第二子实例集包括分别加载第二子模型分片的多个第二子实例。将多个推理样本分别切分为第一推理样本切片和第二推理样本切片,获得多个第一推理样本切片和多个第二推理样本切片。其中,第一负载均衡器用于将多个第一推理样本切片分发至第一子实例集中的多个第一子实例,和将多个第二推理样本切片分发至第二子实例集中的多个第二子实例进行模型推理。
在本实施例中,云平台在切分模型时,切分获得的子模型包括有第一子模型,第一子模型包括第一子模型分片和第二子模型分片,第一子模型分片和第二子模型分片处理推理样本中的不同部分。例如,推理样本为一张图片,第一子模型分片处理该图片的上半部分,第二子模型分片处理该图片的下半部分。此处获得第一子模型分片和第二子模型分片有两种处理方式,第一种处理方式为:云平台在切分模型时,直接对模型切分获得的就是子模型分片,只不过按照对推理样本的处理次序将子模型分片组成逻辑上的子模型。例如,云平台将模型切分为第一子模型分片、第二子模型分片、第三子模型分片和第四子模型分片,第一子模型分片和第二子模型分片组成逻辑上的第一子模型,第三子模型分片和第四子模型分片组成逻辑上的第二子模型。第一子模型分片的输出数据作为第三子模型分片的输入数据,第二子模型分片的输出数据作为第四子模型分片的输入数据。第二种处理方式为:云平台对模型进行切分获得第一子模型和第二子模型,然后对第一子模型进行切分,获得第一子模型分片和第二子模型分片,对第二子模型进行切分,获得第三子模型分片和第四子模型分片。
云平台创建分别加载第一子模型分片的多个第一子实例,该多个第一子实例组成第一子实例集。并且云平台创建分别加载第二子模型分片的多个第二子实例,该多个第二子实例组成第二子实例集。该第一子实例集和第二子实例集组成第一实例集。
云平台将每个推理样本切分为第一推理样本切片和第二推理样本切片,获得多个第一推理样本切片和多个第二推理样本切片。例如,推理样本为一张图片,第一推理样本切片包括图片的一半像素点,第二推理样本切片包括图片的另一半像素点。
第一负载均衡器在接收到每个第一推理样本切片后,将每个第一推理样本切片分发至第一子实例,由第一子模型分片负责处理。并且第一负载均衡器在接收到每个第二推理样本切片后,将每个第二推理样本切片分发至第二子实例,由第二子模型分片负责处理。
需要说明的是,上述是对第一子模型包括两个子模型分片的描述,在第一子模型包括三个及三个以上的子模型分片时,处理过程参见包括两个子模型分片时的描述,本申请实施例不再赘述。上述是对第一子模型包括多个子模型分片的描述,其它子模型包括一个或多个子模型分片的描述参见上述描述,本申请实施例不再赘述。另外,除第一个子模型之外的其他某些子模型也可以仅包括一个子模型分片。例如,对模型切分获得逻辑上的第一子模型至第四子模型。第一子模型包括多个子模型分片,第二子模型包括多个子模型分片,第三子模型包括一个子模型分片,第四子模型包括多个子模型分片。
还需要说明的是,上述是对推理样本进行切分,也可以不对推理样本切分,而是将整个推理样本分别输入至各个子模型分片中,由各个子模型分片分别识别自身所要处理的推理样本切片,并进行处理。
为了更好的理解本申请实施例,接下来提供对一个推理样本进行模型推理的流程。在描述该流程前,首先介绍模型被切分的情况,以及实例加载切分后的子模型分片,参见图6。如图6所示,模型被切分为第一子模型分片、第二子模型分片、第三子模型分片、第四子模型分片、第五子模型分片和第六子模型分片。第一子模型分片和第二子模型分片组成逻辑上的第一子模型,第三子模型分片和第四子模型分片组成逻辑上的第二子模型,第五子模型分片和第六子模型分片组成逻辑上的第三子模型。
3个第一子实例分别加载第一子模型分片,3个第二子实例分别加载第二子模型分片。加载第一子模型分片的第一子实例组成第一子实例集,加载第二子模型分片的第二子实例组成第二子实例集。第一子实例集和第二子实例集组成第一实例集。
5个第三子实例分别加载第三子模型分片,3个第四子实例分别加载第四子模型分片。加载第三子模型分片的第三子实例组成第三子实例集,加载第四子模型分片的第四子实例组成第四子实例集。第三子实例集和第四子实例集组成第二实例集。
4个第五子实例分别加载第五子模型分片,2个第六子实例分别加载第六子模型分片。加载第五子模型分片的第五子实例组成第五子实例集,加载第六子模型分片的第六子实例组成第六子实例集。第五子实例集和第六子实例集组成第三实例集。
第一实例集接入第一负载均衡器,第二实例集接入第二负载均衡器,第三实例集接入第三负载均衡器。第一负载均衡器、第二负载均衡器和第三负载均衡器为不相同的负载均衡器,或者相同的负载均衡器。图6提供了三个负载均衡器为不相同的负载均衡器的示意图。图7提供了三个负载均衡器为相同的负载均衡器的示意图。
另外,在图6和图7中,租户配置每个子实例集的实例数量和/或实例规格。或者云平台基于子实例集加载的子模型,确定子实例集的实例数量和/或实例规格。例如,租户输入第一子实例集的实例数量为3,云平台创建3个子实例,该3个子实例分别加载第一子模型分片。再例如,租户输入第三子实例集的实例数量为5,实例规格为CPU,云平台创建5个子实例,且该5个子实例所使用的硬件规格为CPU。此处子实例的实例规格的确定方式,参见前文中实例的实例规格的确定方式。图8提供了租户配置每个子实例集的实例数量和/或实例规格的示意图,租户可以通过“加/减”确定实例数量,并且可以选择实例规格,例如,租户确定第一子模型分片的第一子实例的数量为3,实例规格为CPU。第一子模型中子模型分片的数目与推理样本切片的数目相同,租户还可以设置推理样本切片的数目,参见图8。另外租户还可以设置推理样本的切分方式。
图9提供了加载子模型分片的实例的示意图。如图9所示,3个实例规格为CPU的第一子实例分别加载第一子模型分片,3个实例规格为CPU的第二子实例分别加载第二子模型分片。5个实例规格为GPU的第三子实例分别加载第三子模型分片,3个实例规格为NPU的第四子实例分别加载第四子模型分片。4个实例规格为NPU的第五子实例分别加载第五子模型分片,2个实例规格为GPU的第六子实例分别加载第六子模型分片。
接下来基于图6、图7和图9所示的模型切分方式,描述模型推理方法的流程,参见图10。如图10所示,步骤1001,云平台将推理样本切分为第一推理样本切片和第二推理样本切片。
在本实施例中,云平台还提供数据切分功能,通过该数据切分功能将推理样本切分为第一推理样本切片和第二推理样本切片。
步骤1002,第一负载均衡器获取到第一推理样本切片和第二推理样本切片。
步骤1003,第一负载均衡器向第一子实例发送第一推理样本切片,并向第二子实例发送第二推理样本切片。
在本实施例中,第一负载均衡器基于子模型的拓扑关系,确定第一推理样本切片是发往第一子模型分片,第二推理样本切片是发往第二子模型分片。第一负载均衡器在加载第一子模型分片的第一子实例中,确定正常且空闲的实例,向确定出的该实例发送第一推理样本切片。并且第一负载均衡器在加载第二子模型分片的第二子实例中,确定正常且空闲的实例,向确定出的该实例发送第二推理样本切片。
步骤1004,第一子实例对第一推理样本切片进行处理,获得第一推理结果,向第二负载均衡器发送得到的第一推理结果。第二子实例对第二推理样本切片进行处理,获得第一推理结果,向第二负载均衡器发送得到的第一推理结果。
在本实施例中,第一子实例加载第一子模型分片对第一推理样本切片进行处理,获得第一推理结果。第一子实例向第二负载均衡器发送第一推理结果。第二子实例加载第二子模型分片对第二推理样本切片进行处理,获得第一推理结果。第二子实例向第二负载均衡器发送第一推理结果。
步骤1005,第二负载均衡器向第三子实例发送第一子实例输出的第一推理结果,并向第四子实例发送第二子实例输出的第一推理结果。
在本实施例中,第二负载均衡器基于子模型的拓扑关系,确定第一子模型分片的输出数据是输入第三子模型分片,并且确定第二子模型分片的输出数据是输入第四子模型分片。第二负载均衡器在加载第三子模型分片的第三子实例中,确定正常且空闲的实例,向确定出的该实例发送第一子实例输出的第一推理结果。并且第二负载均衡器在加载第四子模型分片的第四子实例中,确定正常且空闲的实例,向确定出的该实例发送第二子实例输出的第一推理结果。
步骤1006,第三子实例对第一子实例输出的第一推理结果进行处理,获得第二推理结果,向第三负载均衡器发送得到的第二推理结果。第四子实例对第二子实例输出的第一推理结果进行处理,获得第三推理结果,向第三负载均衡器发送得到的第三推理结果。
在本实施例中,第三子实例加载第三子模型分片对第一推理结果进行处理,获得第二推理结果。第三子实例向第三负载均衡器发送第二推理结果。第四子实例加载第四子模型分片对第一推理结果进行处理,获得第三推理结果。第四子实例向第三负载均衡器发送第三推理结果。
步骤1007,第三负载均衡器向第五子实例发送第二推理结果,并向第六子实例发送第三推理结果。
在本实施例中,第三负载均衡器基于子模型的拓扑关系,确定第三子模型分片的输出数据是输入第五子模型分片,并且确定第四子模型分片的输出数据是输入第六子模型分片。第三负载均衡器在加载第五子模型分片的第五子实例中,确定正常且空闲的实例,向确定出的该实例发送第二推理结果。并且第三负载均衡器在加载第六子模型分片的第六子实例中,确定正常且空闲的实例,向确定出的该实例发送第三推理结果。
步骤1008,第五子实例对第二推理结果进行处理,获得第四推理结果。第六子实例对第三推理结果进行处理,获得第五推理结果。将第四推理结果和第五推理结果组合获得推理样本的推理结果。
在本实施例中,第五子实例加载第五子模型分片对第二推理结果进行处理,获得第四推理结果。第六子实例加载第六子模型分片对第三推理结果进行处理,获得第五推理结果。将第四推理结果和第五推理结果组合获得推理样本的推理结果。
以上是以模型被切分为逻辑上的三个子模型为例进行说明,在模型被切分为逻辑上的四个以及四个以上的子模型时,也是按照上述处理流程进行处理。例如,模型被切分为逻辑上的N个子模型,处理过程为:推理样本依次经过第一子模型-第二子模型-第三子模型,…,第N子模型的处理,获得该推理样本的推理结果。
在图10的流程中,云平台能够监控各个实例的运行状态和负载情况,基于运行状态和负载情况,为加载实例上一个子模型的输出数据,选择运行正常且空闲的实例,使得推理过程不中断。
而且在图10的流程中,云平台还能够监控各个子实例集的平均处理时长,在判断某个子实例集满足扩容条件时,增加该子实例集中子实例的数量,保证整个推理过程中各子实例集的负载一致,提高资源利用率。示例性的,在子模型包括子模型分片时,云平台还可以向租户提供子实例的第四配置接口,租户可以在该第四配置接口输入子实例的扩容条件,该扩容条件用于指示当第n+1子实例集的平均处理时长与第n子实例集的平均处理时长的差值大于或等于目标数值,则增加第n+1子实例集中的实例数量。第n+1子实例集的输入数据是第n子实例集的输出数据。此处租户输入子实例的扩容条件的方式与前文中提到的租户输入扩容条件的方式相同,输入过程可参见前文中的描述,此处不再赘述。其中,第n+1子实例集和第n子实例集分别表示相邻的两个子模型分片的实例集,n为大于或等于1的正整数。
云平台周期性获取第n+1子实例集的平均处理时长,并且获取第n子实例集的平均处理时长。云平台计算第n+1子实例集的平均处理时长与第n子实例集的平均处理时长的差值,判断该差值与目标数值的关系。若该差值大于或等于目标数值,则确定第n+1子实例集满足子实例的扩容条件,说明第n+1子实例集没能及时处理第n子实例集输出的推理结果,增加第n+1子实例集中子实例的数量。这样,由于第n+1子实例集处理时长相比第n子实例集处理时长较长,会造成第n子实例集的输出数据在第n+1子实例集处排队时长过长,所以增加第n+1子实例集中子实例的数量,能够减少排队时长。
可选的,云平台获取第n+1子实例集的平均处理时长的方式为:云平台确定每个输入数据在第n+1子实例集中一个子实例的处理时长,将多个输入数据在第n+1子实例集中的子实例的处理时长的平均值,确定为第n+1子实例集的平均处理时长。或者,云平台确定第n+1子实例集的输入数据在第n+1子实例集处的队列长度,在队列长度与处理时长的对应关系中,将该队列长度转换为处理时长,将确定出的处理时长确定为第n+1子实例集的平均处理时长。在第n子实例集不属于第一子模型时,第n子实例集的平均处理时长的确定方式,参见第n+1子实例集的平均处理时长的两种确定方式,在第n子实例集属于第一子模型时,第n子实例集的平均处理时长的确定方式,参见第n+1子实例集的平均处理时长的前一种确定方式。
上述确定平均处理时长的方式仅是可能的实现方式,本申请实施例不做限定。
可选的,云平台增加第n+1子实例集中实例的数量的方式为:云平台获取第n+1子实例集的平均处理时长与第n子实例集的平均处理时长的差值,并获取差值范围与实例数量的对应关系,在该对应关系中,一般是差值范围越大,对应的实例数量越大,但是差值范围增大到一个数值范围后,实例数量不再增加。云平台在该对应关系中,确定该差值所属差值范围对应的实例数量,增加确定的实例数量个子实例。此处仅是一种可能的实现方式,本申请实施例不做限定,例如,还可以是不管差值多大,每次增加固定数量个子实例,如该固定数量为1等。
通过上述描述可知,通过细粒度的实例监控,不仅能够提高资源利用率,而且能够提升模型推理业务的高可用性。而且即使模型切分不均衡,也可以通过设置实例数量,弱化模型切分不均衡引起的处理过慢问题,提升模型并发推理能力。
图11是本申请实施例提供的云平台的结构图。该云平台可以通过软件、硬件或者两者的结合实现成为云平台中的部分或者全部。本申请实施例提供的云平台可以实现本申请实施例图3所述的流程和图10中的部分流程,该云平台包括:交互模块1110和处理模块1120,其中:
交互模块1110,用于获取租户输入的多个推理样本,具体可以用于实现步骤301的交互功能以及执行步骤301包含的隐含步骤;
处理模块1120,用于获取模型切分得到的第一子模型和第二子模型,该第二子模型的输入数据为该第一子模型的输出数据;设置第一实例集,该第一实例集包括分别加载该第一子模型的多个第一实例;设置第二实例集,该第二实例集包括分别加载该第二子模型的多个第二实例;为该第一实例集设置第一负载均衡器,该第一负载均衡器用于将该多个推理样本分发至该第一实例集中的该多个第一实例进行模型推理;为该第二实例集设置第二负载均衡器,该第二负载均衡器用于收集该第一实例集中的该多个第一实例进行模型推理后产生的多个第一推理结果,并将该多个第一推理结果分发至该第二实例集中的该多个第二实例进行模型推理,具体可以用于实现步骤302至步骤至306的处理功能以及步骤302至步骤306包含的隐含步骤。
在一种可能的实现方式中,该交互模块1110,还用于提供第一配置接口,该第一配置接口用于获取租户输入的第一配置指令,该第一配置指令用于指示该第一实例集的实例数量和/或实例规格;
该处理模块1120,用于根据该租户输入的第一配置指令创建该第一实例集;
该交互模块1110,还用于提供第二配置接口,该第二配置接口用于获取该租户输入的第二配置指令,该第二配置指令用于指示该第二实例集的实例数量和/或实例规格;
该处理模块1120,还用于根据该租户输入的第二配置指令设置该第二实例集。
在一种可能的实现方式中,该交互模块1110,还用于提供第三配置接口,该第三配置接口用于获取该租户输入的切分指令;
该处理模块1120,用于根据该租户输入的切分指令,将该模型切分为该第一子模型和该第二子模型。
在一种可能的实现方式中,该交互模块1110,还用于:
将模型切分为第一子模型和第二子模型之前提供模型获取接口,该模型获取接口用于获取该租户上传的该模型。
在一种可能的实现方式中,该交互模块1110,还用于:
提供第四配置接口,该第四配置接口用于获取该租户上传的扩容条件,该扩容条件指示当该第二实例集的平均处理时长与第一实例集的平均处理时长的差值大于或等于目标数值,则增加该第二实例集中的实例数量;
该处理模块1120,还用于当该扩容条件满足时,增加该第二实例集中的实例数量。
图11所示的云平台进行模型推理的详细过程请参照前面各个实施例中的描述,在这里不进行重复说明。
在一些实施例中,提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算设备执行图3和图10所示的流程。
本领域普通技术人员可以意识到,结合本申请中所公开的实施例中描述的各方法步骤和单元,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各实施例的步骤及组成。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统架构、云平台和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或模块的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
该作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请实施例方案的目的。
另外,在本申请各个实施例中的各模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以是两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件模块的形式实现。
该集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例中方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
本申请中术语“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。还应理解,尽管以下描述使用术语第一、第二等来描述各种元素,但这些元素不应受术语的限制。这些术语只是用于将一元素与另一元素区别分开。例如,在不脱离各种示例的范围的情况下,第一子模型可以被称为第二子模型,并且类似地,第二子模型可以被称为第一子模型。第一子模型和第二子模型都可以是子模型,并且在某些情况下,可以是单独且不同的子模型。
以上描述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (13)

1.一种模型推理方法,其特征在于,所述方法应用于云平台,所述方法包括:
获取租户输入的多个推理样本;
获取模型切分得到的第一子模型和第二子模型,所述第二子模型的输入数据为所述第一子模型的输出数据;
设置第一实例集,所述第一实例集包括分别加载所述第一子模型的多个第一实例;
设置第二实例集,所述第二实例集包括分别加载所述第二子模型的多个第二实例;
为所述第一实例集设置第一负载均衡器,所述第一负载均衡器用于将所述多个推理样本分发至所述第一实例集中的所述多个第一实例进行模型推理,以产生多个第一推理结果;
为所述第二实例集设置第二负载均衡器,所述第二负载均衡器用于将所述多个第一推理结果分发至所述第二实例集中的所述多个第二实例进行模型推理。
2.根据权利要求1所述的方法,其特征在于,所述设置第一实例集,包括:
提供第一配置接口,所述第一配置接口用于获取所述租户输入的第一配置指令,所述第一配置指令用于指示所述第一实例集的实例数量和/或实例规格;
根据所述租户输入的第一配置指令创建所述第一实例集;
所述设置第二实例集,包括:
提供第二配置接口,所述第二配置接口用于获取所述租户输入的第二配置指令,所述第二配置指令用于指示所述第二实例集的实例数量和/或实例规格;
根据所述租户输入的第二配置指令设置所述第二实例集。
3.根据权利要求1或2所述的方法,其特征在于,所述获取模型切分得到的第一子模型和第二子模型,包括:
提供第三配置接口,所述第三配置接口用于获取所述租户输入的切分指令;
根据所述租户输入的切分指令,将所述模型切分为所述第一子模型和所述第二子模型。
4.根据权利要求1至3中任一所述的方法,其特征在于,所述获取模型切分得到的第一子模型和第二子模型之前,包括:
提供模型获取接口,所述模型获取接口用于获取所述租户上传的所述模型。
5.根据权利要求1至4中任一所述的方法,其特征在于,所述方法还包括:
提供第四配置接口,所述第四配置接口用于获取所述租户上传的扩容条件,所述扩容条件指示当所述第二实例集的平均处理时长与第一实例集的平均处理时长的差值大于或等于目标数值,则增加所述第二实例集中的实例数量;
当所述扩容条件满足时,增加所述第二实例集中的实例数量。
6.一种云平台,其特征在于,所述云平台包括:
交互模块,用于获取租户输入的多个推理样本;
处理模块,用于获取模型切分得到的第一子模型和第二子模型,所述第二子模型的输入数据为所述第一子模型的输出数据;设置第一实例集,所述第一实例集包括分别加载所述第一子模型的多个第一实例;设置第二实例集,所述第二实例集包括分别加载所述第二子模型的多个第二实例;为所述第一实例集设置第一负载均衡器,所述第一负载均衡器用于将所述多个推理样本分发至所述第一实例集中的所述多个第一实例进行模型推理;为所述第二实例集设置第二负载均衡器,所述第二负载均衡器用于收集所述第一实例集中的所述多个第一实例进行模型推理后产生的多个第一推理结果,并将所述多个第一推理结果分发至所述第二实例集中的所述多个第二实例进行模型推理。
7.根据权利要求6所述的云平台,其特征在于,所述交互模块,还用于提供第一配置接口,所述第一配置接口用于获取所述租户输入的第一配置指令,所述第一配置指令用于指示所述第一实例集的实例数量和/或实例规格;
所述处理模块,用于根据所述租户输入的第一配置指令创建所述第一实例集;
所述交互模块,还用于提供第二配置接口,所述第二配置接口用于获取所述租户输入的第二配置指令,所述第二配置指令用于指示所述第二实例集的实例数量和/或实例规格;
所述处理模块,还用于根据所述租户输入的第二配置指令设置所述第二实例集。
8.根据权利要求6或7所述的云平台,其特征在于,所述交互模块,还用于:
提供第三配置接口,所述第三配置接口用于获取所述租户输入的切分指令;
所述处理模块,用于根据所述租户输入的切分指令,将所述模型切分为所述第一子模型和所述第二子模型。
9.根据权利要求6至8中任一所述的云平台,其特征在于,所述交互模块,还用于:
将模型切分为第一子模型和第二子模型之前提供模型获取接口,所述模型获取接口用于获取所述租户上传的所述模型。
10.根据权利要求6至9中任一所述的云平台,其特征在于,所述交互模块,还用于:
提供第四配置接口,所述第四配置接口用于获取所述租户上传的扩容条件,所述扩容条件指示当所述第二实例集的平均处理时长与第一实例集的平均处理时长的差值大于或等于目标数值,则增加所述第二实例集中的实例数量;
所述处理模块,还用于当所述扩容条件满足时,增加所述第二实例集中的实例数量。
11.一种模型推理的设备,其特征在于,所述设备包括处理器和存储器,所述存储器中存储有至少一条计算机指令,所述计算机指令由所述处理器加载并执行以实现如权利要求1至权利要求5任一项所述的模型推理的方法。
12.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条计算机指令,所述计算机指令由模型推理的设备的处理器加载并执行以实现如权利要求1至权利要求5任一项所述的模型推理的方法。
13.一种计算机程序产品,其特征在于,所述计算机程序产品包括至少一条计算机指令;
当所述计算机程序产品在模型推理的设备上运行时,使得所述设备实现如权利要求1至权利要求5任一项所述的模型推理的方法。
CN202111223481.9A 2021-10-20 2021-10-20 模型推理方法、云平台、设备和存储介质 Pending CN116010067A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202111223481.9A CN116010067A (zh) 2021-10-20 2021-10-20 模型推理方法、云平台、设备和存储介质
PCT/CN2022/093378 WO2023065656A1 (zh) 2021-10-20 2022-05-17 模型推理方法、云平台、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111223481.9A CN116010067A (zh) 2021-10-20 2021-10-20 模型推理方法、云平台、设备和存储介质

Publications (1)

Publication Number Publication Date
CN116010067A true CN116010067A (zh) 2023-04-25

Family

ID=86017859

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111223481.9A Pending CN116010067A (zh) 2021-10-20 2021-10-20 模型推理方法、云平台、设备和存储介质

Country Status (2)

Country Link
CN (1) CN116010067A (zh)
WO (1) WO2023065656A1 (zh)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109685202B (zh) * 2018-12-17 2023-03-21 腾讯科技(深圳)有限公司 数据处理方法及装置、存储介质和电子装置
US20210089969A1 (en) * 2019-09-19 2021-03-25 AIble Inc. Using Routing Rules to Generate Custom Models For Deployment as a Set
CN112183668B (zh) * 2020-11-03 2022-07-22 支付宝(杭州)信息技术有限公司 并行训练业务模型的方法及装置
CN112508188B (zh) * 2020-12-01 2024-06-14 北京奇艺世纪科技有限公司 一种分布式模型训练系统、方法、装置、设备和存储介质

Also Published As

Publication number Publication date
WO2023065656A1 (zh) 2023-04-27

Similar Documents

Publication Publication Date Title
EP3525096B1 (en) Resource load balancing control method and cluster scheduler
US7797141B2 (en) Predictive analysis of availability of systems and/or system components
US11190431B2 (en) Prioritized client-server communications based on server health
WO2012033909A2 (en) Method and system of simulating a data center
CN103677990B (zh) 虚拟机实时任务的调度方法、装置和虚拟机
CN111143039B (zh) 一种虚拟机的调度方法、装置及计算机存储介质
CN114356587B (zh) 算力任务跨区域调度方法、系统及设备
CN113157379A (zh) 集群节点资源调度方法及装置
CN111930493A (zh) 集群中NodeManager状态管理方法、装置及计算设备
CN115033352A (zh) 多核处理器任务调度方法、装置及设备、存储介质
CN114896068A (zh) 资源分配方法、资源分配装置、电子设备及存储介质
Sundas et al. An introduction of CloudSim simulation tool for modelling and scheduling
Dadashi Gavaber et al. BADEP: bandwidth and delay efficient application placement in fog‐based IoT systems
CN103488699A (zh) 基于内存数据网格的数据处理装置和方法
CN113626145B (zh) 业务虚拟机数量动态扩容方法及系统
WO2021262282A1 (en) Cloud load orchestrator
CN116010067A (zh) 模型推理方法、云平台、设备和存储介质
CN114785693B (zh) 基于分层强化学习的虚拟网络功能迁移方法及装置
CN105471986A (zh) 一种数据中心建设规模评估方法及装置
CN114448909A (zh) 基于ovs的网卡队列轮询方法、装置、计算机设备及介质
CN112948114A (zh) 边缘计算方法和边缘计算平台
Guo et al. Radar: Reliable resource scheduling for composable/disaggregated data centers
CN114221962B (zh) 基于峰值使用率的云化资源重分配方法及系统
CN116723191B (zh) 利用加速装置执行数据流加速计算的方法和系统
Vistro et al. An Efficient Approach for Resilience and Reliability Against Cascading Failure

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication