L'outil automatisé détecte les erreurs silencieuses dans la formation en profondeur
TrainCheck utilise des invariants de formation pour trouver la cause profonde d'erreurs difficiles à détecter avant de causer des problèmes en aval, d'économiser du temps et des ressources.
Un nouveau cadre open source développé à l'Université du Michigan détecte de manière proactive les erreurs silencieuses au fur et à mesure qu'ils se produisent lors de la formation en profondeur. Ces problèmes difficiles à détecter ne provoquent pas de défaillances de formation évidentes, mais dégradent tranquillement les performances du modèle tout en gaspillant des ressources et du temps précieux.
Dans les évaluations, le cadre TrainCheck a identifié 18 des 20 erreurs de formation silencieuses sur le monde réel en une seule itération, tandis que les méthodes actuelles n'en ont attrapé que deux – et ont découvert six bugs auparavant inconnus dans les bibliothèques de formation populaires. Les chercheurs ont introduit le traincheck dans une étude récemment présentée au Symposium USENIX sur la conception et la mise en œuvre des systèmes d'exploitation (OSDI) à Boston.
« En développant TrainCheck, nous visons à permettre aux développeurs de pouvoir de meilleurs outils pour lutter contre les erreurs silencieuses, ce qui permet en fin de compte des systèmes d'IA plus robustes », a déclaré Ryan Huang, professeur agrégé d'UM en informatique et ingénierie et auteur principal de l'étude.
Pendant l'apprentissage en profondeur, les réseaux de neurones artificiels apprennent à effectuer des tâches en utilisant de grandes quantités de données, ajustant les paramètres sur plusieurs cycles pour atteindre les performances souhaitées. Les modèles d'IA à grande échelle, comme les modèles de grands langues (LLM) et les modèles de vision par ordinateur, sont coûteux à s'entraîner, ce qui rend les erreurs silencieuses particulièrement coûteuses car elles permettent à la formation de continuer, conduisant à un modèle sous-optimal.
Les méthodes actuelles surveillent la formation d'apprentissage en profondeur avec des signaux de haut niveau, comme la perte (à quel point les prédictions du modèle sont comparées à la bonne réponse), la précision (le pourcentage de réponses correctes) et les normes de gradient (mesures de la quantité de paramètres du modèle changent à chaque étape de formation).
Cependant, ces métriques de vue de l'oiseau sont bruyantes, fluctuantes naturellement pendant l'entraînement, ce qui rend difficile la différenciation entre la variation normale et un problème réel. Par exemple, la formation de Huggingface de son LLM Bloom-176b a raté une erreur silencieuse car elle n'a pas provoqué de changements évidents dans la perte ou la précision. Le bogue a provoqué des copies du modèle fonctionnant sur différents GPU à se séparer, ce qui rend les modèles formés finaux inutilisables et gaspillant ainsi des mois de calcul coûteux.
La nouvelle approche de TrainCheck repose sur la formation des invariants, qui sont des règles qui restent constantes tout au long de la formation. Le cadre surveille en permanence la formation des invariants, alerte immédiatement les développeurs sur les écarts et fournit des informations de débogage détaillées pour aider à savoir ce qui n'a pas fonctionné. Il s'agit d'une grande étape par rapport aux méthodes de haut niveau précédentes qui ne pouvaient pas trouver la cause profonde même si des problèmes ont été détectés.
« En déduisant et en surveillant automatiquement les invariants de formation, TrainCheck permet une identification et une résolution rapides des erreurs, ce qui est un progrès significatif par rapport aux méthodes traditionnelles. Il établit une nouvelle norme pour la détection des erreurs dans les cadres d'apprentissage automatique », a déclaré Yuxuan Jiang, un doctorant en informatique et en ingénierie à UM et auteur principal de l'étude.
L'équipe de recherche a mis le traincheck à l'épreuve sur 20 erreurs silencieuses tout en comparant les performances à quatre méthodes de détection existantes. Six des erreurs silencieuses ont été tirées de recherches antérieures et les 14 autres provenaient de questions discutées dans les forums des développeurs (GitHub, Stackoverflow et les médias sociaux) pour s'assurer qu'ils testaient le cadre contre les problèmes que les développeurs ont été réellement confrontés.
TrainCheck a détecté avec succès 18 erreurs silencieuses sur 20 tandis que les détecteurs de signaux de haut niveau n'en ont détecté que deux. Les diagnostics ont révélé que sur les 18 erreurs de chèque de train détectées, les rapports de violation ont trouvé la cause profonde exacte de 10 cas et localisé près de la racine pour les huit autres. En revanche, les détecteurs de haut niveau ne pouvaient fournir que des conseils de diagnostic pour une seule erreur.
« Nous avons été impressionnés par la façon dont TrainCheck a bien fonctionné dans la gestion des problèmes du monde réel en utilisant son approche invariante de principe », a déclaré Huang.
Lors de l'évaluation des fausses erreurs, TrainCheck a alerté les développeurs sur de fausses erreurs mais à un taux bas. Bien que de fausses alarmes se soient produites, ils ont suivi des modèles reconnaissables qui les ont rendus relativement faciles à rejeter.
Les résultats solides démontrent que TrainCheck peut être intégré dans divers cadres d'apprentissage automatique, offrant aux développeurs un outil proactif pour se prémunir contre les erreurs. En offrant une détection précoce d'erreurs silencieuses, il minimise les ressources gaspillées et améliore la précision du modèle et la robustesse.
Les adaptations futures pourraient améliorer le chèque de train pour fournir une aide de débogage supplémentaire aux développeurs et étendre l'approche de validation continue à d'autres domaines de calcul, tels que les systèmes distribués, l'augmentation de la résilience et des performances où les erreurs silencieuses sont courantes.
