Connect with us

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

Intelligence artificielle

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

mm

Tim Davis, est le Co-Fondateur & 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 combler le fossé entre la recherche et la production en combinant le meilleur de Python avec les systèmes et la métaprogrammation.

Entrepreneur répétitif et Leader de produit. Tim a aidé à construire, à trouver et à mettre à l’échelle de grandes parties de l’infrastructure d’IA de Google chez Google Brain et Core Systems à partir d’API (TensorFlow), de compilateurs (XLA & MLIR) et de runtime pour serveur (CPU/GPU/TPU) et TF Lite (Mobile/Micro/Web), Android ML & NNAPI, infrastructure de grands modèles & OSS pour des milliards d’utilisateurs et d’appareils. 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 que gamin qui grandit en Australie, mon père a ramené à la maison 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 bidouiller 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’à 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 un tas 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 lui.

Pendant plus de 5 ans, vous avez travaillé chez Google en tant que Senior Product Manager et Group Product Leader, où vous avez aidé à mettre à l’échelle de grandes parties de l’infrastructure d’IA de Google chez Google Brain. Qu’est-ce que vous avez appris de cette expérience ?

Les personnes sont celles qui construisent des technologies et des produits qui changent le monde, et c’est un groupe de personnes dévouées 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 révéler progressivement la complexité, d’autoriser les utilisateurs à raconter leurs histoires uniques au monde comme réparer le Grand Barrier Reef ou aider des personnes comme Jason le batteur, et d’attirer et de rassembler 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 vraiment les personnes avec qui vous avez travaillé qui sont vraiment mémorables. Je regarderai toujours avec nostalgie et apprécierai que de nombreuses personnes ont pris des risques sur moi, et je leur suis énormément reconnaissant qu’elles l’aient fait, car de nombreux de ces risques m’ont encouragé à être un meilleur leader et 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’est 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 grands chargements 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, à quel point nous pouvons devenir plus productifs en tant qu’espèce, pour faire progresser 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 de première main – « pourquoi les choses ne fonctionnent-elles pas simplement ? » Pour que le monde adopte et découvre la nature transformative incroyable de l’IA, nous avons besoin d’un logiciel et d’une infrastructure de développement qui passent de la recherche à la production, et qui sont très accessibles. Cela nous permettra de débloquer la prochaine façon de découvertes scientifiques – dont l’IA sera critique – et est un grand défi d’ingénierie. Avec cette motivation de fond, nous avons développé une croyance intrinsèque que nous pouvions nous lancer pour construire une nouvelle approche pour l’infrastructure d’IA, et donner aux développeurs partout le pouvoir d’utiliser l’IA pour aider à rendre le monde meilleur. 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 en conséquence.

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 quiconque, n’importe où. Tout ce que nous faisons chez Modular est axé sur cet objectif, et nous remontons de cela dans la façon dont nous développons nos produits et notre technologie. À cette lumière, notre propre vélocité de développement est ce qui nous intéresse d’abord, 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 à travers le problème de langage à deux mondes en IA – où les chercheurs vivent en Python, et les ingénieurs de production et 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 l’approche entièrement. Nous avons choisi la seconde. Il y avait un besoin clair de résoudre ce problème, mais de nombreuses façons différentes 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 levage plus simple vers le futur. Notre équipe porte les cicatrices de la migration de logiciel à grande échelle, et nous ne voulions pas 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 donc nous avons entrepris une approche de première principe, et Mojo est né.

Comment Mojo permet-il une mise à l’échelle et une portabilité sans effort 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 compilation 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’historique de notre équipe dans la création de cette infrastructure, il est naturel que nous l’utilisions lourdement chez Modular et que cela sous-tende notre approche d’état de l’art pour le développement d’une nouvelle infrastructure d’IA pour le monde. De manière critique, alors que MLIR est maintenant rapidement adopté, Mojo est le premier langage qui tire vraiment le pouvoir de MLIR et l’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 très bas niveau pour leur matériel unique.

Les références à Mojo prétendent 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 lorsque vous portez un programme Python simple à Mojo, notamment qu’il fonctionnera simplement. L’un de nos objectifs principaux 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 l’implémentation CPython pour le support de l’écosystème à longue traîne. Ensuite, nous vous permettons de modifier 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++ est un objectif énorme, et cela sera 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.

Dans 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 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 avons fait cela depuis longtemps et nous savons que les jeux de performance ne sont pas ce qui stimule l’adoption du langage (malgré le fait qu’ils soient amusants !) – c’est la vélocité du développeur, l’utilisabilité du langage, les outils et la documentation de haute qualité, 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 puis vous élève facilement à un monde meilleur. Mojo vous permet d’avoir un langage performant, utilisable, statiquement typé et portable qui s’intègre sans effort avec 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 le multithreading et la parallelisation de manière que le Python brut aujourd’hui ne peut pas – débloquant la communauté mondiale de développeurs pour avoir un langage qui passe de haut en bas.

La magie 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 à l’engagement de la bonne manière et à nous assurer que nous faisons 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 – donc nous n’aurons 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 portent 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 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 la meilleure utilisabilité. 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é une levée de 100 millions de dollars en nouveau financement, menée par General Catalyst et remplie par des investisseurs existants GV (Google Ventures), SV Angel, Greylock et Factory. Que devrions-nous 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, cherchent tous notre infrastructure – nous voulons donc nous assurer que nous continuons à la 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 que société. 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 instantanément une image d’un développeur écrivant du code de bas niveau complexe qui nécessite des mathématiques et une logique lourdes – mais cela n’a pas à être perçu de cette façon. La technologie a toujours été un grand accélérateur de productivité pour la société, et en rendant la programmation plus accessible et utilisable, nous pouvons permettre à plus de personnes de l’embrasser. 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 crois que nous avons une énorme opportunité de le rendre encore plus puissant, et d’encourager plus de monde à embrasser sa beauté et sa simplicité. Comme je l’ai dit plus tôt, il s’agit de construire des produits qui ont une révélation progressive de la complexité – en permettant des abstractions de haut niveau, mais en passant à des abstractions incroyablement basses également. Nous sommes déjà témoins d’un bond significatif avec les modèles d’IA qui permettent des traductions de texte à code progressives – et celles-ci ne feront que devenir plus personnalisées avec le temps – mais derrière cette innovation magique, il y a toujours un développeur qui rédige et déploie du code pour la faire fonctionner. Nous avons écrit à ce sujet dans le passé – l’IA continuera à débloquer la créativité et la productivité à travers de nombreux langages de programmation, mais je crois également que Mojo ouvrira l’ouverture 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 nos vies de manière inconnue, et elle existera partout – donc j’espère 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 partenaire 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 se fait souvent prendre en train de vanter le potentiel des technologies perturbatrices et de l'AGI.
En tant que futurist, 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.