Prosecution Insights
Last updated: August 16, 2026
Application No. 18/849,357

METHOD AND PLATFORM FOR COMPUTATIONAL OPTIMIZATION OF MACHINE LEARNING

Non-Final OA §101§102§103
Filed
Sep 20, 2024
Priority
Mar 23, 2022 — CN 202210290092.6 +1 more
Examiner
ABSHER, LUCAS DONALD
Art Unit
Tech Center
Assignee
Cloud Intelligence Assets Holding (Singapore) Private Limited
OA Round
1 (Non-Final)
Grant Probability
Favorable
1-2
OA Rounds

Office Action

§101 §102 §103
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 Receipt is acknowledged of certified copies of papers required by 37 CFR 1.55. Should applicant desire to obtain the benefit of foreign priority under 35 U.S.C. 119(a)-(d) prior to declaration of an interference, a certified English translation of the foreign application must be submitted in reply to this action. 37 CFR 41.154(b) and 41.202(e). Failure to provide a certified translation may result in no benefit being accorded for the non-English 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. Claims 1-14 are rejected under 35 U.S.C. 101 because the claimed invention is directed to an abstract idea without significantly more. 1. A method for computational optimization of machine learning, comprising: identifying stateful nodes in a machine learning computation graph; partitioning the machine learning computation graph into a data worker subgraph constituted by upstream nodes of the stateful nodes and a training worker subgraph constituted by the stateful nodes and downstream nodes of the stateful nodes; and on each side of a partitioned edge, adding a data sending node to the data worker subgraph and adding a data receiving node to the training worker subgraph, respectively. Claim 1 Step 1: Claim 1 is directed to a METHOD AND PLATFORM FOR COMPUTATIONAL OPTIMIZATION OF MACHINE LEARNING, the method comprising: a series of steps, and is therefore directed to a process, which is one of the four statutory categories. Claim 1 Step 2A, Prong One: Limitations 1 a,b can be performed in the human mind through observation, evaluation, judgement and opinion, with the aid of pen and paper, and is/are therefore reciting a mental process. Accordingly, claim 1 recites a judicial exception (i.e., an abstract idea). Claim 1 Step 2A, Prong Two: Limitation 1 c amounts to insignificant extra-solution activity of necessary data outputting, as it is merely outputting the result of the judicial exception, which is not indicative of integration into a practical application. See MPEP 2106.04(d) and 2106.0S(g). Claim 1Step 2B: The combination of these additional elements amounts to a method comprising steps which can be performed mentally, and comprising a step of insignificant extra-solution and well-understood, routine and conventional activity. Therefore, these elements, when considered individually and in combination, fail to add an inventive concept Claim 2 is dependent on claim 1, and therefore inherits the same judicial exception. 2. The method according to claim 1, further comprising: asynchronously executing the data worker subgraph and the training worker subgraph. Limitation 2 a recites steps which amount to mere instructions to apply the exception. See MPEP 2106.05(f). This additional element is not indicative of integration into a practical application. Claim 3 is dependent on claim 2, and therefore inherits the same judicial exception. 3. The method according to claim 2, wherein asynchronously executing the data worker subgraph and the training worker subgraph comprises: dynamically scaling, based on a mismatch indicator between data generation of the data worker subgraph and data consumption of the training worker subgraph, an amount of CPU resources for execution of the data worker subgraph. Limitation 3 a recites steps which amount to mere instructions to apply the exception. See MPEP 2106.05(f). This additional element is not indicative of integration into a practical application. Claim 4 is dependent on claim 3, and therefore inherits the same judicial exception. 4. The method according to claim 3, wherein dynamically scaling the amount of CPU resources for execution of the data worker subgraph comprises at least one of: when the mismatch indicator indicates a mismatch, increasing a number of CPU cores participating in execution of the data worker subgraph; when the mismatch indicator indicates a mismatch, requesting for a new CPU resource for independent execution of the data worker subgraph. Limitation 4 a recites steps which amount to mere instructions to apply the exception. See MPEP 2106.05(f). Limitation 4 b amounts to mere data gathering and outputting, and is therefore insignificant extra-solution activity. See MPEP 2106.04(d) and 2106.0S(g). These additional elements are not indicative of integration into a practical application. Claim 5 is dependent on claim 4, and therefore inherits the same judicial exception. 5. The method according to claim 4, wherein after the new CPU resource is allocated, the data worker subgraph is replicated, training data in a training dataset is selected for processing, and processed training data is sent to the same data receiving node. Limitations 5 a,b recites steps which amount to mere instructions to apply the exception. See MPEP 2106.05(f). Limitation 5 c amounts to mere data gathering and outputting, and is therefore insignificant extra-solution activity. See MPEP 2106.04(d) and 2106.0S(g). These additional elements are not indicative of integration into a practical application. Claim 6 is dependent on claim 2, and therefore inherits the same judicial exception. 6. The method according to claim 2, wherein asynchronously executing the data worker subgraph and the training worker subgraph comprises: acquiring, by a data worker unit, a first predetermined amount of training data, and performing a pre-processing operation based on the data worker subgraph; sending pre-processed data from the data sending node to a corresponding pre-processing result storage queue; acquiring, by the data receiving node, the pre-processed data from the corresponding processing result storage queue; and according to the pre-processed data, performing, by a training worker unit, a training operation based on the training worker subgraph. Limitation 6 d recites steps which amount to mere instructions to apply the exception. See MPEP 2106.05(f). Limitation 6 a,b,c amounts to mere data gathering and outputting, and is therefore insignificant extra-solution activity. See MPEP 2106.04(d) and 2106.0S(g). These additional elements are not indicative of integration into a practical application. Claim 7 is dependent on claim 6, and therefore inherits the same judicial exception. 7. The method according to claim 6, wherein sending the pre-processed data from the data sending node to the corresponding pre-processing result storage queue comprises: maintaining, by a data receiving operator corresponding to the data receiving node, the pre-processing result storage queue, and continuously pulling the pre-processed data from the data sending node to the pre-processing result storage queue. Limitation 7 a recites steps which amount to mere instructions to apply the exception. See MPEP 2106.05(f). Limitation 7,b amounts to mere data gathering and outputting, and is therefore insignificant extra-solution activity. See MPEP 2106.04(d) and 2106.0S(g). These additional elements are not indicative of integration into a practical application. Claim 8 is dependent on claim 6, and therefore inherits the same judicial exception. 8. The method according to claim 6, wherein the data receiving node pulls a second predetermined amount of the pre-processed data from the pre-processing result storage queue each time and distributes a new index of the first predetermined amount of training data to the data worker unit. Limitation 8 a amounts to mere data gathering and outputting, and is therefore insignificant extra-solution activity. See MPEP 2106.04(d) and 2106.0S(g). This additional element is not indicative of integration into a practical application. Claim 9 is dependent on claim 1, and therefore inherits the same judicial exception. 9. The method according to claim 1, wherein partitioning the machine learning computation graph into the data worker subgraph constituted by the upstream nodes of the stateful nodes and the training worker subgraph constituted by the stateful nodes and the downstream nodes of the stateful nodes comprises: starting from all the stateful nodes in the computation graph for performing model parameter updating, searching for and finding all the downstream nodes, to obtain a set of nodes and an edge of the set of the nodes that constitute the training worker subgraph; performing a search from a source node, to obtain a set of nodes excluding the nodes of the training worker subgraph, and obtaining the training worker subgraph. Limitations 9 a,b recites steps which amount to mere instructions to apply the exception. See MPEP 2106.05(f). These additional elements are not indicative of integration into a practical application. 10. A method for computational optimization of machine learning, comprising: acquiring, by a data worker unit performing computation based on a CPU, a first predetermined amount of training data and performing a pre-processing operation based on a data worker subgraph, and sending pre-processed data via a data sending node; acquiring, by a training worker unit performing deep learning computation based on a heterogeneous processing unit, the pre-processed data via a data receiving node to perform a training operation based on the training worker subgraph, wherein a computation graph of a current machine learning task is partitioned into the data worker subgraph constituted by upstream nodes of the stateful nodes and the training worker subgraph constituted by the stateful nodes and downstream nodes of the stateful nodes, and on each side of a partitioned edge, a data sending node is added to the data worker subgraph, and a data receiving node is added to the training worker subgraph, respectively. Limitations 10 d,e recite steps which amount to mere instructions to apply the exception. See MPEP 2106.05(f). Limitations 10 a,b,c amount to mere data gathering and outputting, and is therefore insignificant extra-solution activity. See MPEP 2106.04(d) and 2106.0S(g). These additional elements are not indicative of integration into a practical application. Claim 11 is dependent on claim 10, and therefore inherits the same judicial exception. 11. The method according to claim 10, further comprising: when a mismatch is generated between data generation of the data worker subgraph and data consumption of the training worker subgraph, performing at least one of the following operations: allocating more CPU cores to the data worker unit; requesting for allocating a new data worker unit for the current deep learning task. Limitation 11 a amounts to mere instructions to apply the exception. See MPEP 2106.05(f). Limitation 11 b amounts to mere data gathering and outputting, and is therefore insignificant extra-solution activity. See MPEP 2106.04(d) and 2106.0S(g). These additional elements are not indicative of integration into a practical application. 12. A platform for computational optimization of machine learning, comprising: a compilation server, configured to partition a computation graph of a received machine learning task into a data worker subgraph and a training worker subgraph, wherein the data worker subgraph is constituted by upstream nodes of the stateful nodes, the training worker subgraph is constituted by the stateful nodes and downstream nodes of the stateful nodes, and on each side of a partitioned edge, a data sending node is added to the data worker subgraph and a data receiving node is added to the training worker subgraph, respectively; a computation server, configured to provide a computation service for the received machine learning task, and comprising: a plurality of data worker units with each executing a data worker subgraph, and a plurality of training worker units with each executing a training worker subgraph, wherein the data worker subgraph and the training worker subgraph from a same computation graph are asynchronously executed; and a scheduling server, configured to receive a request for adding a new data worker unit for a machine learning task, and allocate a new data worker unit for a specific machine learning task based on a mismatch indicator of data worker units over training worker units for different machine learning tasks. a compilation server a computation server and a scheduling server Limitations 12 a,b recite steps which amount to mere instructions to apply the exception. See MPEP 2106.05(f). In addition, the mention of the steps being performed on a computer in limitations 12 d,e,f likewise amount to mere instructions to apply the exception. See MPEP 2106.04(d). Limitations 12 c amount to mere data gathering and outputting, and is therefore insignificant extra-solution activity. See MPEP 2106.04(d) and 2106.0S(g). These additional elements are not indicative of integration into a practical application. Claim 13 is dependent on claims 1 to 11, and therefore inherits the same judicial exceptions. 13. A computing device, comprising: a processor; and a memory storing executable codes which, when executed by the processor, cause the processor to perform the method of any one of claims 1 to 11. The mention of the steps being performed on a computer in limitation 13 a amount to mere instructions to apply the exception. See MPEP 2106.04(d). This additional element is not indicative of integration into a practical application. Claim 14 is dependent on claims 1 to 11, and therefore inherits the same judicial exceptions. 14. A non-transitory machine-readable storage medium, storing executable codes which, when executed by a processor of an electronic device, cause the processor to perform the method of any one of claims 1 to 11. The mention of the steps being performed on a computer in limitation 14 a amount to mere instructions to apply the exception. See MPEP 2106.04(d). This additional element is not indicative of integration into a practical application. Claim Rejections - 35 USC § 102 The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action: A person shall be entitled to a patent unless – (a)(2) the claimed invention was described in a patent issued under section 151, or in an application for patent published or deemed published under section 122(b), in which the patent or application, as the case may be, names another inventor and was effectively filed before the effective filing date of the claimed invention. Claim(s) 1,2,3,4,5,9,12 is/are rejected under 35 U.S.C. 102 (a)(1) as being anticipated by CN114169427A, Beijing Baidu Netcom Science and Technology Co Ltd, (Baidu hereafter) 2022-03-11. 1. A method for computational optimization of machine learning, comprising: identifying stateful nodes in a machine learning computation graph; Page 7, Paragraph 20: In one embodiment, the method may further include the steps of: (…) determining the placement information of each slice by utilizing the distributed attributes of each slice, wherein the placement information is used for representing the physical mapping relation between the slices and the computing resources. Page 7, Paragraph 22. The placement information (device _ placement) of the slice may characterize the computational resources required for the slice. Page 13, Paragraph 12, In general, the above-described training process for the model to be trained is an end-to-end adaptive process. The change of the nodes represented by the computing resources can trigger the whole system, and the system comprises two view construction (the distributed computing view corresponds to the model segmentation and the cluster resource view corresponds to the attribute determination of the computing resources), specific task construction to be executed (the distribution strategy of the segmentation result in the computing resources), process training starting, training task distribution, the computing nodes execute the training tasks and the like. Stateful nodes are described in the specification as being nodes that change with training iterations at runtime. It is implicit that the nodes from the reference are stateful as they are said to able to change. partitioning the machine learning computation graph into a data worker subgraph constituted by upstream nodes of the stateful nodes and a training worker subgraph constituted by the stateful nodes and downstream nodes of the stateful nodes; Page 7, Paragraph 22. The placement information (device _ placement) of the slice may characterize the computational resources required for the slice. Page 13, The change of the nodes represented by the computing resources, Page 5, Paragraph 23: In this regard, the above-described process of the present disclosure may be configured with an automated model segmentation process to segment the model to be trained. For example, the segmentation of the model to be trained may be based on the network layer of the model to be trained. For example, the tensors of the same network layer may be sliced, and the N tensors of the same network layer may be sliced into two groups of N/2 tensors. Alternatively, the network layer may be divided into units of network layers, and tensors belonging to one network layer may be divided into one slice, or tensors of a plurality of network layers having the same function may be divided into one slice. The model to be trained is segmented, the distributed operator and the distributed tensor can be decoupled, so that various parallel strategies can be flexibly expressed and combined, and the expansibility and maintainability of the distributed training architecture are greatly improved. From this a single slice can correspond to a single layer. Thus, both correspond to subgraphs. Page 7, Paragraph 2: The model to be trained in fig. 3 contains 8 network layers, corresponding to the "generic auto-segmentation strategy" shown in fig. 3. The first network layer (leftmost in fig. 3) of the model to be trained may serve as an input layer of the model to be trained, and the last network layer (rightmost in fig. 3) may serve as an output layer of the model to be trained. The middle 6 network layers may serve as hidden layers for the model to be trained. Taking the first network layer as an example, the network layer includes 4 tensors. The lines connecting the tensors of the network layers in fig. 3 may be used as operators. Detailed description, Paragraph 5, s103: determining a distribution strategy of each segmentation result in the computing resources by utilizing the attributes of the computing resources; and on each side of a partitioned edge, adding a data sending node to the data worker subgraph and adding a data receiving node to the training worker subgraph, respectively. Page 7, Paragraph 25, In one embodiment, when the slice is located in an adjacent network layer of the model to be trained and the placement information of the slice is different, the following steps may be included: and determining a communication auxiliary operator by using the placement information, wherein the communication auxiliary operator is used for representing the upstream and downstream logical operation relation among the slices. Page 7, Paragraph 26, Still taking fig. 3 as an example, the relationship between the slice corresponding to the first hidden layer and the slice corresponding to the 2 nd hidden layer in fig. 3 may correspond to the adjacent network layers of the model to be trained. For the adjacent network layers, the output data of the upstream network layer can be used as the input data of the downstream network layer. The first hidden layer corresponds to the computing resource XPU0 in fig. 3, and the 2 nd hidden layer corresponds to the computing resource GPU0 in fig. 3. Here the communication auxiliary operator is used to represent upstream and downstream logic operation relation (transmission between of data worker and trainer) between the slices (or subgraphs) using placement information (or nodes). The following claim inherits from claim 1 and therefore inherits its rejection. 2. The method according to claim 1, further comprising: asynchronously executing the data worker subgraph and the training worker subgraph. Page 12, Paragraph 9: In one embodiment, distributed training comprises: decentralized asynchronous pipelining. The decentralized asynchronous pipeline execution mode can realize the concurrent execution of a plurality of computing resources, automatically associates data with upstream and downstream logical relations, and realizes the parallelization and the dynamism of the data. Therefore, the concurrency of communication and calculation can be improved to the maximum extent, and the training efficiency is improved. Meanwhile, by decoupling each subtask, one task can run on multiple types of equipment. The following claim inherits from claim 2 and therefore inherits its rejection. 3. The method according to claim 2, wherein asynchronously executing the data worker subgraph and the training worker subgraph comprises: dynamically scaling, based on a mismatch indicator between data generation of the data worker subgraph and data consumption of the training worker subgraph, an amount of CPU resources for execution of the data worker subgraph. Page 11, Paragraph 3: The elastic training pattern may support a dynamically adjusted training pattern corresponding to the amount of computing resources. That is, it has been stated in the model training request that the amount of computing resources requested is within a range, and the amount of computing resources can be adjusted according to the amount range. Page 6 Paragraph 3: the computing resources allocated to the model to be trained for training can also be determined by simultaneously referring to (…) the idle computing resources The following claim inherits from claim 3 and therefore inherits its rejection. 4. The method according to claim 3, wherein dynamically scaling the amount of CPU resources for execution of the data worker subgraph comprises at least one of: when the mismatch indicator indicates a mismatch, increasing a number of CPU cores participating in execution of the data worker subgraph; when the mismatch indicator indicates a mismatch, requesting for a new CPU resource for independent execution of the data worker subgraph. Page 11, Paragraph 3: The elastic training pattern may support a dynamically adjusted training pattern corresponding to the amount of computing resources Page 8, Paragraph 23: Illustratively, the computing resources may include software resources, hardware resources, and the like. In particular, the computing resources may include CPUs, GPUs, XPUs, memories, and the like. The following claim inherits from claim 4 and therefore inherits its rejection. 5. The method according to claim 4, wherein after the new CPU resource is allocated, the data worker subgraph is replicated, training data in a training dataset is selected for processing, and processed training data is sent to the same data receiving node. Page 11, Paragraph 3: The elastic training pattern may support a dynamically adjusted training pattern corresponding to the amount of computing resources. That is, it has been stated in the model training request that the amount of computing resources requested is within a range, and the amount of computing resources can be adjusted according to the amount range. In this case, when a computing resource fails, other available computing resources may be selected as candidate computing resources. Training retries are performed in the candidate computing resources through migration of model training data. The following claim inherits from claim 1 and therefore inherits its rejection. 9. The method according to claim 1, wherein partitioning the machine learning computation graph into the data worker subgraph constituted by the upstream nodes of the stateful nodes and the training worker subgraph constituted by the stateful nodes and the downstream nodes of the stateful nodes comprises: starting from all the stateful nodes in the computation graph for performing model parameter updating, searching for and finding all the downstream nodes, to obtain a set of nodes and an edge of the set of the nodes that constitute the training worker subgraph; performing a search from a source node, to obtain a set of nodes excluding the nodes of the training worker subgraph, and obtaining the training worker subgraph. Page 7, Paragraph 22. The placement information (device _ placement) of the slice may characterize the computational resources required for the slice. Page 13, The change of the nodes represented by the computing resources, Page 5, Paragraph 23: In this regard, the above-described process of the present disclosure may be configured with an automated model segmentation process to segment the model to be trained. For example, the segmentation of the model to be trained may be based on the network layer of the model to be trained.,(…) and tensors belonging to one network layer may be divided into one slice, Page 7, Paragraph 2: The first network layer (leftmost in fig. 3) of the model to be trained may serve as an input layer of the model to be trained, and the last network layer (rightmost in fig. 3) may serve as an output layer of the model to be trained. The middle 6 network layers may serve as hidden layers for the model to be trained. Detailed description, Paragraph 5, s103: determining a distribution strategy of each segmentation result in the computing resources by utilizing the attributes of the computing resources; The reference describes a process by which segmentation of the model into hidden layers (or a training worker) is accomplished using the attributes of the computing resources (or nodes). It is implicit that these nodes were sought and obtained. 12. A platform for computational optimization of machine learning, comprising: a compilation server, configured to partition a computation graph of a received machine learning task into a data worker subgraph and a training worker subgraph, wherein the data worker subgraph is constituted by upstream nodes of the stateful nodes, the training worker subgraph is constituted by the stateful nodes and downstream nodes of the stateful nodes, and on each side of a partitioned edge, a data sending node is added to the data worker subgraph and a data receiving node is added to the training worker subgraph, respectively; Page 5, Paragraph 23: In this regard, the above-described process of the present disclosure may be configured with an automated model segmentation process to segment the model to be trained. For example, the segmentation of the model to be trained may be based on the network layer of the model to be trained. Page 7, Paragraph 2: The first network layer (leftmost in fig. 3) of the model to be trained may serve as an input layer of the model to be trained, and the last network layer (rightmost in fig. 3) may serve as an output layer of the model to be trained. The middle 6 network layers may serve as hidden layers for the model to be trained. Page 7, Paragraph 25, determining a communication auxiliary operator by using the placement information, wherein the communication auxiliary operator is used for representing the upstream and downstream logical operation relation among the slices. Page 16, Paragraph 10 : The systems and techniques described here can be implemented in a computing system that includes a back-end component (e.g., as a data server), or that includes a middleware component (e.g., an application server), or that includes a front-end component (e.g., a user computer having a graphical user interface or a web browser through which a user can interact with an implementation of the systems and techniques described here), or any combination of such back-end, middleware, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include: local Area Networks (LANs), Wide Area Networks (WANs), and the Internet. a computation server, configured to provide a computation service for the received machine learning task, and comprising: a plurality of data worker units with each executing a data worker subgraph, and a plurality of training worker units with each executing a training worker subgraph, wherein the data worker subgraph and the training worker subgraph from a same computation graph are asynchronously executed; Page 7, Paragraph 2: The first network layer (leftmost in fig. 3) of the model to be trained may serve as an input layer of the model to be trained, and the last network layer (rightmost in fig. 3) may serve as an output layer of the model to be trained. The middle 6 network layers may serve as hidden layers for the model to be trained. Page 12, Paragraph 9: In one embodiment, distributed training comprises: decentralized asynchronous pipelining. The decentralized asynchronous pipeline execution mode can realize the concurrent execution of a plurality of computing resources, automatically associates data with upstream and downstream logical relations, and realizes the parallelization and the dynamism of the data. Page 16, Paragraph 10 : The systems and techniques described here can be implemented in a computing system that includes a back-end component (e.g., as a data server), or that includes a middleware component (e.g., an application server), or that includes a front-end component (e.g., a user computer having a graphical user interface or a web browser through which a user can interact with an implementation of the systems and techniques described here), or any combination of such back-end, middleware, or front-end components. and a scheduling server, configured to receive a request for adding a new data worker unit for a machine learning task, and allocate a new data worker unit for a specific machine learning task based on a mismatch indicator of data worker units over training worker units for different machine learning tasks. Page 11, Paragraph 3: The elastic training pattern may support a dynamically adjusted training pattern corresponding to the amount of computing resources. Page 6 Paragraph 3: the computing resources allocated to the model to be trained for training can also be determined by simultaneously referring to (…) the idle computing resources Page 16, Paragraph 10 : The systems and techniques described here can be implemented in a computing system that includes a back-end component (e.g., as a data server), or that includes a middleware component (e.g., an application server), or that includes a front-end component (e.g., a user computer having a graphical user interface or a web browser through which a user can interact with an implementation of the systems and techniques described here), or any combination of such back-end, middleware, or front-end components. 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. Claim(s) 6,7,8,10,11,13,14 is/are rejected under 35 U.S.C. 103 as being unpatentable over CN114169427A, Beijing Baidu Netcom Science and Technology Co Ltd, (Baidu hereafter) 2022-03-11. in view of , US20180336458 , MICROSOFT TECHNOLOGY LICENSIN (Microsoft hereafter), 2017-05-18. The following claim inherits from claim 2 and therefore inherits its rejection. Baidu does not explicitly teach the following limitation: 6. The method according to claim 2, wherein asynchronously executing the data worker subgraph and the training worker subgraph comprises: acquiring, by a data worker unit, a first predetermined amount of training data, and performing a pre-processing operation based on the data worker subgraph; Microsoft does however. [0028] In various examples described herein the distributed neural network training system comprises a network of worker nodes. The network comprises a pipeline is some cases but this is not essential. A pipeline is a plurality of computational worker nodes connected in series and where a plurality of data instances may be in fight in the pipeline concurrently. For example, a neural network training data instance which has been processed by a first worker node of the pipeline is passed to a second worker node of the pipeline. A second training data instance is injected into the pipeline and is processed by the first worker node of the pipeline concurrently with processing of the first training data instance by the second worker node of the pipeline. In this way each of the worker nodes of the pipeline is able to work whilst the other worker nodes of the pipeline are concurrently working. Baidu does not explicitly teach the following limitation: sending pre-processed data from the data sending node to a corresponding pre-processing result storage queue; [0028] For example, a neural network training data instance which has been processed by a first worker node of the pipeline is passed to a second worker node of the pipeline [0005] A neural network training apparatus is described which has a network of worker nodes each having a memory storing a subgraph of a neural network to be trained. The apparatus has a control node connected to the network of worker nodes. The control node is configured to send training data instances into the network to trigger parallelized message passing operations which implement a training algorithm which trains the neural network. At least some of the message passing operations asynchronously update parameters of individual subgraphs of the neural network at the individual worker nodes. Baidu does not explicitly teach the following limitation: acquiring, by the data receiving node, the pre-processed data from the corresponding processing result storage queue; Microsoft does however. [0028] For example, a neural network training data instance which has been processed by a first worker node of the pipeline is passed to a second worker node of the pipeline [0005] A neural network training apparatus is described which has a network of worker nodes each having a memory storing a subgraph of a neural network to be trained Baidu does not explicitly teach the following limitation: and according to the pre-processed data, performing, by a training worker unit, a training operation based on the training worker subgraph. Microsoft does however. [0005] The apparatus has a control node connected to the network of worker nodes The control node is configured to send training data instances into the network to trigger parallelized message passing operations which implement a training algorithm which trains the neural network. It would have been obvious for one of ordinary skill in the art at the time of this application’s filing to introduce Microsoft’s implementation of the above limitations, 6a-d, into Baidu’s design as it would have allowed for a reliable means of continuously conveying training data through memory, facilitating end learning while allowing for data monitoring. The following claim inherits from claim 6 and therefore inherits its rejection. Baidu does not teach the following limitation: 7. The method according to claim 6, wherein sending the pre-processed data from the data sending node to the corresponding pre-processing result storage queue comprises: maintaining, by a data receiving operator corresponding to the data receiving node, the pre-processing result storage queue, and continuously pulling the pre-processed data from the data sending node to the pre-processing result storage queue. Microsoft does however. [0028] For example, a neural network training data instance which has been processed by a first worker node of the pipeline is passed to a second worker node of the pipeline , A second training data instance is injected into the pipeline and is processed by the first worker node of the pipeline concurrently with processing of the first training data instance by the second worker node of the pipeline. In this way each of the worker nodes of the pipeline is able to work whilst the other worker nodes of the pipeline are concurrently working. [0005] A neural network training apparatus is described which has a network of worker nodes each having a memory storing a subgraph of a neural network to be trained It would have been obvious for one of ordinary skill in the art at the time of this application’s filing to introduce Microsoft’s implementation of the above limitation, into Baidu’s design as it would have allowed for a reliable means of continuously conveying training data through memory, facilitating end learning while allowing for data monitoring. The following claim inherits from claim 6 and therefore inherits its rejection. Baidu does not teach the following limitation: 8. The method according to claim 6, wherein the data receiving node pulls a second predetermined amount of the pre-processed data from the pre-processing result storage queue each time and distributes a new index of the first predetermined amount of training data to the data worker unit. Microsoft does however. [0028] For example, a neural network training data instance which has been processed by a first worker node of the pipeline is passed to a second worker node of the pipeline , A second training data instance is injected into the pipeline and is processed by the first worker node of the pipeline concurrently with processing of the first training data instance by the second worker node of the pipeline. In this way each of the worker nodes of the pipeline is able to work whilst the other worker nodes of the pipeline are concurrently working. It would have been obvious for one of ordinary skill in the art at the time of this application’s filing to introduce Microsoft’s implementation of the above limitation, into Baidu’s design as it would have allowed for a reliable means of continuously conveying training data through memory, facilitating end learning while allowing for data monitoring. Baidu teaches the following substantially as claimed: 10. A method for computational optimization of machine learning, comprising: wherein a computation graph of a current machine learning task is partitioned into the data worker subgraph constituted by upstream nodes of the stateful nodes and the training worker subgraph constituted by the stateful nodes and downstream nodes of the stateful nodes, and on each side of a partitioned edge, a data sending node is added to the data worker subgraph, and a data receiving node is added to the training worker subgraph, respectively. Page 7, Paragraph 22. The placement information (device _ placement) of the slice may characterize the computational resources required for the slice. Page 13, The change of the nodes represented by the computing resources, Page 5, Paragraph 23: In this regard, the above-described process of the present disclosure may be configured with an automated model segmentation process to segment the model to be trained. For example, the segmentation of the model to be trained may be based on the network layer of the model to be trained. Page 7, Paragraph 2: The first network layer (leftmost in fig. 3) of the model to be trained may serve as an input layer of the model to be trained, and the last network layer (rightmost in fig. 3) may serve as an output layer of the model to be trained. The middle 6 network layers may serve as hidden layers for the model to be trained. Page 7, Paragraph 25, determining a communication auxiliary operator by using the placement information, wherein the communication auxiliary operator is used for representing the upstream and downstream logical operation relation among the slices. Detailed description, Paragraph 5, s103: determining a distribution strategy of each segmentation result in the computing resources by utilizing the attributes of the computing resources; Baidu does not teach the following limitation: acquiring, by a data worker unit performing computation based on a CPU, a first predetermined amount of training data and performing a pre-processing operation based on a data worker subgraph, and sending pre-processed data via a data sending node; Microsoft does however. [0028] For example, a neural network training data instance which has been processed by a first worker node of the pipeline is passed to a second worker node of the pipeline [0005] A neural network training apparatus is described which has a network of worker nodes each having a memory storing a subgraph of a neural network to be trained. Baidu does not teach the following limitation: acquiring, by a training worker unit performing deep learning computation based on a heterogeneous processing unit, the pre-processed data via a data receiving node to perform a training operation based on the training worker subgraph, Microsoft does however. [0028] For example, a neural network training data instance which has been processed by a first worker node of the pipeline is passed to a second worker node of the pipeline [0005] A neural network training apparatus is described which has a network of worker nodes each having a memory storing a subgraph of a neural network to be trained. The apparatus has a control node connected to the network of worker nodes The control node is configured to send training data instances into the network to trigger parallelized message passing operations which implement a training algorithm which trains the neural network. [0033] In the example of FIG. 2 each individual worker node has fast memory 204 and the control node 200 has access to a store of training data 202. The control node sends messages comprising data into the pipeline and these messages trigger message passing operations. A message passing operation is a computation which occurs at a neural network node using data in one or more messages received at the worker node and instructions for the computation which are available at the neural network node. The results of the computation are stored at the neural network node or sent to other neural network node(s) of the graph in another message passing operation. In the present technology the computations are instructions which implement functionality of a subgraph of the neural network which is stored at a worker node, and the data is either training or test examples from the control node, or results of computations on the training or test examples from a worker node. In the present technology the message passing operations implement a neural network training algorithm such as backpropagation. It would have been obvious for one of ordinary skill in the art at the time of this application’s filing to implement the above limitations, 10a,b, into Baidu’s design as it would have allowed for a reliable means of conveying training data through memory, facilitating end learning while allowing for data monitoring. Baidu teaches the following substantially as claimed: The following claim inherits from claim 10 and therefore inherits its rejection. 11. The method according to claim 10, further comprising: when a mismatch is generated between data generation of the data worker subgraph and data consumption of the training worker subgraph, performing at least one of the following operations: allocating more CPU cores to the data worker unit; requesting for allocating a new data worker unit for the current deep learning task. Page 11, Paragraph 3: The elastic training pattern may support a dynamically adjusted training pattern corresponding to the amount of computing resources. Page 8, Paragraph 23: the computing resources may include CPUs, GPUs, XPUs, memories, and the like. Baidu teaches the following substantially as claimed: The following claim inherits from claims 1-11 and therefore inherits their rejections. 13. A computing device, comprising: a processor; and a memory storing executable codes which, when executed by the processor, cause the processor to perform the method of any one of claims 1 to 11. Page 16, Paragraph 7: Program code for implementing the methods of the present disclosure may be written in any combination of one or more programming languages. These program codes may be provided to a processor or controller of a general purpose computer, special purpose computer, or other programmable data processing apparatus, such that the program codes, when executed by the processor or controller, cause the functions/operations specified in the flowchart and/or block diagram to be performed. The program code may execute entirely on the machine, partly on the machine, as a stand-alone software package partly on the machine and partly on a remote machine or entirely on the remote machine or server. Baidu teaches the following substantially as claimed: The following claim inherits from claims 1-11 and therefore inherits their rejections. 14. A non-transitory machine-readable storage medium, storing executable codes which, when executed by a processor of an electronic device, cause the processor to perform the method of any one of claims 1 to 11. Page 4, Paragraph 17: According to another aspect of the present disclosure, there is provided a non-transitory computer readable storage medium having stored thereon computer instructions for causing a computer to perform a method in any of the embodiments of the present disclosure. Conclusion Any inquiry concerning this communication or earlier communications from the examiner should be directed to Luke Absher whose telephone number is (571) 270-1057. The examiner can normally be reached M-F: 8:00 am - 4:00 pm. 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 US PTO Automated Interview Request (AIR) at http:/ /www.uspto.gov/interviewpractice. If attempts to reach the examiner by telephone are unsuccessful, the examiner's supervisor, Kevin Young can be reached at 571-270-3180. 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. /LUCAS DONALD ABSHER/ Examiner, Art Unit 2194 /KEVIN L YOUNG/Supervisory Patent Examiner, Art Unit 2194
Read full office action

Prosecution Timeline

Sep 20, 2024
Application Filed
Jul 28, 2026
Non-Final Rejection mailed — §101, §102, §103 (current)

Strategy Recommendation AI-generated — please review before filing

Get a prosecution strategy drawn from examiner precedents, rejection analysis, and claim mapping.
Typically takes 5-10 seconds — AI-generated, attorney review required before filing

Sign in with your work email

Enter your email to receive a magic link. No password needed.

Personal email addresses (Gmail, Yahoo, etc.) are not accepted.

Free tier: 3 strategy analyses per month