PERFORMING SYNCHRONIZATION IN THE BACKGROUND FOR HIGHLY SCALABLE DISTRIBUTED TRAINING

In one embodiment, a method for training a machine-learning model having multiple parameters includes instantiating trainers each associated with at least a worker thread, a synchronization thread, and a local version of the parameters, using the worker threads to perform training operations that co...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Hauptverfasser: YANG, Jiyan, SU, Bor-Yiing, JIN, Ou, ZHENG, Qinqing, AZZOLINI, Alisson Gusatti, WU, Qiang
Format: Patent
Sprache:eng ; fre
Schlagworte:
Online-Zugang:Volltext bestellen
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
Beschreibung
Zusammenfassung:In one embodiment, a method for training a machine-learning model having multiple parameters includes instantiating trainers each associated with at least a worker thread, a synchronization thread, and a local version of the parameters, using the worker threads to perform training operations that comprise generating an updated local version of the parameters for each trainer using its associated worker thread, while the worker threads are performing training operations, using the synchronization threads to perform synchronization operations that comprise generating a global version of the parameters based on the updated local versions of the parameters and generating a synchronized local version of the parameters for each trainer based on the global version, continuing performing training operations based on the synchronized local versions of the parameters, and determining the parameters at the end of training based on at least a final local version of the parameters associated with one trainer. Selon un mode de réalisation de l'invention, un procédé d'entraînement d'un modèle d'apprentissage automatique comprenant de multiples paramètres comprend les étapes consistant à instancier des entraîneurs dont chacun est associé à au moins un fil exécutant, un fil de synchronisation, et une version locale des paramètres, utiliser les fils exécutants pour effectuer des opérations d'entraînement qui comprennent la génération d'une version locale mise à jour des paramètres pour chaque entraîneur à l'aide du fil exécutant qui lui est associé, tandis que les fils exécutants effectuent des opérations d'entraînement, utiliser les fils de synchronisation pour effectuer des opérations de synchronisation qui comprennent la génération d'une version globale des paramètres d'après les versions locales mises à jour des paramètres et la génération d'une version locale synchronisée des paramètres pour chaque entraîneur d'après la version globale, continuer à effectuer des opérations d'entraînement d'après les versions locales synchronisées des paramètres, et déterminer les paramètres à la fin de l'entraînement d'après au moins une version locale finale des paramètres associée à un des entraîneurs.