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 . This action is in response to an application filed on October 11st, 2022. Claims 1-20 are pending in the current application.
Claim Rejections - 35 USC § 101
35 U.S.C. 101 reads as follows:
Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title.
Claim(s) 1-20 are rejected under 35 U.S.C. 101 because the claimed invention is directed to an abstract idea without significantly more.
Regarding claim 1, Under Step 1 of the Subject Matter Eligibility Test of Products and
Processes, the claim is directed towards a process, which is one of the four statutory categories.
Next, under a Step 2A Prong 1 Analysis, the claim recites the following which are interpreted to be abstract ideas:
accessing a profile of a user, the profile indicating a likelihood that the user will execute each of a plurality of types of processing when training a new AI model; (mental process)
accessing a runtime matrix, the runtime matrix comprising identifiers of runtime environments (mental process)
selecting one or more of the runtime environments for output to the user, the selecting based at least in part on the profile of the user and the runtime matrix (mental process)
the outputting further including a suggestion to use one of the selected one or more of the runtime environments to train the new AI model.
Therefore, we have to examine the claim under Step 2A prong 2, which considers the additional elements within the claim. The claim’s additional elements are:
A computer
for each of the runtime environments a frequency of use of the runtime environment to train previously trained AI models using each of the plurality of types of processing;
outputting identifiers of the selected one or more of the runtime environments to a user interface of the user the outputting further including a suggestion to use one of the selected one or more of the runtime environments to train the new AI model.
The computer and “for each of the runtime environments a frequency of use of the runtime environment to train previously trained AI models using each of the plurality of types of processing;” are interpreted to be generic computing components and are “generally linked” to the abstract idea. (See MPEP 2106.05(h)) “Outputting identifiers of the selected one or more of the runtime environments to a user interface of the user, the outputting further including a suggestion to use one of the selected one or more of the runtime environments to train the new AI model.” is interpreted to be insignificant extra-solution activity. (See MPEP 2106.05(g)) Therefore, these additional elements do not integrate the abstract idea into a practical application. The claim is directed to an abstract idea.
Under a Step 2B analysis, the claim’s additional elements do not amount to significantly
more than the judicial exception as explained above in Step 2A prong 2. Additionally, the limitation, “outputting identifiers of the selected one or more of the runtime environments to a user interface of the user” is considered to be well-understood, routine, and conventional, as it is considered to be transmitting data over a network. (See MPEP 2106.05(d)(ii)) Therefore, the claim is ineligible.
Regarding claim 9, Under Step 1 of the Subject Matter Eligibility Test of Products and
Processes, the claim is directed towards a machine, which is one of the four statutory categories.
Next, under a Step 2A Prong 1 Analysis, the claim recites the following which are interpreted to be abstract ideas:
accessing a profile of a user, the profile indicating a likelihood that the user will execute each of a plurality of types of processing when training a new AI model; (mental process)
accessing a runtime matrix, the runtime matrix comprising identifiers of runtime environments (mental process)
selecting one or more of the runtime environments for output to the user, the selecting based at least in part on the profile of the user and the runtime matrix (mental process)
Therefore, we have to examine the claim under Step 2A prong 2, which considers the additional elements within the claim. The claim’s additional elements are:
A memory having computer readable instructions
One or more processors for executing the computer readable instructions,
The computer readable instructions controlling the one or more processors to perform operations
for each of the runtime environments a frequency of use of the runtime environment to train previously trained AI models using each of the plurality of types of processing;
outputting identifiers of the selected one or more of the runtime environments to a user interface of the user the outputting further including a suggestion to use one of the selected one or more of the runtime environments to train the new AI model.
The memory, “one or more processors for executing the computer readable instructions”, “The computer readable instructions controlling the one or more processors to perform operations”, and “for each of the runtime environments a frequency of use of the runtime environment to train previously trained AI models using each of the plurality of types of processing”, are interpreted to be generic computing components and are “generally linked” to the abstract idea. (See MPEP 2106.05(h)) “Outputting identifiers of the selected one or more of the runtime environments to a user interface of the user the outputting further including a suggestion to use one of the selected one or more of the runtime environments to train the new AI model.” is interpreted to be insignificant extra-solution activity. (See MPEP 2106.05(g)) Therefore, these additional elements do not integrate the abstract idea into a practical application. The claim is directed to an abstract idea.
Under a Step 2B analysis, the claim’s additional elements do not amount to significantly
more than the judicial exception as explained above in Step 2A prong 2. Additionally, the limitation, “outputting identifiers of the selected one or more of the runtime environments to a user interface of the user” is considered to be well-understood, routine, and conventional, as it is considered to be transmitting data over a network. (See MPEP 2106.05(d)(ii)) Therefore, the claim is ineligible.
Regarding claims 2, 10, and 18, the claims recite “generating the profile of the user, the generating based at least in part on one or more runtime environments of the plurality of runtime environments previously used by the user to train one or more other new AI models and on a type of processing of the plurality of types of processing executed by other users when training the previously trained AI models.” The limitation, as drafted is interpreted to be, under the broadest reasonable interpretable, a “mental process”, which is a grouping of abstract idea. Therefore, the claim is rejected on the same basis as claims, 1, 9, and 17 respectively.
Regarding claims 3 and 11, the claims recite “the generating is further based at least in part on one or more types of the plurality of types of processing previously used by the user when training the one or more other new AI models.” The limitation, as drafted, merely limits the field of use, as it limits the types of processing to types previously used by the user when training other new AI models. (See MPEP 2106.05(h)) Therefore, the claims are rejected on the same basis as claims 2 and 10 respectively.
Regarding claims 4, 12, and 19, the claims recite “generating the runtime matrix, the generating comprising collecting and storing features of executions of each of the plurality of runtime environments previously used when training the previously trained AI models.” The limitation, as drafted, is interpreted to be insignificant extra-solution activity, as well as well-understood, routine, and conventional, as “collecting… features of execution” is interpreted to be data gathering and “storing features of executions” is the storing of data. (See MPEP 2106.05(g) and 2106.05(d)) Therefore, the claims are rejected on the same basis as claims 1, 9, and 17 respectively.
Regarding claims 5 and 13, the claims recite “the features comprise central processing unit (CPU) usage, memory usage, and execution time.” The limitations, as drafted, are interpreted to be merely indicating the field of use and technological environment and “generally links” CPU usage, memory usage, and execution time, to the abstract idea. (See MPEP 2106.05(h)) Therefore, the claims are rejected on the same basis as claims 4 and 12 respectively.
Regarding claims 6 and 14, the claims recite “the generating further comprises applying a machine learning clustering algorithm to the plurality of runtime environments in the runtime matrix to categorize each of the plurality of runtime environments into one or more of the plurality of types of processing.” The limitation, as drafted, is interpreted to be mere instruction to apply a judicial exception, as it instructs to use a machine learning clustering algorithm and apply it to the abstract idea. (See MPEP2106.05(f)) Therefore, the claims are rejected on the same basis as claims 4 and 12 respectively.
Regarding claims 7 and 15, the claims recite “each of the plurality of runtime environments comprises hardware and software.” This limitation, as drafted, is interpreted to be merely indicating the field of use or technological environment, and “generally links” hardware and software to the abstract idea. (See MPEP2106.05(h)) Therefore, the claims are rejected on the same basis as claims 1 and 9 respectively.
Regarding claims 8, 16, and 20 the claims recite “the types of processing comprise binary classification on a small dataset, regression on a large dataset, and natural language processing (NLP).” This limitation, as drafted, is interpreted to be merely indicating the field of use or technological environment, and “generally links” binary classification, regression, and NLP to the abstract idea. (See MPEP2106.05(h)) Therefore, the claims are rejected on the same basis as claims 1, 9, and 17 respectively.
Claim Rejections - 35 USC § 103
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
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.
Claim(s) 1-7, 9-15 and 17-19 are rejected under 35 U.S.C. 103 as being unpatentable over Ai Xiao et al. (Herein referred to as Xiao) (ORHRC: Optimized Recommendations of Heterogeneous Resource Configurations in Cloud-Fog Orchestrated Computing Environments) in view of Haolong Fan et al., (Herein referred to as Fan) (An integrated personalization framework for SaaS-based cloud services) and in further view of Jun Yi et al. (Herein referred to as Yi) (Not All Explorations Are Equal: Harnessing Heterogeneous Profiling Cost for Efficient MLaaS Training)
Regarding claim 1, Xiao teaches a computer-implemented method comprising accessing a runtime matrix, the runtime matrix comprising identifiers of runtime environments and for each of the runtime environments a frequency of use of the runtime environment using each of the plurality of types of processing; (“…we collect the operating characteristics of workloads to characterize them. Different workloads have different operating characteristics when running on different configurations. So, we use xij to describe the operating characteristics of workload wi on configuration cj . Table 1 shows the detail of the operating characteristics we collect… As shown in Formula 4, we use xij and 0 as implicit feedback yij in our ORHRC model. The criterion is whether the workload wi operates on the configuration cj”, pg. 3, under “Implicit Feedback and Explicit Ratings”; pg. 4, right column, third paragraph’ See also Table I, Formula 3 and 4 on pg. 4) (The collection of operating characteristics correspond to a runtime matrix, with the characteristics themselves corresponding to the identifiers of runtime environments. The variable yij is used to determine whether wi operates on the configuration, cj, the variable corresponding to a frequency of use. (0 if the workspace is unused and xij if used.) selecting one or more of the runtime environments for output to the user, the selecting based at least in part on the runtime matrix (“Based on the ranking results, the ORHRC model can recommend suitable configurations for workloads… The SARA model clusters workloads into groups and finds the optimal configuration for each cluster of workloads based on deep reinforcement learning. SARA solves the problem of quickly finding the near-optimal configuration for the incoming workload.”, pg. 6, left column, third paragraph; See also Figure 2) (Selection is done before outputting the recommended configurations to the user, via sending a set of workloads to a model, and then selecting the most optimal configurations.) and outputting identifiers of the selected one or more of the runtime environments to a user interface of the user, the outputting further including a suggestion to use one of the selected one or more of the runtime environments (“As the goal of our model is to give a suitable configuration recommendation, it does not need to accurately predict the execution time of the workload on all configurations, but only needs to predict the ranking of execution time on these configurations… Based on the ranking results, the ORHRC model can recommend suitable configurations for workloads…”, pg. 4, right column, first paragraph; pg. 6, left column, directly above “Cold Start Problems of ORHRC Model”)
However, Xiao does not explicitly teach accessing a profile of a user, the profile indicating a likelihood that the user will execute each of a plurality of types of processing when training a new AI model; nor a frequency of use of the runtime environment to specifically train previously trained AI models nor selecting one or more runtime environments based on the profile of the user, nor a suggestion to use one of the selected one or more of the runtime environments to specifically train the new AI model.
Fan teaches accessing a profile of a user, the profile indicating a likelihood that the user will execute each of a plurality of types of processing; (“A Multi-dimensional User Knowledge, an analysis-based data, is designed to describe the characteristics of users and historical usage records. It provides a long-term analysis and prediction for user personalization.”, pg. 5, right column, bottom paragraph) (The prediction for user personalization indicates a likelihood that a user will perform an action relating to processing.) and selecting one or more runtime environments based on the profile of the user, (“Recommendation aims to meet the expectation of personalization with recommended patterns based on user profile, usage log and preference. In order to make recommendations, algorithms are used to discover an appropriate recommendation set for user access, considering the active user profile in conjunction with the discovered usage patterns”, pg. 8, left column, under “Recommendation Engine, client-side Recommendation Module and ontology-based data mining”; See also Fig. 8) (The recommendation engine outputs a personalized engine based on a user profile, and services are transferred to the user by the engine. The services, which are configured based on the user’s personalization configurations, can include, under the broadest reasonable interpretation, runtime environments.)
Therefore, it would have been considered obvious to one of ordinary skill in the art, prior to the current application' s filing date, to combine the recommendation system of Xiao with the user profiles for a recommendation system, as disclosed by Fan. One would be motivated to combine the two teachings, prior to the filing date of the current application, as Fan’s framework provides “a better solution for building a user’s preference” and boosts recommendation performance, as disclosed in Fan. (“SaaS Personalization Framework provides a better solution for building a user’s preference. It is apparent that multiple techniques in this solution boost recommendation performance. Furthermore, a precise user profile is the cornerstone for accurate personalization services. This test result manifests that an integrated framework could deliver incredible potential.”, pg. 16, left column, above “Conclusion and future works”)
However, the combination still does not explicitly teach training a new AI model; nor to train previously trained AI models.
Yi teaches training a new AI model; (“To prove that HeterBO is platform-independent, we implement BERT on two popular ML platforms TensorFlow and MXNet. To demonstrate that HeterBO does not rely on any specific communication protocols or implementations, we examine HeterBO’s performance under the two widely used ML distribution topologies, namely, parameter server (PS), and ring all-reduce”, pg. 6, right column, under “ML platforms”) (The distributed machine learning model correspond to new AI models.) and to train previously trained AI models, (“Machine-Learning-as-a-Service (MLaaS) [1] is widely supported in the leading cloud platforms (e.g., AWS, Azure, and Google Cloud) to facilitate training and serving user-developed models in a scalable manner. In MLaaS training, users are offered two general deployment options for their training jobs, scale-up and scale-out”, pg. 1, under Introduction) (In MLaaS, models are initially trained in the cloud, and so correspond to previously trained AI models once they are trained again with new training data, with training jobs, or training deployment depending on whether need to “scale-up” or “scale down”.)
Therefore, it would have been considered obvious to one of ordinary skill in the art, prior to the current application' s filing date, to combine the recommendation system of Xiao with the user profiles for a recommendation system, as disclosed by Fan, and apply it to the training and distribution of ML models, like in Yi. It would been obvious to use the recommendation system of Xiao, as modified by Fan, which recommends runtime configurations for general computing workloads, to recommend runtime configurations specifically for AI-model-training workloads. The motivation to do so is that Yi teaches that AI model training workload users (i.e. MLaaS applications) can strongly benefit from knowledge of the optimal configuration for their AI workload. (“A common problem for MLaaS users is to choose from a variety of training deployment options, notably scale-up (using more capable instances) and scale-out (using more instances), subject to the budget limits and/or time constraints.”, pg. 1, Abstract of Yi)
Regarding claim 9, Xiao teaches a system comprising: a memory having computer readable instructions; and one or more processors for executing the computer readable instructions, (While the disclosure never mentions utilizing a memory and a processor to execute the method of Xiao, one would implicitly need those components to perform the method of Xiao) the computer readable instructions controlling the one or more processors to perform operations comprising: accessing a runtime matrix, the runtime matrix comprising identifiers of runtime environments and for each of the runtime environments a frequency of use of the runtime environment using each of the plurality of types of processing; (“…we collect the operating characteristics of workloads to characterize them. Different workloads have different operating characteristics when running on different configurations. So, we use xij to describe the operating characteristics of workload wi on configuration cj . Table 1 shows the detail of the operating characteristics we collect… As shown in Formula 4, we use xij and 0 as implicit feedback yij in our ORHRC model. The criterion is whether the workload wi operates on the configuration cj”, pg. 3, under “Implicit Feedback and Explicit Ratings”; pg. 4, right column, third paragraph’ See also Table I, Formula 3 and 4 on pg. 4) (The collection of operating characteristics correspond to a runtime matrix, with the characteristics themselves corresponding to the identifiers of runtime environments. The variable yij is used to determine whether wi operates on the configuration, cj, the variable corresponding to a frequency of use. (0 if the workspace is unused and xij if used.) selecting one or more of the runtime environments for output to the user, the selecting based at least in part on the runtime matrix; (“Based on the ranking results, the ORHRC model can recommend suitable configurations for workloads… The SARA model clusters workloads into groups and finds the optimal configuration for each cluster of workloads based on deep reinforcement learning. SARA solves the problem of quickly finding the near-optimal configuration for the incoming workload.”, pg. 6, left column, third paragraph; See also Figure 2) (Selection is done before outputting the recommended configurations to the user, via sending a set of workloads to a model, and then selecting the most optimal configurations.) and outputting identifiers of the selected one or more of the runtime environments to a user interface of the user, the outputting further including a suggestion to use one of the selected one or more of the runtime environments. (“As the goal of our model is to give a suitable configuration recommendation, it does not need to accurately predict the execution time of the workload on all configurations, but only needs to predict the ranking of execution time on these configurations… Based on the ranking results, the ORHRC model can recommend suitable configurations for workloads…”, pg. 4, right column, first paragraph; pg. 6, left column, directly above “Cold Start Problems of ORHRC Model”) (The model can output its recommendation (i.e. the configuration with the fastest execution time) as well as other configurations, and while a UI is never explicitly mentioned, there are multiple instances in the reference where the user can make choices on the input workload or how the configuration set is generated, and one would intrinsically need a user interface for the user to make those decisions.)
However, Xiao does not explicitly teach accessing a profile of a user, the profile indicating a likelihood that the user will execute each of a plurality of types of processing when training a new AI model; nor a frequency of use of the runtime environment to specifically train previously trained AI models nor selecting one or more runtime environments based on the profile of the user, nor a suggestion to use one of the selected one or more of the runtime environments to specifically train the new AI model.
Fan teaches accessing a profile of a user, the profile indicating a likelihood that the user will execute each of a plurality of types of processing; (“A Multi-dimensional User Knowledge, an analysis-based data, is designed to describe the characteristics of users and historical usage records. It provides a long-term analysis and prediction for user personalization.”, pg. 5, right column, bottom paragraph) (The prediction for user personalization indicates a likelihood that a user will perform an action relating to processing.) and selecting one or more runtime environments based on the profile of the user, (“Recommendation aims to meet the expectation of personalization with recommended patterns based on user profile, usage log and preference. In order to make recommendations, algorithms are used to discover an appropriate recommendation set for user access, considering the active user profile in conjunction with the discovered usage patterns”, pg. 8, left column, under “Recommendation Engine, client-side Recommendation Module and ontology-based data mining”; See also Fig. 8) (The recommendation engine outputs a personalized engine based on a user profile, and services are transferred to the user by the engine. The services, which are configured based on the user’s personalization configurations, can include, under the broadest reasonable interpretation, runtime environments.)
Therefore, it would have been considered obvious to one of ordinary skill in the art, prior to the current application' s filing date, to combine the recommendation system of Xiao with the user profiles for a recommendation system, as disclosed by Fan. One would be motivated to combine the two teachings, prior to the filing date of the current application, as Fan’s framework provides “a better solution for building a user’s preference” and boosts recommendation performance, as disclosed in Fan. (“SaaS Personalization Framework provides a better solution for building a user’s preference. It is apparent that multiple techniques in this solution boost recommendation performance. Furthermore, a precise user profile is the cornerstone for accurate personalization services. This test result manifests that an integrated framework could deliver incredible potential.”, pg. 16, left column, above “Conclusion and future works”)
However, the combination still does not explicitly teach training a new AI model; nor to train previously trained AI models.
Yi teaches training a new AI model; (“To prove that HeterBO is platform-independent, we implement BERT on two popular ML platforms TensorFlow and MXNet. To demonstrate that HeterBO does not rely on any specific communication protocols or implementations, we examine HeterBO’s performance under the two widely used ML distribution topologies, namely, parameter server (PS), and ring all-reduce”, pg. 6, right column, under “ML platforms”) (The distributed machine learning model correspond to new AI models.) and to train previously trained AI models, (“Machine-Learning-as-a-Service (MLaaS) [1] is widely supported in the leading cloud platforms (e.g., AWS, Azure, and Google Cloud) to facilitate training and serving user-developed models in a scalable manner”, pg. 1, under Introduction) (In MLaaS, models are initially trained in the cloud, and so correspond to previously trained AI models once they are trained again with new training data, with training jobs, or training deployment depending on whether need to “scale-up” or “scale down”.)
Therefore, it would have been considered obvious to one of ordinary skill in the art, prior to the current application' s filing date, to combine the recommendation system of Xiao with the user profiles for a recommendation system, as disclosed by Fan, and apply it to the training and distribution of ML models, like in Yi. One would be motivated to combine the teachings, prior to the filing date of the current application, as Yi’s method of training, distribution, and optimization is robust, platform-independent, and can be configured for different scenarios, as disclosed in Yi. (“In this paper, we consider three common scenarios for MLaaS users to deploying training jobs: Scenario-1: finish the training job as fast as possible with unlimited monetary budget. Scenario-2: finish the training job before a deadline at the lowest cost. Scenario-3: finish the training job as fast as possible within a budget... ML models. To verify that HeterBO is general and robust, we perform the evaluation use a diverse selection of popular ML models, such as AlexNet, ResNet, Inception-v3, CharCNN, and BERT. The models vary from each other substantially in terms of the size, architecture, and task field. ML platforms. To prove that HeterBO is platform-independent, we implement BERT on two popular ML platforms TensorFlow and MXNet. To demonstrate that HeterBO does not rely on any specific communication protocols or implementations, we examine HeterBO’s performance under the two widely used ML distribution topologies, namely, parameter server (PS), and ring all-reduce.”, pg. 5, left column, bulleted list; pg. 6, right column, under Experiment Setup)
Regarding claim 17, Xiao teaches a computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processor to cause the processor to perform operations (Although Xiao never mentions a computer readable storage medium nor processor, one would implicitly need those components to distribute and run the program of Xiao.) comprising: accessing a runtime matrix, the runtime matrix comprising identifiers of runtime environments and for each of the runtime environments a frequency of use of the runtime environment using each of the plurality of types of processing; (“…we collect the operating characteristics of workloads to characterize them. Different workloads have different operating characteristics when running on different configurations. So, we use xij to describe the operating characteristics of workload wi on configuration cj . Table 1 shows the detail of the operating characteristics we collect… As shown in Formula 4, we use xij and 0 as implicit feedback yij in our ORHRC model. The criterion is whether the workload wi operates on the configuration cj”, pg. 3, under “Implicit Feedback and Explicit Ratings”; pg. 4, right column, third paragraph’ See also Table I, Formula 3 and 4 on pg. 4) (The collection of operating characteristics correspond to a runtime matrix, with the characteristics themselves corresponding to the identifiers of runtime environments. The variable yij is used to determine whether wi operates on the configuration, cj, the variable corresponding to a frequency of use. (0 if the workspace is unused and xij if used.) selecting one or more of the runtime environments for output to the user, the selecting based at least in part on the runtime matrix; (“Based on the ranking results, the ORHRC model can recommend suitable configurations for workloads… The SARA model clusters workloads into groups and finds the optimal configuration for each cluster of workloads based on deep reinforcement learning. SARA solves the problem of quickly finding the near-optimal configuration for the incoming workload.”, pg. 6, left column, third paragraph; See also Figure 2) (Selection is done before outputting the recommended configurations to the user, via sending a set of workloads to a model, and then selecting the most optimal configurations.) and outputting identifiers of the selected one or more of the runtime environments to a user interface of the user, the outputting further including a suggestion to use one of the selected one or more of the runtime environments. (“As the goal of our model is to give a suitable configuration recommendation, it does not need to accurately predict the execution time of the workload on all configurations, but only needs to predict the ranking of execution time on these configurations… Based on the ranking results, the ORHRC model can recommend suitable configurations for workloads…”, pg. 4, right column, first paragraph; pg. 6, left column, directly above “Cold Start Problems of ORHRC Model”) (The model can output its recommendation (i.e. the configuration with the fastest execution time) as well as other configurations, and while a UI is never explicitly mentioned, there are multiple instances in the reference where the user can make choices on the input workload or how the configuration set is generated, and one would intrinsically need a user interface for the user to make those decisions.)
However, Xiao does not explicitly teach accessing a profile of a user, the profile indicating a likelihood that the user will execute each of a plurality of types of processing when training a new AI model; nor a frequency of use of the runtime environment to specifically train previously trained AI models nor selecting one or more runtime environments based on the profile of the user, nor a suggestion to use one of the selected one or more of the runtime environments to specifically train the new AI model.
Fan teaches accessing a profile of a user, the profile indicating a likelihood that the user will execute each of a plurality of types of processing; (“A Multi-dimensional User Knowledge, an analysis-based data, is designed to describe the characteristics of users and historical usage records. It provides a long-term analysis and prediction for user personalization.”, pg. 5, right column, bottom paragraph) (The prediction for user personalization indicates a likelihood that a user will perform an action relating to processing.) and selecting one or more runtime environments based on the profile of the user, (“Recommendation aims to meet the expectation of personalization with recommended patterns based on user profile, usage log and preference. In order to make recommendations, algorithms are used to discover an appropriate recommendation set for user access, considering the active user profile in conjunction with the discovered usage patterns”, pg. 8, left column, under “Recommendation Engine, client-side Recommendation Module and ontology-based data mining”; See also Fig. 8) (The recommendation engine outputs a personalized engine based on a user profile, and services are transferred to the user by the engine. The services, which are configured based on the user’s personalization configurations, can include, under the broadest reasonable interpretation, runtime environments.)
Therefore, it would have been considered obvious to one of ordinary skill in the art, prior to the current application' s filing date, to combine the recommendation system of Xiao with the user profiles for a recommendation system, as disclosed by Fan. One would be motivated to combine the two teachings, prior to the filing date of the current application, as Fan’s framework provides “a better solution for building a user’s preference” and boosts recommendation performance, as disclosed in Fan. (“SaaS Personalization Framework provides a better solution for building a user’s preference. It is apparent that multiple techniques in this solution boost recommendation performance. Furthermore, a precise user profile is the cornerstone for accurate personalization services. This test result manifests that an integrated framework could deliver incredible potential.”, pg. 16, left column, above “Conclusion and future works”)
However, the combination still does not explicitly teach training a new AI model; nor to train previously trained AI models.
Yi teaches training a new AI model; (“To prove that HeterBO is platform-independent, we implement BERT on two popular ML platforms TensorFlow and MXNet. To demonstrate that HeterBO does not rely on any specific communication protocols or implementations, we examine HeterBO’s performance under the two widely used ML distribution topologies, namely, parameter server (PS), and ring all-reduce”, pg. 6, right column, under “ML platforms”) (The distributed machine learning model correspond to new AI models.) and to train previously trained AI models, (“Machine-Learning-as-a-Service (MLaaS) [1] is widely supported in the leading cloud platforms (e.g., AWS, Azure, and Google Cloud) to facilitate training and serving user-developed models in a scalable manner”, pg. 1, under Introduction) (In MLaaS, models are initially trained in the cloud, and so correspond to previously trained AI models once they are trained again with new training data, with training jobs, or training deployment depending on whether need to “scale-up” or “scale down”.)
Therefore, it would have been considered obvious to one of ordinary skill in the art, prior to the current application' s filing date, to combine the recommendation system of Xiao with the user profiles for a recommendation system, as disclosed by Fan, and apply it to the training and distribution of ML models, like in Yi. One would be motivated to combine the teachings, prior to the filing date of the current application, as Yi’s method of training, distribution, and optimization is robust, platform-independent, and can be configured for different scenarios, as disclosed in Yi. (“In this paper, we consider three common scenarios for MLaaS users to deploying training jobs: Scenario-1: finish the training job as fast as possible with unlimited monetary budget. Scenario-2: finish the training job before a deadline at the lowest cost. Scenario-3: finish the training job as fast as possible within a budget... ML models. To verify that HeterBO is general and robust, we perform the evaluation use a diverse selection of popular ML models, such as AlexNet, ResNet, Inception-v3, CharCNN, and BERT. The models vary from each other substantially in terms of the size, architecture, and task field. ML platforms. To prove that HeterBO is platform-independent, we implement BERT on two popular ML platforms TensorFlow and MXNet. To demonstrate that HeterBO does not rely on any specific communication protocols or implementations, we examine HeterBO’s performance under the two widely used ML distribution topologies, namely, parameter server (PS), and ring all-reduce.”, pg. 5, left column, bulleted list; pg. 6, right column, under Experiment Setup)
Regarding claims 2, 10, and 18, Xiao, as modified by Fan and Yi, teaches the computer-implemented method of claim 1, the system of claim 9, and the computer program product of claim 17 respectively, as well as further comprising generating the profile of the user, the generating based at least in part on one or more runtime environments of the plurality of runtime environments previously used by the user to train one or more other new AI models and on a type of processing of the plurality of types of processing executed by other users when training the previously trained AI models (“Data Collection is a process to gather user profile and activities data via various client-side and server-side methods. A Data Layer contains database systems and file systems that store data including user profiles, user preferences, user activities… A Multi-dimensional User Knowledge, an analysis-based data, is designed to describe the characteristics of users and historical usage records.”, pg. 3, left column, second paragraph; pg. 3, right column, first paragraph; pg. 5, right column, last paragraph; See also Fig. 2 (Fan)) (Fan’s method teaches the gathering of user data and a user’s historical data to then generate a profile of the user and can store this data in a repository. The historical data includes historical usage, which when combined with the environments and data processing of Xiao, and the training of previously trained AI models of Yi, combines to teach this limitation.)
Regarding claims 3 and 11, Xiao, as modified by Fan and Yi, teaches the computer-implemented method of claim 2, and the system of claim 10, respectively, as well as the generating is further based at least in part on one or more types of the plurality of types of processing previously used by the user when training the one or more other new AI models. (“Data Collection is a process to gather user profile and activities data via various client-side and server-side methods. A Data Layer contains database systems and file systems that store data including user profiles, user preferences, user activities… A Multi-dimensional User Knowledge, an analysis-based data, is designed to describe the characteristics of users and historical usage records.”, pg. 3, left column, second paragraph; pg. 3, right column, first paragraph; pg. 5, right column, last paragraph; See also Fig. 2 (Fan)) (Fan’s method teaches the gathering of user data and a user’s historical data to then generate a profile of the user and can store this data in a repository. The historical data includes historical usage, which when combined with the environments and data processing of Xiao, and the training of new AI models of Yi, combines to teach this limitation.)
Regarding claims 4, 12, and 19, Xiao, as modified by Fan and Yi, teaches the computer-implemented method of claim 1, the system of claim 9, and the computer program product of claim 17 respectively, as well as generating the runtime matrix, the generating comprising collecting and storing features of executions of each of the plurality of runtime environments previously used when training the previously trained AI models. (“…we collect the operating characteristics of workloads to characterize them. Different workloads have different operating characteristics when running on different configurations. So, we use xij to describe the operating characteristics of workload wi on configuration cj . Table 1 shows the detail of the operating characteristics we collect.”, pg. 3, right column, under “Problem Definition”; (Xiao)) (The features of execution correspond to the metrics shown in Table 1 of Xiao, which are collected and stored according to Xiao’s method))
Regarding claims 5 and 13, Xiao, as modified by Fan and Yi, teaches the computer-implemented method of claim 4, and the system of claim 12 respectively, as well as the features comprise central processing unit (CPU) usage, memory usage, and execution time. (“The cloud-fog orchestrated computing environments provide a variety of configurations for users to choose, the space of these configurations is designed as C = {c1, ..., cn}, where ci is a vector, including configuration settings such as CPU, memory, storage and so on… Table 1 shows the detail of the operating characteristics we collect. At the same time, we use tij to describe the execution time of workload wi on the configuration cj”, pg. 3, right column, under “Problem Definition”; See also Table I on pg. 4 (Xiao))
Regarding claims 6 and 14, Xiao, as modified by Fan and Yi, teaches the computer-implemented method of claim 4, and the system of claim 12 respectively, as well as the generating further comprises applying a machine learning clustering algorithm to the plurality of runtime environments in the runtime matrix to categorize each of the plurality of runtime environments into one or more of the plurality of types of processing. (“The SARA model clusters workloads into groups and finds the optimal configuration for each cluster of workloads based on deep reinforcement learning.”, pg. 4, right column, second to last paragraph (Xiao)) (The groups correspond to categories for each of the plurality of runtime environments)
Regarding claims 7 and 15, Xiao, as modified by Fan and Yi, teaches the computer-implemented method of claim 1 and the system of claim 9 respectively, as well as each of the plurality of runtime environments comprises hardware and software. (“In order to address the above-mentioned challenges, we designed ORHRC, a model that provides users with reliable configuration recommendation services in complex heterogeneous cloud-fog orchestrated computing environments”, pg. 2, left column, second paragraph; See also Xiao’s Table II on pg. 6 (Xiao)) (In Table II on pg. 6 of Xiao, different computing environments are shown with different software and hardware configurations.)
Claims 8, 16 and 20 are rejected under 35 U.S.C. 103 as being unpatentable over Xiao, in view of Fan, in further view of Yi, and in further view of Dirac et al. (Herein referred to as Dirac) (U.S. Patent Application No. US 20150379424 A1)
Regarding claims 8, 16, and 20, Xiao, as modified by Fan and Yi, teaches the computer-implemented method of claim 1, the system of claim 9, and the computer program product of claim 17 respectively, as well as the types of processing comprise natural language processing (NLP). (“We then extend the evaluations to recently proposed BERT model, and implement it using both TensorFlow and MXNet. BERT model has more than 340 million trainable parameters, and it is trained with ring all-reduce communication topology instead of parameter server”, pg. 8, right column, second paragraph) (BERT is using for NLP.) but does not explicitly teach the types of processing comprise binary classification on a small dataset, or regression on a large dataset,
Dirac teaches types of processing comprising binary classification on a small dataset, or regression on a large dataset, (“to isolate alias users from changes to the underlying models, the MLS may guarantee that (a) an alias can only point to a model that has been successfully trained and (b) when an alias pointer is changed, both the original model and the new model (i.e., the respective models being pointed to by the old pointer and the new pointer) consume the same type of input and provide the same type of prediction (e.g., binary classification, multi-class classification or regression).”, Paragraph 30)
Therefore, it would have been considered obvious to one of ordinary skill in the art, prior to the current application's filing date, to combine the method, system, and program of Xiao, as modified by Pan and Yi, with the classification and regression processing of Dirac. One would be motivated to combine the teachings, prior to the filing date of the current application, as this allows for a wider range of models to be distributed for use, as disclosed in Dirac. (“…some machine learning models may be created and trained, e.g., by a group of model developers or data scientists using the MLS APIs, and then published for use by another community of users. In order to facilitate publishing of models for use by a wider audience than just the creators of the model, while preventing potentially unsuitable modifications to the models by unskilled members of the wider audience, the “alias” entity type may be supported in such embodiments.”, Paragraph 30)
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to Tyler E Iles whose telephone number is (571)272-5442. The examiner can normally be reached 9:00am - 5:00pm.
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, Kakali Chaki can be reached at (571) 272-3719. 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.
/TYLER EDWARD ILES/ Patent Examiner, Art Unit 2122
/KAKALI CHAKI/ Supervisory Patent Examiner, Art Unit 2122