Tim Davis, Co-fondateur et Président de Modular – Série d’interviews
Tim Davis, Co-fondateur et Président de Modular - Interviews Series
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 connue pour avoir développé Mojo, un nouveau langage de programmation qui comble le fossé entre la recherche et la production en combinant le meilleur de Python avec les systèmes et la méta-programmation.
Entrepreneur et leader de produits répétitif. Tim a contribué à construire, fonder et développer une grande partie de l’infrastructure d’IA de Google chez Google Brain et Core Systems, allant des API (TensorFlow), des compilateurs (XLA & MLIR) et des runtimes pour serveur (CPU/GPU/TPU) et TF Lite (Mobile/Micro/Web), Android ML & NNAPI, à l’infrastructure de modèles volumineux et aux logiciels libres pour des milliards d’utilisateurs et d’appareils. Il aime courir, construire et développer 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é?
En grandissant en Australie, mon père a ramené à la maison un Commodore 64C et c’est grâce aux jeux vidéo que je me suis passionné – Boulder Dash, Maniac Mansion, Double Dragon – quelle époque extraordinaire. Cet ordinateur m’a fait découvrir le BASIC et c’est ainsi que j’ai commencé à bidouiller et à m’intéresser à la programmation. Les choses sont devenues plus intenses au lycée et à l’université où j’ai utilisé des langages statiques plus traditionnels pour mes cours d’ingénierie, et au fil du temps, j’ai même touché à JavaScript et VBA, avant de me concentrer principalement sur Python en tant que langage de science des données et d’IA. J’ai écrit beaucoup de code dans mes premières startups, mais de nos jours, bien sûr, j’utilise Mojo et la chaîne d’outils que nous avons créée autour.
- Dévoiler l’avenir de l’IA avec GPT-4 et l’IA Explicative (XAI)
- La Pratique de la Gestion des Risques de l’IA
- Un guide en anglais simple pour rétroconcevoir le code source de Reddit avec LangChain, Activeloop et GPT-4
Pendant plus de 5 ans, vous avez travaillé chez Google en tant que Senior Product Manager et Group Product Leader, où vous avez contribué à développer une grande partie de l’infrastructure d’IA de Google chez Google Brain. Qu’avez-vous 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 dévoué de personnes unies 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 de l’IA il y a des années lorsque j’ai rejoint l’équipe Brain. Les plus grandes leçons que j’ai apprises sont de toujours se concentrer sur l’utilisateur et de révéler progressivement la complexité, afin de permettre aux utilisateurs de raconter leurs histoires uniques au monde, comme la réparation de la Grande Barrière de Corail ou l’aide apportée à 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 grande entreprise regroupant des personnes très intelligentes et talentueuses, cela est bien plus difficile que vous ne pouvez l’imaginer. En réfléchissant à mon temps passé là-bas, ce sont toujours les personnes avec lesquelles vous avez travaillé qui sont vraiment mémorables. Je regarderai toujours en arrière avec affection et apprécierai que de nombreuses personnes aient pris des risques avec moi, et je suis extrêmement reconnaissant qu’elles l’aient fait, car bon nombre de ces risques m’ont encouragé à être un meilleur leader et une meilleure personne, à plonger en profondeur et à comprendre vraiment les systèmes d’IA. Cela m’a vraiment fait prendre conscience du pouvoir profond qu’a l’IA d’impacter le monde, et c’est précisément pour cette raison que j’ai eu l’inspiration et le courage de partir et de co-fonder Modular.
Pouvez-vous nous parler de l’histoire de la genèse de Modular?
Chris et moi nous sommes rencontrés chez Google et avons lancé de nombreuses technologies influentes qui ont eu un impact significatif sur le monde de l’IA aujourd’hui. Cependant, nous avons estimé 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 d’énormes 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 faisant évoluer l’industrie vers des logiciels d’IA de qualité de production, afin que nous, en tant que société mondiale, puissions avoir un impact plus important sur notre mode de vie. On ne peut 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 prolonger notre existence pour les générations futures, en augmentant la pénétration de cette incroyable technologie.
Ayant travaillé ensemble pendant des années sur une infrastructure d’IA critique à grande échelle, nous avons constaté la douleur immense des développeurs – “pourquoi les choses ne peuvent-elles pas simplement fonctionner” ? Pour que le monde adopte et découvre la nature transformative énorme de l’IA, nous avons besoin de logiciels et d’une infrastructure de développement qui passent de la recherche à la production et qui soient très accessibles. Cela nous permettra de débloquer la prochaine vague de découvertes scientifiques – dont l’IA sera cruciale – et constitue un défi d’ingénierie grandiose. Avec ce contexte motivant, nous avons développé la conviction intrinsèque que nous pouvions entreprendre de construire une nouvelle approche de l’infrastructure d’IA et d’autonomiser les développeurs du monde entier pour utiliser l’IA afin d’aider à rendre le monde meilleur. Nous avons également la chance d’avoir de nombreuses personnes qui nous ont rejoints dans cette aventure, et nous avons ainsi l’équipe d’infrastructure d’IA la meilleure au monde.
Pouvez-vous nous parler de la façon dont le langage de programmation Mojo a été initialement développé pour votre propre équipe?
La vision de Modular est de permettre à l’IA d’être utilisée par n’importe qui, n’importe où. Tout ce que nous faisons chez Modular est axé sur cet objectif, et nous y parvenons en construisant nos produits et notre technologie de manière rétroactive. Dans cette optique, notre vitesse de développement en tant que développeurs est ce qui compte le plus pour nous, et ayant construit une grande partie de l’infrastructure IA existante pour le monde, nous devions réfléchir attentivement à ce qui permettrait à notre équipe d’aller plus vite. Nous avons vécu le problème des deux langages dans le domaine de l’IA, où les chercheurs utilisent Python et les ingénieurs en production et en matériel utilisent C++. Nous n’avions pas le choix de continuer dans cette voie ou de repenser complètement notre approche. Nous avons choisi cette dernière option. Il était clair qu’il fallait résoudre ce problème, mais il y avait de nombreuses façons de le faire. Nous avons abordé ce problème en croyant fermement qu’il fallait s’adapter à l’écosystème actuel et faciliter la transition vers l’avenir. Notre équipe a déjà vécu les difficultés de la migration logicielle à grande échelle et nous ne voulions pas revivre cela. Nous avons également réalisé qu’aucun langage actuel, à notre avis, ne peut résoudre tous les défis que nous essayons de relever dans le domaine de l’IA. Nous avons donc adopté une approche basée sur des principes fondamentaux et Mojo est né.
Comment Mojo permet-il une mise à l’échelle et une portabilité transparentes sur de nombreux types de matériel ?
Chris, moi-même et notre équipe chez Google (dont beaucoup sont chez Modular) avons contribué à la création de MLIR il y a plusieurs années, dans le but d’aider la communauté mondiale à résoudre de vrais problèmes 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 un nouveau type d’infrastructure de compilation open-source qui a été adoptée à grande échelle et qui devient rapidement la nouvelle norme pour la construction de compilateurs via LLVM. Étant donné que notre équipe a contribué à la création de cette infrastructure, il est naturel que nous l’utilisions intensivement chez Modular, et cela constitue la base de notre approche de pointe dans le développement d’une nouvelle infrastructure d’IA pour le monde. De manière cruciale, bien que MLIR soit maintenant largement adopté, Mojo est le premier langage qui exploite véritablement la puissance de MLIR et la rend accessible aux développeurs de manière unique. Cela signifie qu’il est adapté aux développeurs Python qui écrivent des applications, aux ingénieurs de performance qui déploient du code à haute performance et aux ingénieurs en matériel qui écrivent du code système de très bas niveau pour leur matériel spécifique.
Les références à Mojo prétendent qu’il s’agit essentiellement de Python++, alliant l’accessibilité de Python et les performances élevées de C. S’agit-il d’une simplification excessive ? Comment le décririez-vous ?
Mojo devrait être très familier à tout programmeur Python, car il partage la syntaxe de Python. Mais il y a quelques différences importantes que vous remarquerez lorsque vous portez un simple programme Python vers Mojo, notamment le fait que cela fonctionnera directement. Un de nos objectifs principaux pour Mojo est de fournir une sur-ensemble de Python, c’est-à-dire rendre Mojo compatible avec les programmes Python existants, et d’adopter l’implémentation CPython pour prendre en charge l’écosystème longue traîne. Ensuite, vous pouvez progressivement améliorer votre code et 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 afin d’obtenir des performances équivalentes ou supérieures à celles de C ! Nous pensons que Mojo vous offre le meilleur des deux mondes et vous n’avez pas à écrire et réécrire vos algorithmes dans plusieurs langages. Nous reconnaissons que Python++ est un objectif énorme et qu’il s’agit d’un projet pluriannuel, mais nous sommes déterminés à le réaliser et à permettre à notre communauté légendaire de plus de 140 000 développeurs de nous aider à construire l’avenir ensemble.
Lors d’une récente présentation, il a été démontré que Mojo était 35 000 fois plus rapide que Python, comment cette vitesse a-t-elle été calculée ?
C’est en fait maintenant 68 000 fois plus rapide ! Mais reconnaissons que ce n’est qu’un seul programme dans Mandelbrot – vous pouvez lire une série de trois articles de blog sur la façon dont nous avons atteint ce résultat – ici, ici et ici. Bien sûr, nous faisons cela depuis longtemps et nous savons que les performances ne sont pas ce qui motive l’adoption d’un langage (bien que cela soit amusant !) – c’est la vitesse de développement des développeurs, la facilité d’utilisation du langage, la qualité des outils et de la documentation, et une communauté qui utilise l’infrastructure pour inventer et construire des choses 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 pour créer des produits incroyables et résoudre des problèmes importants. Si nous nous concentrons sur notre objectif plus large, il s’agit en réalité de créer un langage qui vous correspond là où vous êtes aujourd’hui et qui vous permet ensuite de vous élever facilement vers un monde meilleur. Mojo vous permet d’avoir un langage hautement performant, utilisable, avec des types statiques et portable qui s’intègre parfaitement à votre code Python existant, vous offrant ainsi le meilleur des deux mondes. Il vous permet de tirer pleinement parti de la puissance du matériel avec le multithreading et la parallélisation de manière que le Python brut ne permet pas aujourd’hui, libérant ainsi la communauté mondiale de développeurs pour utiliser un seul langage qui s’étend à tous les niveaux.
La magie de Mojo réside dans sa capacité à unifier les langages de programmation avec un ensemble d’outils, pourquoi est-ce si important ?
Les langages réussissent toujours grâce à la puissance de leurs écosystèmes et des communautés qui se forment autour d’eux. Nous travaillons depuis longtemps avec des communautés open source et nous sommes incroyablement attentifs à la manière dont nous nous engageons et à nous assurer de faire les choses correctement pour la communauté. Nous travaillons incroyablement dur pour développer notre infrastructure, mais nous avons besoin de temps pour élargir notre équipe – donc nous n’aurons pas toutes les réponses immédiatement, mais nous y arriverons. En prenant du recul, notre objectif est de dynamiser l’écosystème Python en embrassant l’ensemble de l’écosystème existant, et nous ne cherchons pas à le fragmenter comme le font tant d’autres projets. L’interopérabilité facilite simplement la possibilité 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 beaucoup appris du développement de l’infrastructure et des 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 domaine cible initial, ce qui a pour conséquence une industrie de déploiement d’IA extrêmement fragmentée avec des douzaines de chaînes d’outils présentant 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 nouvelle génération doit être de qualité de production et répondre aux besoins des développeurs là où ils se trouvent. Il ne doit pas nécessiter une réécriture coûteuse, une restructuration ou un réalignement du code utilisateur. Il doit être nativement multi-framework, multi-cloud et multi-hardware. Il doit combiner les meilleures performances et efficacité avec la meilleure utilisabilité. C’est la seule façon de réduire la fragmentation et de libérer la prochaine génération de matériels, de données et d’innovations algorithmiques.
Modular a récemment annoncé une levée de fonds de 100 millions de dollars, dirigée par General Catalyst et complétée par les investisseurs existants GV (Google Ventures), SV Angel, Greylock et Factory. Qu’attendons-nous ensuite ?
Ce nouveau capital sera principalement utilisé pour développer notre équipe, en recrutant les meilleurs experts en infrastructure d’IA et en continuant à répondre à la demande commerciale énorme que nous constatons pour notre plateforme. Modverse, notre communauté de plus de 130 000 développeurs et des milliers d’entreprises, recherche tous notre infrastructure – nous voulons donc nous assurer de continuer à nous développer et à travailler dur pour la développer et la livrer. Nous nous fixons des normes incroyablement élevées, et les produits que nous livrons sont le reflet de qui nous sommes en tant qu’équipe et de qui nous devenons en tant qu’entreprise. Si vous connaissez quelqu’un de motivé, qui aime la frontière entre le logiciel et le matériel, et qui souhaite contribuer à la pénétration de l’IA dans le monde de manière significative et positive – envoyez-le chez nous.
Quelle est votre vision de 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 la programmation évoque instantanément l’image d’un développeur écrivant un code complexe de bas niveau nécessitant des mathématiques et de la logique avancées – mais cela ne doit pas être perçu de cette façon. La technologie a toujours été un excellent moyen d’améliorer la productivité de la société, et en rendant la programmation plus accessible et utilisable, nous pouvons permettre à plus de personnes de l’adopter. Permettre aux gens d’automatiser des processus répétitifs et de simplifier leur vie est un moyen puissant de leur donner plus de temps libre.
Et en Python, nous disposons déjà d’un langage merveilleux qui a résisté à l’épreuve du temps – c’est le langage le plus populaire au monde, avec une communauté incroyable – mais il a aussi des limites. Je crois que nous avons une énorme opportunité de le rendre encore plus puissant et d’encourager plus de personnes dans le monde à en embrasser la beauté et la simplicité. Comme je l’ai dit plus tôt, il s’agit de construire des produits qui révèlent progressivement la complexité – en permettant des abstractions de haut niveau, mais également des abstractions de très bas niveau. Nous assistons déjà à un bond significatif avec les modèles d’IA permettant des traductions progressives de texte en code – et ceux-ci ne feront que devenir plus personnalisés avec le temps – mais derrière cette innovation magique se trouve toujours un développeur qui crée et déploie du code pour la faire fonctionner. Nous en avons déjà parlé dans le passé – l’IA continuera à libérer la créativité et la productivité dans de nombreux langages de programmation, mais je crois aussi que Mojo ouvrira encore plus l’ouverture de l’écosystème, en permettant une accessibilité, une évolutivité et une portabilité matérielle accrues pour de nombreux autres développeurs dans le monde.
En conclusion, l’IA pénétrera nos vies de manière inimaginable, et elle sera présente partout – donc j’espère que Mojo incitera les développeurs à résoudre plus rapidement les problèmes les plus importants pour l’humanité, peu importe où ils vivent dans notre monde. Je pense que c’est un avenir pour lequel il vaut la peine de se battre.
Merci pour cette excellente interview, les lecteurs qui souhaitent en savoir plus peuvent visiter Modular.
We will continue to update IPGirl; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles
- Les plugins ChatGPT indispensables pour les créateurs de contenu
- Le pouvoir de la distillation des connaissances dans l’IA moderne combler le fossé entre les modèles puissants et compacts
- Analyse des sentiments sur les avis d’hôtels TripAdvisor avec ChatGPT
- Extraction de synonymes (mots similaires) à partir de texte en utilisant BERT & NMSLIB 🔥
- Analyse des sentiments effectuée sur les tweets sur le séisme en Turquie
- PyTorch LSTM – Formes de l’entrée, de l’état caché, de l’état de la cellule et de la sortie
- Vers l’apprentissage profond en 3D Réseaux de neurones artificiels avec Python