Los fallos de hardware, la fluctuación de red y los fallos parciales se absorben sin reiniciar desde cero.
Entrenamiento resiliente en clústeres distribuidos
Técnicas para mantener el entrenamiento de frontera estable cuando el cómputo, los datos y los equipos abarcan varios continentes.
La estabilidad, la reproducibilidad y la recuperación son propiedades de la ejecución. Diseñamos para ellas, no a su alrededor.
El entrenamiento de frontera es un problema de sistemas con un presupuesto de investigación
La estabilidad, la reproducibilidad y la recuperación son propiedades de una ejecución de entrenamiento. Tratarlas como problemas de sistemas en lugar de tareas rutinarias de ingeniería marca la diferencia entre un modelo terminado y uno a medio terminar. Nuestro trabajo de entrenamiento distribuido se publica donde no es diferenciador, para que los laboratorios más pequeños puedan construir sobre la misma base.
Qué significa «resiliente» en la práctica
Conjuntos de datos versionados, carga determinista y checkpoints que capturan tanto los pesos como el contexto de entrenamiento que los produjo.
Restaurar desde un checkpoint reproduce la misma trayectoria bajo las mismas condiciones.
El cómputo, los datos y los equipos abarcan continentes.
Una ejecución en vivo se mantiene a través de cuatro regiones y ~46 nodos. El runtime trata el fallo parcial como un problema de reprogramación, no como un evento de reinicio.
Cuatro clases de fallo, ninguna de las cuales reinicia la ejecución.
Los pesos no bastan.
Un checkpoint captura los pesos y el contexto que los produjo. Sin ese contexto, un reinicio es una conjetura.
Donde el trabajo no es diferenciador, lo aportamos upstream.
Trabajo de infraestructura abierta
Aportamos las partes de este stack que no son diferenciadoras a proyectos de código abierto upstream. Las partes diferenciadoras se quedan en casa.