CN113472830B - 一种通信方法及装置 - Google Patents

一种通信方法及装置 Download PDF

Info

Publication number
CN113472830B
CN113472830B CN202010242173.XA CN202010242173A CN113472830B CN 113472830 B CN113472830 B CN 113472830B CN 202010242173 A CN202010242173 A CN 202010242173A CN 113472830 B CN113472830 B CN 113472830B
Authority
CN
China
Prior art keywords
cloud
side equipment
computing
side device
data
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
Application number
CN202010242173.XA
Other languages
English (en)
Other versions
CN113472830A (zh
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 Technologies Co Ltd
Original Assignee
Huawei 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 Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202010242173.XA priority Critical patent/CN113472830B/zh
Priority to PCT/CN2021/082483 priority patent/WO2021197144A1/zh
Publication of CN113472830A publication Critical patent/CN113472830A/zh
Application granted granted Critical
Publication of CN113472830B publication Critical patent/CN113472830B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • 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
    • 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]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources
    • 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]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请涉公开了一种通信方法及装置,用以解决可能存在的端侧设备内部设置的专用加速器的计算能力不能满足软件和应用的要求的问题。端侧设备按需从云侧设备申请计算资源,一方面,端侧设备可以将人工智能模型和待分析数据发送云侧设备,云侧设备结合计算资源加载并运行人工智能模型,并针对待分析数据进行推理得到推理结果反馈给端侧设备。另一方面,端侧设备可以自身加载人工智能模型,然后运行人工模型以及待分析数据产生计算指令以及计算数据,将计算指令和计算数据发送给云侧设备,进而云侧设备执行计算指令对计算数据进行计算得到计算结果,并反馈给端侧设备。

Description

一种通信方法及装置
技术领域
本申请实施例涉及通信技术领域,尤其涉及一种通信方法及装置。
背景技术
随着人工智能、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)的兴起,产生了大量与之相关的软件和应用。这些软件和应用对计算能力要求较高,通用中央处理单元(central processing unit,CPU)已经无法满足要求。为了满足这些软件和应用对计算能力的要求,通常使用专用加速器来执行这些软件和应用的计算。专用加速器比如可以是神经网络处理器(neural-network processing unit,NPU)、图形处理器(graphics processing unit,GPU)、现场可编程门阵列(field programmable gatearray,FPGA)等。
目前,端侧设备内部设置专用加速器,来实现软件和应用的计算。但由于成本、功耗、空间等的限制,某些端侧设备内部设置的专用加速器的计算能力可能还是不能满足所有软件和应用的要求。
发明内容
本申请实施例提供一种通信方法及装置,用以解决可能存在的端侧设备内部设置的专用加速器的计算能力不能满足软件和应用的要求的问题。
第一方面,本申请实施例提供一种通信方法,该方法应用于端侧设备,比如可以由端侧设备的芯片或者芯片系统执行。该通信方法包括:端侧设备向云侧设备发送资源申请请求,并向云侧设备提供用于实现人工智能处理所需的第一人工智能模型;该资源申请请求用于请求实现人工智能功能所需的计算资源;然后,端侧设备接收云侧设备发送的加载完成消息,加载完成消息用于指示云侧设备基于资源申请请求为端侧设备分配的计算资源已成功加载第一人工智能模型;进一步地,端侧设备向云侧设备提供第一待分析数据,从而云侧设备可以基于第一人工智能模型对第一待分析数据进行推理得到第一推理结果,发送给端侧设备,进而端侧设备接收云侧设备发送的第一待分析数据的第一推理结果;其中,第一推理结果是基于第一待分析数据运行第一人工智能模型得到的。
通过上述方案,端侧设备根据自身的需求向云侧设备申请计算资源,然后由云侧设备结合计算资源协助端侧设备执行模型加载以及使用加载的模型执行待分析数据的计算,即使端侧设备内部设置的专用计算器的计算能力无法满足软件和应用的要求,能够借助云侧设备来实现数据推理。另外,应用的开发无需结合云侧设备的部署,应用侧仅需将需要卸载到云侧的模型以及数据发送给云侧设备即可,简化应用的开发人员的开发难度,降低开发人员的工作量。
在一种可能的设计中,上述方法还可以包括:
端侧设备向云侧设备发送算力服务注册请求,算力服务注册请求用于请求云侧设备为端侧设备提供算力服务;
端侧设备接收云侧设备发送的算力服务注册响应,算力服务注册响应用于指示端侧设备已成功请求到云侧设备的算力服务。
通过上述设备,端侧设备可以提前向云侧注册申请算力服务,可以按照需求申请算力服务,后续针对用户来说,可以无感知的使用云侧提供的算力服务。
在一种可能的设计中,端侧设备向云侧设备提供用于实现人工智能处理所需的第一人工智能模型,包括:
端侧设备向云侧设备发送第一人工智能模型;或者,
端侧设备将第一人工智能模型的下载地址发送给云侧设备。
在一种可能的设计中,端侧设备向云侧设备提供第一待分析数据,包括:
端侧设备向云侧设备发送第一待分析数据;或者,
端侧设备将第一人工智能模型的下载地址发送给云侧设备。
在一种可能的设计中,端侧设备接收云侧设备发送的第一待分析数据的第一推理结果后,还包括:
端侧设备将第二待分析数据提供给云侧设备,并接收云侧设备发送的第二待分析数据的第二推理结果;其中,第二推理结果是基于第二待分析数据运行第一人工智能模型得到的。
上述设计中,端侧设备获取第一待分析数据的推理结果后,如果还需要针对第二待分析数据进行推理,从而仅需要将第二待分析数据发送给云侧设备即可,无需再次申请资源,实现较简单。
在一种可能的设计中,端侧设备接收云侧设备发送的第一待分析数据的第一推理结果后,还包括:
端侧设备向云侧设备提供第二人工智能模型,并向云侧设备提供第三待分析数据;端侧设备接收云侧设备发送的第三待分析数据的第三推理结果;其中,第三推理结果是计算资源基于第二待分析数据运行第一人工智能模型得到的。
上述设计中,端侧设备获取第一待分析数据的推理结果后,如果还需要针对第二待分析数据采用其它的人工智能模型进行推理,从而仅需要将第二待分析数据以及需要的人工智能模型发送给云侧设备即可,无需再次申请资源,实现较简单。
在一种可能的设计中,还包括:端侧设备完成计算资源的使用后,向云侧设备发送资源释放请求,资源释放请求用于请求释放计算资源;端侧设备接收云侧设备发送的资源释放响应,资源释放响应用于指示成功释放计算资源以及计算资源运行的人工智能模型。上述设计中,端侧设备在确定完成计算资源的使用后,及时地通知云侧释放掉资源,避免资源浪费。
在一种可能的设计中,端侧设备向云侧设备发送资源申请请求之前,还包括:端侧设备确定人工智能处理的部分任务或者全部任务由云侧设备处理。
上述设计中,端侧设备可以结合自身情况,确定是否需要云侧设备协助执行人工智能处理任务。
在一种可能的设计中,还包括:
端侧设备确定人工智能处理的部分任务由云侧设备处理时,端侧设备将待使用的人工智能模型拆解为第一人工智能模型以及第三人工智能模型;
端侧设备向云侧设备提供第一待分析数据之前,端侧设备加载第三人工智能模型,并在端侧设备接收云侧设备发送的加载完成消息时,将待分析数据拆分为第一待分析数据以及第四待分析数据;
端侧设备将待分析数据拆分为第一待分析数据以及第四待分析数据后,运行加载的第三人工智能模型对第四待分析数据进行推理得到第四推理结果;
端侧设备接收到第一推理结果后,对第一推理结果和第四推理结果进行融合处理。
上述设计中,端侧设备可以结合自身情况,将一部分业务卸载到云侧设备,可以减轻端侧设备的加速器的负担。
第二方面,本申请实施例提供另一种通信方法,该通信方法应用于云侧设备。比如可以由云侧设备上的芯片或者芯片系统来实现。方法可以包括;云侧设备接收来自端侧设备的资源申请请求,并获取端侧设备提供的用于实现人工智能处理所需的第一人工智能模型,资源申请请求用于请求实现人工智能功能所需的计算资源;云侧设备根据资源申请请求为端侧设备分配计算资源;云侧设备通过计算资源成功加载第一人工智能模型后,向端侧设备发送加载完成消息,加载完成消息用于指示云侧设备上的计算资源已成功加载第一人工智能模型;云侧设备获取端侧设备提供的第一待分析数据,通过运行第一人工智能模型对第一待分析数据进行推理得到第一推理结果;并向端侧设备发送第一推理结果。
通过上述方案,端侧设备根据自身的需求向云侧设备申请计算资源,然后由云侧设备结合计算资源协助端侧设备执行模型加载以及使用加载的模型执行待分析数据的计算,即使端侧设备内部设置的专用计算器的计算能力无法满足软件和应用的要求,能够借助云侧设备来实现数据推理。另外,应用的开发无需结合云侧设备的部署,应用侧仅需将需要卸载到云侧的模型以及数据发送给云侧设备即可,简化应用的开发人员的开发难度,降低开发人员的工作量。
在一种可能的设计中,云侧设备接收来自端侧设备的资源申请请求之前,还包括:云侧设备接收端侧设备发送的算力服务注册请求,算力服务注册请求用于请求云侧设备为端侧设备的用户提供算力服务;云侧设备向端侧设备发送算力服务注册响应,算力服务注册响应用于指示端侧设备的用户已成功请求到云侧设备的算力服务。
通过上述设备,端侧设备可以提前向云侧注册申请算力服务,可以按照需求申请算力服务,后续针对用户来说,可以无感知的使用云侧提供的算力服务。
在一种可能的设计中,算力服务注册请求中携带计算资源信息,计算资源信息用于表征端侧设备所申请的算力规格;算力服务注册响应携带云侧设备为端侧设备分配的资源ID,资源ID用于标识计算资源信息;资源申请请求中携带资源ID,云侧设备根据资源申请请求为端侧设备分配计算资源,包括:云端设备根据资源ID对应的计算资源信息为端侧设备分配计算资源。
在一种可能的设计中,资源申请请求中携带计算资源信息,计算资源信息用于表征端侧设备所申请的算力规格;云侧设备根据资源申请请求为端侧设备分配计算资源,包括:云端设备根据计算资源信息为端侧设备分配计算资源。
在一种可能的设计中,云侧设备获取端侧设备提供的用于实现人工智能处理所需的第一人工智能模型,包括:云侧设备接收端侧设备发送第一人工智能模型;或者,云侧设备接收端侧设备发送的第一人工智能模型的下载地址,并根据第一人工智能模型的下载地址下载第一人工智能模型。
在一种可能的设计中,云侧设备获取端侧设备提供的第一待分析数据,包括:云侧设备接收端侧设备发送第一待分析数据;或者,云侧设备接收端侧设备发送的第一待分析数据的下载地址,并根据第一待分析数据的下载地址下载待分析数据。
在一种可能的设计中,云侧设备向端侧设备发送第一推理结果后,还包括:云侧设备获取端侧设备提供的第二待分析数据,通过运行第一人工智能模型对第二待分析数据进行推理得到第二推理结果;并向端侧设备发送第二推理结果。
在一种可能的设计中,云侧设备向端侧设备发送第一推理结果后,还包括:云侧设备获取端侧设备提供的第二人工智能模型,获取端侧设备提供的第三待分析数据;云侧设备通过运行第二人工智能模型对第三待分析数据进行推理得到第三推理结果;并向端侧设备发送第三推理结果。
在一种可能的设计中,还包括:云侧设备接收端侧设备发送的资源释放请求,资源释放请求用于请求释放计算资源;云侧设备释放计算资源,并释放计算资源运行的人工智能模型;云侧设备向端侧设备发送资源释放响应,资源释放响应用于指示成功释放计算资源以及计算资源运行的人工智能模型。
第二方面的具体有益效果,可以参见第一方面的描述,此处不再赘述。
第三方面,本申请实施例提供一种通信方法,该通信方法应用于端侧设备,比如由端侧设备的芯片或者芯片系统执行。该通信方法包括:端侧设备向云侧设备发送资源申请请求,资源申请请求用于请求实现人工智能功能所需的计算资源;端侧设备接收云侧设备发送的资源申请响应,资源申请响应用于指示云侧设备成功为端侧设备分配计算资源;端侧设备在运行用于实现人工智能功能的第一人工智能模型对第一待分析数据执行推理时产生第一计算指令以及第一计算数据,并将第一计算指令以及第一计算数据发送给云侧设备;端侧设备接收云侧设备发送的第一计算结果;其中,第一计算结果是计算资源执行第一计算指令对第一计算数据进行计算得到的计算结果。
通过上述方案,端侧设备根据自身的需求向云侧设备申请计算资源,端侧设备自身加载人工智能模型,然后在针对待分析数据运行人工智能模型产生计算指令以及计算数据,进而由云侧设备结合计算资源协助端侧设备执行计算指令执行计算数据的计算得到计算结果,即使端侧设备内部设置的专用计算器的计算能力无法满足软件和应用的要求,能够借助云侧设备来实现数据推理。另外,应用的开发无需结合云侧设备的部署,应用侧仅需将需要卸载到云侧的模型以及数据发送给云侧设备即可,简化应用的开发人员的开发难度,降低开发人员的工作量。
在一种可能的设计中,还包括:端侧设备向云侧设备发送算力服务注册请求,算力服务注册请求用于请求云侧设备为端侧设备提供算力服务;端侧设备接收云侧设备发送的算力服务注册响应,算力服务注册响应用于指示端侧设备已成功请求到云侧设备的算力服务。
在一种可能的设计中,端侧设备接收云侧设备发送的第一计算结果后,还包括:端侧设备运行第一人工智能模型对第二待分析数据执行推理,获得第二计算指令以及第二计算数据;端侧设备接收云侧设备发送的第二计算结果;其中,第二计算结果是计算资源执行第二计算指令对第二计算数据进行计算得到的计算结果。
在一种可能的设计中,该方法还包括:端侧设备完成计算资源的使用后,向云侧设备发送资源释放请求,资源释放请求用于请求释放计算资源;端侧设备接收云侧设备发送的资源释放响应,资源释放响应用于指示成功释放计算资源。
在一种可能的设计中,端侧设备向云侧设备发送资源申请请求之前,该方法还包括:端侧设备确定人工智能处理的部分任务或者全部任务由云侧设备处理。
在一种可能的设计中,该方法还包括:端侧设备确定人工智能处理的部分任务由云侧设备处理时,端侧设备在运行第一人工智能模型对第一待分析数据执行推理时,还产生第三计算指令以及第三计算数据;端侧设备执行第三计算执令对第三计算数据进行计算得到第三计算结果;端侧设备接收到接收云侧设备发送的第一计算结果后,端侧设备将第一计算结果和第三计算结果进行融合处理得到第一人工智能模型对第一待分析数据执行推理的推理结果。
第四方面,本申请实施例提供一种通信方法,包括:云侧设备接收来自端侧设备的资源申请请求,并获取端侧设备提供的用于实现人工智能处理所需的第一人工智能模型,资源申请请求用于请求实现人工智能功能所需的计算资源;云侧设备根据资源申请请求为端侧设备分配计算资源;云侧设备向端侧设备发送资源申请响应,资源申请响应用于指示云侧设备成功为端侧设备分配计算资源;云侧设备接收端侧设备发送的第一计算指令以及第一计算数据;云侧设备通过计算资源执行第一计算指令对第一计算数据进行计算得到计算结果;云侧设备将计算结果发送给端侧设备。
通过上述方案,端侧设备根据自身的需求向云侧设备申请计算资源,端侧设备自身加载人工智能模型,然后在针对待分析数据运行人工智能模型产生计算指令以及计算数据,进而由云侧设备结合计算资源协助端侧设备执行计算指令执行计算数据的计算得到计算结果,即使端侧设备内部设置的专用计算器的计算能力无法满足软件和应用的要求,能够借助云侧设备来实现数据推理。另外,应用的开发无需结合云侧设备的部署,应用侧仅需将需要卸载到云侧的模型以及数据发送给云侧设备即可,简化应用的开发人员的开发难度,降低开发人员的工作量。
在一种可能的设计中,云侧设备接收来自端侧设备的资源申请请求之前,还包括:云侧设备接收端侧设备发送的算力服务注册请求,算力服务注册请求用于请求云侧设备为端侧设备的用户提供算力服务;云侧设备向端侧设备发送算力服务注册响应,算力服务注册响应用于指示端侧设备的用户已成功请求到云侧设备的算力服务。
在一种可能的设计中,算力服务注册请求中携带计算资源信息,计算资源信息用于表征端侧设备所申请的算力规格;算力服务注册响应携带云侧设备为端侧设备分配的资源ID,资源ID用于标识计算资源信息;资源申请请求中携带资源ID,云侧设备根据资源申请请求为端侧设备分配计算资源,包括:
云端设备根据资源ID对应的计算资源信息为端侧设备分配计算资源。
在一种可能的设计中,资源申请请求中携带计算资源信息,计算资源信息用于表征端侧设备所申请的算力规格;云侧设备根据资源申请请求为端侧设备分配计算资源,包括:
云端设备根据计算资源信息为端侧设备分配计算资源。
在一种可能的设计中,云侧设备向端侧设备发送第一计算结果后,还包括:
云侧设备接收端侧设备发送的第二计算指令以及第二计算数据,通过计算资源运行第二计算指令对第二计算数据进行推理得到第二计算结果;并向端侧设备发送第二计算结果。
在一种可能的设计中,还包括:
云侧设备接收端侧设备发送的资源释放请求,资源释放请求用于请求释放计算资源;
云侧设备释放计算资源,并向端侧设备发送资源释放响应,资源释放响应用于指示成功释放计算资源。
第四方面的具体有益效果,可以参见第一方面的描述,此处不再赘述。
第五方面,本申请提供一种通信装置,用于端侧设备或端侧设备的芯片,包括用于执行前述第一方面或第一方面的任意可能的实现方式中的方法的单元或手段(means),或者包括用于执行前述第三方面或第三方面的任意可能的实现方式中的方法的单元或手段。
第六方面,本申请提供一种通信装置,用于云侧设备或云侧设备的芯片,包括用于执行前述第二方面或第二方面的任意可能的实现方式中的方法的单元或手段,或者包括用于执行前述第四方面或第四方面的任意可能的实现方式中的方法的单元或手段。
第七方面,本申请提供一种通信装置,用于端侧设备或端侧设备的芯片,包括至少一个处理元件和至少一个存储元件,其中所述至少一个存储元件用于存储程序和数据,所述至少一个处理元件用于执行前述第一方面或第一方面的任意可能的实现方式中的方法,或者用于执行前述第三方面或第三方面的任意可能的实现方式中的方法。
第八方面,本申请提供一种通信装置,用于云侧设备或云侧设备的芯片,包括至少一个处理元件和至少一个存储元件,其中所述至少一个存储元件用于存储程序和数据,所述至少一个处理元件用于执行前述第二方面或第二方面的任意可能的实现方式中的方法,或者用于执行前述第四方面或第四方面的任意可能的实现方式中的方法。
第九方面,本申请提供一种通信装置,包括处理器和接口电路,所述接口电路用于接收来自所述通信装置之外的其它通信装置的信号并传输至所述处理器或将来自所述处理器的信号发送给所述通信装置之外的其它通信装置,所述处理器通过逻辑电路或执行代码指令用于实现前述第一方面或第一方面的任意可能的实现方式中的方法,或者用于实现前述第三方面或第三方面的任意可能的实现方式中的方法。
第十方面,本申请提供一种通信装置,包括处理器和接口电路,所述接口电路用于接收来自所述通信装置之外的其它通信装置的信号并传输至所述处理器或将来自所述处理器的信号发送给所述通信装置之外的其它通信装置,所述处理器通过逻辑电路或执行代码指令用于实现前述第二方面或第二方面的任意可能的实现方式中的方法,或者用于实现前述第四方面或第四方面的任意可能的实现方式中的方法。
第十一方面,本申请提供一种计算机程序产品,该计算机程序产品包括计算机指令,当该计算机指令被执行时,使得前述第一方面或第一方面的任意可能的实现方式中的方法被执行,或使得前述第二方面或第二方面的任意可能的实现方式中的方法被执行,或使得前述第三方面或第三方面的任意可能的实现方式中的方法被执行,或使得前述第四方面或第四方面的任意可能的实现方式中的方法被执行。
第十二方面,本申请提供了一种计算机可读存储介质,该存储介质存储有计算机指令,当所述计算机指令被执行时,使得前述第一方面或第一方面的任意可能的实现方式中的方法被执行,或使得前述第二方面或第二方面的任意可能的实现方式中的方法被执行,或使得前述第三方面或第三方面的任意可能的实现方式中的方法被执行,或使得前述第四方面或第四方面的任意可能的实现方式中的方法被执行。
附图说明
图1为本申请实施例中一种可能的人工智能处理部署时实现方式示意图;
图2为本申请实施例中另一种可能的人工智能处理部署时实现方式示意图;
图3为本申请实施例中通信系统架构示意图;
图4为本申请实施例中第一种可能的通信方法流程示意图;
图5为本申请实施例中第一种可能的通信系统部署架构示意图;
图6为本申请实施例中第二种可能的通信方法流程示意图;
图7为本申请实施例中第二种可能的通信系统部署架构示意图;
图8为本申请实施例中第三种可能的通信方法流程示意图;
图9为本申请实施例中第四种可能的通信方法流程示意图;
图10为本申请实施例中第三种可能的通信系统部署架构示意图;
图11为本申请实施例中第五种可能的通信方法流程示意图;
图12为本申请实施例中第四种可能的通信系统部署架构示意图;
图13为本申请实施例中通信装置1300结构示意图。
具体实施方式
下面先对本申请涉及的技术术语进行解释说明。
1)运行时(Runtime)模块一般可以包括应用程序接口(application programminginterface,API)、运行时(Runtime)环境,硬件抽象层(hardware abstraction layer,HAL)。三个模块组成。
API,主要负责提供统一的模型管理、执行接口,以用来实现模型网络定义、编译、执行等步骤。
运行时环境,作为API的执行引擎,用于完成构建人工智能模型、装填人工智能模型的数据、加载输入的数据、推理运算等。此外,还可以对代码进行优化、生成为加速器专用的机器代码等。
HAL,提供统一的接口,屏蔽不同设备厂商的实现差异。开发者只需开发一套代码,便能运行于带有各种加速器芯片的设备上。
2)端侧设备,端侧设备具备人工智能处理的能力。人工智能,比如可以是计算机视觉,包括人脸检测、美颜瘦身变脸、Deepfakes等。再比如智能安防,包括人脸识别、车辆检测、鉴黄鉴暴等。再比如AR/VR,包括AR/VR游戏、VR建模等。端侧设备可以是手机(mobilephone)、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(mobile internet device,MID)、可穿戴设备、相机、车载设备、虚拟现实(virtual reality,VR)设备、增强现实(augmented reality,AR)设备、工业控制(industrial control)中的无线终端、无人驾驶(self driving)中的无线终端、远程手术(remote medical surgery)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端,或智慧家庭(smart home)中的无线终端等。
3)云侧设备,可以是部署有加速器的物理服务器或者服务器集群。云侧设备也可以称为计算节点或者云侧计算集群等。
4)人工智能模型,用于实现人工智能的推理模型,比如神经网络模型、深度学习模型、计算机视觉模型等。
目前在实现人工智能处理时,一种可能的方式是,在端侧设备上设置加速器。加速器区别于主处理器。加速器也可以称为协处理器。主处理器一般由中央处理单元(centralprocessing unit,CPU)来实现。加速器比如可以是图形处理器(graphics processingunit,GPU)、现场可编程门阵列(field programmable gate array,FPGA)、神经网络处理器(neural-network processing unit,NPU)或者专用集成电路(application specificintegrated circuit,ASIC)等。参见图1所示,端侧设备执行人工智能处理时,端侧设备侧运行推理模型得到推理结果,实现人工智能处理。端侧设备侧应用将采集的数据进行预处理后,可以调用运行时(runtime)模块接口,加载对应的推理模型和预处理好的数据。模型根据预处理好的数据执行推理过程,实现人工智能处理。端侧设备中也可以部署加速器。端侧设备的runtime可以通过调用加速器来执行模型运行时所需的计算,从而加速推理过程。当然如果端侧设备未部署加速器,可以通过CPU来执行模型运行时所需的计算。
由于成本、功耗、空间等的限制,应用运行所需要的硬件加速能力不是所有的端侧设备都能满足。比如一些端侧设备未部署加速器,可能会导致应用在端侧设备无法运行,或者会出现应用运行慢、耗电量大的问题。或者为了提供更好的用户体验,有些应用升级,但是应用升级可能需要更高的硬件加速能力,可能有些端侧设备不具备应用升级所需的硬件加速能力。
另一种可能的方式是,端侧设备执行人工智能处理时,可以基于云服务的方式为端侧设备提供人工智能处理的能力。参见图2所示,在云服务模式下,应用开发者根据自己业务特定,将算力开销大的推理部分包装成一个运行在云侧设备上特定的人工智能服务,如人脸识别服务、语音识别服务等。
端侧设备的应用将采集到的数据进行预处理后,通过网络调用云侧设备特定人工智能服务的API接口,将待分析数据的发送到特定的云服务(比如人脸识别服务)。人脸识别服务根据待分析的数据执行推理得到推理结果,并发送给端侧设备。
上述方式中,应用的开发需要结合云侧设备的部署,来确定将那些处理卸载到云侧设备执行。因此需要开发人员具备应用开发的能力以外,还需要具备云侧设备的服务开发能力。技术难度较高,工作量较高。并且云侧设备的服务部署、日常维护升级、扩容的要求较高,维护管理的难度大。
基于此,本申请实施例提供一种通信方法、装置及系统。参见图3所示为本申请实施例提供的系统架构示意图。系统中包括端侧设备以及云侧设备。下面结合图3对本申请实施例提供的通信方法流程进行说明。
本申请实施例中,人工智能模型的加载可以在端侧执行也可以在云侧执行。下面先对人工智能模型的加载由端侧执行的方案进行详细说明。参见图4所示,方法可以包括:
S401,端侧设备向云侧设备发送资源申请请求,从而云侧设备接收来自端侧设备的资源申请请求。资源申请请求用于请求实现人工智能功能所需的计算资源。
S402,云侧设备根据资源申请请求为端侧设备分配计算资源。
示例性地,云侧设备可以针对自身所部署的加速器进行虚拟化,比如可以采用虚拟化核的方式。云侧设备根据计算资源信息为端侧设备分配计算资源时,可以根据算力规格为端侧设备分配一个或者多个核。不同的核对应不同的算力实例。
示例性地,云侧设备可以根据计算资源信息确定算力规格。计算资源信息用于表征端侧设备的算力需求,即端侧设备的用户所请求的算力。计算资源信息比如可以是算力规格,算力规格可以是算力通用单位,比如每秒一万亿次的浮点运算(TFLOPS),或者采用每秒一万亿次的整型运算。计算资源信息还可以包括指定的硬件规格,比如某种硬件的型号。不同的硬件的型号对应不同的算力规格。
云侧设备根据计算资源信息确定算力规格时,一种方式中,计算资源信息包括算力规格,则云侧设备获得计算资源信息,即确定算力规格。另一种方式中,计算资源信息包括硬件规格,根据硬件规格确定算力规格。
云侧设备具体可以通过如下任一种示例来获得计算资源信息:
一种示例中,端侧设备可以在资源申请请求中携带该计算资源信息,从而云侧设备根据资源申请请求中的计算资源信息来为端侧设备分配计算资源。
另一种示例中,端侧设备向云侧设备注册算力服务的时候,可以将计算资源信息发送给云侧设备,从而云侧设备将计算资源信息对应的资源ID发送给端侧设备。从而端侧设备可以将资源ID携带在资源申请请求中发送给云侧设备,从而云侧设备可以根据资源ID对应的计算资源信息为端侧设备分配计算资源。具体的端侧设备向云侧设备注册算力的流程后续会详细说明,此处不进行赘述。
S403,端侧设备向云侧设备提供用于实现人工智能处理所需的第一人工智能模型。
示例性地,端侧设备向云侧设备提供用于实现人工智能处理所需的第一人工智能模型时,可以通过如下方式来实现:
一种可能的方式中,端侧设备可以直接将第一人工智能模型发送给云侧设备。作为一种示例,端侧设备可以将第一人工智能模型携带在资源申请请求中发送给云侧设备,也可以单独发送给云侧设备。
另一种可能的方式中,端侧设备可以将第一人工智能模型的下载地址发送给云侧设备,从而云侧设备根据第一人工智能模型的下载地址获取第一人工智能模型。
比如,第一人工智能模型的下载地址可以是统一资源定位符(uniform resourcelocator,URL)。
端侧设备可以将第一人工智能模型上传到网络的服务器上,将服务器的URL发送给云侧设备。从而云侧设备根据URL下载第一人工智能模型。端侧设备上传第一人工智能模型到网络的服务器或者云侧设备从网络的服务下载第一人工智能模型,均可以采用秒传技术,比如信息摘要算法5(message-digest algorithm,MD5)。
S404,云侧设备通过计算资源成功加载第一人工智能模型。
S405,云侧设备通过计算资源成功加载第一人工智能模型后,向端侧设备发送加载完成消息,从而端侧设备接收云侧设备发送的加载完成消息。加载完成消息用于指示云侧设备上的计算资源已成功加载第一人工智能模型。
S406,端侧设备向云侧设备提供第一待分析数据,从而云侧设备获取端侧设备提供的第一待分析数据。
示例性地,端侧设备向云侧设备提供第一待分析数据时,可以通过如下方式来实现:
一种可能的方式中,端侧设备可以直接将第一待分析数据发送给云侧设备。
另一种可能的方式中,端侧设备可以将第一待分析数据的下载地址发送给云侧设备,从而云侧设备根据第一待分析数据的下载地址获取第一待分析数据。
比如,第一待分析数据的下载地址可以是URL。端侧设备可以将第一待分析数据上传到网络的服务器上,并将服务器的URL发送给云侧设备。从而云侧设备根据第一待分析数据的URL下载第一待分析数据。端侧设备上传第一待分析数据到网络的服务器或者云侧设备从网络的服务下载第一待分析数据,均可以采用秒传技术,比如信息摘要算法5(message-digest algorithm,MD5)。
S407,云侧设备获取端侧设备提供的第一待分析数据后,通过所述计算资源运行加载的第一人工智能模型对第一待分析数据进行推理得到第一推理结果。云侧设备通过计算资源运行所述加载的第一人工智能模型,并将第一待分析数据输入到运行的第一人工智能模型得到第一推理结果。
S408,云侧设备将第一推理结果发送给端侧设备。
在一种可能的实施方式中,端侧设备向云侧设备发送资源申请请求之前,端侧设备可以向云侧设备注册或开户,按需从云侧设备而获得云侧算力服务。
云侧设备可以为用户提供使用云算力服务的注册、开户、充值或者算力购买等操作界面,用户可以根据操作界面指引执行相应的操作,调用云侧设备上云算力服务管控面的API,获得云算力服务。一方面,端侧设备可以部署与云侧设备(比如与云算力服务管控面)进行连接的插件或者应用((Application,APP),从而端侧设备可以根据插件或者APP获得操作界面。另一方面,云侧设备可以提供Web化的操作页面,支持用户的注册、开户、充值或资源购买等。
端侧设备的用户首次注册云算力服务时,可以先进行用户注册,用户注册完成后,然后申请算力服务。比如端侧设备响应用于用户的操作,向云侧设备发送用户注册请求,用户注册请求中可以携带用户的用户信息。用户信息用于表明用户身份。比如,用户信息可以包括用户的用户名或者用户标识(Identity,ID)、注册密码等。用户信息中还可以包括其它用于表明用户身份的信息,比如指纹信息等。用户信息可以用于用户后续向云侧设备再次执行充值、资源申请或购买等操作。
云侧设备接收到用户注册请求后,云侧设备可以在用于表明已申请算力服务的用户列表中记录该用户ID。端侧设备可以在向云侧设备发送的资源申请请求中携带用户ID,从而端侧设备验证用户ID所标识的用户已申请过算力服务时,进而执行根据计算资源信息为端侧设备分配所述计算资源。
用户注册完成后,端侧设备可以执行算力服务注册。比如,端侧设备响应用于用户获得云算力服务的操作,向云侧设备发送算力服务注册请求。云侧设备接收到算力服务注册请求后,云侧设备可以向端侧设备发送算力服务注册响应,算力服务注册响应用于指示端侧设备已成功请求所述云侧设备的算力服务。
作为一种示例,算力服务注册请求中可以携带计算资源信息,云侧设备在接收到算力服务注册请求后,可以为端侧设备的用户分配资源ID,资源ID用于标识计算资源信息。云侧设备可以关联保存计算资源信息和资源ID,并将资源ID发送给端侧设备,进而端侧设备可以在资源申请请求中携带该资源ID。
在一种可能的场景中,端侧设备可以按需求继续使用云侧设备加载的第一人工智能模型对新数据(比如第二待分析数据)进行推理运算。比如,端侧设备获得第一待分析数据的推理结果,若端侧设备上存在第二待分析数据,端侧设备将第二待分析数据提供给云侧设备,从而云侧设备获得第二待分析数据后,通过加载的第一人工智能模型对第二待分析数据进行推理得到第二推理结果。即云侧设备将第二待分析数据输入到加载的第一人工智能模型得到第二推理结果。然后,云侧设备将第二推理结果发送给端侧设备。
另一种可能的场景中,端侧设备可以按照需求继续使用已申请的计算资源加载第二人工智能模型,对新数据(比如第三待分析数据)进行推理运算。端侧设备向云侧设备提供第二人工智能模型,从而云侧设备获得第二人工智能模型后,采用计算资源加载所述第二人工智能模型。端侧设备向云侧设备提供第二人工智能模型之前,可以先向云侧设备申请人工智能模型销毁,比如向云侧设备发送模型销毁请求,模型销毁请求中可以携带第一人工智能模型的标识(比如模型名称),云侧设备接收到模型销毁请求后,释放计算资源所加载的第一人工智能模型。云侧设备可以向端侧设备发送模型销毁响应,端侧设备接收到模型销毁响应时,确定云侧设备执行第一人工智能模型销毁完成,可以向云侧设备提供第二人工智能模型。
上述端侧设备向云侧设备提供第二人工智能模型的方式,与向云侧设备提供第一人工智能模型的方式类似,此处不再赘述。上述端侧设备向云侧设备提供第二待分析数据或第三待分析数据的方式,与向云侧设备提供第一待分析数据的方式类似,此处不再赘述。
在一种可能的实施方式中,端侧设备在使用完计算资源完成推理后,可以向云侧设备申请释放计算资源。比如,端侧设备完成计算资源的使用后,向云侧设备发送资源释放请求,云侧设备接收到端侧设备发送的资源释放请求后,释放计算资源加载的人工智能模型,并释放所述计算资源。云侧设备可以向端侧设备资源释放响应,资源释放响应用于指示成功释放所述计算资源。
作为一种示例,云侧设备可以根据计算资源的申请时间、以及释放时间,记录本次使用计算资源的话单,可以用于对用户使用云算力服务的计费。
在一种可能的实施方式中,端侧设备在执行S401向云侧设备发送资源申请请求之前,先待分析数据的推理运算是否需要转移到云侧设备执行。
一种场景中,端侧设备根据配置信息确定人工智能处理的任务转移到云侧设备执行。从而执行S401-S408。
另一种场景中,端侧设备根据配置信息确定人工智能处理的任务由端侧设备执行。在该场景下无需再执行S401-S408。端侧设备可以通过内部的加速器加载人工智能模型,然后通过加载的人工智能模型对待分析数据进行推理得到推理结果。
又一种场景中,端侧设备根据配置信息确定人工智能处理的任务中一部分任务由云侧设备执行,另一部分任务由端侧设备执行。
端侧设备拆分的两部分任务,可以是串行模式执行、或者是并行模式执行、又或者是串并行混合模式执行。
串行模式,可以是将本地加速器执行的推理结果发送给到云侧设备,由云侧设备继续执行推理运算得到最终的推理结果。或者可以是将待分析数据发送给云侧设备,由云侧设备执行推理运算得到的推理结果返回端侧设备,从而端侧设备根据接收到的推理结果继续执行推理运算得到最终的推理结果。
并行模式,可以是本地加速器执行推理运算得到的推理结果,与云侧设备执行推理运算得到的推理结果进行合并。
串并混合模式,可以是先串行执行后并行执行,又或者可以是先并行执行后串行执行。
又一种场景中,端侧设备可以根据本地加速器的算力以及注册的第二计算资源的算力将人工智能处理的任务分成两部分,将一部分任务转到云侧设备执行,另一部分任务由端侧设备执行。
下面结合附图对本申请实施例中端侧设备以及云侧设备的部署进行说明。
参见图5所示,为一种可能的部署方式的示意图。端侧设备中包括应用模块、算力服务驱动模块。应用模块,可以是人工智能应用(APP)。应用模块,用于执行待分析数据的采集、预处理,还可以用于提供人工智能模型。
应用模块属于应用层。应用层之下为runtime层,runtime层之下可以包括驱动层。驱动层之下为硬件资源层,比如包括加速硬件,网卡等。运行时API,运行时环境、HAL位于runtime层。
算力服务驱动模块,可以用于提供虚拟算力加速硬件的驱动功能。算力服务驱动模块可以称为远程直接计算访问(remote direct computation access,RDCA)agent或者RDCA驱动(driver)功能。算力服务驱动模块,还用于调用云侧设备中的算力服务数据面,执行推理运算处理;还具备可靠上传功能,比如将应用模块的人工智能模型和待分析数据提供给云侧设备。算力服务驱动模块可以部署于runtime层。算力服务驱动模块具有虚拟运行时环境,可以理解为云侧运行时模块的代理。算力服务驱动模块具备虚拟驱动的功能,用于连接网卡与云端设备之间进行通信。
云侧设备包括算力服务代理模块,以及算力服务控制模块。
算力服务代理模块,还可以称为RDCA Daemon或者RDCA proxy功能。算力服务代理模块负责接收&鉴权算力服务驱动模块的资源申请请求,鉴权通过后按需从算力服务控制模块申请端侧设备所需的算力。并根据算力服务控制模块为端侧分配计算资源。算力服务代理模块还负责获取算力服务驱动模块提供的人工智能模型以及待分析数据,进而通过计算资源加载人工智能模型,并对待分析数据进行推理运算得到推理结果,返回给端侧设备。
算力服务控制模块可以称为RDCA Control功能或者RDCA Manager功能。算力服务控制模块负责云侧计算资源的管理与分配。算力服务控制模块还支持按算力/设备类型的计算资源的申请与回收。还可以支持计算资源的使用话单记录。
云侧设备还可以包括云端运行时模块,用于调用计算资源执行加载人工智能模型与待分析数据得到推理结果。云端运行时模块也可以称为云运行时(Cloud Runtime)功能。
端侧设备也可以包括端侧运行时API,用于连接应用模块与算力服务驱动模块,端侧运行时API还可以用于判断人工智能处理由云侧执行或者由端侧执行。
在一种可能的实施方式中,云侧设备支持端侧设备的算力服务注册。端侧设备还可以部署注册模块。云侧设备可以部署算力服务模块。算力服务模块也可以称为RDCAservice功能。算力服务模块,具备实现云算力服务的注册、开户、充值、资源购买等功能。还可以负责根据计算资源的使用话单记录,生成租户账单。注册模块可以是安装在端侧设备上插件或者APP。注册模块比如可以是RDCA客户端(client)APP。注册模块与算力服务模块之间可以通过云算力服务管控面API连接。注册模块负责提供用户使用云算力服务的注册、开户、充值、资源购买等操作界面,并根据用户的操作,调用云算力服务管控面API与实现对应功能。注册模块还可以根据用户的设置,设定算力服务驱动模块的工作状态与工作模式,比如欠费时提示用户、所申请的虚拟算力规格,如虚拟Nvidia TX2加速卡等。
云侧设备上还可以包括控制台模块,支持提供Web化的操作页面,支持用户的注册、开户、充值或资源购买等。控制台模块也可以称为RDCA控制台(Console)功能。
下面结合图5所提供的云侧设备以及端侧设备的部署架构对本申请实施例提供的方案进行详细说明。参见图6为本申请实施例提供的通信方法流程示意图。图6中,以端侧设备根据配置信息确定待分析数据的推理运算的任务由云侧设备执行为例。以端侧设备在算力服务注册过程中获取到云侧设备分配的资源ID为例。具体关于算力服务注册流程的相关说明,参见图4对应的实施例,此处不再赘述。
云端设备中部署多种具备不同硬件规格或算力规则的加速器,构成计算资源池,用于为不同的注册用户提供算力服务。加速器上电启动后,可以注册到算力服务控制模块,由算力服务控制模块负责计算资源池中各个加速器的维护、管理、申请与分配。多个加速器可以物理加速器,还可以是经过虚拟化处理得到的虚拟加速器。比如,采用CPU虚拟化核的类似方式对运算设备上部署硬件计算资源进行虚拟化处理。
S601,应用模块需要实现人工智能处理时,向端侧运行时API(即人工智能模型的加载接口)发送模型加载请求,模型加载请求中携带人工智能模型的名称和人工智能模型的文件路径。
人工智能模型,比如可以是HiAI,或者Tensorflow或者安卓神经网络(AndroidNeural Networks API,NNAPI)模型。TensorFlowTM是一个基于数据流编程(dataflowprogramming)的符号数学系统,被广泛应用于各类机器学习(machine learning)算法的编程实现。
HiAI是面向智能终端的AI能力开放平台。NNAPI是一个基于Android系统的用于可在移动设备上运行与机器学习相关的计算密集型操作的C语言API,NNAPI将为更高层次的可构建和训练神经网络的机器学习框架提供底层支持。
S602,端侧运行时API接收到模型加载请求后,确定人工智能的推理运算由云侧设备执行或者在本地执行。图6中以由云侧设备执行为例。具体的可以根据配置信息确定由云侧设别执行或者在本地执行。确定由云侧设备执行,将模型加载请求发送给算力服务驱动模块。
示例性地,端侧设备的用户可以根据注册模块或者端侧运行时环境(Runtime)提供的操作界面,设置人工智能处理由云侧设备执行或者在本地执行。
作为一种示例,注册模块不仅为用户提供向云侧设备注册算力服务的操作界面,还可以为用户提供用于配置是否由云侧设备执行人工智能处理的操作界面。
作为另一种示例,端侧运行时环境为用户提供用于配置是否由云侧设备执行人工智能处理的操作界面。
S603,算力服务驱动模块向云侧设备发送资源申请请求1,从而云侧设备的算力服务代理模块(RDCA Daemon或者RDCAproxy功能)接收来自端侧设备的资源申请请求1。资源申请请求1用于请求实现人工智能功能所需的计算资源信息,即算力需求。
示例性地,资源申请请求1携带硬件规格或算力规格。资源申请请求1中还可以携带代理(agent)ID。代理ID可以包括资源ID,代理ID还可以包括用户ID、端侧设备的ID中至少一项。用户ID以及端侧设备的ID可以用于后续计算资源的使用计费。
S604,算力服务代理模块接收到资源申请请求1后,向算力服务控制模块发送资源申请请求2。资源申请请求2中携带Agent ID。
S605,算力服务控制模块接收到资源申请请求2后,根据资源ID对应的计算资源信息(比如算力规格或硬件规格)为端侧设备分配计算资源。算力服务控制模块可以将计算资源的ID发送给算力服务代理模块,比如可以将计算资源的ID携带资源申请响应2中发送给算力服务代理模块。从而算力服务代理模块可以维护代理ID与计算资源的ID之间的对应关系。计算资源的ID包括计算资源的实例ID,还可以包括硬件资源的ID或硬件的通信IP地址等中的至少一项。比如,硬件资源可以是板卡。
S606,算力服务代理模块向算力服务驱动模块发送资源申请响应1,算力服务响应1用于指示算力资源申请成功。算力服务响应中可以携带agent ID。
S607,算力服务驱动模块向算力服务代理模块提供用于实现人工智能处理所需的第一人工智能模型。
一种可能的方式中,算力服务驱动模块可以直接将第一人工智能模型发送给算力服务代理模块。作为一种示例,算力服务代理模块可以将第一人工智能模型携带在资源申请请求中发送给算力服务代理模块,也可以单独发送给算力服务代理模块。图6中以该种方式为例进行说明。在该方式下,算力服务代理模块接收到算力服务控制模块发送的算力服务响应2后,可以直接执行S608,即调用云侧运行时模块加载所述第一人工智能模型。
另一种可能的方式中,算力服务驱动模块可以将第一人工智能模型的下载地址发送给算力服务代理模块,从而算力服务代理模块根据第一人工智能模型的下载地址获取第一人工智能模型。
算力服务驱动模块可以将第一人工智能模型上传到网络的服务器上,将服务器的URL发送给算力服务代理模块。从而算力服务代理模块根据URL下载第一人工智能模型。算力服务驱动模块上传第一人工智能模型到网络的服务器或者云侧设备从网络的服务下载第一人工智能模型,均可以采用秒传技术,比如MD5。
S608,算力服务代理模块根据预先存储的代理ID与计算资源的ID之间的对应关系,调用云(cloud)Runtime模块加载所述第一人工智能模型。
S609,算力服务代理模块加载成功后,向算力服务驱动模块发送模型加载成功的指示。
S610,算力服务驱动模块通过端侧运行时API将模型加载成功的指示发送给应用模块。
S611,应用模块将待分析数据通过端侧运行时API发送给算力服务驱动模块。
示例性地,应用模块将待分析数据发送给算力服务驱动模块时,可以直接发送待分析数据,或者待分析数据的存储路径发送给算力服务驱动模块,从而算力服务驱动模块根据待分析数据的存储路径获得待分析数据。
S612,算力服务驱动模块获得待分析数据后,可以将待分析数据提供给算力服务代理模块。
示例性地,算力服务驱动模块向算力服务代理模块提供待分析数据时,可以通过如下方式来实现:
一种可能的方式中,算力服务驱动模块可以直接将待分析数据发送给算力服务代理模块。图6中以该种方式为例进行说明。
另一种可能的方式中,算力服务驱动模块可以将待分析数据的下载地址发送给算力服务代理模块,从而算力服务代理模块根据待分析数据的下载地址获取待分析数据。
比如,待分析数据的下载地址可以是URL。算力服务驱动模块可以将待分析数据上传到网络的服务器上,并将服务器的URL发送给算力服务代理模块。从而算力服务代理模块根据待分析数据的URL下载待分析数据。算力服务驱动模块上传待分析数据到网络的服务器或者算力服务代理模块从网络的服务下载待分析数据,均可以采用秒传技术,比如MD5。
S613,算力服务代理模块获得待分析数据后,调用云侧runtime模块,执行第一人工智能模型的运行。具体的,算力服务代理模块向云侧运行时模块发送模型运行请求,模型运行请求携带Agent ID、待分析数据、计算资源的ID。
S614,云侧运行时模块接收到模型运行请求后,调用计算资源的ID对应的计算资源(即硬件资源)运行第一人工智能模型对待分析数据进行推理得到推理结果。
S615,云侧运行时模块将推理结果发送给算力服务代理模块。
S616,算力服务代理模型将推理结果发送给算力服务驱动模块。
S617,算力服务驱动模块通过端侧运行时API发送给应用模块。
S618,应用模块确定不需要执行人工智能处理时,可以申请进行人工智能模型销毁。比如,应用模块可以调用模型销毁接口向算力服务驱动模块发送资源释放请求。
S619,算力服务驱动模块将资源释放请求发送给算力服务代理模块。资源释放请求可以携带人工智能模型的名称以及Agent ID。
S620,算力服务代理模块向云侧运行时模块申请释放第一人工智能模型。具体的,算力服务代理模块向云侧运行时模块发送模型释放请求,模型释放请求中携带人工智能模型的名称。
S621,云侧运行时模块释放人工智能模型成功后,可以向算力服务代理模块发送模型成功释放指示。
S622,算力服务代理模块根据Agent ID通知算力服务控制模块释放计算资源。
S623,算力服务控制模块完成释放计算资源后,向算力服务代理模块发送资源成功释放指示。
S624,算力服务代理模块确定完成资源释放后,向算力服务驱动模块发送资源释放响应,资源释放响应用于指示资源释放成功。
S625,算力服务驱动模块向应用模型转发所述资源释放响应。
作为一种示例,算力服务控制模块可以根据计算资源的申请时间、以及释放时间,记录本次使用计算资源的话单,可以用于后续对用户使用云算力服务的计费。
参见图7所示,为另一种可能的部署方式的示意图。图7所示的部署方式与图5所示的部署方式的区别在于:图7中端侧设备中部署加速器,即端侧设备中包括用于实现加速的硬件资源。端侧设备中还包括加载人工智能模型的端侧运行时环境。在图7所示的部署方式下,人工智能模型处理的任务可以结合实际情况来确定由云侧设备执行,或者由端侧设备执行,或者由云侧设备与端侧设备协同执行。
下面对由云侧设备与端侧设备协同执行的情况进行详细说明。
端侧设备可以根据配置信息确定待分析数据的人工智能处理的任务中一部分任务由云侧设备执行,另一部分任务由端侧设备执行。端侧设备可以根据本地加速器的算力以及注册的第二计算资源的算力将人工智能处理的任务分成两部分,将一部分任务转到云侧设备执行,另一部分任务由端侧设备执行。在情况下,端侧设备中还部署拆分模块,用于将人工智能处理的任务进行拆分处理,比如将使用的人工智能模型进行拆分处理,以及将分析的数据进行拆分处理。
拆分模块对人工智能模型进行拆分处理时,可以通过如下任一种示例提供的方式进行说明:
一种可能的示例中,应用模块触发的模型加载请求中携带拆分指示,拆分指示用于指示拆分人工智能模型的拆分规则。从而拆分模块接收到拆分指示后,对人工智能模型进行拆分处理。
另一种可能的示例中,可以在拆分模块配置不同的人工智能模型分别对应的拆分规则。比如不同的人工智能模型名称与拆分规则存在一一对应关系。模型加载请求中携带人工智能模型的名称,拆分模块可以根据该人工智能模型的名称对应的拆分规则对人工智能模型进行拆分处理。另外,拆分模块还可以配置通用的拆分规则,针对无法匹配对应关系的人工智能模型,可以采用通用的拆分规则执行拆分处理。
又一种示例中,拆分模块根据本地加速器的算力以及申请的计算资源的算力拆分人工智能模型。
在示例下,拆分模块可以在资源申请之前,执行拆分,则根据本地加速器的算力以及注册的第二计算资源的算力执行拆分处理。拆分模块也可以在进行资源申请之后,执行拆分,则根据本地加速器的算力以及申请的第二计算资源的算力执行拆分处理。
拆分模块拆分的两部分任务,可以是串行模式执行、或者是并行模式执行、又或者是串并行混合模式执行。
串行模式,可以是将本地加速器执行的推理结果发送给到云侧设备,由云侧设备继续执行推理运算得到最终的推理结果。或者可以是将待分析数据发送给云侧设备,由云侧设备执行推理运算得到的推理结果返回拆分模块,从而拆分模块根据接收到的推理结果继续执行推理运算得到最终的推理结果。
并行模式,可以是本地加速器执行推理运算得到的推理结果,与云侧设备执行推理运算得到的推理结果进行合并。在该并行模式下,拆分模块可以将待分析数据拆分为两部分,比如待分析数据1和待分析数据2。拆分模块可以将人工智能模型拆分为两部分,云侧模型内容以及端侧模型内容。
串并混合模式,可以是先串行执行后并行执行,又或者可以是先并行执行后串行执行。在该方式根据串并行混合模式对应的拆分规则进行拆分处理。拆分模块协调云侧设备和端侧设备的硬件资源执行推理,并协调云侧设备和端侧设备的硬件资源的推理结果。
参见图8为本申请实施例提供的通信方法流程示意图。图8仅示意性的描述并行模型的流程。
端侧设备可以通过注册模块或者控制台模块提供的Web页面,按照需求向云侧设备开通或者购买云算力服务。开通或者购买云算力服务的方式可以参见图4或图6对应的实施例中的相关说明,此处不再赘述。端侧设备从云侧设备购买或开通云算力服务获得的硬件资源以第二计算资源为例。
S801,参见S601,此处不再赘述。
S802,端侧运行时API接收到模型加载请求后,将模型加载请求发送给拆分模块。
模型加载请求中携带使用的人工智能模型,或者人工智能模型的存储路径。
S803,拆分模块解析人工智能模型,并对使用的人工智能模型进行拆分处理,比如拆分为人工智能模型1和人工智能模型2。人工智能模型1包括拆分后云侧模型内容,人工智能模型2包括拆分后端侧模型内容。
S804,拆分模块将人工智能模型1发送给算力服务驱动模块。
S805,算力服务驱动模块向算力服务代理模块发送给资源申请请求1。资源申请请求1中携带人工智能模型1。另外,资源申请请求1和人工智能模型1可以分开发送给算力服务代理模块。
S806-S807,参见S604-S605,此处不再赘述。
S808,算力服务代理模块调用云侧运行时模块加载人工智能模型1。
S809,算力服务代理模块加载成功后,向算力驱动模块发送给资源申请响应1。资源申请响应1中携带云侧模型加载成功的指示。
S810,参见S610,此处不再赘述。
S811,拆分模块拆解人工智能模型后,调用端侧runtime加载人工智能模型2。
S812,在加载人工智能模型2完成后,通过端侧运行时API将端侧模型加载成功指示以及云侧模型加载成功指示合并为模型加载成功指示后发送给应用模块。
本申请实施例中不限定S804-S810,与S812之间的先后执行顺序。
S813,应用模块将待分析数据发送给拆分模块。
S814,拆分模块将待分析数据拆分为待分析数据1和待分析数据2。
S815,拆分模块将待分析数据1发送给算力服务驱动模块。
S816-S820,参见S612-S616,此处不再赘述。
S821,算力服务驱动模块将推理结果1发送给拆分模块。
S822,拆分模块将待分析数据2发送给端侧runtime。
S823,端侧runtime通过加速器运行加载的人工智能模型2对待分析数据2进行推理得到推理结果2。
S824,端侧runtime将推理结果2发送给拆分模块。
S825,拆分模块对推理结果1和推理结果2进行融合处理得到推理结果3。
S826,拆分模块将推理结果3发送给应用模块。
下面对人工智能模型的加载由云侧执行的方案进行详细说明。参见图9所示,方法可以包括:
S901,端侧设备向云侧设备发送资源申请请求,从而云侧设备接收来自端侧设备的资源申请请求。资源申请请求用于请求实现人工智能功能所需的计算资源。
关于计算资源信息的相关说明参见图4对应的实施例,此处不再赘述。
S902,云侧设备根据资源申请请求为端侧设备分配计算资源。
示例性地,云侧设备可以针对自身所部署的加速器进行虚拟化,比如可以采用虚拟化核的方式。云侧设备根据计算资源信息为端侧设备分配计算资源时,可以根据算力规格为端侧设备分配一个或者多个核。不同的核对应不同的算力实例。
云侧设备根据资源申请请求为端侧设备分配计算资源的方式可以参见图4对应的实施例,此处不再赘述。
S903,云侧设备向端侧设备发送资源申请响应,所述资源申请响应用于指示所述云侧设备成功为所述端侧设备分配计算资源。
S904,端侧设备在运行用于实现人工智能功能的第一人工智能模型对第一待分析数据执行推理时产生第一计算指令以及第一计算数据。
具体的,端侧设备可以先加载第一人工智能模型,并获得第一待分析数据。然后运行第一人工智能模型对第一待分析数据执行推理,产生第一计算指令以及第一计算数据。
需要说明的是,端侧设备在运行第一人工智能模型对第一待分析数据执行推理可以产生一个或者多个计算指令和一个或多个计算数据。比如产生一个计算指令,多个计算数据,该一个计算指令用于执行多个计算数据。再比如,产生K个计算指令和K个计算数据,计算指令与一个计算数据一一对应。再比如,产生K个计算指令和M个计算数据,计算指令与一个计算数据不一一对应。另外,本申请实施例中多个计算指令和多个计算数据可以一次产生,还可以分多次产生,分不同次发送给云侧设备。本申请实施例中以向云侧设备发送第一计算指令和第一计算数据为例。第一计算指令是端侧设备运行第一人工智能模型对第一待分析数据执行推理产生的任一计算指令,第一计算数据是第一计算指令对应的计算数据。
S905,端侧设备将第一计算指令以及第一计算数据发送给云侧设备。
S906,云侧设备通过计算资源执行所述第一计算指令对第一计算数据进行计算得到第一计算结果。
S907,云侧设备将所述第一计算结果发送给端侧设备。从而端侧设备从云侧设备接收第一计算结果。
示例性地,除了S905所示的方式外,端侧设备也可以通过如下方式将第一计算指令以及第一计算数据提供给云侧设备:
端侧设备可以将用于存储第一计算指令和第一计算数据的网络服务器的下载地址发送给云侧设备,从而云侧设备根据下载地址获取第一计算指令以及第一计算数据。
比如,端侧设备可以将第一计算指令和第一计算数据上传到网络的服务器上,将服务器的URL发送给云侧设备。从而云侧设备根据URL下载第一计算指令和第一计算数据。端侧设备上传第一计算指令和第一计算数据到网络的服务器或者云侧设备从网络的服务下载第一计算指令和第一计算数据,均可以采用秒传技术,比如MD5。
在一种可能的实施方式中,端侧设备向云侧设备发送资源申请请求之前,端侧设备可以向云侧设备注册或开户,按需从云侧设备而获得云侧算力服务。具体的注册或开户的方式可以参见图4对应的实施例的描述,此处不再赘述。
在一种可能的场景中,端侧设备可以按需求继续使用云侧设备的计算资源实现人工智能处理。比如,端侧设备获得第一计算结果,若端侧设备上存在第二待分析数据,端侧设备可以根据加载的第一人工智能模型(或者采用其它的人工智能模型)以及第二待分析数据获得第二计算指令以及第二计算数据;从而云侧设备通过计算资源继续执行第二计算指令对第二计算数据进行计算得到第二计算结果,并将第二计算结果发送给端侧设备。从而端侧设备接收云侧设备发送的第二计算结果。需要说明的是,端侧设备在运行第一人工智能模型对第二待分析数据执行推理也可以产生一个或者多个计算指令和一个或多个计算数据。本申请实施例中以向云侧设备发送第二计算指令和第二计算数据为例。第二计算指令是端侧设备运行第一人工智能模型对第二待分析数据执行推理产生的任一计算指令,第二计算数据是第二计算指令对应的计算数据。
在一种可能的实施方式中,端侧设备在使用完计算资源完成计算后,可以向云侧设备申请释放计算资源。比如,端侧设备完成计算资源的使用后,向云侧设备发送资源释放请求,云侧设备接收到端侧设备发送的资源释放请求后,并释放所述计算资源。云侧设备可以向端侧设备资源释放响应,资源释放响应用于指示成功释放所述计算资源。
作为一种示例,云侧设备可以根据计算资源的申请时间、以及释放时间,记录本次使用计算资源的话单,可以用于对用户使用云算力服务的计费。
在一种可能的实施方式中,端侧设备在执行S901向云侧设备发送资源申请请求之前,端侧设备确定人工智能处理的部分任务或者全部任务是否需要由云侧设备执行。
一种场景中,端侧设备根据配置信息确定待分析数据的推理运算的任务转移到云侧设备执行。从而执行S901-S907。
另一种场景中,端侧设备根据配置信息确定人工智能处理的任务由端侧设备执行。在该场景下无需再执行S901-S907。端侧设备可以通过内部的加速器加载人工智能模型,然后通过加载的人工智能模型对待分析数据进行推理得到推理结果。
又一种场景中,端侧设备根据配置信息确定待分析数据的推理运算的任务中一部分任务由云侧设备执行,另一部分任务由端侧设备执行。
示例性地,端侧设备确定人工智能处理的部分任务由云侧设备处理时,端侧设备在运行第一人工智能模型对第一待分析数据执行推理时,在产生由云侧执行的第一计算指令和第一计算数据的基础上,还产生由端侧执行的第三计算指令以及第三计算数据;端侧设备执行第三计算执令对第三计算数据进行计算得到第三计算结果;端侧设备接收到接收云侧设备发送的第一计算结果后,端侧设备将第一计算结果和第三计算结果进行融合处理得到第一人工智能模型对第一待分析数据执行推理的推理结果。
具体可以参见图4对应的实施例的相关说明,此处不再赘述。
下面结合附图对本申请实施例中端侧设备以及云侧设备的部署进行说明。
参见图10所示,为一种可能的部署方式的示意图。端侧设备中包括应用模块、运行时(runtime)模块(包括运行时API,运行时环境、HAL),算力服务驱动模块。应用模块,可以是人工智能应用(APP)。应用模块,用于执行待分析数据的采集、预处理,还可以用于提供人工智能模型。
应用模块属于应用层。应用层之下为runtime层,runtime之下可以包括驱动层。驱动层之下为硬件资源层。Runtime模块位于runtime层。
算力服务驱动模块,可以用于提供虚拟算力加速硬件的驱动功能。算力服务驱动模块可以称为远程直接计算访问(remote direct computation access,RDCA)agent或者RDCA驱动(driver)功能。算力服务驱动模块,还用于调用云侧设备中的算力服务数据面,执行推理运算处理;还具备可靠上传功能,比如将runtime层产生的计算指令和计算数据(比如第一计算指令和第一计算数据,或者第二计算指令和第二计算数据)提供给云侧设备。算力服务驱动模块可以部署于端侧设备的runtime层之下,比如部署于驱动层。
云侧设备包括算力服务代理模块,以及算力服务控制模块。
算力服务代理模块,还可以称为RDCA Daemon或者RDCA proxy功能。算力服务代理模块负责接收&鉴权算力服务驱动模块的资源申请请求,鉴权通过后按需从算力服务控制模块申请端侧设备所需的算力。并根据算力服务控制模块为端侧分配计算资源。算力服务代理模块还负责获取算力服务驱动模块提供的人工智能模型以及待分析数据,进而通过计算资源加载人工智能模型,并对待分析数据进行推理运算得到推理结果,返回给端侧设备。
算力服务控制模块可以称为RDCA Control功能或者RDCA Manager功能。算力服务控制模块负责云侧计算资源的管理与分配。算力服务控制模块还支持按算力/设备类型的计算资源的申请与回收。还可以支持计算资源的使用话单记录。
云侧设备还可以包括云端运行时模块,用于调用计算资源执行加载人工智能模型与待分析数据得到推理结果。云端运行时模块也可以称为云运行时(Cloud Runtime)功能。
端侧设备也可以包括端侧运行时API,用于连接应用模块与算力服务驱动模块,端侧运行时API还可以用于判断人工智能处理由云侧执行或者由端侧执行。
在一种可能的实施方式中,云侧设备支持端侧设备的算力服务注册。端侧设备还可以部署注册模块。云侧设备可以部署算力服务模块。算力服务模块也可以称为RDCAservice功能。算力服务模块,具备实现云算力服务的注册、开户、充值、资源购买等功能。还可以负责根据计算资源的使用话单记录,生成租户账单。注册模块可以是安装在端侧设备上插件或者APP。注册模块比如可以是RDCA客户端(client)APP。注册模块与算力服务模块之间可以通过云算力服务管控面API连接。注册模块负责提供用户使用云算力服务的注册、开户、充值、资源购买等操作界面,并根据用户的操作,调用云算力服务管控面API与实现对应功能。注册模块还可以根据用户的设置,设定算力服务驱动模块的工作状态与工作模式,比如欠费时提示用户、所申请的虚拟算力规格,如虚拟Nvidia TX2加速卡等。
云侧设备上还可以包括控制台模块,支持提供Web化的操作页面,支持用户的注册、开户、充值或资源购买等。控制台模块也可以称为RDCA控制台(Console)功能。
下面结合图10所提供的云侧设备以及端侧设备的部署架构对本申请实施例提供的方案进行详细说明。参见图11为本申请实施例提供的通信方法流程示意图。图11中,以端侧设备根据配置信息确定待分析数据的推理运算的任务由云侧设备执行为例。
1101,注册模块向算力服务驱动模块发送资源申请请求1,资源申请请求1用于请求实现人工智能功能所需的计算资源,即算力需求。
示例性地,资源申请请求1携带代理(agent)ID。代理ID可以包括资源ID,还包括用户ID、端侧设备的ID中至少一项。用户ID以及端侧设备的ID可以用于后续计算资源的使用计费。
S1102,算力服务驱动模块接收到资源申请请求1后,向云侧设备发送资源申请请求1,从而云侧设备的算力服务代理模块(RDCA Daemon或者RDCA proxy功能)接收来自端侧设备的资源申请请求1。
S1103,算力服务代理模块接收到资源申请请求1后,向算力服务控制模块发送资源申请请求2。资源申请请求2中携带Agent ID。
S1104,算力服务控制模块接收到资源申请请求2后,根据资源ID对应的计算资源信息为端侧设备分配计算资源。算力服务控制模块可以将计算资源的ID发送给算力服务代理模块,比如可以将计算资源的ID携带资源申请响应2中发送给算力服务代理模块。从而算力服务代理模块可以维护代理ID与计算资源的ID之间的对应关系。计算资源的ID包括计算资源的实例ID,还可以包括硬件资源的ID或硬件的通信IP地址等中的至少一项。比如,硬件资源可以是板卡。
S1105,算力服务代理模块向算力服务驱动模块发送资源申请响应1,算力服务响应1用于指示算力资源申请成功。算力服务响应中可以携带agent ID。
S1106,算力服务驱动模块将资源申请响应1转发给注册模块。
S1107,应用模块需要实现人工智能处理时,向端侧runtime模块(即人工智能模型的加载接口)发送模型加载请求,模型加载请求中携带人工智能模型的名称和人工智能模型的文件路径。
S1108,runtime模块接收到模型加载请求后,加载所述人工智能模型,并向应用模块发送模型加载响应。
S1109,应用模块向runtime模块发送运行模型指令,运行模型指令携带模型待分析数据或者待分析数据的存储路径。
S1110,runtime模块运行所述人工智能模型执行所述待分析数据的推理,获得第一计算数据以及第一计算指令,并将第一计算数据和第一计算指令发送给算力服务驱动模块。
S1111,算力服务驱动模块获得第一计算数据以及第一计算指令后,可以将第一数据以及第一计算指令提供给算力服务代理模块。
S1112,算力服务代理模块获得第一计算数据以及第一计算指令后,将第一计算数据以及第一计算指令发送给云侧运行时模块。具体的,算力服务代理模块向云侧运行时模块发送计算指令。
S1113,云侧运行时模块接收到模型运行请求后,调用计算资源的ID对应的计算资源(即硬件资源)执行第一计算指令对第一计算数据进行计算得到第一计算结果。
S1114,云侧运行时模块将第一计算结果发送给算力服务代理模块。
S1115,算力服务代理模型将第一计算结果发送给算力服务驱动模块。
S1116,算力服务驱动模块通过端侧runtime模块将第一计算结果发送给应用模块。
S1117,注册模块确定不需要执行人工智能处理时,可以申请进行资源释放。比如,注册模块可以向算力服务驱动模块发送资源释放请求。
S1118,算力服务驱动模块将资源释放请求发送给算力服务代理模块。资源释放请求可以携带算力实例的ID以及Agent ID。
S1119,算力服务代理模块根据Agent ID通知算力服务控制模块释放计算资源。
S1120,算力服务控制模块完成释放计算资源后,向算力服务代理模块发送资源成功释放指示。
S1121,算力服务代理模块确定完成资源释放后,向算力服务驱动模块发送资源释放响应,资源释放响应用于指示资源释放成功。
S1121,算力服务驱动模块向注册模块转发所述资源释放响应。
作为一种示例,算力服务控制模块可以根据计算资源的申请时间、以及释放时间,记录本次使用计算资源的话单,可以用于后续对用户使用云算力服务的计费。
参见图12所示,为另一种可能的部署方式的示意图。图12所示的部署方式与图10所示的部署方式的区别在于:图12中端侧设备中部署加速器,即端侧设备中包括用于实现加速的硬件资源。在图12所示的部署方式下,人工智能模型处理的任务可以结合实际情况来确定由云侧设备执行,或者由端侧设备执行,或者由云侧设备与端侧设备协同执行。
下面对由云侧设备与端侧设备协同执行的情况进行详细说明。
端侧设备可以根据配置信息确定人工智能处理的任务中一部分任务由云侧设备执行,另一部分任务由端侧设备执行。端侧设备可以根据本地加速器的算力以及注册的第二计算资源的算力将人工智能处理的任务分成两部分,将一部分任务转到云侧设备执行,另一部分任务由端侧设备执行。拆分任务的功能可以由端侧runtime模块来实现,用于将人工智能处理的任务进行拆分处理,比如将运行人工智能模型对待分析数据进行推理产生的计算指令和计算数据分别进行拆分处理。
端侧runtime模块对人工智能模型进行拆分处理时,可以通过如下任一种示例提供的方式进行说明:
一种可能的示例中,端侧runtime模块触发的运行模型指令中携带拆分指示,拆分指示用于指示拆分人工智能模型的拆分规则。从而端侧runtime模块接收到拆分指示后,根据拆分指示,将运行人工智能模型对待分析数据进行推理产生的计算指令和计算数据,分别进行拆分处理。
另一种可能的示例中,可以在端侧runtime模块配置不同的人工智能模型分别对应的拆分规则。比如不同的人工智能模型名称与拆分规则存在一一对应关系。运行模型指令中携带人工智能模型的名称,拆分模块可以根据该人工智能模型的名称对应的拆分规则对计算指令和计算数据进行拆分处理。另外,端侧runtime模块还可以配置通用的拆分规则,针对无法匹配对应关系的人工智能模型,可以采用通用的拆分规则执行拆分处理。
又一种示例中,端侧runtime模块根据本地加速器的算力以及申请的计算资源的算力拆分人工智能模型。
在示例下,端侧runtime模块可以在资源申请之前,执行拆分,则根据本地加速器的算力以及注册的第二计算资源的算力执行拆分处理。拆分模块也可以在进行资源申请之后,执行拆分,则根据本地加速器的算力以及申请的第二计算资源的算力执行拆分处理。
拆分模块拆分的两部分任务,可以是串行模式执行、或者是并行模式执行、又或者是串并行混合模式执行。
图13给出了另一种装置的结构示意图。
一种可能场景中,所述装置1300可以是端侧设备,可以是支持端侧设备实现上述方法的芯片、芯片系统、或处理器等。该装置可用于实现上述方法实施例中端侧设备执行的方法,具体可以参见上述方法实施例中的说明。所述装置具备实现本申请实施例描述的端侧设备的功能,比如,所述装置包括端侧设备执行本申请实施例描述的终端涉及步骤所对应的模块(比如图5、图7、图10和图11中端侧设备中的模块)或单元或手段(means),所述功能或单元或手段可以通过软件实现,或者通过硬件实现,也可以通过硬件执行相应的软件实现,还可以通过软件和硬件结合的方式实现。详细可进一步参考前述对应方法实施例中的相应描述。
所述装置1300可以包括一个或多个处理器1301,所述处理器1301也可以称为处理单元,可以实现一定的控制功能。所述处理器1301可以是通用处理器或者专用处理器等。例如可以是中央处理器。中央处理器可以用于对通信装置(如,基站、基带芯片,终端、终端芯片,DU或CU等)进行控制,执行软件程序,处理软件程序的数据。
在一种可选的设计中,处理器1301也可以存有指令和/或数据1303,所述指令和/或数据1303可以被所述处理器运行,使得所述装置1300执行上述方法实施例中描述的方法。
在另一种可选的设计中,处理器1301中可以包括用于实现接收和发送功能的收发单元。例如该收发单元可以是收发电路,或者是接口,或者是接口电路。用于实现接收和发送功能的收发电路、接口或接口电路可以是分开的,也可以集成在一起。上述收发电路、接口或接口电路可以用于代码/数据的读写,或者,上述收发电路、接口或接口电路可以用于信号的传输或传递。
在又一种可能的设计中,装置1300可以包括电路,所述电路可以实现前述方法实施例中发送或接收或者通信的功能。
可选的,所述装置1300中可以包括一个或多个存储器1302,其上可以存有指令1304,所述指令可在所述处理器上被运行,使得所述装置1300执行上述方法实施例中描述的方法。可选的,所述存储器中还可以存储有数据。可选的,处理器中也可以存储指令和/或数据。所述处理器和存储器可以单独设置,也可以集成在一起。例如,上述方法实施例中所描述的对应关系可以存储在存储器中,或者存储在处理器中。
可选的,所述装置1300还可以包括收发器1305和/或天线1306。所述处理器1301可以称为处理单元,对所述装置1300进行控制。所述收发器1305可以称为收发单元、收发机、收发电路、收发装置或收发模块等,用于实现收发功能。
可选的,本申请实施例中的装置1300可以用于执行本申请上述实施例描述的方法。
本申请中描述的处理器和收发器可实现在集成电路(integrated circuit,IC)、模拟IC、射频集成电路RFIC、混合信号IC、专用集成电路(application specificintegrated circuit,ASIC)、印刷电路板(printed circuit board,PCB)、电子设备等上。该处理器和收发器也可以用各种IC工艺技术来制造,例如互补金属氧化物半导体(complementary metal oxide semiconductor,CMOS)、N型金属氧化物半导体(nMetal-oxide-semiconductor,NMOS)、P型金属氧化物半导体(positive channel metal oxidesemiconductor,PMOS)、双极结型晶体管(Bipolar Junction Transistor,BJT)、双极CMOS(BiCMOS)、硅锗(SiGe)、砷化镓(GaAs)等。
以上实施例描述中的装置可以是端侧设备,但本申请中描述的装置的范围并不限于此,而且装置的结构可以不受图13的限制。装置可以是独立的设备或者可以是较大设备的一部分。例如所述装置可以是:
(1)独立的集成电路IC,或芯片,或,芯片系统或子系统;
(2)具有一个或多个IC的集合,可选的,该IC集合也可以包括用于存储数据和/或指令的存储部件;
(3)ASIC,例如调制解调器(MSM);
(4)可嵌入在其他设备内的模块;
(5)接收机、终端、智能终端、蜂窝电话、无线设备、手持机、移动单元、车载设备、网络设备、云设备、人工智能设备、机器设备、家居设备、医疗设备、工业设备等等;
(6)其他等等。
另一种可能场景中,所述装置1300可以是应用于云侧设备。该装置1300可用于实现上述方法实施例中云侧设备执行的方法,具体可以参见上述方法实施例中的说明。所述装置具备实现本申请实施例描述的云侧设备的功能,比如,所述装置包括云侧设备执行本申请实施例描述的云侧设备涉及步骤所对应的模块或单元或手段(means),所述功能或单元或手段可以通过软件实现,或者通过硬件实现,也可以通过硬件执行相应的软件实现,还可以通过软件和硬件结合的方式实现。详细可进一步参考前述对应方法实施例中的相应描述。
所述装置1300可以包括一个或多个处理器1301,所述处理器1301也可以称为处理单元,可以实现一定的控制功能。所述处理器1301可以是通用处理器或者专用处理器等。
在一种可选的设计中,处理器1301也可以存有指令和/或数据1303,所述指令和/或数据1303可以被所述处理器运行,使得所述装置1300执行上述方法实施例中描述的方法。
在另一种可选的设计中,处理器1301中可以包括用于实现接收和发送功能的收发单元。例如该收发单元可以是收发电路,或者是接口,或者是接口电路。用于实现接收和发送功能的收发电路、接口或接口电路可以是分开的,也可以集成在一起。上述收发电路、接口或接口电路可以用于代码/数据的读写,或者,上述收发电路、接口或接口电路可以用于信号的传输或传递。
在又一种可能的设计中,装置1300可以包括电路,所述电路可以实现前述方法实施例中发送或接收或者通信的功能。
可选的,所述装置1300中可以包括一个或多个存储器1302,其上可以存有指令1304,所述指令可在所述处理器上被运行,使得所述装置1300执行上述方法实施例中描述的方法。可选的,所述存储器中还可以存储有数据。可选的,处理器中也可以存储指令和/或数据。所述处理器和存储器可以单独设置,也可以集成在一起。例如,上述方法实施例中所描述的对应关系可以存储在存储器中,或者存储在处理器中。
可选的,所述装置1300还可以包括收发器1305。所述处理器1301可以称为处理单元,对所述装置1300进行控制。所述收发器1305可以称为收发单元、收发机、收发电路、收发装置或收发模块等,用于实现收发功能。
可选的,本申请实施例中的装置1300可以用于执行本申请上述实施例描述的云侧设备执行的方法。
可以理解的是,本申请实施例中的一些可选的特征,在某些场景下,可以不依赖于其他特征,比如其当前所基于的方案,而独立实施,解决相应的技术问题,达到相应的效果,也可以在某些场景下,依据需求与其他特征进行结合。相应的,本申请实施例中给出的装置也可以相应的实现这些特征或功能,在此不予赘述。
本领域技术人员还可以理解到本申请实施例列出的各种说明性逻辑块(illustrative logical block)和步骤(step)可以通过电子硬件、电脑软件,或两者的结合进行实现。这样的功能是通过硬件还是软件来实现取决于特定的应用和整个系统的设计要求。本领域技术人员对于相应的应用,可以使用各种方法实现所述的功能,但这种实现不应被理解为超出本申请实施例保护的范围。
可以理解,本申请实施例中的处理器可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(digitalsignal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本申请所描述的方案可通过各种方式来实现。例如,这些技术可以用硬件、软件或者硬件结合的方式来实现。对于硬件实现,用于在通信装置(例如,基站,终端、网络实体、或芯片)处执行这些技术的处理单元,可以实现在一个或多个通用处理器、DSP、数字信号处理器件、ASIC、可编程逻辑器件、FPGA、或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合中。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。
可以理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(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 data rateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(directrambus RAM,DR RAM)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本申请还提供了一种计算机可读介质,其上存储有计算机程序,该计算机程序被计算机执行时实现上述任一方法实施例的功能。
本申请还提供了一种计算机程序产品,该计算机程序产品被计算机执行时实现上述任一方法实施例的功能。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,高密度数字视频光盘(digital video disc,DVD))、或者半导体介质(例如,固态硬盘(solid state disk,SSD))等。
可以理解,说明书通篇中提到的“实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各个实施例未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。可以理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
可以理解,在本申请中,“当…时”、“若”以及“如果”均指在某种客观情况下装置会做出相应的处理,并非是限定时间,且也不要求装置实现时一定要有判断的动作,也不意味着存在其它限定。
本申请中的“同时”可以理解为在相同的时间点,也可以理解为在一段时间段内,还可以理解为在同一个周期内。
本领域技术人员可以理解:本申请中涉及的第一、第二等各种数字编号仅为描述方便进行的区分,并不用来限制本申请实施例的范围。本申请中的编号(也可被称为索引)的具体取值、数量的具体取值、以及位置仅作为示意的目的,并不是唯一的表示形式,也并不用来限制本申请实施例的范围。本申请中涉及的第一个、第二个等各种数字编号也仅为描述方便进行的区分,并不用来限制本申请实施例的范围。
本申请中对于使用单数表示的元素旨在用于表示“一个或多个”,而并非表示“一个且仅一个”,除非有特别说明。本申请中,在没有特别说明的情况下,“至少一个”旨在用于表示“一个或者多个”,“多个”旨在用于表示“两个或两个以上”。
另外,本文中术语“系统”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,其中A可以是单数或者复数,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。
本文中术语“……中的至少一个”或“……中的至少一种”,表示所列出的各项的全部或任意组合,例如,“A、B和C中的至少一种”,可以表示:单独存在A,单独存在B,单独存在C,同时存在A和B,同时存在B和C,同时存在A、B和C这六种情况,其中A可以是单数或者复数,B可以是单数或者复数,C可以是单数或者复数。
可以理解,在本申请各实施例中,“与A相应的B”表示B与A相关联,根据A可以确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
本申请中的预定义可以理解为定义、预先定义、存储、预存储、预协商、预配置、固化、或预烧制。
本领域普通技术人员可以理解,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本领域普通技术人员可以理解,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
可以理解,本申请中描述的系统、装置和方法也可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请中各个实施例之间相同或相似的部分可以互相参考。在本申请中各个实施例、以及各实施例中的各个实施方式/实施方法/实现方法中,如果没有特殊说明以及逻辑冲突,不同的实施例之间、以及各实施例中的各个实施方式/实施方法/实现方法之间的术语和/或描述具有一致性、且可以相互引用,不同的实施例、以及各实施例中的各个实施方式/实施方法/实现方法中的技术特征根据其内在的逻辑关系可以组合形成新的实施例、实施方式、实施方法、或实现方法。以上所述的本申请实施方式并不构成对本申请保护范围的限定。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。

Claims (33)

1.一种通信方法,其特征在于,包括:
端侧设备向云侧设备发送资源申请请求,并向所述云侧设备提供用于实现人工智能处理所需的第一人工智能模型;所述资源申请请求用于请求实现人工智能功能所需的计算资源;
所述端侧设备接收所述云侧设备发送的加载完成消息,所述加载完成消息用于指示所述云侧设备基于所述资源申请请求为所述端侧设备分配的计算资源已成功加载所述第一人工智能模型;
所述端侧设备向所述云侧设备提供第一待分析数据,并接收所述云侧设备发送的第一待分析数据的第一推理结果;
其中,所述第一推理结果是基于所述第一待分析数据运行所述第一人工智能模型得到的。
2.如权利要求1所述的方法,其特征在于,还包括:
所述端侧设备向云侧设备发送算力服务注册请求,所述算力服务注册请求用于请求所述云侧设备为所述端侧设备提供算力服务;
所述端侧设备接收云侧设备发送的算力服务注册响应,所述算力服务注册响应用于指示所述端侧设备已成功请求到所述云侧设备的算力服务。
3.如权利要求1或2所述的方法,其特征在于,端侧设备向所述云侧设备提供用于实现人工智能处理所需的第一人工智能模型,包括:
所述端侧设备向所述云侧设备发送所述第一人工智能模型;或者,
所述端侧设备将所述第一人工智能模型的下载地址发送给所述云侧设备。
4.如权利要求1-3任一项所述的方法,其特征在于,所述端侧设备向所述云侧设备提供第一待分析数据,包括:
所述端侧设备向所述云侧设备发送所述第一待分析数据;或者,
所述端侧设备将所述第一人工智能模型的下载地址发送给所述云侧设备。
5.如权利要求1-4任一项所述的方法,其特征在于,所述端侧设备接收所述云侧设备发送的第一待分析数据的第一推理结果后,还包括:
端侧设备将第二待分析数据提供给云侧设备,并接收所述云侧设备发送的所述第二待分析数据的第二推理结果;
其中,所述第二推理结果是基于所述第二待分析数据运行所述第一人工智能模型得到的。
6.如权利要求1-5任一项所述的方法,其特征在于,所述端侧设备接收所述云侧设备发送的第一待分析数据的第一推理结果后,还包括:
所述端侧设备向云侧设备提供第二人工智能模型,并向云侧设备提供第三待分析数据;
所述端侧设备接收所述云侧设备发送的第三待分析数据的第三推理结果;
其中,所述第三推理结果是所述计算资源基于所述第二待分析数据运行所述第一人工智能模型得到的。
7.如权利要求1-6任一项所述的方法,其特征在于,还包括:
所述端侧设备完成计算资源的使用后,向云侧设备发送资源释放请求,所述资源释放请求用于请求释放所述计算资源;
所述端侧设备接收所述云侧设备发送的资源释放响应,所述资源释放响应用于指示成功释放所述计算资源以及所述计算资源运行的人工智能模型。
8.如权利要求1-7任一项所述的方法,其特征在于,所述端侧设备向云侧设备发送资源申请请求之前,还包括:
所述端侧设备确定所述人工智能处理的部分任务或者全部任务由所述云侧设备处理。
9.如权利要求8所述的方法,其特征在于,还包括:
所述端侧设备确定所述人工智能处理的部分任务由所述云侧设备处理时,所述端侧设备将待使用的人工智能模型拆解为所述第一人工智能模型以及第三人工智能模型;
所述端侧设备向所述云侧设备提供第一待分析数据之前,所述端侧设备加载所述第三人工智能模型,并在所述端侧设备接收所述云侧设备发送的加载完成消息时,将待分析数据拆分为所述第一待分析数据以及第四待分析数据;
所述端侧设备将待分析数据拆分为所述第一待分析数据以及第四待分析数据后,运行加载的所述第三人工智能模型对所述第四待分析数据进行推理得到第四推理结果;
所述端侧设备接收到第一推理结果后,对所述第一推理结果和所述第四推理结果进行融合处理。
10.一种通信方法,其特征在于,包括:
云侧设备接收来自端侧设备的资源申请请求,并获取端侧设备提供的用于实现人工智能处理所需的第一人工智能模型,所述资源申请请求用于请求实现人工智能功能所需的计算资源;
所述云侧设备根据所述资源申请请求为所述端侧设备分配计算资源;
所述云侧设备通过所述计算资源成功加载所述第一人工智能模型后,向所述端侧设备发送加载完成消息,所述加载完成消息用于指示所述云侧设备上的计算资源已成功加载所述第一人工智能模型;
所述云侧设备获取所述端侧设备提供的第一待分析数据,通过运行所述第一人工智能模型对所述第一待分析数据进行推理得到第一推理结果;并向所述端侧设备发送所述第一推理结果。
11.如权利要求10所述的方法,其特征在于,云侧设备接收来自端侧设备的资源申请请求之前,还包括:
所述云侧设备接收所述端侧设备发送的算力服务注册请求,所述算力服务注册请求用于请求所述云侧设备为所述端侧设备的用户提供算力服务;
所述云侧设备向所述端侧设备发送算力服务注册响应,所述算力服务注册响应用于指示所述端侧设备的用户已成功请求到所述云侧设备的算力服务。
12.如权利要求11所述的方法,其特征在于,所述算力服务注册请求中携带计算资源信息,所述计算资源信息用于表征所述端侧设备所申请的算力规格;所述算力服务注册响应携带所述云侧设备为所述端侧设备分配的资源ID,所述资源ID用于标识所述计算资源信息;
所述资源申请请求中携带所述资源ID,所述云侧设备根据所述资源申请请求为所述端侧设备分配计算资源,包括:
所述云端设备根据所述资源ID对应的计算资源信息为所述端侧设备分配所述计算资源。
13.如权利要求10或11所述的方法,其特征在于,所述资源申请请求中携带计算资源信息,所述计算资源信息用于表征所述端侧设备所申请的算力规格;
所述云侧设备根据所述资源申请请求为所述端侧设备分配计算资源,包括:
所述云端设备根据所述计算资源信息为所述端侧设备分配所述计算资源。
14.如权利要求10-13任一项所述的方法,其特征在于,所述云侧设备获取端侧设备提供的用于实现人工智能处理所需的第一人工智能模型,包括:
所述云侧设备接收所述端侧设备发送所述第一人工智能模型;或者,
所述云侧设备接收所述端侧设备发送的所述第一人工智能模型的下载地址,并根据所述第一人工智能模型的下载地址下载所述第一人工智能模型。
15.如权利要求10-14任一项所述的方法,其特征在于,所述云侧设备获取端侧设备提供的第一待分析数据,包括:
所述云侧设备接收所述端侧设备发送所述第一待分析数据;或者,
所述云侧设备接收所述端侧设备发送的所述第一待分析数据的下载地址,并根据所述第一待分析数据的下载地址下载所述待分析数据。
16.如权利要求10-15任一项所述的方法,其特征在于,所述云侧设备向所述端侧设备发送所述第一推理结果后,还包括:
所述云侧设备获取所述端侧设备提供的第二待分析数据,通过运行所述第一人工智能模型对所述第二待分析数据进行推理得到第二推理结果;并向所述端侧设备发送所述第二推理结果。
17.如权利要求10-16任一项所述的方法,其特征在于,所述云侧设备向所述端侧设备发送所述第一推理结果后,还包括:
所述云侧设备获取所述端侧设备提供的第二人工智能模型,获取所述端侧设备提供的第三待分析数据;
所述云侧设备通过运行所述第二人工智能模型对所述第三待分析数据进行推理得到第三推理结果;并向所述端侧设备发送所述第三推理结果。
18.如权利要求10-17任一项所述的方法,其特征在于,还包括:
所述云侧设备接收端侧设备发送的资源释放请求,所述资源释放请求用于请求释放所述计算资源;
所述云侧设备释放所述计算资源,并释放所述计算资源运行的人工智能模型;
所述云侧设备向所述端侧设备发送资源释放响应,所述资源释放响应用于指示成功释放所述计算资源以及所述计算资源运行的人工智能模型。
19.一种通信方法,其特征在于,包括:
端侧设备向云侧设备发送资源申请请求,所述资源申请请求用于请求实现人工智能功能所需的计算资源;
所述端侧设备接收所述云侧设备发送的资源申请响应,所述资源申请响应用于指示所述云侧设备成功为所述端侧设备分配计算资源;
所述端侧设备在运行用于实现人工智能功能的第一人工智能模型对第一待分析数据执行推理时产生第一计算指令以及第一计算数据,并将所述第一计算指令以及第一计算数据发送给所述云侧设备;
所述端侧设备接收所述云侧设备发送的第一计算结果;
其中,所述第一计算结果是所述计算资源执行第一计算指令对所述第一计算数据进行计算得到的计算结果。
20.如权利要求19所述的方法,其特征在于,还包括:
所述端侧设备向云侧设备发送算力服务注册请求,所述算力服务注册请求用于请求所述云侧设备为所述端侧设备提供算力服务;
所述端侧设备接收云侧设备发送的算力服务注册响应,所述算力服务注册响应用于指示所述端侧设备已成功请求到所述云侧设备的算力服务。
21.如权利要求19或20所述的方法,其特征在于,所述端侧设备接收所述云侧设备发送的第一计算结果后,还包括:
所述端侧设备运行所述第一人工智能模型对第二待分析数据执行推理,获得第二计算指令以及第二计算数据;
所述端侧设备接收所述云侧设备发送的第二计算结果;
其中,所述第二计算结果是所述计算资源执行第二计算指令对所述第二计算数据进行计算得到的计算结果。
22.如权利要求19-21任一项所述的方法,其特征在于,还包括:
所述端侧设备完成计算资源的使用后,向云侧设备发送资源释放请求,所述资源释放请求用于请求释放所述计算资源;
所述端侧设备接收所述云侧设备发送的资源释放响应,所述资源释放响应用于指示成功释放所述计算资源。
23.如权利要求19-22任一项所述的方法,其特征在于,所述端侧设备向云侧设备发送资源申请请求之前,还包括:
所述端侧设备确定所述人工智能处理的部分任务或者全部任务由所述云侧设备处理。
24.如权利要求23所述的方法,其特征在于,还包括:
所述端侧设备确定所述人工智能处理的部分任务由所述云侧设备处理时,所述端侧设备在运行所述第一人工智能模型对第一待分析数据执行推理时,还产生第三计算指令以及第三计算数据;
所述端侧设备执行所述第三计算执令对所述第三计算数据进行计算得到第三计算结果;
所述端侧设备接收到所述接收所述云侧设备发送的第一计算结果后,所述端侧设备将所述第一计算结果和所述第三计算结果进行融合处理得到所述第一人工智能模型对所述第一待分析数据执行推理的推理结果。
25.一种通信方法,其特征在于,包括:
云侧设备接收来自端侧设备的资源申请请求,并获取端侧设备提供的用于实现人工智能处理所需的第一人工智能模型,所述资源申请请求用于请求实现人工智能功能所需的计算资源;
所述云侧设备根据所述资源申请请求为所述端侧设备分配计算资源;
所述云侧设备向所述端侧设备发送资源申请响应,所述资源申请响应用于指示所述云侧设备成功为所述端侧设备分配计算资源;
所述云侧设备接收所述端侧设备发送的第一计算指令以及第一计算数据;
所述云侧设备通过所述计算资源执行第一计算指令对所述第一计算数据进行计算得到计算结果;
所述云侧设备将所述计算结果发送给所述端侧设备。
26.如权利要求25所述的方法,其特征在于,云侧设备接收来自端侧设备的资源申请请求之前,还包括:
所述云侧设备接收所述端侧设备发送的算力服务注册请求,所述算力服务注册请求用于请求所述云侧设备为所述端侧设备的用户提供算力服务;
所述云侧设备向所述端侧设备发送算力服务注册响应,所述算力服务注册响应用于指示所述端侧设备的用户已成功请求到所述云侧设备的算力服务。
27.如权利要求26所述的方法,其特征在于,所述算力服务注册请求中携带计算资源信息,所述计算资源信息用于表征所述端侧设备所申请的算力规格;所述算力服务注册响应携带所述云侧设备为所述端侧设备分配的资源ID,所述资源ID用于标识所述计算资源信息;
所述资源申请请求中携带所述资源ID,所述云侧设备根据所述资源申请请求为所述端侧设备分配计算资源,包括:
所述云端设备根据所述资源ID对应的计算资源信息为所述端侧设备分配所述计算资源。
28.如权利要求26或27所述的方法,其特征在于,所述资源申请请求中携带计算资源信息,所述计算资源信息用于表征所述端侧设备所申请的算力规格;
所述云侧设备根据所述资源申请请求为所述端侧设备分配计算资源,包括:
所述云端设备根据所述计算资源信息为所述端侧设备分配所述计算资源。
29.如权利要求26-28任一项所述的方法,其特征在于,所述云侧设备向所述端侧设备发送所述第一计算结果后,还包括:
所述云侧设备接收所述端侧设备发送的第二计算指令以及第二计算数据,通过所述计算资源运行所述第二计算指令对所述第二计算数据进行推理得到第二计算结果;并向所述端侧设备发送所述第二计算结果。
30.如权利要求26-29任一项所述的方法,其特征在于,还包括:
所述云侧设备接收端侧设备发送的资源释放请求,所述资源释放请求用于请求释放所述计算资源;
所述云侧设备释放所述计算资源,并向所述端侧设备发送资源释放响应,所述资源释放响应用于指示成功释放所述计算资源。
31.一种通信装置,其特征在于,包括用于执行如权利要求1至9或10-18或19至24或25-30中的任一项所述方法的模块。
32.一种通信装置,其特征在于,包括处理器和接口电路,所述接口电路用于接收来自所述通信装置之外的其它通信装置的信号并传输至所述处理器或将来自所述处理器的信号发送给所述通信装置之外的其它通信装置,所述处理器通过逻辑电路或执行代码指令用于实现如权利要1至9或10-18或19至24或25-30中任一项所述的方法。
33.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,当所述计算机指令被执行时,使得权利要求1至9或10-18或19至24或25-30中任一项所述的方法被执行。
CN202010242173.XA 2020-03-31 2020-03-31 一种通信方法及装置 Active CN113472830B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202010242173.XA CN113472830B (zh) 2020-03-31 2020-03-31 一种通信方法及装置
PCT/CN2021/082483 WO2021197144A1 (zh) 2020-03-31 2021-03-23 一种通信方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010242173.XA CN113472830B (zh) 2020-03-31 2020-03-31 一种通信方法及装置

Publications (2)

Publication Number Publication Date
CN113472830A CN113472830A (zh) 2021-10-01
CN113472830B true CN113472830B (zh) 2023-03-10

Family

ID=77865267

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010242173.XA Active CN113472830B (zh) 2020-03-31 2020-03-31 一种通信方法及装置

Country Status (2)

Country Link
CN (1) CN113472830B (zh)
WO (1) WO2021197144A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116234001A (zh) * 2021-11-30 2023-06-06 维沃移动通信有限公司 定位方法及通信设备
CN114169525A (zh) * 2021-12-17 2022-03-11 建信金融科技有限责任公司 推理框架的调用方法和调用装置
CN114401301B (zh) * 2022-01-17 2023-07-14 东云睿连(武汉)计算技术有限公司 一种带有遥控装置的边缘计算设备
CN117061345A (zh) * 2022-05-06 2023-11-14 华为技术有限公司 一种通信方法、装置及设备
CN117439958A (zh) * 2022-07-12 2024-01-23 维沃移动通信有限公司 一种ai网络模型交互方法、装置和通信设备
CN115934323B (zh) * 2022-12-02 2024-01-19 北京首都在线科技股份有限公司 云端计算资源的调用方法、装置、电子设备及存储介质
CN116414559A (zh) * 2023-01-28 2023-07-11 北京神州泰岳软件股份有限公司 算力统一标识建模、分配的方法、存储介质及电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103002044A (zh) * 2012-12-18 2013-03-27 武汉大学 一种提高多平台智能终端处理能力的方法
CN108243216A (zh) * 2016-12-26 2018-07-03 华为技术有限公司 数据处理的方法、端侧设备、云侧设备与端云协同系统
CN109067840A (zh) * 2018-06-29 2018-12-21 优刻得科技股份有限公司 人工智能在线服务的方法、系统和存储介质
CN110750312A (zh) * 2019-10-17 2020-02-04 中科寒武纪科技股份有限公司 硬件资源配置方法、装置、云侧设备和存储介质
CN110750359A (zh) * 2019-10-17 2020-02-04 中科寒武纪科技股份有限公司 硬件资源配置方法、装置、云侧设备和存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180332102A1 (en) * 2018-03-22 2018-11-15 Michael Sheidaei Cloud-based system for collaborating engineering, operations, maintenance, project management, procurement and vendor data and activities

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103002044A (zh) * 2012-12-18 2013-03-27 武汉大学 一种提高多平台智能终端处理能力的方法
CN108243216A (zh) * 2016-12-26 2018-07-03 华为技术有限公司 数据处理的方法、端侧设备、云侧设备与端云协同系统
CN109067840A (zh) * 2018-06-29 2018-12-21 优刻得科技股份有限公司 人工智能在线服务的方法、系统和存储介质
CN110750312A (zh) * 2019-10-17 2020-02-04 中科寒武纪科技股份有限公司 硬件资源配置方法、装置、云侧设备和存储介质
CN110750359A (zh) * 2019-10-17 2020-02-04 中科寒武纪科技股份有限公司 硬件资源配置方法、装置、云侧设备和存储介质

Also Published As

Publication number Publication date
CN113472830A (zh) 2021-10-01
WO2021197144A1 (zh) 2021-10-07

Similar Documents

Publication Publication Date Title
CN113472830B (zh) 一种通信方法及装置
CN109101352B (zh) 图像处理算法架构、算法调用方法、装置、存储介质及移动终端
CN107145380B (zh) 虚拟资源编排方法及装置
CN112784989B (zh) 推理系统、推理方法、电子设备及计算机存储介质
WO2015158108A1 (zh) 虚拟机资源的变更方法、装置及虚拟网络功能设备
WO2018063666A1 (en) System and method for digital brokerage service for iot micro compute services
CN110291502B (zh) 一种调度加速资源的方法、装置及加速系统
CN111694617B (zh) 网络离线模型的处理方法、人工智能处理装置及相关产品
WO2021239073A1 (zh) 物联网操作系统构建方法、系统、云平台及物联网设备
CN111580883B (zh) 应用程序启动方法、装置、计算机系统和介质
CN107797845B (zh) 用于访问容器的方法和装置
CN109445960B (zh) 应用的路由方法、装置及存储介质
CN108874699B (zh) 多系统使用mtp功能的方法、装置及电子设备
US9819725B1 (en) System, method, and computer program for remotely controlling mobile web applications installed on a mobile device
WO2023081202A1 (en) Mec dual edge apr registration on behalf of edge platform in dual edge deployments
CN115185543A (zh) 模型部署方法、打包方法、装置、设备及存储介质
CN108874504A (zh) 一种多虚拟化平台的管理方法及装置
CN116932234A (zh) 应用程序间通信方法、装置、存储介质及程序产品
CN110134461B (zh) 一种数据交互的通用处理方法及装置
US20220334878A1 (en) Generating a shared virtual resource pool
CN116049809B (zh) 一种驱动调用方法和设备
CN114579328A (zh) 一种自适应平台
CN114398082B (zh) 一种框架式区块链应用的兼容运行方法及装置
CN116089020B (zh) 虚拟机运行方法、扩容方法、扩容系统
EP4070193B1 (en) Providing device abstractions to applications inside a virtual machine

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