MultiRay est actuellement employé dans plus de 125 cas d’utilisation chez Meta et prend en charge jusqu’à 20 millions de requêtes par seconde, soit 800 milliards par jour. Son premier modèle, TextRay, prend en charge les applications d’analyse de texte permettant notamment de supprimer des contenus mensongers et d’améliorer l’expérience de recherche des utilisateurs sur ses plateformes.
Grâce à cette nouvelle plateforme, les équipes de Meta peuvent ainsi rapidement améliorer les modèles de machine learning et les reproduire à différentes fins, comme par exemple la détection de discours haineux. Ces tâches sont ainsi optimisées et davantage automatisées que si chaque équipe devait développer de A à Z des modèles de grande envergure.
Dans les systèmes d’IA actuels qui traitent du texte, des images et d’autres modalités, les meilleurs résultats découlent d’un modèle de grande envergure entraîné à l’aide d’une immense quantité de données, qui est ensuite spécialisé pour effectuer une tâche bien précise (par exemple, identifier un discours haineux). Il en résulte une solution de qualité, certes, mais particulièrement coûteuse et limitée. Plus il y a de problèmes à résoudre, plus il est nécessaire d’avoir de nombreux modèles qui risquent par ailleurs de se transformer rapidement en de véritables gouffres financiers. Cela signifie qu’en pratique, les modèles de grande envergure les plus récents sont rarement utilisés en production, au profit de modèles plus modestes et plus simples.
Les modèles universels de MultiRay sont entraînés de manière à devenir performants dans divers types de domaines et de tâches. Ce modèle polyvalent génère de meilleures performances que les modèles spécialisés sur une tâche, utilisés précédemment. Grâce à MultiRay, les équipes de Meta peuvent rapidement améliorer les modèles de machine learning et les reproduire à différentes fins, telles que le marquage thématique des publications ou la détection de discours haineux. Ces tâches sont ainsi optimisées et davantage automatisées que si chaque équipe devait développer de A à Z des modèles de bout en bout de grande envergure.
TextRay, le tout premier modèle de MultiRay, est en cours de développement depuis 2020. Il prend en charge les applications d’analyse de texte permettant notamment de supprimer des contenus mensongers et d’améliorer l’expérience de recherche des utilisateurs sur nos plateformes.
Plus de modalités équivaut à plus de problèmes
C’est un bon début, mais le monde réel est bien plus complexe car il intègre de nombreuses modalités. Une publication Facebook, par exemple, peut contenir du texte, des images et de la vidéo. Pour bien comprendre une publication, le système doit analyser chacun de ces éléments à la fois séparément et conjointement. Cette pratique consiste à combiner plusieurs modèles de calcul dans un modèle plus large et plus avancé. L’augmentation de la puissance de calcul et de la consommation d’énergie qui en découle ralentit les efforts que nous fournissons pour déployer les modèles de machine learning les plus avancés dans nos produits et services.
Le deuxième modèle de MultiRay, PostRay, regroupe dans un même modèle l’analyse de texte et d’image. La plupart des publications sur Facebook et Instagram contenant des données de texte et d’image, PostRay réduit le besoin des équipes de disposer de leur propre compréhension des textes et des images. Divers cas d’utilisations sont possibles chez Meta, notamment la classification de contenu, utilisée pour Reels.
Dans la mesure où ils combinent simultanément différentes recherches de pointe dans divers domaines, les modèles PostRay sont plus difficiles à entraîner, à déployer et à maintenir. Avec MultiRay, il vous suffit d’effectuer ces tâches une seule fois pour en faire profiter l’ensemble de l’entreprise. Ce système centralisé et polyvalent nous permet de travailler directement avec des équipes de recherche de premier plan et de mettre en application leurs travaux dès leur publication.
Fonctionnement de MultiRay
Le principal objectif de MultiRay est de faciliter l’accès à des modèles de base de grande envergure chez Meta. Pour ce faire, il centralise l’exécution sur des programmes d’accélération tels que des processeurs graphiques et a recours à un cache afin de faire le plus d’économies possible sur le recalcul. MultiRay est actuellement employé dans plus de 125 cas d’utilisation chez Meta et prend en charge jusqu’à 20 millions de requêtes par seconde, soit 800 milliards par jour.
Que sont les intégrations ?
MultiRay utilise des modèles de base de grande envergure qui renvoient un point dans un espace vectoriel avec un grand nombre de dimensions représentant l’entrée. Ce point, appelé intégration, constitue une version de l’entrée d’origine bien plus adaptée au machine learning. Au lieu de traiter l’entrée brute (telle que le texte ou les images), les modèles axés sur des tâches peuvent réutiliser l’intégration de MultiRay, bien plus facile à manipuler. Les modèles de base déployés dans MultiRay sont conçus pour fonctionner dans différents types de tâches, telles que la similarité et la classification. Cette universalité rend nos intégrations relativement volumineuses (un grand nombre de kilo octets) de sorte qu’elles puissent transmettre davantage d’informations.
Pourquoi centraliser les modèles de grande envergure ?
Amortissement entre plusieurs équipes
Les modèles de grande envergure et les contraintes de latence appellent à une exécution sur des programmes d’accélération tels que des processeurs graphiques. Si ce type de matériel spécialisé enregistre une forte demande au sein de Meta, il n’empêche pourtant pas l’entraînement et l’hébergement de modèles de pointe de consommer énormément d’énergie. Dans la mesure où les mêmes matériels et procédés de traitement peuvent être utilisés à plusieurs reprises, les équipes clientèle de MultiRay se répartissent les coûts de formation et d’hébergement de ces modèles. Les équipes ont ainsi accès à des moyens bien plus importants et de meilleure qualité que ceux auxquels chacune d’entre elles aurait pu individuellement prétendre. Ici, le tout vaut davantage que la somme des éléments qui le constituent.
Simplification du développement et des opérations
Les équipes de Meta sont généralement responsables de leurs propres modèles et de leur gestion, ainsi que de leurs infrastructures. L’envergure croissante des modèles augmente la charge opérationnelle nécessaire à chaque équipe pour les entraîner et les manier. Il est également plus difficile d’appliquer des techniques d’optimisation sophistiquées à des modèles répartis entre plusieurs équipes. MultiRay intervient uniquement dans quelques modèles centralisés de grande envergure, ce qui permet à une seule équipe de gérer la majorité des opérations et de procéder à l’optimisation. Les équipes client détiennent des modèles spécialisés plus restreints et faciles à gérer. Cela permet à de nombreuses équipes qui n’ont pas les capacités nécessaires pour entraîner, déployer et gérer des systèmes d’IA innovants d’utiliser cette technologie.
Accélération de la production
Le service centralisé MultiRay étant utilisé par plus de 125 clients, les améliorations qui y sont apportées profitent à tous. Il est ainsi devenu une “sandbox” permettant à nos spécialistes du machine learning et des systèmes de procéder à des optimisations clé bénéfiques à l’ensemble de l’écosystème des programmes d’accélération et à PyTorch. Il s’agit par exemple du premier cas d’utilisation à grande échelle pour le déploiement en production de la solution BetterTransformer de PyTorch chez Meta. À la clé ? D’importantes économies sans répercussions sur la qualité.
Efficacité renforcée sur les programmes d’accélération : traitement par lots de demandes croisées
Le matériel des programmes d’accélération est plus efficace lorsqu’il traite plusieurs demandes en parallèle, c’est-à-dire sous forme de lots. Un traitement par lots idéal permet d’optimiser le service sans occasionner de retard. Cette méthode peut être source de difficultés supplémentaires pour nos utilisateurs internes, notamment lorsque le lot parfait est amené à changer avec l’apparition de nouveaux matériels ou modèles.
Afin de leur faciliter la tâche, l’API externe de MultiRay est conçue pour recevoir à une seule requête à la fois. Ensuite, MultiRay utilise en interne une logique de traitement par lots afin de regrouper les demandes simultanées des utilisateurs dans un même lot. Il nous suffit alors de rédiger la logique une seule fois, puis de l’ajuster afin de créer des lots de modèles et de matériels de taille adéquate. Les clients à l’origine des requêtes n’ont pas connaissance de ce traitement par lots, même lorsque nous apportons d’importantes modifications en matière de performance, par exemple en augmentant la taille de lot utilisée pour la migration vers un matériel de programme d’accélération de processeur graphique nouvelle génération.
Cache : trouver le juste équilibre entre puissance de calcul et optimisation du stockage
MultiRay se sert d’un cache pour faire le plus d’économies possible en matière de recalcul. Ce cache à plusieurs niveaux lui permet de réduire les coûts et la latence, chaque niveau générant davantage de résultats plus lentement, et donc à moindre coût. Ces niveaux vont du cache local par hôte rapide, mais restreint, dans la RAM de chaque serveur MultiRay, au cache plus lent, mais distribué à plus grande échelle, dans la mémoire flash
Les modèles MultiRay sont de grande envergure et génèrent des intégrations proportionnelles (un grand nombre de kilo-octets) afin d’en préserver l’universalité. Pour l’analyse de texte, ces intégrations sont bien plus importantes que les entrées en tant que telles. Même s’il faut moins d’énergie pour traiter une intégration issue du cache que pour la recalculer, il en faut tout de même. Dans la mesure où la mémoire cache disponible est limitée, les résultats ne peuvent pas y être stockés à long terme.
MultiRay mesure les schémas de demande des différents clients afin de déterminer les meilleurs paramètres de cache (taille, durée de vie, stratégies de mise à jour) et réduire le coût total du service. Nous utilisons par exemple ces données mesurées afin de simuler l’énergie requise pour différents paramètres de durée de vie du cache. C’est ainsi que nous parvenons à trouver le juste équilibre entre le recalcul d’une demande sur les programmes d’accélération et son extraction du cache. Cette boucle de rétroaction nous a permis d’améliorer l’efficacité de MultiRay malgré l’évolution constante des comportements des utilisateurs.
Le revers de la médaille : les défis d’un service centralisé
Tout service centralisé utilisé par Meta comporte son lot de défis. Certains d’entre eux, tels que la gestion des clients, les quotas ou l’affectation des coûts, considérés comme résolus pour les systèmes à grande échelle tels que les bases de données, ont dû être adaptés au secteur de l’IA. La taille des requêtes et le taux de réussite du cache ont tous deux une incidence sur l’énergie nécessaire au traitement des requêtes. Les quotas sont donc plus complexes. Par ailleurs, le partage des dépenses liées aux modèles MultiRay, de meilleure qualité mais également plus onéreux, ne fonctionne que si nos modèles sont utilisés à grande échelle. Pour ce faire, ils se doivent d’être extrêmement performants dans de nombreux cas d’utilisation. Cet objectif mouvant nous a amenés à beaucoup investir dans l’actualisation de nos modèles (gestion des versions, mise à jour vers de nouvelles versions, arrêt de la prise en charge de versions obsolètes) ainsi que dans l’élaboration d’architectures et de flux de formation innovants afin d’accélérer la production et de continuer à proposer une technologie de pointe aux utilisateurs de MultiRay.
En savoir plus sur MultiRay
Si vous souhaitez en apprendre davantage sur MultiRay, nous vous invitons à découvrir les recherches effectuées par l’équipe Foundational AI Research (FAIR) de Meta qui l’ont inspiré :
- Unsupervised cross-lingual representation learning at scale (Apprentissage découlant de représentations interlinguales sans supervision à grande échelle), où les chercheurs ont démontré pour la première fois que la modélisation multilingue était possible sans nuire aux performances de chaque langue.
- General purpose text embeddings from pre-trained language models for scalable inference (Intégrations de textes à usage général à partir de modèles linguistiques préformés pour une inférence évolutive), où les chercheurs ont étudié une solution TALN dans laquelle plusieurs tâches sont effectuées sur le même texte à l’aide de modèles préformés à grande échelle pour un coût nettement inférieur à celui du calcul.
- Multiscale vision transformers (Transformateurs de vision à multi-échelle) et Masked autoencoders as spatiotemporal learners (Auto-encodeurs masqués comme sources d’apprentissage spatio-temporel) : recherches préalables permettant de déduire comment MultiRay pourrait être appliqué à des tâches en lien avec la vidéo à l’avenir.
Remerciements
Nous tenons également à remercier Akram Baharlouei, Charles Bai, Chenyang Yu, Jeff
Wang, Manisha Jain, Maxim Grechkin, Michael Wu, Rao Bayyana et Ves Stoyanov pour
leur contribution.
Source : communiqué de presse Meta