CN112202899B - Workflow processing method and device, intelligent workstation and electronic equipment - Google Patents

Workflow processing method and device, intelligent workstation and electronic equipment Download PDF

Info

Publication number
CN112202899B
CN112202899B CN202011069031.4A CN202011069031A CN112202899B CN 112202899 B CN112202899 B CN 112202899B CN 202011069031 A CN202011069031 A CN 202011069031A CN 112202899 B CN112202899 B CN 112202899B
Authority
CN
China
Prior art keywords
node
task
workflow
application
service
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011069031.4A
Other languages
Chinese (zh)
Other versions
CN112202899A (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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202011069031.4A priority Critical patent/CN112202899B/en
Publication of CN112202899A publication Critical patent/CN112202899A/en
Application granted granted Critical
Publication of CN112202899B publication Critical patent/CN112202899B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/103Workflow collaboration or project management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0893Assignment of logical groups to network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Economics (AREA)
  • Data Mining & Analysis (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Stored Programmes (AREA)

Abstract

The application discloses a processing method for a workflow, relates to the technical field of artificial intelligence, and can be used in the fields of machine learning and deep learning, cloud computing and cloud platforms, computer vision, natural language processing, voice interaction and the like. The specific implementation scheme is as follows: acquiring a user-defined business application, wherein in the business application, a plurality of application components and a connection relation between the plurality of application components are defined, and the plurality of application components comprise at least one operator component; pre-generating a corresponding workflow based on business application, wherein each application component in a plurality of application components corresponds to a task node in the workflow, and the connection relation among the plurality of application components corresponds to the data flow direction among the plurality of task nodes in the workflow; performing a target node check for each task node in a workflow, wherein the target node comprises at least one of: an upstream node, a downstream node; and responding to the verification passing of the target node, and saving the workflow.

Description

Workflow processing method and device, intelligent workstation and electronic equipment
Technical Field
The application relates to the technical field of artificial intelligence, can be used in the fields of cloud computing, cloud platforms and the like, and more particularly relates to a processing method and device for workflow, an intelligent workstation, electronic equipment and a storage medium.
Background
With the continuous development of artificial intelligence technology, artificial intelligence services are beginning to permeate various industries. For example, the industries begin to introduce artificial intelligence services in various links, so that the innovation of the artificial intelligence services rapidly presents the trend of fragmentation and scene.
Disclosure of Invention
The application provides a processing method and device for workflow, an intelligent workstation, electronic equipment and a storage medium.
According to a first aspect, there is provided a processing method for a workflow, comprising: acquiring a user-defined business application, wherein in the business application, a plurality of application components and a connection relation between the plurality of application components are defined, and the plurality of application components comprise at least one operator component; pre-generating a corresponding workflow based on the business application, wherein each application component in the plurality of application components corresponds to a task node in the workflow, and the connection relationship among the plurality of application components corresponds to the data flow direction among the plurality of task nodes in the workflow; performing target node verification for each task node in the workflow, wherein the target node comprises at least one of the following items: an upstream node, a downstream node; and responding to the verification passing of the target node, and saving the workflow.
According to a second aspect, there is provided a processing apparatus for a workflow, comprising: an obtaining module, configured to obtain a service application defined by a user, where in the service application, a plurality of application components and a connection relationship between the plurality of application components are defined, and the plurality of application components include at least one operator component; a generating module, configured to pre-generate a corresponding workflow based on the business application, where each of the multiple application components corresponds to a task node in the workflow, and a connection relationship between the multiple application components corresponds to a data flow direction between the multiple task nodes in the workflow; a checking module, configured to perform target node checking, where the target node includes at least one of: an upstream node, a downstream node; and the storage module is used for responding to the verification passing of the target node and storing the workflow.
According to a third aspect, there is provided an intelligent workstation comprising: a component marketplace for providing a plurality of application components; and the user interface is used for customizing various business applications by the user based on the multiple application components provided by the component mart, wherein the business applications can define multiple application components and connection relations among the multiple application components, and the multiple application components comprise at least one operator component.
According to a fourth aspect, there is provided an electronic device comprising: at least one processor; and a memory communicatively coupled to the at least one processor; the memory stores instructions executable by the at least one processor, and the instructions are executed by the at least one processor to enable the at least one processor to perform the method of the embodiment of the present application.
According to a fifth aspect, there is provided a non-transitory computer readable storage medium having computer instructions stored thereon, comprising: the computer instructions are used for causing the computer to execute the method of the embodiment of the application.
According to a sixth aspect, there is provided a computer program product comprising a computer program which, when executed by a processor, performs the above-described method of an embodiment of the application.
According to the technical scheme provided by the embodiment of the application, aiming at a new application scene, a user does not need to perform brand-new development and adaptation from an upper layer to a lower layer, but can share various existing application components provided by an intelligent workstation and quickly define the service application which can be used for the new application scene, so that the working efficiency can be improved, and the reuse rate of each application component (including an AI operator component, for short, an operator component) can be improved; meanwhile, based on the user-defined service application, the workflow can be automatically pre-generated, and the upstream and downstream node check can be carried out on each task node in the workflow, so that the correctness of the workflow can be ensured.
It should be understood that the statements in this section do not necessarily identify key or critical features of the embodiments of the present application, nor do they limit the scope of the present application. Other features of the present application will become apparent from the following description.
Drawings
The drawings are included to provide a better understanding of the present solution and are not intended to limit the present application. Wherein:
FIG. 1A illustrates a system architecture according to an embodiment of the present application;
FIG. 1B illustrates an application scenario according to an embodiment of the present application;
FIG. 1C illustrates a block diagram of an intelligent workstation according to an embodiment of the present application;
FIG. 2A illustrates a flow diagram of a processing method for a workflow according to an embodiment of the application;
FIGS. 2B and 2C are schematic diagrams illustrating a face recognition application and a face recognition workflow according to an embodiment of the application;
fig. 2D illustrates an operational schematic diagram of an AI system according to an embodiment of the present application;
FIG. 3A illustrates a flow chart of a processing method for business applications according to an embodiment of the application;
FIG. 3B illustrates a diagram of merging multiple application instances into one business task according to an embodiment of the application;
FIG. 3C illustrates a schematic diagram of batch processing multiple application instances in accordance with an embodiment of the present application;
FIG. 4 illustrates a flow diagram of a processing method for operator services according to an embodiment of the present application;
FIG. 5A illustrates a flow diagram of a processing method for operator services according to another embodiment of the present application;
FIG. 5B illustrates a schematic diagram of deploying operator services according to an embodiment of the present application;
FIG. 5C illustrates a schematic diagram of generating a service image according to an embodiment of the application;
FIGS. 5D-5F are diagrams illustrating three combinatorial relationships between operations, operator services, and containers according to embodiments of the application;
FIG. 5G illustrates a schematic diagram of a model mixture according to an embodiment of the present application;
FIG. 6A illustrates a flow diagram of a processing method for operator services according to yet another embodiment of the present application;
fig. 6B is a diagram illustrating traffic scheduling according to an embodiment of the present application;
FIG. 7A illustrates a block diagram of a processing device for a workflow according to an embodiment of the application;
FIG. 7B illustrates a block diagram of a processing device for business applications in accordance with an embodiment of the present application;
FIG. 7C illustrates a block diagram of a processing device for operator services according to an embodiment of the present application;
FIG. 7D illustrates a block diagram of a processing apparatus for operator services according to another embodiment of the present application;
FIG. 7E illustrates a block diagram of a processing apparatus for operator services according to yet another embodiment of the present application;
fig. 8 is an electronic device in which methods and apparatus of embodiments of the present application may be implemented.
Detailed Description
The following description of the exemplary embodiments of the present application, taken in conjunction with the accompanying drawings, includes various details of the embodiments of the application for the understanding of the same, which are to be considered exemplary only. Accordingly, those of ordinary skill in the art will recognize that various changes and modifications of the embodiments described herein can be made without departing from the scope and spirit of the present application. Also, descriptions of well-known functions and constructions are omitted in the following description for clarity and conciseness.
In the process of implementing the embodiment of the present application, the inventors found that the following problems exist in the related art: with the beginning of penetration of artificial intelligence services into various industries, when the artificial intelligence services are introduced into various links in various industries, a set of AI business services are independently developed according to actual application scenes of the various links, so that the innovation of the artificial intelligence services rapidly presents the trend of fragmentation and scene.
In view of the above, the embodiment of the present application provides a set of relatively complete AI systems, which can overcome the defects of the related art, such as fragmentation and scenario of innovation of artificial intelligence services.
It should be noted that, in the embodiment of the present application, the AI system may include: an intelligent workstation (AI workstation) is used for processing methods of workflow, business application, operator service, computing resources and the like.
The AI system will be described in detail below with reference to a system architecture, application scenarios suitable for the AI system, and illustrative embodiments for implementing the same.
Fig. 1A illustrates a system architecture according to an embodiment of the application.
As shown in fig. 1A, the system architecture 100A of the AI system includes: an intelligent workstation 110, an application-centric module 120, a task-centric module 130, a data access module 140, a workflow engine 150, a computing resource management module 160, a tenant user management module 170, a log management module 180, and a data sharing module 190.
Briefly, the intelligent workstation 110 includes a component marketplace, a user interface, expansion ports, and the like. The component marketplace is used for providing various types of application components, including but not limited to logic components, operator components, business components, alarm components, statistical components, data sharing components, and the like. The user interface is used for customizing various corresponding business applications for various specific application scenes based on various application components provided by the component mart. The extension port is used for receiving externally input AI model files or operator services, so that the intelligent workstation 110 can enrich and update component marts in the intelligent workstation 110 by an inference service framework and generating corresponding operator components based on the AI model files or operator services received by the extension port.
The application center module 120 is used to manage various business applications defined by the user within the intelligent workstation 110. The application center module 120 supports integration of the service application generated by the intelligent workstation 110 and the data accessed by the data access module 140 into an independent artificial intelligence application definition template; the method supports application version management, application description, application type, default parameter configuration, registration and the like; the method can provide uniform AI application management service and support users to quickly load applications. The data access module 140 accesses data generated by various data sources into the AI system for data input by various application instances. The task center module 130 is configured to process and manage the service application customized by the intelligent workstation 110 and the service application managed by the application center module 120, generate a corresponding workflow instance based on the data source, the service application, and the execution plan associated with each other in each service task, and send the generated workflow instance to the workflow engine 150 for processing. The workflow engine 150 is configured to process each workflow instance and store the processing result into a corresponding database.
The computational resource management module 160 is configured to deploy operator services to provide computational support for the workflow engine 150 to process workflow instances. Multiple resource groups can be partitioned in the algorithm resource management module 160, and different resource groups can be provided for different tenants to use, so as to implement resource isolation among the tenants. The tenant user management module 170 is used to configure and manage resource groups allocated for each tenant and users within each tenant, and for each tenant. Therefore, in the embodiment of the application, the AI operator service can be provided to different business units (different business departments and corresponding to different tenants) in batch by using a set of artificial intelligence platform (AI system), so that the construction cost and the use cost of the AI system of each business unit in an enterprise are reduced.
The log management module 180 is used to manage all logs generated in the AI system.
The data sharing module 190 is configured to share data stored in the database with the outside.
In addition, the system architecture 100A may further include: system statistics module and other modules (not shown in fig. 1A). The system statistics module is used for performing data statistics on the component market, the application center module 120, the task center module 130 and the data access module 140.
Different from the traditional cloud platform which needs respective expansion construction, the cloud platform for the AI system provided by the embodiment of the application can realize sharing and intercommunication of computing resources, operator services and application services, so that intensive development of the computing resources and data resources can be realized.
Fig. 1B illustrates an application scenario according to an embodiment of the present application.
In a vehicle snapshot scene, vehicle types are generally detected first, then attribute extraction and feature extraction are carried out on different vehicle types, and OCR character recognition is carried out on some vehicle types such as four-wheel vehicles; then, it is also necessary to perform picture storage, ABF binning, and attribute/thumbnail push processing, respectively, in sequence. And some vehicle models such as four-wheel vehicles usually need to perform related operations of face recognition after ABF warehousing.
Through the AI system provided by the embodiment of the application, the vehicle snapshot application can be customized through component splicing, and the vehicle snapshot workflow shown in FIG. 1B is generated accordingly. As shown in fig. 1B, the workflow 100B includes: the system comprises start (start) nodes, end (end) nodes, logic nodes such as switch and parallel, vehicle type detection nodes, OCR (optical character recognition) nodes, attribute extracting nodes and feature extracting nodes for a four-wheel vehicle, attribute extracting nodes and feature extracting nodes for a three-wheel vehicle, attribute extracting nodes and feature extracting nodes for a motorcycle, map storage nodes, ABF (abstract fuzzy logic) storage nodes and attribute/small map pushing nodes for the four-wheel vehicle, map storage nodes, ABF storage nodes and attribute/small map pushing nodes for the three-wheel vehicle, map storage nodes, ABF storage nodes and attribute/small map pushing nodes for the motorcycle, and attribute extracting nodes, feature extracting nodes, map storage nodes and ABF storage nodes for face recognition of the four-wheel vehicle.
It should be understood that in the embodiments of the present application, different task nodes in a workflow correspond to different application components in a business application.
According to an embodiment of the present application, an intelligent workstation is provided.
FIG. 1C illustrates a block diagram of an intelligent workstation according to an embodiment of the present application.
As shown in FIG. 1C, the intelligent workstation 110 may include a component marketplace 111 and a user interface 112.
A component marketplace 111 for providing a variety of application components.
And a user interface 112 for a user to customize various business applications based on various application components provided by the component marketplace 111. Wherein a plurality of application components and connection relationships between the plurality of application components may be defined in various business applications. And at least one operator component is included in the plurality of application components defined in the various business applications.
It should be noted that, in the embodiment of the present application, the application components provided by the component marketplace 111 may include, but are not limited to, the following various components: logic components, operator components (AI operator components), business components, alarm components, statistics components, data sharing components, and the like.
Further, each type of component may include at least one component. Illustratively, the above-described logic components may include, but are not limited to, the following various components: sequential components, parallel components, concurrent components, skip components, terminate components, conditional execution components, and the like. Illustratively, the operator components described above may include, but are not limited to, various components: the visual target detection component, the visual target classification component, the visual target feature extraction component, the visual video classification component, the visual pixel segmentation component, the visual optical character recognition component (OCR component), the voice recognition component, the voice synthesis component, and the like. Illustratively, the business components described above may include, but are not limited to, various components: a snapshot deduplication component, a target location deduplication (target location, i.e. location that does not change over a period of time) component, a location relative relationship description (e.g. a description of the location relationship between a and B, including but not limited to the relative distance between a and B, the relative location of a and B (e.g. the description of the relationship of up, down, left, right, inside, outside, etc.) component, etc. Illustratively, the above-mentioned alert component may include, but is not limited to, the following various components: a density alarm component, an over-line alarm component, an attribute alarm component, a flow alarm component, a duration alarm component, a keyword alarm component, etc. Illustratively, the statistical components described above may include, but are not limited to, the following various components: a density statistics component, a flow statistics component, a duration statistics component, and the like. Illustratively, the data sharing components described above may include, but are not limited to, various components: data persistence component, data push component, message queue component, data caching component, and the like.
In the embodiment of the present application, for a specific application scenario, especially a new application scenario, a user may develop little or no code logic, and directly select various existing application components from the component marketplace 110 for splicing, so as to quickly define a set of complete business logic (business application).
Compared with the prior art that the corresponding service logics are required to be customized respectively for different application scenes, and the service logics matched with the current application scenes cannot be quickly defined by utilizing the existing application components, particularly the existing operator components, for the newly-appeared application scenes. In this case, the user (developer) does not need to develop and adapt completely new logic codes from the upper layer to the lower layer, so that the working efficiency can be improved, and the reuse rate of each existing operator component can be improved.
As an alternative embodiment, the intelligent workstation may further include: and the expansion port is used for receiving an AI model file or operator service input from the outside. The intelligent workstation can generate corresponding operator components through an inference service framework and based on an AI model file or operator service input from the outside.
It should be noted that, by the technical scheme provided by the embodiment of the application, a software developer can not participate in community construction (intelligent workstation construction) deeply instead of an orphan military war, and realizes innovation of an artificial intelligence technology together with other software developers. For example, software developers of any business department in each enterprise can input self-written AI model files into the intelligent workstation to register as corresponding operator components.
In one embodiment, the AI model file can be directly input into the intelligent workstation through the expansion port, and then the corresponding operator service is generated at the intelligent workstation through the inference service framework and then registered as the corresponding operator component. In another embodiment, the corresponding operator service may be generated externally based on the AI model file, and then the operator service is directly input into the intelligent workstation through the extension port, so that the corresponding operator component is registered in the intelligent workstation.
It should be noted that, in the embodiment of the present application, the registration information registered when registering the operator component (i.e., registering the operator service) may include, but is not limited to: name, identification, type, version number of operator component, input parameter type, output parameter type and configuration information of operator service, computing power quota (including quota upper limit and lower limit) of operator service, and the like. Wherein the computation power quota of the operator service can be obtained by prediction during registration. In the process of predicting the computation power quota of the operator service, different thread numbers can be opened for the operator service, and then the computation power quota (including but not limited to the number of instances, QPS, CPU duty, GPU duty, etc.) required by each copy of the operator service (different thread numbers opened by different copies) is recorded. Further, the configuration information of the operator service includes an original field configured for the operator service. In this embodiment, the registration information registered when registering the operator component may further include a mapping relationship between each original field and each standard field of the operator component.
In addition, it should be noted that, in the embodiment of the present application, not only the application components in the intelligent workstation may be added, but also the application components may be deleted, modified, and updated. Moreover, the configuration information of the operator service can be modified, so that the embodiment of the application has redefinition capability on the implemented execution logic, namely capability of fine tuning details on the implemented execution logic.
According to the embodiment of the application, a comprehensive and extensible AI platform (AI system) is provided, the platform can receive externally-transmitted AI components and register the externally-transmitted AI components as shared components of the platform, and flexible extension and iteration of AI requirements can be supported in a platform mode, so that continuous and extensible innovation of artificial intelligence technology can be supported. In addition, through the embodiment of the application, the universal execution logic can be registered in the intelligent workstation in the form of components, so that the shared components can be reused as much as possible, and the business application matched with the new application scene can be spliced out through the shared components at the lowest cost and the highest speed aiming at the new application scene.
According to an embodiment of the present application, a processing method for a workflow is provided.
Fig. 2A illustrates a flow chart of a processing method for a workflow according to an embodiment of the application.
As shown in FIG. 2A, the processing method for a workflow 200A may include operations S210-S240.
In operation S210, a service application customized by a user is acquired. In one embodiment, the service application customized by the user through the intelligent workstation can be obtained. In the user-defined business application, a plurality of application components and a connection relation among the plurality of application components are defined, and the plurality of application components can comprise at least one operator component.
In operation S220, a corresponding workflow is pre-generated based on the business application. Wherein each application component in a plurality of application components defined in the business application corresponds to a task node in the workflow, and the connection relationship among the plurality of application components corresponds to the data flow direction among the plurality of task nodes in the workflow.
In operation S230, the target node checks, wherein the target node includes at least one of: an upstream node and a downstream node.
In operation S240, the workflow is saved in response to the target node checking pass.
Illustratively, as shown in fig. 2B, the user-defined face recognition application includes a start component, a face detection component, a switch component, a parallel component 1 and a parallel component 2, an attribute component, a feature component, a parallel component 3 and a parallel component 4, a map storage component, an ABF storage component and an end component; the connection relationship between the components is shown in the figure. Based on the face recognition application shown in fig. 2B, the pre-generated face recognition workflow is shown in fig. 2C, and includes a start node (corresponding to a start component), a face detection node (corresponding to a face detection component), a switch node (corresponding to a switch component), a parallel node 1 (corresponding to a parallel component 1) and a parallel node 2 (corresponding to a parallel component 2), a lifting attribute node (corresponding to a lifting attribute component), a lifting feature node (corresponding to a lifting feature component), a parallel node 3 (corresponding to a parallel component 3) and a parallel node 4 (corresponding to a parallel component 4), a storage map node (corresponding to a storage map component), an ABF storage node (corresponding to an ABF storage component) and an end node (corresponding to an end component); the data flow between the nodes in the workflow is shown by the connecting lines with arrows in the figure.
In the embodiment of the present application, after the workflow is pre-generated, in response to a request for saving the workflow sent by a user, whether the connection relationship between task nodes in the workflow is accurate or not may be checked. Representing the connection relation among all task nodes in the workflow accurately in response to the verification result and then saving the workflow; otherwise, in response to the fact that the connection relation between any one or more task nodes in the workflow is represented to be inaccurate by the verification result, alarming is conducted on the workflow.
In one embodiment, for an upstream node and a downstream node which are connected with each other, whether the connection relationship between the upstream node and the downstream node is accurate or not can be checked according to the data type output by the upstream node and the data type output by the downstream node. In short, for an upstream node and a downstream node which are connected with each other, if the data type output by the upstream node is consistent with the data type output by the downstream node, the connection relation between the upstream node and the downstream node is accurately represented; otherwise, if the data type output by the upstream node is inconsistent with the data type output by the downstream node, the connection relationship between the upstream node and the downstream node is represented inaccurately. The inaccurate connection relation can be checked out, and a developer can be informed of the error through an alarm. Further, modification suggestions can also be given for the places of error.
With continued reference to fig. 2C, as shown in the face recognition workflow of fig. 2C, for a start node in the graph, it may only check whether the data type output by the node is consistent with the data type input by the downstream node, i.e. the switch node. For an end node in the graph, it may only check whether the data type input by the node is consistent with the data type output by its upstream node, i.e. the ABF binning node. For other nodes except the start node and the end node in the graph, it is required to simultaneously check whether the data type input by the node is consistent with the data type output by the upstream node, and whether the data type output by the node is consistent with the data type output by the downstream node.
Compared with the situation that the connection relation between the upstream task node and the downstream task node in the workflow is not accurate due to the fact that the corresponding workflow is directly generated and stored according to the business application, whether the connection relation between the upstream task node and the downstream task node which are connected with each other in the workflow is accurate or not can be automatically checked through the embodiment of the application after the workflow is pre-generated and before the workflow is stored. If the connection relation between all the interconnected upstream and downstream task nodes in the workflow is accurate, the workflow is saved, and the connection relation between the upstream and downstream task nodes in the saved workflow can be ensured to be accurate; otherwise, an alarm is given so that the developer can timely find the deficiency/error of the currently defined business application.
As an alternative embodiment, the method may further include the following operations.
And responding to the failure of the target node verification, and alarming for the workflow.
In the embodiment of the application, after the workflow is pre-generated, in response to a request for saving the workflow sent by a user, whether the connection relationship between task nodes in the workflow is accurate or not can be checked. Representing the connection relation among all task nodes in the workflow accurately in response to the verification result and then saving the workflow; otherwise, in response to the fact that the connection relation between any one or more task nodes in the workflow is represented to be inaccurate by the verification result, alarming is conducted on the workflow.
As an alternative embodiment, the method may further comprise: after saving the workflow, the following operations are performed.
Input data for the saved workflow is obtained.
Based on the obtained input data and the workflow, a corresponding workflow instance is generated.
Based on the workflow instance, a corresponding workflow instance graph is generated.
In the embodiment of the application, after saving the workflow, the user may also configure the corresponding task, including configuring an execution plan of the task, a mapping relationship between the data source and the workflow. Illustratively, for the face detection workflow, the configuration information of the face detection task includes: the mapping relationship between the "execute the face detection task every monday and twelve nights" and the video stream or picture stream collected by the camera specified by the data source "or the video stream or picture stream collected by the camera in the specified area" and the workflow "the face recognition workflow as shown in fig. 2C" is executed. Therefore, in the embodiment of the present application, a data source associated with a current workflow may be obtained from task configuration information, and input data of the workflow may be obtained through a data receiver of the data source. After input data (e.g., a video stream) of a workflow is obtained, the workflow may be instantiated, i.e., a workflow instance is generated, based on the input data, and then a workflow instance diagram, i.e., a workflow instance diagram, is generated.
It should be noted that, in the embodiment of the present application, the data access module may include a plurality of receivers, and different receivers are used for receiving data collected by data collection devices produced by different manufacturers.
Through the embodiment of the application, the writing logic of the AI application is visually displayed by adopting the workflow example graph, so that a developer can be helped to quickly understand the internal functional structure of the AI application.
Further, as an alternative embodiment, the method may further include the following operations.
After the workflow instance is generated, the task center module can send the generated workflow instance to the workflow engine through the distributor.
And the workflow engine distributes the tasks corresponding to the task nodes in the workflow instance distributed by the distributor to the queue through the distributing terminal.
And acquiring and processing the tasks from the queue through at least one execution end.
The execution end stores the execution result of each task in a preset storage (such as a memory), and the distribution end reads the execution result of each task from the preset storage and distributes subsequent tasks to the queue based on the read execution result.
For example, as shown in fig. 2D, the business application can be customized at the intelligent workstation 110 and then sent to the application center module 120. When a business task is executed according to a preset execution plan, the task center module 130 acquires a business application associated with the execution plan from the application center module 120, and simultaneously acquires a data source associated with the execution plan from the data access module 140 (including the receiver 141 to the receiver 14 n), and then generates a workflow instance, and sends the workflow instance to the workflow engine 150 through any one of the distributor 131 to the distributor 13 n. The workflow engine 150 distributes the tasks corresponding to the task nodes in the received workflow instance to the queue 152 through the distribution terminal 151. Then, the execution end 1 and the execution end 2 acquire and process the task from the queue 152 according to their own computing capabilities. The execution end 1 and the execution end 2 store the execution result in the memory 153 after each node task is executed, and then the distribution end 151 reads the execution result of each task from the memory 153 and distributes the subsequent task to the queue based on the read execution result. It should be appreciated that in the workflow instance, tasks corresponding to any child node need to be placed into the distribution end 151 and distributed to the queue 152 after all tasks corresponding to all parent nodes of that child node have been executed.
It should be noted that, in this embodiment of the present application, the execution end 1 and the execution end 2 may be execution ends on different virtual machines, or may also be execution ends on the same virtual machine. In addition, one or more execution terminals may be provided on one virtual machine.
By the embodiment of the application, because all data between the distributing end and the executing end operate on the basis of the memory, the system resource occupation caused by network requests can be reduced.
Further, as an alternative embodiment, the method may further include the following operations.
And controlling the task amount acquired by each execution end in the at least one execution end in unit time.
Through the embodiment of the application, the total number of the tasks pulled by each execution end per second can be limited, the performance of each execution end is ensured, and the overload of each execution end is prevented.
Further, in this embodiment of the application, visually displaying the workflow instance graph may further include visually displaying input parameters and output parameters of all nodes in the operation process. In addition, in the embodiment of the present application, in a complete business application execution process, all components (such as operator components, business components, logic components, other components, and the like) included in the business application may also be configured with uniform parameters, or may also be switched to the latest version of each component to run according to a user request.
Or, as another alternative embodiment, the method may further include the following operations.
And controlling tasks corresponding to a plurality of task nodes meeting the affinity routing in the workflow instance to be processed on the same execution end.
It should be noted that, in the embodiment of the present application, tasks corresponding to a plurality of task nodes with relatively strong task relevance may be used as tasks that satisfy the affinity routing. For example, for a face detection application, the relevance of tasks corresponding to the attribute-extracting node and the feature-extracting node is relatively strong, so that the tasks corresponding to the two nodes can be used as tasks meeting affinity routing, and the two tasks are controlled to be processed on the same execution terminal.
By the embodiment of the application, when the upper-layer AI application scheduling is defined, a part of task nodes in the AI workflow can be selected to be defined as the affinity routing task nodes, so that the execution end can selectively pull the tasks meeting the affinity routing for processing, and the resource occupation can be reduced.
Or, as another alternative embodiment, the method may further include the following operations.
And executing the tasks corresponding to the task nodes in the workflow instance.
And recording the input parameters and/or the output parameters of each task node according to the task execution result.
In the embodiment of the present application, for any workflow instance, the following table (table 1) may be generated for recording input parameters, output parameters, configuration parameters, and the like of each task node in the workflow.
TABLE 1
Figure GDA0003553697460000141
By the embodiment of the application, instance record query and workflow instance detail query of all workflow instances can be supported; the checking, the checking and the like of the execution result of each step of the executed step of the realized business logic in a specific application scene can be supported, and whether the actual realized functional details or effect are consistent with the expectation or not can be effectively checked; unified retrieval and screening of historical execution records of a specific type of AI application can be supported, and problems can be quickly located; the method and the system can realize the unified execution strategy management of fine granularity of AI application so that a user can know the input, the output, the configuration and the like of each task node.
According to an embodiment of the present application, a processing method for a business application is provided.
Fig. 3A illustrates a flowchart of a processing method for business applications according to an embodiment of the present application.
As shown in fig. 3A, the processing method 300A for business applications may include operations S310 to S330.
In operation S310, a predefined plurality of business applications is determined.
In operation S320, at least one business task is generated based on the plurality of business applications, wherein each business task includes a business application having a same execution plan and a plurality of data sources of the plurality of business applications.
In operation S330, a business application included in each business task is subjected to batch control.
In the embodiment of the application, for each business application customized by the intelligent workstation, the mapping relationship among the business application, the data source and the execution plan can be further defined. Multiple application instances that are the same for both the data source and the execution plan may be merged for execution in one business task (i.e., a batch task).
For example, as shown in fig. 3B, in the vehicle detection task 300B, the data sources of three application examples, such as the four-wheel vehicle detection task 310, the three-wheel vehicle detection task 320, and the motorcycle detection task 330, are the same, and all the application examples are vehicle snapshot video streams collected for a certain intersection, and the execution plans of the three application examples are also the same, and all the application examples are vehicle detection performed from ten to twelve night every monday and tuesday, so that the three application examples can be merged into one service task to be executed.
As shown in fig. 3B, the vehicle detection task 300B includes: a start node, an end node, switch and parallel logic nodes, and a vehicle type detection node 301; the four-wheel vehicle detection task 310 comprises an OCR node 311, an attribute extraction node 312, a feature extraction node 313, a graph storage node 314, an ABF storage node 315 and an attribute/small graph pushing node 316 for the four-wheel vehicle; the tricycle detection task 320 comprises an attribute extraction node 321, a feature extraction node 322, a graph storage node 323, an ABF storage node 324 and an attribute/small graph pushing node 325 for a tricycle; the motorcycle detection task 330 includes an attribute extracting node 331 and a feature extracting node 332 for a motorcycle, a graph storing node 333, an ABF warehousing node 334 and an attribute/small graph pushing node 335.
In one embodiment, the task center module may quickly establish a mapping relationship between each business application and the corresponding data source and execution plan according to the user-defined task configuration information, merge multiple application instances (multiple application instances) with the same data source and execution plan into one business task (i.e., a batch task), and then uniformly open, close and configure all application instances in the batch task in a batch mode. In addition, in the embodiment of the application, the on and off states of the application instances are managed according to the minimum granularity of each equipment unit are supported in the batch task; while supporting independent management of specific application instances in a batch task.
It should be appreciated that conventional AI systems, such as AI vision systems, can only individually tailor a set of dedicated AI execution logic (AI business applications) to a particular scene. Moreover, the conventional AI system can only match one set of AI execution logic for data input from the same device (i.e., data source), and cannot flexibly switch to different AI execution logics. Therefore, for the traditional AI system, batch start, stop and configuration operations can be executed only on one AI application instance in one service task, and the batch start, stop and configuration operations are not simultaneously executed by combining multiple application instances in one application scene in one service task.
Different from the traditional AI system, in the embodiment of the present application, the AI system can provide a plurality of implemented application components, and an external developer can also share the operator components developed by the external developer in the AI system, so that for a new application scenario, corresponding application components can be selected from the AI system to be flexibly spliced, thereby completing a set of execution logic (service application) by self-definition. Moreover, the AI system can perform business application consolidation, i.e., multiple application instances with the same data source and execution plan can be consolidated into one business task. Therefore, the AI system can flexibly match data input from the same equipment (namely a data source) to different AI execution logics, and supports the combination of multiple application instances in one application scene in one service task to simultaneously execute batch start, stop and configuration operations.
As an alternative embodiment, the method may further comprise: and under the condition that at least two business applications exist in the plurality of business applications and the same operator service needs to be called at the bottom layer, controlling the at least two business applications to multiplex the operator service.
Illustratively, as shown in fig. 3B, the quadricycle detection task 310 includes an attribute extraction node 312, a feature extraction node 313, a graph storage node 314, an ABF warehousing node 315, and an attribute/thumbnail pushing node 316; the tricycle detection task 320 comprises an attribute lifting node 321, a feature lifting node 322, a graph storage node 323, an ABF warehousing node 324 and an attribute/thumbnail pushing node 325 for a tricycle; the motorcycle detection task 330 includes a pull attribute node 331 and a pull feature node 332 for a motorcycle, a graph store node 333, an ABF put in node 334, and an attribute/thumbnail push node 335 for a motorcycle. Therefore, the detection tasks of the four-wheel vehicle, the three-wheel vehicle and the motorcycle can multiplex operator services such as attribute extraction, feature extraction, image storage, ABF (abstract binary filter function) storage and attribute/small image push at the bottom layer.
It should be understood that, in a conventional AI system (e.g., an AI vision system), since different AI execution logics (AI service applications) are specifically and individually made for a specific scenario, even if the same AI execution logic is referred to by an upper layer, the operator service cannot be multiplexed at a lower layer through a policy, which results in performance loss.
Unlike the conventional AI system, in the embodiment of the present application, the AI system supports multiple service applications to multiplex operator services at the bottom layer, so that the expenditure of computational resources can be saved, and the performance of the computational resources (including software resources, such as response times) can be improved.
Further, as an optional embodiment, the controlling the at least two service application multiplexing operator services may include: and controlling the same service mirror image of the at least two service application multiplexing operator services.
Since multiple service images can be registered under the same operator service, in one embodiment, in the case that multiple business applications multiplex the same operator service at the bottom layer, the multiple business applications can be controlled to multiplex different service images or the same service image of the same operator service at the bottom layer.
According to the embodiment of the application, when the operator service is multiplexed at the bottom layer, compared with the same service mirror image multiplexing the same operator service and different service mirror images multiplexing the same operator service, the expenditure of hardware computing resources can be saved, and the performance of the computing resources is improved.
Further, as an alternative embodiment, controlling the same service image of the at least two service application multiplexing operator services may include: and controlling the service mirror to execute once and return an execution result to each of the at least two business applications under the condition that the input data of the service mirror is the same for each of the at least two business applications.
Illustratively, business application 1 and business application 2 can multiplex operator service a at the bottom layer, and the operator service a is registered with service image a 1 To service mirror a n Then controlling business application 1 and business application 2 to preferentially multiplex the same service image of operator service a (e.g., service image a) 1 ). Service image a of operator service a multiplexed between business application 1 and business application 2 1 If the business application 1 calls and executes the service image a first 1 Service image a is called after business application 2 1 And the service application 1 calls the service image a 1 Temporal input parameter and business application 2 call service image a 1 If the input parameters are the same and are all "xxx", service image a can be called only in service application 1 1 Simultaneous execution of service images a 1 Calling the service image a at the service application 2 1 Service image a is no longer executed 1 But directly calls the business application 1 to the service image a 1 The execution result of the time is returned to the service application 2. Furthermore, if the business application 1 and the business application 2 call the service image a simultaneously 1 And the business application 1 and the business application 2 call the service image a 1 The input parameters are the same and are all "xxx", in this case, only the service image a can be processed 1 And executing the algorithm logic once, and simultaneously returning an execution result to the business application 1 and the business application 2.
According to the embodiment of the application, under the condition that a plurality of business applications multiplex the same service mirror image of the same operator service and the input parameters of the business applications calling the service mirror image are the same, algorithm logic can be executed on the service mirror image only once, and the execution result of the service mirror image can be directly shared.
Or, as an optional embodiment, the method may further include: and for each business task, combining at least two same business applications in the current business task under the condition that the current business task has at least two same business applications for different business parties.
It should be understood that, in the embodiment of the present application, the same service application may be a service application in which the service logic, the input parameter, the output parameter, and the configuration parameter are all the same.
Specifically, in the embodiment of the present application, task merging may be performed on AI application instances created by multiple users, that is, if multiple users enable execution tasks of the same AI service application on the same device or the same area at the same time, the execution tasks may be merged into the same task under multiple user names.
Illustratively, if the execution plan and data source of user 1 created application instance 1 and user 2 created application instance 2 are the same, application instance 1 and application instance 2 may be merged into one task, such as task 1. If the input parameters, the output parameters and the configuration parameters of the application example 1 and the application example 2 are the same, the application example 1 and the application example 2 can be combined into one application example, application example 0 in task 1, except that the application example 0 needs to be hung under the names of the user 1 and the user 2 at the same time.
It should be appreciated that when multiple users repeatedly create the same application instance on the same device, the application instances may repeatedly occupy resources if the application instances are merged.
By the embodiment of the application, the application merging is carried out aiming at the same application example created by different users, so that not only can the whole service task be simplified, but also the situation that the same application example occupies resources repeatedly to cause resource shortage and waste can be avoided.
Further, as an optional embodiment, the merging at least two identical service applications in the current service task may include: and controlling at least two same service applications to share the same application instance at the bottom layer.
According to the embodiment of the application, the application merging is carried out aiming at the same application example created by different users, if the same application example (workflow example) is shared at the bottom layer, not only can the whole service task be simplified at the upper layer, but also the situation that the same application example occupies resources repeatedly at the bottom layer to cause resource shortage and waste can be avoided.
Further, as an alternative embodiment, controlling at least two identical service applications to share the same application instance at the bottom layer may include the following operations.
The execution result of the application instance for one of the at least two identical business applications is obtained.
And sending the obtained execution result to all service parties associated with at least two same service applications.
For example, after the application instance 1 of the user 1 and the application instance 2 of the user 2 are merged into the application instance 0, no matter whether the application instance 1 calls the workflow instance 0 first, the application instance 2 calls the workflow instance 0 first, or the application instance 1 and the application instance 2 call the workflow instance 0 simultaneously, the workflow instance 0 can be executed only once, and the execution result is returned to the user 1 and the user 2 simultaneously.
By the embodiment of the application, after application instances of a plurality of users are combined, the workflow instance 0 is executed only once, so that the plurality of users share execution results, the expenditure of computing resources can be saved, the performance (such as hardware resources) of the computing resources can be improved, and the working efficiency can be improved.
It should be understood that, for the conventional AI system, the configuration of a set of service applications is usually fixed and dead, and thus the configuration cannot be flexibly adjusted, resulting in a very limited application scenario.
In the embodiment of the application, the user can customize the service application by using the application definition template. For the defined service application, the user can also fine-tune the service application on two levels. For example, at the application level, AI operator components referenced in the business application can be adjusted. For example, at the component level, the configuration parameters (such as various thresholds) of the AI operator components referenced in the business application may be further adjusted. Therefore, the AI system provided by the embodiment of the application is more flexible in application and wider in application scene.
For example, for the AI vision system, if a plurality of AI vision applications share a data source (e.g., a picture stream) and detect a plurality of areas existing in the picture stream, for example, one AI vision application is used for performing vehicle density statistics on an a area in the picture, and another AI vision application is used for performing pedestrian density statistics on a B area in the picture, relevant configuration parameters of the two AI vision applications, such as a vehicle density threshold and a pedestrian density threshold, may be configured differently.
By the embodiment of the application, different detection areas in the picture flow are subjected to area-level differential configuration of configuration parameters of related components in different AI visual applications, and different application scenes can be adapted.
In this embodiment of the application, as shown in fig. 3C, the task center module may obtain a plurality of defined service applications from the application center module, and obtain input data of each service application from the receiver a, the receiver B, and the receiver C. In addition, the task center module comprises an execution node management module used for managing the execution nodes; an application definition management module, which is used for defining the application (such as an operator module in the adjustment application); and the service management module is used for managing the service.
According to an embodiment of the present application, a processing method for operator services is provided.
FIG. 4 is a flow chart illustrating a processing method for operator services according to an embodiment of the present application.
As shown in FIG. 4, the processing method 400 for operator services may include operations S410-S440.
In operation S410, at least one original field configured for the target operator service is determined, wherein each original field is used for describing one feature attribute of the processing object of the target operator service.
In operation S420, the operator category to which the target operator service belongs is determined.
In operation S430, a mapping relationship between the at least one original field and the at least one standard field is obtained based on the determined operator category.
In operation S440, feature attribute information of the feature attribute described by each original field is converted into feature attribute information described by the corresponding standard field based on the obtained mapping relationship.
It should be appreciated that for larger volumes of AI system builders, there are often instances where the AI system is built in batches, in divisions. In a typical field such as transportation and emergency management, after a multi-period project is built, a situation that multiple versions (provided by multiple manufacturers) coexist in the same type of AI operator service usually occurs in an AI system. For example, a special application exists in an AI system, that is, a video capture application for a specific object, and the number of feature fields and the described content of AI operator service definitions provided by different vendors for the application may be different, so that descriptions of the same feature by parameters output by different AI operator services may be inconsistent with each other, which is not favorable for uniform management. For the construction side or the management side, it is naturally desirable to uniformly manage the operator services provided by the manufacturers, so as to reduce the inconvenience in application management and daily application caused by different operator definitions.
In view of the above problems, the processing method for operator services provided in the embodiment of the present application may pre-establish mapping relationships between all original fields defined in various operator services and all standard fields defined in the AI system. Then, for each operator service, according to the operator category to which the operator service belongs, mapping relations between all original fields of the operator service and corresponding standard fields are determined. Finally, according to the mapping relation, the characteristic attribute information of the characteristic attribute described by each original field in the output parameters of the operator service is converted into the characteristic attribute information described by the corresponding standard field.
For example, for the face recognition application, assuming that original fields used by the operator service provided by the vendor a to describe the gender of the male and female are "male" and "female", respectively, original fields used by the operator service provided by the vendor B to describe the gender of the male and female are "1" and "2", respectively, and standard fields defined in the AI system to describe the gender of the male and female are "0" and "1", respectively, then for the face recognition application, the mapping relationship between the original fields defined by the vendor a and the vendor B to describe the gender of the male and female and the standard fields defined in the AI system to describe the gender of the male and female is shown in the following table (table 2).
TABLE 2
Manufacturer(s) Man (Standard mapping) Woman (Standard mapping)
Manufacturer A “male”→“0” “female”→“1”
Manufacturer B “1”→“0” “2”→“1”
It should be noted that, in the embodiment of the present application, the operator category to which the operator service/AI model belongs and the original field defined by the manufacturer may be registered when the operator service is registered, and meanwhile, the mapping relationship between the original field of the operator service and the corresponding standard field may also be recorded.
Even for the same class of operator services in the related art, because fields defined by different vendors for describing the same feature attribute may be different, the description of the same feature attribute by the fields defined by different vendors may be more or less different, which is not favorable for uniform management of information.
Different from the related technologies, in the embodiment of the present application, for each type of operator service, a set of standard fields is defined, and a mapping relationship between an original field of each manufacturer and the standard field is defined, so as to uniformly describe the same feature attribute.
As an alternative embodiment, the method may further comprise: and storing the converted characteristic attribute information into a target database. Wherein the target database may be obtained by the following operations.
Each criterion field is determined, wherein each criterion field is used for describing a characteristic attribute of a processing object belonging to an operator service of the above-mentioned operator category.
And acquiring a database template.
And configuring the database template based on each standard field to obtain a target database.
In the embodiment of the application, a set of standard fields is defined for each type of operator service, and a mapping relation between an original field of each manufacturer and the standard field is defined, so that parameters of different formats output by calling operator services of the same type can be converted into parameters of a standard format for unified storage based on the mapping relation.
In one embodiment, for each type of operator service, all feature attribute dimensions that need to be described when an object is processed by using the type of operator service may be determined, then all standard fields for describing all feature attribute dimensions are obtained, and finally configuration items corresponding to all standard fields are configured in a predefined general database template, so that a database for storing standard output parameters (obtained by converting the original output parameters through a mapping relationship between the original fields and the standard fields) of the type of operator service may be obtained. It should be understood that the configuration items described above include configuration items for the structural and field definitions of a database table.
By the embodiment of the application, the database matched with the standard output parameter format can be rapidly configured for different types of operator services, so that the standard output parameters of the operator services of the same type can be uniformly stored.
Further, as an optional embodiment, the method may further include: and generating an index field of the target database.
It should be noted that the AI system provided in the embodiment of the present application may include a large number and a large variety of operator services, and the AI system may further provide an extension port for the operator services to the outside. And thus more operators need to be managed. And a large number of AI applications can be quickly customized by the AI system. In the face of many AI applications, there are naturally many data that need to be stored, and naturally many databases in number and variety. And thus more databases need to be managed.
Therefore, in the embodiment of the present application, different index fields may also be generated for different databases, so as to facilitate management of the databases.
Further, as an alternative embodiment, the index field of the target database is generated based on the high-frequency search term currently used for the target database.
In one embodiment, the user may manually configure the index fields of the various databases. In another embodiment, the system may automatically generate the index fields for each database based on high frequency search terms used by the user to search each database.
It should be understood that, since the databases to be managed by the AI system in the embodiment of the present application may be many, naming duplication may occur when the index field is manually configured, and further, database management may be confusing. When the index fields of the database are automatically configured, the search habits of users can be deeply learned so that most of the users can quickly retrieve the corresponding database, and whether repeated naming occurs can be automatically checked, so that the condition that database management is disordered can be avoided as much as possible.
Or, as an alternative embodiment, the method may further include at least one of the following operations.
Operation 1, configure all standard fields for configuring the target database as search items for the information stored in the target database, respectively.
And 2, configuring at least one standard field with the current searching frequency higher than the preset value in all the standard fields as a retrieval item aiming at the information stored in the target database.
Operation 3, configure the specified at least one of all the criteria fields as a search term for the information stored in the target database.
In one embodiment, the user may manually perform operations 1 to 3, and configure a corresponding search term for each database. In another embodiment, the system may also automatically perform operations 1 to 3 to configure corresponding search terms for each database.
It should be understood that the method for configuring the search term in operation 2 is similar to the method for configuring the index field in the above embodiment, and thus, duplicate naming may occur when the search term is configured manually, which may result in inaccurate search results. When the retrieval items are automatically configured, the search habits of the users can be deeply learned so that most users can quickly retrieve corresponding information, and whether the naming is repeated can be automatically checked, so that the accuracy of the retrieval result can be improved as much as possible.
By the embodiment of the application, the output parameters of the operator services of the same type can be uniformly stored in the standard field and can be uniformly retrieved.
Or, as an optional embodiment, the method may further include: in response to receiving an external acquisition request for the feature attribute information stored in the target database, the requested feature attribute information is converted into feature attribute information described by an external universal standard field and then output.
It should be understood that the AI system provided by the embodiment of the present application may provide a data sharing service in addition to the sharing services of the AI operator service, the AI application, the AI workflow, and the like. And providing a data sharing service to the outside based on data stored using the internal universal standard field may cause reading and understanding difficulties for external users.
Therefore, in the embodiment of the present application, when providing the data sharing service, the data format may be converted again based on the external universal standard field, so as to provide shared data with stronger readability and understandability to the outside.
It should be noted that, in the embodiment of the present application, a method for performing data format conversion based on the external universal standard field is similar to a method for performing data format conversion based on the internal universal standard field, and details are not repeated here.
Alternatively, as an alternative embodiment, the method may further include the following operations.
A data life cycle (data elimination cycle) is generated for the target database.
And based on the data life cycle, eliminating the historical data stored in the target database.
In one embodiment, for an application scenario with a slow data growth rate, the data lifetime may be set for the database according to actual needs. Within each data lifecycle, the database may automatically purge data whose creation time falls within the last data lifecycle.
By the embodiment of the application, a user can define the data life cycle of the database, and the database can automatically clear part of historical data stored in the database according to the data life cycle, so that the data storage capacity in the database can be reduced, and the retrieval speed of the database can be improved.
Or, as an optional embodiment, the method may further include: and performing database-based and table-based processing on the target database in response to the data volume of the information stored in the target database reaching a preset value (data volume upper limit value).
In one embodiment, for an application scenario with a fast data growth rate, if the database is also managed according to the data life cycle, data that is still valuable to use may be lost. Therefore, in this application scenario, a data volume upper limit value (preset value) may be set for the database according to actual needs. And under the condition that the actual data volume reaches the upper limit value of the data volume, creating a sub database and a sub database table aiming at the current database. Wherein the data structures of the score database and the score database table are the same as the data structure of the current database.
According to the embodiment of the application, a user can customize the upper limit value of the data volume of the database, and the database can automatically configure the corresponding sub-database and sub-table logic according to the upper limit value of the data volume, so that the data storage volume in a single database or a database table can be reduced, the retrieval speed of the database can be further improved, and meanwhile, the loss of data with use value at present can be avoided.
In one embodiment, the data growth trend of each database can be predicted, and then a reasonable database management mode can be selected according to the actual prediction result.
Or, as an optional embodiment, the method may further include: before storing the converted feature attribute information in the target database, checking whether a field matching the converted feature attribute information exists in the target database.
In one embodiment, in response to the verification result characterizing that a field matching the converted feature attribute information exists in the target database, storing the converted feature attribute information in a corresponding field in the target database; and otherwise, responding to the fact that the field matched with the converted characteristic attribute information does not exist in the verification result representation target database, and giving an alarm.
According to the embodiment of the application, a dynamic database insertion interface is provided, data insertion conforming to the definition of the database field is supported, and for example, accurate recording of newly added snapshot data can be completed by an upper-layer AI workflow.
In addition, in another embodiment, in response to the verification result indicating that no field matching the converted feature attribute information exists in the target database, in addition to the alarm, it may be checked whether the converted feature attribute information is the feature attribute information described by the addition criterion field. And responding to the characteristic attribute information which is described by the newly added standard field and represents the converted characteristic attribute information of the verification result, and expanding the field of the database.
According to an embodiment of the present application, another processing method for operator services is provided.
FIG. 5A illustrates a flow diagram of a processing method for operator services according to another embodiment of the present application.
As shown in FIG. 5A, the processing method 500A for operator services may include operations S510-S530.
In operation S510, N types of computational resources for deploying operator services are determined. Wherein in each of the N classes of computational power resources, at least one container is set for an operator service.
In operation S520, N service images generated based on operator services are acquired.
In operation S530, the N service images are respectively deployed into containers set for the operator services in the N types of computing resources.
In the process of implementing the embodiment of the present application, the inventors found that: in the traditional artificial intelligence technology, each link is seriously cracked. If an independent system (model training system) is needed for training the AI model, the AI model is output and then needs to be sent to another system (mirror image publishing system) to generate a mirror image file for publishing, and finally sent to a production system for mirror image deployment and actual prediction. Therefore, the training system and the prediction system of the AI model cannot be smoothly interfaced. In addition, in the conventional artificial intelligence technology, all images included in a set of AI applications are deployed on a single hardware device, and the deployment scenario of the applications is solidified and determined before the AI applications are implemented. Therefore, heterogeneous resource scheduling cannot be realized when the AI application is run, resulting in poor heterogeneous computational resource efficiency, high unit computational cost and serious resource waste. For example, a certain enterprise has 2.7w GPUs inside, but the overall utilization rate is only 13.42%.
In addition, in the process of implementing the embodiment of the present application, the inventors found that:
(1) From the perspective of computational power evolution, currently, the computational power of an artificial intelligence system can be turned over every 6 months basically, and each AI chip manufacturer continuously pushes out a new computing platform every year. On one hand, the computing platforms reduce the use cost of artificial intelligence, and on the other hand, the old computing platform and the newly-introduced computing platform are mixed in the artificial intelligence cloud platform of the user, so that the management difficulty of the artificial intelligence cloud platform is increased.
(2) From the aspect of the construction cost of the AI system, at present, the artificial intelligence cloud platform cannot realize the sharing and intercommunication of computing resources, operator services and application services, and the cost for constructing and using the AI system among enterprises and among all departments (business units) inside the enterprises is increased.
Therefore, the embodiment of the application provides a set of artificial intelligence scheme, so that the difference among different computing platforms can be effectively removed while the computing power is rapidly increased, the sharing and intercommunication of computing power resources, operator services and application services are realized, and the construction and use cost is reduced.
In the embodiment of the application, a plurality of service images registered under the same operator service can be deployed in containers of a plurality of computing resources at the same time, so that the operator service can be used as a uniform request interface when executing application logic, and the service images deployed in different types of computing resources are called to realize the non-differential scheduling of heterogeneous resources.
Illustratively, as shown in fig. 5B, the artificial intelligence cloud platform 500B includes: computing resources 510, 520, 530, and 540, and these are different categories of computing resources provided by different vendors. For each operator service such as operator service a registered in the AI system, container 511, container 521, container 531, and container 541 may be sequentially set in calculation resource 510, calculation resource 520, calculation resource 530, and calculation resource 540, while generating service image a based on operator service a 1 Service mirror image A 2 Service mirror image A 3 And service image A 4 And are combinedMirroring a service 1 Service mirror image A 2 Service mirror image A 3 And service image A 4 Are correspondingly arranged in a container 511, a container 521, a container 531 and a container 541 in sequence.
Compared with the prior art that operator services of the same application are fixedly deployed on a single hardware device, operator services cannot be shared in heterogeneous resources, and therefore heterogeneous scheduling of the operator services cannot be achieved, the method and the device for scheduling the operator services can generate a plurality of service images based on one operator service, and deploy different service images in different types of computing resources, so that operator services can be shared in the heterogeneous resources, and further heterogeneous scheduling of the operator services can be achieved.
As an alternative embodiment, the method may further include the following operations.
And predicting the resource quotas required by the operator service operation.
And setting at least one container for the operator service in each type of computational force resource in the N types of computational force resources based on the predicted resource quota.
With continued reference to fig. 5B, in the embodiment of the present application, when the operator service a is registered, the computation power quota required for running the operator service a may be predicted, and the configuration parameters (e.g., upper limit and lower limit values of QPS, CPU ratios, GPU ratios, and the like) of the container 511, the container 521, the container 531, and the container 541 are set according to the computation power quota.
In the embodiment of the application, the resource quota required by each operator service is predicted, and each operator service is deployed on the basis of the resource quota, so that the computing resource sharing can be realized, and the resource efficiency can be improved.
Further, as an optional embodiment, setting at least one container for the operator service in each of the N classes of computational resources based on the predicted resource quota, includes: for each type of computational resource, the following operations are performed.
The predicted resource quota (abstract computing power quota) is converted to a resource quota that matches the computing power resources of the current class.
Based on the converted resource quotas, at least one container is set for the operator service in the computing resources of the current category.
It should be noted that, because the metering modes of different computing resources are different, in the embodiment of the present application, a unified abstract computing resource metering mode is used to predict a computing resource quota, and then the calculation is performed, so that unified management on multiple computing resources can be achieved.
With continued reference to fig. 5B, in this embodiment of the application, when the operator service a is registered, an abstract computation power quota required for operating the operator service a may be predicted, then, through equivalent conversion, the abstract computation power quota is converted into an actual computation power quota which is concrete to various computation power resources, and then, configuration parameters (such as upper limit values and lower limit values of QPS, CPU occupation ratio, GPU occupation ratio, and the like) of the container 511, the container 521, the container 531, and the container 541 are set according to each actual computation power quota.
According to the embodiment of the application, a set of artificial intelligence computing platforms are used, so that the calculation power can be rapidly increased, and meanwhile, the difference among different computing platforms can be effectively removed, for example, the difference of calculation power resources of different types in metering is eliminated through an abstract calculation power quota, and the like, so that the transparent and unified management of the calculation power resources among heterogeneous computing platforms is realized. In addition, in the embodiment of the application, by predicting the resource quota required by each operator service and deploying each operator service based on the resource quota, not only can the sharing of computing resources be realized, but also the resource efficiency can be improved.
It should be noted that, in the embodiment of the present application, a set of operator management services may be used to quickly access various AI operator services, including vision, voice, semantics, knowledge graph, and the like. And (3) completing the computing power evaluation of the operator in the registration process of the operator service, and generating and registering the computing power quota of the operator service according to the computing power evaluation result to realize the uniform abstract definition of the cross-platform operator.
Or, as an optional embodiment, the method may further include: in response to the load of any one of the containers set for the operator service exceeding a preset value (e.g., an upper limit value of the number of instances, QPS, CPU duty, GPU duty, or the like), capacity expansion processing is performed on the container whose load exceeds the preset value.
Continuing with reference to FIG. 5B, service image A of operator service A 1 Service mirror image A 2 Service image A 3 And service image A 4 After the containers 511, 521, 531 and 541 are correspondingly deployed in sequence, the parameters of the container 511 may be reconfigured, for example, the upper limit value of the number of instances of the container 511 is increased, in response to the number of instances of the operator service a in the container 511 exceeding the upper limit value of the number of instances of the container 511.
It should be understood that, in the embodiment of the present application, the capacity expansion processing on the overloaded container further includes, but is not limited to, modifying the upper limit values of the QPS, the CPU ratio, the GPU ratio, and the like of the container.
In the embodiment of the application, the service requirement of the high-frequency computing power service can be met through dynamic capacity expansion processing.
Or, as an alternative embodiment, the method may further include the following operations.
And responding to the newly added M types of computing power resources, and acquiring M service images newly generated based on operator services, wherein at least one container is arranged in each type of computing power resource in the M types of computing power resources aiming at the operator services.
And respectively deploying the M service images into containers in the M types of computational resources.
It should be understood that the method for deploying the M service images of the operator service in the newly added M-class computational power resource is similar to the method for deploying the N service images of the operator service in the newly added N-class computational power resource, and details of the embodiment of the present application are not described herein again.
By the embodiment of the application, cross-platform scheduling of existing multi-element computing power resources in the artificial intelligent cloud platform is supported, and besides, a computing power resource expansion interface can be provided, so that other heterogeneous computing power resources can be expanded in the cloud platform.
Or, as an optional embodiment, the method may further include: in response to receiving a request for operator services, computing resources for responding to the request are scheduled based on a computing load balancing situation between the N classes of computing resources.
In the embodiment of the application, a heterogeneous platform traffic distribution strategy and a platform internal traffic distribution strategy can be preset. In response to receiving at least one request of any operator service, the request can be distributed to a corresponding computational resource (computing platform) according to the heterogeneous platform traffic distribution strategy, and then the request distributed to the computational resource (computing platform) is further distributed to a corresponding node inside the platform according to the platform internal traffic distribution strategy.
By adopting the embodiment of the application, reasonable dynamic traffic scheduling strategies (such as a heterogeneous platform traffic distribution strategy and a platform internal traffic distribution strategy) are adopted, so that the resource efficiency can be improved, and the performance of each heterogeneous computational power platform can be improved.
Or, as an optional embodiment, the method may further include: before acquiring the N service images generated based on the operator service, the following operations are performed.
At least one AI model file is obtained.
And generating an operator service comprising at least one sub-operator service based on the at least one AI model file.
And generating N service images based on the operator services.
In one embodiment, the inference service platform may generate an operator service based on an AI model file, and then generate service images of the operator service. In another embodiment, the inference service platform may generate a plurality of small sub-operator services based on a plurality of AI model files, respectively, then assemble the plurality of small sub-operator services into one large operator service, and then generate a plurality of service images of the operator service.
It should be noted that the inference service platform (inference service framework) can directly interface with the model warehouse to read the AI model file from the model warehouse. In addition, the model warehouse can support the operations of adding, deleting, modifying and checking aiming at the AI model file. In addition, each AI model can include at least one model version, and thus the model repository can also support multi-version management control of AI models. In addition, different AI model files may be provided (shared) by different vendors, and AI model files produced by different vendors may have different model formats. Therefore, the reasoning service platform can also provide an AI model conversion function so as to convert the AI model into a model format supported by the reasoning service platform.
It should be understood that, in the embodiment of the present application, the AI models that the AI system can register include, but are not limited to: machine learning model, deep learning model produced by various training frames. Also, the AI models described above may include, but are not limited to, images, videos, NLPs, advertisement recommendations, and the like.
According to the embodiment of the application, the full-process management from an AI model, operator service and service mirror image is supported, and the method can be communicated with a training platform in the process, so that the effect experience of resource application and deployment process is ensured.
In addition, according to the embodiment of the application, the AI model can be registered, the independent deployment of the AI model is realized, and a plurality of AI models can be combined and then mixed deployed, so that flexible and various deployment modes are provided.
Further, as an alternative embodiment, generating N service images based on operator services may include the following operations.
At least one pre-processing component (pre-processing component) and at least one post-processing component matched with the operator service are obtained.
Generating N service images based on the operator services, the at least one pre-processing component and the at least one post-processing component.
It should be noted that, in the embodiment of the present application, the inference service framework may provide a pre-processing component library and a post-processing component library, and a user may autonomously select a corresponding pre-processing component and a corresponding post-processing component as needed.
In one embodiment, inference logic provided by an inference service framework may be used to generate individual service images of an operator service. In another embodiment, the inference service framework may also receive user-uploaded inference codes, and thus may also generate service images of operator services using the user-uploaded inference codes.
Illustratively, as shown in fig. 5C, model-a (model a) and pre-processor-0 (preprocessing component 0), pre-processor-1 (preprocessing component 1), pre-processor-2 (preprocessing component 2), post-processor-0 (post-processing component 0), post-processor-1 (post-processing component 1) are combined together to generate one service image a of model-a, and further adding different tags to the service image a can generate a plurality of service images, such as service image A1, service image A2, service image A3. Wherein model-A (model A) represents operator service A; pre-processor-0 (preprocessing component 0), pre-processor-1 (preprocessing component 1), pre-processor-2 (preprocessing component 2) represent the preprocessing components of operator service A; post-processor-0, post-processor-1 represent the post-processing components of operator service A. It should be noted that, the service image may be matched to a computing resource for deploying the service image through tag information carried by the service image.
Further, as an optional embodiment, each service image in the N service images may include: a first image generated based on the operator service, wherein the first image comprises at least one first sub-image; a second image generated based on the at least one preprocessing component, wherein the first image comprises at least one second sub-image; and a third image generated based on the at least one post-processing component, wherein the first image includes at least one third sub-image.
Therefore, deploying the N service images into containers set for the operator services in the N types of computing resources respectively may include: any one of operations 4 through 6 is performed for each type of computational resource.
And operation 4, respectively deploying the corresponding first mirror image, second mirror image and third mirror image in different containers set for the operator service.
Operation 5, at least two of the corresponding first mirror, second mirror and third mirror are deployed in the same container set for operator services.
And operation 6, deploying each of the corresponding at least one first sub-image, at least one second sub-image and at least one third sub-image in different containers set for the operator service respectively.
In one embodiment, the inference service framework can construct an independent service with an operator service. In another embodiment, the inference service framework can also build a combinatorial service (DAG service) with multiple operator services. It should be noted that, in the embodiment of the present application, the inference service framework may generate an operator service based on an AI model submitted through an AI system. Or the AI system can also receive operator services which are directly submitted by users and meet the system standards. In the embodiment of the present application, the operator service and the AI model may be in a one-to-one relationship or a one-to-many relationship, that is, a plurality of AI models are supported to form one operator service DAG.
In the embodiment of the application, besides that a plurality of AI models can be used for forming a DAG operator service, the operator service can be split. The operator service splitting is carried out on the premise that the delay index of a user is guaranteed, and on the basis, utilization rate and performance are optimized. By splitting the operator service, the situations of insufficient CPU resources and GPU idling can be avoided. In addition, the high-frequency logic operator can be realized through operator service splitting, and the service quality is improved.
It should be noted that three combination relationships among the operation, the operator service, and the single-container DAG are shown in fig. 5D to 5F. The dashed boxes in the figure represent containers, also corresponding to the operator services of the inference service framework; the implementation box corresponds to the operation of an operator service; the connecting lines represent the data flow relationships between the operations.
As shown in FIG. 5D, the combinatorial relationship represents a single-container DAG, i.e., all operations of an operator service are all deployed in the same container. The advantages of the combination relation are that the service form is simple, the cluster management is convenient, the data stream transmission does not occupy the network bandwidth, and the response speed is high. The disadvantage of this combinatorial relationship is that it cannot be used to perform operator splitting.
As shown in fig. 5E, the combinatorial relationship represents a multi-container DAG, i.e., each operation of an operator service is deployed separately in an independent container. The advantage of the combination relation is that the flexibility is good, and the combination relation can be used for splitting an operator. The disadvantage of the combination relationship is that the data stream transmission among multiple containers needs to occupy network bandwidth, and the response speed is slow, that is, there is a potential performance problem in the data stream transmission of multiple containers.
As shown in FIG. 5F, the combinatorial relationship represents another multi-container DAG, where each container can deploy multiple operations. For example, a model-A (model A), a model-B (model B), and a model-C (model C) combination are deployed in one container; the pre-processor-0 (pretreatment module 0), the pre-processor-1 (pretreatment module 1) and the pre-processor-2 (pretreatment module 2) are combined and arranged in another container; the post-processor-0 (post-processing component 0) and the post-processor-1 (post-processing component 1) are deployed in a container. The disadvantage of the combination relationship is that network bandwidth is occupied for data stream transmission among multiple containers, but the data stream transmission inside a single container does not occupy the network bandwidth, the response speed is faster than the combination relationship shown in fig. 5E, and slower than the combination relationship shown in fig. 5D, that is, the performance problem in data stream transmission can be solved by multiple operation DAGs inside the container; meanwhile, the multi-container DAG can achieve the purposes of good flexibility (for example, high-frequency logic model-A (model A), model-B (model B) and model-C (model C) can be subjected to operator conversion) and operator splitting.
It should be noted that, in the embodiment of the present application, in the process of generating an operator service based on an AI model file, an integration manner of each preprocessing component, each post-processing component, and the operator service itself may be considered, so as to provide a basis for implementing operator splitting.
In addition, it should be noted that the inference service framework can also directly interface with the mirror repository, and write the service mirror file into the mirror repository. In addition, the mirror image warehouse can support the operations of adding, deleting, changing and checking the service mirror image files.
By the embodiment of the application, various combination relationships such as single container DAG, multi-container DAG and container internal operation DAG are supported. The multi-container DAG and the in-container operation DAG combined relation can solve the data transmission performance, facilitate cluster management of operator services and achieve good flexibility.
Further, in the embodiment of the application, the monitoring data of the GPU can be used to classify the services, so as to provide a reasonable hybrid model combination scheme.
For example, as shown in fig. 5G, models with lower resource occupancy, such as model-a (model a), model-B (model B), and model-C (model C), may be deployed in a container, such as container 1 (i.e., implementing multi-model hybrid in a single container), to share GPU resources, such as GPU0; models with higher resource occupation, such as model-E and model-F, are deployed in two containers, such as container 2 and container 3, respectively (i.e., multiple containers are mounted on the same computing card (computing node), and model mixing is realized by MPS at the bottom layer). The model-E (model E) and the model-F (model F) can realize resource isolation (occupy different containers) and can share GPU resources such as GPU1.
According to an embodiment of the present application, another processing method for operator services is provided.
FIG. 6A illustrates a flow diagram of a processing method for operator services according to yet another embodiment of the present application.
As shown in FIG. 6A, the processing method 600A for operator services may include operations S610 (i.e., receiving at least one request to invoke a target operator service) and, in response to receiving at least one request to invoke a target operator service, performing the following operations S620-S640.
In operation S620, a plurality of service images generated based on the target operator service are determined.
In operation S630, a plurality of heterogeneous computing power resource platforms for deploying a plurality of service images is determined.
In operation S640, at least one request is distributed to a corresponding computing power resource platform of the multiple heterogeneous computing power resource platforms for processing based on a preset heterogeneous platform traffic distribution policy.
Wherein the heterogeneous platform traffic distribution policy comprises at least one of: a heterogeneous polling policy, a heterogeneous random policy, a heterogeneous priority policy, and a heterogeneous weight policy.
In an embodiment, all service images registered under each operator service name can be determined according to registration information of each operator service, then all heterogeneous computational resource platforms (computing platforms) with the service images deployed are matched according to tag information carried by the service images, then a received request is distributed to the corresponding computational resource platforms (computing platforms) according to a preset heterogeneous platform flow distribution strategy, and then the request distributed to the computational resource platforms (computing platforms) is further distributed to corresponding nodes in the platforms according to the platform internal flow distribution strategy.
In another embodiment, after operator services are deployed, corresponding deployment information may be recorded, then, when traffic scheduling (request distribution) is performed, all heterogeneous computational resource platforms on which service images of the operator services are deployed may be determined according to the deployment information, then, according to a preset heterogeneous platform traffic distribution policy, a received request is first distributed to a corresponding computational resource platform (computing platform), and then, according to a platform internal traffic distribution policy, a request distributed to each computational resource (computing platform) is further distributed to a corresponding node inside each platform.
It should be noted that, in the embodiment of the present application, the heterogeneous polling policy: and the requests for the same operator service are sequentially distributed to the internal load balancing agents of the specific computing platform according to a set specific sequence. Heterogeneous random strategy: and the requests for the same operator service are randomly distributed to the internal load balancing agents of the specific computing platform. Heterogeneous priority policy: and distributing the requests of the same operator service to the internal load balancing agents of the specific computing platform according to a set priority sequence, wherein when the QPS number or the GPU utilization rate or the CPU utilization rate of the specific platform service reaches a monitoring index, the QPS number exceeding the index part is distributed to the internal load balancing agents of the computing platform with the next priority. Heterogeneous weight strategy: and requests for the same operator service are proportionally and randomly distributed to the internal load balancing agents of the specific computing platform according to the specified platform weight.
Compared with the prior art that operator services can only be deployed on separate fixed hardware equipment, and therefore heterogeneous resource scheduling cannot be achieved for the same operator service across platforms, by means of the method and the device for scheduling the operator services, different service images of the same operator service are deployed in a plurality of different heterogeneous computational resource platforms at the same time, and therefore heterogeneous resource scheduling can be achieved for the same operator service.
As an alternative embodiment, the method may further comprise: after at least one request is distributed to a corresponding computing power resource platform in a plurality of heterogeneous computing power resource platforms, under the condition that the corresponding computing power resource platform comprises a plurality of execution nodes, the request distributed to the corresponding computing power resource platform is distributed to the corresponding execution node in the plurality of execution nodes for processing based on a preset platform internal flow distribution strategy. Wherein the platform internal traffic distribution strategy comprises at least one of the following: an internal polling policy, an internal random policy, an internal priority policy, and an internal weight policy.
In the embodiment of the application, for the traffic (1 or more operator service requests) distributed to the computing resource platform, the traffic can be further distributed to the final execution node for processing and responding according to a preset platform internal traffic distribution policy inside the single platform.
It should be noted that, in the embodiment of the present application, the internal polling policy: and sequentially distributing the operator service requests distributed to the computing platform to execution nodes in the platform according to a set specific sequence. Heterogeneous random strategy: and randomly distributing the requests of the operator services distributed to the computing platform to execution nodes in the platform. Heterogeneous priority policy: and distributing the requests of the operator services distributed to the computing platform to specific execution nodes in the platform according to a set priority sequence, wherein when the QPS number or GPU utilization rate or CPU utilization rate of the specific execution node service reaches a monitoring index, the QPS number exceeding the index part is distributed to the execution node of the next priority. Heterogeneous weight strategy: requests for operator services that have been distributed to the computing platform are randomly distributed proportionally to particular execution nodes according to specified node weights.
For example, as shown in fig. 6B, traffic (at least one request) from a user for the same operator service is first distributed to a computing platform through a primary agent Proxy according to a heterogeneous platform traffic distribution policy, and then distributed to an execution Node inside the platform (e.g., distributed to Node T1-1 to Node T1-2 inside GPU Type 1) through a secondary agent (e.g., proxy 1-Proxy 5) according to a platform internal traffic distribution policy inside the computing platform (e.g., distributed to Node T1-1 to Node T1-2 inside GPU Type 1).
By the embodiment of the application, the resource scheduling can be flexibly performed in the computing resource platform.
Further, as an optional embodiment, the method may further include: in the process of distributing at least one request, for a target operator service, in response to the occurrence of at least one heterogeneous computational resource platform of which the actual resource occupancy reaches a preset resource quota upper limit, performing capacity expansion processing on the target operator service so as to continuously distribute the request which is not distributed in the at least one request.
Illustratively, in one embodiment, service image A of operator service A 1 Service image A 2 Service mirror image A 3 And service image A 4 After sequentially and correspondingly deploying in the container 1, the container 2, the container 3 and the container 4, in response to the number of instances of the operator service a in the container 1 exceeding the upper limit value of the number of instances of the container 1, the parameters of the container 1 may be reconfigured, for example, the upper limit value of the number of instances thereof may be increased.
It should be understood that, in the embodiment of the present application, the capacity expansion processing performed on the container with an overload (the actual resource occupation amount reaches the preset resource quota upper limit) further includes, but is not limited to, modifying upper limit values of a QPS, a CPU occupation ratio, a GPU occupation ratio, a video memory occupation ratio, and the like of the container.
For example, in another embodiment, in the case of at least one heterogeneous computational resource platform whose actual resource occupancy reaches a preset resource quota upper limit, in addition to modifying the relevant parameters of the overloaded container, one or more containers may be added newly for deploying the service image of the current operator service.
In the embodiment of the application, the service requirement of the high-frequency operator service can be met through dynamic capacity expansion processing, and the resource efficiency can be improved.
Further, as an optional embodiment, the performing capacity expansion processing on the target operator service may include the following operations.
And acquiring at least one service mirror image generated based on the target operator service based on the at least one heterogeneous computational resource platform with the actual resource occupation amount reaching the preset resource quota upper limit.
And respectively deploying at least one service image into a container which is set for the target operator service in the at least one heterogeneous computational resource platform.
It should be understood that the method for deploying the service mirror for the operator service in the capacity expansion stage is similar to the method for deploying the service mirror for the operator service in the initial construction stage, and details are not described herein in the embodiments of the present application.
In addition, in the embodiment of the present application, in the process of performing capacity expansion on a specific computing platform, the specific computing platform may be subjected to tag verification, a service image corresponding to the specific computing platform and related to an operator service is applied to the operator management service according to a tag verification result, and then a deployment library of the specific computing platform is referred to for capacity expansion deployment.
It should be noted that, in the embodiment of the present application, resource quota registration of an operator service may be completed when the operator service is registered, where the resource quota registration includes registering a maximum QPS, a GPU occupation, a video memory occupation, and an instance number of a single container used for deploying each service mirror image, and a QPS, a GPU occupation, and a video memory occupation corresponding to each thread number, so as to be used for configuring resources for each service mirror image in an initial construction stage and a capacity expansion stage.
By the embodiment of the application, capacity expansion operation can be automatically executed according to the proportion between the actual resource occupation (such as QPS quota or GPU quota) of the operator service and the upper limit value of the resource configured for deploying the operator service by the specific computing platform; intelligent allocation of hardware resources may be supported during the expansion phase.
Further, as an optional embodiment, the deploying the at least one service image into at least one container set for the target operator service in the computing resource platform respectively includes: for each of the at least one heterogeneous computational resource platform, the following operations are performed.
A resource group for deploying a corresponding one of the at least one service image is determined.
A container is created within a resource group.
The corresponding service image is deployed within the newly created container.
Further, as an alternative embodiment, the method may further include: and before the container is established in the resource group, responding to the fact that the actual resource occupancy of the resource group reaches the resource quota upper limit of the resource group, and executing alarm operation.
It should be noted that, in the embodiment of the present application, since the AI system can provide services to multiple business parties (e.g., between multiple enterprises or between multiple departments within an enterprise) simultaneously in a shared mode, a resource group can be allocated to each business party (one business party can serve as a tenant) in the computing resources of the AI system as a dedicated computing resource of the business party.
Therefore, in the embodiment of the present application, in the capacity expansion phase, if current resources of one or some containers of a certain service party are insufficient, capacity expansion may be preferentially performed in the resource group allocated to the service party. And if the current limit of the resource group of the service party is not enough to continue capacity expansion, alarming.
It should be understood that, in the embodiment of the present application, the AI system may support registering the total amount of GPU, video memory, and CPU resources for the server node and the computing card unit; and the server node and the computing card unit are combined into a resource group, wherein the resource group can provide the total amount of the included resources of the server node and the computing card unit.
In the embodiment of the present application, a dedicated resource group (private resource group) may be configured for only a part of the service parties, and the remaining part of the service parties may use a shared resource (shared resource group). Therefore, when deploying the operator service, the user can specify the resource groups that the operator service plans to deploy, and the number of instances or required resources (such as QPS, GPU occupation amount, etc.) that each resource group plans to deploy, and the AI system performs random deployment in the corresponding resource groups according to the number of instances or required resources specified by the user.
In addition, in the embodiment of the present application, the AI system may further support configuring a resource quota of the operator service, that is, configuring a maximum resource quota and a minimum resource quota allowed to be occupied by the current operator service in the current resource group, so as to ensure effective planning of resources.
By the embodiment of the application, the separation of the computing resources among a plurality of business parties can be realized while the computing resource sharing service is provided, namely different resource groups are divided, so that the data safety of each business party is ensured. Meanwhile, when the current resources are not enough to support continuous expansion, an alarm can be given out so as to facilitate manual intervention solution.
Or, as an optional embodiment, the method may further include: before acquiring at least one service image generated based on a target operator service, the following operations are performed.
At least one AI model file is obtained.
And generating a target operator service containing at least one sub operator service based on the at least one AI model file.
At least one service image is generated based on the target operator service.
It should be noted that the method for generating the service image provided in the embodiment of the present application is the same as the method for generating the service image provided in the foregoing embodiment of the present application, and details are not described here again.
According to the embodiment of the application, the AI system supports the AI model submitted externally, and supports the independent deployment of one AI model as one operator service, and also supports the mixed deployment of a plurality of AI models as one operator service after the combination of the operator services DAG, so that flexible and various deployment modes are provided.
According to an embodiment of the present application, there is provided a processing apparatus for workflow.
Fig. 7A illustrates a block diagram of a processing device for a workflow according to an embodiment of the application.
As shown in fig. 7A, the processing apparatus 700A for workflow may include an obtaining module 701, a generating module 702, a verifying module 703 and a saving module 704.
An obtaining module 701 (a first obtaining module) is configured to obtain a business application defined by a user, where a plurality of application components and a connection relationship between the plurality of application components are defined in the business application, and the plurality of application components include at least one operator component.
A generating module 702 (a first generating module) is configured to pre-generate a corresponding workflow based on a business application, where each of a plurality of application components corresponds to a task node in the workflow, and a connection relationship between the plurality of application components corresponds to a data flow direction between the plurality of task nodes in the workflow.
A checking module 703, configured to perform, for each task node in the workflow, target node checking, where a target node includes at least one of the following: an upstream node and a downstream node.
A saving module 704 for saving the workflow in response to the target node checking pass.
According to an embodiment of the present application, the processing apparatus 700A for workflow may further include, for example, an input data acquisition module, an instance generation module, and an instance graph generation module. The input data acquisition module is used for acquiring input data of the workflow. The example generation module is used for generating a corresponding workflow example based on the acquired input data and the workflow. The instance graph generating module is used for generating a corresponding workflow instance graph based on the workflow instance.
As an optional embodiment, the processing apparatus for a workflow may further include a task distribution module, for example, configured to distribute, by a distribution end, tasks corresponding to the task nodes in the workflow instance to the queue; and the task execution module is used for acquiring and processing tasks from the queue through at least one execution end. The execution end stores the execution result of each task in the preset memory, and the distribution end reads the execution result of each task from the preset memory and distributes subsequent tasks to the queue based on the read execution result.
As an alternative embodiment, the processing device for workflow may further include: and the task amount control module is used for controlling the task amount acquired by each execution end in the at least one execution end in unit time.
As an alternative embodiment, the processing device for workflow may further include: and the processing control module is used for controlling the tasks corresponding to the plurality of task nodes meeting the affinity routing in the workflow instance to be processed on the same execution end.
As an alternative embodiment, the processing device for workflow may further include: the system comprises a task execution module and a parameter recording module. And the task execution module is used for executing the tasks corresponding to the task nodes in the workflow instance. And the parameter recording module is used for recording the input parameters and/or the output parameters of each task node according to the task execution result.
As an alternative embodiment, the processing device for workflow may further include: and the warning module is used for responding to the failure of the target node verification and warning aiming at the workflow.
It should be noted that, embodiments of the apparatus part of the present application are the same as or similar to embodiments of the method part corresponding to the present application, and technical effects achieved and technical problems solved are also the same as or similar to each other, and no further description is given here in the embodiments of the present application.
According to an embodiment of the present application, a processing device for business applications is provided.
Fig. 7B illustrates a block diagram of a processing device for business applications according to an embodiment of the application.
As shown in fig. 7B, the processing apparatus 700B for business applications may include an application determination module 705, a task generation module 706, and a batch control module 707.
An application determining module 705 for determining a predefined plurality of business applications.
The task generating module 706 is configured to generate at least one business task based on a plurality of business applications, where each business task includes a business application having a same execution plan and a plurality of data sources in the plurality of business applications.
And a batch control module 707 configured to perform batch control on the service applications included in each service task.
As an optional embodiment, the apparatus may further comprise: and the multiplexing control module is used for controlling the multiplexing operator service of at least two business applications under the condition that at least two business applications exist in the plurality of business applications and the same operator service needs to be called at the bottom layer.
As an optional embodiment, the multiplexing control module is further configured to control a same service image of at least two service application multiplexing operator services.
As an optional embodiment, the multiplexing control module is further configured to, in a case that input data of the service image is the same for each of the at least two service applications, control the service image to execute once and return an execution result to each of the at least two service applications.
As an alternative embodiment, the apparatus may further comprise: and the application merging module is used for merging at least two same service applications in the current service task under the condition that at least two same service applications aiming at different service parties exist in the current service task aiming at each service task.
As an alternative embodiment, the application merging module is configured to control at least two identical service applications to share the same application instance at the bottom layer.
As an alternative embodiment, the application merging module includes: the result acquisition unit is used for acquiring the execution result of the application instance aiming at one service application in at least two same service applications; and the result sending unit is used for sending the obtained execution result to all service parties associated with at least two same service applications.
It should be noted that, embodiments of the apparatus part of the present application are the same as or similar to embodiments of the method part corresponding to the present application, and technical effects achieved and technical problems solved are also the same as or similar to each other, and no further description is given here in the embodiments of the present application.
According to an embodiment of the present application, there is provided a processing apparatus for operator services.
Fig. 7C illustrates a block diagram of a processing apparatus for operator services according to an embodiment of the present application.
As shown in fig. 7C, the processing apparatus 700C for operator services may include a first determining module 708, a second determining module 709, an obtaining module 710, and a converting module 711.
A first determining module 708, configured to determine at least one original field configured for the target operator service, wherein each original field is used to describe a feature attribute of a processing object of the target operator service.
A second determining module 709, configured to determine an operator category to which the target operator service belongs.
An obtaining module 710 (a second obtaining module) is configured to obtain a mapping relationship between the at least one original field and the at least one standard field based on the determined operator category.
A conversion module 711, configured to convert, based on the obtained mapping relationship, the feature attribute information of the feature attribute described by each original field into the feature attribute information described by the corresponding standard field.
As an alternative embodiment, the apparatus may further comprise: and the information storage module is used for storing the converted characteristic attribute information into a target database. And the database configuration module executes related operations to obtain a target database. The database configuration module comprises: a field determination unit for determining each criterion field, wherein each criterion field is used for describing a characteristic attribute of a processing object of an operator service belonging to the operator category; the template acquisition unit is used for acquiring a database template; and the template configuration unit is used for configuring the database template based on each standard field to obtain a target database.
As an alternative embodiment, the apparatus may further comprise: and the index field generating module is used for generating the index field of the target database.
As an alternative embodiment, the index field generation module is further configured to generate the index field of the target database based on the high-frequency search term currently used for the target database.
As an optional embodiment, the apparatus may further comprise at least one of: the first configuration module is used for respectively configuring all standard fields for configuring the target database into retrieval items aiming at the information stored in the target database; the second configuration module is used for configuring at least one standard field with the current searching frequency higher than a preset value in all the standard fields as a retrieval item aiming at the information stored in the target database; and the third configuration module is used for configuring at least one specified standard field in all the standard fields as a retrieval item aiming at the information stored in the target database.
As an alternative embodiment, the apparatus may further comprise: the information conversion module is used for responding to an external acquisition request aiming at the characteristic attribute information stored in the target database and converting the requested characteristic attribute information into the characteristic attribute information described by an external universal standard field; and the information output module is used for outputting information based on the processing result of the information conversion module.
As an alternative embodiment, the apparatus may further comprise: the data life cycle generating module is used for generating a data life cycle aiming at the target database; and the data elimination processing module is used for eliminating the historical data stored in the target database based on the data life cycle.
As an optional embodiment, the apparatus may further comprise: and the database and table dividing processing module is used for responding to the fact that the data volume of the information stored in the target database reaches a preset value, and performing database and table dividing processing on the target database.
As an optional embodiment, the apparatus may further comprise: and the checking module is used for checking whether a field matched with the converted characteristic attribute information exists in the target database before the converted characteristic attribute information is stored in the target database.
It should be noted that, embodiments of the apparatus part of the present application are the same as or similar to embodiments of the method part corresponding to the present application, and technical effects achieved and technical problems solved are also the same as or similar to each other, and no further description is given here in the embodiments of the present application.
According to an embodiment of the present application, there is provided another processing apparatus for operator services.
Fig. 7D illustrates a block diagram of a processing device for operator services according to another embodiment of the present application.
As shown in fig. 7D, the processing apparatus 700D for operator services may include a determining module 712, an obtaining module 713, and a deploying module 714.
A determining module 712 (fourth determining module) is configured to determine N types of computational resources for deploying the operator service, wherein in each of the N types of computational resources, at least one container is provided for the operator service.
An obtaining module 713 (third obtaining module) is configured to obtain the N service images generated based on the operator service.
The deploying module 714 is configured to deploy the N service images into containers set for the operator services in the N types of computing resources, respectively.
As an alternative embodiment, the apparatus may further comprise: the prediction module is used for predicting the resource quota required by the operation of the support operator service; and the setting module is used for setting at least one container aiming at the operator service in each type of computational power resource in the N types of computational power resources based on the predicted resource quota.
As an alternative embodiment, the setting module includes: the matching unit is used for converting the predicted resource quota into a resource quota matched with the calculation capacity resources of the current category aiming at each category of calculation capacity resources; and the setting unit is used for setting at least one container for the operator service in the computational resource of the current category based on the converted resource quota.
As an alternative embodiment, the apparatus may further comprise: and the capacity expansion module is used for responding to the situation that the load of any container set for the operator service exceeds a preset value and performing capacity expansion processing on the container with the load exceeding the preset value.
As an alternative embodiment, the apparatus may further comprise: the second acquisition module is used for responding to the newly added M types of computational power resources and acquiring M service images newly generated based on the operator service, wherein at least one container is arranged for the operator service in each type of computational power resource in the M types of computational power resources; and the first deployment module is used for respectively deploying the M service images into containers in the M types of computational resources.
As an optional embodiment, the apparatus may further comprise: and the scheduling module is used for responding to the received request aiming at the operator service and scheduling the computational power resources for responding to the request based on the computational power load balance condition among the N classes of computational power resources.
As an alternative embodiment, the apparatus may further comprise: the third acquisition module is used for acquiring at least one AI model file before acquiring the N service images generated based on the operator service; the second generation module is used for generating operator services containing at least one sub-operator service based on at least one AI model file; and the third generation module is used for generating N service images based on the operator services.
As an alternative embodiment, the apparatus may further comprise: the third generation module comprises:
the system comprises an acquisition unit, a storage unit and a processing unit, wherein the acquisition unit is used for at least one preprocessing component and at least one post-processing component which are matched with an operator service; and
a generating unit for generating N service images based on the operator service, the at least one preprocessing component and the at least one post-processing component.
As an alternative embodiment, each of the N service images includes: a first image generated based on the operator service, wherein the first image comprises at least one first sub-image.
The apparatus may further include: a fourth generation module for generating a second image based on the at least one preprocessing component, wherein the first image comprises at least one second sub-image; and a fifth generation module for generating a third image based on the at least one post-processing component, wherein the first image comprises at least one third sub-image; a first deployment module comprising: the first deployment unit is used for respectively deploying the corresponding first mirror image, the second mirror image and the third mirror image in different containers set for the operator service aiming at each type of computational power resource; or, the second deployment unit is configured to deploy at least two of the corresponding first mirror image, second mirror image, and third mirror image in the same container set for the operator service; or, the third deployment unit is configured to deploy each of the corresponding at least one first sub-image, at least one second sub-image, and at least one third sub-image in different containers set for operator services, respectively.
It should be noted that, the embodiments of the apparatus part of the present application are the same as or similar to the embodiments of the method part corresponding to the present application, and the achieved technical effects and the solved technical problems are also the same as or similar to each other, and no further description is given herein in this application embodiment.
According to an embodiment of the present application, there is provided yet another processing apparatus for operator services.
FIG. 7E illustrates a block diagram of a processing apparatus for operator services according to yet another embodiment of the present application.
As shown in fig. 7E, the processing apparatus 700E for operator service may include a receiving end 715 and a processor 716.
And the receiving end 715 is configured to invoke a request of each operator service.
A processor 716, configured to, in response to receiving at least one request to invoke a target operator service, perform the following: (a first determining module for) determining a plurality of service images generated based on the target operator service; (a second determination module to) determine a plurality of heterogeneous computing power resource platforms for deploying a plurality of service images; the first flow distribution module is used for distributing at least one request to a corresponding computing power resource platform in a plurality of heterogeneous computing power resource platforms for processing based on a preset heterogeneous platform flow distribution strategy; the heterogeneous platform traffic distribution strategy comprises at least one of the following: a heterogeneous polling policy, a heterogeneous random policy, a heterogeneous priority policy, and a heterogeneous weight policy.
As an alternative embodiment, the processor may further include: the second traffic distribution module is used for distributing the request distributed to the corresponding computing power resource platform to the corresponding execution node in the execution nodes for processing based on a preset platform internal traffic distribution strategy under the condition that the corresponding computing power resource platform comprises a plurality of execution nodes after distributing at least one request to the corresponding computing power resource platform in the heterogeneous computing power resource platforms; wherein the platform internal traffic distribution strategy comprises at least one of the following: an internal polling policy, an internal random policy, an internal priority policy, and an internal weight policy.
As an alternative embodiment, the processor may further include: and the capacity expansion module is used for responding to at least one heterogeneous computational resource platform with actual resource occupancy reaching a preset resource quota upper limit in response to the target operator service in the process of distributing at least one request, and performing capacity expansion processing on the target operator service so as to continuously distribute the request which is not distributed in the at least one request.
As an alternative embodiment, the processor may further include: the dilatation module includes: the acquisition unit is used for acquiring at least one service mirror image generated based on the target operator service based on at least one heterogeneous computational resource platform; and the deployment unit is used for respectively deploying the at least one service image into a container which is set for the target operator service in the at least one heterogeneous computational resource platform.
As an alternative embodiment, the processor may further include: the deployment unit is further to: determining a resource group for deploying a corresponding service image in at least one service image for each computing resource platform in at least one heterogeneous computing resource platform; creating a container within a resource group; the corresponding service image is deployed within the container.
As an alternative embodiment, the deployment unit is further configured to: and before the container is established in the resource group, responding to the fact that the actual resource occupancy of the resource group reaches the resource quota upper limit of the resource group, and executing alarm operation.
As an alternative embodiment, the processor may further include: the acquisition module is used for acquiring at least one AI model file before acquiring at least one service mirror image generated based on the target operator service; the first generation module is used for generating a target operator service comprising at least one sub-operator service based on at least one AI model file; and the second generation module is used for generating at least one service mirror image based on the target operator service.
It should be noted that, embodiments of the apparatus part of the present application are the same as or similar to embodiments of the method part corresponding to the present application, and technical effects achieved and technical problems solved are also the same as or similar to each other, and no further description is given here in the embodiments of the present application.
There is also provided, in accordance with an embodiment of the present application, an electronic device, a readable storage medium, and a computer program product. The computer program product comprises a computer program which, when executed by a processor, may implement the method of any of the embodiments described above.
As shown in fig. 8, is a block diagram of an electronic device according to a method (e.g., a processing method for a workflow, etc.) of an embodiment of the present application. Electronic devices are intended to represent various forms of digital computers, such as laptops, desktops, workstations, personal digital assistants, servers, blade servers, mainframes, and other appropriate computers. Electronic devices may also represent various forms of mobile devices, such as personal digital processors, cellular telephones, smart phones, wearable devices, and other similar computing devices. The components shown herein, their connections and relationships, and their functions, are meant to be examples only, and are not meant to limit implementations of the present application that are described and/or claimed herein.
As shown in fig. 8, the electronic apparatus includes: one or more processors 801, memory 802, and interfaces for connecting the various components, including a high speed interface and a low speed interface. The various components are interconnected using different buses and may be mounted on a common motherboard or in other manners as desired. The processor may process instructions for execution within the electronic device, including instructions stored in or on the memory to display graphical information of a GUI on an external input/output apparatus (such as a display device coupled to the interface). In other embodiments, multiple processors and/or multiple buses may be used, along with multiple memories and multiple memories, as desired. Also, multiple electronic devices may be connected, with each device providing portions of the necessary operations (e.g., as a server array, a group of blade servers, or a multi-processor system). Fig. 8 illustrates an example of a processor 801.
The memory 802 is a non-transitory computer readable storage medium as provided herein. Wherein the memory stores instructions executable by at least one processor to cause the at least one processor to perform the methods provided herein (e.g., processing methods for workflows, etc.). The non-transitory computer-readable storage medium of the present application stores computer instructions for causing a computer to perform the methods provided herein (e.g., processing methods for workflows, etc.).
The memory 802 is a non-transitory computer readable storage medium, and can be used for storing non-transitory software programs, non-transitory computer executable programs, and modules, such as program instructions/modules corresponding to the methods (e.g., processing methods for workflows, etc.) in the embodiments of the present application (e.g., the obtaining module 701, the generating module 702, the verifying module 703, and the saving module 704 shown in fig. 7A). The processor 801 executes various functional applications of the server and data processing by running non-transitory software programs, instructions, and modules stored in the memory 802, that is, implements the methods (e.g., processing methods for workflows, etc.) in the above-described method embodiments.
The memory 802 may include a storage program area and a storage data area, wherein the storage program area may store an operating system, an application program required for at least one function; the storage data area may store data created according to the use of the electronic device of a method (e.g., a processing method for a workflow, etc.), and the like. Further, the memory 802 may include high speed random access memory and may also include non-transitory memory, such as at least one magnetic disk storage device, flash memory device, or other non-transitory solid state storage device. In some embodiments, the memory 802 optionally includes memory located remotely from the processor 801, which may be connected to electronic devices such as processing methods for workflows over a network. Examples of such networks include, but are not limited to, the internet, intranets, local area networks, mobile communication networks, and combinations thereof.
The electronic device for implementing the method (e.g., processing method for workflow, etc.) of the present application may further include: an input device 803 and an output device 804. The processor 801, the memory 802, the input device 803, and the output device 804 may be connected by a bus or other means, and are exemplified by a bus in fig. 8.
The input device 803 may receive input numeric or character information and generate key signal inputs related to user settings and function control of the electronic apparatus such as a processing method for a workflow, for example, a touch screen, a keypad, a mouse, a track pad, a touch pad, a pointing stick, one or more mouse buttons, a track ball, a joystick, or the like. The output devices 804 may include a display device, auxiliary lighting devices (e.g., LEDs), and haptic feedback devices (e.g., vibrating motors), among others. The display device may include, but is not limited to, a Liquid Crystal Display (LCD), a Light Emitting Diode (LED) display, and a plasma display. In some implementations, the display device can be a touch screen.
Various implementations of the systems and techniques described here can be realized in digital electronic circuitry, integrated circuitry, application specific ASICs (application specific integrated circuits), computer hardware, firmware, software, and/or combinations thereof. These various embodiments may include: implemented in one or more computer programs that are executable and/or interpretable on a programmable system including at least one programmable processor, which may be special or general purpose, receiving data and instructions from, and transmitting data and instructions to, a storage system, at least one input device, and at least one output device.
These computer programs (also known as programs, software applications, or code) include machine instructions for a programmable processor, and may be implemented using high-level procedural and/or object-oriented programming languages, and/or assembly/machine languages. As used herein, the terms "machine-readable medium" and "computer-readable medium" refer to any computer program product, apparatus, and/or device (e.g., magnetic discs, optical disks, memory, programmable Logic Devices (PLDs)) used to provide machine instructions and/or data to a programmable processor, including a machine-readable medium that receives machine instructions as a machine-readable signal. The term "machine-readable signal" refers to any signal used to provide machine instructions and/or data to a programmable processor.
To provide for interaction with a user, the systems and techniques described here can be implemented on a computer having: a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to a user; and a keyboard and a pointing device (e.g., a mouse or a trackball) by which a user may provide input to the computer. Other kinds of devices may also be used to provide for interaction with a user; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user may be received in any form, including acoustic, speech, or tactile input.
The systems and techniques described here can be implemented in a computing system that includes a back-end component (e.g., as a data server), or that includes a middleware component (e.g., an application server), or that includes a front-end component (e.g., a user computer having a graphical user interface or a web browser through which a user can interact with an implementation of the systems and techniques described here), or any combination of such back-end, middleware, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include: local Area Networks (LANs), wide Area Networks (WANs), and the Internet.
The computer system may include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other; the server may be a server of a distributed system or a server incorporating a blockchain. The server can also be a cloud server, or an intelligent cloud computing server or an intelligent cloud host with artificial intelligence technology.
According to the technical scheme of the embodiment of the application, aiming at a new application scene, a user does not need to perform brand-new development and adaptation from an upper layer to a lower layer, but can share various existing application components provided by an intelligent workstation and quickly define the service application which can be used for the new application scene, so that the working efficiency can be improved, and the reuse rate of each application component (including an AI operator component, for short, an operator component) can be improved; meanwhile, based on the user-defined service application, the workflow can be automatically pre-generated, and the upstream and downstream node check can be carried out on each task node in the workflow, so that the correctness of the workflow can be ensured.
It should be understood that various forms of the flows shown above, reordering, adding or deleting steps, may be used. For example, the steps described in the present application may be executed in parallel, sequentially, or in different orders, and the present invention is not limited thereto as long as the desired results of the technical solutions disclosed in the present application can be achieved.
The above-described embodiments are not intended to limit the scope of the present disclosure. It should be understood by those skilled in the art that various modifications, combinations, sub-combinations and substitutions may be made, depending on design requirements and other factors. Any modification, equivalent replacement, and improvement made within the spirit and principle of the present application shall be included in the protection scope of the present application.

Claims (16)

1. A processing method for a workflow, comprising:
acquiring a user-defined business application, wherein in the business application, a plurality of application components and a connection relation between the plurality of application components are defined, and the plurality of application components comprise at least one operator component;
pre-generating a corresponding workflow based on the business application, wherein each application component in the plurality of application components corresponds to one task node in the workflow, and the connection relation among the plurality of application components corresponds to the data flow direction among the plurality of task nodes in the workflow;
automatically checking a connection relation between each task node and a target node aiming at each task node in the workflow, wherein the target node comprises at least one of the following items: an upstream node of each task node, a downstream node of each task node;
responsive to the target node checking for a pass, saving the workflow,
wherein, automatically checking the connection relationship between each task node and the target node comprises:
in response to each task node being an initial node, checking whether the data type output by each task node is consistent with the data type input by the downstream node;
in response to each task node being a termination node, checking whether the data type input by each task node is consistent with the data type output by the upstream node; and
in response to that each task node is a node other than the starting node and the terminating node, checking whether the data type input by each task node is consistent with the data type output by the upstream node, and checking whether the data type output by each task node is consistent with the data type input by the downstream node.
2. The method of claim 1, further comprising: after the workflow has been saved, the workflow is saved,
acquiring input data of the workflow;
generating a corresponding workflow instance based on the acquired input data and the workflow;
and generating a corresponding workflow instance graph based on the workflow instance.
3. The method of claim 2, further comprising:
distributing tasks corresponding to each task node in the workflow instance to a queue through a distributing terminal;
acquiring and processing tasks from the queue through at least one execution end;
the execution end stores the execution result of each task in a preset memory, and the distribution end reads the execution result of each task from the preset memory and distributes subsequent tasks to the queue based on the read execution result.
4. The method of claim 3, further comprising:
and controlling the task amount acquired by each execution end in the at least one execution end in unit time.
5. The method of claim 3, further comprising:
and controlling the tasks corresponding to the plurality of task nodes meeting the affinity routing in the workflow instance to be processed on the same execution end.
6. The method of claim 2, further comprising:
executing tasks corresponding to the task nodes in the workflow instance;
and recording the input parameters and/or the output parameters of each task node according to the task execution result.
7. The method of claim 1, further comprising:
and responding to the failure of the target node verification, and alarming for the workflow.
8. A processing apparatus for workflow, comprising:
the system comprises an acquisition module, a processing module and a display module, wherein the acquisition module is used for acquiring a business application defined by a user, a plurality of application components and connection relations among the application components are defined in the business application, and the application components comprise at least one operator component;
a generating module, configured to pre-generate a corresponding workflow based on the business application, where each of the multiple application components corresponds to a task node in the workflow, and a connection relationship between the multiple application components corresponds to a data flow direction between the multiple task nodes in the workflow;
a checking module, configured to perform automatic checking on a connection relationship between each task node and a target node in the workflow, where the target node includes at least one of the following: an upstream node of each task node, a downstream node of each task node;
a saving module for saving the workflow in response to the target node passing the check,
wherein, automatically checking the connection relationship between each task node and the target node comprises:
in response to each task node being an initial node, checking whether the data type output by each task node is consistent with the data type input by the downstream node;
in response to each task node being a termination node, checking whether the data type input by each task node is consistent with the data type output by the upstream node; and
and in response to the fact that each task node is other than the starting node and the ending node, checking whether the data type input by each task node is consistent with the data type output by the upstream node, and checking whether the data type output by each task node is consistent with the data type input by the downstream node.
9. The apparatus of claim 8, further comprising: an input data acquisition module to, after saving the workflow,
acquiring input data of the workflow;
the instance generation module is used for generating a corresponding workflow instance based on the acquired input data and the workflow;
and the example graph generating module is used for generating a corresponding workflow example graph based on the workflow example.
10. The apparatus of claim 9, further comprising:
the task distribution module is used for distributing tasks corresponding to the task nodes in the workflow example to a queue through a distribution end;
the task execution module is used for acquiring and processing tasks from the queue through at least one execution end;
the execution end stores the execution result of each task in a preset memory, and the distribution end reads the execution result of each task from the preset memory and distributes subsequent tasks to the queue based on the read execution result.
11. The apparatus of claim 10, further comprising:
and the task amount control module is used for controlling the task amount acquired by each execution end in the at least one execution end in unit time.
12. The apparatus of claim 10, further comprising:
and the processing control module is used for controlling the tasks corresponding to the task nodes meeting the affinity routing in the workflow instance to be processed on the same execution end.
13. The apparatus of claim 9, further comprising:
the task execution module is used for executing tasks corresponding to the task nodes in the workflow instance;
and the parameter recording module is used for recording the input parameters and/or the output parameters of each task node according to the task execution result.
14. The apparatus of claim 8, further comprising:
and the warning module is used for responding to the failure of the target node verification and warning the workflow.
15. An electronic device, comprising:
at least one processor; and
a memory communicatively coupled to the at least one processor; wherein,
the memory stores instructions executable by the at least one processor to enable the at least one processor to perform the method of any one of claims 1-7.
16. A non-transitory computer readable storage medium having stored thereon computer instructions for causing the computer to perform the method of any one of claims 1-7.
CN202011069031.4A 2020-09-30 2020-09-30 Workflow processing method and device, intelligent workstation and electronic equipment Active CN112202899B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011069031.4A CN112202899B (en) 2020-09-30 2020-09-30 Workflow processing method and device, intelligent workstation and electronic equipment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011069031.4A CN112202899B (en) 2020-09-30 2020-09-30 Workflow processing method and device, intelligent workstation and electronic equipment

Publications (2)

Publication Number Publication Date
CN112202899A CN112202899A (en) 2021-01-08
CN112202899B true CN112202899B (en) 2022-10-25

Family

ID=74013590

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011069031.4A Active CN112202899B (en) 2020-09-30 2020-09-30 Workflow processing method and device, intelligent workstation and electronic equipment

Country Status (1)

Country Link
CN (1) CN112202899B (en)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112394918B (en) * 2021-01-21 2021-08-03 国汽智控(北京)科技有限公司 Development method, processing method and system of automatic driving application
CN113225269B (en) * 2021-04-16 2022-11-22 鹏城实验室 Container-based workflow scheduling method, device and system and storage medium
CN112990780B (en) * 2021-04-28 2024-03-26 中国工商银行股份有限公司 Workflow construction method, device and equipment
CN113806049A (en) * 2021-09-17 2021-12-17 金蝶软件(中国)有限公司 Task queuing method and device, computer equipment and storage medium
CN113946394A (en) * 2021-10-13 2022-01-18 上海淇玥信息技术有限公司 Method and device for displaying task flow running result in real time and electronic equipment
CN114445047B (en) * 2022-01-29 2024-05-10 北京百度网讯科技有限公司 Workflow generation method and device, electronic equipment and storage medium
CN114444338B (en) * 2022-04-11 2022-07-01 北京瑞莱智慧科技有限公司 Method, device and storage medium for fast lightweight verification of AI model combination
CN117390069A (en) * 2023-10-11 2024-01-12 深圳市盈华讯方通信技术有限公司 Business big data stream processing system, method and medium based on feature analysis
CN118485292A (en) * 2024-06-14 2024-08-13 杭州宇泛智能科技股份有限公司 Workflow automatic generation and calculation force distribution method and device based on artificial intelligence

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105046408A (en) * 2015-06-25 2015-11-11 国网山东省电力公司 Configurable workflow realization method and system
CN107885762A (en) * 2017-09-19 2018-04-06 北京百度网讯科技有限公司 Intelligent big data system, the method and apparatus that intelligent big data service is provided
CN108062382A (en) * 2017-12-13 2018-05-22 广州视源电子科技股份有限公司 information interaction method, device, equipment and storage medium
CN110069465A (en) * 2019-03-16 2019-07-30 平安城市建设科技(深圳)有限公司 HDFS data managing method, device, equipment and medium based on workflow
CN110069441A (en) * 2019-03-21 2019-07-30 中国科学院计算技术研究所 A kind of FPGA network and stream calculation System and method for for stream calculation

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10664766B2 (en) * 2016-01-27 2020-05-26 Bonsai AI, Inc. Graphical user interface to an artificial intelligence engine utilized to generate one or more trained artificial intelligence models
US20190339688A1 (en) * 2016-05-09 2019-11-07 Strong Force Iot Portfolio 2016, Llc Methods and systems for data collection, learning, and streaming of machine signals for analytics and maintenance using the industrial internet of things
WO2018081833A1 (en) * 2016-10-31 2018-05-03 Talla, Inc. State machine methods and apparatus executing natural language communications, and al agents monitoring status and triggering transitions
US10678613B2 (en) * 2017-10-31 2020-06-09 Seven Bridges Genomics Inc. System and method for dynamic control of workflow execution
US20200133254A1 (en) * 2018-05-07 2020-04-30 Strong Force Iot Portfolio 2016, Llc Methods and systems for data collection, learning, and streaming of machine signals for part identification and operating characteristics determination using the industrial internet of things
CN110738389A (en) * 2019-09-03 2020-01-31 深圳壹账通智能科技有限公司 Workflow processing method and device, computer equipment and storage medium
CN111047190A (en) * 2019-12-12 2020-04-21 广西电网有限责任公司 Diversified business modeling framework system based on interactive learning technology
CN111080170B (en) * 2019-12-30 2023-09-05 北京云享智胜科技有限公司 Workflow modeling method and device, electronic equipment and storage medium
CN111400337B (en) * 2020-02-28 2023-06-23 中国电子科技集团公司第十五研究所 Big data analysis-oriented interactive modeling operator component and execution method
CN111639480A (en) * 2020-05-28 2020-09-08 深圳壹账通智能科技有限公司 Text labeling method based on artificial intelligence, electronic device and storage medium
CN111639859A (en) * 2020-06-01 2020-09-08 腾讯科技(深圳)有限公司 Template generation method and device for artificial intelligence AI solution and storage medium

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105046408A (en) * 2015-06-25 2015-11-11 国网山东省电力公司 Configurable workflow realization method and system
CN107885762A (en) * 2017-09-19 2018-04-06 北京百度网讯科技有限公司 Intelligent big data system, the method and apparatus that intelligent big data service is provided
CN108062382A (en) * 2017-12-13 2018-05-22 广州视源电子科技股份有限公司 information interaction method, device, equipment and storage medium
CN110069465A (en) * 2019-03-16 2019-07-30 平安城市建设科技(深圳)有限公司 HDFS data managing method, device, equipment and medium based on workflow
CN110069441A (en) * 2019-03-21 2019-07-30 中国科学院计算技术研究所 A kind of FPGA network and stream calculation System and method for for stream calculation

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于组件的大型商贸企业主数据管理系统架构设计;王晓晋;《铁路采购与物流》;20160325(第03期);全文 *

Also Published As

Publication number Publication date
CN112202899A (en) 2021-01-08

Similar Documents

Publication Publication Date Title
CN112199385B (en) Processing method and device for artificial intelligence AI, electronic equipment and storage medium
CN112202899B (en) Workflow processing method and device, intelligent workstation and electronic equipment
CN112069204A (en) Processing method and device for operator service, intelligent workstation and electronic equipment
CN112148494B (en) Processing method and device for operator service, intelligent workstation and electronic equipment
CN112069205B (en) Processing method and device for business application, intelligent workstation and electronic equipment
CN112035516B (en) Processing method and device for operator service, intelligent workstation and electronic equipment
US9800675B2 (en) Methods for dynamically generating an application interface for a modeled entity and devices thereof
WO2020258290A1 (en) Log data collection method, log data collection apparatus, storage medium and log data collection system
CN108920153A (en) A kind of Docker container dynamic dispatching method based on load estimation
US9569722B2 (en) Optimal persistence of a business process
CN109815283A (en) A kind of heterogeneous data source visual inquiry method
CN113656021B (en) Oil gas big data analysis system and method oriented to business scene
CN110232106A (en) A kind of mass data storage and method for quickly retrieving based on MongoDB and Solr
CN107609172B (en) Cross-system multi-dimensional data retrieval processing method and device
CN113010296B (en) Formalized model based task analysis and resource allocation method and system
CN114547247A (en) Architecture construction method and device of autonomous traffic system and storage medium
CN113886111A (en) Workflow-based data analysis model calculation engine system and operation method
CN117421108A (en) Heterogeneous computing power platform design method, heterogeneous computing power platform and resource scheduling method
US20220383219A1 (en) Access processing method, device, storage medium and program product
CN110515716A (en) It is a kind of to support priority and anti-affine cloud Optimization Scheduling and system
CN116737351A (en) Image processing system operation management method and device, storage medium and electronic equipment
CN109389662B (en) A kind of three-dimensional scenic visual configuration method and device
CN114548928A (en) Application auditing method, device, equipment and medium
CN112527919B (en) Data processing method and device
CN115277693B (en) Cloud resource scheduling method and system and computer readable storage medium thereof

Legal Events

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