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 .
Priority
Applicant claims the benefit of prior-filed U.S. Patent Application No. 16/893,189, filed June 4, 2020, which claims the benefit of priority to U.S. Provisional Patent Application No.10 6200,537, filed September 14, 2019, which is acknowledged.
Drawings
The drawings were received on 10/24/2019. These drawings are acceptable.
Information Disclosure Statement
The information disclosure statement (IDS) submitted on the following date(s): noted below have been considered by the examiner:
08/18/2025
04/01/2025
10/01/2024
08/06/2024
03/29/2024
01/29/2024
10/26/023
08/08/2023
Double Patenting
The nonstatutory double patenting rejection is based on a judicially created doctrine grounded in public policy (a policy reflected in the statute) so as to prevent the unjustified or improper timewise extension of the “right to exclude” granted by a patent and to prevent possible harassment by multiple assignees. A nonstatutory double patenting rejection is appropriate where the conflicting claims are not identical, but at least one examined application claim is not patentably distinct from the reference claim(s) because the examined application claim is either anticipated by, or would have been obvious over, the reference claim(s). See, e.g., In re Berg, 140 F.3d 1428, 46 USPQ2d 1226 (Fed. Cir. 1998); In re Goodman, 11 F.3d 1046, 29 USPQ2d 2010 (Fed. Cir. 1993); In re Longi, 759 F.2d 887, 225 USPQ 645 (Fed. Cir. 1985); In re Van Ornum, 686 F.2d 937, 214 USPQ 761 (CCPA 1982); In re Vogel, 422 F.2d 438, 164 USPQ 619 (CCPA 1970); In re Thorington, 418 F.2d 528, 163 USPQ 644 (CCPA 1969).
A timely filed terminal disclaimer in compliance with 37 CFR 1.321(c) or 1.321(d) may be used to overcome an actual or provisional rejection based on nonstatutory double patenting provided the reference application or patent either is shown to be commonly owned with the examined application, or claims an invention made as a result of activities undertaken within the scope of a joint research agreement. See MPEP § 717.02 for applications subject to examination under the first inventor to file provisions of the AIA as explained in MPEP § 2159. See MPEP § 2146 et seq. for applications not subject to examination under the first inventor to file provisions of the AIA . A terminal disclaimer must be signed in compliance with 37 CFR 1.321(b).
The filing of a terminal disclaimer by itself is not a complete reply to a nonstatutory double patenting (NSDP) rejection. A complete reply requires that the terminal disclaimer be accompanied by a reply requesting reconsideration of the prior Office action. Even where the NSDP rejection is provisional the reply must be complete. See MPEP § 804, subsection I.B.1. For a reply to a non-final Office action, see 37 CFR 1.111(a). For a reply to final Office action, see 37 CFR 1.113(c). A request for reconsideration while not provided for in 37 CFR 1.113(c) may be filed after final for consideration. See MPEP §§ 706.07(e) and 714.13.
The USPTO Internet website contains terminal disclaimer forms which may be used. Please visit www.uspto.gov/patent/patents-forms. The actual filing date of the application in which the form is filed determines what form (e.g., PTO/SB/25, PTO/SB/26, PTO/AIA /25, or PTO/AIA /26) should be used. A web-based eTerminal Disclaimer may be filled out completely online using web-screens. An eTerminal Disclaimer that meets all requirements is auto-processed and approved immediately upon submission. For more information about eTerminal Disclaimers, refer to www.uspto.gov/patents/apply/applying-online/eterminal-disclaimer.
Claims 1-20 are rejected on the ground of nonstatutory double patenting as being unpatentable over claims 1,3-9, 11-17 and 19-20 of U.S. Patent No.11663523. Although the claims at issue are not identical, they are not patentably distinct from each other because the claims in the patent anticipate the boarder limitation in the instant application. See further details in the table below.
US Patent No. 11663523, hereinafter ‘RefDoc’ teaches the limitations as highlighted in the table and analysis below:
U.S. Application No. 18136780
Examiner notes:
U.S. Patent No. 11663523
(Reference Patent, hereinafter ‘RefDoc’)
Claim 1
A computer-implemented method comprising:
receiving a first input, wherein the first input identifies a location of data that is used for creating a machine learning application;
receiving a second input, wherein the second input identifies a problem to generate a solution using the machine learning application;
receiving a third input, wherein the third input identifies one or more requirements for the machine learning application in generating the solution, wherein the requirements are a plurality metrics;
determining one or more components from a library to use for generating a machine learning model to prototype the machine learning application to comply with the one or more requirements,
wherein the determining the one or more components comprises:
identifying one or more characteristics of the solution for the machine learning application;
and identifying the one or more components based at least in part on correlating the one or more characteristics with metadata of the one or more components;
identifying one or more application programming interfaces stored in the library, wherein the application programming interfaces link the one or more components to form the machine learning application;
compiling the machine learning application from the one or more identified application programming interfaces;
and storing the machine learning application in a memory.
Examiner notes that the:
RefDoc limitations anticipates the preamble in the instant case as the instant claim because the RefDoc are directed to a type of computer-implemented methods.
RefDoc limitations anticipates the limitations in the instant case as the instant claim limitations because they overlap in scope (e.g. directed to same claimed features); Noted in italicized font
The non-italicized font indicate the narrow scope of the RefDoc; thus the instant case represent a broader scope that is anticipated by the limitations in the RefDoc.
RefDoc limitations anticipates limitation in the instant case as the instant claim because the RefDoc are directed to a type of compiling the machine learning application for testing and compiling for use in a machine learning function based on the identified interfaces claimed in the RefDoc : wherein the application programming interfaces link the one or more components to form the machine learning application
Claim 1
A method for automatically creating a machine learning application bespoke to a hardware platform for use in a production environment, the method comprising:
receiving a first input, wherein the first input identifies a location of data that is used for creating the machine learning application;
receiving a second input, wherein the second input identifies a problem to generate a solution using the machine learning application;
receiving a third input, wherein the third input identifies one or more requirements for the machine learning application in generating the solution, wherein the requirements are a plurality metrics;
determining one or more components from a library to use for generating a machine learning model to prototype the machine learning application to comply with the one or more requirements,
wherein the one or more components from the library perform production functions,
wherein the determining the one or more components comprises:
identifying one or more characteristics of the solution for the machine learning application;
and identifying the one or more components based at least in part on correlating the one or more characteristics with metadata of the one or more components;
identifying one or more application programming interfaces stored in the library, wherein the application programming interfaces link the one or more components to form the machine learning application;
storing the machine learning application in a memory;
testing the machine learning application according to the requirements; and based on the machine learning application meeting the requirements,
compiling a machine learning function for the hardware platform for use in the production environment.
Claim 2
The computer-implemented method of claim 1, further comprising
testing the machine learning application according to the requirements.
Examiner notes that the RefDoc limitations anticipates the limitations of the current claim.
Claim 1
testing the machine learning application according to the requirements; and based on the machine learning application meeting the requirements,
Claim 3:
The computer-implemented method of claim 1,
wherein the machine learning application is customized for each infrastructure hardware layer by selection of the components from the library.
Examiner notes that the RefDoc limitations anticipates the limitations of the current claim.
Claim 3:
The method of claim 1,
wherein the machine learning application is customized for each infrastructure hardware layer by selection of the components from the library.
Claim 4
The computer-implemented method of claim 1,
further comprising selecting from a plurality of pipelines for the machine learning model using machine learning to match the requirements to automatically weigh and customize a selected pipeline.
Examiner notes that the RefDoc limitations anticipates the limitations of the current claim.
Claim 4
The method of claim 1,
further comprising selecting from a plurality of pipelines for the machine learning model using machine learning to match the requirements to automatically weigh and customize a selected pipeline.
Claim 5
The computer-implemented method of claim 1,
wherein the requirements comprise at least one of quality of service (QoS) metrics, key performance indicator (KPI), inference query metrics, performance metrics, sentiment metrics, and testing metrics.
Examiner notes that the RefDoc limitations anticipates the limitations of the current claim.
Claim 5
The method of claim 1,
wherein the requirements comprise at least one of quality of service (QoS) metrics, key performance indicator (KPI), inference query metrics, performance metrics, sentiment metrics, and testing metrics.
Claim 6
The computer-implemented method of claim 1,
wherein the requirements comprise at least one of training, power, maintainability, modularity, and reusability metrics.
Examiner notes that the RefDoc limitations anticipates the limitations of the current claim.
Claim 6
The method of claim 1,
wherein the requirements comprise at least one of training, power, maintainability, modularity, and reusability metrics.
Claim 7:
The computer-implemented method of claim 1,
wherein the components from the library comprise at least one of application programming interfaces, pipelines, workflows, micro-services, software modules, and infrastructure modules.
Examiner notes that the RefDoc limitations anticipates the limitations of the current claim.
Claim 7:
The method of claim 1,
wherein the components from the library comprise at least one of application programming interfaces, pipelines, workflows, micro- services, software modules, and infrastructure modules.
Claim 8
The computer-implemented method of claim 1, wherein the one or more library components
comprise production functions that comprise at least one of load balancing, fail-over caching, security, test capability, audit function, scalability, predicted performance, training models, predicted power, maintenance, debug function, and reusability.
Examiner notes that the RefDoc limitations anticipates the limitations of the current claim.
Claim 8
The method of claim 1,
{From claim 1: wherein the one or more components from the library perform production functions,}
wherein the production functions comprise at least one of load balancing, fail-over caching, security, test capability, audit function, scalability, predicted performance, training models, predicted power, maintenance, debug function, and reusability.
Claim 9:
A non-transitory machine-readable storage medium storing a plurality of instructions configured to cause a data processing apparatus to perform operations for automatically creating a machine learning application , the operations comprising:
receiving a first input, wherein the first input identifies a location of data that is used for creating on the machine learning application; receiving a second input, wherein the second input identifies a problem to generate a solution using the machine learning application;
receiving a third input, wherein the third input identifies one or more requirements for the machine learning application in generating the solution, wherein the requirements are a plurality metrics;
determining one or more components from a library to use for generating a machine learning model to prototype the machine learning application to comply with the one or more requirements,
wherein the determining the one or more components comprises: identifying one or more characteristics of the solution for the machine learning application;
and identifying the one or more components based at least in part on correlating the one or more characteristics with metadata of the one or more components;
identifying one or more application programming interfaces stored in the library, wherein the application programming interfaces link the one or more components to form the machine learning application;
compiling the machine learning application from the one or more identified application programming interfaces;
and storing the machine learning application in a memory.
Examiner notes that the RefDoc limitations anticipates the limitations of the current claim for rationale similar to those noted in the claim 1 analysis.
Claim 9:
A non-transitory machine-readable storage medium storing a plurality of instructions configured to cause a data processing apparatus to perform operations for automatically creating a machine learning application bespoke to a hardware platform for use in a production environment, the operations comprising:
receiving a first input, wherein the first input identifies a location of data that is used for creating on the machine learning application; receiving a second input, wherein the second input identifies a problem to generate a solution using the machine learning application;
receiving a third input, wherein the third input identifies one or more requirements for the machine learning application in generating the solution, wherein the requirements are a plurality metrics;
determining one or more components from a library to use for generating a machine learning model to prototype the machine learning application to comply with the one or more requirements,
wherein the one or more components from the library perform production functions,
wherein the determining the one or more components comprises: identifying one or more characteristics of the solution for the machine learning application;
and identifying the one or more components based at least in part on correlating the one or more characteristics with metadata of the one or more components;
identifying one or more application programming interfaces stored in the library, wherein the application programming interfaces link the one or more components to form the machine learning application;
storing the machine learning application in a memory;
testing the machine learning application according to the requirements; and based on the machine learning application meeting the requirements,
compiling a machine learning function for the hardware platform for use in the production environment.
Claim 10
The non-transitory machine-readable storage medium of claim 9,
wherein the operations further comprise further comprising
testing the machine learning application according to the requirements.
Examiner notes that the RefDoc limitations anticipates the limitations of the current claim.
Claim 9
testing the machine learning application according to the requirements;
Claim 11
The non-transitory machine-readable storage medium of 9,
wherein the machine learning application is customized for each infrastructure hardware layer by selection of the components from the library.
Examiner notes that the RefDoc limitations anticipates the limitations of the current claim.
Claim 11
The transitory machine-readable storage medium of claim 9,
wherein the machine learning application is customized for each infrastructure hardware layer by selection of the components from the library.
Claim 12
The non-transitory machine-readable storage medium of claim 9,
including instructions configured to cause the data processing apparatus to perform further operations comprising
selecting from a plurality of pipelines for the machine learning model using machine learning to match the requirements to automatically weigh and customize a selected pipeline
Examiner notes that the RefDoc limitations anticipates the limitations of the current claim.
Claim 12
The transitory machine-readable storage medium of claim 9,
including instructions configured to cause the data processing apparatus to perform further operations comprising
selecting from a plurality of pipelines for the machine learning model using machine learning to match the requirements to automatically weigh and customize a selected pipeline.
Claim 13
The non-transitory machine-readable storage medium of claim 9,
wherein the requirements comprise at least one of quality of service (QoS) metrics, key performance indicator (KPI), inference query metrics, performance metrics, sentiment metrics, and testing metrics.
Examiner notes that the RefDoc limitations anticipates the limitations of the current claim.
Claim 13
The transitory machine-readable storage medium of claim 9,
wherein the requirements comprise at least one of quality of service (QoS) metrics, key performance indicator (KPI), inference query metrics, performance metrics, sentiment metrics, and testing metrics.
Claim 14
The non-transitory machine-readable storage medium of claim 9,
wherein the requirements comprise at least one of training, power, maintainability, modularity, and reusability metrics.
Examiner notes that the RefDoc limitations anticipates the limitations of the current claim.
Claim 14
The transitory machine-readable storage medium of claim 9,
wherein the requirements comprise at least one of training, power, maintainability, modularity, and reusability metrics.
Claim 15
The non-transitory machine-readable storage medium of claim 9,
wherein the components from the library comprise at least one of pipelines, workflows, micro-services, software modules, and infrastructure modules.
Examiner notes that the RefDoc limitations anticipates the limitations of the current claim.
Claim 15
The transitory machine-readable storage medium of claim 9,
wherein the components from the library comprise at least one of pipelines, workflows, micro-services, software modules, and infrastructure modules.
Claim 16
The non-transitory machine-readable storage medium of 9,
wherein the one or more components from the library
perform production functions that comprise at least one of load balancing, fail-over caching, security, test capability, audit function, scalability, predicted performance, training models, predicted power, maintenance, debug function, and reusability.
Examiner notes that the RefDoc limitations anticipates the limitations of the current claim.
Claim 16
The transitory machine-readable storage medium of claim 9,
{From claim 9: wherein the one or more components from the library perform production functions,}
wherein the production functions comprise at least one of load balancing, fail-over caching, security, test capability, audit function, scalability, predicted performance, training models, predicted power, maintenance, debug function, and reusability.
Claim 17
A system for automatically creating a machine learning application , comprising: one or more data processors; and a non-transitory computer-readable storage medium containing instructions which, when executed on the one or more data processors, cause the one or more data processors to perform operations comprising:
receiving a first input, wherein the first input identifies a location of data that is used for creating on the machine learning application;
receiving a second input, wherein the second input identifies a problem to generate a solution using the machine learning application;
receiving a third input, wherein the third input identifies one or more requirements for the machine learning application in generating the solution, wherein the requirements are a plurality metrics;
determining one or more components from a library to use for generating a machine learning model to prototype the machine learning application to comply with the one or more requirements,
wherein the determining the one or more components comprises: identifying one or more characteristics of the solution for the machine learning application;
and identifying the one or more components based at least in part on correlating the one or more characteristics with metadata of the one or more components;
identifying one or more application programming interfaces stored in the library, wherein the application programming interfaces link the one or more components to form the machine learning application;
compiling the machine learning application from the one or more identified application programming interfaces;
and storing the machine learning application in a memory.
Examiner notes that the
RefDoc limitations anticipates the limitations of the current claim for rationale similar to those noted in the claim 1 analysis.
Claim 17
A system for automatically creating a machine learning application for use in a production environment, comprising: one or more data processors; and a non-transitory computer-readable storage medium containing instructions which, when executed on the one or more data processors, cause the one or more data processors to perform operations comprising:
receiving a first input, wherein the first input identifies a location of data that is used for creating on the machine learning application;
receiving a second input, wherein the second input identifies a problem to generate a solution using the machine learning application;
receiving a third input, wherein the third input identifies one or more requirements for the machine learning application in generating the solution, wherein the requirements are a plurality metrics;
determining one or more components from a library to use for generating a machine learning model to prototype the machine learning application to comply with the one or more requirements,
wherein the one or more components from the library perform production functions, wherein the determining the one or more components comprises: identifying one or more characteristics of the solution for the machine learning application;
and identifying the one or more components based at least in part on correlating the one or more characteristics with metadata of the one or more components;
identifying one or more application programming interfaces stored in the library, wherein the application programming interfaces link the one or more components to form the machine learning application;
storing the machine learning application in a memory;
testing the machine learning application according to the requirements; and based on the machine learning application meeting the requirements,
compiling a machine learning function for a hardware platform for use in the production environment.
Claim 18
The system of claim 17, wherein the operations further comprise
testing the machine learning application according to the requirements.
Examiner notes that the RefDoc limitations anticipates the limitations of the current claim.
Claim 17
testing the machine learning application according to the requirements;
Claim 19
The system of claim 17, wherein the machine learning application is customized for each infrastructure hardware layer by selection of the components from the library.
Examiner notes that the RefDoc limitations anticipates the limitations of the current claim.
Claim 19
The system of claim 17, wherein the machine learning application is customized for each infrastructure hardware layer by selection of the components from the library.
Claim 20
The system of claim 17, wherein the non-transitory computer-readable storage medium includes further instructions which,
when executed on the one or more data processors, cause the one or more data processors to perform further operations comprising selecting from a plurality of pipelines for the machine learning model using machine learning to match the requirements to automatically weight and customize a selected pipeline.
Examiner notes that the RefDoc limitations anticipates the limitations of the current claim.
Claim 20
The system of claim 17, wherein the non-transitory computer- readable storage medium includes further instructions which,
when executed on the one or more data processors, cause the one or more data processors to perform further operations comprising selecting from a plurality of pipelines for the machine learning model using machine learning to match the requirements to automatically weight and customize a selected pipeline.
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.
Claims 1-20 are rejected under 35 U.S.C. 103 as being unpatentable over Sanketi et al. (US 11403540, hereinafter ‘San’) in view of Doshi et al. (US 11373119, hereinafter “Dos’).
Regarding independent claim 1, San teaches a computer-implemented method comprising: (in 2:11-20: One example aspect of the present disclosure is directed to a computing device. The computing device includes one or more processors and one or more non-transitory computer-readable media. The one or more non-transitory computer-readable media store one or more applications implemented by the one or more processors; one or more machine-learned models; and instructions that, when executed by the one or more processors, cause the computing device to implement an on-device machine learning platform that performs operations…)
receiving a first input, wherein the first input identifies a location of data that is used for creating a machine learning application; (in 1:30-38: In addition, in some instances, the trained model can be stored at the centralized location. In order to receive an inference from the model, the user computing device is required to transmit input data [receiving a first input] to the server computing device over the network [wherein the first input identifies a location of data that is used for creating a machine learning application as required location], wait for the server device to implement the machine-learned model to produce inference(s) based on the transmitted data, and then receive the inference(s) from the server computing device again over the network.)
receiving a second input, wherein the second input identifies a problem to generate a solution using the machine learning application; (in 3:64-4:13: The on-device machine learning platform may be in the form of one or more computer programs stored locally on a computing device or terminal (e.g., a smartphone or tablet), which are configured, when executed by the user device or terminal [receiving a second input, wherein the second input identifies a problem to generate a solution using the machine learning application as request to execute an on-demand learning platform on user device], to perform machine learning management operations which enable performance of on-device machine learning functions on behalf of one or more locally-stored applications, routines, or other local clients. At least some of the on-device machine learning functions may be performed using one or more machine learning engines implemented locally on the computing device or terminal. Performance of the on-device machine learning functions on behalf of the one or more locally-stored applications or routines (which may be referred to as “clients”) may be provided as a centralized service to those clients, which may interact with the on-device machine learning platform via one or more application programming interfaces (APIs))
receiving a third input, wherein the third input identifies one or more requirements for the machine learning application in generating the solution, wherein the requirements are a plurality metrics; (in 4:30-45: According to one aspect of the present disclosure, the applications can communicate with the on-device machine learning platform via an API (which may be referred to as the “prediction API”) to provide input data and obtain predictions based on the input data from one or more of the machine-learned models. As an example, in some implementations, given a uniform resource identifier (URI) for a prediction plan [receiving a third input, wherein the third input identifies one or more requirements for the machine learning application in generating the solution, wherein the requirements are a plurality metrics] (e.g., instructions for running the model to obtain inferences/predictions) and model parameters, the on-device machine learning platform can download the URI content (e.g., prediction plan and parameters) and obtain one or more inferences/predictions by running the model (e.g., by interacting with a machine learning engine to cause implementation of the model by the engine). In addition, the platform can cache the content so that it can be used for subsequent prediction requests..)
determining one or more components from a library to use for generating a machine learning model to prototype the machine learning application to comply with the one or more requirements, wherein the determining the one or more components comprises: identifying one or more characteristics of the solution for the machine learning application; identifying one or more application programming interfaces stored in the library, wherein the application programming interfaces link the one or more components to form the machine learning application; (in 14:55-15:2: FIG. 2 depicts a graphical diagram of an example machine-learned model deployment according to example embodiments of the present disclosure. In particular, an application developer [identifying one or more application programming interfaces stored in the library, wherein the application programming interfaces link the one or more components to form the machine learning application] 202 can interact with a toolkit [determining one or more components from a library to use for generating a machine learning model to prototype the machine learning application to comply with the one or more requirements, the components as API components from a toolkit library to generate machine-learning model] to generate and test a model 204. The model can be split into or otherwise represented at least in part by an inference plan 206 and a training plan 208. A “plan” can include a protocol buffer (AKA “protobuf”) [identifying one or more application programming interfaces stored in the library, wherein the application programming interfaces link the one or more components to form the machine learning application] that contains a graph (e.g., a TensorFlow graph) and instructions on how to run the graph. As one example, a plan can be a declarative description of a sequence of operations to perform on a graph (e.g., a TensorFlow graph) which also embeds the graph itself. The plan [wherein the determining the one or more components comprises: identifying one or more characteristics of the solution for the machine learning application as plan descriptions for how the machine learning model is developed] can describe how to query the collection for training data, how to feed it into the graph, and/or how to produce and deliver outputs.)
identifying one or more application programming interfaces stored in the library, wherein the application programming interfaces link the one or more components to form the machine learning application; compiling the machine learning application from the one or more identified application programming interfaces; (teaches further in addition to notations above in 8:1-28: According to another aspect, a toolkit that is complementary to the on-device platform can provide a set of tools (e.g., Python tools) [identifying one or more application programming interfaces stored in the library, wherein the application programming interfaces link the one or more components to form the machine learning application] to create and simulate models in the cloud before they are shipped as artifacts to devices. In some implementations, the toolkit can generate from the same source artifacts (e.g., Python source artifacts) for different versions of machine learning engines, or even different engine types (e.g., mobile-focused TensorFlow Lite versus a neural network library, etc.) [identifying one or more application programming interfaces stored in the library, wherein the application programming interfaces link the one or more components to form the machine learning application]. In some implementations, the on-device machine-learning platform can be included in or implemented as an application [identifying one or more application programming interfaces stored in the library, wherein the application programming interfaces link the one or more components to form the machine learning application], such as, for example, a mobile application. For example, in the context of the Android operating system, the on-device machine-learning platform can be included in an Android Package Kit (APK) that can be downloaded and/or updated. In one particular example, the on-device machine-learning platform can be included in or implemented [compiling the machine learning application from the one or more identified application programming interfaces] as a portion of a larger application that provides a number of different support services to other applications or the device itself. For example, in addition to the on-device machine-learning platform, the larger application can provide services that enable the computing device to interact with a digital distribution service [identifying one or more application programming interfaces stored in the library, wherein the application programming interfaces link the one or more components to form the machine learning application] (e.g., downloading applications and/or updates from an “app store”) and/or other services. In another example, the on-device machine-learning platform can be included in or implemented [compiling the machine learning application from the one or more identified application programming interfaces] as a portion of the operating system of the device, rather than as a standalone application. )
and storing the machine learning application in a memory. (in 9:58-10:11: The on-device machine learning platform 122 can enable on-device prediction, training, example collection, and/or other machine learning tasks or functionality, which may be collectively referred to as “machine learning functions”. The on-device machine learning platform 122 may be in the form of one or more computer programs stored locally on the computing device 102 [storing the machine learning application in a memory] (e.g., a smartphone or tablet), which are configured, when executed by the device 102, to perform machine learning management operations which enable performance of on-device machine learning functions on behalf of one or more locally-stored applications 102a-c or other local clients [storing the machine learning application in a memory]. At least some of the on-device machine learning functions may be performed using one or more machine learning engines 128 implemented locally on the computing device 102. Performance of the on-device machine learning functions on behalf of the one or more locally-stored applications 120a-c or routines (which may be referred to as “clients”) may be provided as a centralized service to those clients, which may interact with the on-device machine learning platform 122 via one or more application programming interfaces (APIs). )
San teaches the use on input data required for developing a machine learning application using an application developer platform. While one of ordinary skill in the art could interpret input requirement to a denoted server as the claimed wherein the first input identifies a location of data that is used for creating a machine learning application as noted above.
San does not explicitly use the term location.
Dos does expressly use the term location when disclosing the input data supplied by the user into a denoted space as the claimed wherein the first input identifies a location of data that is used for creating a machine learning application, in 16:64-17:11: Prior to beginning the training process, in some embodiments, the model training system 120 retrieves training data from the location indicated in the training request. For example, the location indicated in the training request can be a location in the training data store 660. Thus, the model training system 120 retrieves the training data from the indicated location in the training data store 660 [wherein the first input identifies a location of data that is used for creating a machine learning application]. In some embodiments, the model training system 120 does not retrieve the training data prior to beginning the training process. Rather, the model training system 120 streams the training data from the indicated location during the training process. For example, the model training system 120 can initially retrieve a portion of the training data and provide the retrieved portion to the virtual machine instance 622 training the machine learning model.
Additionally, Dos teaches employing operational tools from the library, in 5:40-47: The operations library 131 may be constructed and hosted by a third party or by the ML application orchestration service 114 [determining one or more components from a library to use for generating a machine learning model…]. Additionally, or alternatively, in some embodiments the user 102 (or other user(s)) may create and submit other user-generated transformation operations (e.g., code for performing an operation) to the operations library 131 which then can be used to generate the ML inference application definition 107…
Dos and San are analogous art because both involve developing information retrieval and data processing techniques using machine learning systems and algorithms.
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 the prior art for developing a framework for building, orchestrating, and deploying complex, large-scale Machine Learning (ML) or deep learning (DL) inference applications as disclosed by Dos with the method of developing and implementing information processing machine learning platforms via one or more application programming interfaces (APIs), as disclosed by San.
One of ordinary skill in the arts would have been motivated to combine the disclosed methods disclosed by Dos and San as noted above. Doing so allows “for a simplified creation and extremely efficient execution of a ML inference application for the user”, (Dos, 6:1-17 & Abstract).
Regarding claim 2, the rejection of claim 1 is incorporated and San in combination with Dos teaches the computer-implemented method of claim 1, further comprising testing the machine learning application according to the requirements. (in 14:55-59: FIG. 2 depicts a graphical diagram of an example machine-learned model deployment according to example embodiments of the present disclosure. In particular, an application developer 202 can interact with a toolkit to generate and test [testing the machine learning application according to the requirements] a model 204…)
Regarding claim 3, the rejection of claim 1 is incorporated and San in combination with Dos teaches the computer-implemented method of claim 1, wherein the machine learning application is customized for each infrastructure hardware layer by selection of the components from the library. (in 4:25-29: … The computing device can also include and implement the on-device machine learning platform and one or more machine-learned models. For example, the machine-learned models can be stored by the device in a centralized model layer managed by the platform [wherein the machine learning application is customized for each infrastructure hardware layer by selection of the components from the library.]…; And in 14:27-35: ) According to another aspect, a toolkit that is complementary to the on-device platform can provide a set of tools (e.g., Python tools) to create and simulate models [wherein the machine learning application is customized for each infrastructure hardware layer by selection of the components from the library] in the cloud before they are shipped as artifacts to devices. In some implementations, the toolkit can generate from the same source artifacts (e.g., Python source artifacts) for different versions of machine learning engines, or even different engine types (e.g., mobile-focused TensorFlow Lite versus a neural network library, etc.) [wherein the machine learning application is customized for each infrastructure hardware layer by selection of the components from the library]. )
Regarding claim 4, the rejection of claim 1 is incorporated and San in combination with Dos teaches the computer-implemented method of claim 1, further comprising selecting from a plurality of pipelines for the machine learning model using machine learning to match the requirements to automatically weigh and customize a selected pipeline. (in 4:30-45: According to one aspect of the present disclosure, the applications can communicate with the on-device machine learning platform via an API (which may be referred to as the “prediction API”) to provide input data and obtain predictions based on the input data from one or more of the machine-learned models. As an example, in some implementations, given a uniform resource identifier (URI) for a prediction plan [further comprising selecting from a plurality of pipelines for the machine learning model using machine learning to match the requirements to automatically weigh and customize a selected pipeline] (e.g., instructions for running the model to obtain inferences/predictions) and model parameters, the on-device machine learning platform can download the URI content (e.g., prediction plan and parameters) and obtain one or more inferences/predictions by running the model (e.g., by interacting with a machine learning engine to cause implementation of the model by the engine) [further comprising selecting from a plurality of pipelines for the machine learning model using machine learning to match the requirements to automatically weigh and customize a selected pipeline]. In addition, the platform can cache the content so that it can be used for subsequent prediction requests. And in 7:53-63: According to another aspect of the present disclosure, in some implementations, the on-device machine learning platform can completely abstract from an underlying machine learning engine. For example, the machine learning engine can be a TensorFlow engine, a neural network library, or other engines that enable implementation of machine-learned models for inference and/or training. Due to such abstraction, the machine learning platform can treat model artifacts as blobs which are generated in the cloud and then shipped to devices (e.g., via dynamic model download), where they are then interpreted by matching engines [further comprising selecting from a plurality of pipelines for the machine learning model using machine learning to match the requirements to automatically weigh and customize a selected pipeline]...)
Regarding claim 5, the rejection of claim 1 is incorporated and San in combination with Dos teaches the computer-implemented method of claim 1, wherein the requirements comprise at least one of quality of service (QoS) metrics, key performance indicator (KPI), inference query metrics, performance metrics, sentiment metrics, and testing metrics. (in 13:18-21: …According to another aspect, in some implementations, the machine learning platform 122 can upload logs or other updates regarding the machine-learned models 132a-c to the cloud for detailed analytics of machine learning metrics [wherein the requirements comprise at least one of … performance metrics, … , and testing metrics]...; And in 15:36-44: In addition, in some implementations, the device 216 can further provide logs 218 or other updates regarding the machine-learned models that can be used by the developer 202 (e.g., in conjunction with the toolkit) to obtain detailed analytics of machine learning metrics [wherein the requirements comprise at least one of … performance metrics, … , and testing metrics]. Example metrics that can, in some implementations, be computed based on the logs 218 include plots, graphs, or visualizations of checkin request outcomes, traffic (e.g., volume), loss and accuracy model metrics, phase duration, or other metrics. )
Additionally, Dos teaches in 2:56-3:12: Embodiments of the disclosed ML application orchestration service address these and other issues by providing a framework for building, orchestrating, and deploying complex ML applications. The ML application orchestration service, in some embodiments, enables the orchestration of the workflow logic (e.g., the request and/or response flows) involved in building complex ML inference applications. Embodiments of the disclosed service monitor traffic patterns to the ML application (and/or components thereof) and can automatically scale computing resources required by the individual computing nodes (e.g., implementing ML models or transformation logic) in the orchestration to address varying traffic patterns and/or loads within the provider network. Additionally, embodiments of the disclosed service provide for different optimization strategies for orchestrating the deployment of the ML inference application based on parameters such as performance (throughput), latency, etc. The disclosed service, in some embodiments, can monitor performance metrics [wherein the requirements comprise at least one of … performance metrics, … , and testing metrics] related to the deployment and execution of the ML inference application across the different request and/or response flows within the ML inference application. The various features provided by embodiments of the ML application orchestration service are discussed in detail with reference to the figures below.
It would have been obvious to one of ordinary skill in the art before the effective filing date of the present application to combine the teachings of San and Dos for the same reasons disclosed above.
Regarding claim 6, the rejection of claim 1 is incorporated and San in combination with Dos teaches the computer-implemented method of claim 1, wherein the requirements comprise at least one of training, power, maintainability, modularity, and reusability metrics. (in 15:36-44: In addition, in some implementations, the device 216 can further provide logs 218 or other updates regarding the machine-learned models that can be used by the developer 202 (e.g., in conjunction with the toolkit) to obtain detailed analytics of machine learning metrics. Example metrics that can, in some implementations, be computed based on the logs 218 include plots, graphs, or visualizations of checkin request outcomes, traffic (e.g., volume), loss and accuracy model metrics, phase duration, or other metrics [wherein the requirements comprise at least one of training, … maintainability, modularity, and reusability metrics]. )
Additionally, Dos teaches in 26:31-28: In some embodiments, the training metrics [wherein the requirements comprise at least one of training, …, maintainability, modularity, and reusability metrics] data store 665 stores model metrics. While the training metrics data store 665 is depicted as being located external to the model training system 120 and the model hosting system 140, this is not meant to be limiting. For example, in some embodiments not shown, the training metrics data store 665 is located internal to at least one of the model training system 120 or the model hosting system 140.
It would have been obvious to one of ordinary skill in the art before the effective filing date of the present application to combine the teachings of San and Dos for the same reasons disclosed above.
Regarding claim 7, the rejection of claim 1 is incorporated and San in combination with Dos teaches the computer-implemented method of claim 1, wherein the components from the library comprise at least one of application programming interfaces, pipelines, workflows, micro-services, software modules, and infrastructure modules. (in 15:36-44: In addition, in some implementations, the device 216 can further provide logs 218 or other updates regarding the machine-learned models that can be used by the developer 202 (e.g., in conjunction with the toolkit) to obtain detailed analytics of machine learning metrics. Example metrics that can, in some implementations, be computed based on the logs 218 include plots, graphs, or visualizations of checkin request outcomes, traffic (e.g., volume), loss and accuracy model metrics, phase duration, or other metrics [wherein the requirements comprise at least one of training, … maintainability, modularity, and reusability metrics]. )
Additionally, Dos teaches in 26:31-28: In some embodiments, the training metrics [wherein the requirements comprise at least one of training, …, maintainability, modularity, and reusability metrics] data store 665 stores model metrics. While the training metrics data store 665 is depicted as being located external to the model training system 120 and the model hosting system 140, this is not meant to be limiting. For example, in some embodiments not shown, the training metrics data store 665 is located internal to at least one of the model training system 120 or the model hosting system 140.
It would have been obvious to one of ordinary skill in the art before the effective filing date of the present application to combine the teachings of San and Dos for the same reasons disclosed above.
Regarding claim 8, the rejection of claim 1 is incorporated and San in combination with Dos teaches the computer-implemented method of claim 1, wherein the one or more library components comprise production functions that comprise at least one of load balancing, fail-over caching, security, test capability, audit function, scalability, predicted performance, training models, predicted power, maintenance, debug function, and reusability. (in 15:36-44: In addition, in some implementations, the device 216 can further provide logs 218 or other updates regarding the machine-learned models that can be used by the developer 202 (e.g., in conjunction with the toolkit) to obtain detailed analytics of machine learning metrics. Example metrics that can, in some implementations, be computed based on the logs 218 include plots, graphs, or visualizations of checkin request outcomes, traffic (e.g., volume), loss and accuracy model metrics, phase duration, or other metrics [wherein the one or more library components comprise production functions that comprise at least one of load balancing, ..., test capability, …, predicted performance, training models, predicted power, maintenance, debug function, and reusability]. )
Additionally, Dos teaches in 26:31-28: In some embodiments, the training metrics [wherein the one or more library components comprise production functions that comprise at least one of load ..., test capability, …, predicted performance, training models, predicted power, … and reusability] data store 665 stores model metrics. While the training metrics data store 665 is depicted as being located external to the model training system 120 and the model hosting system 140, this is not meant to be limiting. For example, in some embodiments not shown, the training metrics data store 665 is located internal to at least one of the model training system 120 or the model hosting system 140.
It would have been obvious to one of ordinary skill in the art before the effective filing date of the present application to combine the teachings of San and Dos for the same reasons disclosed above.
Regarding claims 9-16, the limitations are similar to does in claims 1-8 and are rejected under the same rationale.
Regarding claims 17-20, the limitations are similar to does in claims 1-4 and are rejected under the same rationale.
Claim 1-20 are rejected under 35 U.S.C. 103 as being unpatentable over Straub et al. (US 20160092179, hereinafter ‘S’) in view of Doshi et al. (US 11373119, hereinafter “Dos’).
Regarding independent claim 1, S teaches a computer-implemented method comprising: (in [0090] In embodiments, the functional blocks described herein can be implemented in the computing environment 1000 of FIG. 1A and/or the exemplary cloud computing environment 1100 of FIG. 1B. It should be understood that each block (and/or flowchart and/or swim lane illustration) can be implemented by special purpose hardware-based systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions. Moreover, the block diagram(s), flowcharts and swim lane illustrations described herein illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowchart or step in the swim lane illustrations or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s).)
receiving a first input, wherein the first input identifies a location of data that is used for creating a machine learning application; (in [0149] Cloud computer system 210 may include a dispatcher 218 that may handle requests and dispatch them to the appropriate service. A request may be routed to an appropriate service upon dispatch. In some embodiments, a service itself may route an internal request to another internal service in MCS 212 or in an enterprise computer system. In some embodiments, dispatcher 218 [receiving a first input, wherein the first input identifies a location of data that is used for creating a machine learning application] may resolve a request to determine its destination based on a location (e.g., an address) of a destination identified in a URI and/or URL of the request. Dispatcher 218 may parse a request and its header to extract one or more of the following information: tenant identifier, service identifier, application name, application version, request resource, operation and parameters, etc. Dispatcher 218 can use the parsed information to perform a lookup in metadata repository 224. Dispatcher 218 may retrieve a corresponding application metadata. Dispatcher 218 may determine the target service based on the requested resource and the mappings in the metadata. While initially a very basic mapping, the metadata can be enhanced to provide for more sophisticated, rules-based dispatching. Dispatcher 218 may perform any dispatcher-specific logging, metrics gathering, etc. Dispatcher 218 may then perform initial authorization according to the application metadata. Dispatcher 218 may format the inbound request and any other necessary information and place the message on routing bus 220 for further processing. Dispatcher 218 may place a request on a queue and await the corresponding response. Dispatcher 218 may process responses received from routing bus 220 and return a response to computing device 202. )
receiving a second input, wherein the second input identifies a problem to generate a solution using the machine learning application; ([0056] In one embodiment, a wizard is launched when a user starts developing a new application, and the user is asked to give a name and description for the new application [receiving a second input, wherein the second input identifies a problem to generate a solution using the machine learning application]…)
receiving a third input, wherein the third input identifies one or more requirements for the machine learning application in generating the solution, wherein the requirements are a plurality metrics; (in [0056] In one embodiment, a wizard is launched when a user starts developing a new application, and the user is asked to give a name and description for the new application. Then, the user is asked to design the first page of the application by selecting from a set of pre-defined templates [receiving a third input, wherein the third input identifies one or more requirements for the machine learning application in generating the solution, wherein the requirements are a plurality metrics] (e.g., tabs, bottom tabs, pagination, etc.) that can pre-seed the UI for the first page. The UI is then completed by specifying details in the template, while a preview is automatically updated to show the changes... [0058] In one embodiment, when an ADF receives a request to build an application for a mobile device, it determines portions of one or more already developed applications that have been precompiled using a toolkit, and modifies declarative information associated with those existing applications. This embodiment then builds the requested application based on the modified declarative information and one or more binary artifacts of the existing applications by packaging the binary artifacts representing the requested application for a desired operating system (“OS,” such as iOS, Android, etc.). The ADF then compiles the requested application to generate one or more binary artifacts and a set of definition files [receiving a third input, wherein the third input identifies one or more requirements for the machine learning application in generating the solution, wherein the requirements are a plurality metrics]. In end-user development, an artifact is an application or a complex data object that is created by an end-user without the need to know a programming language…)
determining one or more components from a library to use for generating a machine learning model to prototype the machine learning application to comply with the one or more requirements, wherein the determining the one or more components comprises: identifying one or more characteristics of the solution for the machine learning application; (in [0121] A model layer contains data/code modules that connect various business services to the objects that use them in the other layers, such as to the controller objects discussed above or directly to desktop applications. Each abstract data object of the model layer provides a corresponding interface that can be used to access any type of business service executing in an underlying business service layer. The data objects may abstract the business service implementation details of a service from a client and/or expose data control methods/attributes to view components, thus providing a separation of the view and data layers. [0122] In one aspect, the model layer consists of two components [identifying one or more characteristics of the solution for the machine learning application], data controls and data bindings, which utilize metadata files to define the interface [and identifying the one or more components based at least in part on correlating the one or more characteristics with metadata of the one or more components]. Data controls abstract the business service implementation details from clients. Data bindings expose data control methods and attributes to UI components, providing a clean separation of the view and model. Due to the metadata architecture of the model layer, developers get the same development experience when binding any type of Business Service layer implementation to the View and Controller layers. And in [0135] Metadata repository 224 may store all the metadata associated with MCS 212. This information may be composed of both run-time and design-time data, each having their own requirements on availability and performance. A tenant or subscriber of MCS 212 may have any number of applications. Each application may be versioned and may have an associated zero or more versioned resource APIs and zero or more versioned services implementations those resource API contracts. These entities are what the run-time uses to map virtual requests (mAPIs) to the concrete service implementation (service). This mapping provides a mobile developer with the luxury of not having to know the actual implementation service when she designs and builds her application. As well as not requiring her to have to republish a new application on every service bug fix. Metadata repository 224 may store one or more callable interfaces, which may be invoked by a computing device (e.g., computing device 202). The callable interfaces may be customizable by a user (e.g., a developer) of an application to facilitate communication with MCS 212. Metadata repository 224 may store metadata corresponding to one or more configurations of a callable interface. Metadata repository 224 may be configured to store metadata for implementing a callable interface. The callable interface may be implemented to translate between a one format, protocol, or architectural style for communication and another format, protocol, or architectural style for communication. Metadata repository 224 may be modifiable by an authenticated user via the external network.)
identifying one or more application programming interfaces stored in the library, wherein the application programming interfaces link the one or more components to form the machine learning application; compiling the machine learning application from the one or more identified application programming interfaces; (in [0234] At 910 an application definition wizard is generated. An application definition wizard as used herein represents a set of one or more UIs that guide a user during the definition process of a mobile application that utilizes one or more pre-defined cloud-accessible services [identifying one or more application programming interfaces stored in the library, wherein the application programming interfaces link the one or more components to form the machine learning application]. The application definition wizard can implement one or more workflows each associated with a part of the application definition process [identifying one or more application programming interfaces stored in the library, wherein the application programming interfaces link the one or more components to form the machine learning application]. In one embodiment, the application definition wizard can prompt or otherwise guide a user to specify application defaults, such as application identifier prefixes, default icons, splash screens, default application/feature templates, setup enterprise provisioning profile/keystore, or the like… [0236] At 920 an application definition is received. As discussed herein, the application definition can include any information needed in order to create at least a minimally functional mobile application. At 930 a mobile application is generated based on the application definition [identifying one or more application programming interfaces stored in the library, wherein the application programming interfaces link the one or more components to form the machine learning application]. In one embodiment, the mobile application is represented in a simulator of the target device and can include a set of definitions that when interpreted, function as a compiled mobile application [compiling the machine learning application from the one or more identified application programming interfaces]. And in [0242] At 970 data binding definitions are received. In various embodiments, steps 940-870 can be performed in series or in parallel. Individual steps in 940-870 can be performed on individual element of a mobile application or to a group of elements. As illustrated, a user can repeat the process of feature definition and data binding to create a mobile application [compiling the machine learning application from the one or more identified application programming interfaces]. In various embodiments, a set of templates can be presented to the developer. A template includes a set of cohesive user interface components [identifying one or more application programming interfaces stored in the library, wherein the application programming interfaces link the one or more components to form the machine learning application]. Rather than requiring the developer to bind data to each individual user interface elements, the developer can bind data to the template and then map how the data is presented using the template.)
and storing the machine learning application in a memory. (in [0243] At 980 the mobile application is deployed [and storing the machine learning application in a memory to be deployed in the cloud computing platform]. The user can test the application using a testing application deployed on a target device, or as a native application deployed on a target device.)
S teaches developing and deploying an application using an application developer platform in a cloud computing infrastructure, and as there is no claimed learning one can interpret recited application in the S reference as claimed machine learning application as noted above.
S does not expressly teach the application as a machine learning application for a machine learning task as the claim term machine learning application.
Dos does expressly teach a machine learning application for a machine learning task as the claim term machine learning application. (in 2:56-62: Embodiments of the disclosed ML application [machine learning application] orchestration service address these and other issues by providing a framework for building, orchestrating, and deploying complex ML applications. The ML application orchestration service, in some embodiments, enables the orchestration of the workflow logic (e.g., the request and/or response flows) involved in building complex ML inference applications…)
Additionally, Dos teaches:
wherein the first input identifies a location of data that is used for creating a machine learning application, in 16:64-17:11: Prior to beginning the training process, in some embodiments, the model training system 120 retrieves training data from the location indicated in the training request. For example, the location indicated in the training request can be a location in the training data store 660. Thus, the model training system 120 retrieves the training data from the indicated location in the training data store 660 [wherein the first input identifies a location of data that is used for creating a machine learning application]. In some embodiments, the model training system 120 does not retrieve the training data prior to beginning the training process. Rather, the model training system 120 streams the training data from the indicated location during the training process. For example, the model training system 120 can initially retrieve a portion of the training data and provide the retrieved portion to the virtual machine instance 622 training the machine learning model.
employing operational tools from the library, in 5:40-47: The operations library 131 may be constructed and hosted by a third party or by the ML application orchestration service 114 [determining one or more components from a library to use for generating a machine learning model…]. Additionally, or alternatively, in some embodiments the user 102 (or other user(s)) may create and submit other user-generated transformation operations (e.g., code for performing an operation) to the operations library 131 which then can be used to generate the ML inference application definition 107…
Dos and S are analogous art because both involve developing information retrieval and data processing techniques using machine learning systems and algorithms.
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 the prior art for developing a framework for building, orchestrating, and deploying complex, large-scale Machine Learning (ML) or deep learning (DL) inference applications as disclosed by Dos with the method of developing systems and methods that provide for optimizing iOS application, as disclosed by S.
One of ordinary skill in the arts would have been motivated to combine the disclosed methods disclosed by Dos and S as noted above. Doing so allows “for a simplified creation and extremely efficient execution of a ML inference application for the user”, (Dos, 6:1-17 & Abstract).
Regarding claim 2, the rejection of claim 1 is incorporated and S in combination with Dos teaches the computer-implemented method of claim 1, further comprising testing the machine learning application according to the requirements. (in [0184] Cloud infrastructure 506 includes MCS 502 that provides an admin UI 516 through which application development may be performed. MCS 502 further includes production environments 512 and testing environments 514 in which a mobile application may be developed and tested [testing the machine learning application according to the requirements], respectively. These environments provide production/testing functionality by talking to corresponding backends 504 via connectors. An application is first developed in testing environments 514. Once published, the application moves to production environments 512. [0185] ... An application that is developed in MCS admin UI 516 can be run on a browser of user device 528 or on mobile device 526 by communicating with production environments 512 and/or testing environments 514 [testing the machine learning application according to the requirements]. In one embodiment, when an application is deployed on mobile device 526, mobile device 526 communicates with testing environments 514. However, if the application is updated on mobile device 526, such updates are performed through MCS admin UI 516.)
Regarding claim 3, the rejection of claim 1 is incorporated and S in combination with Dos teaches the computer-implemented method of claim 1, wherein the machine learning application is customized for each infrastructure hardware layer by selection of the components from the library. (in [0109] Various different ADFs 124 may be provided in cloud infrastructure system 102. ADFs 124 provide the infrastructure code to implement agile SOA based applications. ADFs 124 further provide a visual and declarative approach to development through one or more development tools (e.g., “Oracle JDeveloper 11g” development tool). One or more frameworks provided by ADFs 124 may implement an MVC design pattern. Such frameworks offer an integrated solution that covers all the layers of the MVC architecture with solutions to such areas as Object/Relational mapping, data persistence, reusable controller layer, rich Web UI framework, data binding to UI, security and customization [wherein the machine learning application is customized for each infrastructure hardware layer by selection of the components from the library]…; And in [0251] FIG. 22 is an illustration of user interface 2200 providing a catalog of services in one embodiment. FIG. 23 is an illustration of user interface 2200 where a developer can add create a UI module based on a selected business object in one embodiment. For example, a developer can add a Workers Service business object and create a Worker UI module. FIG. 24 is an illustration of user interface 2200 after a developer has added a UI module in one embodiment. As discussed above, the developer can specify a template for one or more screens of pages of the UI module. Each template can drive what attributes of the selected business object are available for binding to elements of the user interface. In this example, guided customizer 2410 [wherein the machine learning application is customized for each infrastructure hardware layer by selection of the components from the library] can be opened that allows the developer to select a template. )
Regarding claim 4, the rejection of claim 1 is incorporated and S in combination with Dos teaches the computer-implemented method of claim 1, further comprising selecting from a plurality of pipelines for the machine learning model using machine learning to match the requirements to automatically weigh and customize a selected pipeline. (in [0056] In one embodiment, a wizard is launched when a user starts developing a new application, and the user is asked to give a name and description for the new application. Then, the user is asked to design the first page of the application by selecting from a set of pre-defined templates [further comprising selecting from a plurality of pipelines for the machine learning model using machine learning to match the requirements to automatically weigh and customize a selected pipeline] (e.g., tabs, bottom tabs, pagination, etc.) that can pre-seed the UI for the first page. The UI is then completed by specifying details in the template, while a preview is automatically updated to show the changes... [0058] In one embodiment, when an ADF receives a request to build an application for a mobile device, it determines portions of one or more already developed applications that have been precompiled using a toolkit, and modifies declarative information associated with those existing applications. This embodiment then builds the requested application based on the modified declarative information and one or more binary artifacts of the existing applications by packaging the binary artifacts representing the requested application for a desired operating system (“OS,” such as iOS, Android, etc.). The ADF then compiles the requested application to generate one or more binary artifacts and a set of definition files [further comprising selecting from a plurality of pipelines for the machine learning model using machine learning to match the requirements to automatically weigh and customize a selected pipeline]. In end-user development, an artifact is an application or a complex data object that is created by an end-user without the need to know a programming language…)
Regarding claim 5, the rejection of claim 1 is incorporated and S in combination with Dos teaches the computer-implemented method of claim 1, wherein the requirements comprise at least one of quality of service (QoS) metrics, key performance indicator (KPI), inference query metrics, performance metrics, sentiment metrics, and testing metrics. (in [0277] In some implementations, server 3112 may include one or more applications to analyze and consolidate data feeds and/or event updates received from users of client computing devices 3102, 3104, 3106, and 3108. As an example, data feeds and/or event updates may include, but are not limited to, Twitter® feeds, Facebook® updates or real-time updates received from one or more third party information sources and continuous data streams, which may include real-time events related to sensor data applications, financial tickers, network performance measuring tools [wherein the requirements comprise at least one of … performance metrics, … , and testing metrics] (e.g., network monitoring and traffic management applications), clickstream analysis tools, automobile traffic monitoring, and the like. Server 3112 may also include one or more applications to display the data feeds and/or real-time events via one or more display devices of client computing devices 3102, 3104, 3106, and 3108.)
Additionally, Dos teaches in 2:56-3:12: Embodiments of the disclosed ML application orchestration service address these and other issues by providing a framework for building, orchestrating, and deploying complex ML applications. The ML application orchestration service, in some embodiments, enables the orchestration of the workflow logic (e.g., the request and/or response flows) involved in building complex ML inference applications. Embodiments of the disclosed service monitor traffic patterns to the ML application (and/or components thereof) and can automatically scale computing resources required by the individual computing nodes (e.g., implementing ML models or transformation logic) in the orchestration to address varying traffic patterns and/or loads within the provider network. Additionally, embodiments of the disclosed service provide for different optimization strategies for orchestrating the deployment of the ML inference application based on parameters such as performance (throughput), latency, etc. The disclosed service, in some embodiments, can monitor performance metrics [wherein the requirements comprise at least one of … performance metrics, … , and testing metrics] related to the deployment and execution of the ML inference application across the different request and/or response flows within the ML inference application. The various features provided by embodiments of the ML application orchestration service are discussed in detail with reference to the figures below.
It would have been obvious to one of ordinary skill in the art before the effective filing date of the present application to combine the teachings of S and Dos for the same reasons disclosed above.
Regarding claim 6, the rejection of claim 1 is incorporated and S in combination with Dos teaches the computer-implemented method of claim 1, wherein the requirements comprise at least one of training, power, maintainability, modularity, and reusability metrics. (in [0102] Callable interfaces associated with MCS 122 may further enable enterprise computer systems 126 to communicate with MCS 122 according to a standardized protocol or format. Similar to application developers, those who manage enterprise computer systems can implement code (e.g., an agent system) that is configured to communicate with MCS 122 via one or more callable interfaces. Callable interfaces associated with MCS 122 may be implemented based on a type of a computing device, a type of enterprise computer systems, an app, an agent system, a service, a protocol, or other criterion. In some embodiments, callable interfaces associated with MCS 122 may support requests for services including authentication, compression, encryption, pagination with cursors, client-based throttling, non-repudiation, logging, and metrics collection [wherein the requirements comprise at least one of … maintainability, modularity, and reusability metrics]…)
Additionally, Dos teaches in 26:31-28: In some embodiments, the training metrics [wherein the requirements comprise at least one of training, …, maintainability, modularity, and reusability metrics] data store 665 stores model metrics. While the training metrics data store 665 is depicted as being located external to the model training system 120 and the model hosting system 140, this is not meant to be limiting. For example, in some embodiments not shown, the training metrics data store 665 is located internal to at least one of the model training system 120 or the model hosting system 140.
It would have been obvious to one of ordinary skill in the art before the effective filing date of the present application to combine the teachings of S and Dos for the same reasons disclosed above.
Regarding claim 7, the rejection of claim 1 is incorporated and S in combination with Dos teaches the computer-implemented method of claim 1, wherein the components from the library comprise at least one of application programming interfaces, pipelines, workflows, micro-services, software modules, and infrastructure modules. (in [0256] In step 2510, an application template is received. An application template as used herein refers to application source code, object code, or references thereto. The application template can include or make references to data structures, modules, templates, libraries, APIs, [wherein the components from the library comprise at least one of application programming interfaces, pipelines, workflows, micro-services, software modules, and infrastructure modules] etc. that might be used within an application, such as a mobile application targeted for devices that use the mobile operating systems, such as the IOS operating system or the Android operating system. This can include code that utilizes device resources, such as a camera, touch screen, network interfaces, local storage, and the like.)
Additionally, Dos teaches in 5:40-52: The operations library 131 may be constructed and hosted by a third party or by the ML application orchestration service 114. Additionally, or alternatively, in some embodiments the user 102 (or other user(s)) may create and submit other user-generated transformation operations (e.g., code for performing an operation) to the operations library 131 which then can be used to generate the ML inference application definition 107 [wherein the components from the library comprise at least one of application programming interfaces, pipelines, workflows, micro-services, software modules, and infrastructure modules]. In certain embodiments, users may create various ML models and publish them to the custom model library 128. The ML application orchestration service 114 may make these ML models and/or data transformation operations available to other users of the service…
It would have been obvious to one of ordinary skill in the art before the effective filing date of the present application to combine the teachings of S and Dos for the same reasons disclosed above.
Regarding claim 8, the rejection of claim 1 is incorporated and S in combination with Dos teaches the computer-implemented method of claim 1, wherein the one or more library components comprise production functions that comprise at least one of load balancing, in [0148] Cloud computer system 210 may include, implement, and/or communicate with one or more load balancer systems 206, 208. Upon determining security authentication, cloud computer system 210 may request any one of load balancer systems 206, 208 to examine a request that it receives and to detect which service the request is directed to. MCS 212 may be configured with load balancers 206, 208 and updated with resources that get started up, so that when a request comes in, load balancers 206, 208 can balance a requested load across the different resources.
fail-over caching in [0144] ... Cloud computer system 210 may maintain local storage (e.g., local cache) of enterprise data and may use the local storage to manage synchronization of the enterprise data between mobile computing devices and enterprise computer systems 240, 250 , security,
test capability, in [0184] Cloud infrastructure 506 includes MCS 502 that provides an admin UI 516 through which application development may be performed. MCS 502 further includes production environments 512 and testing environments 514 in which a mobile application may be developed and tested, respectively…
audit function, scalability, in [0210] MSAS is typically deployed in the corporate DMZ and multiple server instances can be deployed behind a load balancer for high availability and scalability. MSAS provides tunneled connections between the server and containerized apps. MSAS brokers authentication (strong authentication leverages HTTPS connections to “Oracle Access Manager” (“OAM”) or Kerberos connections to Kerberos Domain Controllers), authorizes, audits, and enables SSO for, and proxies requests to, their destination (resources in the corporate intranet)…
predicted performance, training models, predicted power, maintenance, debug function, and reusability.
Additionally, Dos teaches in 26:31-28: In some embodiments, the training metrics [wherein the one or more library components comprise production functions that comprise at least one of load ..., test capability, …, predicted performance, training models, predicted power, … and reusability] data store 665 stores model metrics. While the training metrics data store 665 is depicted as being located external to the model training system 120 and the model hosting system 140, this is not meant to be limiting. For example, in some embodiments not shown, the training metrics data store 665 is located internal to at least one of the model training system 120 or the model hosting system 140.
It would have been obvious to one of ordinary skill in the art before the effective filing date of the present application to combine the teachings of S and Dos for the same reasons disclosed above.
Regarding claims 9-16, the limitations are similar to does in claims 1-8 and are rejected under the same rationale.
Regarding claims 17-20, the limitations are similar to does in claims 1-4 and are rejected under the same rationale.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
Agrawal et al. (NPL: Data Platform for Machine Learning): teaches Many machine learning frameworks are available today, with new ones emerging at times. Most of them are free and open source, and many of them are still under active development. Machine learning frameworks provide various learning algorithms and models for different problem domains in ML. Since each framework has strengths for different models, it is very common for an organization to utilize several frame works within a given project (including different versions of the same framework). Most of the frameworks rely on the file system to access training data, with some frameworks offering additional data reader interfaces to make I/O more efficient, such as, TensorFlow and MXNet.
Bodin et al. (US 20200160458): teaches an application development platform that incorporates artificial intelligence (AI) capabilities, e.g., natural language processing (NLP), machine learning processing, and rules engines, with the integration of other functionality to provide a highly granular event queue within an application platform to assist in the development, design and deployment, etc., of digital applications. Advantageously, the AI capabilities will assist different types of users (personas), e.g., digital application developers, digital application designers and enterprise administrators, etc., to improve and assist in the efficient development, design and deployment lifecycle of a digital application.
Bartfai-Walcott et al. (US 20200050494): teaches in 0049: applications to be developed, dynamically deployed, and managed across IoT devices, creating a software definable IoT infrastructure that adapts to the changing environment, which may include software that is re-definable to meet the needs of the users or business. In the IoT infrastructure, IoT applications may be composed of a set of code modules, termed micro-services herein, that may be dynamically deployed onto physical resources to meet a given user or business goal. The micro-services may be built to be deployable across the compute stack, for example, into IoT nodes, compute nodes, gateways, local fog devices, and the cloud, among others. Deployment may be in the form of containers, code in virtual machines, or firmware programmed directly onto hardware. Where and how each component is deployed may be dynamically controlled by an orchestration mechanism.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to OLUWATOSIN ALABI whose telephone number is (571)272-0516. The examiner can normally be reached Monday-Friday, 8:00am-5:00pm EST..
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, Michael Huntley can be reached at (303) 297-4307. 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.
/OLUWATOSIN ALABI/Primary Examiner, Art Unit 2129