Modèles et plateformes d’IA

Tim Davis, Co-Fondateur et Président de Modular – Série d’entretiens

mm

Tim Davis est le Co-Fondateur et Président de Modular, une suite intégrée et composable d’outils qui simplifie votre infrastructure d’IA afin que votre équipe puisse développer, déployer et innover plus rapidement. Modular est surtout connu pour avoir développé Mojo, un nouveau langage de programmation qui combine le meilleur de Python avec les systèmes et la métaprogrammation pour combler le fossé entre la recherche et la production.

Entrepreneur répété et leader de produit. Tim a aidé à construire, à trouver et à mettre à l’échelle de grandes parties de l’infrastructure d’IA de Google au sein de Google Brain et des systèmes principaux, des API (TensorFlow), des compilateurs (XLA & MLIR) et des runtime pour serveur (CPU/GPU/TPU) et TF Lite (Mobile/Micro/Web), Android ML & NNAPI, infrastructure de modèle de grande échelle & OSS pour des milliards d’utilisateurs et d’appareils. Il aime courir, construire et mettre à l’échelle des produits pour aider les gens, et le monde.

Quand avez-vous découvert la programmation pour la première fois, et qu’est-ce qui vous a attiré vers elle ?

En tant qu’enfant grandissant en Australie, mon père m’a ramené un Commodore 64C et les jeux vidéo m’ont accroché – Boulder Dash, Maniac Mansion, Double Dragon – quel moment incroyable pour être en vie. Cet ordinateur m’a introduit au BASIC et jouer avec cela a été ma première véritable introduction à la programmation. Les choses sont devenues plus intenses à travers le lycée et l’université où j’ai utilisé des langages statiques traditionnels pour les cours d’ingénierie, et au fil du temps, j’ai même fait des incursions jusqu’au Javascript et VBA, avant de me stabiliser sur Python pour la grande majorité de la programmation en tant que langage de la science des données et de l’IA. J’ai écrit beaucoup de code dans mes premières startups, mais ces jours-ci, bien sûr, j’utilise Mojo et la chaîne d’outils que nous avons créée autour de celle-ci.

Pendant plus de 5 ans, vous avez travaillé chez Google en tant que responsable de produit senior et leader de produit, où vous avez aidé à mettre à l’échelle de grandes parties de l’infrastructure d’IA de Google au sein de Google Brain. Qu’avez-vous appris de cette expérience ?

Les gens sont ceux qui construisent des technologies et des produits qui changent le monde, et c’est un groupe dévoué de personnes liées par une vision plus large qui les amène au monde. Google est une entreprise incroyable, avec des personnes incroyables, et j’ai eu la chance de rencontrer et de travailler avec beaucoup des esprits les plus brillants en IA il y a des années lorsque j’ai rejoint l’équipe Brain. Les plus grandes leçons que j’ai apprises étaient de toujours se concentrer sur l’utilisateur et de progressivement dévoiler la complexité, de permettre aux utilisateurs de raconter leurs histoires uniques au monde, comme réparer la Grande Barrière de Corail ou aider des gens comme Jason le batteur, et d’attirer et d’assembler un mélange diversifié de personnes pour atteindre un objectif commun. Dans une entreprise massive de personnes très intelligentes et talentueuses, cela est beaucoup plus difficile que vous pouvez l’imaginer. En réfléchissant à mon temps là-bas, ce sont toujours les gens avec qui j’ai travaillé qui sont vraiment mémorables. Je regarderai toujours avec nostalgie et apprécierai que beaucoup de personnes aient pris des risques sur moi, et je suis énormément reconnaissant qu’ils l’aient fait, car beaucoup de ces risques m’ont encouragé à être un meilleur leader et une meilleure personne, à plonger profondément et à vraiment comprendre les systèmes d’IA. Cela m’a vraiment fait réaliser le pouvoir profond que l’IA a pour avoir un impact sur le monde, et c’était la raison pour laquelle j’ai eu l’inspiration et le courage de quitter et de co-fonder Modular.

Pouvez-vous partager l’histoire de la genèse derrière Modular ?

Chris et moi nous sommes rencontrés chez Google et avons expédié de nombreuses technologies influentes qui ont eu un impact significatif sur le monde de l’IA aujourd’hui. Cependant, nous avons senti que l’IA était freinée par une infrastructure trop complexe et fragmentée que nous avons constatée de première main en déployant de grandes charges de travail pour des milliards d’utilisateurs. Nous étions motivés par le désir d’accélérer l’impact de l’IA sur le monde en levant l’industrie vers un logiciel d’IA de qualité de production, afin que nous, en tant que société mondiale, puissions avoir un impact plus grand sur la façon dont nous vivons. On ne peut pas s’empêcher de se demander combien de problèmes l’IA peut aider à résoudre, combien de maladies peuvent être guéries, combien nous pouvons devenir plus productifs en tant qu’espèce, pour améliorer notre existence pour les générations futures, en augmentant la pénétration de cette technologie incroyable.

Ayant travaillé ensemble pendant des années sur une infrastructure d’IA à grande échelle – nous avons vu la douleur énorme des développeurs en premier lieu – « Pourquoi les choses ne fonctionnent-elles pas simplement ? » Pour que le monde adopte et découvre la nature transformante incroyable de l’IA, nous avons besoin d’un logiciel et d’une infrastructure de développement qui passe de la recherche à la production, et qui est très accessible. Cela nous permettra de débloquer la prochaine voie de découvertes scientifiques – dont l’IA sera critique – et c’est un grand défi d’ingénierie. Avec cette motivation, nous avons développé une croyance intrinsèque que nous pouvions nous lancer pour construire une nouvelle approche d’infrastructure d’IA, et permettre aux développeurs partout d’utiliser l’IA pour aider à rendre le monde un meilleur endroit. Nous sommes également très chanceux d’avoir de nombreuses personnes qui nous rejoignent dans ce voyage, et nous avons l’équipe d’infrastructure d’IA la plus performante du monde.

Pouvez-vous discuter de la façon dont le langage de programmation Mojo a été initialement construit pour votre propre équipe ?

La vision de Modular est de permettre à l’IA d’être utilisée par tous, partout. Tout ce que nous faisons chez Modular est axé sur cet objectif, et nous travaillons à rebours à partir de celui-ci dans la façon dont nous développons nos produits et notre technologie. Dans cette optique, notre propre vélocité de développeur est ce qui nous importe en premier lieu, et ayant construit une grande partie de l’infrastructure d’IA existante pour le monde – nous devions soigneusement considérer ce qui permettrait à notre équipe de bouger plus vite. Nous avons vécu le problème de langage à deux mondes en IA – où les chercheurs vivent en Python, et la production et les ingénieurs de matériel vivent en C++ – et nous n’avions pas d’autre choix que de soit barreler le long de cette route, ou de repenser complètement l’approche. Nous avons choisi le dernier. Il y avait un besoin clair de résoudre ce problème, mais de nombreuses façons de le résoudre – nous l’avons abordé avec notre forte croyance de rencontrer l’écosystème où il est aujourd’hui, et de permettre un levier plus simple vers le futur. Notre équipe porte les cicatrices de la migration de logiciels à grande échelle, et nous n’avons pas voulu une répétition de cela. Nous avons également réalisé qu’il n’y a pas de langage aujourd’hui, à notre avis, qui puisse résoudre tous les défis que nous essayons de résoudre pour l’IA, et nous avons donc entrepris une approche de première principale, et Mojo est né.

Comment Mojo permet-il une mise à l’échelle et une portabilité sans faille sur de nombreux types de matériel ?

Chris, moi-même et notre équipe chez Google (beaucoup chez Modular) ont aidé à apporter MLIR dans le monde il y a des années – avec l’objectif d’aider la communauté mondiale à résoudre des défis réels en permettant aux modèles d’IA d’être représentés et exécutés de manière cohérente sur n’importe quel type de matériel. MLIR est une nouvelle infrastructure de compilateur open source qui a été adoptée à grande échelle, et devient rapidement la nouvelle norme pour la construction de compilateurs via LLVM. Étant donné l’histoire de notre équipe dans la création de cette infrastructure, il est naturel que nous l’utilisions fortement chez Modular et que cela sous-tende notre approche d’état de l’art dans le développement de nouvelle infrastructure d’IA pour le monde. De manière critique, alors que MLIR est maintenant adopté rapidement, Mojo est le premier langage qui prend vraiment le pouvoir de MLIR et le expose aux développeurs d’une manière unique et accessible. Cela signifie qu’il passe de la mise à l’échelle des développeurs Python qui écrivent des applications, aux ingénieurs de performance qui déployeront du code haute performance, aux ingénieurs de matériel qui écrivent du code système de bas niveau pour leur matériel unique.

Les références à Mojo affirment qu’il s’agit essentiellement de Python++, avec l’accessibilité de Python et les hautes performances de C. Est-ce une simplification grossière ? Comment le décririez-vous ?

Mojo devrait vous sembler très familier à tout programmeur Python, car il partage la syntaxe de Python. Mais il y a quelques différences importantes que vous verrez lorsqu’on porte un simple programme Python à Mojo, notamment qu’il fonctionnera directement. L’un de nos objectifs clés pour Mojo est de fournir un sur-ensemble de Python – c’est-à-dire de rendre Mojo compatible avec les programmes Python existants – et d’embrasser la mise en œuvre de CPython pour le support de l’écosystème à longue traîne. Ensuite, nous vous permettons de remplacer lentement votre code et de remplacer les parties non performantes par les fonctionnalités de bas niveau de Mojo pour gérer explicitement la mémoire, ajouter des types, utiliser l’autotuning et de nombreux autres aspects pour obtenir les performances de C ou meilleures ! Nous pensons que Mojo vous donne le meilleur des deux mondes et que vous n’avez pas à écrire et réécrire vos algorithmes dans plusieurs langages. Nous apprécions que Python++ soit un objectif énorme, et qu’il s’agira d’une entreprise de plusieurs années, mais nous sommes déterminés à le rendre réalité et à permettre à notre communauté légendaire de plus de 140 000 développeurs de nous aider à construire l’avenir ensemble.

Lors d’une conférence récente, il a été présenté que Mojo est 35 000 fois plus rapide que Python, comment cette vitesse a-t-elle été calculée ?

C’est en fait 68 000 fois maintenant ! Mais reconnaissons que c’est juste un seul programme dans Mandelbrot – vous pouvez aller lire une série de trois billets de blog sur la façon dont nous avons réalisé cela – ici, ici et ici. Bien sûr, nous faisons cela depuis longtemps et nous savons que les jeux de performance ne sont pas ce qui conduit à l’adoption de langage (malgré le fait qu’ils soient amusants !) – c’est la vélocité du développeur, l’utilisabilité du langage, les outils de haute qualité et la documentation, et une communauté qui utilise l’infrastructure pour inventer et construire de manière que nous ne pouvons même pas imaginer. Nous sommes des constructeurs d’outils, et notre objectif est de permettre au monde d’utiliser nos outils, de créer des produits incroyables et de résoudre des problèmes importants. Si nous nous concentrons sur notre objectif plus large, c’est en fait de créer un langage qui vous rencontre où vous êtes aujourd’hui et qui vous élève ensuite à un monde meilleur. Mojo vous permet d’avoir un langage hautement performant, utilisable, statiquement typé et portable qui s’intègre sans effort à votre code Python existant – vous donnant le meilleur des deux mondes. Cela vous permet de réaliser le véritable pouvoir du matériel avec un multithreading et une parallelisation de manière que le Python brut ne peut pas – débloquant la communauté mondiale des développeurs pour avoir un langage unique qui passe de haut en bas.

Le « magic » de Mojo est sa capacité à unifier les langages de programmation avec un ensemble d’outils, pourquoi est-ce si important ?

Les langages réussissent toujours grâce au pouvoir de leurs écosystèmes et des communautés qui se forment autour d’eux. Nous travaillons avec des communautés open source depuis longtemps, et nous sommes incroyablement attentifs à nous engager de la bonne manière et à faire ce qui est juste pour la communauté. Nous travaillons incroyablement dur pour expédier notre infrastructure, mais nous avons besoin de temps pour mettre à l’échelle notre équipe – nous n’aurons donc pas toutes les réponses immédiatement, mais nous y arriverons. En faisant un pas en arrière, notre objectif est de lever l’écosystème Python en embrassant l’ ensemble de l’écosystème existant, et nous ne cherchons pas à le fracturer comme de nombreux autres projets. L’interopérabilité rend simplement plus facile pour la communauté d’essayer notre infrastructure, sans avoir à réécrire tout leur code, et cela compte beaucoup pour l’IA.

De plus, nous avons appris tellement de choses du développement d’infrastructure et d’outils d’IA au cours des dix dernières années. Les systèmes monolithiques existants ne sont pas facilement extensibles ou généralisables en dehors de leur cible de domaine initial, et la conséquence est une industrie de déploiement d’IA hautement fragmentée avec des dizaines de chaînes d’outils qui présentent différents compromis et limitations. Ces modèles de conception ont ralenti le rythme de l’innovation en étant moins utilisables, moins portables et plus difficiles à mettre à l’échelle.

Le système d’IA de la prochaine génération doit être de qualité de production et rencontrer les développeurs où ils sont. Il ne doit pas nécessiter une réécriture coûteuse, une réarchitecture ou une réimplémentation du code utilisateur. Il doit être nativement multi-cadre, multi-nuage et multi-matériel. Il doit combiner les meilleures performances et l’efficacité avec les meilleures utilisabilités. C’est la seule façon de réduire la fragmentation et de débloquer la prochaine génération d’innovations matérielles, de données et algorithmiques.

Modular a récemment annoncé avoir levé 100 millions de dollars en nouveaux financements, mené par General Catalyst et rempli par des investisseurs existants GV (Google Ventures), SV Angel, Greylock et Factory. Qu’est-ce que nous devrions attendre ensuite ?

Ce nouveau capital sera principalement utilisé pour faire grandir notre équipe, en embauchant les meilleures personnes dans l’infrastructure d’IA, et en continuant à répondre à la demande commerciale énorme que nous voyons pour notre plate-forme. Modverse, notre communauté de plus de 130 000 développeurs et de 10 000 entreprises, recherchent tous notre infrastructure – nous voulons donc nous assurer que nous continuons à mettre à l’échelle et à travailler dur pour la développer pour eux, et la leur livrer. Nous nous tenons à un standard incroyablement élevé, et les produits que nous expédions sont un reflet de qui nous sommes en tant qu’équipe, et de qui nous devenons en tant qu’entreprise. Si vous connaissez quelqu’un qui est motivé, qui aime la frontière entre le logiciel et le matériel, et qui veut aider à voir l’IA pénétrer le monde d’une manière significative et positive – envoyez-les nous.

Quelle est votre vision pour l’avenir de la programmation ?

La programmation devrait être une compétence que tout le monde dans la société peut développer et utiliser. Pour beaucoup, l’ « idée » de programmation évoque immédiatement une image d’un développeur écrivant du code de bas niveau complexe qui nécessite une grande mathématique et une logique – mais cela n’a pas à être perçu de cette façon. La technologie a toujours été un excellent moteur de productivité pour la société, et en rendant la programmation plus accessible et plus utilisable, nous pouvons permettre à plus de gens de l’adopter. Permettre aux gens d’automatiser des processus répétitifs et de rendre leur vie plus simple est une façon puissante de donner aux gens plus de temps.

Et en Python, nous avons déjà un langage merveilleux qui a résisté à l’épreuve du temps – c’est le langage le plus populaire du monde, avec une communauté incroyable – mais il a également des limites. Je pense que nous avons une énorme opportunité de le rendre encore plus puissant, et d’encourager plus de monde à adopter sa beauté et sa simplicité. Comme je l’ai dit plus tôt, il s’agit de construire des produits qui ont une divulgation progressive de la complexité – permettant des abstractions de haut niveau, mais passant à des abstractions de bas niveau incroyablement – nous sommes déjà témoins d’un bond important avec les modèles d’IA permettant des traductions de texte à code progressives – et ceux-ci ne feront que devenir plus personnalisés avec le temps – mais derrière cette innovation magique, il y a toujours un développeur qui écrit et déploie du code pour la faire fonctionner. Nous en avons parlé dans le passé – l’IA continuera à débloquer la créativité et la productivité à travers de nombreux langages de programmation, mais je pense également que Mojo ouvrira l’aperture de l’écosystème encore plus loin, en permettant une accessibilité, une scalabilité et une portabilité du matériel à plus de développeurs dans le monde.

Pour finir, l’IA pénétrera notre vie de manière inconnue, et elle existera partout – j’espère donc que Mojo catalysera les développeurs pour aller résoudre les problèmes les plus importants pour l’humanité plus rapidement – peu importe où ils vivent dans notre monde. Je pense que c’est un avenir pour lequel il vaut la peine de se battre.

Je vous remercie pour cette grande interview, les lecteurs qui souhaitent en savoir plus devraient visiter Modular.

Antoine est un leader visionnaire et associé fondateur de Unite.AI, animé par une passion inébranlable pour façonner et promouvoir l'avenir de l'IA et de la robotique. Un entrepreneur en série, il croit que l'IA sera aussi perturbatrice pour la société que l'électricité, et on le surprend souvent en train de vanter le potentiel des technologies perturbatrices et de l'AGI.

En tant que futuriste, il se consacre à explorer comment ces innovations vont façonner notre monde. En outre, il est le fondateur de Securities.io, une plateforme axée sur l'investissement dans les technologies de pointe qui redéfinissent l'avenir et remodelent des secteurs entiers.