Training large neural network models by providing training input to model training machines organized as multiple replicas that asynchronously update a shared model via a global parameter server is described herein. In at least one embodiment, a system including a model module storing a portion of a model and a deep learning training module that communicates with the model module are configured for asynchronously sending updates to shared parameters associated with the model. The techniques herein describe receiving and processing a batch of data items to calculate updates. Replicas of training machines communicate asynchronously with a global parameter server to provide updates to a shared model and return updated weight values. The model may be modified to reflect the updated weight values. The techniques described herein include computation and communication optimizations that improve system efficiency and scaling of large neural networks.
Please help me write a proper abstract based on the patent claims. CLAIM: 1. A system comprising: a computer-readable media storing at least two modules; a processing unit operably coupled to the computer-readable media, the processing unit adapted to execute the at least two modules, the at least two modules comprising: a model module configured to store a portion of a model; and a deep learning training module configured to communicate with the model module and asynchronously sending updates to parameters shared by the model. 2. A system as claim 1 recites, further comprising one or more data servers configured to pre-process data items and store the pre-processed data items, wherein pre-processing the data items comprises creating variants of the data items. 3. A system as claim 2 recites, wherein the deep learning training module is further configured to: asynchronously receive batches of the pre-processed data items from the one or more data servers; and provide the batches of the pre-processed data items as input to the model module. 4. A system as claim 1 recites, wherein asynchronously sending the updates comprises sending associative and commutative weight updates to the parameters shared by the model. 5. A system as claim 1 recites, wherein asynchronously sending the updates comprises sending updates including activation terms and error terms to the parameters shared by the model, the activation terms representing an output of individual neurons in a layer of the model resulting from feed-forward evaluation and the error terms representing computations associated with the individual neurons resulting from back-propagation of the activation terms. 6. A system as claim 5 recites, further comprising one or more parameter servers configured to: store the parameters shared by the model; receive the activation terms and the error terms for updating the parameters; collect the activation terms and the error terms; calculate updated weight values associated with the parameters based at least partly on the collected activation terms and error terms; and send the updated weight values to the deep learning training module. 7. A system as claim 1 recites, wherein the deep learning training module is further configured to: asynchronously receive updated weight values based on the updates sent to the parameters shared by the model; and provide the updated weight values to the model module to update the portion of the model. 8. A system as claim 1 recites, wherein the portion of the model includes individual neurons arranged in layers, individual neurons in a first layer having vertical proximities within a predetermined threshold to individual neurons in neighboring layers. 9. One or more computer-readable storage media encoded with instructions that, when executed by a processor, configure a computer to perform acts comprising: receiving a batch of data items; processing individual data items of the batch of data items, the processing comprising applying a model to the batch of data items to calculate updates; asynchronously sending the updates to shared parameters associated with the model; asynchronously receiving updated weight values based on the updates to the shared parameters; and modifying the model to reflect the updated weight values. 10. One or more computer-readable storage media as claim 9 recites, wherein the processing the individual data items further comprises: assigning the individual data items to individual threads of a plurality of threads based at least in part on the individual threads sharing a same model weight; allocating a training context for feed-forward evaluation and back-propagation; calculating weight updates associated with the convolutional layers of the model; and calculating activation terms and error terms associated with neurons in fully connected layers of the model, the activation terms and error terms based at least in part on the feed-forward evaluation and back-propagation. 11. One or more computer-readable storage media as claim 9 recites, wherein asynchronously sending the updates to the shared parameters comprises sending the updates responsive to processing a predetermined number of the individual data items. 12. One or more computer-readable storage media as claim 9 recites, wherein asynchronously sending the updates to the shared parameters comprises sending the updates in predetermined time intervals. 13. One or more computer-readable storage media as claim 9 recites, wherein the updates are associative and commutative and are aggregated before being applied to update the shared parameters. 14. One or more computer-readable storage media as claim 9 recites, wherein the batch of data items comprises a first batch of data items and the method further comprises: receiving a second batch of data items; processing individual data items of the second batch of data items, the processing comprising applying the model to the second batch of data items to calculate new updates; asynchronously sending the new updates to the shared parameters; asynchronously receiving new updated weight values based on the new updates to the shared parameters; and modifying the model to reflect the new updated weight values. 15. One or more computer-readable storage media as claim 14 recites, further comprising calculating a model prediction error based at least in part on the updated individual weight values and the new updated weight values. 16. One or more computer-readable storage media as claim 15 recites, further comprising processing subsequent batches of data items until the model prediction error converges to a value below a predetermined threshold. 17. A method comprising: arranging computing devices into groups of computing devices, individual groups associated with a model; and partitioning the model across the computing devices in each individual group, the partitioning comprising vertically partitioning the model such that neurons in a layer of the model have vertical proximities within a predetermined threshold to neurons in neighboring layers of the model. 18. A method as claim 17 recites, wherein partitioning the model across the computing devices further comprises partitioning the model to fit in an L3 cache of the computing devices. 19. A method as claim 17 recites, wherein arranging the groups comprises arranging the groups such that a first group sends updates to shared parameters associated with the model at a first rate and a second group sends additional updates to the shared parameters at a second rate. 20. A method as claim 19 recites, wherein arranging the groups further comprises arranging the groups such that the first group sends the updates without knowledge of the second group sending the additional updates.