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 .
Prior arts cited in this office action:
Song et al. (US 11443237 B1, hereinafter “Song”)
Kamarkar et al. (US 20190243688 A1, hereinafter “Kamarkar”)
Warner et al. (US 10643749 B1, hereinafter “Warner”)
Double Patenting
Claims 1-20 of this application is patentably indistinct from claims 1-20 of Application No. 12112560 B2. Pursuant to 37 CFR 1.78(f), when two or more applications filed by the same applicant or assignee contain patentably indistinct claims, elimination of such claims from all but one application may be required in the absence of good and sufficient reason for their retention during pendency in more than one application. Applicant is required to either cancel the patentably indistinct claims from all but one application or maintain a clear line of demarcation between the applications. See MPEP § 822.
A rejection based on double patenting of the “same invention” type finds its support in the language of 35 U.S.C. 101 which states that “whoever invents or discovers any new and useful process... may obtain a patent therefor...” (Emphasis added). Thus, the term “same invention,” in this context, means an invention drawn to identical subject matter. See Miller v. Eagle Mfg. Co., 151 U.S. 186 (1894); In re Vogel, 422 F.2d 438, 164 USPQ 619 (CCPA 1970); In re Ockert, 245 F.2d 467, 114 USPQ 330 (CCPA 1957).
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-20 of U.S. Patent No. 12112560 B2. Although the claims at issue are not identical, they are not patentably distinct from each other because all the limitations of the current application are taught or would have been obvious in view of the cited patent above.
While, for example, claims 1, 10 and 19 of the current application is not identical to claims 1, 12 and 20 respectively of the patent (12112560). All the limitations are taught except by a controller which cannot be fine in the applicant disclosure as originally filed. The only place that applicant mentions about something that is remotely hint at a controller in the disclosure as claim is in paragraph [0162] of the published application where applicant discloses “Processing subsystem 904 controls the operation of computer system 900 and may comprise one or more processors, application specific integrated circuits (ASICs), or field programmable gate arrays (FPGAs)”. In other words, applicant has a processing subsystem which would correspond to claim 20. Whether a controller is use or not the method is being performed
Patent No. 12112560
18827506
A method comprising: receiving a training request, the training request including a first identifier indicative of a type of a machine learning model that is to be trained; maintaining a plurality of training jobs in a queue of training jobs; maintaining a plurality of workers in a training pool, wherein each worker is configured to train a particular type of machine learning model; and responsive to the training request being validated: creating a training job associated with the training request; submitting the training job to the queue of training jobs; obtaining, for each type of machine learning model, a first metric corresponding to a first number of the type of machine learning models included in the queue of training jobs; obtaining, for each type of machine learning model, a second metric corresponding to a second number of workers included in the training pool, wherein the second number of workers are programmed to train the type of machine learning model; computing a target metric based on the first metric and the second metric; and modifying the second number of workers included in the training pool based on the target metric.
A method comprising:
obtaining, by a controller, for each type of machine learning model included in a plurality of types of machine learning models, a first metric corresponding to a first number of the type of machine learning models included in a queue of training jobs;
obtaining, by the controller, for each type of machine learning model, a second metric corresponding to a second number of workers included in a training pool, wherein the second number of workers are programmed to train the type of machine learning model; computing, by the controller, a target metric based on the first metric and the second metric; and modif275463ying the second number of workers included in the training pool based on the target metric.
(claim 12) A non-transitory computer readable medium storing specific computer-executable instructions that, when executed by a processor, cause a computer system to at least: receive a training request, the training request including a first identifier indicative of a type of a machine learning model that is to be trained; maintaining a plurality of training jobs in a queue of training jobs; maintain a plurality of workers in a training pool, wherein each worker is configured to train a particular type of machine learning model; and in response to the training request being validated: create a training job associated with the training request; submit the training job to the queue of training jobs; obtain, for each type of machine learning model, a first metric corresponding to a first number of the type of machine learning models included in the queue of training jobs; obtain, for each type of machine learning model, a second metric corresponding to a second number of workers included in the training pool, wherein the second number of workers are programmed to train the type of machine learning model; compute a target metric based on the first metric and the second metric; and modify the second number of workers included in the training pool based on the target metric.
(claim 10) A non-transitory computer readable medium storing specific computer-executable instructions that, when executed by a processor, cause a computer system to at least: obtaining, by a controller, for each type of machine learning model included in a plurality of types of machine learning models, a first metric corresponding to a first number of the type of machine learning models included in a queue of training jobs; obtaining, by the controller, for each type of machine learning model, a second metric corresponding to a second number of workers included in a training pool, wherein the second number of workers are programmed to train the type of machine learning model; computing, by the controller, a target metric based on the first metric and the second metric; and modifying the second number of workers included in the training pool based on the target metric.
(Claim 19) A system comprising: a processor; and a memory including instructions that, when executed with the processor, cause the system to, at least: receive, by a training gateway, a training request including a first identifier indicative of a type of a machine learning model that is to be trained; maintain a plurality of training jobs in a queue of training jobs; maintain a plurality of workers in a training pool, wherein each worker is configured to train a particular type of machine learning model; and in response to the training request being validated by the training gateway: create a training job associated with the training request; submit the training job to the queue of training jobs; obtain, for each type of machine learning model, a first metric corresponding to a first number of the type of machine learning models included in the queue of training jobs; obtain, for each type of machine learning model, a second metric corresponding to a second number of workers included in the training pool, wherein the second number of workers are programmed to train the type of machine learning model; compute, by a horizontal pod auto-scaler (HPA), a target metric based on the first metric and the second metric; and modify, by the HPA, the second number of workers included in the training pool based on the target metric.
(claim 20) A controller comprising: a processor; and a memory including instructions that, when executed with the processor, cause the controller to, at least: obtain
for each type of machine learning model included in a plurality of types of machine learning models, a first metric corresponding to a first number of the type of machine learning models included in a queue of training jobs; obtain for each type of machine learning model, a second metric corresponding to a second number of workers included in a training pool, wherein the second number of workers are programmed to train the type of machine learning model; compute a target metric based on the first metric and the second metric; and modify the second number of workers included in the training pool based on the target metric.
Claim 3.
Claim 2.
In claim 1
Claim 3.
Claim 1 and 2
Claim 4
Claim 4
Claim 5
Claim 5
Claim 6
Claim 6
Claim 7
Claim 7
Claim 8
Claim 8
Claim 9
Claim 14
Claim 11
Claim 12 and 13
Claim 12
Claim 12 and 13
Claim 13
Claim 15
Claim 14
Claim 16
Claim 15
Claim 17
Claim 16
Claim 18
Claim 17
Claim 19
Claim 18
Claim Rejections - 35 USC § 112
The following is a quotation of the first paragraph of 35 U.S.C. 112(a):
(a) IN GENERAL.—The specification shall contain a written description of the invention, and of the manner and process of making and using it, in such full, clear, concise, and exact terms as to enable any person skilled in the art to which it pertains, or with which it is most nearly connected, to make and use the same, and shall set forth the best mode contemplated by the inventor or joint inventor of carrying out the invention.
The following is a quotation of the first paragraph of pre-AIA 35 U.S.C. 112:
The specification shall contain a written description of the invention, and of the manner and process of making and using it, in such full, clear, concise, and exact terms as to enable any person skilled in the art to which it pertains, or with which it is most nearly connected, to make and use the same, and shall set forth the best mode contemplated by the inventor of carrying out his invention.
Claims 1-20 are rejected under 35 U.S.C. 112(a) or 35 U.S.C. 112 (pre-AIA ), first paragraph, as failing to comply with the written description requirement. The claim(s) contains subject matter which was not described in the specification in such a way as to reasonably convey to one skilled in the relevant art that the inventor or a joint inventor, or for applications subject to pre-AIA 35 U.S.C. 112, the inventor(s), at the time the application was filed, had possession of the claimed invention.
In independent claims 1, 10 and 19, for example, applicant claims “A method comprising: obtaining, by a controller,”. It is not clear to the office what applicant is claiming as the controller. In claim 19 applicant recites “A controller comprising: a processor; and a memory including instructions”. Nowhere in applicant disclosure examiner could find a controller that includes a processor and a memory. Is applicant refereeing to the subsystem 904 and the computer system 900? The computer subsystem 904 per applicant description does not contain a memory. The computer system 900 contains system memory 910. It is not clear to the office what applicant is calling the controller. While any computer can be interpreted somehow as a controller, applicant seems to differentiate the two in this application while consider them as the same in previous application (see cited patent above claim 20). Appropriate amendment and/or explanation are respectfully requested.
Furthermore, if applicant is claiming a system similar to the one in patent No. 12112560 the current claim application would be rejected under statutory double patenting since all the limitations of the claims would be already including in the patented application.
appr
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.
The factual inquiries for establishing a background for determining obviousness under 35 U.S.C. 103 are summarized as follows:
1. Determining the scope and contents of the prior art.
2. Ascertaining the differences between the prior art and the claims at issue.
3. Resolving the level of ordinary skill in the pertinent art.
4. Considering objective evidence present in the application indicating obviousness or nonobviousness.
Claims 1-20 are rejected under 35 U.S.C. 103 as being unpatentable over Song et al. (US 11443237 B1, hereinafter “Song”) and in view of Kamarkar et al. (US 20190243688 A1, hereinafter “Kamarkar”) and in view of Warner et al. (US 10643749 B1, hereinafter “Warner”).
Regarding claims 1, 10 and 19:
Song teaches a method (Song Abstract, where Song discloses a methods, processes and algorithms) comprising:
obtaining, by a controller, for each type of machine learning model included in a plurality of types of machine learning models, a first metric corresponding to a first number of the type of machine learning models included in a queue of training jobs (Song col. 2 lines 35-55, col. 6 line 48-col. 7 line 22, fig. 1, claim 11, where Song teaches a system may analyze these obtained datasets, and automatically train one or more machine learning models. For example, the trained machine learning models may be determined, by the system, to be optimal for the datasets (e.g., optimal based on one or more error metrics). Additionally, the system may optimize hyperparameters of the machine learning models to further tailor the models to the datasets. Example machine learning models include neural networks (e.g., DeepAR, MQ-RNN, sequence models, and so on), clustering-based learning schemes, and so on. Optionally, the system may utilize other techniques, such as exponential smoothing, ARIMAX, and so on. The system may then host these models and respond to queries from the entity. In this way, the machine learning models may be a service to which the entity may query);
obtaining, by the controller, for each type of machine learning model, a second
metric (Song col. 2 lines 35-55, col. 6 line 48-col. 7 line 22, fig. 1, claim 11, where Song teaches Additionally, the system may optimize hyperparameters of the machine learning models to further tailor the models to the datasets. Example machine learning models include neural networks (e.g., DeepAR, MQ-RNN, sequence models, and so on), clustering-based learning schemes, and so on. Optionally, the system may utilize other techniques, such as exponential smoothing, ARIMAX, and so on. The system may then host these models and respond to queries from the entity. In this way, the machine learning models may be a service to which the entity may query);
computing, by the controller, a target metric based on the first metric and the second metric (Song col. 2 lines 35-55, col. 6 line 48-col. 7 line 22, col. 17 line11-col.18 lines 33, fig. 1; claim 11, where Song teaches as will be described, performance may be measured according to error metrics determined for each trained machine learning model. Subsequent to training, the system may implement (e.g., host) the trained machine learning. One or more APIs may then be leveraged by the entity to provide queries to the system. As will be described, the system may train multitudes of machine learning models and determine error metrics for each. The system may then select a machine learning model with lowest error metrics. In this way, user interface 400 may mask the deep complexities associated with such training ); and
modifying the second number of machine learning model included in the training pool based on the target metric(Song col. 2 lines 35-55, col. 6 line 48-col. 7 line 22, col. 17 line11-col.18 lines 33, figs. 1, 4 and 5, col. 19 lines 46-50, col. 20 lines 31-38, where Song teaches for example, if the user selects neural network type A, then the user interface 400 may update to include details of the neural network. Example details may include a description of the neural network, such as the types of datasets with which it is considered to be effective. The description may further indicate the hyperparameters associated with the neural network. Optionally, the user interface 400 may enable adjustments to the hyperparameters. For example, the user may adjust respective ranges of the hyperparameters, or select certain values of the hyperparameters. The description may further indicate an amount of data which is preferable. For example, and with respect to time-series datasets, the description may indicate that at least a 1000 data points and/or at least 50 datasets are preferable. The system may optionally determine that two or more machine learning models are to be utilized. Additionally, the system may determine that two or more machine learning models are to be combined by a model to generate an output).
Song fails to teach wherein corresponding to a second number of workers included in a training pool, wherein the second number of workers are programmed to train the type of machine learning model.
However, Karmarkar teaches in a specific embodiment, monitoring includes obtaining a metric; comparing the metric to a threshold; and scaling the number of worker nodes based on the comparison. In a specific embodiment, the metric includes CPU utilization. For example, if the CPU utilization is above the threshold, new worker nodes may be allocated. If the CPU utilization is below the threshold, existing worker nodes may be deallocated. A metric may instead or additionally include memory-related metrics, network metrics, time-based metrics, connection metrics, or any other metric or combination of metrics that may indicate the availability of resources or health of a worker node (Karmarkar [0193]).
Warner further teaches in various embodiments; the model definition may be generic to multiple types of models in the model type library 144. For example, the model definition may be applicable to two, more, or all types of models or category of types of models corresponding to an episode type. The model definition may directly or indirectly identify applicable model types. Alternatively, or additionally, the learning module 130 may be configured such that model definitions are assumed to be applicable to all system model types unless indicated otherwise.
The training submodule 150 may include a model processing unit 154 configured to process training requests and generate predictive models according to the requests. The model processing unit 154 may employ one or more worker processes 156a, 156b, 156c to generate a fitted model, per the parameters of the request. Worker processes 156a, 156b, 156c may include modeling software programs, software functions, processes, or subroutines, for example. The model processing unit 154, or worker processes 156a, 156b, 156c thereof, may access the model type library 153 to obtain executable instructions for generating one or more predictive models for one or more of the model types using the dataset specified in the request (Warner col. 10 line 27-col. 11 line 30).
Therefore, taking the teachings of Song, Karmarkar and Warner as a whole, it would have been obvious to one of ordinary skill in the art before the effective filing date of the application to compare metric output of each model in order, for example, to remove a machine learning model that performs poorly (not consider or not train that model for this particular request) or combine two or more models into one such that the targeted performance can be obtained.
Regarding claims 2 and 11:
Song in view of Karmarkar and in view of Warner teaches wherein the training pool includes a plurality of workers, each worker of the plurality of workers being programmed to train a particular version of the type of machine learning model (Karmarkar [0063], [0152]; Warner col. 11 line 50-col. 12 line).
Regarding claims 3 and 12:
wherein the queue of training jobs maintains a plurality of training jobs, each training job corresponding to a training request received by a training gateway, and wherein the training request includes a plurality of identifiers (Karmarkar [0065], [0071]; Warner col. 11 line 50-col. 12 line).
Regarding claims 4 and 13:
Song in view of Karmarkar and in view of Warner teaches wherein the training request includes:
a first identifier indicative of the type of the machine learning model that is to be trained,
a second identifier indicative of a version of the type of machine learning model that is to
be trained, and
a third identifier corresponding to a tenant identifier associated with a customer
issuing the training request (Karmarkar [0065], [0071], [0101], [0109]-[0111], [0152]; Warner col. 10 line 27-col. 11 line 30).
Regarding claims 5 and 14:
Song in view of Karmarkar and in view of Warner teaches wherein the training gateway is configured to:
extract a third identifier from the training request, obtain a threshold value associated with the third identifier, the threshold value corresponding to a maximum number of machine learning models that can be simultaneously trained for a customer,
validate the training request based on a current number of machine learning
models being trained for the customer being less than the threshold value, and
responsive to the training request being successfully validated, create a training job to be
submitted to the queue of training jobs (Karmarkar [0065], [0071], [0101], [0152], [0192]; (Warner col. 8 lines 4-29, col. 10 line 27-col. 11 line 30).).
Regarding claims 6 and 15:
Song in view of Karmarkar and in view of Warner teaches wherein the target metric is computed as a ratio of the first metric to the second metric (Karmarkar [0065], [0071], [0101], [0152], [0192], where a ratio is a different way of representing a comparison which is an obvious option to one or ordinary skill in the art).
Regarding claims 7, 16 and 20:
Song in view of Karmarkar and in view of Warner teaches wherein modifying the second number of workers included in the training pool further comprises increasing or decreasing the second number of workers in the training pool such that the target metric achieves a value of one (Karmarkar [0063], [0065], [0071], [0101], [0152], [0192]; Warner col. 5 lines 16-28, col. 6 lines 12-31, the number of workers is adjusted accordingly to obtain the desired result which can also be the target metric achieving a value of one).
Regarding claims 8 and 17:
Song in view of Karmarkar and in view of Warner teaches further comprising:
maintaining, for each type of machine learning model, the second metric to have a
value of at least K, wherein K corresponds to a minimum number of workers configured to train
the type of machine learning model (Karmarkar [0063], [0065], [0071], [0101], [0152], [0192], [0309]-[0310]).
Regarding claims 9 and 18:
The combination fails to explicitly teach further comprising:
storing the first metric and the second metric in a database in a first format;
converting, via an adapter, the first metric and the second metric in the first
format to a first metric and second metric in a second format; and
computing the target metric based on the first metric and the second metric in the
second format.
However, converting a metric from one format to another format is a well-known technique in the art and performing this task when deem necessary poses no undue burden to one skill in the art.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to WEDNEL CADEAU whose telephone number is (571)270-7843. The examiner can normally be reached Mon-Fri 9:00-5:00.
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, Chieh Fan can be reached at 571-272-3042. 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.
/WEDNEL CADEAU/Primary Examiner, Art Unit 2632 July 29, 2026