Recherche et science

SySTeC, le compilateur du MIT qui accélère les modèles d’IA grâce aux redondances

Les chercheurs du MIT présentent SySTeC, un compilateur conçu pour alléger les calculs des simulations et modèles d’apprentissage profond. En exploitant automatiquement la sparsité et la symétrie des données, l’outil peut accélérer fortement certains programmes sans imposer aux scientifiques de réécrire eux-mêmes les optimisations les plus complexes.

Chercheuse devant des visualisations de tenseurs symétriques et de données creuses optimisées par un compilateur.
Illustration : Actu.ai

Les modèles d’intelligence artificielle ne sont pas seulement définis par leurs données et leurs algorithmes. Leur efficacité dépend aussi de la façon très concrète dont les calculs sont traduits en instructions exécutables par les machines. Cette étape, largement invisible pour l’utilisateur final, devient décisive lorsque les programmes manipulent d’immenses tableaux de nombres et multiplient les opérations. Des chercheurs du MIT proposent avec SySTeC un moyen d’automatiser une partie de cette optimisation, afin de rendre les simulations et les modèles d’apprentissage profond plus rapides et moins gourmands en ressources.

L’idée est simple à énoncer, mais difficile à mettre en œuvre à la main : ne pas calculer ce qui est inutile. SySTeC repère deux formes de redondance dans les données, la sparsité et la symétrie, puis les exploite de manière combinée. Selon les résultats expérimentaux rapportés par l’équipe, cette approche a permis, dans certains cas, d’obtenir des gains de vitesse allant jusqu’à près de 30 fois.

Pourquoi les calculs d’IA coûtent-ils autant de ressources ?

De nombreux programmes d’IA et de calcul scientifique manipulent des tenseurs. Ce terme désigne, dans ce contexte, des tableaux de nombres à plusieurs dimensions. Un vecteur peut être vu comme une ligne de valeurs, une matrice comme un tableau à deux dimensions, et un tenseur comme leur généralisation à trois dimensions ou davantage.

Ces structures sont omniprésentes. Elles peuvent représenter une image, une série de mesures physiques, une séquence sonore, des informations textuelles ou les paramètres d’un réseau de neurones. Lorsqu’un modèle d’apprentissage profond traite ces données, il enchaîne fréquemment des opérations proches de multiplications matricielles. Répétées à grande échelle, elles requièrent beaucoup de calcul, de mémoire et de transferts de données.

Cette charge a plusieurs conséquences :

  • elle rallonge le temps nécessaire à l’exécution d’une simulation ou d’un modèle ;
  • elle sollicite davantage les processeurs et accélérateurs de calcul ;
  • elle augmente les besoins en bande passante entre la mémoire et les unités de calcul ;
  • elle contribue à la consommation énergétique des infrastructures informatiques.

Les applications évoquées par les chercheurs comprennent notamment le traitement d’images médicales et la reconnaissance vocale, deux domaines où les volumes de données et la complexité des modèles peuvent être élevés. Pour les développeurs comme pour les scientifiques, réduire les calculs superflus peut donc avoir une incidence directe sur la rapidité des travaux.

Sparsité et symétrie : deux raccourcis mathématiques

La première redondance exploitée par SySTeC est la sparsité. Un tenseur est dit creux lorsqu’une grande part de ses valeurs est nulle. Dans un tableau représentant, par exemple, des avis clients sous forme numérique, beaucoup de positions peuvent ne contenir aucune information et donc être égales à zéro. Les traiter comme si elles étaient significatives revient à consacrer du temps de calcul et de la mémoire à des données qui n’apportent rien au résultat.

Une optimisation adaptée consiste à stocker, lire et calculer seulement les valeurs non nulles, ainsi que leur position. Cette idée paraît intuitive, mais elle devient complexe quand les calculs s’enchaînent et que les résultats intermédiaires peuvent eux aussi être creux. Les méthodes classiques peuvent exploiter la sparsité, mais demandent souvent aux programmeurs de structurer spécialement leur algorithme.

La seconde redondance est la symétrie. Dans certaines structures de données, une moitié du tenseur contient la même information que l’autre, selon une règle précise. Pour une matrice symétrique, par exemple, les valeurs situées de part et d’autre de la diagonale se correspondent. Il n’est alors pas nécessaire de refaire deux fois les mêmes calculs : travailler sur une seule moitié peut suffire, à condition de reconstruire correctement le résultat attendu.

Ces propriétés ne sont évidemment pas présentes dans toutes les données. Elles dépendent de la nature du problème traité et de la façon dont l’algorithme est formulé. Lorsqu’elles existent, elles permettent toutefois de réduire le volume de travail sans perdre l’information utile.

Redondance exploitéeCe qu’elle signifieCalcul évité par l’optimisation
SparsitéUne grande partie des valeurs est nulleLire, stocker et traiter des valeurs qui n’influencent pas le résultat
SymétrieUne partie des données reproduit l’information d’une autre partieEffectuer deux fois des opérations équivalentes sur les deux moitiés d’un tenseur

Ce que fait SySTeC dans le programme du développeur

Les chercheurs du MIT ont conçu SySTeC pour réunir ces deux optimisations dans un même processus de compilation. L’objectif est de libérer les personnes qui écrivent les algorithmes d’une partie du travail de bas niveau habituellement nécessaire pour tirer parti des propriétés mathématiques des données.

Le fonctionnement présenté se déroule en deux grandes étapes. Le développeur commence par soumettre son programme, en décrivant le calcul à réaliser à un niveau abstrait. SySTeC applique alors une première série de transformations pour exploiter la symétrie : si les tenseurs d’entrée sont symétriques, le compilateur peut limiter le traitement à la moitié pertinente de ces données.

Dans un second temps, il transforme le programme de manière à ne conserver que les opérations sur les valeurs non nulles. Autrement dit, le système s’intéresse aussi aux résultats intermédiaires et évite de les lire ou de les calculer lorsqu’ils sont nuls. Cette succession est importante : SySTeC ne se contente pas de choisir l’une des deux optimisations, il cherche à les combiner dans le même code.

ÉtapeAction de SySTeCObjectif
1Analyse du programme fourni par le développeurIdentifier le calcul et les structures de données concernées
2Transformation pour la symétrieNe traiter qu’une moitié des données lorsqu’elle suffit
3Transformation pour la sparsitéÉviter les lectures et calculs portant sur des valeurs nulles
4Génération d’un programme optimiséRéduire les calculs, les besoins en mémoire et la bande passante

L’intérêt de cette automatisation est de faire porter au compilateur une complexité qui incombait auparavant à l’humain. Concevoir à la main un programme efficace pour des données à la fois symétriques et creuses peut être fastidieux. Il faut non seulement maîtriser les détails des opérations sur les tenseurs, mais aussi préserver l’exactitude mathématique du résultat à chaque transformation.

Optimiser les redondances : méthode classique ou SySTeC

Optimisation traditionnelle

  • Les développeurs exploitent souvent la sparsité ou la symétrie séparément.
  • La combinaison des deux propriétés peut demander des transformations manuelles complexes.
  • Une expertise en algorithmes, tenseurs et compilation est souvent nécessaire.
  • Le travail de bas niveau peut ralentir les scientifiques qui conçoivent les simulations.

Approche SySTeC

  • Le compilateur vise à exploiter simultanément la sparsité et la symétrie.
  • Il transforme automatiquement le programme fourni par le développeur.
  • Il traite la moitié pertinente des entrées symétriques lorsque cela est possible.
  • Il limite ensuite les calculs et lectures aux valeurs non nulles.
  • Les expérimentations rapportent des accélérations pouvant atteindre près de 30 fois.

Pourquoi l’outil peut rendre l’optimisation plus accessible

Les techniques d’optimisation de calcul ne sont pas nouvelles, mais leur adoption reste souvent limitée par leur difficulté. Les outils existants permettent fréquemment de tirer parti d’un seul type de redondance à la fois. Les combiner demande une expertise spécifique, en programmation comme en calcul scientifique.

SySTeC s’appuie au contraire sur un langage de programmation présenté comme convivial. Selon Willow Ahrens, postdoctorante au MIT et co-autrice de l’article scientifique associé, un scientifique peut exprimer ses besoins de façon abstraite, sans devoir décrire chaque détail des calculs nécessaires pour exploiter la structure interne des tenseurs.

Cette distinction est essentielle. Dans un laboratoire, la personne qui comprend le mieux le phénomène étudié n’est pas forcément spécialiste de compilation ou d’architecture informatique. Si elle doit réécrire un algorithme pour chaque matériel et pour chaque propriété de données, le coût en temps peut annuler une partie du bénéfice attendu. En automatisant les transformations, SySTeC vise à rapprocher l’optimisation des utilisateurs qui conçoivent les simulations elles-mêmes.

Des gains annoncés, mais dépendants des programmes

Les démonstrations menées avec SySTeC ont enregistré des améliorations notables, avec des accélérations de calcul pouvant atteindre près de 30 fois. Ce chiffre constitue un résultat expérimental et ne doit pas être interprété comme une promesse identique pour tous les modèles d’IA.

Le gain possible dépend d’abord de la présence réelle de sparsité et de symétrie. Un programme dont les données sont majoritairement denses, c’est-à-dire composées de valeurs non nulles, offrira moins de possibilités de supprimer des opérations. De même, si les tenseurs ne respectent pas une structure symétrique exploitable, l’optimisation associée ne s’applique pas.

La nature des opérations compte également. Le rôle du compilateur est de transformer un programme de façon cohérente avec les propriétés reconnues dans ses données. Plus l’algorithme est élaboré, plus cette tâche peut devenir délicate. C’est précisément l’un des axes de travail envisagés par les chercheurs : adapter SySTeC à des programmes plus complexes.

Pour autant, l’enjeu dépasse la seule vitesse d’exécution. Réduire les données déplacées et les opérations réalisées peut aussi diminuer la pression exercée sur la mémoire et la bande passante. Dans les applications où les calculs sont répétés sur de grands ensembles de données, ces économies peuvent faciliter l’itération, raccourcir certains cycles de recherche et limiter les ressources nécessaires.

Une présentation attendue à CGO 2025

Les travaux consacrés à SySTeC doivent être présentés au International Symposium on Code Generation and Optimization, ou CGO 2025, organisé à Las Vegas du 1er au 5 mars 2025. Cette conférence est consacrée aux méthodes qui améliorent la manière dont les programmes sont générés et optimisés pour l’exécution.

Le choix de ce rendez-vous est cohérent avec la nature de SySTeC. Le système se situe à la rencontre de plusieurs domaines : apprentissage automatique, calcul scientifique, algèbre sur les tenseurs et technologies de compilation. Cette position explique son intérêt potentiel pour des équipes diverses, dès lors qu’elles manipulent des programmes où la sparsité et la symétrie sont présentes.

À la date du 4 février 2025, les chercheurs décrivent SySTeC comme un système automatisé destiné à aider les développeurs à exploiter simultanément ces deux formes de redondance. Il ne remplace pas la réflexion sur la conception d’un modèle ou sur la qualité des données. Il intervient à une étape différente, celle de la traduction efficace du calcul imaginé par les scientifiques et ingénieurs.

Ce qu’il faut surveiller pour SySTeC

La suite du projet dépendra notamment de sa capacité à s’intégrer aux systèmes de compilation de tenseurs déjà utilisés dans la recherche et l’industrie. Les chercheurs envisagent une interface unifiée qui faciliterait l’usage de SySTeC au sein d’outils existants.

L’autre enjeu concerne l’extension à des programmes plus complexes. Les modèles d’apprentissage profond et les simulations scientifiques réelles combinent souvent de nombreuses opérations et des structures de données variées. La promesse de SySTeC sera d’autant plus forte s’il parvient à conserver une interface accessible tout en appliquant ses optimisations à ces cas plus riches.

Enfin, l’approche rappelle un principe appelé à prendre de l’importance à mesure que les besoins de calcul progressent : améliorer l’IA ne consiste pas uniquement à entraîner des modèles plus vastes. Il s’agit aussi de mieux employer les ressources déjà disponibles, en repérant les calculs qui n’ont pas besoin d’être effectués.

Questions fréquentes

Qu’est-ce que SySTeC, le système développé au MIT ?

SySTeC est un compilateur destiné aux programmes d’apprentissage profond et de calcul scientifique. Il transforme automatiquement un programme pour exploiter deux caractéristiques de certaines données, la symétrie et la sparsité. Son objectif est de réduire les calculs, les transferts de données et les besoins en mémoire, sans demander au développeur de réaliser lui-même toutes les optimisations techniques.

Que signifient sparsité et symétrie dans un modèle d’IA ?

La sparsité désigne le fait qu’un tableau de données contient beaucoup de valeurs nulles. La symétrie décrit une structure où une partie des données répète l’information présente dans une autre partie. Quand ces propriétés sont présentes, il est possible d’éviter des calculs inutiles : ignorer les zéros et ne traiter qu’une moitié d’une structure symétrique.

SySTeC rend-il tous les modèles d’IA 30 fois plus rapides ?

Non. Les chercheurs rapportent des gains atteignant près de 30 fois dans leurs expérimentations, mais ce résultat dépend du programme étudié. L’accélération est liée à la quantité de valeurs nulles et à l’existence d’une symétrie réellement exploitable. Un modèle dont les données sont denses ou non symétriques ne bénéficiera pas nécessairement des mêmes améliorations.

À qui s’adresse le compilateur SySTeC ?

SySTeC s’adresse en priorité aux développeurs, chercheurs et scientifiques qui créent des simulations ou des algorithmes manipulant des tenseurs. L’outil cherche aussi à aider les utilisateurs qui ne sont pas spécialistes de l’optimisation de code : ils peuvent exprimer leur calcul de manière abstraite, tandis que le compilateur prend en charge les transformations liées aux redondances.

Quand les travaux sur SySTeC seront-ils présentés ?

L’article scientifique consacré à SySTeC doit être présenté lors de CGO 2025, le International Symposium on Code Generation and Optimization. La conférence est prévue du 1er au 5 mars 2025 à Las Vegas. Les chercheurs envisagent ensuite d’intégrer le système à des outils de compilation de tenseurs existants et de l’adapter à des programmes plus complexes.

Sources

Références consultées pour la rédaction de cet article. Les adresses sont indiquées à titre informatif et ne sont pas des liens.

  1. CGO 2025, International Symposium on Code Generation and Optimization2025.cgo.org
  2. MIT News, actualités de l’Institut de technologie du Massachusettsnews.mit.edu