Les pannes matérielles, la gigue réseau et les défaillances partielles sont absorbées sans repartir de zéro.
Entraînement résilient sur des clusters distribués
Techniques pour maintenir la stabilité de l'entraînement frontier lorsque le calcul, les données et les équipes sont répartis sur plusieurs continents.
La stabilité, la reproductibilité et la reprise sont des propriétés de l’exécution. Nous les concevons de front, et non en les contournant.
L’entraînement frontier est un problème de systèmes, doté d’un budget de recherche
La stabilité, la reproductibilité et la reprise sont des propriétés d’une exécution d’entraînement. Les traiter comme des problèmes de systèmes plutôt que comme des corvées d’ingénierie fait toute la différence entre un modèle abouti et un modèle laissé à moitié. Nos travaux sur l’entraînement distribué sont publiés là où ils ne sont pas différenciants, afin que des laboratoires plus modestes puissent bâtir sur la même fondation.
Ce que « résilient » signifie en pratique
Des jeux de données versionnés, un chargement déterministe et des points de contrôle qui capturent à la fois les poids et le contexte d’entraînement qui les a produits.
Restaurer depuis un point de contrôle reproduit la même trajectoire dans les mêmes conditions.
Le calcul, les données et les équipes s’étendent sur plusieurs continents.
Une exécution en cours tient sur quatre régions et ~46 nœuds. Le runtime traite la défaillance partielle comme un problème de re-planification, et non comme un événement de redémarrage.
Quatre classes de défaillance, dont aucune ne redémarre l’exécution.
Les poids ne suffisent pas.
Un point de contrôle capture les poids et le contexte qui les a produits. Sans ce contexte, un redémarrage relève de la conjecture.
Là où le travail n’est pas différenciant, nous le contribuons en amont.
Travaux d’infrastructure ouverte
Nous contribuons les parties de cette stack qui ne sont pas différenciantes à des projets open-source en amont. Les parties différenciantes restent en interne.