CN117348848A - 算子开发、处理方法、装置、电子设备、系统及存储介质 - Google Patents

算子开发、处理方法、装置、电子设备、系统及存储介质 Download PDF

Info

Publication number
CN117348848A
CN117348848A CN202210762431.6A CN202210762431A CN117348848A CN 117348848 A CN117348848 A CN 117348848A CN 202210762431 A CN202210762431 A CN 202210762431A CN 117348848 A CN117348848 A CN 117348848A
Authority
CN
China
Prior art keywords
operator
target
description file
development
standard
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
CN202210762431.6A
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.)
4Paradigm Beijing Technology Co Ltd
Original Assignee
4Paradigm Beijing Technology 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 4Paradigm Beijing Technology Co Ltd filed Critical 4Paradigm Beijing Technology Co Ltd
Priority to CN202210762431.6A priority Critical patent/CN117348848A/zh
Priority to PCT/CN2023/094913 priority patent/WO2024001594A1/zh
Publication of CN117348848A publication Critical patent/CN117348848A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/24Object-oriented
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开一种算子开发、处理方法、装置、电子设备、系统及存储介质。该方法包括:从标准算子库获取目标算子;其中,所述目标算子至少包括算子的描述文件与算子源代码;所述描述文件用于描述算子基础能力与运行能力,所述运行能力至少包括框架信息与开发语言,所述框架信息用于指示算子所支持的运行框架;根据目标运行框架所支持的协议,将所述目标算子的描述文件进行转换,获得与所述目标运行框架对应的处理后的目标算子;将处理后的目标算子发送至对应的运行框架,以在对应的运行框架中运行所述目标算子。

Description

算子开发、处理方法、装置、电子设备、系统及存储介质
技术领域
本公开涉及人工智能技术领域,更具体的,涉及一种算子开发、处理方法、装置、电子设备、系统及存储介质。
背景技术
在机器学习领域,模型的产生往往只是机器学习落地应用的第一步。模型产生之后往往需要经过服务化封装、参数调优、数据对接、编排框架对接、运行框架对接等诸多复杂的流程,而且每个流程往往需要有相关技术背景的工程师反复沟通协助才能完成。
为方便协作,目前在机器学习领域抽象出算子的概念,并将算子作为运行在运行框架的最小单元。相关技术中,其是通过SDK(Software Development Kit)的方式进行算子的开发,且算子的开发往往与某一运行框架绑定,当需要将算子与其他运行框架进行绑定时,这种SDK开发方式对算子本身的逻辑有较强侵入性,对原有逻辑有一定的改造成本,且每次开发算子时需要进行大量的重复工作,增加了开发成本和时间成本。
发明内容
本公开实施例的一个目的是提供一种算子开发的新的技术方案。
根据本公开的第一方面,提供了一种算子开发方法,该方法包括:
基于用户在开发界面上的第一操作信息,确定目标算子包的描述文件,所述描述文件用于描述算子基础能力与运行能力,所述运行能力至少包括框架信息与开发语言,所述框架信息用于指示算子所支持的运行框架;
确定与所述描述文件相匹配的算子标准模板;其中,所述算子标准模板至少包括:算子的描述文件与算子源代码;
基于所述用户在所述开发界面上的第二操作信息,填充所述算子标准模板,得到所述目标算子;
将所述目标算子打包并存入标准算子库。
可选地,所述确定与所述描述文件相匹配的算子标准模板,包括:
在预设的算子标准模板中,选择与所述框架信息与所述开发语言相匹配的算子标准模板;
或者,基于所述框架信息与所述开发语言,生成与之匹配的算子标准模板。
可选地,所述算子标准模板还包括以下至少一项:算子的说明文档、算子的测试文件。
可选地,所述算子基础能力包括:输入、输出、运行参数。
可选地,所述算子运行能力还包括以下至少一项:运行类型、规模、负载模式、底层平台、管理模式、依赖、输出数据数据集、状态、架构。
可选地,所述框架信息所支持的运行框架包括以下至少一项:spark、flink、horovod、dask、mars、mindspore、local、k8s、hadoop、SAAS。
可选地,所述将所述目标算子打包并存入标准算子库,包括:
验证所述目标算子是否满足算子准入机制;
当所述目标算子满足所述算子准入机制时,将所述目标算子打包并存入标准算子库。
根据本公开的第二方面,提供了一种算子处理方法,该方法包括:
从标准算子库获取目标算子;其中,所述目标算子至少包括算子的描述文件与算子源代码;所述描述文件用于描述算子基础能力与运行能力,所述运行能力至少包括框架信息与开发语言,所述框架信息用于指示算子所支持的运行框架;
根据目标运行框架所支持的协议,将所述目标算子的描述文件进行转换,获得与所述目标运行框架对应的处理后的目标算子;
将与所述目标运行框架对应的处理后的目标算子发送至所述目标运行框架,以在所述目标运行框架中运行所述目标算子。
可选地,在所述根据目标运行框架所支持的协议,将所述目标算子的描述文件进行转换,获得与所述目标运行框架对应的处理后的目标算子之前,还包括:
通过与编排框架对应的适配器,将所述目标算子的描述文件解析为所述编排框架可读的第一文件;
通过所述编排框架,基于所述目标算子对应的所述第一文件,对所述目标算子进行编排,得到编排后的目标算子。
可选地,所述根据目标运行框架所支持的协议,将所述目标算子的描述文件进行转换,获得与所述目标运行框架对应的处理后的目标算子,包括:
根据所述目标运行框架所支持的协议,将所述目标标准的描述文件解析为所述协议可读的第二文件;
根据所述第二文件,得到与所述目标运行框架对应的处理后的目标算子。
可选地,所述算子标准模板还包括以下至少一项:算子的说明文档、算子的测试文件。
可选地,所述算子基础能力包括:输入、输出、运行参数。
可选地,所述算子运行能力还包括以下至少一项:运行类型、规模、负载模式、底层平台、管理模式、依赖、输出数据数据集、状态、架构。
可选地,所述框架信息所支持的运行框架包括以下至少一项:spark、flink、horovod、dask、mars、mindspore、local、k8s、hadoop、SAAS。
根据本公开的第三方面,提供了一种算子开发装置,该装置包括:
第一确定模块,用于基于用户在开发界面上的第一操作信息,确定目标算子包的描述文件,所述描述文件用于描述算子基础能力与运行能力,所述运行能力至少包括框架信息与开发语言,所述框架信息用于指示算子所支持的运行框架;
第二确定模块,用于确定与所述描述文件相匹配的算子标准模板;其中,所述算子标准模板至少包括:算子的描述文件与算子源代码;
填充模块,用于基于所述用户在所述开发界面上的第二操作信息,填充所述算子标准模板,得到所述目标算子;
打包模块,用于将所述目标算子打包并存入标准算子库。
可选地,所述第二确定模块,具体用于:
在预设的算子标准模板中,选择与所述框架信息与所述开发语言相匹配的算子标准模板;
或者,基于所述框架信息与所述开发语言,生成与之匹配的算子标准模板
可选地,所述算子标准模板还包括以下至少一项:算子的说明文档、算子的测试文件。
可选地,所述算子基础能力包括:输入、输出、运行参数。
可选地,所述算子运行能力还包括以下至少一项:运行类型、规模、负载模式、底层平台、管理模式、依赖、输出数据数据集、状态、架构。
可选地,所述框架信息所支持的运行框架包括以下至少一项:spark、flink、horovod、dask、mars、mindspore、local、k8s、hadoop、SAAS。
可选地,所述打包模块,具体用于:
验证所述目标算子是否满足算子准入机制;
当所述目标算子满足所述算子准入机制时,将所述目标算子打包并存入标准算子库。
根据本公开的第四方方面,提供了一种算子处理装置,该装置包括:
获取模块,用于从标准算子库获取目标算子;其中,所述目标算子至少包括算子的描述文件与算子源代码;所述描述文件用于描述算子基础能力与运行能力,所述运行能力至少包括框架信息与开发语言,所述框架信息用于指示算子所支持的运行框架;
转换模块,用于根据目标运行框架所支持的协议,将所述目标算子的描述文件进行转换,获得与所述目标运行框架对应的处理后的目标算子;
发送模块,用于将与所述目标运行框架对应的处理后的目标算子发送至所述目标运行框架,以在所述目标运行框架中运行所述目标算子。
可选地,所述装置还包括编排模块,具体用于:
通过与编排框架对应的适配器,将所述目标算子的描述文件解析为所述编排框架可读的第一文件;
通过所述编排框架,基于所述目标算子对应的所述第一文件,对所述目标算子进行编排,得到编排后的目标算子。
可选地,所述转换模块,具体用于:
根据所述目标运行框架所支持的协议,将所述目标标准的描述文件解析为所述协议可读的第二文件;
根据所述第二文件,得到与所述目标运行框架对应的处理后的目标算子。
可选地,所述算子标准模板还包括以下至少一项:算子的说明文档、算子的测试文件。
可选地,所述算子基础能力包括:输入、输出、运行参数。
可选地,所述算子运行能力还包括以下至少一项:运行类型、规模、负载模式、底层平台、管理模式、依赖。
可选地,所述框架信息所支持的运行框架包括以下至少一项:spark、flink、horovod、dask、mars、mindspore、local、k8s、hadoop、SAAS。
根据本公开的第五方面,提供了一种包括至少一个计算装置和至少一个存储装置的电子设备,其中,所述至少一个存储装置用于存储指令,所述指令用于控制所述至少一个计算装置执行根据以上第一方面所述的方法;或者,所述设备通过所述计算装置和所述存储装置实现根据以上第二方面所述的装置。
根据本公开的第六方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在被处理器执行时实现如第一方面或第二方面中任一项所述的方法。
根据本公开的第七方面,提供了一种算子运行系统,其特征在于,所述系统包括:代理器,用于代理与其他系统的交互,所述其他系统包括:算子仓库、算子运行框架;状态跟踪器,用于跟踪任务状态并记录;任务配置器,用于监听任务并作任务配置。
本公开的一个有益效果在于,其是通过目标算子包的描述文件和算子标准模板进行目标算子的开发,其中,目标算子的描述文件用于描述算子基础能力与运行能力,运行能力至少包括框架信息与开发语言,框架信息用于指示算子所支持的运行框架,其中,算子标准模板包括算子的描述文件和算子源代码。具体进行目标算子开发时,需要确定出目标算子包的描述文件,然后确定与该描述文件匹配的算子标准模板,并填充该算子标准模板以得到目标算子。即,其是通过配置算子标准模板的方式进行目标算子的开发,能够降低开发算子时的重复工作,提升了算子的适配性,大幅降低机器学习落地难度,降低了开发成本和时间成本。
附图说明
被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。
图1是根据本公开实施例的电子设备的硬件结构示意图;
图2是根据本公开实施例的算子开发方法的流程示意图;
图3是根据本公开一个例子的算子开发方法的流程示意图;
图4是根据本公开实施例的算子处理方法的流程示意图;
图5是根据本公开实施例的算子运行系统结构示意图;
图6是根据本公开另一实施例的算子运行系统结构示意图;
图7是根据本公开另一实施例的算子运行系统结构示意图;
图8是根据本公开一个例子的算子运行数据流示意图;
图9是根据本公开实施例的算子开发装置的原理框图;
图10是根据本公开实施例的算子处理装置的原理框图;
图11是根据本公开实施例的电子设备的原理框图。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
<硬件配置>
本公开实施例的方法可以由至少一台电子设备实施,即,用于实施算子开发方法的装置900或者实施算子处理方法的装置1000可以布置在该至少一台电子设备上。图1示出了任意电子设备的硬件结构。图1所示的电子设备可以是便携式电脑、台式计算机、工作站、服务器等,也可以是任意的具有处理器等计算装置和存储器等存储装置的其他设备,在此不做限定。
如图1所示,该电子设备1000可以包括处理器1100、存储器1200、接口装置1300、通信装置1400、显示装置1500、输入装置1600、扬声器1700、麦克风1800等等。其中,处理器1100用于执行计算机程序。该计算机程序可以采用比如x86、Arm、RISC、MIPS、SSE等架构的指令集编写。存储器1200例如包括ROM(只读存储器)、RAM(随机存取存储器)、诸如硬盘的非易失性存储器等。接口装置1300例如包括USB接口、耳机接口等。通信装置1400例如能够进行有线或无线通信,具体地可以包括Wifi通信、蓝牙通信、2G/3G/4G/5G通信等。显示装置1500例如是液晶显示屏、触摸显示屏等。输入装置1600例如可以包括触摸屏、键盘、体感输入等。电子设备1000可以通过扬声器1700输出语音信息,及可以通过麦克风1800采集语音信息等。
图1所示的电子设备仅仅是说明性的并且决不意味着对本发明、其应用或使用的任何限制。应用于本公开的实施例中,电子设备1000的所述存储器1200用于存储指令,所述指令用于控制所述处理器1100进行操作以执行本公开实施例的算子开发方法或者算子处理方法。技术人员可以根据本发明所公开方案设计指令。指令如何控制处理器进行操作,这是本领域公知,故在此不再详细描述。
在一个实施例中,提供了一种包括至少一个计算装置和至少一个存储装置的电子设备,该至少一个存储装置用于存储指令,该指令用于控制该至少一个计算装置执行根据本公开任意实施例的方法。
该设备可以包括至少一台图1所示的电子设备1000,以提供至少一个例如是处理器的计算装置和至少一个例如是存储器的存储装置,在此不做限定。
<方法实施例一>
图2是根据本公开实施例的算子开发方法的流程示意图,该方法由电子设备1000执行,如图2所示,该方法可以包括如下步骤S2100~S2400:
步骤S2100,基于用户在开发界面上的第一操作信息,确定目标算子包的描述文件。
算子可以是开发者根据需求开发出的功能模组,该算子可以包括但不限于以下至少一种:模型训练算子、模型预测算子、特征提取算子、模型评估算子,当然,也可以是开发者根据客户需求所开发出的自定义算子,自定义算子的功能和应用场景均可由客户自定义设计,本实施例在此不做限定。
所述描述文件用于描述算子基础能力与运行能力,所述运行能力至少包括框架信息与开发语言,所述框架信息用于指示算子所支持的运行框架。该描述文件的格式为yaml,例如,该描述文件可以命名为Operator.yaml,以便于与其他文件进行区分。
其中,所述框架信息用于描述算子所支持的运行框架,本公开实施例所涉及到的运行框架可以包括但不限于以下至少一项:spark、flink、horovod、dask、mars、mindspore、local、k8s、hadoop、SAAS。本实施例中,可以根据需要在描述文件定义不同的运行框架,进而使得所开发出的目标算子能够与所定义的运行框架适配。更进一步地,也可以在描述文件中定义有两个以上的运行框架时,所开发出的目标算子可以同时运行在该两个以上运行框架上,进而使得目标算子能够实现跨运行框架运行。换言之,通过本公开实施例所提供的算子开发方法,降低了算子使用门槛,算子的可迁移性较高,能够运行于多种运行框架,适用范围较广。
其中,本公开实施例所涉及到的所述开发语言可以包括但不限于以下至少一项:Python语言、golang语言、c语言、c++语言、Java语言。本实施例中,可以根据需要在描述文件中定义不同的开发语言,进而基于所定义的开发语言进行算子的开发,能兼容多语言开发的算子。
其中,所述算子的运行能力还可以包括但不限于以下至少一项:运行类型、规模、负载模式、底层平台、管理模式、依赖、输出数据数据集、状态、架构。运行类型可以包括但不限于在线类型算子和批量类型算子,该在线类型算子通常能够提供在线预测服务,在线类型算子可以包括但不限于服务、流式。该批量类型算子通常能够提供批量预测服务。
规模可以包括但不限于单机算子、分布式算子。负载模式可以包括但不限于远程(remote)、本地(local)。底层平台可以包括但不限于以下至少一项:k8s(kubernetes)、yarn、hadoop。管理模式可以包括但不限于托管(通过admission hook方式watch,无侵入性,适合原生k8s类型)、状态上报(非原生框架,第三方k8s CRD或者其他框架)等。架构可以包括但不限于x86、arm。
依赖可以包括但不限于ray、dask、horovod。状态可以包括但不限于同步状态信息syncStatus和运行状态runningPhase,其中,同步状态信息syncStatus可以包括但不限于未同步unsynced、同时发生syncing、同步synced、未知unknown。运行状态runningPhase可以包括但不限于等待pending、运行running、成功succeeded、转移skipped、失败failed、错误error。
其中,所述算子基础能力包括但不限于:输入、输出、运行参数。该输入用于描述算子运行时的输入信息,该输入可以包括但不限于源类型、配置、输入数据。该输出用于描述算子运行时的输出信息,该输出可以包括但不限于输出类型、配置、输出数据。运行参数是算子运行时所需要的必要业务参数,该必要业务参数可以包括但不限于并发数、训练轮数和模型类型。本实施例中,通过在描述文件中定义算子运行时所需要的必要业务参数,可以使得算子稳定的运行,避免算子运行失败、进而提升算子的运行能力。
应当理解,前述针对描述文件中所包含的各项内容,以及,各项内容所支持的具体内容,都仅为示例性的,实际场景中,还可以基于实际情况,对描述文件中的各项内容进行适应性的增减。
在一个例子中,用户在开发界面上的第一操作信息可以是用户针对电子设备所输出的描述文件的选择操作、确定操作或编辑操作等操作的相关信息,例如,电子设备输出的描述文件可以是初始描述文件,该初始描述文件可以是预先存储至电子设备中的文件,在此,开发者可以直接进行确定操作,将该初始描述文件确定为目标算子包的描述文件;或者,开发者可以根据自身需求对该初始描述文件进行编辑操作,进而得到目标算子包的描述文件。又例如,电子设备可以输出多种描述文件,用户就可以在该界面上进行选择,以确定目标算子包的描述文件。这种基于电子设备所输出的描述文件去得到目标算子包的描述文件的方式,算子开发效率高。
在一个例子中,用户在开发界面上的第一操作信息也可以是用户手动编写的目标算子包的描述文件,这种通过手动编写目标算子包的描述文件的方式,更加符合用户需求,也能够满足用户的自定义设计需求,以及,在电子设备预设的描述文件不满足用户需求时,为用户提供自定义设计描述文件的补救措施。
在执行基于用户在开发界面上的第一操作信息,确定目标算子包的描述文件之后,进入:
步骤S2200,确定与所述描述文件相匹配的算子标准模板。
算子标准模板至少包括:算子的描述文件与算子源代码。可以理解的是,算子标准模板可以具体化为脚手架,脚手架可以称之为代码目录结构和入口函数,本实施例中,脚手架所起的作用为算子标准模板。
其中,算子源代码是为实现算子功能所编写的代码。例如,特征提取算子是用于对输入的数据进行特征提取,对应的,特征提取算子源代码即为实现对输入的数据进行特征提取这一功能所编写的代码。又例如,模型训练算子是用于根据特征提取的结果进行模型训练得到机器学习模型,对应的,模型训练算子源代码即为实现根据特征提取的结果进行模型训练得到机器学习模型这一功能所编写的代码。再例如,模型评估算子是用于对训练好的机器学习模型的性能进行评估,对应的,模型评估算子源代码即为实现对训练好的机器学习模型的性能进行评估这一功能所编写的代码。
在以上的任意一个实施例中,算子标准模板除包括描述文件与算子源代码之外,还包括进一步以下至少一项:算子的说明文档、算子的测试文件。
其中,算子的说明文档通常是为方便客户、普通人员能够正常使用、运行、调试算子所编写的文档,进而降低算子应用的门槛。
其中,算子的测试文件可以包括但不限于测试用例和测试报告模板。测试用例是针对算子进行测试任务的描述,体现测试方案、方法和策略,其内容可以包括但不限于测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本。测试报告模板是针对算子执行测试用例所得到的测试报告。本实施例中,通过在算子标准模板规定算子的测试文件,可以提升算子质量,以便在开发出目标算子之后,可通过自动测试和人工审核相结合的方式进行算子评级。
在一个实施例中,本步骤S2200确定与所述描述文件相匹配的算子标准模板可以进一步包括:在预设的算子标准模板中,选择与所述框架信息与所述开发语言相匹配的算子标准模板。
本实施例中,预设的算子标准模板中包括多个算子标准模板,例如但不限于包括算子标准模板1、算子标准模板2。可以理解的是,任意两种不同的开发语言,其各自对应的算子标准模板的类别不同,不同类别的算子标准模板不同,具体而言,算子标准模板中各大项(描述文件、算子源代码、说明文档、测试文件)里面包含的内容或内容的生成方式不同。例如,开发语言python对应一个类别的算子标准模板,开发语言c++对应一个类别的算子标准模板,且这两种类别的算子标准模板中各大项里面包含的内容或内容的生成方式不同。
本实施例中,框架信息和开发语言与算子标准模板具有映射关系,也就是说,框架信息和开发语言不同,所对应的算子标准模板不同,这样,在确定目标算子包的描述文件的情况下,便可根据描述文件中的框架信息和开发语言,从预设的算子标准模板中确定出与该框架信息和开发语言对应的算子标准模板,可以准确的确定出算子标准模板。
在一个实施例中,本步骤S2200确定与所述描述文件相匹配的算子标准模板也可以进一步包括:基于所述框架信息与所述开发语言,生成与之匹配的算子标准模板。
本实施例中,在确定目标算子包的描述文件的情况下,电子设备也可以直接根据描述文件中的框架信息和开发语言,自动生成与该框架信息和开发语言相匹配的算子标准模板,可以高效的生成算子标准模板。
在执行确定与所述描述文件相匹配的算子标准模板之后,进入:
步骤S2300,基于所述用户在所述开发界面上的第二操作信息,填充所述算子标准模板,得到所述目标算子。
本实施例中,在确定出与所述描述文件相匹配的算子标准模板之后,便可基于用户在开发界面上的第二操作信息,填充该算子标准模板以得到目标算子。
在执行基于所述用户在所述开发界面上的第二操作信息,填充所述算子标准模板,得到所述目标算子之后,进入:
步骤S2400,将所述目标算子打包并存入标准算子库。
本实施例中,本步骤S2400中将所述目标算子打包并存入标准算子库可以进一步包括:验证所述目标算子是否满足算子准入机制;当所述目标算子满足所述算子准入机制时,将所述目标算子打包并存入标准算子库。
示例性的,算子准入机制可以为一种自动测试机制。一种可能的实施例中,算子准入机制可以与算子的测试文件相关。在实际应用中,可以利用算子的测试文件对算子进行测试,当其通过测试,则可以确定满足该算子准入机制。
或者,算子准入机制也可以由业务人员进行人为把控。另一种可能的实施例中,当得到目标算子后,可通过人为把控的方式,来确定目标算子是否满足算子准入机制,即,为业务人员人为把控算子质量,提供了一种可能。
当然,具体应用时,自动测试机制与人为把控机制也可以组合应用,当二者均通过时,则目标算子满足算子准入机制。
此外,算子准入机制也可以是根据实际需求进行设置,本实施例并不限定算子准入机制的具体内容。也就是说,其在得到目标算子之后,并不是直接将目标算子并入标准算子库,而是先基于算子准入机制对目标算子进行验证,并在验证通过的情况下,才将目标算子打包并存入标准算子库,进一步提升算子质量,保证标准算子库中的算子水平的一致性,也会相应的降低算子开发成本。
而且,标准化后的算子既可以在集群中运行,又可以在本地运行,且有同样的功能体验,这降低了算子研发人员需要学习多种分布式集群的学习成本。
此外,若目标算子不满足算子准入机制,则退回开发人员处,以便于开发人员对其进行修改或调整,开发人员调整后的目标算子,仍可按照图2所示的方法来进行开发。
根据本公开实施例,其是通过目标算子包的描述文件和算子标准模板进行目标算子的开发,其中,目标算子的描述文件用于描述算子基础能力与运行能力,运行能力至少包括框架信息与开发语言,框架信息用于指示算子所支持的运行框架,其中,算子标准模板包括算子的描述文件和算子源代码。具体进行目标算子开发时,需要确定出目标算子包的描述文件,然后确定与该描述文件匹配的算子标准模板,并填充该算子标准模板以得到目标算子。即,其是通过配置算子标准模板的方式进行目标算子的开发,能够降低开发算子时的重复工作,提升了算子的适配性,大幅降低机器学习落地难度,降低了开发成本和时间成本。
需要说明的是,本发明实施例中所涉及到的算子,还可被用于隐私计算、多方安全计算、联邦学习、匿踪(隐匿)查询、安全(隐私)求交等场景。
接下来示出一个例子的算子开发方法的流程示意图,该例子中,结合图3所示,该算子开发方法可以包括如下步骤S310~步骤S390:
步骤S310,基于算子开发者在开发界面上的第一操作信息,生成目标算子包的描述文件Operator.yaml。
步骤S320,根据描述文件Operator.yaml中定义的开发语言和运行框架,自动生成或手动编写脚手架代码。
步骤S330,对脚手架代码进行opctl本地调试。
步骤S340,填充脚手架代码得到目标算子。
步骤S350,将目标算子打包并上传至持续集成工具(CI工具)。
步骤S360,基于算子的测试文件在CI工具中对目标算子进行自动化测试,得到自动化测试结果。
步骤S370,算子开发者基于自动化测试结果在OpHub系统中对目标算子进行调试,并针对调试后的目标算子编写测试文件。
步骤S380,在CI工具中验证目标算子满足算子准入机制的情况下,质量保证人员(QA人员)基于所编写的测试文件对目标算子进行人工测试,并在测试通过的情况下,通过CI工具发版(release)打包后的目标算子。
步骤S390,将目标算子落入标准算子库即制品库。
根据本例子,研发过程中,算子标准化对研发带来的好处包括:首先,其基于生成脚手架代码的方式进行目标算子的开发,能够降低开发算子时的重复工作,提升了算子的适配性和使用范围,大幅降低机器学习落地难度,降低了开发成本和时间成本。而且,全生命周期管理,提升算子开发效率,相比于传统算子开发,开发时间缩小50%。其次,标准化后的算子既可以在集群中运行,也可以在本地运行,这降低了算子开发者需要学习多种分布式集群的学习成本。
算子标准化对产品管理人员带来的好处包括但不限于:通过算子的测试文件对算子进行测试后才落入制品库,通过接入自动化测试的方式,设计易用的算子准入机制进提升算子质量。
<方法实施例二>
图4是根据本公开实施例的算子处理方法的流程示意图,该方法由电子设备1000执行,具体可以是由电子设备中的OpHub系统执行,或者,也可以电子设备中的其他模块或系统执行,其中,这些模块或系统可以按照如图4所示的方法来对算子进行调度应用,具体而言,该方法可以包括如下步骤S4100~S4300:
步骤S4100,从标准算子库获取目标算子。
目标算子可以是根据上述实施例一开发得到的标准算子库中的其中一个或多个算子。本实施例中,可以从标准算子库中获取所需要的一个或多个目标算子。参照图5,可以基于本地集成开发环境(local IDE)或者网络集成开发环境(web IDE)开发目标算子并上传至标准算子库(git repo),以便本系统(例如OpHub)可以从git rego中获取目标算子。
所述目标算子至少包括算子的描述文件与算子源代码;所述描述文件用于描述算子基础能力与运行能力,所述运行能力至少包括框架信息与开发语言,所述框架信息用于指示算子所支持的运行框架。
其中,所述框架信息所支持的运行框架可以包括但不限于以下至少一项:spark、flink、horovod、dask、mars、mindspore、local、k8s、hadoop、SAAS。本实施例中,在描述文件中定义两个以上的运行框架时,所开发出的目标算子可以同时运行在该两个以上运行框架上,进而使得目标算子能够实现跨运行框架运行,提升适用范围和适配性,分布式算子开发的开发体验提升。
其中,本公开实施例所涉及的所述开发语言可以包括但不限于以下至少一项:Python语言、golang语言、c语言、c++语言、Java语言。本实施例中,可以根据需要在描述文件中定义不同的开发语言,进而基于所定义的开发语言进行算子的开发,能兼容多语言开发的算子。
所述算子的运行能力还可以包括但不限于以下至少一项:运行类型、规模、负载模式、底层平台、管理模式、依赖、输出数据数据集、状态、架构。具体可以参照算子开发实施例的介绍,本实施例在此不做赘述。
所述算子基础能力包括但不限于:输入、输出、运行参数。具体可以参照算子开发实施例的介绍,本实施例在此不做赘述。
算子源代码是为实现算子功能所编写的代码。例如,特征提取算子是用于对输入的数据进行特征提取,对应的,特征提取算子源代码即为实现对输入的数据进行特征提取这一功能所编写的代码。又例如,模型训练算子是用于根据特征提取的结果进行模型训练得到机器学习模型,对应的,模型训练算子源代码即为实现根据特征提取的结果进行模型训练得到机器学习模型这一功能所编写的代码。再例如,模型评估算子是用于对训练好的机器学习模型的性能进行评估,对应的,模型评估算子源代码即为实现对训练好的机器学习模型的性能进行评估这一功能所编写的代码。
在执行从标准算子库获取目标算子之后,进入:
步骤S4200,根据目标运行框架所支持的协议,将所述目标算子的描述文件进行转换,获得与所述目标运行框架对应的处理后的目标算子。
目标运行框架为算子的描述文件中算子的框架信息所指示的算子所支持的运行框架。可以理解的是,目标运行框架可以仅有一个,目标运行框架也可以有多个,具体可以参照上述介绍。
本实施例中,本步骤S4200中根据目标运行框架所支持的协议,将所述目标算子的描述文件进行转换,获得与所述目标运行框架对应的处理后的目标算子可以进一步包括:根据所述目标运行框架所支持的协议,将所述目标标准的描述文件解析为所述协议可读的第二文件;根据所述第二文件,得到与所述目标运行框架对应的处理后的目标算子。
可以理解的是,由于不同运行框架均有所支持的协议,为了保证目标运行框架能够正常运行目标算子,需要先根据目标运行框架所支持的协议,将目标算子的描述文件解析为其协议可读的文件,然后根据该文件得到目标运行框架对应的处理后的目标算子。参照图5,所提供的运行框架可以包括有local、k8s、hadoop、SAAS……(不作穷举),在此,目标运行框架可以为hadoop和SAAS,便可根据hadoop所支持的协议该特征提取算子的描述文件解析为其可读的文件,得到hadoop对应的处理后的特征提取算子,以及根据SAAS所支持的协议该特征提取算子的描述文件解析为其可读的文件,得到SAAS对应的处理后的特征提取算子。可以理解的是,图5中的任务追踪用于在算子执行任务过程中,对任务运行状态进行追踪,该任务追踪框架可以包括但不限于:xxx Platform、tfBorad、ES、Grafana、log、tracing。
步骤S4300,将与所述目标运行框架对应的处理后的目标算子发送至对应的运行框架,以在对应的运行框架中运行所述目标算子。
继续上述示例,得到hadoop对应的处理后的特征提取算子,便可将处理后的特征提取算子发送至hadoop,以便在hadoop运行处理后的特征提取算子。以及得到SAAS对应的处理后的特征提取算子,便可将处理后的特征提取算子发送至SAAS,以便在SAAS运行处理后的特征提取算子。
根据本公开实施例,其所获取的目标算子是从标准算子库中获取的,该目标算子包括算子的描述文件,描述文件用于描述算子运行能力,且运行能力至少包括框架信息与开发语言,框架信息用于指示算子所支持的运行框架。即,其所获取的目标算子可以根据需求进行框架信息的配置,提升了算子的适配性,并且,在描述文件中定义有不同运行框架的情况下,可以使得目标算子具备跨运行框架的能力,即该目标算子可以与不同的运行框架适配,进而运行在不同的运行框架中,实现跨运行框架。
在一个实施例中,在目标算子包括多个的情况下,在执行以上步骤S3200根据目标运行框架所支持的协议,将所述目标算子的描述文件进行转换,获得与所述目标运行框架对应的处理后的目标算子之前,本公开实施例的算子处理方法还可以进一步包括如下步骤S5100~步骤S5200:
步骤S5100,通过与编排框架对应的适配器,将所述目标算子的描述文件解析为所述编排框架可读的第一文件。
编排框架可以包括但不限于以下至少一项:workflow、argo workflow、airflow、kubeflow。
本实施例中,涉及多个目标算子进行编排调度的场景中,会涉及到适配器executor,适配器与编排框架一一对应,适配器用于实现编排框架与本系统的交互,编排框架对应的适配器具体用于:按照编排框架的要求,对每一个目标算子的描述文件进行转换,使其成为编排框架可读的文件。示例性地,参照图5,所提供的编排框架包括有kubeflow、airflow、argo workflow、xxx workflow,在此,算子开发者可以选择编排框架workflow,目标算子包括特征提取算子和模型训练算子,在此,可以根据workflow对应的适配器分别将特征提取算子的描述文件进行转换,以及将模型训练算子的描述文件进行转换。
步骤S5200,所述编排框架基于所述目标算子对应的所述第一文件,对所述目标算子进行编排,获得编排后的目标算子。
继续上述示例,编排框架workflow基于特征提取算子对应的第一文件、以及基于模型训练算子对应的第一文件,对特征提取算子和模型训练算子进行编排,并将编排后的特征提取算子和模型训练算子通过OpHub系统进行协议转化并发送至运行框架运行。
可以理解的是,在对多个目标算子进行编排之后,便可由本系统根据目标运行框架所支持的协议,将目标算子的描述文件进行转换,获得与目标运行框架对应的处理后的目标算子,并将处理后的目标算子发送至对应的运行框架,以在对应的运行框架中运行目标算子。
根据本公开实施例,算子运行时与编排调度解耦,针对不同的编排框架,开发不同的适配器,通过适配器将目标算子提交给系统。
<算子运行系统>
本公开实施例还提供一种算子运行系统,参照图6,该系统600包括代理器610、状态跟踪器620和任务配置器630。该系统600可以是OpHub系统。
本实施例中,代理器(transmitter)610,用于代理与其他系统的交互,所述其他系统包括:算子仓库、算子运行框架。
该算子仓库即为以上实施例所述的标准算子库,该算子仓库为图7所示的nexusrepository。
该算子运行框架可以包括但不限于以下至少一项:spark、flink、horovod、dask、mars、mindspore。图7所示的为运行框架kubernetes。
在任意的一个实施例中,该其他系统除包括算子仓库和算子运行框架之外,还可以进一步包括服务框架、管理框架。该服务框架为算子运行所需要依赖的数据框架,该服务框架可以包括但不限于图7所示的elasticsearch、MySQL。该管理框架用于管理任务,该管理框架可以是图7所示的分布式版本控制系统git。
本实施例中,状态跟踪器(watcher)620,用于跟踪任务状态并记录。参照图7,状态跟踪器620可以监控kubernetes中的任务,并记录至elasticsearch、MySQL,根据具体情况状态追踪器620中包含日志监控采集组件,或者对接第三方。
任务配置器630(addmission webhook),用于监听任务并作任务配置。参照图7,任务配置器630可以监听提交至kubernetes中的任务,做集群级别、namespace级别的统一配置。
可以理解的,以上代理器610、状态跟踪器620和任务配置器630提供暴露数据的能力,具体数据的存储可依据现场依赖灵活选择。
结合图8所示,示出一个例子的算子运行数据流程示意图,图8中,先提交算子执行任务,并提交任务至算子运行框架platform,并在算子运行框架中执行任务,在算子执行任务的过程中,可以通过状态追踪器620中的meta/status、log、trace在算子运行时进行信息收集,并查看算子运行时信息。
<装置实施例一>
本公开实施例还提供一种算子开发装置900,如图9所示,该算子开发装置900包括第一确定模块910、第二确定模块920、填充模块930、打包模块940。
第一确定模块910,用于基于用户在开发界面上的第一操作信息,确定目标算子包的描述文件,所述描述文件用于描述算子基础能力与运行能力,所述运行能力至少包括框架信息与开发语言,所述框架信息用于指示算子所支持的运行框架。
第二确定模块920,用于确定与所述描述文件相匹配的算子标准模板;其中,所述算子标准模板至少包括:算子的描述文件与算子源代码。
填充模块930,用于基于所述用户在所述开发界面上的第二操作信息,填充所述算子标准模板,得到所述目标算子。
打包模块940,用于将所述目标算子打包并存入标准算子库。
在一个实施例中,所述第二确定模块920,具体用于:
在预设的算子标准模板中,选择与所述框架信息与所述开发语言相匹配的算子标准模板;
或者,基于所述框架信息与所述开发语言,生成与之匹配的算子标准模板。
在一个实施例中,所述算子标准模板还包括以下至少一项:算子的说明文档、算子的测试文件。
在一个实施例中,所述算子基础能力包括:输入、输出、运行参数。
在一个实施例中,所述算子运行能力还包括以下至少一项:运行类型、规模、负载模式、底层平台、管理模式、依赖、输出数据数据集、状态、架构。
在一个实施例中,所述框架信息所支持的运行框架包括以下至少一项:spark、flink、horovod、dask、mars、mindspore。
在一个实施例中,所述打包模块940,具体用于:验证所述目标算子是否满足算子准入机制;当所述目标算子满足所述算子准入机制时,将所述目标算子打包并存入标准算子库。
根据本公开实施例,其是通过目标算子包的描述文件和算子标准模板进行目标算子的开发,其中,目标算子的描述文件用于描述算子基础能力与运行能力,运行能力至少包括框架信息与开发语言,框架信息用于指示算子所支持的运行框架,其中,算子标准模板包括算子的描述文件和算子源代码。具体进行目标算子开发时,需要确定出目标算子包的描述文件,然后确定与该描述文件匹配的算子标准模板,并填充该算子标准模板以得到目标算子。即,其是通过配置算子标准模板的方式进行目标算子的开发,能够降低开发算子时的重复工作,提升了算子的适配性,大幅降低机器学习落地难度,降低了开发成本和时间成本。
<装置实施例二>
本公开实施例还提供一种算子处理装置1000,如图10所示,该算子处理装置1000包括获取模块1010、转换模块1020、发送模块1030。
获取模块1010,用于从标准算子库获取目标算子;其中,所述目标算子至少包括算子的描述文件与算子源代码;所述描述文件用于描述算子基础能力与运行能力,所述运行能力至少包括框架信息与开发语言,所述框架信息用于指示算子所支持的运行框架。
转换模块1020,用于根据目标运行框架所支持的协议,将所述目标算子的描述文件进行转换,获得与所述目标运行框架对应的处理后的目标算子。
发送模块1030,用于将与所述目标运行框架对应的处理后的目标算子发送至所述目标运行框架,以在所述目标运行框架中运行所述目标算子。
在一个实施例中,所述装置还包括编排模块(图中未示出),具体用于:通过与编排框架对应的适配器,将所述目标算子的描述文件解析为所述编排框架可读的第一文件;所述编排框架基于根据所述目标算子对应的所述第一文件,对所述目标算子进行编排,得到编排后的目标算子。
在一个实施例中,所述转换模块1020,具体用于:根据所述目标运行框架所支持的协议,将所述目标标准的描述文件解析为所述协议可读的第二文件;根据所述第二文件,得到与所述目标运行框架对应的处理后的目标算子。
在一个实施例中,所述算子标准模板还包括以下至少一项:算子的说明文档、算子的测试文件。
在一个实施例中,所述算子基础能力包括:输入、输出、运行参数。
在一个实施例中,所述算子运行能力还包括以下至少一项:运行类型、规模、负载模式、底层平台、管理模式、依赖。
在一个实施例中,所述框架信息所支持的运行框架包括以下至少一项:spark、flink、horovod、dask、mars、mindspore。
根据本公开实施例,其所获取的目标算子是从标准算子库中获取的,该目标算子包括算子的描述文件,描述文件用于描述算子运行能力,且运行能力至少包括框架信息与开发语言,框架信息用于指示算子所支持的运行框架。即,其所获取的目标算子可以根据需求进行框架信息的配置,提升了算子的适配性,并且,在描述文件中定义有不同运行框架的情况下,可以使得目标算子具备跨运行框架的能力,即该目标算子可以与不同的运行框架适配,进而运行在不同的运行框架中,实现跨运行框架。
<设备实施例>
本公开实施例提供了一种电子设备1100,该电子设备1100可以是服务器,也可以是终端设备。其中,服务器可以是整体式服务器或是跨多计算机或计算机数据中心的分散式服务器。终端设备可以是手机、平板电脑、笔记本电脑等。
如图11所示,电子设备1100包括处理器1110和存储器1120,该存储器1120用于存储可执行的指令;该处理器1110用于根据指令的控制运行电子设备1100执行根据本发明任意实施例的算子开发方法或者算子处理方法。
该电子设备可以是具有处理器和存储器的电子产品。例如可以是智能手机、便携式电脑、台式计算机、平板电脑等。
<介质实施例>
本公开实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在被处理器执行时,实现前述任一实施例提供的算子开发方法或者算子处理方法。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。

Claims (10)

1.一种算子开发方法,其特征在于,所述方法包括:
基于用户在开发界面上的第一操作信息,确定目标算子包的描述文件,所述描述文件用于描述算子基础能力与运行能力,所述运行能力至少包括框架信息与开发语言,所述框架信息用于指示算子所支持的运行框架;
确定与所述描述文件相匹配的算子标准模板;其中,所述算子标准模板至少包括:算子的描述文件与算子源代码;
基于所述用户在所述开发界面上的第二操作信息,填充所述算子标准模板,得到所述目标算子;
将所述目标算子打包并存入标准算子库。
2.根据权利要求1所述的方法,其特征在于,所述确定与所述描述文件相匹配的算子标准模板,包括:
在预设的算子标准模板中,选择与所述框架信息与所述开发语言相匹配的算子标准模板;
或者,基于所述框架信息与所述开发语言,生成与之匹配的算子标准模板。
3.根据权利要求1-2任一项所述的方法,其特征在于,所述将所述目标算子打包并存入标准算子库,包括:
验证所述目标算子是否满足算子准入机制;
当所述目标算子满足所述算子准入机制时,将所述目标算子打包并存入标准算子库。
4.一种算子处理方法,其特征在于,所述方法包括:
从标准算子库获取目标算子;其中,所述目标算子至少包括算子的描述文件与算子源代码;所述描述文件用于描述算子基础能力与运行能力,所述运行能力至少包括框架信息与开发语言,所述框架信息用于指示算子所支持的运行框架;
根据目标运行框架所支持的协议,将所述目标算子的描述文件进行转换,获得与所述目标运行框架对应的处理后的目标算子;
将与所述目标运行框架对应的处理后的目标算子发送至所述目标运行框架,以在所述目标运行框架中运行所述目标算子。
5.根据权利要求4所述的方法,其特征在于,在所述根据目标运行框架所支持的协议,将所述目标算子的描述文件进行转换,获得与所述目标运行框架对应的处理后的目标算子之前,还包括:
通过与编排框架对应的适配器,将所述目标算子的描述文件解析为所述编排框架可读的第一文件;
通过所述编排框架,基于所述目标算子对应的所述第一文件,对所述目标算子进行编排,得到编排后的目标算子。
6.一种算子开发装置,其特征在于,所述装置包括:
第一确定模块,用于基于用户在开发界面上的第一操作信息,确定目标算子包的描述文件,所述描述文件用于描述算子基础能力与运行能力,所述运行能力至少包括框架信息与开发语言,所述框架信息用于指示算子所支持的运行框架;
第二确定模块,用于确定与所述描述文件相匹配的算子标准模板;其中,所述算子标准模板至少包括:算子的描述文件与算子源代码;
填充模块,用于基于所述用户在所述开发界面上的第二操作信息,填充所述算子标准模板,得到所述目标算子;
打包模块,用于将所述目标算子打包并存入标准算子库。
7.一种算子处理装置,其特征在于,所述装置包括:
获取模块,用于从标准算子库获取目标算子;其中,所述目标算子至少包括算子的描述文件与算子源代码;所述描述文件用于描述算子基础能力与运行能力,所述运行能力至少包括框架信息与开发语言,所述框架信息用于指示算子所支持的运行框架;
转换模块,用于根据目标运行框架所支持的协议,将所述目标算子的描述文件进行转换,获得与所述目标运行框架对应的处理后的目标算子;
发送模块,用于将与所述目标运行框架对应的处理后的目标算子发送至所述目标运行框架,以在所述目标运行框架中运行所述目标算子。
8.一种包括至少一个计算装置和至少一个存储装置的电子设备,其特征在于,所述至少一个存储装置用于存储指令,所述指令用于控制所述至少一个计算装置执行根据权利要求1至3中任一项所述的方法;或者,所述设备通过所述计算装置和所述存储装置实现根据权利要求4至5所述的装置。
9.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序在被处理器执行时实现如权利要求1至5中任一项所述的方法。
10.一种算子运行系统,其特征在于,所述系统包括:
代理器,用于代理与其他系统的交互,所述其他系统包括:算子仓库、算子运行框架;
状态跟踪器,用于跟踪任务状态并记录;
任务配置器,用于监听任务并作任务配置。
CN202210762431.6A 2022-06-29 2022-06-29 算子开发、处理方法、装置、电子设备、系统及存储介质 Pending CN117348848A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210762431.6A CN117348848A (zh) 2022-06-29 2022-06-29 算子开发、处理方法、装置、电子设备、系统及存储介质
PCT/CN2023/094913 WO2024001594A1 (zh) 2022-06-29 2023-05-18 算子开发、处理方法、装置、电子设备、系统及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210762431.6A CN117348848A (zh) 2022-06-29 2022-06-29 算子开发、处理方法、装置、电子设备、系统及存储介质

Publications (1)

Publication Number Publication Date
CN117348848A true CN117348848A (zh) 2024-01-05

Family

ID=89367910

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210762431.6A Pending CN117348848A (zh) 2022-06-29 2022-06-29 算子开发、处理方法、装置、电子设备、系统及存储介质

Country Status (2)

Country Link
CN (1) CN117348848A (zh)
WO (1) WO2024001594A1 (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110928529B (zh) * 2019-11-06 2021-10-26 第四范式(北京)技术有限公司 辅助算子开发的方法和系统
US20210182036A1 (en) * 2019-12-12 2021-06-17 Huawei Technologies Co., Ltd. Hardware platform specific operator fusion in machine learning
CN111459474B (zh) * 2020-03-13 2023-01-24 北京百分点科技集团股份有限公司 一种模板化的数据处理方法及装置
CN114218929B (zh) * 2022-02-22 2022-05-17 之江实验室 一种基于元算子融合的多平台算子智能化开发系统及方法
CN114579331A (zh) * 2022-03-01 2022-06-03 奇安信科技集团股份有限公司 一种数据处理方法、装置、电子设备和存储介质

Also Published As

Publication number Publication date
WO2024001594A1 (zh) 2024-01-04

Similar Documents

Publication Publication Date Title
CN109302522B (zh) 测试方法、装置以及计算机系统和介质
CN110928529B (zh) 辅助算子开发的方法和系统
CN103365770B (zh) 移动终端软件测试系统及软件测试方法
CN111651366B (zh) Sdk测试方法、装置、设备及存储介质
CN101930400B (zh) Sdk自动化测试系统及方法
EP2615555A1 (en) Framework for automated testing of mobile apps
CN111767208B (zh) 一种自动测试方法及装置
CN109408375B (zh) 接口文档的生成方法和装置
CN103164328A (zh) 一种业务功能的回归测试方法、装置及系统
CN106933729A (zh) 一种基于云平台的测试方法和系统
CN112783793B (zh) 自动化接口测试系统及方法
CN113505082B (zh) 应用程序测试方法及装置
CN115658529A (zh) 用户页面的自动化测试方法以及相关设备
CN111913889A (zh) 一种测试系统搭建方法及测试系统
CN112114789B (zh) 一种业务开发方法及设备
CN111092767B (zh) 用于调试设备的方法及装置
CN115344300A (zh) 分支流水线构建方法、装置、设备及存储介质
CN117215910A (zh) 接口测试框架生成方法、测试方法、电子设备及存储介质
CN114661594A (zh) 一种用于自动化测试的方法、设备、介质及程序产品
CN112527312B (zh) 一种嵌入式系统的测试方法和测试装置
CN111767209A (zh) 代码测试方法、装置、存储介质以及终端
CN112306857A (zh) 用于测试应用的方法和装置
CN117348848A (zh) 算子开发、处理方法、装置、电子设备、系统及存储介质
CN113986263A (zh) 代码自动化测试方法、装置、电子设备、存储介质
CN113434417B (zh) 漏洞的回归测试方法及装置、存储介质、电子装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination