Command Palette
Search for a command to run...
Chen Tianqi : À l'ère Des Agents, Comment Repenser Les Compilateurs d'IA ?

1er aoûtLe 9e salon technique Meet AI Compiler s'est conclu avec succès à Pékin.Plusieurs experts et chercheurs dans le domaine des compilateurs d'IA se sont réunis à Zhongguancun, à Pékin, pour partager leurs points de vue sur l'innovation technologique et leur expérience pratique, dans le but de présenter un tableau de l'évolution collaborative des compilateurs d'IA à plusieurs niveaux, notamment l'expression du langage, le calcul des opérateurs, l'exécution de l'inférence et les applications de scénarios.
Tianqi Chen, professeur adjoint au département d'apprentissage automatique et au département d'informatique de l'université Carnegie Mellon, ingénieur distingué chez NVIDIA, et développeur principal et fondateur des projets open-source de renommée mondiale XGBoost, Apache TVM et MLC LLM.Il a assisté à l'événement en tant qu'invité spécial. Ce pionnier dans le domaine des compilateurs d'IA a présenté les orientations actuelles du développement de la communauté open source TVM et a dialogué en profondeur avec le public.

HyperAI a compilé et résumé les propos du professeur Chen Tianqi sans en altérer le sens original.
Bonjour à tous, je suis ravi de participer à cet événement et de partager mes réflexions avec vous. Je suis Chen Tianqi. Nous explorons le domaine des compilateurs d'IA depuis de nombreuses années, et cette année a été particulièrement intéressante. Depuis le début de l'année, la vague des agents d'IA a déferlé rapidement, et de nouveaux problèmes ont commencé à émerger dans le secteur :
Première question : les compilateurs d’IA ont-ils encore une utilité ? Si les agents peuvent être programmés directement, avons-nous encore besoin de compilateurs ?
Deuxième question : L’automatisation nous permet d’accomplir davantage. Auparavant, le principal obstacle pour les petites équipes était le manque de ressources d’ingénierie ; grâce aux agents, nous pouvons désormais réaliser plus de choses avec des équipes plus réduites.
Ce que je souhaite partager aujourd'hui, c'est :À l’ère des agents IA, comment repenser les compilateurs d’IA ? Quelle direction devraient prendre les futurs compilateurs d’IA ?
Accélérer l'itération spécifique à l'agent
Une caractéristique essentielle est que les agents nécessitent des itérations relativement rapides et ciblées, car leur contexte est limité. Auparavant, nous avions tendance à privilégier le développement de projets de grande envergure, notamment les grands référentiels monolithiques, mais les itérations dédiées aux agents constituent désormais une voie de développement très importante.
Premièrement, afin d'accélérer les itérations spécifiques à chaque agent, nous avons constaté que la stabilité, la composabilité et la modularité des limites du projet sont très importantes.
Prenons l'exemple de notre projet TVM FFI : l'objectif est de définir clairement un composant essentiel au sein du vaste framework TVM, à savoir la manière dont les fonctions s'appellent entre elles. Cela implique de définir les limites fonctionnelles entre les différents composants, du DSL du framework au backend, comme cuteDSL et FlashInfer. Auparavant, nous nous concentrions davantage sur la création d'une solution de bout en bout, mais nous constatons désormais qu'il est de plus en plus nécessaire de définir une limite plus organique qui nous permette de passer facilement d'un opérateur à l'autre ou d'un module à l'autre. Par conséquent, la définition et la normalisation claires de cette limite deviennent cruciales.
Depuis sa sortie l'année dernière, TVM FFI a été intégré à diverses technologies, notamment cuteDSL, FlashInfer et, plus récemment, TensorRT. Son objectif est de définir les spécifications des limites. Une fois ces limites clairement définies, les modules intermédiaires peuvent être remplacés plus facilement.
Deuxièmement, pour permettre à Agent d'effectuer rapidement des itérations dédiées, vous verrez une prise en charge multilingue accrue à l'avenir.
Si le délai de retour de l'agent est d'une ou deux heures, le temps consacré aux essais et erreurs s'allongera considérablement. Par conséquent, le compilateur doit prendre en charge davantage de langages ; nous allons donc œuvrer pour une prise en charge plus étendue au niveau de l'infrastructure.
Auparavant, les utilisateurs interagissaient généralement avec un programme, qui était lui-même l'objet de leur interaction. Cependant, l'intelligence artificielle étant potentiellement plus performante, il est possible que les utilisateurs n'effectuent plus tous les calculs directement, mais créent des outils. Par exemple, pour effectuer des calculs mathématiques, il n'est plus nécessaire de les faire mentalement ; on peut utiliser des outils.De même, nous pensons que les capacités analytiques internes et l'infrastructure du compilateur deviendront progressivement primordiales. Nous souhaitons modulariser le compilateur, permettant ainsi à l'IA de construire ses propres processus d'analyse et d'itération adaptés aux besoins actuels.
Pour ce faire, nous avons récemment travaillé sur TIRx et publié un tutoriel intitulé « Programmation GPU moderne ». Bien entendu, ce tutoriel ne se limite pas aux GPU ; il vise à introduire des concepts de programmation d'accélérateurs plus généraux. Ces six derniers mois, j'ai confié à Feng Siyuan avoir consacré environ la moitié de mon temps à l'écriture de code. Grâce à l'Agent, nous pouvons en effet revenir en arrière et refactoriser l'intégralité du code du projet. L'année dernière, nous avons rendu le module TVM FFI relativement indépendant et stable, et nous poursuivrons nos efforts pour améliorer l'indépendance et la stabilité de TIRx.
À l'ère des agents, que peuvent faire les compilateurs ?
Nous avons constaté que les compilateurs traditionnels présentent une caractéristique importante : ils placent généralement deux types d’éléments dans la même pile. D’une part, la partie de haut niveau, intelligente, comme la planification automatique ; d’autre part, la partie de bas niveau, moins intelligente, comme les opérations purement basées sur des règles.Nous pensons toutefois que cette tendance évoluera : il sera de plus en plus nécessaire de séparer les composants stables de ceux qui requièrent des itérations rapides. Autrement dit, un module central relativement stable permettra d’ajouter plus facilement de nombreuses fonctionnalités liées aux agents, leur permettant ainsi de créer des compilateurs dédiés et d’optimiser les processus selon leurs besoins.
Pour revenir au sujet principal : à l’ère des agents, que peuvent faire les compilateurs ?
Je pense que d'ici l'année prochaine, voire d'ici la fin de cette année, les compilateurs d'IA dont nous parlerons seront assurément différents de ceux que nous avons abordés jusqu'à présent. C'est une excellente occasion pour nous de repenser ce sujet ensemble.
À l'inverse, les humains équipés d'outils sont assurément plus performants que ceux qui ne possèdent qu'un corps physique. Les compilateurs d'IA sont eux-mêmes une forme d'outil. Par conséquent, tant que nous serons capables de mieux intégrer l'IA dans la conception et le développement des modules liés aux compilateurs, de nombreuses perspectives intéressantes demeureront.
C'est tout ce que je voulais partager, merci à tous.
Séance de questions-réponses

Question 1 : Avec l'émergence de plus en plus de matériel, les futurs compilateurs devraient-ils adopter une adaptation d'architecture à usage général ou une adaptation spécifique au matériel ?
Chen Tianqi :Avec l'avènement des agents, beaucoup de choses vont changer. Traditionnellement, lorsque le code peut être partagé entre différents systèmes backend, chacun privilégie naturellement cette approche. C'est pourquoi, initialement, nous avions tendance à construire de grands systèmes monorepo pour un développement unifié. Cependant, grâce aux agents, le coût de développement du code diminuera, ce qui entraînera inévitablement l'émergence de composants plus spécialisés. Cela est particulièrement vrai lorsque l'abstraction du code partagé est insuffisante pour exploiter pleinement les capacités du matériel ; ce qui arrive fréquemment. Par exemple, même sur les GPU, un compilateur conçu pour Hopper pourrait devenir totalement inutilisable après l'arrivée de Blackwell. Ce cas de figure étant fréquent, la spécialisation sera essentielle à l'avenir.
À l'inverse, la question demeure : qu'est-ce qui peut rester commun ? Nous avons toujours besoin d'une base relativement stable sur laquelle les agents puissent construire des compilateurs spécifiques au matériel. Par exemple, nos travaux récents sur TIRx visent à permettre à différents matériels d'enregistrer leurs propres règles de répartition, puis à laisser l'agent générer des connaissances pertinentes à partir des caractéristiques matérielles.
À l'avenir, nous verrons de plus en plus de compilateurs spécialisés. Ils seront probablement divisés en deux parties : la première, axée sur la stabilité et prenant en compte des exigences élevées en matière d'ABI, de structures de données IR fondamentales et de compatibilité interlangage ; la seconde, spécialisée pour des scénarios spécifiques, sera probablement davantage axée sur les agents. Je pense que cette évolution se généralisera.
Question 2 : Au cours de mon apprentissage, j’ai constaté que de nombreuses frontières abstraites traditionnelles en RI sont en train de s’estomper et de fusionner. Des notions auparavant clairement définies semblent être progressivement intégrées à la RI. De ce point de vue, quelle est selon vous l’orientation future du développement des compilateurs d’IA ?
Chen Tianqi :Je pense que cela se divisera en deux parties. Premièrement, bien que les représentations interactives (RI) puissent paraître différentes actuellement, elles sont en réalité assez similaires à bien des égards et peuvent être classées en plusieurs niveaux : le niveau du noyau, le niveau du graphe et l’interaction entre ces deux niveaux. Après quelques années d’évolution, elles devraient progressivement converger vers quelques niveaux plus stables. Un trop grand nombre de couches n’est pas forcément avantageux, car des informations sont souvent perdues lors du passage d’une couche à l’autre. Ainsi, une fois que nous aurons convergé vers quelques niveaux principaux, la question centrale deviendra : comment encoder les informations nécessaires ?
La seconde partie aborde la question de savoir si de nombreuses tâches nécessitant auparavant un compilateur puissant peuvent être déléguées à du personnel ou à des agents externes pour leur contrôle. Autrement dit, le compilateur peut-il être allégé, ou structuré en couches ? La structuration en couches implique la présence d’une couche relativement stable, pouvant être maintenue en continu, et d’une autre couche capable d’itérer rapidement ; à l’avenir, ces deux couches existeront assurément.
Question 3 : Du point de vue des compilateurs d’IA, verrons-nous à l’avenir des IA écrire des compilateurs d’IA ? À court terme, quels composants de compilateur sont adaptés à une telle écriture par l’IA ? Quels sont les principaux défis à relever ?
Chen Tianqi :Tout d'abord, je crois que de nombreux praticiens ici ont déjà commencé à utiliser l'IA pour écrire des compilateurs, il ne s'agit donc pas d'une question de possibilité future, mais de quelque chose qui se produit maintenant.
La modularisation est cruciale. Il est certes difficile pour l'IA de gérer intégralement un projet de grande envergure ; toutefois, il est tout à fait possible de lui déléguer certains modules pour une itération rapide et une approche par essais et erreurs. L'essentiel est de décomposer le problème en sous-problèmes bien définis. Par conséquent, la définition des limites est primordiale. Notre approche TVM FFI vise précisément à définir ces limites.
De même, une infrastructure IR performante est essentielle. Par exemple, actuellement, il n'existe pas de solution parfaitement viable pour développer un compilateur IR prenant en charge des langages tels que Python, Rust et C++. À l'avenir, la mise en place d'une telle infrastructure améliorera considérablement l'efficacité du développement.
Alors, que pouvons-nous faire au-delà de l'infrastructure ? Je pense que cela dépend de notre capacité à identifier des besoins communs. Par exemple, nous avons déjà évoqué un problème : une part importante du compilateur consiste à réduire les coûts côté hôte. Ce problème est en réalité relativement indépendant de l'accélération GPU et de l'accélération matérielle. Cependant, l'automatisation de l'optimisation côté hôte offre encore un vaste potentiel. Si nous parvenons à identifier ces besoins communs, l'IA jouera un rôle plus important dans le développement des compilateurs à l'avenir.
Question 4 : Quelles positions les différents niveaux de compilateurs, tels que les DSL de bas niveau et les DSL de haut niveau, occuperont-ils à l'avenir dans l'écosystème industriel et de développement ?
Chen Tianqi : Je pense que chaque niveau aura ses propres besoins. De manière générale, il est bon de pouvoir exposer le niveau bas tout en disposant de représentations pour les niveaux bas et haut. Par exemple, TIRx, que nous avons récemment développé, possède ses propres représentations pour les différents niveaux, ainsi que des représentations pour le niveau partenaire natif, permettant des transitions fluides entre les deux. Cependant, un principe demeure : l’agent doit utiliser le moins de jetons possible pour représenter ces éléments, sans pour autant limiter ses capacités.
Question 5 : Par le passé, lors de nos discussions sur les compilateurs, nous nous sommes davantage concentrés sur le niveau du noyau. Or, en réalité, de nombreux éléments peuvent être représentés à l’aide de la représentation intermédiaire (RI). Dès lors, à l’avenir, outre la RI au niveau du noyau, la RI au niveau micro, voire au niveau de l’ordonnancement, deviendra-t-elle une piste de recherche pour les compilateurs d’IA ?
Chen Tianqi :C'est tout à fait normal, car les compilateurs de niveau graphe ont toujours existé. Simplement, par le passé, l'interaction entre le noyau et les compilateurs de niveau graphe était relativement faible. Les compilateurs de niveau graphe résolvent principalement les problèmes liés aux graphes, tandis que les compilateurs de niveau noyau résolvent principalement les problèmes liés au noyau. Cependant, à l'avenir, l'interaction entre les deux sera de plus en plus nécessaire.
L'un des principaux axes de recherche récents concerne MegaKernel, qui nécessite une interaction entre les noyaux. C'est pourquoi nous avons étudié comment encapsuler ces deux types d'informations au sein d'un seul IR (Identifiant de Ressource Intégré). Si cela se concrétise, je pense que cela mènera à des développements intéressants. Par exemple, les travaux antérieurs sur MegaKernel exploitaient essentiellement l'interaction entre le niveau graphe et le niveau noyau pour parvenir à une optimisation.
Question 6 : Le compilateur convivial pour les agents est-il une véritable proposition ?
Chen Tianqi :Dans le futur, il est possible que nous n'ayons plus besoin de compilateur ; l'agent pourrait générer directement le code assembleur. La différence réside dans le fait que l'agent peut effectuer cette tâche directement, ou bien écrire le compilateur lui-même, créant ainsi l'outil. Personnellement, je reste convaincu de l'utilité du compilateur, car il peut améliorer l'efficacité du développement dans de nombreuses situations.
Alors, l'expression « agent-friendly » est-elle un mythe ou une réalité ? Je pense que la clé ne réside pas tant dans la présence initiale de cette caractéristique dans le logiciel, mais plutôt dans le fait de la concevoir comme un objectif. Une fois l'agent intégré, nous observons en continu ses points forts et ses points faibles, puis nous itérons en fonction de ces retours.
Par exemple, les exigences interlangage constituent un problème bien réel. Un agent pourrait initialement développer rapidement une passe de compilation en Python, mais lorsqu'il aura besoin d'accélération, il devra peut-être passer à C++ ou à Rust. Si nous prenons ces problèmes en compte, je pense que ce ne sera pas une mauvaise chose, car une part importante du code est déjà écrite par les agents. À l'avenir, le compilateur deviendra également un outil que les agents pourront utiliser pour la construction et l'optimisation.
Voici un résumé de la présentation éclairante du professeur Chen Tianqi lors du Meet AI Compiler Technical Salon. D'autres interventions passionnantes de cet événement seront également retranscrites ; restez connectés !








