DETAILED ACTION
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Status of Claims
1. Claims 1 and 8 are amended.
2. Claims 2-3 and 9-10 are cancelled.
3. Claims 1, 4-8, and 11-14 are pending.
4. Claims 1, 4-8, and 11-14 are rejected.
Foreign Priority
5. Acknowledgment is made of applicant’s claim for foreign priority under 35 U.S.C. 119 (a)-(d). The certified copy has been filed in parent Application No. KR10-2022-0162995 filed November 29, 2022. Receipt is acknowledged of certified copies of papers required by 37 CFR 1.55.
Response to Arguments
6. Regarding Prior Art Rejections:
Applicant’s amendments and arguments to claims 1 and 8 have been considered and are not persuasive. The rejections under 35 U.S.C. 103 are maintained. Additionally, applicant’s arguments are rejected under a new ground of rejection necessitated by the amendment.
7. Applicant argues in remarks:
Claims 1-4, 6-11, 13 and 14 are rejected under 35 U.S.C. § 102(a)(1) as being anticipated by Nandakumar (U.S. 2022/0138004). Withdrawal of the rejection is respectfully requested for at least the reason that the cited reference fails to disclose each and every element as claimed. Claims 5 and 12 are rejected under 35 U.S.C. § 103 as being unpatentable over Nandakumar in view of Parees et al. (U.S. 2019/0362800) ("Parees"). Withdrawal of the rejection is respectfully requested for at least the reason that, even in combination, the cited references fail to disclose or suggest all of the claimed elements.
A main difference between the cited references and the present claims lies in the use of a query converter to generate a query based on an artificial intelligence application and service specification, and to obtain artificial intelligence-related information from an artificial intelligence information sharing database, and further to allocate resources using a deployment specification generated based on the obtained information.
Differences
The following are key features of the present embodiments and distinguishing points from the cited references:
Embodiments according to the present claims as amended comprise a configuration in which:
a query converter generates a query based on an artificial intelligence application and service specification;
the generated query is input to an artificial intelligence information sharing database to obtain artificial intelligence-related information; and
resources are allocated using a deployment specification generated based on the obtained artificial intelligence-related information.
Accordingly, the present embodiments provide a technical framework that interprets AI application and service specifications to dynamically retrieve AI-related information and generate deployment specifications for resource allocation.
This is fundamentally different from merely executing predefined AI pipelines. Please refer to the following section of the present specification:
[0048] Referring to FIG. 1, the method according to the embodiment of the present disclosure includes step Sl10 of receiving an artificial intelligence (AI) application and service specification, step S120 of obtaining AI-related information allocated from an AI information sharing database (DB) based on the AI application and service specification, step S130 of creating a pipeline specification corresponding to the AI application and service specification, and step S140 of allocating resources corresponding to respective pipelines using the pipeline specification.
However, the cited references do not disclose or suggest such a configuration. In particular:
Nandakumar discloses an AI solution platform that automates AI application packaging, deployment, and pipeline execution. While Nandakumar describes creating pipeline specifications and allocating computing resources, it does not disclose generating a query using a query converter based on an AI application and service specification, nor querying an AI information sharing database to obtain AI-related information for generating a deployment specification. Parees discloses predicting resource usage in a software development pipeline and allocating additional resources when necessary. However, Parees does not disclose:
AI application and service specifications,
A query converter,
An AI information sharing database, or
Generating a deployment specification based on retrieved AI-related information.
Therefore, neither Nandakumar nor Parees, nor their combination, teaches or suggests the present embodiments' key feature of generating queries from AI service specifications and using database-derived AI information to generate deployment specifications for resource allocation.
Unlike the cited references, the present embodiments are not limited to simply generating an AI pipeline and allocating computing resources. Instead, the embodiments include a structured technical flow of: "AI application and service specification --query conversion --querying an AI information sharing database --obtaining AI-related information ->generating a deployment specification --allocating resources."
This enables more context-aware and optimized resource allocation for EdgeCPS environments, which is neither taught nor suggested by the cited references. Accordingly, the present claims are clearly distinguished from the cited references.
To summarize, present independent claims 1 and 8 as amended correspond to embodiments including the following features:
Generating, by a query converter, a query based on the artificial intelligence application and service specification;
Inputting the generated query to an artificial intelligence information sharing database to obtain artificial intelligence-related information; and
Allocating resources using a deployment specification generated based on the obtained artificial intelligence-related information.
These limitations emphasize the technical distinction over Nandakumar and Parees, which do not disclose query-based retrieval of AI-related information from a dedicated database or the use of such information to generate deployment specifications. In view of the foregoing, the cited references fail to support the rejection of the independent claims as amended, and further fail to support the rejection of the dependent claims for at least the reasons discussed in connection with the independent claims. Withdrawal of the rejections is therefore appropriate.
8. With the newly amended claims, the overall scope of the claim does not read the same way it
did before. Therefore, new art and combination thereof was introduced to better suit the new scope of
the claims.
9. Examiner notes that Applicant states that Nandakumar discloses an AI solution platform that automates AI application packaging, deployment, and pipeline execution. Nandakumar describes creating pipeline specifications and allocating computing resources. However, Nandakumar does not disclose generating a query using a query converter based on an AI application and service specification, nor querying an AI information sharing database to obtain AI-related information for generating a deployment specification.
10. Examiner agrees that although Nandakumar teaches of data cleansing, filtering, and bringing extracted data to a format that can be fed into the AI model ([0066]), Nandakumar does not explicitly teach of the querying process outlined in the newly amended claims. However, in analogous art, Gold teaches:
[0287] The example method depicted in FIG. 13 also includes generating (1306), at the storage system(s) (1120), a dataset (1356) that includes one or more of the multiple data objects (1352a-1352n) such that each data object in the dataset (1356) shares the one or more attributes of data specified by the query (1354). Generating (1306), at the storage system(s) (1120), the dataset (1356) that includes the one or more of the multiple data objects (1352a-1352n) such that each data object in the dataset (1356) shares the one or more attributes of data specified by the query (1354) may be implemented by a query processing module or controller of the storage system(s) (1120) searching through an index of every stored data object, where the metadata for each given data object is accessed to determine whether the metadata describes attributes of the corresponding data for the given data object satisfy the query in accordance with the one or more attributes of data, where the one or more attributes of data may be parameters of the received (1304) message. In this way, for each data object that satisfies the query, the data object may be added to the dataset (1356)—where the addition of the data object may be implemented through creation of metadata corresponding to the dataset (1356) that references each data object that has been added to the dataset (1356). After iterating through each stored data object, the dataset (1356) may be defined and ready to transmit. In some examples, partial results may be transmitted in response to one or more portions of the results being generated prior to completion of the entire set of results (1454).
[0289] For further explanation, FIG. 14 sets a forth flow chart illustrating an example method of storage system query processing within an artificial intelligence and machine learning infrastructure (1100) according to some embodiments of the present disclosure.
[0307] The example method depicted in FIG. 16 also includes identifying (1610), in dependence upon one or more machine learning models (1616) to be executed on the GPU servers (1618), one or more transformations to apply to the dataset (1606). The one or more transformations to apply to the dataset (1606) may include, for example, performing scaling transformations to standardize the range of independent variables or features of data, performing decomposition transformations to decompose features that represent a complex concept into constituent parts (e.g., decomposing a date that has day and time components an hour of the day constituent part), performing aggregation transformations to aggregate multiple features into a single feature (e.g., instances for each time a customer logged into a system could be aggregated into a count feature that identifies the number of logins), and many others.
[0308] The example method depicted in FIG. 16 also includes generating (1612), by the storage system (1604) in dependence upon the one or more transformations, a transformed dataset (1614). The transformed dataset (1614) may be embodied, for example, as vector that can serve as input to a machine learning model, as a tensor that can serve as an input to a machine learning model, and so on. Readers will appreciate that prior to actually generating (1612) the transformed dataset (1614), the storage system (1604) may perform other operations to prepare the dataset (1606) for use by the machine learning models that are supported by the artificial intelligence infrastructure (1602). For example, the storage system (1604) may select data for inclusion in the transformed dataset (1614), format the data to ensure that data formats are consistent for data received from different sources, clean the data to discard unwanted data, remove duplicated data, delete unusable data, handle missing data, or perform other preprocessing operations.
[0326] The artificial intelligence infrastructure (2002) depicted in FIG. 20 may be configured to support the execution of one or more machine learning models. Such machine learning models may consist of one or more machine learning algorithms that are executed on one or more of the GPU servers (2008); [0341] The example method depicted in FIG. 22 also includes scheduling (2204), by a unified management plane (2202), one or more transformations for one or more of the storage systems (2004) to apply to the dataset (2006). The unified management plane (2202) depicted in FIG. 22 may be embodied, for example, as a module of computer program instructions executing on computer hardware such as one or more CPUs. The unified management plane (2202) may be configured to monitor and manage all elements within the artificial intelligence infrastructure (2002), including the storage systems (2004), the GPU servers (2018), and any devices (e.g., network switches) that enable data communications between the storage systems (2004) and the GPU servers (2018). The unified management plane (2202) may be configured to perform tasks such as, for example, scheduling tasks such as one or more dataset transformations to be performed by one or more of the storage systems (2004), scheduling tasks such as executing of one or more machine learning algorithms on the one or more GPU servers (2018), managing the amount of storage system resources that are made available for performing one or more dataset transformations by one or more of the storage systems (2004), managing the amount of GPU server resources that are made available for executing of one or more machine learning algorithms on the one or more GPU servers (2018), managing data paths between the one or more storage systems (2004) and the one or more GPU servers (2018), and so on
[0342] Readers will appreciate that, because the unified management plane (2202) has insights into both the storage systems (2004) and the GPU servers (2018) via monitoring both the storage systems (2004) and the GPU servers (2018), the unified management plane (2202) can manage both the storage systems (2004) and the GPU servers (2018) in a way so as to optimize interactions between the storage systems (2004) and the GPU servers (2018) and also to optimize the series of steps that are needed to support the execution of a machine learning model. In fact, the unified management plane (2202) may be configured to perform automated scheduling of tasks on the storage systems (2004) and on the GPU servers (2018) based on various factors (e.g., the influx of some data, data contents, and so on). For example, the unified management plane (2202) could be configured to decide that a particular machine learning model should train against a particular dataset, the unified management plane (2202) could be configured to decide the appropriate interval to run tests and continuously re-train with new data, and so on. In such an example, the unified management plane (2202) could be configured to support automated training with continuous learning based on some triggers (e.g., new data, exceptional data).
11. Gold teaches of querying an AI database and extracting relevant AI information as a dataset. That dataset is used to generate deployment specification and allocated resources to an AI infrastructure. Together, Nandakumar and Gold teach the limitations of the newly amended claims.
12. Additionally, Applicant argues that the combination of Nandakumar and Parees neither teaches or suggests the present embodiments' key feature of generating queries from AI service specifications and using database-derived AI information to generate deployment specifications for resource allocation. The combination of Nandakumar and Gold has remedied this. Additionally, claims 4-7 and 11-14 depend from and further limit amended claims 1 and 8 and are therefore also rejected under 35 U.S.C 103. The full rejection can be found in the 35 U.S.C. 103 rejection section below.
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
13. Claims 1, 4, 6-8, 11, and 13-14 are rejected under 35 U.S.C. 103 as being unpatentable over Nandakumar US 20220138004 A1 in view of Gold et al. US 20190121889 A1.
14. With regard to claim 1, Nandakumar teaches:
An artificial intelligence application provision method for supporting Edge computing for Cyber-Physical Systems (EdgeCPS), comprising:
receiving an artificial intelligence application and service specification ([0002] The present disclosure relates to the field of artificial intelligence type computers and digital data processing systems and corresponding data processing methods and products for emulation of intelligence, machine learning systems, and artificial neural networks; in particular, a data processing method and system for automated construction, resource provisioning, data processing, feature generation, architecture selection, pipeline configuration, hyperparameter optimization, evaluation, execution, production, and deployment of machine learning models in an artificial intelligence solution development lifecycle; [0018] An object of the present disclosure is an executor engine for constructing and/orchestrating the execution of a pipeline. In accordance with certain aspects of the present disclosure, an executor engine may comprise a module for controlling block and pipeline tasks, functions, and processes. In accordance with certain exemplary embodiments, an execution engine may coordinate pipeline elements, processes, and functions by configuring specifications; allocating elastic provisioning-deprovisioning execution of resources and the control of task transports to local and external resources; enabling a block or pipeline script to be transported to and from computing resources; and accessing and retrieving resources via one or more API. In accordance with certain exemplary embodiments, task execution may be conducted on one or more target resources including, but not limited to, one or more cloud/remote server, multi-core workstations, distributed computing systems, supercomputers, or combinations thereof and the like. In accordance with certain exemplary embodiments, an executor engine may enable user-defined scaling or configuration for pipeline execution. A configuration may comprise the specifications of an external computing system, connection channel, communication protocol, technology binding, memory allocation, queues, computing duration, and data transport/management options; Examiner’s Note: Examiner’s Note: Nandakumar teaches of a method for pipeline configuration and resource application for AI solutions. These AI solutions are analogous with the AI application, while the configuration information is analogous with service specification.);
obtaining artificial intelligence-related information allocated from an artificial intelligence information sharing database based on the artificial intelligence application and service specification (0002] The present disclosure relates to the field of artificial intelligence type computers and digital data processing systems and corresponding data processing methods and products for emulation of intelligence, machine learning systems, and artificial neural networks; in particular, a data processing method and system for automated construction, resource provisioning, data processing, feature generation, architecture selection, pipeline configuration, hyperparameter optimization, evaluation, execution, production, and deployment of machine learning models in an artificial intelligence solution development lifecycle; [0065] 1. Data Extraction. This is the first step in the process where the user extracts the data needed for building the AI solution. The data can be extracted from various external sources like structured databases, video feeds, image streams, and the like. Examples of typical data sources may include structured data stored in a SQL Store like Oracle database; data stored in a distributed data store like HDFS or S3; video and image streams; and text data from external sources like URLs and RSS feeds; Examiner’s Note: Nandakumar teaches of a method for pipeline configuration and resource application for AI solutions. These AI solutions are analogous with the AI application, while the configuration information is analogous with service specification. The first step in initializing the AI solution is to extract data needed for building the AI solution from a database.);
creating a pipeline specification corresponding to the artificial intelligence application and service specification ([0018] An object of the present disclosure is an executor engine for constructing and/orchestrating the execution of a pipeline. In accordance with certain aspects of the present disclosure, an executor engine may comprise a module for controlling block and pipeline tasks, functions, and processes. In accordance with certain exemplary embodiments, an execution engine may coordinate pipeline elements, processes, and functions by configuring specifications; allocating elastic provisioning-deprovisioning execution of resources and the control of task transports to local and external resources; enabling a block or pipeline script to be transported to and from computing resources; and accessing and retrieving resources via one or more API. In accordance with certain exemplary embodiments, task execution may be conducted on one or more target resources including, but not limited to, one or more cloud/remote server, multi-core workstations, distributed computing systems, supercomputers, or combinations thereof and the like. In accordance with certain exemplary embodiments, an executor engine may enable user-defined scaling or configuration for pipeline execution. A configuration may comprise the specifications of an external computing system, connection channel, communication protocol, technology binding, memory allocation, queues, computing duration, and data transport/management options; Examiner’s Note: The pipeline is constructed based on configuration information.); and
Although Nandakumar teaches of creating pipeline specifications and allocating computing resources, Nandakumar fails to explicitly teach allocating resources corresponding to respective pipelines using the pipeline specification, wherein the obtaining of the artificial intelligence-related information comprises: generating, by a query converter, a query based on the artificial intelligence application and service specification; and inputting the generated query to the artificial intelligence information sharing database to obtain artificial intelligence-related information, and wherein the allocating of the resources comprises: allocating the resources using a deployment specification generated based on the obtained artificial intelligence-related information.
However, in analogous art, Gold teaches:
allocating resources corresponding to respective pipelines using the pipeline specification, wherein the obtaining of the artificial intelligence-related information comprises:
generating, by a query converter, a query based on the artificial intelligence application and service specification ([0287] The example method depicted in FIG. 13 also includes generating (1306), at the storage system(s) (1120), a dataset (1356) that includes one or more of the multiple data objects (1352a-1352n) such that each data object in the dataset (1356) shares the one or more attributes of data specified by the query (1354). Generating (1306), at the storage system(s) (1120), the dataset (1356) that includes the one or more of the multiple data objects (1352a-1352n) such that each data object in the dataset (1356) shares the one or more attributes of data specified by the query (1354) may be implemented by a query processing module or controller of the storage system(s) (1120) searching through an index of every stored data object, where the metadata for each given data object is accessed to determine whether the metadata describes attributes of the corresponding data for the given data object satisfy the query in accordance with the one or more attributes of data, where the one or more attributes of data may be parameters of the received (1304) message. In this way, for each data object that satisfies the query, the data object may be added to the dataset (1356)—where the addition of the data object may be implemented through creation of metadata corresponding to the dataset (1356) that references each data object that has been added to the dataset (1356). After iterating through each stored data object, the dataset (1356) may be defined and ready to transmit. In some examples, partial results may be transmitted in response to one or more portions of the results being generated prior to completion of the entire set of results (1454); [0307] The example method depicted in FIG. 16 also includes identifying (1610), in dependence upon one or more machine learning models (1616) to be executed on the GPU servers (1618), one or more transformations to apply to the dataset (1606). The one or more transformations to apply to the dataset (1606) may include, for example, performing scaling transformations to standardize the range of independent variables or features of data, performing decomposition transformations to decompose features that represent a complex concept into constituent parts (e.g., decomposing a date that has day and time components an hour of the day constituent part), performing aggregation transformations to aggregate multiple features into a single feature (e.g., instances for each time a customer logged into a system could be aggregated into a count feature that identifies the number of logins), and many others; Examiner’s Note: A query is established to create a dataset according to the attributes of data specified by the query..); and
inputting the generated query to the artificial intelligence information sharing database to obtain artificial intelligence-related information ([0287] The example method depicted in FIG. 13 also includes generating (1306), at the storage system(s) (1120), a dataset (1356) that includes one or more of the multiple data objects (1352a-1352n) such that each data object in the dataset (1356) shares the one or more attributes of data specified by the query (1354). Generating (1306), at the storage system(s) (1120), the dataset (1356) that includes the one or more of the multiple data objects (1352a-1352n) such that each data object in the dataset (1356) shares the one or more attributes of data specified by the query (1354) may be implemented by a query processing module or controller of the storage system(s) (1120) searching through an index of every stored data object, where the metadata for each given data object is accessed to determine whether the metadata describes attributes of the corresponding data for the given data object satisfy the query in accordance with the one or more attributes of data, where the one or more attributes of data may be parameters of the received (1304) message. In this way, for each data object that satisfies the query, the data object may be added to the dataset (1356)—where the addition of the data object may be implemented through creation of metadata corresponding to the dataset (1356) that references each data object that has been added to the dataset (1356). After iterating through each stored data object, the dataset (1356) may be defined and ready to transmit. In some examples, partial results may be transmitted in response to one or more portions of the results being generated prior to completion of the entire set of results (1454); [0289] For further explanation, FIG. 14 sets a forth flow chart illustrating an example method of storage system query processing within an artificial intelligence and machine learning infrastructure (1100) according to some embodiments of the present disclosure; [0308] The example method depicted in FIG. 16 also includes generating (1612), by the storage system (1604) in dependence upon the one or more transformations, a transformed dataset (1614). The transformed dataset (1614) may be embodied, for example, as vector that can serve as input to a machine learning model, as a tensor that can serve as an input to a machine learning model, and so on. Readers will appreciate that prior to actually generating (1612) the transformed dataset (1614), the storage system (1604) may perform other operations to prepare the dataset (1606) for use by the machine learning models that are supported by the artificial intelligence infrastructure (1602). For example, the storage system (1604) may select data for inclusion in the transformed dataset (1614), format the data to ensure that data formats are consistent for data received from different sources, clean the data to discard unwanted data, remove duplicated data, delete unusable data, handle missing data, or perform other preprocessing operations; Examiner’s Note: A dataset is created based on the attributes of the query. This occurs in a storage system processing method within an artificial intelligence infrastructure to obtain relevant AI information.), and wherein the allocating of the resources comprises:
allocating the resources using a deployment specification generated based on the obtained artificial intelligence-related information ([0326] The artificial intelligence infrastructure (2002) depicted in FIG. 20 may be configured to support the execution of one or more machine learning models. Such machine learning models may consist of one or more machine learning algorithms that are executed on one or more of the GPU servers (2008); [0341] The example method depicted in FIG. 22 also includes scheduling (2204), by a unified management plane (2202), one or more transformations for one or more of the storage systems (2004) to apply to the dataset (2006). The unified management plane (2202) depicted in FIG. 22 may be embodied, for example, as a module of computer program instructions executing on computer hardware such as one or more CPUs. The unified management plane (2202) may be configured to monitor and manage all elements within the artificial intelligence infrastructure (2002), including the storage systems (2004), the GPU servers (2018), and any devices (e.g., network switches) that enable data communications between the storage systems (2004) and the GPU servers (2018). The unified management plane (2202) may be configured to perform tasks such as, for example, scheduling tasks such as one or more dataset transformations to be performed by one or more of the storage systems (2004), scheduling tasks such as executing of one or more machine learning algorithms on the one or more GPU servers (2018), managing the amount of storage system resources that are made available for performing one or more dataset transformations by one or more of the storage systems (2004), managing the amount of GPU server resources that are made available for executing of one or more machine learning algorithms on the one or more GPU servers (2018), managing data paths between the one or more storage systems (2004) and the one or more GPU servers (2018), and so on; [0342] Readers will appreciate that, because the unified management plane (2202) has insights into both the storage systems (2004) and the GPU servers (2018) via monitoring both the storage systems (2004) and the GPU servers (2018), the unified management plane (2202) can manage both the storage systems (2004) and the GPU servers (2018) in a way so as to optimize interactions between the storage systems (2004) and the GPU servers (2018) and also to optimize the series of steps that are needed to support the execution of a machine learning model. In fact, the unified management plane (2202) may be configured to perform automated scheduling of tasks on the storage systems (2004) and on the GPU servers (2018) based on various factors (e.g., the influx of some data, data contents, and so on). For example, the unified management plane (2202) could be configured to decide that a particular machine learning model should train against a particular dataset, the unified management plane (2202) could be configured to decide the appropriate interval to run tests and continuously re-train with new data, and so on. In such an example, the unified management plane (2202) could be configured to support automated training with continuous learning based on some triggers (e.g., new data, exceptional data).).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the teachings of Nandakumar with the teachings of Gold of allocating resources corresponding to respective pipelines using the pipeline specification, wherein the obtaining of the artificial intelligence-related information comprises: generating, by a query converter, a query based on the artificial intelligence application and service specification; and inputting the generated query to the artificial intelligence information sharing database to obtain artificial intelligence-related information, and wherein the allocating of the resources comprises: allocating the resources using a deployment specification generated based on the obtained artificial intelligence-related information. Nandakumar teaches of creating pipeline specifications and allocating computing resources. Similarly, Gold teaches of transforming a dataset and using it as input into a machine learning model that is executed by an artificial intelligence infrastructure. Resources and tasks used by the machine learning model that is executed by an artificial intelligence infrastructure are able to be automatically scheduled based on the contents of the data. Additionally, Gold teaches of a querying process that includes cleaning the data and extracting relevant data objects according to the specified query. For example, the storage system (1604) may select data for inclusion in the transformed dataset (1614), format the data to ensure that data formats are consistent for data received from different sources, clean the data to discard unwanted data, remove duplicated data, delete unusable data, handle missing data, or perform other preprocessing operations. As such, the computing resources provided by the GPU servers (1618) may be reserved for actually executing the machine learning algorithms against an already prepared transformed dataset (1614), rather than having the computing resources provided by the GPU servers (1618) burdened with the task of preparing data for ingestion by the machine learning algorithms, as discussed in Gold ([0308]; [0309]).
15. With regard to claim 4, Nandakumar further teaches:
wherein the deployment specification includes detailed specifications including global information, basic information, system information, and application information, and the global information includes information applied to remaining detailed specifications ([0018] An object of the present disclosure is an executor engine for constructing and/orchestrating the execution of a pipeline. In accordance with certain aspects of the present disclosure, an executor engine may comprise a module for controlling block and pipeline tasks, functions, and processes. In accordance with certain exemplary embodiments, an execution engine may coordinate pipeline elements, processes, and functions by configuring specifications; allocating elastic provisioning-deprovisioning execution of resources and the control of task transports to local and external resources; enabling a block or pipeline script to be transported to and from computing resources; and accessing and retrieving resources via one or more API. In accordance with certain exemplary embodiments, task execution may be conducted on one or more target resources including, but not limited to, one or more cloud/remote server, multi-core workstations, distributed computing systems, supercomputers, or combinations thereof and the like. In accordance with certain exemplary embodiments, an executor engine may enable user-defined scaling or configuration for pipeline execution. A configuration may comprise the specifications of an external computing system, connection channel, communication protocol, technology binding, memory allocation, queues, computing duration, and data transport/management options. In accordance with certain exemplary embodiments, an executor engine may automatically configure and execute tasks based on derived heuristics, meta-heuristics and one or more historical test cases tuned to common execution patterns, to determine an optimal resource allocation strategy for a user-defined ML pipeline. In accordance with various embodiments, an execution engine may construct and orchestrate execution using a task or task dependency graph comprising all the states for a pipeline program mapped to available execution resources; Examiner’s Note: The configuration includes information regarding global information, basic information, system information, and application information. These are reflected in “A configuration may comprise the specifications of an external computing system, connection channel, communication protocol, technology binding, memory allocation, queues, computing duration, and data transport/management options.”).
16. With regard to claim 6, Nandakumar further teaches:
wherein the artificial intelligence application and service specification includes information about an artificial intelligence application category, an artificial intelligence application deployment way, an artificial intelligence application type, an artificial intelligence application inference method, an artificial intelligence application inference type, or an artificial intelligence application inference target ([0018] An object of the present disclosure is an executor engine for constructing and/orchestrating the execution of a pipeline. In accordance with certain aspects of the present disclosure, an executor engine may comprise a module for controlling block and pipeline tasks, functions, and processes. In accordance with certain exemplary embodiments, an execution engine may coordinate pipeline elements, processes, and functions by configuring specifications; allocating elastic provisioning-deprovisioning execution of resources and the control of task transports to local and external resources; enabling a block or pipeline script to be transported to and from computing resources; and accessing and retrieving resources via one or more API. In accordance with certain exemplary embodiments, task execution may be conducted on one or more target resources including, but not limited to, one or more cloud/remote server, multi-core workstations, distributed computing systems, supercomputers, or combinations thereof and the like. In accordance with certain exemplary embodiments, an executor engine may enable user-defined scaling or configuration for pipeline execution. A configuration may comprise the specifications of an external computing system, connection channel, communication protocol, technology binding, memory allocation, queues, computing duration, and data transport/management options; Examiner’s Note: The configuring specification includes a number of parameters such as “specifications of an external computing system, connection channel, communication protocol, technology binding, memory allocation, queues, computing duration, and data transport/management options,” which describe an application deployment way.).
17. With regard to claim 7, Nandakumar further teaches:
wherein the pipeline specification includes input/output of the artificial intelligence application, preprocessed information, a number of parameters, or characteristic information of the artificial intelligence application ([0024] In accordance with certain exemplary embodiments, the method may further comprise storing, with the at least one non-transitory computer-readable memory device, at least one software component comprising a pipeline, the pipeline comprising at least one data transport mechanism for each block in the one or more blocks. In certain embodiments, the method may further comprise storing, with the at least one non-transitory computer-readable memory device, at least one software component comprising an engine, the engine comprising one or more functions configured to execute the one or more computing tasks of the one or more blocks and provision one or more computing resource for the data processing pipeline or workflow. In certain embodiments, the method may further comprise rendering, with the at least one computer processor, a graphical user interface configured to enable a user to configure one or more input-output functions for the one or more blocks by configuring one or more graphical connectors between each block in the one or more blocks. In certain embodiments, the method may further comprise storing, with the at least one non-transitory computer-readable memory device, at least one software component comprising an adaptor, the adaptor comprising at least one function for modifying a data input format or a data output format for the block. In certain embodiments, the method may further comprise storing, with the at least one non-transitory computer-readable memory device, at least one software component comprising a service block, the service block comprising at least one function for synchronous or asynchronous data transfer with one or more external application; Examiner’s Note: Pipeline information includes input-output functions and formatting for the pipeline.).
18. Regarding claim 8, it is rejected under the same reasoning as claim 1 above. Therefore, it is rejected under the same rationale.
19. Regarding claim 11, it is rejected under the same reasoning as claim 4 above. Therefore, it is rejected under the same rationale.
10. Regarding claim 13, it is rejected under the same reasoning as claim 6 above. Therefore, it is rejected under the same rationale.
21. Regarding claim 14, it is rejected under the same reasoning as claim 7 above. Therefore, it is rejected under the same rationale.
22. Claims 5 and 12 are rejected under 35 U.S.C. 103 as being unpatentable over Nandakumar US 20220138004 A1 Gold et al. US 20190121889 A1, as applied in claim 1, in further view of Parees et al. US 20190361800 A1.
23. With regard to claim 5, Nandakumar and Gold teach the artificial intelligence application provision method of claim 1 but fails to explicitly teach further comprising: when the resources allocated to the pipelines are insufficient, transmitting a request to allocate additional resources to an artificial intelligence resource information system; and rebuilding the pipelines based on the additionally allocated resources.
However, in analogous art, Parees teaches:
further comprising:
when the resources allocated to the pipelines are insufficient, transmitting a request to allocate additional resources to an artificial intelligence resource information system ([0040] The examples, embodiments, implementations, etc., described herein may allow users of the development system 210 (e.g., programmers, developers, etc., who are implementing, coding, writing, and testing an application) to more efficiently use the development system 210. By determining (e.g., automatically determining) an estimated resource usage of a next or later stage of a development pipeline and configuring (e.g., automatically configuring) the resources for the next or late stage, this may allow the development system 210 to help ensure the resources are allocated for the next stage so that there are fewer delays in the stages of the development pipeline. This may allow for a better prediction or estimate of the computing resources that may be used in each stage of the development pipeline. This may further allow for better prediction of the correlation between the computing resources used in the different stages (e.g., the amount of computing resources used in one stage may be indicative of the amount of computing resources used in a second stage). This may further allow the users of the development system 210 to have some advanced warning that there may be insufficient resources for a next or later stage, which in turn allows the users to request or allocate additional resources for the development system 210.); and
rebuilding the pipelines based on the additionally allocated resources ([0040] The examples, embodiments, implementations, etc., described herein may allow users of the development system 210 (e.g., programmers, developers, etc., who are implementing, coding, writing, and testing an application) to more efficiently use the development system 210. By determining (e.g., automatically determining) an estimated resource usage of a next or later stage of a development pipeline and configuring (e.g., automatically configuring) the resources for the next or late stage, this may allow the development system 210 to help ensure the resources are allocated for the next stage so that there are fewer delays in the stages of the development pipeline. This may allow for a better prediction or estimate of the computing resources that may be used in each stage of the development pipeline. This may further allow for better prediction of the correlation between the computing resources used in the different stages (e.g., the amount of computing resources used in one stage may be indicative of the amount of computing resources used in a second stage). This may further allow the users of the development system 210 to have some advanced warning that there may be insufficient resources for a next or later stage, which in turn allows the users to request or allocate additional resources for the development system 210; Examiner’s Note: The configuring of next or later stages of the pipeline with the additional resources is analogous to rebuilding the pipeline based on the additionally allocated resources.).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the teachings of Nandakumar and Gold with the teachings of Parees further comprising: when the resources allocated to the pipelines are insufficient, transmitting a request to allocate additional resources to an artificial intelligence resource information system; and rebuilding the pipelines based on the additionally allocated resources. Nandakumar and Gold teach of using a query conversion and querying an AI database in order to obtain AI-relate information, and using that information to generate a deployment specification and allocate resources accordingly. Additionally, Nandakumar teaches of elastically provisioning resources ([0018]). One of ordinary skill in the art would know that elastically provisioning resources refers to a technique that automatically adds resources according to real-time workload demands. Similarly, Parees teaches of determining current and future resources for a development pipeline, and configuring the resources for the later stage of the development pipeline based on the estimated resource usage (Abstract). Additionally, Parees teaches the resource component 281 may use various techniques, methods, algorithms, etc., to determine correlations, relationships, dependencies, etc., between the amounts of computing resources used in different stages of the development pipeline for various applications. For example, the resource component 281 may use machine learning, artificial intelligence, statistical models, neural networks, clustering techniques, etc. ([0028]). The allocation of resources is based on current and historical resource usage. When resources are projected to be insufficient, users may request additional resources for the pipeline, and configuring the resources for the later stages in the pipeline ([0040]). This ensures that all stages of the development pipeline have enough resources so that the pipeline can execute efficiently with minimal interruptions and reduce the amount of delays when the development system moves to the later or next stage of the pipeline, as discussed in Parees ([0013]).
24. Regarding claim 12, it is rejected under the same reasoning as claim 5 above. Therefore, it is rejected under the same rationale.
Conclusion
THIS ACTION IS MADE FINAL. Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to AN-AN N NGUYEN whose telephone number is (571)272-6147. The examiner can normally be reached Monday-Friday 8:00-5:00 ET.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, AIMEE LI can be reached at (571) 272-4169. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/AN-AN NGOC NGUYEN/Examiner, Art Unit 2195
/Aimee Li/Supervisory Patent Examiner, Art Unit 2195