WO2021088909A1 - 辅助算子开发的方法和系统 - Google Patents

辅助算子开发的方法和系统 Download PDF

Info

Publication number
WO2021088909A1
WO2021088909A1 PCT/CN2020/126666 CN2020126666W WO2021088909A1 WO 2021088909 A1 WO2021088909 A1 WO 2021088909A1 CN 2020126666 W CN2020126666 W CN 2020126666W WO 2021088909 A1 WO2021088909 A1 WO 2021088909A1
Authority
WO
WIPO (PCT)
Prior art keywords
package
dependent
operator
data
target operator
Prior art date
Application number
PCT/CN2020/126666
Other languages
English (en)
French (fr)
Inventor
王昱森
罗伟锋
张宇
黄缨宁
谷宇晨
王勃
郭朕
Original Assignee
第四范式(北京)技术有限公司
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 第四范式(北京)技术有限公司 filed Critical 第四范式(北京)技术有限公司
Publication of WO2021088909A1 publication Critical patent/WO2021088909A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design

Definitions

  • the present disclosure relates to the technical field of operator development, and more specifically, to a method for assisting operator development, a system for assisting operator development, a system including at least one computing device and at least one storage device, and a Readable storage medium.
  • a method for assisting operator development including:
  • a system for assisting operator development including:
  • the dependent package providing module is configured to provide at least one preset dependent package
  • the development file acquisition module is configured to acquire the target operator development file that contains the business logic description information of the target operator input by the user, wherein the business logic description information of the target operator includes dependency package invocation information;
  • the operator encapsulation module is configured to encapsulate the target operator development file and the dependent package involved in the dependent package invocation information together to obtain the target operator.
  • a system including at least one computing device and at least one storage device,
  • the at least one storage device is configured to store instructions, and the instructions are configured to control the at least one computing device to execute the method according to the first aspect of the present disclosure.
  • a computer-readable storage medium having a computer program stored thereon, and the computer program, when executed by a processor, implements the method as described in the first aspect of the present disclosure.
  • the target operator development file containing the business logic description information of the target operator input by the user and the dependent package involved in the dependent package call information in the business logic description information are packaged together to obtain the target operator,
  • the operator development process can be simplified, the development efficiency of the operator can be improved, and the threshold and cost of operator development can be greatly reduced.
  • FIG. 1 is a block diagram showing an example of a hardware configuration of an electronic device that can be used to implement an embodiment of the present disclosure
  • Figure 2 shows a schematic diagram of a system for assisting operator development in the first embodiment of the present disclosure
  • Fig. 3 shows a schematic diagram of a system for assisting operator development in a second embodiment of the present disclosure
  • FIG. 4 shows a flowchart of the method for auxiliary operator development of the first embodiment of the present disclosure
  • FIG. 5 shows a flow chart of the method for auxiliary operator development of the second embodiment of the present disclosure
  • FIG. 6 shows a flowchart of a method for auxiliary operator development in a third embodiment of the present disclosure
  • FIG. 7 shows a flowchart of a method for assisting operator development in a fourth embodiment of the present disclosure
  • FIG. 8 shows a block diagram of a system of an embodiment of the present disclosure.
  • a and/or B defined in any embodiment of the present disclosure means at least one of A and B.
  • “including A and/or B” means three cases: 1) only including A; 2) including only B; 3) including both A and B.
  • FIG. 1 is a block diagram showing a hardware configuration of an electronic device 1000 that can implement an embodiment of the present disclosure.
  • the electronic device 1000 may be a portable computer, a desktop computer, a mobile phone, a tablet computer, and the like. As shown in FIG. 1, the electronic device 1000 may include a processor 1100, a memory 1200, an interface device 1300, a communication device 1400, a display device 1500, an input device 1600, a speaker 1700, a microphone 1800, and so on.
  • the processor 1100 may be a central processing unit (CPU), a microprocessor MCU, or the like.
  • the memory 1200 includes, for example, ROM (Read Only Memory), RAM (Random Access Memory), nonvolatile memory such as a hard disk, and the like.
  • the interface device 1300 includes, for example, a USB interface, a headphone interface, and the like.
  • the communication device 1400 can, for example, perform wired or wireless communication, and specifically may include Wifi communication, Bluetooth communication, 2G/3G/4G/5G communication, and the like.
  • the display device 1500 is, for example, a liquid crystal display, a touch display, or the like.
  • the input device 1600 may include, for example, a touch screen, a keyboard, a somatosensory input, and the like. The user can input/output voice information through the speaker 1700 and the microphone 1800.
  • the electronic device shown in FIG. 1 is merely illustrative and in no way implies any limitation on the present disclosure, its application or use.
  • the memory 1200 of the electronic device 1000 is configured to store instructions, and the instructions are configured to control the processor 1100 to operate to perform any auxiliary calculation provided by the embodiments of the present disclosure. Methods of sub-development.
  • the present disclosure may only involve some of the devices.
  • the electronic device 1000 only involves the processor 1100 and the storage device 1200. Technicians can design instructions according to the solutions disclosed in this disclosure. How the instruction controls the processor to operate is well known in the art, so it will not be described in detail here.
  • the electronic device 1000 may include a system 2000 for assisting operator development according to any embodiment of the present disclosure, wherein the system 2000 for assisting operator development is configured to perform the auxiliary operator development according to any embodiment of the present disclosure.
  • the method of operator development may include a system 2000 for assisting operator development according to any embodiment of the present disclosure, wherein the system 2000 for assisting operator development is configured to perform the auxiliary operator development according to any embodiment of the present disclosure. The method of operator development.
  • the present disclosure provides a system 2000 for assisting operator development.
  • the system 2000 for assisting operator development includes a dependency package providing module 2100, a development file acquisition module 2200, and an operator packaging module 2300.
  • the dependency package providing module 2100 is configured to provide at least one preset dependency package; the development file obtaining module 2200 is configured to obtain a target operator development file that contains business logic description information of the target operator input by the user, where the target The business logic description information of the operator includes dependent package invocation information; the operator encapsulation module 2300 is configured to encapsulate the target operator development file and the dependent package involved in the dependent package invocation information to obtain the target operator.
  • the auxiliary operator development system 2000 may also include a data acquisition module 3100 and an operator debugging module 3200 as shown in FIG. 3.
  • the data acquisition module 3100 is configured as a module for acquiring analog data for debugging; the operator debugging
  • the module 3200 is configured to debug the target operator development file according to the simulation data;
  • the operator encapsulation module 2300 is configured to encapsulate the target operator development file and the dependent package involved in the dependent package call information when the operator debugging module 3200 passes the debugging, to obtain the target operator.
  • auxiliary operator development system 2000 of this embodiment for operator development users, it is possible to seamlessly switch from the traditional development mode to the operator development platform of this embodiment for development without adding any additional costs. Moreover, the efficiency of operator development can be improved, and the threshold and cost of operator development can be greatly reduced.
  • a method for assisting operator development is provided.
  • the method for developing the auxiliary operator may be implemented by the system 2000 developed by the auxiliary operator, or may be implemented by the electronic device 1000 as shown in FIG. 1.
  • the method for developing an auxiliary operator of this embodiment may include the following steps S4100 to S4300:
  • step S4100 at least one preset dependency package is provided.
  • the dependent package may be a program code block that can be called and can implement corresponding functions.
  • the dependent package may include a function dependent package and a system dependent package.
  • Functional class dependency packages can be defined by the developers themselves and can be imported from outside.
  • the system dependency package is provided by the system. Its purpose is to provide a rich "toolbox" to host some important but not related to the core business logic, so as to help developers improve efficiency and reduce costs.
  • the method may further include: providing a dependent package interface; obtaining user-defined and edited dependent packages through the dependent package interface, and/or receiving third-party dependencies uploaded by the user through the dependent package interface package.
  • users can upload their commonly used dependency packages to the system 2000 for assisting operator development through the dependency package interface according to application scenarios or their own specific needs, so as to implement the invocation of these dependency packages during the operator development process.
  • the provided at least one dependency package may include any one or more of the following:
  • the dependency package for real-time monitoring of the operating status of an operator can be specifically used to: When running, real-time monitoring of the operating status of the operator.
  • At least one dependency package provided includes a dependency package for exposing the operation information of the operator to the outside, when the operator operation of the dependency package is called, the operation information of the operator is obtained, and the operation information is Expose to the outside for interaction.
  • the dependency package for log collection can be specifically used to: when the operator calling the dependency package runs, the collection operator Log data during operation.
  • the dependency package for executing a data expiration strategy can be specifically used to automatically clean up the dependent package according to a certain strategy. Outdated data generated by the operator.
  • the provided at least one dependency package includes a dependency package for encapsulating code details
  • the dependency package for encapsulating code details can be specifically used to: code the operator that calls the dependency package The details are encapsulated.
  • the dependent package used for auxiliary resource recommendation can be specifically used to: when the operator calling the dependent package runs, according to The resource consumption when the operator processes a certain amount of data, infers the resource consumption when the operator processes the full amount of data, and schedules the corresponding amount of resources according to the inference result.
  • the dependency package for algorithm parameter recommendation can be specifically used to: when referenced by an operator executing a machine learning algorithm, Determine the parameters for the corresponding machine learning algorithm according to the corresponding list of the algorithm and the parameters and/or the algorithm parameter search method.
  • Step S4200 Obtain the target operator development file that contains the business logic description information of the target operator input by the user, where the business logic description information of the target operator includes the dependent package invocation information.
  • the target operator development file contains the business logic description information of the target operator, and the business logic description information includes the invocation information of the dependent package.
  • the corresponding dependent package will be called according to the dependent package calling information to realize the corresponding function.
  • the form of the target operator development file may include any of the following: jar package; docker image; script file.
  • the script file may specifically be a python script, a shell script, an SQL script, etc.
  • the jar package encapsulates the specific algorithm.
  • the first interface for obtaining the jar package may be provided in advance, so that the user can input the target operator development file in the form of the jar package through the first interface.
  • the target operator development file is in the form of a docker image
  • a specific algorithm is encapsulated in the docker image.
  • the second interface for obtaining the docker image may be provided in advance, so that the user can input the target operator development file in the form of the docker image through the second interface.
  • a script editing interface may be provided in advance for the user to input business logic description information to obtain the script file.
  • step S4300 the target operator development file and the dependent package involved in the dependent package call information are packaged together to obtain the target operator.
  • the dependent package involved in the dependent package call information can be the dependent package called for the target operator development file.
  • each dependent package has a corresponding version number, and dependent packages of the same function have at least one version.
  • the version number of the dependent package can adopt a standardized version naming mechanism, in the form of MAJOR.MINOR.PATCH (such as 1.0.0, 1.0.2-alpha.1, 1.0.3-beta, 1.0 .4-rc.1 etc.).
  • MAJOR.MINOR.PATCH such as 1.0.0, 1.0.2-alpha.1, 1.0.3-beta, 1.0 .4-rc.1 etc.
  • the target operator development file containing the business logic description information of the target operator input by the user and the dependent package involved in the dependent package call information in the business logic description information are encapsulated together .
  • Obtaining the target operator can simplify the operator development process, improve the development efficiency of the operator, and can also greatly reduce the threshold and cost of operator development.
  • the method may further include steps S5110 to S5130 as shown in FIG. 5:
  • Step S5110 Obtain a configuration file about the target operator configured by the user.
  • the configuration file declares the dependent package involved in the dependent package invocation information in the business logic information.
  • the dependent package and its version involved in the dependent package call information are declared in the configuration file.
  • step S5120 it is detected whether the version of the dependent package declared in the configuration file is consistent with the version of the target operator development file, and if it is inconsistent, it is further judged whether it is compatible.
  • the version number of the dependent package is in the form of MAJOR.MINOR.PATCH
  • the version number of the dependent package declared in the configuration file is inconsistent with the version of the target operator development file, it can be used to detect the dependent package in the configuration file.
  • the MAJOR of the version number is the same as the MAJOR of the version number of the dependent package involved in the dependent package call information in the business logic information of the target operator development file. If they are the same, it is determined whether the version of the dependent package declared in the configuration file is the same as the target calculation.
  • the versions of the sub-development files are compatible; if they are not the same, it can be determined that the version of the dependent package declared in the configuration file is not compatible with the version of the target operator development file.
  • step S5130 in the case of inconsistency and incompatibility, a dependent package with the same version or a dependent package with inconsistent but compatible versions is found according to the version of the target operator development file, and packaged in the target operator as a replacement package.
  • the version of the dependent package declared in the configuration file in the case where the version of the dependent package declared in the configuration file is not compatible with the version of the target operator development file, it may be based on the dependent package call information in the business logic information of the target operator development file
  • the dependent package involved shall prevail, that is, the dependent package of the corresponding version involved in the dependent package call information is encapsulated into the target operator.
  • the dependent package version of spark 2.3 can be combined with the target calculator.
  • the sub-development files are packaged into the target operator together.
  • the method may further include: replacing the version of the dependent package declared in the configuration file according to the version of the target operator development file.
  • the version of the dependent package declared in the configuration file is spark 1.6, but the version of the dependent package involved in the target operator development file is spark 2.3, then the version of the dependent package declared in the configuration file can be replaced It is spark 2.3.
  • the version of the dependent package declared in the configuration file when the version of the dependent package declared in the configuration file is not compatible with the version of the target operator development file, the version of the dependent package declared in the configuration file may also prevail. That is, the dependency package of the corresponding version declared in the configuration file is encapsulated into the target operator.
  • the dependency package version of spark 1.6 can be combined with the target calculator.
  • the sub-development files are packaged into the target operator together.
  • the method may further include: replacing the version of the target operator development file according to the version of the dependent package declared in the configuration file.
  • the version of the dependency package declared in the configuration file is spark 1.6
  • the version of the dependency package involved in the target operator development file is spark 2.3
  • it can be the dependency involved in the target operator development file
  • the version of the package is replaced with spark1.6.
  • fault-tolerant processing is performed in advance on the dependent packages declared in the configuration file and the dependent packages involved in the target operator development file, which can prevent errors from being detected when the target operator is actually running, thereby improving user experience.
  • the method may further include steps S5210 to S5230 as shown below:
  • Step S5210 Obtain a configuration file about the target operator configured by the user, where the configuration file declares the dependent package involved in the dependent package invocation information in the business logic information.
  • Step S5220 Scan the target operator development file to determine whether there is dependent package invocation information in the target operator development file but there is no corresponding declared dependent package in the configuration file.
  • dependent package invocation information there is dependent package invocation information but there is no corresponding declared dependent package in the configuration file. It can be a dependent package that is involved in the dependent package invocation information but the corresponding version is not declared in the configuration file, or it can be a dependent package invocation. The dependent package of any version involved in the information but not declared in the configuration file.
  • Step S5230 if it exists, add a corresponding statement in the configuration file.
  • the dependency package call information in the target operator development file involves a dependency package whose version is spark 2.3, but the dependency package is not declared in the configuration file, it can be added to the configuration file that the version is spark 2.3 dependency The declaration of the package.
  • fault-tolerant processing is performed in advance on the dependent packages declared in the configuration file and the dependent packages involved in the target operator development file, which can prevent errors from being detected when the target operator is actually running, thereby improving user experience.
  • the method may further include:
  • bottom-level framework executors corresponding to different bottom-level frameworks to host the resource scheduling of the task distribution of the bottom-level framework when the operator is actually running;
  • calculation framework managers corresponding to different calculation frameworks to host the communication, scheduling and resource-related operations in the calculation framework when the operator is actually running.
  • the underlying framework includes at least one of the following: YARN, Kubernetes.
  • the computing framework includes at least one of the following: Spark, Tensorflow, MapReduce, Python, Shell, and Java.
  • a plurality of underlying frameworks and computing frameworks may be provided in advance, and in response to the user's operation of selecting the underlying framework, the underlying framework executor corresponding to the underlying framework selected by the user is provided; in response to the user's operation of selecting the computing framework, Provide the calculation frame executor corresponding to the calculation frame selected by the user.
  • the system 2000 developed by the auxiliary operator of the present disclosure completely automates the above-mentioned complicated process. Operator development users only need to master the knowledge of open source Hadoop and Spark necessary for operator development, and focus on editing business logic description information. Version issues, environmental configuration issues, startup, and submission tasks at the YARN framework level are all shielded through automated methods.
  • the specific method may be as follows:
  • the system 2000 for auxiliary operator development of the present disclosure can be compatible with all Hadoop and Spark versions commonly used in the market, and provide a compatible list to operator development users. Operator development users only need to develop under this compatible list, and the operator platform will automatically monitor the code entered by the operator development users, and match the corresponding version for submission and execution.
  • the traditional approach is to first prepare a container environment based on containerized operation. Then in addition to the algorithm business logic, additional configuration files are prepared to declare the port number of the listening container, dependent packages, http input and output methods, etc. After that, you need to prepare a container description file, specify the base image, set the working directory, and expose the listening port. Finally, the container is started to run on Kubernetes through command-line code interaction.
  • the system 2000 developed by the auxiliary operator of the present disclosure completely automates the above-mentioned complicated process.
  • the specific method is: the system 2000 that assists the operator development has a built-in standard operating environment, presets all commonly used dependency packages for artificial intelligence application development, and automatically helps operator development users to set the port number of the listening container by default.
  • the system 2000 that assists the operator development will scan the dependency package declared by the operator development user, and automatically generate a container description file. Operator development users do not need to perceive anything other than business logic, and can directly perform tasks through a line of commands.
  • the optimization method of the system 2000 for assisting operator development of the present disclosure includes: encapsulating the submission command of each frame into a parameter, and naming the parameters of each frame as an abbreviation that operator development users are accustomed to, and operator development users only You need to determine the framework used to execute the operator by yourself and specify the corresponding abbreviation; the system 2000 that assists in the development of the operator performs a large number of tests on each debuggable parameter of each framework, and fits the equation formula (including but not limited to linear regression, Non-linear regression method, etc.), an empirical formula is obtained, and then the empirical formula is built into the system 2000 of auxiliary operator development.
  • the background automatically receives instructions, triggers empirical formulas to calculate, returns the current optimal execution parameters in real time, and submits them for operation.
  • the auxiliary operator development system 2000 of the present disclosure by default helps operator development users to build underlying resource frameworks (YARN, Kubernetes) commonly used in the field of artificial intelligence, etc., so that operator development users do not need to be concerned with underlying task distribution and resource scheduling.
  • YARN YARN, Kubernetes
  • the system 2000 for assisting operator development of the present disclosure also abstracts, encapsulates and optimizes commonly used computing frameworks, so that operator development users who use these computing frameworks can complete operator development work at a lower cost.
  • Executive that is, managers and executors that operators submit for execution, status tracking, and metrics collection on a specific computing framework, and can implement a variety of Executives to connect to different scheduling clusters.
  • computing framework such as Spark 1.6.x Executive, Tensorflow Executive.
  • the Spark operator writes out the configuration to a Json file, then brings the Json file when submitting, and uses the file name of the Json file as the submission parameter to make the operator submitted to YARN the same as deserialization File content acquisition configuration.
  • the Tensorflow operator constructs the command and env parameters of the Job, passes the input parameters into the launch.py of the mirror entryPoint, and then launches the user's py through launch.py to pass these parameters into execution.
  • the auxiliary operator development system 2000 of the present disclosure abstracts and summarizes a general state tracking mechanism that adapts to all frameworks for different frameworks. That is, the defined status can include: INITIALIZED (initialization task), AWAITING (waiting for scheduling, divided into local assembly and submission phase and cluster waiting for scheduling phase), RUNNING (running), SUCCEEDED (success), FAILED (failure), TERMINATED (terminated) , RESUMING (recovery). Operator development users no longer need to care about the logic related to editing state tracking.
  • the system 2000 of auxiliary operator development automatically replaces the above-mentioned state logic with a parameter, which is automatically realized by issuing instructions to the system 2000 of auxiliary operator development at runtime.
  • the auxiliary operator development system 2000 of the present disclosure automatically establishes the connection between the server and the client.
  • the server actively pushes the indicator data to the client after obtaining the indicator data.
  • the client is responsible for the analysis, recording, and display methods to help operators develop users Avoid handwritten code implementation. And whether to choose to turn on indicator collection, as an optional parameter for execution, is open to operator development users to freely choose.
  • the method may further include steps S6100 to S6200 as shown in FIG. 6:
  • Step S6100 Acquire simulation data for debugging.
  • the simulation data can be used to debug whether the target operator development file is available. Specifically, the simulation data may be automatically generated or input by the user.
  • the manner of obtaining the simulation data may include: obtaining the format information of the simulation data input by the user; and obtaining the simulation data according to the format information.
  • the format information may include the data format, the type and quantity of specific data items.
  • the data format can be any of the following: data table, data group, model, model group, picture, picture collection, file.
  • the method of obtaining simulation data may include: obtaining the application scenario of the target operator input by the user; obtaining data conforming to the format information according to the application scenario as the simulation data.
  • the application scenario may include, for example, picture recognition, picture comparison, and scoring.
  • acquiring data that conforms to the format information according to the application scenario, as the simulation data may further include: selecting data that is suitable for the application scenario and conforms to the format information from the pre-stored data as the simulation data.
  • obtaining data that conforms to the format information according to the application scenario, as the simulation data may include: obtaining historical data that matches the application scenario; determining the data restriction condition based on the historical data; generating the data conforming to the format information according to the data restriction condition Simulation data.
  • the historical data includes the input data and corresponding output data of other operators that match the application scenario.
  • the data restriction conditions can be obtained; based on the data restriction conditions, the format information that meets the user input can be generated Simulation data.
  • the method of obtaining simulation data may further include: obtaining data configuration information input by the user for representing data content; and generating simulation data according to the data configuration information.
  • the operator development user may specify the format information of the simulation data in the configuration file.
  • the operator development user can declare the format information of the required simulation data through a form-based interaction, and then the simulation data can be obtained for the operator development user to use.
  • the configuration file input by the user can be received, and the data table definition configured in the configuration file can be converted into a simulation data generation task, and uploaded to Spark for data generation.
  • Functions that support the generation of simulation data can include:
  • the data of a certain field generated by the configuration comes from an enum list or a certain file
  • configuration data field as the key of other tables, and support the configuration table data field from other table data fields, which can control the matching degree, including one-to-one matching, one-to-many matching, and many-to-one matching;
  • Support control data generation location support data load hive.
  • the method of this embodiment can also simulate the data tilt problem that is often encountered in the artificial intelligence modeling process, so that the operator development user can better perform production use.
  • step S6200 the target operator development file is debugged according to the simulation data, and if the debugging is passed, the target operator development file and the dependent package involved in the dependent package call information are packaged together to obtain the target operator.
  • the target operator development file can be shown to the user for the operator development user to modify the target operator development file, so that the modified target operator development file can be debugged and passed based on the simulation data.
  • debugging refers to the ability to view resource control and operating status, and to determine whether the target operator is operating correctly and meets resource consumption expectations through resource viewing and operating status viewing.
  • YARN low-level resource frameworks
  • Kubernetes low-level resource frameworks
  • a visualization module such as Dashboard
  • the debugging results are displayed to the operator development user through the visualization module, so that the operator development user can clearly view the resource control and running status.
  • Online simulation is equivalent to the implementation of the electronic device of the embodiment of the present disclosure to simulate users to use the target operator. It is a joint debugging and quality test of the front and back ends to ensure that the target operator can be normal and real as long as it can pass the online simulation test. Running in the environment.
  • the websocket protocol can be used to establish a connection between the server and the client.
  • the server actively pushes the log data to the client after obtaining the log data, and the client (front-end page) is responsible for parsing and displaying the data.
  • the real environment of the system online (that is, the operating environment of the operator that has been put into use), it can automatically match a copy of the built-in data according to the input type specified for the target operator, and then use a large number of preset test cases to test the target
  • the operator is tested. Specifically, it can include various aspects of testing such as input, output, running time, resource consumption, UI interaction, and plan arrangement with other operators.
  • the method may further include steps S7100 to S7300 as shown in FIG. 7:
  • step S7100 a front-end page template of the target operator is provided.
  • Step S7200 Obtain the configuration information of the front-end page template of the target operator input by the operator development user.
  • the configuration information of the front-end page template of the target operator input by the user may include: the operator category to which the target operator belongs, the name of the target operator, the version number of the target operator, and the output field of the target operator , The target value field corresponding to the output field, etc.
  • step S7300 the front-end page of the target operator is generated according to the configuration information of the front-end page template and the front-end page template, so that the operator can use the front-end page to adjust and/or view related parameter values of the target operator.
  • the front-end page generated according to the front-end page template and the configuration information of the front-end page template shows the parameters that the operator developer wants to see and/or adjust by the operator user, so that the operator user can adjust the front-end page And/or view the relevant parameter values of the target operator.
  • the version number of the target operator can adopt a standardized version naming mechanism, which can be in the form of MAJOR.MINOR.PATCH (such as 1.0.0, 1.0.2-alpha.1, 1.0. 3-beta, 1.0.4-rc.1, etc.).
  • MAJOR.MINOR.PATCH such as 1.0.0, 1.0.2-alpha.1, 1.0. 3-beta, 1.0.4-rc.1, etc.
  • the introduction of operator versioning can solve the problem of operator development iteration and coexistence of multiple versions.
  • the version number of the target operator may be provided by the operator template, and the version field and the protocolVersion field are newly added to the operator template.
  • the version field is used for plan layout.
  • the ProtocolVersion field identifies the version of the scheme to which the target operator belongs, and is an array type, because one version of the operator can appear in multiple versions of the scheme, and each version in the array can only use the complete version number.
  • a system 2000 for assisting operator development may include a dependency package providing module 2100, a development file acquisition module 2200, and an operator packaging module 2300.
  • the dependency package providing module 2100 is configured to provide at least one preset dependency package;
  • the development file obtaining module 2200 is configured to obtain a target operator development file that contains business logic description information of the target operator input by the user, where the target The business logic description information of the operator includes dependent package invocation information;
  • the operator encapsulation module 2300 is configured to encapsulate the target operator development file and the dependent package involved in the dependent package invocation information to obtain the target operator.
  • the at least one preset dependency package may include one or more of the following:
  • the at least one preset dependency package may include a dependency package used for auxiliary resource recommendation; the dependency package used for auxiliary resource recommendation is used to determine a certain value according to the operator when the operator is running.
  • the resource consumption when the amount of data is processed is estimated by the operator when processing the full amount of data, and the corresponding amount of resources is scheduled according to the inference result.
  • the at least one preset dependency package may include a dependency package for algorithm parameter recommendation; a dependency package for algorithm parameter recommendation, which is used for operator reference in the executed machine learning algorithm At the time, the parameters are determined for the corresponding machine learning algorithm according to the corresponding list of algorithms and parameters and/or algorithm parameter search methods.
  • the target operator development file format may be any of the following: jar package; docker image; script file.
  • the script file may specifically be a python script, a shell script, an SQL script, etc.
  • system 2000 may further include:
  • Is configured to provide modules that rely on package interfaces
  • It is configured to obtain the user-defined edited dependent package through the dependent package interface, and/or, through the dependent package interface, receive the module of the third-party dependent package uploaded by the user through the dependent package interface.
  • system 2000 may further include:
  • a module configured to obtain a configuration file about the target operator configured by the user, where the configuration file declares the dependent package involved in the dependent package call information in the business logic information;
  • It is configured to detect whether the version of the dependent package declared in the configuration file is consistent with the version of the target operator development file, and if it is inconsistent, further determine whether it is a compatible module;
  • system 2000 may further include:
  • a module configured to obtain a configuration file about the target operator configured by the user, where the configuration file declares the dependent package involved in the dependent package call information in the business logic information;
  • It is configured to scan the target operator development file to determine whether there is dependent package invocation information in the target operator development file but there is no corresponding declared dependent package in the configuration file; if it exists, add the corresponding declared module in the configuration file .
  • system 2000 may further include:
  • It is configured to provide the underlying framework executors corresponding to different underlying frameworks to host the resource scheduling module of the task distribution of the underlying framework when the operator is actually running;
  • It is configured to provide computing framework managers corresponding to different computing frameworks to host the communication, scheduling, and resource-related operation modules in the computing framework when the operator is actually running.
  • each dependent package has a corresponding version number, and the dependent package of the same function has at least one version.
  • the system 2000 may further include a data acquisition module 3100 and an operator debugging module 3200 as shown in FIG. 3.
  • the data acquisition module 3100 is configured as a module for acquiring simulation data for debugging;
  • the operator debugging module 3200 is configured to debug the target operator development file according to the simulation data;
  • the operator encapsulation module 2300 is configured to encapsulate the target operator development file and the dependent package involved in the dependent package call information when the operator debugging module 3200 passes the debugging, to obtain the target operator.
  • the data acquisition module 3100 may also be configured to:
  • obtaining simulation data according to format information includes:
  • acquiring data conforming to format information according to an application scenario, as simulation data includes:
  • acquiring data conforming to format information according to an application scenario, as simulation data includes:
  • obtaining simulation data according to format information includes:
  • system 2000 may further include:
  • a module configured to provide a front-end page template of the target operator
  • a module configured to obtain the configuration information of the front-end page template of the target operator input by the operator development user
  • a module configured to generate the front-end page of the target operator according to the front-end page template and the configuration information of the front-end page template, so that the operator can use the front-end page to adjust and/or view the relevant parameter values of the target operator.
  • a system 8000 of at least one computing device 8100 and at least one storage device 8200 is also provided.
  • the at least one storage device 8200 is configured to store executable instructions; the instructions are configured to control at least one computing device 8100 to execute the method for assisting operator development according to any embodiment of the present disclosure.
  • the system 8000 may be a mobile phone, a tablet computer, a palmtop computer, a desktop computer, a notebook computer, a workstation, a game console, etc., or a distributed system composed of multiple devices.
  • a computer-readable storage medium on which a computer program is stored, and the computer program, when executed by a processor, implements the method for auxiliary operator development as in any embodiment of the present disclosure.
  • the present disclosure may be a device, a method, and/or a computer program product.
  • the computer program product may include a computer-readable storage medium loaded with computer-readable program instructions for enabling a processor to implement various aspects of the present disclosure.
  • the computer-readable storage medium may be a tangible device that can hold and store instructions used by the instruction execution device.
  • the computer-readable storage medium may be, for example, but not limited to, an electrical storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing.
  • Non-exhaustive list of computer-readable storage media include: portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM) Or flash memory), static random access memory (SRAM), portable compact disk read-only memory (CD-ROM), digital versatile disk (DVD), memory stick, floppy disk, mechanical encoding device, such as a printer with instructions stored thereon
  • RAM random access memory
  • ROM read-only memory
  • EPROM erasable programmable read-only memory
  • flash memory flash memory
  • SRAM static random access memory
  • CD-ROM compact disk read-only memory
  • DVD digital versatile disk
  • memory stick floppy disk
  • mechanical encoding device such as a printer with instructions stored thereon
  • the computer-readable storage medium used here is not interpreted as the instantaneous signal itself, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmission media (for example, light pulses through fiber optic cables), or through wires Transmission of electrical signals.
  • the computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to various computing/processing devices, or downloaded to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network, and/or a wireless network.
  • the network may include copper transmission cables, optical fiber transmission, wireless transmission, routers, firewalls, switches, gateway computers, and/or edge servers.
  • the network adapter card or network interface in each computing/processing device receives computer-readable program instructions from the network, and forwards the computer-readable program instructions for storage in the computer-readable storage medium in each computing/processing device .
  • the computer program instructions used to perform the operations of the present disclosure may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-related instructions, microcode, firmware instructions, state setting data, or in one or more programming languages.
  • Source code or object code written in any combination, the programming language includes object-oriented programming languages such as Smalltalk, C++, etc., and conventional procedural programming languages such as "C" language or similar programming languages.
  • Computer-readable program instructions can be executed entirely on the user's computer, partly on the user's computer, executed as a stand-alone software package, partly on the user's computer and partly executed on a remote computer, or entirely on the remote computer or server carried out.
  • the remote computer can be connected to the user's computer through any kind of network, including a local area network (LAN) or a wide area network (WAN), or it can be connected to an external computer (for example, using an Internet service provider to access the Internet). connection).
  • LAN local area network
  • WAN wide area network
  • an electronic circuit such as a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA), can be customized by using the status information of the computer-readable program instructions.
  • the computer-readable program instructions are executed to realize various aspects of the present disclosure.
  • These computer-readable program instructions can be provided to the processor of a general-purpose computer, a special-purpose computer, or other programmable data processing device, thereby producing a machine that makes these instructions when executed by the processor of the computer or other programmable data processing device , A device that implements the functions/actions specified in one or more blocks in the flowcharts and/or block diagrams is produced. It is also possible to store these computer-readable program instructions in a computer-readable storage medium. These instructions make computers, programmable data processing apparatuses, and/or other devices work in a specific manner. Thus, the computer-readable medium storing the instructions includes An article of manufacture, which includes instructions for implementing various aspects of the functions/actions specified in one or more blocks in the flowcharts and/or block diagrams.
  • each block in the flowchart or block diagram may represent a module, program segment, or part of an instruction, and the module, program segment, or part of an instruction contains one or more components for realizing the specified logical function.
  • Executable instructions may also occur in a different order than the order marked in the drawings. For example, two consecutive blocks can actually be executed substantially in parallel, or they can sometimes be executed in the reverse order, depending on the functions involved.
  • each block in the block diagram and/or flowchart, and the combination of the blocks in the block diagram and/or flowchart can be implemented by a dedicated hardware-based system that performs the specified functions or actions Or it can be realized by a combination of dedicated hardware and computer instructions. It is well known to those skilled in the art that realization by hardware, realization by software, and realization by a combination of software and hardware are all equivalent.
  • the target operator development file containing the business logic description information of the target operator input by the user and the dependent package involved in the dependent package call information in the business logic description information are packaged together to obtain the target operator,
  • the operator development process can be simplified, the development efficiency of the operator can be improved, and the threshold and cost of operator development can be greatly reduced. Therefore, the present disclosure has strong industrial applicability.

Landscapes

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

Abstract

一种辅助算子开发的方法和系统,该方法包括:提供至少一个预设的依赖包(S4100);获取用户输入的包含目标算子的业务逻辑描述信息的目标算子开发文件,其中,目标算子的业务逻辑描述信息中包括依赖包调用信息(S4200);将目标算子开发文件与依赖包调用信息所涉及的依赖包一起进行封装,得到目标算子(S4300)。

Description

辅助算子开发的方法和系统
本公开要求于2019年11月06日提交中国专利局,申请号为201911077327.8,申请名称为“辅助算子开发的方法和系统”的中国专利申请的优先权,其全部内容通过引用结合在本公开中。
技术领域
本公开涉及算子开发技术领域,更具体地,涉及一种辅助算子开发的方法、一种辅助算子开发的系统、一种包括至少一个计算装置和至少一个存储装置的系统、及一种可读存储介质。
背景技术
随着人工智能的发展,越来越多的行业场景需要建立机器学习模型,包括但不限于应用统计分析方法、机器学习方法、深度学习方法、迁移学习方法等进行建模。在人工智能的建模过程中,用户会通过自定义的算法和数据处理逻辑串联出完整的建模流程。其中自定义的算法和数据处理逻辑通常被称为“算子(Operator)”。在算子的开发过程中,经常会遇到在不同的场景或建模环节中复用相同的功能代码的问题。
在现有技术中,每次复用某一功能代码时,通常是由用户自行在代码层面进行控制,即需用户编辑算子的全部代码。在代码层面实现部分功能代码的复用,导致了算子开发效率较低、过多暴露技术细节、算子开发门槛较高的问题。
发明内容
通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。
根据本公开的第一方面,提供了一种辅助算子开发的方法,包括:
提供至少一个预设的依赖包;
获取用户输入的包含目标算子的业务逻辑描述信息的目标算子开发文件,其中,所述目标算子的业务逻辑描述信息中包括依赖包调用信息;
将所述目标算子开发文件与所述依赖包调用信息所涉及的依赖包一起进行封装,得到目标算子。
根据本公开的第二方面,提供了一种辅助算子开发的系统,包括:
依赖包提供模块,被配置为提供至少一个预设的依赖包;
开发文件获取模块,被配置为获取用户输入的包含目标算子的业务逻辑描述信息的目标算子开发文件,其中,所述目标算子的业务逻辑描述信息中包括依赖包调用信息;
算子封装模块,被配置为将所述目标算子开发文件与所述依赖包调用信息所涉及的依赖包一起进行封装,得到目标算子。
根据本公开的第三方面,提供了一种包括至少一个计算装置和至少一个存储装置 的系统,
其中,所述至少一个存储装置被配置为存储指令,所述指令被配置为控制所述至少一个计算装置执行根据本公开第一方面所述的方法。
根据本公开的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在被处理器执行时实现如本公开第一方面所述的方法。
通过本公开的实施例将用户输入的包含目标算子的业务逻辑描述信息的目标算子开发文件、及业务逻辑描述信息中依赖包调用信息所涉及的依赖包一起进行封装,得到目标算子,可以简化算子开发流程,提高算子的开发效率,还可以大幅降低算子开发的门槛和成本。
通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。
附图说明
被结合在说明书中并构成说明书的一部分的附图示出了本公开的实施例,并且连同其说明一起用于解释本公开的原理。
图1是显示可用于实现本公开的实施例的电子设备的硬件配置的例子的框图;
图2示出了本公开的第一个实施例的辅助算子开发的系统的示意图;
图3示出了本公开的第二个实施例的辅助算子开发的系统的示意图;
图4示出了本公开的第一个实施例的辅助算子开发的方法的流程图;
图5示出了本公开的第二个实施例的辅助算子开发的方法的流程图;
图6示出了本公开的第三个实施例的辅助算子开发的方法的流程图;
图7示出了本公开的第四个实施例的辅助算子开发的方法的流程图;
图8示出了本公开的实施例的系统的框图。
具体实施方式
现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
下面,参照附图描述根据本公开实施例的各个实施例和例子。
在本公开的任意实施例中所限定的“A和/或B”,均表示A和B中的至少一项。举例来说“包括A和/或B”表示三种情况:1)只包括A的情况;2)只包括B的情况;3)同时包括A和B情况。
<硬件配置>
图1是示出可以实现本公开的实施例的电子设备1000的硬件配置的框图。
电子设备1000可以是便携式电脑、台式计算机、手机、平板电脑等。如图1所示,电子设备1000可以包括处理器1100、存储器1200、接口装置1300、通信装置1400、显示装置1500、输入装置1600、扬声器1700、麦克风1800等等。其中,处理器1100可以是中央处理器CPU、微处理器MCU等。存储器1200例如包括ROM(只读存储器)、RAM(随机存取存储器)、诸如硬盘的非易失性存储器等。接口装置1300例如包括USB接口、耳机接口等。通信装置1400例如能够进行有线或无线通信,具体地可以包括Wifi通信、蓝牙通信、2G/3G/4G/5G通信等。显示装置1500例如是液晶显示屏、触摸显示屏等。输入装置1600例如可以包括触摸屏、键盘、体感输入等。用户可以通过扬声器1700和麦克风1800输入/输出语音信息。
图1所示的电子设备仅仅是说明性的并且决不意味着对本公开、其应用或使用的任何限制。应用于本公开的实施例中,电子设备1000的所述存储器1200被配置为存储指令,所述指令被配置为控制所述处理器1100进行操作以执行本公开实施例提供的任意一项辅助算子开发的方法。本领域技术人员应当理解,尽管在图1中对电子设备1000示出了多个装置,但是,本公开可以仅涉及其中的部分装置,例如,电子设备1000只涉及处理器1100和存储装置1200。技术人员可以根据本公开所公开方案设计指令。指令如何控制处理器进行操作,这是本领域公知,故在此不再详细描述。
在另外的实施例中,该电子设备1000可以包括根据本公开任意实施例的辅助算子开发的系统2000,其中,该辅助算子开发的系统2000被设置为执行根据本公开任意实施例的辅助算子开发的方法。
<辅助算子开发的系统>
本公开提供了一种辅助算子开发的系统2000,如图2所示,该辅助算子开发的系统2000包括依赖包提供模块2100、开发文件获取模块2200和算子封装模块2300。
该依赖包提供模块2100被配置为提供至少一个预设的依赖包;该开发文件获取模块2200被配置为获取用户输入的包含目标算子的业务逻辑描述信息的目标算子开发文件,其中,目标算子的业务逻辑描述信息中包括依赖包调用信息;该算子封装模块2300被配置为将目标算子开发文件与依赖包调用信息所涉及的依赖包一起进行封装,得到目标算子。
该辅助算子开发的系统2000还可以包括如图3所示的数据获取模块3100和算子调试模块3200,该数据获取模块3100被配置为获取用于调试的模拟数据的模块;该算子调试模块3200被配置为根据模拟数据对目标算子开发文件进行调试;
算子封装模块2300被配置为在算子调试模块3200调试通过的情况下,将目标算子开发文件和依赖包调用信息所涉及的依赖包一起进行封装,得到目标算子。
通过本实施例的辅助算子开发的系统2000,对于算子开发用户来说,可以无缝地从传统的开发模式转换到本实施例的算子开发平台中开发,不添加任何额外成本。而且,可以提高算子开发效率,还可以大幅降低算子开发的门槛和成本。
<方法实施例>
在本实施例中,提供一种辅助算子开发的方法。该辅助算子开发的方法可以是由辅助算子开发的系统2000实施,也可以是由如图1所示的电子设备1000实施。
根据图4所示,本实施例的辅助算子开发的方法可以包括如下步骤S4100~S4300:
步骤S4100,提供至少一个预设的依赖包。
其中,该依赖包可以是能够被调用、且能够实现相应功能的程序代码块。
具体的,依赖包可以包括功能类依赖包和系统类依赖包。功能类依赖包可以由开 发者自己定义,可由外部引入。系统类依赖包,由系统提供,其目的是提供丰富的“工具箱”,来托管一些重要、但是与核心业务逻辑无关的环节,以帮助开发者提升效率,降低成本。
在本公开的一个实施例中,该方法还可以包括:提供依赖包接口;通过该依赖包接口获取用户自定义编辑的依赖包,和/或,通过该依赖包接口接收用户上传的第三方依赖包。
这样,用户就可以根据应用场景或自身具体需求,通过依赖包接口将自身常用的依赖包上传至辅助算子开发的系统2000中,以在算子开发过程中实现这些依赖包的调用。
在本公开的一个实施例中,所提供的至少一个依赖包可以包括以下任意一个或多个:
用于实时监控算子运行状态的依赖包;
用于将算子运行信息对外暴露的依赖包;
用于进行日志收集的依赖包;
用于执行数据过期策略的依赖包;
用于对代码细节进行封装的依赖包;
用于进行辅助资源推荐的依赖包;
用于进行算法参数推荐的依赖包。
在所提供的至少一个依赖包中包括用于实时监控算子运行状态的依赖包的实施例中,用于实时监控算子运行状态的依赖包具体可以用于:在调用该依赖包的算子运行时,对算子的运行状态进行实时监控。
在所提供的至少一个依赖包中包括用于将算子运行信息对外暴露的依赖包的实施例中,在调用该依赖包的算子运行时,获取算子的运行信息,并将该运行信息对外暴露,以用于交互。
在所提供的至少一个依赖包中包括用于进行日志收集的依赖包的实施例中,用于进行日志收集的依赖包具体可以用于:在调用该依赖包的算子运行时,收集算子运行过程中的日志数据。
在所提供的至少一个依赖包中包括用于执行数据过期策略的依赖包的实施例中,用于执行数据过期策略的依赖包具体可以用于:按一定的策略自动清理该调用该依赖包的算子产生的、过期的数据。
在所提供的至少一个依赖包中包括用于对代码细节进行封装的依赖包的实施例中,用于对代码细节进行封装的依赖包具体可以用于:对调用该依赖包的算子的代码细节进行封装。
在所提供的至少一个依赖包中包括用于进行辅助资源推荐的依赖包的实施例中,用于进行辅助资源推荐的依赖包具体可以用于:在调用该依赖包的算子运行时,根据算子对一定量数据进行处理时的资源消耗,推断算子对全量数据进行处理时的资源消耗,并根据推断结果调度对应量的资源。
在所提供的至少一个依赖包中包括用于进行算法参数推荐的依赖包的实施例中,用于进行算法参数推荐的依赖包具体可以用于:在被执行机器学习算法的算子引用时,根据算法和参数的对应列表和/或算法参数搜索方法为相应机器学习算法确定参数。
步骤S4200,获取用户输入的包含目标算子的业务逻辑描述信息的目标算子开发文件,其中,目标算子的业务逻辑描述信息中包括依赖包调用信息。
目标算子开发文件中包含目标算子的业务逻辑描述信息,该业务逻辑描述信息中包括依赖包的调用信息。也就是说,在运行该目标算子开发文件时,会根据依赖包调 用信息进行相应依赖包的调用,实现相应的功能。
在本公开的一个实施例中,目标算子开发文件的形式可以包括如下任意一种:jar包;docker镜像;脚本文件。其中,脚本文件具体可以是python脚本、shell脚本、SQL脚本等。
在目标算子开发文件的形式为jar包的实施例中,jar包中封装了具体的算法。可以预先提供用于获取jar包的第一接口,以供用户通过该第一接口输入形式为jar包的目标算子开发文件。
在目标算子开发文件的形式为docker镜像的实施例中,docker镜像中封装了具体的算法。可以预先提供用于获取docker镜像的第二接口,以供用户通过该第二接口输入形式为docker镜像的目标算子开发文件。
在目标算子开发文件的形式为脚本文件的实施例中,可以预先提供脚本编辑界面,以供用户输入业务逻辑描述信息,得到脚本文件。
步骤S4300,将目标算子开发文件与依赖包调用信息所涉及的依赖包一起进行封装,得到目标算子。
依赖包调用信息所涉及的依赖包即可以为目标算子开发文件所调用的依赖包。
在本公开的一个实施例中,每个依赖包具有对应的版本号,同一功能的依赖包具有至少一个版本。
在一个例子中,依赖包的版本号可以采取一种规范化的版本命名机制,形式可以是如MAJOR.MINOR.PATCH(比如1.0.0、1.0.2-alpha.1、1.0.3-beta、1.0.4-rc.1等等)。有不兼容的改动时,可以升级MAJOR字段的版本;新增向前兼容的功能时,可以升级MINOR字段的版本;进行向前兼容的漏洞修复(bugfix)时,可以升级PATCH字段的版本。
通过本实施例的辅助算子开发的方法,将用户输入的包含目标算子的业务逻辑描述信息的目标算子开发文件、及业务逻辑描述信息中依赖包调用信息所涉及的依赖包一起进行封装,得到目标算子,可以简化算子开发流程,提高算子的开发效率,还可以大幅降低算子开发的门槛和成本。
在本公开的一个实施例中,在执行步骤S4300之前,该方法还可以包括如图5所示的步骤S5110~S5130:
步骤S5110,获取用户配置的关于目标算子的配置文件,该配置文件中声明了业务逻辑信息中依赖包调用信息所涉及的依赖包。
具体的,在配置文件中声明了依赖包调用信息所涉及的依赖包及其版本。
步骤S5120,检测配置文件中声明的依赖包的版本与目标算子开发文件的版本是否一致,如果不一致进一步判断是否兼容。
在本公开的一个实施例中,可以是检测检测配置文件中的依赖包的版本号,与目标算子开发文件的业务逻辑信息中依赖包调用信息所涉及的依赖包的版本号是否完全相同,如是,则可以判定配置文件中声明的依赖包的版本与目标算子开发文件的版本一致;如否,则可以判定配置文件中声明的依赖包的版本与目标算子开发文件的版本不一致。
在依赖包的版本号的形式为MAJOR.MINOR.PATCH的实施例中,如果判定配置文件中声明的依赖包的版本与目标算子开发文件的版本不一致,可以是检测配置文件中的依赖包的版本号的MAJOR,与目标算子开发文件的业务逻辑信息中依赖包调用信息所涉及的依赖包的版本号的MAJOR是否相同,如果相同,则判定配置文件中声明的依赖包的版本与目标算子开发文件的版本兼容;如果不相同,则可以判定配置文件中声明的依赖包的版本与目标算子开发文件的版本不兼容。
步骤S5130,在不一致且不兼容的情况下,则根据目标算子开发文件的版本找到版本一致的依赖包或版本不一致但兼容的依赖包,作为替换包封装到目标算子中。
在本公开的一个实施例中,在配置文件中声明的依赖包的版本与目标算子开发文件的版本不兼容的情况下,可以是以目标算子开发文件的业务逻辑信息中依赖包调用信息所涉及的依赖包为准,即将依赖包调用信息中所涉及的对应版本的依赖包封装到目标算子中。
例如,配置文件中所声明依赖包的版本是spark 1.6,但是,在目标算子开发文件中所涉及的依赖包的版本是spark 2.3,那么,可以是将版本为spark 2.3的依赖包与目标算子开发文件一起封装到目标算子中。
进一步地,该方法还可以包括:根据目标算子开发文件的版本替换配置文件中声明的依赖包的版本。
例如,配置文件中所声明依赖包的版本是spark 1.6,但是,在目标算子开发文件中所涉及的依赖包的版本是spark 2.3,那么,可以是将配置文件中所声明依赖包的版本替换为spark 2.3。
在本公开的另一个实施例中,在配置文件中声明的依赖包的版本与目标算子开发文件的版本不兼容的情况下,还可以是以配置文件中声明的依赖包的版本为准,即将配置文件中声明的对应版本的依赖包封装到目标算子中。
例如,配置文件中所声明依赖包的版本是spark 1.6,但是,在目标算子开发文件中所涉及的依赖包的版本是spark 2.3,那么,可以是将版本为spark 1.6的依赖包与目标算子开发文件一起封装到目标算子中。
进一步地,该方法还可以包括:根据配置文件中声明的依赖包的版本替换目标算子开发文件的版本。
例如,配置文件中所声明依赖包的版本是spark 1.6,但是,在目标算子开发文件中所涉及的依赖包的版本是spark 2.3,那么,可以是将目标算子开发文件中所涉及的依赖包的版本替换为spark1.6。
本实施例通过对配置文件所所声明依赖包和目标算子开发文件中所涉及的依赖包预先进行容错处理,可以避免在目标算子实际运行时发现报错,进而可以提升用户体验。
在本公开的一个实施例中,在执行步骤S4300之前,该方法还可以包括如下所示的步骤S5210~S5230:
步骤S5210,获取用户配置的关于目标算子的配置文件,该配置文件中声明了业务逻辑信息中依赖包调用信息所涉及的依赖包。
步骤S5220,扫描目标算子开发文件,判断是否存在目标算子开发文件中存在依赖包调用信息但配置文件中不存在相应声明的依赖包。
在一个例子中,存在依赖包调用信息但配置文件中不存在相应声明的依赖包,可以是依赖包调用信息所涉及、但未在配置文件中声明相应版本的依赖包,也可以是依赖包调用信息所涉及、但未在配置文件中声明其任一版本的依赖包。
步骤S5230,如果存在,则在配置文件中补充相应的声明。
例如,在目标算子开发文件的依赖包调用信息涉及版本是spark 2.3的依赖包,而在配置文件中未对该依赖包进行声明,则可以是在配置文件中补充对版本是spark 2.3的依赖包的声明。
本实施例通过对配置文件所所声明依赖包和目标算子开发文件中所涉及的依赖包预先进行容错处理,可以避免在目标算子实际运行时发现报错,进而可以提升用户体验。
在本公开的一个实施例中,该方法还可以包括:
提供与不同底层框架分别对应的底层框架执行器,以在算子实际运行时托管底层框架的任务分发的资源调度;和/或,
提供与不同计算框架分别对应的计算框架管理器,以在算子实际运行时托管计算框架中的通信、调度和资源相关的操作。
其中,底层框架包括如下中的至少一种:YARN、Kubernetes。计算框架包括如下的至少一种:Spark、Tensorflow、MapReduce、Python、Shell、Java。
在一个例子中,可以是预先提供多个底层框架和计算框架,响应于用户选择底层框架的操作,提供与用户所选择的底层框架对应的底层框架执行器;响应于用户选择计算框架的操作,提供与用户所选择的计算框架对应的计算框架执行器。
如果用户使用上述计算框架来开发算子,那么,可以直接编辑业务逻辑描述信息,而不需要关心框架层的通信、调度、资源相关的问题。
下面以在YARN框架上面运行Spark任务为例进行说明。
传统做法是,算子开发用于需要下载安装Hadoop,然后配置环境变量。有Hadoop配置文件后,由于需要执行Spark的逻辑需要依赖官方提供的jar包,可以从官网下载jar文件,下载到本地后配置环境变量后就可以正常使用Spark所有完整功能了。如果环境都准备好,本地可以通过pyspark命令来启动,这样可以直接配置yarn-client模型和其他Spark参数。客户端初始化后,可以在Hadoop的应用管理页面看到正在跑的一个Application,提交各种Spark任务时也可以看到运行在Hadoop集群上。而对于商业发行版的Hadoop,开发者还需要处理各种版本不一致带来的验证、鉴权等非业务问题。非常依赖开发者对于Hadoop生态的了解,门槛极高。
而本公开的辅助算子开发的系统2000将上述繁杂的过程完全自动化。算子开发用户只需要掌握开发算子所必备的开源Hadoop和Spark的知识,专注于编辑业务逻辑描述信息。YARN框架层面的版本问题、环境配置问题、启动、提交任务等,全部通过自动化的方式来屏蔽。具体做法可以为:本公开的辅助算子开发的系统2000可以兼容市场上常用的所有Hadoop和Spark版本,并向算子开发用户提供兼容列表。算子开发用户只需在该兼容列表下进行开发,算子平台会自动监测算子开发用户所输入的代码,匹配相应的版本进行提交和执行。
下面以在Kubernetes框架上面运行Python任务为例进行说明。
传统做法是,先准备基于容器化运行的容器环境。然后在算法业务逻辑之外,额外准备配置文件,声明监听容器的端口号、依赖包、http输入输出方式等。再之后需要准备一个容器描述文件,指定基础镜像、设置工作目录、暴露监听端口等。最后通过命令行代码交互的方式,启动容器运行在Kubernetes上。
而本公开的辅助算子开发的系统2000将上述繁杂的过程完全自动化。具体做法是:辅助算子开发的系统2000内置标准运行环境,预置人工智能应用开发所有常用依赖包,并且自动帮助算子开发用户默认设置监听容器的端口号。当算子开发用户打包算子时,辅助算子开发的系统2000会扫描算子开发用户声明的依赖包,自动生成容器描述文件。算子开发用户无需感知任何业务逻辑之外的事情,即可通过一行命令,直接执行任务。
对于提交执行,传统做法是通过命令行代码交互的方式进行,不仅需要算子开发用户熟悉每一个框架的提交命令,还需要进行执行参数调试等各种工作。而本公开的辅助算子开发的系统2000的优化方式包括:将每个框架的提交命令封装成一个参数,并给每个框架的参数命名为算子开发用户习以为常的缩写,算子开发用户只需自己确定用于执行算子的框架,指定相应缩写即可;辅助算子开发的系统2000对每个框架的每个可调试参数进行大量测试,拟合方程公式(包括但不限于线性回归、非线性回归 方法等),得出一个经验公式,然后将经验公式内置在辅助算子开发的系统2000中。算子开发用户指定某个框架后,后台自动收到指令,触发经验公式进行计算,实时返回当前最优的执行参数,并提交运行。
本公开的辅助算子开发的系统2000默认帮助算子开发用户搭建了人工智能领域常用的底层资源框架(YARN、Kubernetes)等,使得算子开发用户无需关系底层任务分发和资源调度。
本公开的辅助算子开发的系统2000还对常用的计算框架进行了抽象、封装和优化,使得使用这些计算框架的算子开发用户,能够更加低成本的完成算子开发工作。
这些抽象、封装和优化被称为Executive,即算子在特定计算框架上提交执行、状态追踪、指标(metrics)收集的管理者和执行器,可实现多种多样的Executive来对接不同的调度集群和计算框架(例如Spark 1.6.x的Executive、Tensorflow的Executive)。
Executive在提交算子到算子集群执行时,需要构造算子的传入参数。因此,针对一类要到相同Executive上执行的算子需定义好传入参数的结构规范,使算子在集群上运行时可以正确的获取到执行的传入参数。例如,Spark算子是通过将配置写出到Json文件,然后在提交时带上该Json文件,并将该Json文件的文件名作为提交参数,来让提交到YARN上的算子同反序列化文件内容获取配置。再例如,Tensorflow算子通过构建Job的command和env参数的方式,将输入参数传入镜像entryPoint的launch.py,再通过launch.py启动用户的py将这些参数传入执行。
对于状态追踪,传统做法是算子开发用户需要熟悉每个框架的状态定义,然后自己来实现运行过程中的状态追踪。本公开的辅助算子开发的系统2000则针对不同的框架,抽象总结出一个适配所有框架的通用状态追踪机制。即定义状态可以包括:INITIALIZED(初始化任务)、AWAITING(等待调度,分为本地组装与提交阶段和集群等待调度阶段)、RUNNING(运行)、SUCCEEDED(成功)、FAILED(失败)、TERMINATED(终止)、RESUMING(恢复)。算子开发用户不再需要关心和编辑状态追踪相关的逻辑,辅助算子开发的系统2000自动将上述状态逻辑用一个参数来替代,通过运行时下指令给辅助算子开发的系统2000来自动实现。
对于指标收集,传统的做法是算子开发用户需要自己写代码来实现,能力强的算子开发用户可以写出效率很高的代码进行执行,而能力不强的算子开发用户写代码后,反而会增加任务的执行时间,同时还会增加算子中间数据的存储。本公开的辅助算子开发的系统2000通过自动建立服务端与客户端的连接,服务端在获取到指标数据后主动推送到客户端,客户端负责解析和记录、展示的方式,帮助算子开发用户避免了手写代码实现。并将是否选择开启指标收集,作为了一个执行可选参数,开放给算子开发用户进行自由选择。
在本公开的一个实施例中,该方法还可以包括如图6所示的步骤S6100~S6200:
步骤S6100,获取用于调试的模拟数据。
该模拟数据可以用于调试目标算子开发文件是否可用。具体的,该模拟数据可以是自动生成的,也可以是由用户输入的。
由于在建模过程中的数据类型会不断变换,经常会从数据表到模型再到报告或者文件,不同的算子需要处理不同类型的数据。因此,需要算子开发用户能够灵活的指定目标算子的输入输出格式,并针对特定格式的数据开发特定的功能。
在本公开的一个实施例中,获取模拟数据的方式可以包括:获取用户输入的模拟数据的格式信息;根据该格式信息获取模拟数据。
该格式信息可以包括数据格式、具体数据项的类型、数量。数据格式可以为以下 任意一种:数据表、数据组、模型、模型组、图片、图片集、文件。
在本实施例的基础上,获取模拟数据的方式可以包括:获取用户输入的目标算子的应用场景;根据应用场景获取符合该格式信息的数据,作为模拟数据。
该应用场景例如可以包括图片识别、图片比对、打分等。
在一个例子中,根据应用场景获取符合该格式信息的数据,作为模拟数据还可以包括:从预存的数据中选取适应于该应用场景、且符合该格式信息的数据,作为模拟数据。
在另一个例子中,根据应用场景获取符合该格式信息的数据,作为模拟数据可以包括:获取与应用场景匹配的历史数据;根据历史数据确定数据限定条件;根据数据限定条件生成符合该格式信息的模拟数据。
该历史数据中包括与应用场景匹配的其他算子的输入数据和对应的输出数据,根据该输入数据和输出数据,可以得到数据限定条件;基于该数据限定条件就可以生成符合用户输入的格式信息的模拟数据。
在本实施例的基础上,获取模拟数据的方式还可以包括:获取用户输入的用于表示数据内容的数据配置信息;根据该数据配置信息生成模拟数据。
在一个例子中,算子开发用户可以是在配置文件中指定模拟数据的格式信息。例如,算子开发用户可以通过表单式交互的方式,声明所需的模拟数据的格式信息,即可获取模拟数据供算子开发用户使用。
具体的,可以接收用户输入的配置文件,将配置文件中配置的数据表定义,转换为模拟数据的生成任务,上传到Spark上进行数据生成。
支持生成模拟数据的功能可以包括:
支持在配置文件中定义待生成数据实体的schema;
支持生成多种数据类型,包括string,short,int,long,float,double,date,time中的任意一种或多种;
支持配置生成的某个字段的数据来自于enum list或者某个文件;
支持配置数据字段为数据表的key,支持uniq字段;
支持配置数据字段为其他表的key,支持配置表数据字段来自于其他表数据字段,可控制匹配度,具体包括一对一匹配、一对多匹配、多对一匹配;
支持控制任务执行模式,spark local,spark yarn client,spark yarn cluster;
支持控制生成某一天,或某时间段的数据;
支持同时生成多张表,可以配置表之间行数依赖;
支持控制数据生成任务的并行度;
支持控制数据生成周期,按天,按周,按月,按年;
支持对生成的数据进行脏化处理,添加空格,字段缺失,NULL,None,缺少分隔符;
支持配置字段分隔符,配置生成数据文件编码;
支持对生成数据文件进行压缩存储(支持snappy、lzo、gzip、bzip2等压缩格式,依赖于hadoop集群);
支持将字段名输出到生成数据文件中,作为表头;
支持配置用于组成字符串的字符的来源;
支持高斯分布、指数分布、伽马分布的浮点数类型;
支持控制数据生成位置,支持数据load hive。
在本公开的一个实施例中,本实施例的方法还可以对人工智能建模过程中,经常遇到的数据倾斜问题进行模拟,以便于算子开发用户更好的进行生产使用。
步骤S6200,根据该模拟数据对目标算子开发文件进行调试,在调试通过的情况下,将目标算子开发文件和依赖包调用信息所涉及的依赖包一起进行封装,得到目标算子。
如果调试未通过,则可以向用户展示目标算子开发文件,以供算子开发用户对目标算子开发文件进行修改,以使得修改后的目标算子开发文件能够基于模拟数据调试通过。
在本公开的一个实施例中,调试是指能够查看资源控制和运行状态,通过资源查看和运行状态查看,来判断目标算子是否运行正确,符合资源消耗预期。
具体的,可以是预先搭建人工智能领域常用的底层资源框架(YARN、Kubernetes)等,使得算子开发用户无需关系底层任务分发和资源调度。此外还提供可视化模块(例如Dashboard),并将调试结果通过该可视化模块展示给算子开发用户,以使算子开发用户可以清晰的查看资源控制和运行状态。
在调试完成后,可以一键发布,使得目标算子可以模拟在线上真实情况下的运行。线上模拟相当于是执行本公开实施例的电子设备模拟用户去使用目标算子,是前后端联调及质量的测试,以保证目标算子只要是能够通过线上模拟测试,均可正常在真实环境中运行。
具体的,可以使用websocket协议建立服务端与客户端的连接,服务端在获取到日志数据后主动推送到客户端,客户端(前端页面)负责解析并展示数据即可。
系统在线上真实环境(即已经投入使用的算子的运行环境),可以自动根据用于针对该目标算子指定的输入类型,匹配一份内置数据,然后用大量预置的测试用例,对目标算子进行测试。具体可以包括输入、输出、运行时长、资源消耗、UI交互、与其他算子的方案编排等各方面测试。
在本公开的一个实施例中,在得到目标算子之后,该方法还可以包括如图7所示的步骤S7100~S7300:
步骤S7100,提供目标算子的前端页面模板。
步骤S7200,获取算子开发用户输入的关于目标算子的前端页面模板的配置信息。
算子开发用户无需关心前端开发技术,只需要在配置信息中设置希望算子使用用户看到和/或调整的参数。
在一个例子中,用户输入的关于目标算子的前端页面模板的配置信息可以包括:目标算子所属的算子分类、目标算子的名称、目标算子的版本号、目标算子的输出字段、该输出字段对应的目标值字段等。
步骤S7300,根据前端页面模板和前端页面模板的配置信息生成目标算子的前端页面,以供算子使用用户通过该前端页面调整和/或查看目标算子的相关参数值。
根据前端页面模板和前端页面模板的配置信息生成的前端页面中,展示有算子开发用户希望算子使用用户看到和/或调整的参数,这样,算子使用用户就可以过该前端页面调整和/或查看目标算子的相关参数值。
在本公开的一个实施例中,目标算子的版本号可以采取一种规范化的版本命名机制,形式可以是如MAJOR.MINOR.PATCH(比如1.0.0、1.0.2-alpha.1、1.0.3-beta、1.0.4-rc.1等等)。有不兼容的改动时,可以升级MAJOR字段的版本;新增向前兼容的功能时,可以升级MINOR字段的版本;进行向前兼容的漏洞修复(bugfix)时,可以升级PATCH字段的版本。
在本实施例中,引入算子版本化,可以解决算子的开发迭代问题和多版本共存问题。
但由于算子之间没有协议,无法保证不同的算子之间能兼容工作,当一个基于算子的方案编排中存在不兼容的算子时,需要等到运行时才能暴露问题。如果仅引入基 于算子的方案编排的版本化,限制一个版本的方案里能使用的算子集合,那么算子之间的兼容性问题能够解决,但无法解决算子本身开发迭代和多版本算子共存的问题。
因此,可以是算子和基于算子的方案编排都引入版本化机制,其中,算子的版本化用于解决算子的开发迭代问题和多版本共存问题,编排方案的版本化用于解决算子之间的兼容性问题。
在一个例子中,目标算子的版本号可以由算子模板提供,算子模板中新增version字段和protocolVersion字段。version字段供方案编排使用。ProtocolVersion字段标识目标算子所属的方案版本,为数组类型,因为一个版本的算子可以出现在多个版本的方案中,数组中的每个版本只能使用完整的版本号。
<系统实施例>
在本实施例中,提供一种辅助算子开发的系统2000,如图2所示,该系统2000可以包括依赖包提供模块2100、开发文件获取模块2200和算子封装模块2300。该依赖包提供模块2100被配置为提供至少一个预设的依赖包;该开发文件获取模块2200被配置为获取用户输入的包含目标算子的业务逻辑描述信息的目标算子开发文件,其中,目标算子的业务逻辑描述信息中包括依赖包调用信息;该算子封装模块2300被配置为将目标算子开发文件与依赖包调用信息所涉及的依赖包一起进行封装,得到目标算子。
在本公开的一个实施例中,至少一个预设的依赖包可以包括如下中的一个或多个:
用于实时监控算子运行状态的依赖包;
用于将算子运行信息对外暴露的依赖包;
用于进行日志收集的依赖包;
用于执行数据过期策略的依赖包;
用于对代码细节进行封装的依赖包;
用于进行辅助资源推荐的依赖包;
用于进行算法参数推荐的依赖包。
在本公开的一个实施例中,至少一个预设的依赖包可以包括用于进行辅助资源推荐的依赖包;用于进行辅助资源推荐的依赖包,用于在算子运行时根据算子对一定量数据进行处理时的资源消耗推断算子对全量数据进行处理时的资源消耗,并根据推断结果调度对应量的资源。
在本公开的一个实施例中,至少一个预设的依赖包可以包括用于进行算法参数推荐的依赖包;用于进行算法参数推荐的依赖包,用于在被执行机器学习算法的算子引用时,根据算法和参数的对应列表和/或算法参数搜索方法为相应机器学习算法确定参数。
在本公开的一个实施例中,目标算子开发文件形式可以是如下中的任一种:jar包;docker镜像;脚本文件。其中,脚本文件具体可以是python脚本、shell脚本、SQL脚本等。
在本公开的一个实施例中,该系统2000还可以包括:
被配置为提供依赖包接口的模块;
被配置为通过依赖包接口获取用户自定义编辑的依赖包,和/或,通过依赖包接口接收用户上传第三方的依赖包的模块。
在本公开的一个实施例中,该系统2000还可以包括:
被配置为获取用户配置的关于目标算子的配置文件的模块,该配置文件中声明了业务逻辑信息中依赖包调用信息所涉及的依赖包;
被配置为检测配置文件中声明的依赖包的版本与目标算子开发文件的版本是否一致,如果不一致进一步判断是否兼容的模块;
被配置为在不一致且不兼容的情况下,则根据目标算子开发文件的版本找到版本一致的依赖包或版本不一致但兼容的依赖包,作为替换包封装到目标算子中的模块。
在本公开的一个实施例中,该系统2000还可以包括:
被配置为获取用户配置的关于目标算子的配置文件的模块,该配置文件中声明了业务逻辑信息中依赖包调用信息所涉及的依赖包;
被配置为扫描目标算子开发文件,判断是否存在目标算子开发文件中存在依赖包调用信息但配置文件中不存在相应声明的依赖包;如果存在,则在配置文件中补充相应的声明的模块。
在本公开的一个实施例中,该系统2000还可以包括:
被配置为提供与不同底层框架分别对应的底层框架执行器,以在算子实际运行时托管底层框架的任务分发的资源调度的模块;
和/或,
被配置为提供与不同计算框架分别对应的计算框架管理器,以在算子实际运行时托管计算框架中的通信、调度和资源相关的操作的模块。
在第一方面一种可能的实现方式中,每个依赖包具有对应的版本号,同一功能的依赖包具有至少一个版本。
在本公开的一个实施例中,该系统2000还可以包括如图3所示的数据获取模块3100和算子调试模块3200,该数据获取模块3100被配置为获取用于调试的模拟数据的模块;该算子调试模块3200被配置为根据模拟数据对目标算子开发文件进行调试;
算子封装模块2300被配置为在算子调试模块3200调试通过的情况下,将目标算子开发文件和依赖包调用信息所涉及的依赖包一起进行封装,得到目标算子。
在本公开的一个实施例中,数据获取模块3100还可以被配置为:
获取用户输入的模拟数据格式信息;
根据格式信息获取模拟数据。
在本公开的一个实施例中,根据格式信息获取模拟数据包括:
获取用户输入的目标算子的应用场景;
根据应用场景获取符合格式信息的数据,作为模拟数据。
在本公开的一个实施例中,根据应用场景获取符合格式信息的数据,作为模拟数据包括:
获取与应用场景匹配的历史数据;
根据历史数据确定数据限定条件;
根据数据限定条件生成符合格式信息的模拟数据。
在本公开的一个实施例中,根据应用场景获取符合格式信息的数据,作为模拟数据包括:
从预存的数据中选取适用于应用场景、且符合格式信息的数据,作为模拟数据。
在本公开的一个实施例中,根据格式信息获取模拟数据包括:
获取用户输入的用于表示数据内容的数据配置信息;
根据数据配置信息生成模拟数据。
在本公开的一个实施例中,该系统2000还可以包括:
被配置为提供目标算子的前端页面模板的模块;
被配置为获取算子开发用户输入的关于目标算子的前端页面模板的配置信息的模块;
被配置为根据前端页面模板和前端页面模板的配置信息生成目标算子的前端页面,以供算子使用用户通过该前端页面调整和/或查看目标算子的相关参数值的模块。
<电子设备>
在本实施例中,如图8所示,还提供一种至少一个计算装置8100和至少一个存储装置8200的系统8000。该至少一个存储装置8200被配置为存储可执行的指令;该指令被配置为控制至少一个计算装置8100执行根据本公开任意实施例的辅助算子开发的方法。
在本实施例中,该系统8000可以是手机、平板电脑、掌上电脑、台式机、笔记本电脑、工作站、游戏机等设备,也可以是由多个设备构成的分布式系统。
<计算机可读存储介质>
在本实施例中,还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序在被处理器执行时实现如本公开任意实施例的辅助算子开发的方法。
本公开可以是设备、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/ 或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本公开的范围由所附权利要求来限定。
工业实用性
通过本公开实施例,将用户输入的包含目标算子的业务逻辑描述信息的目标算子开发文件、及业务逻辑描述信息中依赖包调用信息所涉及的依赖包一起进行封装,得到目标算子,可以简化算子开发流程,提高算子的开发效率,还可以大幅降低算子开发的门槛和成本。因此本公开具有很强的工业实用性。

Claims (52)

  1. 一种辅助算子开发的方法,包括:
    提供至少一个预设的依赖包;
    获取用户输入的包含目标算子的业务逻辑描述信息的目标算子开发文件,其中,所述目标算子的业务逻辑描述信息中包括依赖包调用信息;
    将所述目标算子开发文件与所述依赖包调用信息所涉及的依赖包一起进行封装,得到目标算子。
  2. 根据权利要求1所述的方法,其中,所述至少一个预设的依赖包包括如下中的一个或多个:
    用于实时监控算子运行状态的依赖包;
    用于将算子运行信息对外暴露的依赖包;
    用于进行日志收集的依赖包;
    用于执行数据过期策略的依赖包;
    用于对代码细节进行封装的依赖包;
    用于进行辅助资源推荐的依赖包;
    用于进行算法参数推荐的依赖包。
  3. 根据权利要求1或2所述的方法,其中,所述至少一个预设的依赖包包括用于进行辅助资源推荐的依赖包;
    所述用于进行辅助资源推荐的依赖包,用于在算子运行时根据算子对一定量数据进行处理时的资源消耗推断算子对全量数据进行处理时的资源消耗,并根据推断结果调度对应量的资源。
  4. 根据权利要求1至3中任一项所述的方法,其中,所述至少一个预设的依赖包包括用于进行算法参数推荐的依赖包;
    所述用于进行算法参数推荐的依赖包,用于在被执行机器学习算法的算子引用时,根据算法和参数的对应列表和算法参数搜索方法中的至少一个为相应机器学习算法确定参数。
  5. 根据权利要求1至4中任一项所述的方法,其中,所述目标算子开发文件形式可以是如下中的任一种:
    jar包;
    docker镜像;
    脚本文件。
  6. 根据权利要求1至5中任一项所述的方法,还包括:
    提供依赖包接口;
    通过所述依赖包接口获取用户自定义编辑的依赖包,或者,通过所述依赖包接口接收用户上传第三方的依赖包,或者,通过所述依赖包接口获取用户自定义编辑的依赖包以及通过所述依赖包接口接收用户上传第三方的依赖包。
  7. 根据权利要求1至6中任一项所述的方法,在将所述目标算子开发文件与所述依赖包调用信息所涉及的依赖包一起进行封装之前,还包括:
    获取用户配置的关于目标算子的配置文件,该配置文件中声明了业务逻辑信息中依赖包调用信息所涉及的依赖包;
    检测所述配置文件中声明的依赖包的版本与所述目标算子开发文件的版本是否一致,如果不一致进一步判断是否兼容;
    在不一致且不兼容的情况下,则根据所述目标算子开发文件的版本找到版本一致的依赖包或版本不一致但兼容的依赖包,作为替换包封装到所述目标算子中。
  8. 根据权利要求1至7中任一项所述的方法,在将所述目标算子开发文件与所述依赖包调用信息所涉及的依赖包一起进行封装之前,还包括:
    获取用户配置的关于所述目标算子的配置文件,该配置文件中声明了业务逻辑信息中依赖包调用信息所涉及的依赖包;
    扫描所述目标算子开发文件,判断是否存在目标算子开发文件中存在依赖包调用信息但配置文件中不存在相应声明的依赖包;
    如果存在,则在所述配置文件中补充相应的声明。
  9. 根据权利要求1至8中任一项所述的方法,还包括如下两项中的至少一项:
    提供与不同底层框架分别对应的底层框架执行器,以在算子实际运行时托管底层框架的任务分发的资源调度;
    提供与不同计算框架分别对应的计算框架管理器,以在算子实际运行时托管计算框架中的通信、调度和资源相关的操作。
  10. 根据权利要求1至9中任一项所述的方法,每个依赖包具有对应的版本号,同一功能的依赖包具有至少一个版本。
  11. 根据权利要求1至10中任一项所述的方法,还包括:
    获取用于调试的模拟数据;
    根据所述模拟数据对所述目标算子开发文件进行调试,在调试通过的情况下,将所述目标算子开发文件和所述依赖包调用信息所涉及的依赖包一起进行封装,得到目标算子。
  12. 根据权利要求11所述的方法,所述获取用于调试的模拟数据包括:
    获取用户输入的所述模拟数据格式信息;
    根据所述格式信息获取所述模拟数据。
  13. 根据权利要求12所述的方法,所述根据所述格式信息获取所述模拟数据包括:
    获取用户输入的所述目标算子的应用场景;
    根据所述应用场景获取符合所述格式信息的数据,作为所述模拟数据。
  14. 根据权利要求13所述的方法,所述根据所述应用场景获取符合所述格式信息的数据,作为所述模拟数据包括:
    获取与所述应用场景匹配的历史数据;
    根据所述历史数据确定数据限定条件;
    根据所述数据限定条件生成符合所述格式信息的所述模拟数据。
  15. 根据权利要求13或14所述的方法,所述根据所述应用场景获取符合所述格式信息的数据,作为所述模拟数据包括:
    从预存的数据中选取适用于所述应用场景、且符合所述格式信息的数据,作为所述模拟数据。
  16. 根据权利要求12至15中任一项所述的方法,所述根据所述格式信息获取所述模拟数据包括:
    获取用户输入的用于表示数据内容的数据配置信息;
    根据所述数据配置信息生成所述模拟数据。
  17. 根据权利要求1至16中任一项所述的方法,还包括:
    提供目标算子的前端页面模板;
    获取算子开发用户输入的关于所述目标算子的前端页面模板的配置信息;
    根据所述前端页面模板和前端页面模板的配置信息生成所述目标算子的前端页面,以供算子使用用户通过该前端页面调整或查看所述目标算子的相关参数值。
  18. 一种辅助算子开发的系统,包括:
    依赖包提供模块,被配置为提供至少一个预设的依赖包;
    开发文件获取模块,被配置为获取用户输入的包含目标算子的业务逻辑描述信息的目标算子开发文件,其中,所述目标算子的业务逻辑描述信息中包括依赖包调用信息;
    算子封装模块,被配置为将所述目标算子开发文件与所述依赖包调用信息所涉及的依赖包一起进行封装,得到目标算子。
  19. 根据权利要求18所述的系统,其中,所述至少一个预设的依赖包包括如下中的一个或多个:
    用于实时监控算子运行状态的依赖包;
    用于将算子运行信息对外暴露的依赖包;
    用于进行日志收集的依赖包;
    用于执行数据过期策略的依赖包;
    用于对代码细节进行封装的依赖包;
    用于进行辅助资源推荐的依赖包;
    用于进行算法参数推荐的依赖包。
  20. 根据权利要求19所述的系统,其中,所述至少一个预设的依赖包包括用于进行辅助资源推荐的依赖包;
    所述用于进行辅助资源推荐的依赖包,用于在算子运行时根据算子对一定量数据进行处理时的资源消耗推断算子对全量数据进行处理时的资源消耗,并根据推断结果调度对应量的资源。
  21. 根据权利要求19或20所述的系统,其中,所述至少一个预设的依赖包包括用于进行算法参数推荐的依赖包;
    所述用于进行算法参数推荐的依赖包,用于在被执行机器学习算法的算子引用时,根据算法和参数的对应列表和算法参数搜索方法中的至少一个为相应机器学习算法确定参数。
  22. 根据权利要求18至21中任一项所述的系统,其中,所述目标算子开发文件形式可以是如下中的任一种:
    jar包;
    docker镜像;
    脚本文件。
  23. 根据权利要求18至22中任一项所述的系统,还包括:
    被配置为提供依赖包接口的模块;
    被配置为通过所述依赖包接口获取用户自定义编辑的依赖包,或者,通过所述依赖包接口接收用户上传第三方的依赖包的模块,或者,通过所述依赖包接口获取用户自定义编辑的依赖包以及通过所述依赖包接口接收用户上传第三方的依赖包。
  24. 根据权利要求18至23中任一项所述的系统,还包括:
    被配置为获取用户配置的关于目标算子的配置文件的模块,该配置文件中声明了业务逻辑信息中依赖包调用信息所涉及的依赖包;
    被配置为检测所述配置文件中声明的依赖包的版本与所述目标算子开发文件的版本是否一致,如果不一致进一步判断是否兼容的模块;
    被配置为在不一致且不兼容的情况下,则根据所述目标算子开发文件的版本找到版本一致的依赖包或版本不一致但兼容的依赖包,作为替换包封装到所述目标算子中的模块。
  25. 根据权利要求18至24中任一项所述的系统,还包括:
    被配置为获取用户配置的关于所述目标算子的配置文件的模块,该配置文件中声明了业务逻辑信息中依赖包调用信息所涉及的依赖包;
    被配置为扫描所述目标算子开发文件,判断是否存在目标算子开发文件中存在依赖包调用信息但配置文件中不存在相应声明的依赖包;如果存在,则在所述配置文件中补充相应的声明的模块。
  26. 根据权利要求18至25中任一项所述的系统,还包括如下两项中的至少一项:
    被配置为提供与不同底层框架分别对应的底层框架执行器,以在算子实际运行时托管底层框架的任务分发的资源调度的模块;
    被配置为提供与不同计算框架分别对应的计算框架管理器,以在算子实际运行时托管计算框架中的通信、调度和资源相关的操作的模块。
  27. 根据权利要求18至26中任一项所述的系统,每个依赖包具有对应的版本号,同一功能的依赖包具有至少一个版本。
  28. 根据权利要求18至27中任一项所述的系统,还包括:
    数据获取模块,被配置为获取用于调试的模拟数据的模块;
    算子调试模块,被配置为根据所述模拟数据对所述目标算子开发文件进行调试;
    所述算子封装模块被配置为在所述算子调试模块调试通过的情况下,将所述目标算子开发文件和所述依赖包调用信息所涉及的依赖包一起进行封装,得到目标算子。
  29. 根据权利要求28所述的系统,所述数据获取模块还被配置为:
    获取用户输入的所述模拟数据格式信息;
    根据所述格式信息获取所述模拟数据。
  30. 根据权利要求29所述的系统,所述根据所述格式信息获取所述模拟数据包括:
    获取用户输入的所述目标算子的应用场景;
    根据所述应用场景获取符合所述格式信息的数据,作为所述模拟数据。
  31. 根据权利要求30所述的系统,所述根据所述应用场景获取符合所述格式信息的数据,作为所述模拟数据包括:
    获取与所述应用场景匹配的历史数据;
    根据所述历史数据确定数据限定条件;
    根据所述数据限定条件生成符合所述格式信息的所述模拟数据。
  32. 根据权利要求30或31所述的系统,所述根据所述应用场景获取符合所述格式信息的数据,作为所述模拟数据包括:
    从预存的数据中选取适用于所述应用场景、且符合所述格式信息的数据,作为所述模拟数据。
  33. 根据权利要求29至32中任一项所述的系统,所述根据所述格式信息获取所述模拟数据包括:
    获取用户输入的用于表示数据内容的数据配置信息;
    根据所述数据配置信息生成所述模拟数据。
  34. 根据权利要求18至33中任一项所述的系统,还包括:
    被配置为提供目标算子的前端页面模板的模块;
    被配置为获取算子开发用户输入的关于所述目标算子的前端页面模板的配置信息的模块;
    被配置为根据所述前端页面模板和前端页面模板的配置信息生成所述目标算子的前端页面,以供算子使用用户通过该前端页面调整或查看所述目标算子的相关参数值的模块。
  35. 一种包括至少一个计算装置和至少一个存储装置的系统,其中,所述至少一 个存储装置被配置为存储指令,所述指令被配置为控制所述至少一个计算装置执行如下方法:
    提供至少一个预设的依赖包;
    获取用户输入的包含目标算子的业务逻辑描述信息的目标算子开发文件,其中,所述目标算子的业务逻辑描述信息中包括依赖包调用信息;
    将所述目标算子开发文件与所述依赖包调用信息所涉及的依赖包一起进行封装,得到目标算子。
  36. 根据权利要求35所述的系统,其中,所述至少一个预设的依赖包包括如下中的一个或多个:
    用于实时监控算子运行状态的依赖包;
    用于将算子运行信息对外暴露的依赖包;
    用于进行日志收集的依赖包;
    用于执行数据过期策略的依赖包;
    用于对代码细节进行封装的依赖包;
    用于进行辅助资源推荐的依赖包;
    用于进行算法参数推荐的依赖包。
  37. 根据权利要求35或36所述的系统,其中,所述至少一个预设的依赖包包括用于进行辅助资源推荐的依赖包;
    所述用于进行辅助资源推荐的依赖包,用于在算子运行时根据算子对一定量数据进行处理时的资源消耗推断算子对全量数据进行处理时的资源消耗,并根据推断结果调度对应量的资源。
  38. 根据权利要求35至37中任一项所述的系统,其中,所述至少一个预设的依赖包包括用于进行算法参数推荐的依赖包;
    所述用于进行算法参数推荐的依赖包,用于在被执行机器学习算法的算子引用时,根据算法和参数的对应列表和算法参数搜索方法中的至少一个为相应机器学习算法确定参数。
  39. 根据权利要求35至38中任一项所述的系统,其中,所述目标算子开发文件形式可以是如下中的任一种:
    jar包;
    docker镜像;
    脚本文件。
  40. 根据权利要求35至39中任一项所述的系统,所述指令还被配置为控制所述至少一个计算装置执行如下方法:
    提供依赖包接口;
    通过所述依赖包接口获取用户自定义编辑的依赖包,或者,通过所述依赖包接口接收用户上传第三方的依赖包,或者,通过所述依赖包接口获取用户自定义编辑的依赖包以及通过所述依赖包接口接收用户上传第三方的依赖包。
  41. 根据权利要求35至40中任一项所述的系统,在将所述目标算子开发文件与所述依赖包调用信息所涉及的依赖包一起进行封装之前,所述指令还被配置为控制所述至少一个计算装置执行如下方法:
    获取用户配置的关于目标算子的配置文件,该配置文件中声明了业务逻辑信息中依赖包调用信息所涉及的依赖包;
    检测所述配置文件中声明的依赖包的版本与所述目标算子开发文件的版本是否一致,如果不一致进一步判断是否兼容;
    在不一致且不兼容的情况下,则根据所述目标算子开发文件的版本找到版本一致的依赖包或版本不一致但兼容的依赖包,作为替换包封装到所述目标算子中。
  42. 根据权利要求35至41中任一项所述的系统,在将所述目标算子开发文件与所述依赖包调用信息所涉及的依赖包一起进行封装之前,所述指令还被配置为控制所述至少一个计算装置执行如下方法:
    获取用户配置的关于所述目标算子的配置文件,该配置文件中声明了业务逻辑信息中依赖包调用信息所涉及的依赖包;
    扫描所述目标算子开发文件,判断是否存在目标算子开发文件中存在依赖包调用信息但配置文件中不存在相应声明的依赖包;
    如果存在,则在所述配置文件中补充相应的声明。
  43. 根据权利要求35至42中任一项所述的系统,所述指令还被配置为控制所述至少一个计算装置执行如下两项中的至少一项方法:
    提供与不同底层框架分别对应的底层框架执行器,以在算子实际运行时托管底层框架的任务分发的资源调度;
    提供与不同计算框架分别对应的计算框架管理器,以在算子实际运行时托管计算框架中的通信、调度和资源相关的操作。
  44. 根据权利要求35至43中任一项所述的系统,每个依赖包具有对应的版本号,同一功能的依赖包具有至少一个版本。
  45. 根据权利要求35至44中任一项所述的系统,所述指令还被配置为控制所述至少一个计算装置执行如下方法:
    获取用于调试的模拟数据;
    根据所述模拟数据对所述目标算子开发文件进行调试,在调试通过的情况下,将所述目标算子开发文件和所述依赖包调用信息所涉及的依赖包一起进行封装,得到目标算子。
  46. 根据权利要求45所述的系统,所述获取用于调试的模拟数据包括:
    获取用户输入的所述模拟数据格式信息;
    根据所述格式信息获取所述模拟数据。
  47. 根据权利要求46所述的系统,所述根据所述格式信息获取所述模拟数据包括:
    获取用户输入的所述目标算子的应用场景;
    根据所述应用场景获取符合所述格式信息的数据,作为所述模拟数据。
  48. 根据权利要求47所述的系统,所述根据所述应用场景获取符合所述格式信息的数据,作为所述模拟数据包括:
    获取与所述应用场景匹配的历史数据;
    根据所述历史数据确定数据限定条件;
    根据所述数据限定条件生成符合所述格式信息的所述模拟数据。
  49. 根据权利要求47或48所述的系统,所述根据所述应用场景获取符合所述格式信息的数据,作为所述模拟数据包括:
    从预存的数据中选取适用于所述应用场景、且符合所述格式信息的数据,作为所述模拟数据。
  50. 根据权利要求46至49中任一项所述的系统,所述根据所述格式信息获取所述模拟数据包括:
    获取用户输入的用于表示数据内容的数据配置信息;
    根据所述数据配置信息生成所述模拟数据。
  51. 根据权利要求35至50中任一项所述的系统,所述指令还被配置为控制所述至少一个计算装置执行如下方法:
    提供目标算子的前端页面模板;
    获取算子开发用户输入的关于所述目标算子的前端页面模板的配置信息;
    根据所述前端页面模板和前端页面模板的配置信息生成所述目标算子的前端页面,以供算子使用用户通过该前端页面调整或查看所述目标算子的相关参数值。
  52. 一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在被处理器执行时实现如权利要求1至17中任一项所述的方法。
PCT/CN2020/126666 2019-11-06 2020-11-05 辅助算子开发的方法和系统 WO2021088909A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201911077327.8A CN110928529B (zh) 2019-11-06 2019-11-06 辅助算子开发的方法和系统
CN201911077327.8 2019-11-06

Publications (1)

Publication Number Publication Date
WO2021088909A1 true WO2021088909A1 (zh) 2021-05-14

Family

ID=69853359

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/126666 WO2021088909A1 (zh) 2019-11-06 2020-11-05 辅助算子开发的方法和系统

Country Status (2)

Country Link
CN (1) CN110928529B (zh)
WO (1) WO2021088909A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113238765A (zh) * 2021-05-20 2021-08-10 北京百度网讯科技有限公司 小程序的分发方法、装置、设备和存储介质
CN113687818A (zh) * 2021-08-17 2021-11-23 北京市商汤科技开发有限公司 任务执行方法、装置、设备及计算机可读存储介质
CN113721895A (zh) * 2021-11-02 2021-11-30 树根互联股份有限公司 应用建模方法、系统、装置、计算机设备及可读存储介质

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110928529B (zh) * 2019-11-06 2021-10-26 第四范式(北京)技术有限公司 辅助算子开发的方法和系统
CN113537908A (zh) * 2020-04-13 2021-10-22 亚信科技(中国)有限公司 一种针对结算因子的处理方法及装置
CN113535138B (zh) * 2020-04-15 2023-09-29 北京华为数字技术有限公司 软件项目打包方法及相关设备
CN112084391B (zh) * 2020-09-08 2024-02-09 中国平安人寿保险股份有限公司 依赖包信息的获取方法、装置、设备及计算机介质
CN112182199A (zh) * 2020-09-10 2021-01-05 中信银行股份有限公司 一种依赖包推荐方法、装置、电子设备和可读存储介质
CN112099848B (zh) * 2020-09-11 2024-03-05 杭州海康威视数字技术股份有限公司 一种业务处理方法、装置及设备
CN112597011B (zh) * 2020-12-16 2024-04-16 测点大数据(苏州)有限公司 一种基于多语言的算子测试用例生成和优化方法
CN112527281B (zh) * 2020-12-17 2022-03-11 北京百度网讯科技有限公司 基于人工智能的算子升级方法、装置、电子设备及介质
CN112632113B (zh) * 2020-12-31 2022-02-11 北京九章云极科技有限公司 一种算子管理方法和算子管理系统
CN117348848A (zh) * 2022-06-29 2024-01-05 第四范式(北京)技术有限公司 算子开发、处理方法、装置、电子设备、系统及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104866310A (zh) * 2015-05-20 2015-08-26 百度在线网络技术(北京)有限公司 知识数据的处理方法和系统
CN106126643A (zh) * 2016-06-23 2016-11-16 北京百度网讯科技有限公司 流式数据的分布式处理方法和装置
CN107169572A (zh) * 2016-12-23 2017-09-15 福州大学 一种基于Mahout的机器学习服务组装方法
CN109447256A (zh) * 2018-09-12 2019-03-08 上海交通大学 基于FPGA的Tensorflow系统加速的设计方法
CN110928529A (zh) * 2019-11-06 2020-03-27 第四范式(北京)技术有限公司 辅助算子开发的方法和系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0498175A (ja) * 1990-08-16 1992-03-30 Japan Radio Co Ltd Mls受信機のチャネル自動設定方式
CN107944012A (zh) * 2017-12-08 2018-04-20 北京百度网讯科技有限公司 知识数据计算系统、方法、服务器及存储介质
CN107943463B (zh) * 2017-12-15 2018-10-16 清华大学 交互式自动化大数据分析应用开发系统
CN108628605A (zh) * 2018-04-28 2018-10-09 百度在线网络技术(北京)有限公司 流式数据处理方法、装置、服务器和介质
CN108984155B (zh) * 2018-05-17 2021-09-07 创新先进技术有限公司 数据处理流程设定方法和装置
CN109086038B (zh) * 2018-07-10 2022-05-31 千寻位置网络有限公司 基于Spark的大数据开发方法及装置、终端
CN109492749B (zh) * 2018-10-12 2023-04-18 平安科技(深圳)有限公司 在局域网中实现神经网络模型线上服务的方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104866310A (zh) * 2015-05-20 2015-08-26 百度在线网络技术(北京)有限公司 知识数据的处理方法和系统
CN106126643A (zh) * 2016-06-23 2016-11-16 北京百度网讯科技有限公司 流式数据的分布式处理方法和装置
CN107169572A (zh) * 2016-12-23 2017-09-15 福州大学 一种基于Mahout的机器学习服务组装方法
CN109447256A (zh) * 2018-09-12 2019-03-08 上海交通大学 基于FPGA的Tensorflow系统加速的设计方法
CN110928529A (zh) * 2019-11-06 2020-03-27 第四范式(北京)技术有限公司 辅助算子开发的方法和系统

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113238765A (zh) * 2021-05-20 2021-08-10 北京百度网讯科技有限公司 小程序的分发方法、装置、设备和存储介质
CN113238765B (zh) * 2021-05-20 2024-04-02 北京百度网讯科技有限公司 小程序的分发方法、装置、设备和存储介质
CN113687818A (zh) * 2021-08-17 2021-11-23 北京市商汤科技开发有限公司 任务执行方法、装置、设备及计算机可读存储介质
CN113721895A (zh) * 2021-11-02 2021-11-30 树根互联股份有限公司 应用建模方法、系统、装置、计算机设备及可读存储介质
CN113721895B (zh) * 2021-11-02 2022-03-29 树根互联股份有限公司 应用建模方法、系统、装置、计算机设备及可读存储介质

Also Published As

Publication number Publication date
CN110928529A (zh) 2020-03-27
CN110928529B (zh) 2021-10-26

Similar Documents

Publication Publication Date Title
WO2021088909A1 (zh) 辅助算子开发的方法和系统
US10705942B1 (en) Simulated testing of API
US10572360B2 (en) Functional behaviour test system and method
WO2018228211A1 (zh) 应用转换方法、装置及设备
CN109582301B (zh) 基于任务调度系统的业务处理方法、装置、设备及介质
US11392393B2 (en) Application runtime configuration using design time artifacts
US10146672B2 (en) Method and system for automated user interface (UI) testing through model driven techniques
CN110825362A (zh) 低代码应用软件开发系统及方法
US8296721B2 (en) Template-based software development
US7653896B2 (en) Smart UI recording and playback framework
CN109542556B (zh) 一种基于Activiti的流程与表单交互方法及系统
US20180113799A1 (en) Model generation for model-based application testing
US20200133651A1 (en) Release automation service in software development tools
CN110941467A (zh) 数据处理方法、装置及系统
CN106775744B (zh) 一种生成静态库的方法和装置
US20170220324A1 (en) Data communication accelerator system
CA3036812A1 (en) Test case generator built into data-integration workflow editor
US9117020B2 (en) Determining control flow divergence due to variable value difference
US20150143267A1 (en) SYSTEM AND METHOD FOR DEVELOPING A RULE-BASED EVENT-DRIVEN MULTI-LAYERED FRONTEND FOR BUSINESS SERVICES AND RENDERING THE GUIs ON MULTIPLE CLIENT DEVICES
CN112988165A (zh) 基于Kubernetes的交互式建模方法、装置、电子设备及存储介质
KR101747424B1 (ko) 애플리케이션 설계와 구현을 통합하는 객체 지향 프로그래밍 장치, 및 방법
CN115344300A (zh) 分支流水线构建方法、装置、设备及存储介质
CN108287720B (zh) 软件编译方法、装置、设备及存储介质
Kaewkasi Docker for serverless applications: containerize and orchestrate functions using OpenFaas, OpenWhisk, and Fn
US10394529B2 (en) Development platform of mobile native applications

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20885200

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20885200

Country of ref document: EP

Kind code of ref document: A1