La voie la plus rapide pour développer une IA de pointe
Element AI Element AI
15 avril 12 min

La voie la plus rapide pour développer une IA de pointe

Par Boris Oreshkin et Dmitri Carpov

Boris Oreshkin et Dmitri Carpov.
Dmitri Carpov (gauche) et Boris Oreshkin.

Nous avons inventé un nouveau modèle révolutionnaire de prévision de séries chronologiques. Voici comment nous avons exploité l’énorme puissance de calcul dont nous avions besoin pour y parvenir.

Il y a un peu plus d’un an, un petit groupe d’employés d’Element AI, en collaboration avec Yoshua Bengio de Mila, s’est intéressé à une question scientifique complexe qui nous a pris des mois à démêler. Était-il possible, nous demandions-nous, d’élaborer un modèle de prévision de séries chronologiques plus précis que les approches traditionnelles en utilisant uniquement une architecture neuronale profonde ? Plusieurs s’y sont essayés, mais n’ont récolté que peu de succès : les modèles d’apprentissage automatique donnaient toujours des résultats décevants.

Nous avons essayé une approche différente et, finalement, à notre grande joie, cela a fonctionné. Pour la première fois, un modèle basé exclusivement sur l’apprentissage automatique, que nous avons appelé N-Beats, a obtenu des résultats inégalés dans la prévision de séries chronologiques univariées. Nous poursuivons actuellement notre exploration de la puissance de notre modèle qui, à notre avis, pourrait servir dans d’autres domaines que les séries chronologiques.

N-Beats a des fondements théoriques solides, mais il nous a fallu plus qu’un tableau blanc et quelques marqueurs effaçables pour le construire. Nous avons dû mener des milliers d’expériences en parallèle, ce qui a nécessité une puissance de calcul considérable. Nous avons bénéficié de l’accès à un ensemble d’outils internes conçus pour aider nos équipes à accélérer le développement de modèles et d’applications d’IA pour les entreprises et les industries. En particulier, Orkestrator d’Element AI, notre outil de planification des ressources GPU, nous a permis de partager des ressources informatiques avec des collègues de toute l’entreprise et d’exécuter en parallèle des requêtes hyperparamétrées et des travaux d’optimisation d’architecture. En utilisant ces outils pour nos expériences, nous avons réussi à réaliser et à comparer plusieurs expériences en même temps, à profiter des moments où la grappe était sous-utilisée pour fournir à notre équipe les ressources GPU essentielles à l’émergence de N-Beats – tout cela sans monopoliser la grappe ni empêcher nos collègues d’utiliser les mêmes ressources.

Pourquoi une approche basée sur l’apprentissage profond pour la prévision de séries chronologiques ?

La prévision de séries chronologiques analyse les données du passé pour prévoir des valeurs futures. Elle est au cœur de presque tous les secteurs d'activité, et ce, pour une bonne raison : parfois, même une infime amélioration de la précision peut se traduire par des millions de dollars d’économies d’exploitation.

Les ensembles de données de séries chronologiques comprennent une séquence de points de données dont l’ordre est déterminé en fonction du moment où le point de données a été enregistré ou observé. Les modèles s’entraînent sur ces points de données passés et utilisent ensuite ces données pour prédire au mieux leur valeur à l’avenir. Imaginez un ensemble de données contenant les ventes nationales hebdomadaires de casques de réalité virtuelle au cours de l’année précédente. Un modèle de prévision de séries chronologiques pourrait s’entraîner sur cet ensemble de données, en tenant compte à la fois des considérations saisonnières, comme les achats des Fêtes, et de la tendance générale à la hausse ou à la baisse. En utilisant ces données passées, le modèle pourrait prévoir les ventes hebdomadaires futures de casques, ce qui permettrait aux détaillants de planifier leur approvisionnement et de mieux répondre à la demande.

Jusqu’au développement de N-Beats, la possibilité qu’un modèle d’apprentissage profond puisse concurrencer les approches statistiques rencontrait un certain scepticisme. Les approches dites « hybrides », qui combinent les méthodes statistiques classiques et l’apprentissage automatique, présentaient cependant un grand potentiel. Comme l’ont déclaré certains des principaux acteurs du domaine dans un article de 2018, « les approches hybrides et les combinaisons de méthodes sont la voie à suivre pour améliorer la précision des prévisions et les rendre plus utiles ».

Si les modèles « hybrides » affichaient des résultats exceptionnels en battant les meilleurs modèles statistiques par une marge substantielle, nous avons pensé que les possibilités seraient encore plus grandes d’améliorer les performances avec un modèle basé exclusivement sur l’apprentissage profond.

Le point de départ logique était l’ensemble de données M4. Lorsque nous avons effectué cette recherche, il s’agissait de l’ensemble de données du dernier concours M, un concours international de prévision qui remonte à 1982. Le concours M4 a eu lieu en 2018 et a été remporté par un modèle hybride développé par S. Smyl d’Uber. Comme l’ensemble de données de ce concours est accessible au public, nous avons pu l’utiliser pour tester nos nouveaux modèles d’apprentissage profond.

Nous avons conçu un dispositif expérimental rigoureux, qui nécessiterait une série d’expériences à grande échelle sur notre grappe GPU. Element AI dispose de vastes ressources de calcul, mais ces expériences à grande échelle remettaient sérieusement en question notre infrastructure informatique.

Orchestration des efforts

Une utilisation optimale des ressources informatiques est essentielle pour résoudre tout problème nécessitant des calculs parallèles. Pour N-Beats, nous ne développions pas un seul modèle : dans l’expérience M4, par exemple, N-Beats était constitué de 180 modèles différents.

L’élaboration de ces modèles a requis l’exécution de milliers d’essais expérimentaux en parallèle, un processus très gourmand en GPU et en temps. Grâce à la puissance de nos outils d’IA, nous avons pu tester différents réglages d’hyperparamètres, comme le nombre de blocs, la taille des blocs et la taille des fenêtres, tout en réduisant considérablement le temps nécessaire à la réalisation des expériences. Pour chaque configuration de paramètres, nous avons dû entraîner 180 modèles afin de tester leur performance sur l’ensemble de validation, et la recherche hyperparamétrée a nécessité un grand nombre de GPU, tous en même temps. En fait, elle utilisait près de la moitié de la grappe d’Element AI, qui faisait l’objet d’une demande importante de la part des centaines d’autres projets d’entraînement lancés par d’autres chercheurs.

Répartition mensuelle de l'utilisation des grappes pour le développement de N-Beats.

Aujourd’hui, tous les spécialistes en IA d’Element AI effectuent des travaux sur notre grappe GPU en utilisant Orkestrator, un outil qui gère activement l’attribution des ressources GPU. Nous avons développé cet outil à l’interne il y a presque trois ans, afin de garantir à nos équipes l’accès à la puissance de calcul dont elles ont besoin pour innover et créer de nouveaux produits d’IA pour l’industrie.

Il n’en a pas toujours été ainsi. Auparavant, les spécialistes d’Element AI n’utilisaient en tout temps que le quart des ressources GPU. Ils effectuaient des travaux importants, mais de façon beaucoup moins efficace, de sorte que la R-D prenait plus de temps. Aujourd’hui, l’utilisation des GPU est en moyenne d’environ 90 %, et la productivité globale a grimpé en flèche, avec des travaux effectués en parallèle à toute heure du jour et des configurations très efficaces. Cela nous a permis de lancer des expériences de grande envergure et d’obtenir des résultats en une seule journée.

Notre équipe a constaté que nous avions dépensé davantage de puissance de calcul lorsque nous avions travaillé à la simplification du modèle. Voici un résumé technique de notre approche : Nous avons commencé par une approche de modélisation seq2seq vanille impliquant une pile de blocs d’encodeurs/décodeurs construite à partir de primitives CNN/LSTM. Cette solution s’est avérée gourmande, car il fallait 24 heures pour former un modèle sur l’ensemble de données M4, et il était loin d’être performant. Les LSTM ont des problèmes pour extrapoler les tendances et traiter la non-stationnarité dans les séries chronologiques (c’est-à-dire les séries où les propriétés statistiques, comme la moyenne, changent avec le temps). C’est pourquoi un prétraitement intensif est généralement utilisé dans les applications de prévision impliquant des LSTM. C’est là qu’est née l’idée originale d’insérer un bloc de prétraitement pouvant apprendre à supprimer une tendance. Le bloc de suppression de tendance, basé sur une approximation polynomiale pouvant être apprise, soustrait son estimation de tendance de l’entrée de la pile CNN/LSTM et fournit une prévision de tendance partielle à la sortie.

Cette nouvelle approche a beaucoup mieux fonctionné. Nous avons donc commencé à empiler des blocs de suppression de tendance et avons ajouté des blocs de prétraitement de la saisonnalité. Il est vite apparu que la pile CNN/LSTM ne faisait que consommer notre puissance de calcul pendant l’entraînement. Nous l’avons donc retirée et avons réduit le temps d’entraînement par un facteur de 10.

Finalement, nous nous sommes demandé si la modélisation des tendances et de la saisonnalité pouvait être apprise par un réseau générique, entièrement connecté, sans aucune contrainte. Nous avons constaté qu’une architecture simple, entièrement connectée, sans connaissance du domaine et sans prétraitement des données, fonctionne aussi bien que celle basée sur la modélisation des tendances et de la saisonnalité. C’est ainsi que N-Beats est officiellement né.

Un atout pour nos utilisateurs internes

Element AI est un vaste milieu collaboratif composé de plus de 100 doctorants et spécialistes en IA. Nous travaillons en petites équipes sur des projets indépendants, qui reposent tous sur un accès facile à notre grappe. Sans un outil de planification des ressources GPU, le droit d’utilisation était souvent un sujet de discorde entre les chercheurs : qui était autorisé à accéder en priorité à la grappe et pourquoi ? Avec Orkestrator, la durée d’accès a été allouée de façon plus équitable, évitant aux équipes d’avoir à persuader les responsables que leur projet était le plus important, le plus urgent et le plus excitant, et donc celui qui devait avoir la priorité.

L’outil donne aussi aux spécialistes en IA et aux administrateurs informatiques une vue d’ensemble des travaux exécutés sur la grappe, de sorte que le suivi d’une expérience à grande échelle devient beaucoup plus facile que si les utilisateurs devaient vérifier manuellement la bonne exécution de leurs travaux. Cela se traduit par un gain de temps considérable. Dans notre cas, sans un outil de planification des ressources GPU, nous aurions passé la majorité du temps à surveiller et à orchestrer les travaux que nous faisions. Au lieu de cela, la plupart du processus a été entièrement automatisé, ce qui nous a permis de nous concentrer sur les questions scientifiques.

Au final, les résultats de milliers et de milliers d’expériences ont fait de N-Beats le nec plus ultra des outils de prévision de séries chronologiques univariées. Il n’était pas seulement meilleur, il était aussi conceptuellement plus simple et plus rapide à entraîner que d’autres approches de pointe. Ainsi, il suffit d’environ une heure pour l’entraîner sur 100 000 séries chronologiques sur notre grappe GPU.

Mais l’histoire ne s’arrête pas là. Un article récent montre que N-Beats peut être entraîné sur un ensemble de données, puis appliqué à un autre, même si ce dernier ne contient pas de séries chronologiques de l’ensemble d’entraînement, et surpasser les résultats de la plupart des méthodes statistiques populaires. Par exemple, N-Beats, qui a été entraîné sur l’ensemble de données M4, peut être appliqué à des séries chronologiques provenant de différents domaines, comme des statistiques sur le tourisme ou le trafic sur les voies d’autoroute.

N-Beats apparaît comme la mise en œuvre d’un algorithme de méta-apprentissage. En d’autres mots, c’est un algorithme qui est capable d’apprendre à apprendre. Il peut donc s’adapter et faire de bonnes prédictions même sur des ensembles de données comportant des séries chronologiques qu’il n’a jamais vues auparavant. Il s’agit là d’une contribution importante aux algorithmes d’apprentissage automatique. Et nous n’aurions pas pu y parvenir sans d’énormes ressources informatiques hautement optimisées et la puissance de calcul nécessaire pour tester nos hypothèses à l’échelle.

Ce sont nos outils d’IA qui ont rendu ces progrès possibles. Ils permettent de consolider les meilleures pratiques et favorisent la collaboration entre les groupes. Ils prennent en charge certaines des tâches d’ingénierie liées à l’exécution de travaux sur la grappe GPU. Ils permettent de réaliser plus d’essais expérimentaux en moins de temps, accélérant l’entraînement et les tests des modèles. Ils favorisent enfin le processus itératif rapide et l’innovation à l’échelle que nous avons pu expérimenter avec le développement de N-Beats.