CN111340237A - 数据处理和模型运行方法、装置和计算机设备 - Google Patents

数据处理和模型运行方法、装置和计算机设备 Download PDF

Info

Publication number
CN111340237A
CN111340237A CN202010147450.9A CN202010147450A CN111340237A CN 111340237 A CN111340237 A CN 111340237A CN 202010147450 A CN202010147450 A CN 202010147450A CN 111340237 A CN111340237 A CN 111340237A
Authority
CN
China
Prior art keywords
model
sub
processing unit
operated
calculation processing
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.)
Granted
Application number
CN202010147450.9A
Other languages
English (en)
Other versions
CN111340237B (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202010147450.9A priority Critical patent/CN111340237B/zh
Publication of CN111340237A publication Critical patent/CN111340237A/zh
Application granted granted Critical
Publication of CN111340237B publication Critical patent/CN111340237B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Abstract

本申请涉及一种数据处理和模型运行方法、装置、计算机设备,涉及机器学习技术,包括:获取待运行模型和设备的候选计算处理单元;将待运行模型划分为不同的子模型集合,各个子模型集合中的子模型存在从候选计算处理单元确定的绑定计算处理单元,支持运行对应的子模型中的各个算子;通过子模型对应的绑定计算处理单元运行各个子模型,确定各个子模型集合的运行效率信息;从子模型集合中确定目标子模型集合,建立待运行模型与所述目标子模型集合的第一关联关系,第一关联关系用于当待运行模型在设备运行时,将待运行模型分成目标子模型运行,通过目标绑定计算处理单元运行对应的目标子模型,提高模型运行效率。

Description

数据处理和模型运行方法、装置和计算机设备
技术领域
本申请涉及计算机技术领域,特别是涉及数据处理和模型运行方法、装置、计算机设备和存储介质。
背景技术
随着科技的发展,机器学习被越来越广泛的使用,通过机器学习训练出的模型的应用场景非常广泛,包括视频,文章,广告的推荐服务,图片识别,相似图片搜索,目标检测,语义分析,翻译等。
模型在运行时,往往将整个模型配置在一种适合的计算处理单元上运行,如在一个硬件上运行,计算处理单元的资源利用率低,模型运行效率不高。
发明内容
基于此,有必要针对上述模型的运行效率低的问题,提供一种数据处理和模型运行方法、装置、计算机设备和存储介质。
一种数据处理方法,所述方法包括:获取待运行模型和设备的候选计算处理单元;将所述待运行模型划分为不同的子模型集合,各个子模型集合由不同的子模型组成,各个子模型由待运行模型中的不同的算子组成,各个子模型存在从所述候选计算处理单元确定的绑定计算处理单元,所述绑定计算处理单元支持运行对应的子模型中的各个算子;通过子模型对应的绑定计算处理单元运行各个子模型,确定各个子模型集合的运行效率信息;根据所述运行效率信息从所述子模型集合中确定目标子模型集合,所述目标子模型集合中的目标子模型存在对应的目标绑定计算处理单元;建立所述待运行模型与所述目标子模型集合的第一关联关系,所述第一关联关系用于当所述待运行模型在所述设备运行时,将所述待运行模型分成所述目标子模型运行,通过所述目标绑定计算处理单元运行对应的目标子模型。
一种模型运行方法,所述方法包括:获取待运行模型和关联关系,所述关联关系是待运行模型与目标子模型集合的对应关系,所述目标子模型集合是将所述待运行模型划分为不同的子模型集合,根据各个子模型集合的运行效率信息确定的,各个子模型集合中的子模型存在从设备的候选计算处理单元确定的绑定计算处理单元,所述绑定计算处理单元支持运行对应子模型中的各个算子,其中各个子模型集合由不同的子模型组成,各个子模型由待运行模型中的不同的算子组成;根据所述关联关系确定所述待运行模型对应的目标子模型集合;将所述待运行模型分成所述目标子模型集合中的目标子模型运行,通过目标子模型对应的目标绑定计算处理单元运行对应的目标子模型;根据各个目标子模型在对应的目标绑定计算处理单元的运行结果得到所述待运行模型的运行结果。
一种数据处理装置,所述装置包括:获取模块,用于获取待运行模型和设备的候选计算处理单元;划分模块,用于将所述待运行模型划分为不同的子模型集合,各个子模型存在从所述候选计算处理单元确定的绑定计算处理单元,所述绑定计算处理单元支持运行对应的子模型中的各个算子,各个子模型集合由不同的子模型组成,各个子模型由待运行模型中的不同的算子组成;目标子模型集合确定模块,用于通过子模型对应的绑定计算处理单元运行各个子模型,确定各个子模型集合的运行效率信息,根据所述运行效率信息从所述子模型集合中确定目标子模型集合,所述目标子模型集合中的目标子模型存在对应的目标绑定计算处理单元;关联模块,用于建立所述待运行模型与所述目标子模型集合的第一关联关系,所述第一关联关系用于当所述待运行模型在所述设备运行时,将所述待运行模型分成所述目标子模型运行,通过所述目标绑定计算处理单元运行对应的目标子模型。
一种模型运行装置,所述装置包括:获取模块,用于获取待运行模型和关联关系,所述关联关系是待运行模型与目标子模型集合的对应关系,所述目标子模型集合是将所述待运行模型划分为不同的子模型集合,根据各个子模型集合的运行效率信息确定的,各个子模型集合中的子模型存在从设备的候选计算处理单元确定的绑定计算处理单元,所述绑定计算处理单元是设备支持运行对应子模型中的各个算子,其中各个子模型集合由不同的子模型组成,各个子模型由待运行模型中的不同的算子组成;目标子模型集合确定模块,用于根据所述关联关系确定所述待运行模型对应的目标子模型集合;运行模块,用于将所述待运行模型分成所述目标子模型集合中的目标子模型运行,通过目标子模型对应的目标绑定计算处理单元运行对应的目标子模型,根据各个目标子模型在对应的目标绑定计算处理单元的运行结果得到所述待运行模型的运行结果。
一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行上述数据处理方法或模型运行方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行上述数据处理方法或模型运行方法的步骤。
上述数据处理方法、装置、计算机设备和存储介质,将所述待运行模型划分为不同的子模型集合,同一个计算处理单元支持运行的多个算子会划分为同一个子模型,每个子模型都存在对应的绑定计算处理单元,子模型的绑定计算处理单元支持运行这个子模型包括的所有算子,以子模型为单位采用同一个计算处理单元进行处理,减少了各个不同的算子通过不同计算处理单元处理时,数据在不同的计算处理单元间输入输出的耗时,提高了模型运行效率,不同的子模型通过不同的计算处理单元进行处理,提高了硬件的资源利用率。
上述模型运行方法、装置、计算机设备和存储介质,通过关联关系可确定待运行模型对应的目标子模型集合,是运行效率最高的方案,且目标子模型集合是根据将待运行模型划分为不同的子模型集合,多个算子会划分为同一个子模型,每个子模型都存在对应的绑定计算处理单元,子模型的绑定计算处理单元支持运行这个子模型包括的所有算子,以子模型为单位采用同一个计算处理单元进行处理,减少了各个不同的算子通过不同计算处理单元处理时,数据在不同的计算处理单元间输入输出的耗时,提高了模型运行效率,不同的子模型通过不同的计算处理单元进行处理,提高了硬件的资源利用率。
附图说明
图1为一些实施例中提供的数据处理和模型运行方法的应用环境图;
图2为一些实施例中数据处理方法的流程图;
图3为一些实施例中将待运行模型划分为不同的子模型集合的流程图;
图4为一些实施例中模型划分的示意图;
图5为一些实施例中算子节点有向图的示意图;
图6为一些实施例中模型划分的示意图;
图7为一些实施例中模型运行方法的流程图;
图8为一些实施例中流水线式运行目标子模型的示意图;
图9为一些实施例中数据处理装置的结构图;
图10为一些实施例中模型运行装置的结构图;
图11为一些实施例中计算机设备的内部结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但除非特别说明,这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本申请的范围的情况下,可以将第一关联关系称为第二关联关系,且类似地,可将第二关联关系称为第一关联关系。
人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术包括计算机视觉技术以及机器学习/深度学习等方向。
计算机视觉技术(Computer Vision,CV)计算机视觉是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取信息的人工智能系统。
机器学习(Machine Learning,ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。
本申请的方案涉及基于人工智能的机器学习技术。具体通过如下实施例进行说明。
图1为一些实施例中提供的数据处理方法、模型运行方法的应用环境图。如图1所示,在该应用环境中,包括终端110以及服务器120。终端110或服务器120中包括多种专用于计算的计算处理单元,包括但不限于CPU(central processing unit,中央处理器)、GPU(Graphics Processing Unit,图形处理器)、MPU(Message Processing Unit,信息处理装置)、FPGA(Field Programmable Gate Array)专用算子计算单元等硬件。终端110可以将业务请求发送至服务器120中,业务请求可以是图片识别请求,图片搜索请求,目标检测请求,语义分析请求,翻译请求等,不同的业务请求对应不同的模型,服务器120中存储了通过机器学习训练好的各个模型,模型的种类不限,可以是神经网络模型,如卷积神经网络模型、循环神经网络模型等。服务器120根据业务请求获取对应的待运行模型,根据本申请实施例提供的方法确定与待运行模型对应的目标子模型集合,将待运行模型分成目标子模型集合中的目标子模型运行,通过目标子模型对应的目标绑定计算处理单元在服务器120运行对应的目标子模型,根据各个目标子模型在对应的目标绑定计算处理单元的运行结果得到待运行模型的运行结果。服务器120在接收终端110发送的业务请求之前,可以根据服务器120中的各个候选计算处理单元,根据本申请实施例提供的方法对各个模型进行测试,从而确定各个模型对应的目标子模型集合,并存储这种关联关系。
在一些实施例中,也可以在终端110获取待运行模型,根据本申请实施例提供的方法确定与待运行模型对应的目标子模型集合,通过目标子模型对应的目标绑定计算处理单元在终端110运行对应的目标子模型,根据各个目标子模型在对应的目标绑定计算处理单元的运行结果得到待运行模型的运行结果。终端110在运行模型之前,可以根据终端110中的各个候选计算处理单元,根据本申请实施例提供的方法对各个模型进行测试,从而确定各个模型对应的目标子模型集合,并存储这种关联关系。
服务器120可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群,可以是提供云服务器、云数据库、云存储和CDN等基础云计算服务的云服务器。终端110可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端110以及服务器120可以通过网络等通讯连接方式进行连接,本申请在此不做限制。可以使用集群替代单个服务器上的硬件,例如,GPU集群,CPU集群,然后通过本申请实施例提供的方法进行子模型与目标绑定集群的关系分配。
如图2所示,在一些实施例中,提出了一种数据处理方法,本实施例主要以该方法应用于上述图1中的服务器120或终端110来举例说明。具体可以包括以下步骤:
步骤S202,获取待运行模型和设备的候选计算处理单元。
其中,待运行模型是需要在设备中运行的模型,可以为不同产品不同业务需要运行的模型,如视频,文章,广告的推荐服务,图片识别,相似图片搜索,目标检测,语义分析,翻译等不同业务对应的使用机器学习训练出的模型。待运行模型由不同的算子组成,通过各个算子的有序运算输出模型对应的结果。算子的类型不限,包括卷积算子,池化算子等。一个设备中,往往有多种专用于计算的硬件,可作为设备的候选计算处理单元,可以为单个硬件或硬件集群。
具体地,获取待运行模型后,加载待运行模型,从存储硬件中读取数据,放到对应硬件的内存中。
步骤S204,将待运行模型划分为不同的子模型集合,各个子模型集合由不同的子模型组成,各个子模型由待运行模型中的不同的算子组成,各个子模型存在从候选计算处理单元确定的绑定计算处理单元,绑定计算处理单元支持运行对应的子模型中的各个算子。
具体地,根据候选计算处理单元对待运行模型的各个算子的运行支持度将待运行模型进行划分得到不同的子模型,每次划分得到的各个子模型组成一个子模型集合,各个子模型集合由不同的子模型组成,不同的划分方案得到不同的子模型集合。多个算子会划分为同一个子模型,各个子模型由待运行模型中的不同的算子组成,每个子模型都存在对应的绑定计算处理单元,子模型的绑定计算处理单元支持运行这个子模型包括的所有算子。划分的原则是使得一个计算处理单元尽可能多地运行多个算子,且使得模型的所有算子都归属于一个子模型,得到穷尽的所有方案。
其中,通过将同一个计算处理单元支持运行的算子划分为一个子模型,以子模型为单位采用同一个计算处理单元进行处理,减少了各个不同的算子通过不同计算处理单元处理时,数据在不同的计算处理单元间输入输出的耗时,提高了运算效率。与将整个模型通过一个计算处理单元运行相比,不同的子模型通过不同的计算处理单元进行处理,提高了硬件的资源利用率,相当于在效率与资源间进行了平衡。由于设备包括多个不同的计算处理单元,从而得到不同的硬件环境和对应的子模型划分。
在一些实施例中,先将各个候选计算处理单元进行排序并得到有序的穷尽的处理单元组合,然后将各个处理单元组合中的候选计算处理单元分别进行匹配,将尽可能多地多个算子划分至同一个候选计算处理单元运行。直至各个处理单元组合匹配完毕,得到多个子模型集合。
步骤S206,通过子模型对应的绑定计算处理单元运行各个子模型,确定各个子模型集合的运行效率信息,根据运行效率信息从子模型集合中确定目标子模型集合,目标子模型集合中的目标子模型存在对应的目标绑定计算处理单元。
具体地,一个子模型集合对应一种划分方案,根据运行效率信息从各个划分方案中确定效率最高的目标划分方案,得到目标子模型集合。由于通过目标子模型集合的运行效率最高,说明待运行模型在此设备中划分为多个目标子模型,通过各个目标子模型对应的目标绑定计算处理单元进行运行时效率最高。
举例说明,待运行模型A包括算子{a,b,c},设备包括硬件1和硬件2,硬件1支持运行a和b,硬件2支持b和c,待运行模型A包括2种划分方式,分别为子模型集合A1和A2,其中A1包括子模型1{a,b}和子模型2{c},子模型1的绑定计算处理单元为硬件1,子模型2的绑定计算处理单元为硬件2。其中A2包括子模型3{a}和子模型4{b,c},子模型3的绑定计算处理单元为硬件1,子模型4的绑定计算处理单元为硬件2。通过硬件1运行{a,b}、硬件2运行{c}确定子模型集合A1的第一运行效率信息,通过硬件1运行{a}、硬件2运行{b,c}确定子模型集合A2的第二运行效率信息,将运行效率高的子模型集合作为目标子模型集合,如A1为目标子模型集合,则目标子模型为{a,b}和{c},{a,b}的目标绑定计算处理单元为硬件1,{c}的目标绑定计算处理单元为硬件2。
通过以上的遍历,目标子模型集合中的所有子模型,都会跟运行效率高的硬件对应,从而使得目标子模型集合的运行效率最高,上面穷举的方法是用于确定不同的硬件环境和不同的子模型得到的子模型集合的运行效率最高方案。
步骤S208,建立待运行模型与目标子模型集合的第一关联关系,第一关联关系用于当待运行模型在设备运行时,将待运行模型分成目标子模型运行,通过目标绑定计算处理单元运行对应的目标子模型。
具体地,目标子模型集合对应的运行方案是运行效率最高的,所以建立待运行模型与目标子模型集合的第一关联关系,从而使得待运行模型在设备上运行时采用目标子模型集合的方式进行,将待运行模型分成目标子模型运行,通过目标绑定计算处理单元运行对应的目标子模型。建立关联关系的方式可自定义,如将待运行模型标识与目标子模型集合形成键值对存储。
在一个实施例中,保存目标子模型集合的数据结构格式如下:
模型标识子模型1硬件1算子ID1算子ID2算子ID3;
模型标识子模型2硬件2算子ID4算子ID5算子ID6。
其中,每个子模型对应一行,此行对应了这个子模型对应的硬件和子模型包括的所有算子标识。
在一些实施例中,建立设备信息、待运行模型与目标子模型集合的关联关系,设备信息可以是设备型号、设备包括的计算处理单元信息,则如果设备型号相同或设备包含的计算处理单元相同,则可直接根据关联关系确定在同一类型的设备上待运行模型对应的目标子模型集合。
在一些实施中,检测设备的候选计算处理单元是否存在更新,更新包括计算处理单元的增加、计算处理单元的减少等,如果存在更新,则需要结合新的候选计算处理单元重新进行子模型集合的划分,并计算得到目标子模型集合,重新建立待运行模型与所述目标子模型集合的关联关系。
上述数据处理方法,将所述待运行模型划分为不同的子模型集合,同一个计算处理单元支持运行的多个算子会划分为同一个子模型,每个子模型都存在对应的绑定计算处理单元,子模型的绑定计算处理单元支持运行这个子模型包括的所有算子,以子模型为单位采用同一个计算处理单元进行处理,减少了各个不同的算子通过不同计算处理单元处理时,数据在不同的计算处理单元间输入输出的耗时,提高了模型运行效率,不同的子模型通过不同的计算处理单元进行处理,提高了硬件的资源利用率。
在一些实施例中,步骤S204包括:根据待运行模型的各个算子的执行顺序,将连续的被同一个当前计算处理单元支持运行的多个算子归为同一个当前子模型;将当前计算处理单元作为当前子模型的绑定计算处理单元,当前计算处理单元是候选计算处理单元中的其中一个计算处理单元。
具体地,待运行模型包括的各个算子根据处理逻辑按顺序先后执行,进行子模型划分时,按执行顺序可以将在时间上连续执行的多个算子划分至同一个支持运行的计算处理单元进行处理,使得划分得到的子模型包括多个在执行时间上连续的算子,使得子模型中的算子具备时间上的连续性,进一步减少连续的多个算子被划分到不同的计算处理单元的概率,提高运行效率。
在一些实施例中,将各个算子作为一个节点,根据算子的执行顺序确定各个节点间的流向关系,根据流向关系通过有向线连接相邻的两个节点,形成有向的节点图,通过节点图可直观的查看各个算子的执行顺序,并根据各个候选计算处理单元对算子的运行支持度,通过节点图方便得进行子模型的划分,形成子模型集合。
在一些实施例中,如图3所示,根据待运行模型的各个算子的执行顺序,将连续的被同一个当前计算处理单元支持运行的多个算子归为同一个当前子模型,将当前计算处理单元作为当前子模型的绑定计算处理单元包括:
步骤S204A,从候选计算处理单元中确定当前计算处理单元,按照算子的先后执行顺序确定起始算子。
具体地,遍历各个候选计算处理单元,形成不同的有序组合,如:{硬件1、硬件2}、{硬件2、硬件1}属于不同的组合。按照算子的先后执行顺序第一个执行的算子为起始算子,保证有序组合的第一个计算处理单元支持运行起始算子。在一个实施例中,使用贪心算法进行遍历。
步骤S204B,从起始算子遍历待运行模型的各个算子,至到存在当前计算处理单元对应的非支持运行算子,将从起始算子开始,当前计算处理单元对应的支持运行算子作为划分得到的当前子模型,将当前计算处理单元作为当前子模型对应的绑定计算处理单元。
具体地,从起始算子开始,判断当前计算处理单元是否支持运行算子,如果支持运行,则继续判断下一个算子,至到存在当前计算处理单元对应的非支持运行算子,即遇到当前计算处理单元不支持运行的算子,如当前计算处理单元为硬件1,而A-B-C都为硬件1支持运行的算子,D为硬件1对应的非支持运行算子,则将A-B-C组成当前子模型,将硬件1作为当前子模型对应的绑定计算处理单元。
步骤S204C,将非支持运行算子作为下次遍历的起始算子,将下一个候选计算处理单元作为当前计算处理单元,返回从起始算子遍历待运行模型的各个算子的步骤,直到待运行模型中的所有算子归入对应的子模型。
具体地,根据上述描述,则将D作为下次遍历的起始算子,将下一个候选计算处理单元,如硬件2作为当前计算处理单元。判断当前计算处理单元硬件2是否支持运行算子,如果支持运行,则继续判断下一个算子,至到存在当前计算处理单元对应的非支持运行算子,从而将硬件2支持运行的连续多个算子组成一个子模型,继续进行遍历,直到待运行模型中的所有算子归入对应的子模型。
本申请实施例中,通过贪心算法遍历各个候选计算处理单元,通过递归把模型分成多个子模型,形成多种方案,方便快捷,避免遗漏的同时提高了遍历的效率。
在一些实施例中,方法还包括:获取标准算子,确定标准算子与计算处理单元之间的支持运行关系;步骤S204包括:以标准算子为执行单元,将待运行模型划分为对应的各个算子;根据支持运行关系将待运行模型划分为不同的子模型集合。
具体地,不同的应用场景可自定义不同的标准算子,可以是由一个或多个基本算子组成。基本算子是组成模型的最小不可分割的算子。标准算子与计算处理单元之间的支持运行关系可根据需要自定义,支持运行可以为最低支持运行度,如只要标准算子能在计算处理单元运行,则算支持运行。可以为自定义的支持运行度,如不仅需要能运行,还需要运行效率满足阈值条件才算支持运行。可通过测试数据将标准算子独立的在计算处理单元进行运行,得到运行结果,根据运行结果确定计算处理单元对标准算子的支持运行度。
本申请实施例中,在进行模型划分时,根据自定义的支持运行关系和将待运行模型划分为不同的子模型集合。通过自定义不同的支持运行关系,满足对时间实时性要求不同的应用场景,提高了模型划分的可配置性。
在一些实施例中,支持运行关系的确定包括以下步骤:获取测试数据,将测试数据输入待运行模型运算,得到待运行模型的各个算子的输入子测试数据;将各个算子和对应的输入子测试数据在不同的计算处理单元上进行运行测试;当第一算子在第一计算处理单元的运行效率信息低于预设效率条件时,确定第一算子为第一计算处理单元对应的非支持运行算子;当第一算子在第一计算处理单元的运行效率信息满足预设效率条件时,确定第一算子为第一计算处理单元对应的支持运行算子。
具体地,测试数据是用于对待运行模型进行测试的输入数据,不同的待运行模型对应不同类型的测试数据。如待运行模型为图片处理模型,则测试数据可以为输入的图片,如待运行模型为文本处理模型,则测试数据可以为输入的文本。将测试数据输入待运行模型运算,则待运行模型运算通过算子一个接一个的处理,记录每个算子的输入数据得到各个算子的输入子测试数据。例如待运行模型用于判断一个图片是否是猫,那么模型会一层一层跑下去,即一个算子一个算子的运行,把每个算子的输入记录下来,就可以得到各个算子的输入子测试数据。
将各个算子和对应的输入子测试数据在不同的计算处理单元上进行运行测试,记录每个算子的运行情况,当第一算子在第一计算处理单元的运行效率信息低于预设效率条件时,确定第一算子为第一计算处理单元对应的非支持运行算子;当第一算子在第一计算处理单元的运行效率信息满足预设效率条件时,确定第一算子为第一计算处理单元对应的支持运行算子。运行效率信息可以是与运行效率相关的信息,如运行时间,当运行时间超过预设时间,则认为运行效率信息低于预设效率条件,认为该硬件不支持该算子,如果算子无法运行,也认为该硬件不支持该算子。
本申请实施例中,通过各个算子的输入子测试数据,对各个算子在不同的计算处理单元上进行运行测试,可并行测试并记录测试结果,得到算子与计算处理单元之间的支持运行关系。
在一些实施例中,通过子模型对应的绑定计算处理单元运行各个子模型,确定各个子模型集合的运行效率信息之前还包括:计算待运行模型的各个算子的复杂度,确定各个算子的接口数据量;根据各个算子的复杂度和接口数据量确定待运行模型的目标配置类型;当目标配置类型为独立算子类型时,直接将待运行模型的各个算子独立地作为对应的目标子模型组成算子子模型集合,将运行目标子模型效率最高的计算处理单元作为对应的目标子模型的目标绑定计算处理单元;建立待运行模型与算子子模型集合的第二关联关系,第二关联关系用于当待运行模型在设备运行时,将待运行模型分成算子子模型集合中的目标子模型运行,通过对应的目标绑定计算处理单元运行对应的目标子模型。当目标配置类型为子模型类型时,进入通过子模型对应的绑定计算处理单元运行各个子模型,确定各个子模型集合的运行效率信息的步骤。
其中,算子的复杂度可以通过算子的运算量确定,算子的接口数据量可以通过各个算子的输入数据量或输出数据量来表示。
具体地,可将各个算子的复杂度进行加权统计得到复杂度特征,将各个算子的接口数据量进行加权统计得到数据量特征,当复杂度特征表示的复杂度大于第一预设阈值,且数据量特征表示的数据量小于第二预设阈值时,确定待运行模型的目标配置类型为独立算子类型,每个算子作为一个独立的目标子模型匹配对应的目标绑定计算处理单元,目标绑定计算处理单元是使得算子运行效率最高的计算处理单元。各个算子对应的目标子模型组成算子子模型集合,建立待运行模型与算子子模型集合的第二关联关系。
如图4所示,为一个具体的实施例中待运行模型为独立算子类型,待运行模型包括三个算子,各个算子分别独立对应至运行效率最高的计算处理单元。
如果目标配置类型为算子子模型集合,则只需要将各个算子独立分别配置到运算效率最高的硬件上得到目标子模型集合,实现快速配置,如果目标配置类型为子模型类型,才根据各个子模型集合的运行效率信息从子模型集合中确定目标子模型集合,在不同的条件下进入不同的步骤,实现自适应的配置,进一步提高配置效率。
本申请实施例中,对于单个算子非常复杂,且算子的输入输出数据量少的情况下,即使将算子分配在不同的计算处理单元,由于算子的输入输出数据量少,则耗时少,对于这种情况可直接硬件配对,可直接将各个算子分别配置到运算效率最高的硬件上,实现快速配置。如果目标配置类型为子模型类型,才根据各个子模型集合的运行效率信息从子模型集合中确定目标子模型集合。
在一个具体的实施例中,对本申请实施例提供的数据处理方法进行说明,包括以下步骤:
1、获取设备的候选计算处理单元,包括硬件N和硬件C,硬件N支持ABCEG算子,硬件C支持ABDEF算子。
2、加载待运行模型。
3、把模型分成多个子模型,并形成多种方案,如图5所示,待运行模型根据算子的执行顺序生成算子节点有向图。
4、使用硬件N从上到下遍历模型,遇到N不支持的硬件即停止,此时,得到子模型ABCGE。
5、使用另一种硬件C从不支持的第一个算子开始遍历,直到其不支持的算子,此时得到子模型DF,经过4和5两步,得到方案1:ABCGE和DF两个子模型组成子模型集合。
6、清空所有遍历标记,使用硬件C遍历模型,得到子模型ABDF。
7、使用硬件N遍历模型,得到子模型CGE,经过6和7两步,得到方案2:ABDF和CGE两个子模型组成子模型集合。
8、如此类推到更多硬件组成的环境和更多算子组成的子模型集合。
9、运行上述步骤生成的多种方案,得出运行速度最快的方案。运行速度最快的方案对应的子模型集合作为目标子模型集合。
10、建立待运行模型与目标子模型集合的关联关系并存储。
在一个具体的实施例中,如图6所示,待运行模型划分为4个子模型,各个子模型分别对应至匹配的目标绑定计算处理单元。
如图7所示,在一些实施例中,提出了一种模型运行方法,本实施例主要以该方法应用于上述图1中的服务器120或终端110来举例说明。具体可以包括以下步骤:
步骤S302,获取待运行模型和关联关系,关联关系是待运行模型与目标子模型集合的对应关系,目标子模型集合是将待运行模型划分为不同的子模型集合,根据各个子模型集合的运行效率信息确定的,各个子模型集合中的子模型存在从设备的候选计算处理单元确定的绑定计算处理单元,绑定计算处理单元是设备支持运行对应子模型中的各个算子。根据关联关系确定待运行模型对应的目标子模型集合,其中各个子模型集合由不同的子模型组成,各个子模型由待运行模型中的不同的算子组成。
其中,可以接收业务请求,在业务请求中携带模型标识,根据模型标识确定待运行模型。也可以存储业务请求的业务类型与模型的对应关系,根据对应关系确定待运行模型。
具体地,预先在设备中存储了待运行模型与目标子模型集合的对应关系,目标子模型集合是待运行模型运行效率最高的方案,包括了多个目标子模型和各个目标子模型对应的目标绑定计算处理单元,其中关联关系是通过上述实施例中的方法确定的。关联关系可以包括多个不同的模型与目标子模型集合的对应关系,从而根据待运行模型从关联关系中确定出与待运行模型对应的目标子模型集合。
步骤S304,将待运行模型分成目标子模型集合中的目标子模型运行,通过目标子模型对应的目标绑定计算处理单元运行对应的目标子模型,根据各个目标子模型在对应的目标绑定计算处理单元的运行结果得到待运行模型的运行结果。
具体地,目标子模型集合对应的运行方案是运行效率最高的,待运行模型在设备上运行时采用目标子模型集合的方式进行,将待运行模型分成目标子模型运行,通过目标绑定计算处理单元运行对应的目标子模型。
上述模型运行方法,通过关联关系可确定待运行模型对应的目标子模型集合,是运行效率最高的方案,且目标子模型集合是根据将待运行模型划分为不同的子模型集合,同一个计算处理单元支持运行的多个算子会划分为同一个子模型,每个子模型都存在对应的绑定计算处理单元,子模型的绑定计算处理单元支持运行这个子模型包括的所有算子,以子模型为单位采用同一个计算处理单元进行处理,减少了各个不同的算子通过不同计算处理单元处理时,数据在不同的计算处理单元间输入输出的耗时,提高了模型运行效率,不同的子模型通过不同的计算处理单元进行处理,提高了硬件的资源利用率。
在一些实施例中,方法还包括:获取当前运行场景,当当前运行场景为时间特征场景时,将目标绑定计算处理单元配置为锁定状态,直至得到待运行模型的运行结果,锁定状态用于将计算处理单元锁定。
具体地,时间特征场景表示对运行时间非常敏感的场景,实时性要求高,每个模型的每次推理运算都会把所有需要的硬件配置为锁定状态,将计算处理单元锁定表示对计算处理单元独占,保证一次推理在最短时间内完成。例如通过待运行模型识别一个图片,那么在识别结果得到之前,待运行模型运行时所需的硬件只能为这个事务服务,其它事务拒绝,直到运行完毕或者服务下线。
在一些实施例中,当设备同时运行多个待运行模型时,候选计算处理单元流水线式运行对应的目标子模型,方法还包括:获取设备的各个候选计算处理单元中运行的目标子模型的统计数目;当第一候选计算处理单元的统计数目超过对应的处理阈值时,将所述第一候选计算处理单元配置为暂停状态,直至第一候选计算处理单元中运行的目标子模型的统计数目低于处理阈值时,将第一候选计算处理单元配置为处理状态,暂停状态用于暂停处理新增的目标子模型。
具体地,在对吞吐量敏感的场景下,每个硬件提供一条流水线,目标子模型放入流水线中,排队运行。如用户请求多次搜索,每次搜索目标子模型相同,或混合几个模型,但是都是比较类似,可以形成流水线。在一个具体的实施例中,形成的流水线如下图8所示。如果第一硬件中运行的目标子模型的统计数目超过对应的处理阈值,那么第一硬件的流水线将会暂停,等目标子模型消耗到某个处理阈值才重新启动。处理阈值是由目标子模型进入流水线到真正执行时间的长短确定的。
本申请实施例中,通过控制流水线中目标子模型的数量,避免流水线出现堵塞现象。
在一些实施例中,方法还包括:获取待运行模型的模型标识信息和模型输入数据;对模型标识信息和模型输入数据进行哈希计算生成对应的哈希值;当设备中存在与哈希值一致的关键字时,获取所述关键字对应的关键值;将关键值作为待运行模型的运行结果。
具体地,在一些场景中,模型的输入存在大量的重复,例如判断搜索词是正面还是反面,搜索词会大量重复,因为用户在某个时间段内搜此搜索词的频率高,则可以把搜索结果缓存起来,待下次直接得到返回结果,减少计算量。缓存的设计如下,模型标识信息用于唯一标识一个模型,可以包括模型名、模型版本等信息,将模型标识信息和模型输入数据进行哈希计算生成对应的哈希值,如进行md5运算得到哈希值,将哈希值作为关键字,该关键字的值为模型输出的结果进行存储。则下次运行同一个模型时,通过相同的方法计算模型对应的关键字,如果设备中存在此关键字,则可直接返回关键字的值得到模型的输出结果。
本申请实施例中,通过将模型标识信息和模型输入数据进行哈希计算生成对应的哈希值作为关键字,将模型输出的结果作为关键字的值进行对应存储,后续运行相同的模型且具有相同的输入数据时,则可直接根据关键字得到模型的输出结果,提高了大量重复运行相同模型场景的运行效率。
在一个具体的实施例中,待运行模型是图片识别模型,用于识别输入图片中的对象的类别,模型运行方法包括以下的具体过程:
1.接收图片识别请求,图片识别请求中携带图片识别模型标识和待识别图片,根据图片识别模型标识确定目标图片识别模型。
2.获取目标图片识别模型在当前设备存储的关联关系,根据关联关系确定与目标图片识别模型对应的目标子模型集合,目标子模型集合包括多个目标子模型,每个目标子模型存在对应的目标绑定计算处理单元。
3、将目标图片识别模型拆分为上述的多个目标子模型运行,各个目标子模型分别通过对应的目标绑定计算处理单元运行,将待识别图片输入起始目标子模型;
4、根据目标图片识别模型的执行逻辑,分别得到各个目标绑定计算处理单元的执行结果,按执行先后顺序将上一个目标绑定计算处理单元的输出作为下一个目标绑定计算处理单元的输入,直到得到目标图片识别模型的识别结果,得到待识别图片中对象的类型,如识别为人。
如图9所示,在一些实施例中,提供了一种数据处理装置,该数据处理装置可以集成于上述的服务器120或者终端110中,具体可以包括:
获取模块402,用于获取待运行模型和设备的候选计算处理单元。
划分模块404,用于将待运行模型划分为不同的子模型集合,各个子模型集合由不同的子模型组成,各个子模型由待运行模型中的不同的算子组成,各个子模型存在从候选计算处理单元确定的绑定计算处理单元,绑定计算处理单元支持运行对应的子模型中的各个算子。
目标子模型集合确定模块406,用于通过子模型对应的绑定计算处理单元运行各个子模型,确定各个子模型集合的运行效率信息,根据运行效率信息从子模型集合中确定目标子模型集合,目标子模型集合中的目标子模型存在对应的目标绑定计算处理单元。
第一关联模块408,用于建立待运行模型与目标子模型集合的第一关联关系,第一关联关系用于当待运行模型在设备运行时,将待运行模型分成目标子模型运行,通过目标绑定计算处理单元运行对应的目标子模型。
在一些实施例中,划分模块404还用于根据所述待运行模型的各个算子的执行顺序,将连续的被同一个当前计算处理单元支持运行的多个算子归为同一个当前子模型;将所述当前计算处理单元作为所述当前子模型的绑定计算处理单元,所述当前计算处理单元是所述候选计算处理单元中的其中一个计算处理单元。
在一些实施例中,划分模块404包括:
确定单元,用于从候选计算处理单元中确定当前计算处理单元,按照算子的先后执行顺序确定起始算子。
划分绑定单元,用于从起始算子遍历待运行模型的各个算子,至到存在当前计算处理单元对应的非支持运行算子,将从起始算子开始,当前计算处理单元对应的支持运行算子作为划分得到的当前子模型,将当前计算处理单元作为当前子模型对应的绑定计算处理单元。
遍历单元,用于将非支持运行算子作为下次遍历的起始算子,将下一个候选计算处理单元作为当前计算处理单元,返回从起始算子遍历待运行模型的各个算子的步骤,直到待运行模型中的所有算子归入对应的子模型。
在一些实施例中,所述装置还包括:
支持运行关系确定模块,用于获取标准算子,确定标准算子与计算处理单元之间的支持运行关系。
划分模块404还用于以标准算子为执行单元,将待运行模型划分为对应的各个算子,根据支持运行关系将待运行模型划分为不同的子模型集合。
在一些实施例中,支持运行关系确定模块还用于获取测试数据,将测试数据输入待运行模型运算,得到待运行模型的各个算子的输入子测试数据,将各个算子和对应的输入子测试数据在不同的计算处理单元上进行运行测试,当第一算子在第一计算处理单元的运行效率信息低于预设效率条件时,确定第一算子为第一计算处理单元对应的非支持运行算子。当第一算子在第一计算处理单元的运行效率信息满足预设效率条件时,确定第一算子为第一计算处理单元对应的支持运行算子。
在一些实施例中,装置还包括:
目标配置类型确定模块,用于计算待运行模型的各个算子的复杂度,确定各个算子的接口数据量,根据各个算子的复杂度和接口数据量确定待运行模型的目标配置类型,当目标配置类型为独立算子类型时,进入第二关联模块,当目标配置类型为子模型类型时,进入目标子模型集合确定模块406。
第二关联模块,用于直接将待运行模型的各个算子独立地作为对应的目标子模型组成算子子模型集合,将运行目标子模型效率最高的计算处理单元作为对应的目标子模型的目标绑定计算处理单元,建立待运行模型与算子子模型集合的第二关联关系,第二关联关系用于当待运行模型在所述设备运行时,将待运行模型分成算子子模型集合中的目标子模型运行,通过对应的目标绑定计算处理单元运行对应的目标子模型。
如图10所示,在一些实施例中,提供了一种模型运行装置,该模型运行装置可以集成于上述的服务器120或者终端110中,具体可以包括:
获取模块502,用于获取待运行模型和关联关系,关联关系是待运行模型与目标子模型集合的对应关系,目标子模型集合是将所述待运行模型划分为不同的子模型集合,根据各个子模型集合的运行效率信息确定的,各个子模型集合中的子模型存在从设备的候选计算处理单元确定的绑定计算处理单元,绑定计算处理单元支持运行对应子模型中的各个算子,其中各个子模型集合由不同的子模型组成,各个子模型由待运行模型中的不同的算子组成。
确定模块504,用于根据关联关系确定待运行模型对应的目标子模型集合。
运行模块506,用于将待运行模型分成所述目标子模型集合中的目标子模型运行,通过目标子模型对应的目标绑定计算处理单元运行对应的目标子模型,根据各个目标子模型在对应的目标绑定计算处理单元的运行结果得到待运行模型的运行结果。
在一些实施例中,装置还包括:
锁定模块,用于获取当前运行场景,当当前运行场景为时间特征场景时,将目标绑定计算处理单元配置为锁定状态,直至得到待运行模型的运行结果,所述锁定状态用于将计算处理单元锁定。
在一些实施例中,当设备同时运行多个待运行模型时,候选计算处理单元流水线式运行对应的目标子模型,装置还包括:
暂停模块,用于获取设备的各个候选计算处理单元中运行的目标子模型的统计数目;当第一候选计算处理单元的统计数目超过对应的处理阈值时,将第一候选计算处理单元配置为暂停状态,直至第一候选计算处理单元中运行的目标子模型的统计数目低于所述处理阈值时,将第一候选计算处理单元配置为处理状态,暂停状态用于暂停处理新增的目标子模型。
在一些实施例中,装置还包括:
运行结果确定模块,用于获取待运行模型的模型标识信息和模型输入数据,对模型标识信息和模型输入数据进行哈希计算生成对应的哈希值;当设备中存在与哈希值一致的关键字时,获取所述关键字对应的关键值;将关键值作为待运行模型的运行结果。
图11示出了一些实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的终端110。如图11所示,该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现数据处理和模型运行方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行数据处理和模型运行方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
该计算机设备具体还可以是图1中的服务器120,可以包括比图中所示更少的部件。
本领域技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一些实施例中,本申请提供的数据处理装置或模型运行装置可以实现为一种计算机程序的形式,计算机程序可在如图11所示的计算机设备上运行。计算机设备的存储器中可存储组成该数据处理装置或模型运行装置的各个程序模块,比如,图9所示的获取模块402、划分模块404、目标子模型集合确定模块406以及第一关联模块408。比如,如图10所示的获取模块502、确定模块504、运行模块506。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的数据处理方法或模型运行方法中的步骤。
例如,图11所示的计算机设备可以通过如图9所示的数据处理装置中的获取模块402获取待运行模型和设备的候选计算处理单元;通过划分模块404将待运行模型划分为不同的子模型集合,各个子模型集合由不同的子模型组成,各个子模型由待运行模型中的不同的算子组成,各个子模型集合中的子模型存在从候选计算处理单元确定的绑定计算处理单元,绑定计算处理单元支持运行对应的子模型中的各个算子;通过目标子模型集合确定模块406通过子模型对应的绑定计算处理单元运行各个子模型,确定各个子模型集合的运行效率信息,根据运行效率信息从子模型集合中确定目标子模型集合,目标子模型集合中的目标子模型存在对应的目标绑定计算处理单元;通过第一关联模块408,建立待运行模型与目标子模型集合的第一关联关系,第一关联关系用于当待运行模型在设备运行时,将待运行模型分成目标子模型运行,通过目标绑定计算处理单元运行对应的目标子模型。
例如,图11所示的计算机设备可以通过如图10所示的模型运行装置中的获取模块502获取待运行模型和关联关系,关联关系是待运行模型与目标子模型集合的对应关系,目标子模型集合是将所述待运行模型划分为不同的子模型集合,根据各个子模型集合的运行效率信息确定的,各个子模型集合中的子模型存在从设备的候选计算处理单元确定的绑定计算处理单元,绑定计算处理单元是设备支持运行对应子模型中的各个算子。其中各个子模型集合由不同的子模型组成,各个子模型由待运行模型中的不同的算子组成。通过确定模块504根据关联关系确定待运行模型对应的目标子模型集合。通过运行模块506将待运行模型分成所述目标子模型集合中的目标子模型运行,通过目标子模型对应的目标绑定计算处理单元运行对应的目标子模型,根据各个目标子模型在对应的目标绑定计算处理单元的运行结果得到待运行模型的运行结果。
在一些实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述数据处理和模型运行方法的步骤。此处数据处理和模型运行方法的步骤可以是上述各个实施例的数据处理和模型运行方法中的步骤。
在一些实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述数据处理和模型运行方法的步骤。此处数据处理和模型运行方法的步骤可以是上述各个实施例的数据处理和模型运行方法中的步骤。
应该理解的是,虽然本申请各实施例的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,各实施例中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (15)

1.一种数据处理方法,所述方法包括:
获取待运行模型和设备的候选计算处理单元;
将所述待运行模型划分为不同的子模型集合,各个子模型集合由不同的子模型组成,各个子模型由待运行模型中的不同的算子组成;
各个子模型存在从所述候选计算处理单元确定的绑定计算处理单元,所述绑定计算处理单元支持运行对应的子模型中的各个算子;
通过子模型对应的绑定计算处理单元运行各个子模型,确定各个子模型集合的运行效率信息;
根据所述运行效率信息从所述子模型集合中确定目标子模型集合,所述目标子模型集合中的目标子模型存在对应的目标绑定计算处理单元;
建立所述待运行模型与所述目标子模型集合的第一关联关系,所述第一关联关系用于当所述待运行模型在所述设备运行时,将所述待运行模型分成所述目标子模型运行,通过所述目标绑定计算处理单元运行对应的目标子模型。
2.根据权利要求1所述的方法,其特征在于,所述将所述待运行模型划分为不同的子模型集合,各个子模型存在从所述候选计算处理单元确定的绑定计算处理单元,所述绑定计算处理单元支持运行对应的子模型中的各个算子包括:
根据所述待运行模型的各个算子的执行顺序,将连续的被同一个当前计算处理单元支持运行的多个算子归为同一个当前子模型;
将所述当前计算处理单元作为所述当前子模型的绑定计算处理单元,所述当前计算处理单元是所述候选计算处理单元中的其中一个计算处理单元。
3.根据权利要求2所述的方法,其特征在于,所述根据所述待运行模型的各个算子的执行顺序,将连续的被同一个当前计算处理单元支持运行的多个算子归为同一个当前子模型,将所述当前计算处理单元作为所述当前子模型的绑定计算处理单元包括:
从所述候选计算处理单元中确定当前计算处理单元,按照算子的先后执行顺序确定起始算子;
从所述起始算子遍历所述待运行模型的各个算子,至到存在所述当前计算处理单元对应的非支持运行算子,将从所述起始算子开始,所述当前计算处理单元对应的支持运行算子作为划分得到的当前子模型,将所述当前计算处理单元作为所述当前子模型对应的绑定计算处理单元;
将所述非支持运行算子作为下次遍历的起始算子,将下一个候选计算处理单元作为当前计算处理单元,返回所述从所述起始算子遍历所述待运行模型的各个算子的步骤,直到所述待运行模型中的所有算子归入对应的子模型。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取标准算子,确定标准算子与计算处理单元之间的支持运行关系;
所述将所述待运行模型划分为不同的子模型集合包括:
以所述标准算子为执行单元,将所述待运行模型划分为对应的各个算子;
根据所述支持运行关系将所述待运行模型划分为不同的子模型集合。
5.根据权利要求4所述的方法,其特征在于,所述支持运行关系的确定包括以下步骤:
获取测试数据,将所述测试数据输入所述待运行模型运算,得到所述待运行模型的各个算子的输入子测试数据;
将各个算子和对应的输入子测试数据在不同的计算处理单元上进行运行测试;
当第一算子在第一计算处理单元的运行效率信息低于预设效率条件时,确定所述第一算子为所述第一计算处理单元对应的非支持运行算子;
当第一算子在第一计算处理单元的运行效率信息满足预设效率条件时,确定所述第一算子为所述第一计算处理单元对应的支持运行算子。
6.根据权利要求1所述的方法,其特征在于,所述通过子模型对应的绑定计算处理单元运行各个子模型,确定各个子模型集合的运行效率信息之前还包括:
计算所述待运行模型的各个算子的复杂度,确定所述各个算子的接口数据量;
根据所述各个算子的复杂度和接口数据量确定所述待运行模型的目标配置类型;
当所述目标配置类型为独立算子类型时,直接将所述待运行模型的各个算子独立地作为对应的目标子模型组成算子子模型集合,将运行目标子模型效率最高的计算处理单元作为对应的目标子模型的目标绑定计算处理单元,建立所述待运行模型与算子子模型集合的第二关联关系,所述第二关联关系用于当所述待运行模型在所述设备运行时,将所述待运行模型分成所述算子子模型集合中的目标子模型运行,通过对应的目标绑定计算处理单元运行对应的目标子模型;
当所述目标配置类型为子模型类型时,进入所述通过子模型对应的绑定计算处理单元运行各个子模型,确定各个子模型集合的运行效率信息的步骤。
7.一种模型运行方法,所述方法包括:
获取待运行模型和关联关系,所述关联关系是待运行模型与目标子模型集合的对应关系,所述目标子模型集合是将所述待运行模型划分为不同的子模型集合,根据各个子模型集合的运行效率信息确定的,各个子模型集合中的子模型存在从设备的候选计算处理单元确定的绑定计算处理单元,所述绑定计算处理单元支持运行对应子模型中的各个算子,其中各个子模型集合由不同的子模型组成,各个子模型由待运行模型中的不同的算子组成;
根据所述关联关系确定所述待运行模型对应的目标子模型集合;
将所述待运行模型分成所述目标子模型集合中的目标子模型运行,通过目标子模型对应的目标绑定计算处理单元运行对应的目标子模型;
根据各个目标子模型在对应的目标绑定计算处理单元的运行结果得到所述待运行模型的运行结果。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
获取当前运行场景;
当当前运行场景为时间特征场景时,将所述目标绑定计算处理单元配置为锁定状态,直至得到所述待运行模型的运行结果,所述锁定状态用于将计算处理单元锁定。
9.根据权利要求7所述的方法,其特征在于,当所述设备同时运行多个待运行模型时,所述候选计算处理单元流水线式运行对应的目标子模型,所述方法还包括:
获取所述设备的各个候选计算处理单元中运行的目标子模型的统计数目;
当第一候选计算处理单元的统计数目超过对应的处理阈值时,将所述第一候选计算处理单元配置为暂停状态,直至所述第一候选计算处理单元中运行的目标子模型的统计数目低于所述处理阈值时,将所述第一候选计算处理单元配置为处理状态,所述暂停状态用于暂停处理新增的目标子模型。
10.根据权利要求7所述的方法,其特征在于,所述方法还包括:
获取所述待运行模型的模型标识信息和模型输入数据;
对所述模型标识信息和模型输入数据进行哈希计算生成对应的哈希值;
当所述设备中存在与所述哈希值一致的关键字时,获取所述关键字对应的关键值;
将所述关键值作为所述待运行模型的运行结果。
11.一种数据处理装置,所述装置包括:
获取模块,用于获取待运行模型和设备的候选计算处理单元;
划分模块,用于将所述待运行模型划分为不同的子模型集合,各子子模型存在从所述候选计算处理单元确定的绑定计算处理单元,所述绑定计算处理单元支持运行对应的子模型中的各个算子,各个子模型集合由不同的子模型组成,各个子模型由待运行模型中的不同的算子组成;
目标子模型集合确定模块,用于通过子模型对应的绑定计算处理单元运行各个子模型,确定各个子模型集合的运行效率信息,根据所述运行效率信息从所述子模型集合中确定目标子模型集合,所述目标子模型集合中的目标子模型存在对应的目标绑定计算处理单元;
关联模块,用于建立所述待运行模型与所述目标子模型集合的第一关联关系,所述第一关联关系用于当所述待运行模型在所述设备运行时,将所述待运行模型分成所述目标子模型运行,通过所述目标绑定计算处理单元运行对应的目标子模型。
12.根据权利要求11所述的装置,其特征在于,所述划分模块还用于根据所述待运行模型的各个算子的执行顺序,将连续的被同一个当前计算处理单元支持运行的多个算子归为同一个当前子模型,将所述当前计算处理单元作为所述当前子模型的绑定计算处理单元,所述当前计算处理单元是所述候选计算处理单元中的其中一个计算处理单元。
13.一种模型运行装置,所述装置包括:
获取模块,用于获取待运行模型和关联关系,所述关联关系是待运行模型与目标子模型集合的对应关系,所述目标子模型集合是将所述待运行模型划分为不同的子模型集合,根据各个子模型集合的运行效率信息确定的,各个子模型集合中的子模型存在从设备的候选计算处理单元确定的绑定计算处理单元,所述绑定计算处理单元支持运行对应子模型中的各个算子,其中各个子模型集合由不同的子模型组成,各个子模型由待运行模型中的不同的算子组成;
目标子模型集合确定模块,用于根据所述关联关系确定所述待运行模型对应的目标子模型集合;
运行模块,用于将所述待运行模型分成所述目标子模型集合中的目标子模型运行,通过目标子模型对应的目标绑定计算处理单元运行对应的目标子模型,根据各个目标子模型在对应的目标绑定计算处理单元的运行结果得到所述待运行模型的运行结果。
14.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行权利要求1至6中任一项权利要求或权利要求7至10中任一项权利要求所述方法的步骤。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行权利要求1至6中任一项权利要求或权利要求7至10中任一项权利要求所述方法的步骤。
CN202010147450.9A 2020-03-05 2020-03-05 数据处理和模型运行方法、装置和计算机设备 Active CN111340237B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010147450.9A CN111340237B (zh) 2020-03-05 2020-03-05 数据处理和模型运行方法、装置和计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010147450.9A CN111340237B (zh) 2020-03-05 2020-03-05 数据处理和模型运行方法、装置和计算机设备

Publications (2)

Publication Number Publication Date
CN111340237A true CN111340237A (zh) 2020-06-26
CN111340237B CN111340237B (zh) 2024-04-26

Family

ID=71185948

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010147450.9A Active CN111340237B (zh) 2020-03-05 2020-03-05 数据处理和模型运行方法、装置和计算机设备

Country Status (1)

Country Link
CN (1) CN111340237B (zh)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111783313A (zh) * 2020-07-14 2020-10-16 北京世冠金洋科技发展有限公司 一种模型运算控制方法、装置及电子设备
CN111782401A (zh) * 2020-07-17 2020-10-16 Oppo广东移动通信有限公司 数据处理方法、装置以及电子设备
CN111782403A (zh) * 2020-07-17 2020-10-16 Oppo广东移动通信有限公司 数据处理方法、装置以及电子设备
CN111813529A (zh) * 2020-07-20 2020-10-23 腾讯科技(深圳)有限公司 数据处理方法、装置、电子设备及存储介质
CN112631781A (zh) * 2020-12-29 2021-04-09 上海商汤智能科技有限公司 一种算子执行方法、装置、电子设备及存储介质
CN112783506A (zh) * 2021-01-29 2021-05-11 展讯通信(上海)有限公司 一种模型运行方法及相关装置
CN112783807A (zh) * 2020-12-31 2021-05-11 深圳大普微电子科技有限公司 一种模型计算方法及系统
CN113220457A (zh) * 2021-05-24 2021-08-06 交叉信息核心技术研究院(西安)有限公司 模型部署方法、模型部署装置、终端设备及可读存储介质
CN114492737A (zh) * 2021-12-31 2022-05-13 北京百度网讯科技有限公司 数据处理方法、装置及电子设备、存储介质及程序产品
CN114691330A (zh) * 2022-03-28 2022-07-01 北京百度网讯科技有限公司 数据处理方法、装置、电子设备以及存储介质
CN115358379A (zh) * 2022-10-20 2022-11-18 腾讯科技(深圳)有限公司 神经网络处理、信息处理方法、装置和计算机设备
CN115981870A (zh) * 2023-03-10 2023-04-18 之江实验室 一种数据处理的方法、装置、存储介质及电子设备
WO2023123828A1 (zh) * 2021-12-31 2023-07-06 上海商汤智能科技有限公司 模型处理方法、装置、电子设备、计算机存储介质和程序
WO2023169423A1 (zh) * 2022-03-08 2023-09-14 华为技术有限公司 拆分推理方法及装置
CN117170690A (zh) * 2023-11-02 2023-12-05 湖南三湘银行股份有限公司 一种分布式构件管理系统
CN117435350A (zh) * 2023-12-19 2024-01-23 腾讯科技(深圳)有限公司 算法模型的运行方法、装置、终端以及存储介质
US11983086B2 (en) 2021-12-31 2024-05-14 Beijing Baidu Netcom Science Technology Co., Ltd. Method for processing data, and electronic device, storage medium and program product

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170293838A1 (en) * 2016-04-06 2017-10-12 Nec Laboratories America, Inc. Deep high-order exemplar learning for hashing and fast information retrieval
CN109298940A (zh) * 2018-09-28 2019-02-01 考拉征信服务有限公司 计算任务分配方法、装置、电子设备及计算机存储介质
CN109523022A (zh) * 2018-11-13 2019-03-26 Oppo广东移动通信有限公司 终端数据处理方法、装置及终端
CN109993299A (zh) * 2017-12-29 2019-07-09 中兴通讯股份有限公司 数据训练方法及装置、存储介质、电子装置
CN110275991A (zh) * 2019-06-03 2019-09-24 腾讯科技(深圳)有限公司 哈希值的确定方法和装置、存储介质、电子装置
CN110298437A (zh) * 2019-06-28 2019-10-01 Oppo广东移动通信有限公司 神经网络的分割计算方法、装置、存储介质及移动终端
CN110378413A (zh) * 2019-07-17 2019-10-25 Oppo广东移动通信有限公司 神经网络模型处理方法、装置以及电子设备
CN110458294A (zh) * 2019-08-19 2019-11-15 Oppo广东移动通信有限公司 模型运行方法、装置、终端及存储介质
CN110515739A (zh) * 2019-10-23 2019-11-29 上海燧原智能科技有限公司 深度学习神经网络模型负载计算方法、装置、设备及介质
CN110569984A (zh) * 2019-09-10 2019-12-13 Oppo广东移动通信有限公司 配置信息生成方法、装置、设备及存储介质
CN110633153A (zh) * 2019-09-24 2019-12-31 上海寒武纪信息科技有限公司 一种用多核处理器实现神经网络模型拆分方法及相关产品
CN110674936A (zh) * 2019-09-24 2020-01-10 上海寒武纪信息科技有限公司 一种神经网络处理方法、装置、计算机设备及存储介质

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170293838A1 (en) * 2016-04-06 2017-10-12 Nec Laboratories America, Inc. Deep high-order exemplar learning for hashing and fast information retrieval
CN109993299A (zh) * 2017-12-29 2019-07-09 中兴通讯股份有限公司 数据训练方法及装置、存储介质、电子装置
CN109298940A (zh) * 2018-09-28 2019-02-01 考拉征信服务有限公司 计算任务分配方法、装置、电子设备及计算机存储介质
CN109523022A (zh) * 2018-11-13 2019-03-26 Oppo广东移动通信有限公司 终端数据处理方法、装置及终端
CN110275991A (zh) * 2019-06-03 2019-09-24 腾讯科技(深圳)有限公司 哈希值的确定方法和装置、存储介质、电子装置
CN110298437A (zh) * 2019-06-28 2019-10-01 Oppo广东移动通信有限公司 神经网络的分割计算方法、装置、存储介质及移动终端
CN110378413A (zh) * 2019-07-17 2019-10-25 Oppo广东移动通信有限公司 神经网络模型处理方法、装置以及电子设备
CN110458294A (zh) * 2019-08-19 2019-11-15 Oppo广东移动通信有限公司 模型运行方法、装置、终端及存储介质
CN110569984A (zh) * 2019-09-10 2019-12-13 Oppo广东移动通信有限公司 配置信息生成方法、装置、设备及存储介质
CN110633153A (zh) * 2019-09-24 2019-12-31 上海寒武纪信息科技有限公司 一种用多核处理器实现神经网络模型拆分方法及相关产品
CN110674936A (zh) * 2019-09-24 2020-01-10 上海寒武纪信息科技有限公司 一种神经网络处理方法、装置、计算机设备及存储介质
CN110515739A (zh) * 2019-10-23 2019-11-29 上海燧原智能科技有限公司 深度学习神经网络模型负载计算方法、装置、设备及介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ALEKSANDAR ZLATESKI ET AL.: "ZNN – A Fast and Scalable Algorithm for Training 3D Convolutional Networks on Multi-Core and Many-Core Shared Memory Machines", 《2016 IEEE INTERNATIONAL PARALLEL AND DISTRIBUTED PROCESSING SYMPOSIUM》, pages 801 - 811 *
YANG YOU ET AL.: "ImageNet Training in Minutes", 《ARXIV》, pages 1 - 11 *
张 潇 等: "面向多核处理器的机器学习推理框架", 《计算机研究与发展》, vol. 56, no. 9, pages 1977 - 1987 *

Cited By (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111783313A (zh) * 2020-07-14 2020-10-16 北京世冠金洋科技发展有限公司 一种模型运算控制方法、装置及电子设备
CN111782401A (zh) * 2020-07-17 2020-10-16 Oppo广东移动通信有限公司 数据处理方法、装置以及电子设备
CN111782403A (zh) * 2020-07-17 2020-10-16 Oppo广东移动通信有限公司 数据处理方法、装置以及电子设备
WO2022012118A1 (zh) * 2020-07-17 2022-01-20 Oppo广东移动通信有限公司 数据处理方法、装置、电子设备及存储介质
WO2022012119A1 (zh) * 2020-07-17 2022-01-20 Oppo广东移动通信有限公司 数据处理方法、装置、电子设备及存储介质
CN111813529A (zh) * 2020-07-20 2020-10-23 腾讯科技(深圳)有限公司 数据处理方法、装置、电子设备及存储介质
CN111813529B (zh) * 2020-07-20 2023-12-12 腾讯科技(深圳)有限公司 数据处理方法、装置、电子设备及存储介质
CN112631781A (zh) * 2020-12-29 2021-04-09 上海商汤智能科技有限公司 一种算子执行方法、装置、电子设备及存储介质
CN112783807A (zh) * 2020-12-31 2021-05-11 深圳大普微电子科技有限公司 一种模型计算方法及系统
CN112783807B (zh) * 2020-12-31 2023-12-29 深圳大普微电子科技有限公司 一种模型计算方法及系统
WO2022142478A1 (zh) * 2020-12-31 2022-07-07 深圳大普微电子科技有限公司 一种模型计算方法及系统
CN112783506A (zh) * 2021-01-29 2021-05-11 展讯通信(上海)有限公司 一种模型运行方法及相关装置
CN112783506B (zh) * 2021-01-29 2022-09-30 展讯通信(上海)有限公司 一种模型运行方法及相关装置
CN113220457A (zh) * 2021-05-24 2021-08-06 交叉信息核心技术研究院(西安)有限公司 模型部署方法、模型部署装置、终端设备及可读存储介质
CN113220457B (zh) * 2021-05-24 2024-03-22 深圳市智芯华玺信息技术有限公司 模型部署方法、模型部署装置、终端设备及可读存储介质
CN114492737B (zh) * 2021-12-31 2022-12-09 北京百度网讯科技有限公司 数据处理方法、装置及电子设备、存储介质及程序产品
WO2023123828A1 (zh) * 2021-12-31 2023-07-06 上海商汤智能科技有限公司 模型处理方法、装置、电子设备、计算机存储介质和程序
CN114492737A (zh) * 2021-12-31 2022-05-13 北京百度网讯科技有限公司 数据处理方法、装置及电子设备、存储介质及程序产品
US11983086B2 (en) 2021-12-31 2024-05-14 Beijing Baidu Netcom Science Technology Co., Ltd. Method for processing data, and electronic device, storage medium and program product
WO2023169423A1 (zh) * 2022-03-08 2023-09-14 华为技术有限公司 拆分推理方法及装置
CN114691330A (zh) * 2022-03-28 2022-07-01 北京百度网讯科技有限公司 数据处理方法、装置、电子设备以及存储介质
CN115358379B (zh) * 2022-10-20 2023-01-10 腾讯科技(深圳)有限公司 神经网络处理、信息处理方法、装置和计算机设备
CN115358379A (zh) * 2022-10-20 2022-11-18 腾讯科技(深圳)有限公司 神经网络处理、信息处理方法、装置和计算机设备
CN115981870A (zh) * 2023-03-10 2023-04-18 之江实验室 一种数据处理的方法、装置、存储介质及电子设备
CN117170690A (zh) * 2023-11-02 2023-12-05 湖南三湘银行股份有限公司 一种分布式构件管理系统
CN117170690B (zh) * 2023-11-02 2024-03-22 湖南三湘银行股份有限公司 一种分布式构件管理系统
CN117435350B (zh) * 2023-12-19 2024-04-09 腾讯科技(深圳)有限公司 算法模型的运行方法、装置、终端以及存储介质
CN117435350A (zh) * 2023-12-19 2024-01-23 腾讯科技(深圳)有限公司 算法模型的运行方法、装置、终端以及存储介质

Also Published As

Publication number Publication date
CN111340237B (zh) 2024-04-26

Similar Documents

Publication Publication Date Title
CN111340237B (zh) 数据处理和模型运行方法、装置和计算机设备
CN111709533B (zh) 机器学习模型的分布式训练方法、装置以及计算机设备
CN109902708B (zh) 一种推荐模型训练方法及相关装置
CN112232293B (zh) 图像处理模型训练、图像处理方法及相关设备
US11526799B2 (en) Identification and application of hyperparameters for machine learning
CN110929047B (zh) 关注邻居实体的知识图谱推理方法和装置
CN110569437A (zh) 点击概率预测、页面内容推荐方法和装置
CN107783840B (zh) 一种分布式多层深度学习资源分配方法和装置
CN111914908B (zh) 一种图像识别模型训练方法、图像识别方法及相关设备
CN110555164B (zh) 群体兴趣标签的生成方法、装置、计算机设备和存储介质
CN114492601A (zh) 资源分类模型的训练方法、装置、电子设备及存储介质
CN113641835B (zh) 多媒体资源推荐方法、装置、电子设备及介质
CN114329004A (zh) 数字指纹生成、数据推送方法、装置和存储介质
CN114549849A (zh) 图像识别方法、装置、计算机设备和存储介质
CN115917562A (zh) 深度学习模型的推理方法、装置、计算机设备和存储介质
CN115883172A (zh) 异常监测方法、装置、计算机设备和存储介质
CN113811897B (zh) 神经网络模型的推理方法、装置、计算机设备和存储介质
CN113873025A (zh) 数据处理方法及装置、存储介质及电子设备
CN111061875B (zh) 超参数确定方法、装置、计算机设备和存储介质
CN110177006B (zh) 基于接口预测模型的节点测试方法及装置
CN113674152A (zh) 图像处理方法、装置、电子设备和计算机可读存储介质
CN115358379B (zh) 神经网络处理、信息处理方法、装置和计算机设备
CN114969636B (zh) 一种模型推荐的方法、装置和计算机设备
Zhang et al. Online social network profile linkage based on cost-sensitive feature acquisition
CN112235152B (zh) 流量大小估算方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40024056

Country of ref document: HK

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant