Kunstmatige intelligentie
Tim Davis, Co-Founder & President of Modular – Interview Series

Tim Davis is de Co-Founder & President van Modular, een geïntegreerde, samengestelde suite van tools die uw AI-infrastructuur vereenvoudigt, zodat uw team sneller kan ontwikkelen, implementeren en innoveren. Modular is vooral bekend vanwege de ontwikkeling van Mojo, een nieuwe programmeertaal die de kloof tussen onderzoek en productie overbrugt door het beste van Python te combineren met systeem- en metaprogrammering.
Herhaalde ondernemer en productleider. Tim heeft geholpen bij het opbouwen, vinden en schalen van grote delen van Google’s AI-infrastructuur bij Google Brain en Core Systems van APIs (TensorFlow), compilers (XLA & MLIR) en runtime-omgevingen voor server (CPU/GPU/TPU) en TF Lite (Mobiel/Micro/Web), Android ML & NNAPI, grote model-infrastructuur & OSS voor miljarden gebruikers en apparaten. Houdt van hardlopen, bouwen en schalen van producten om mensen te helpen, en de wereld.
Wanneer ontdekte je voor het eerst coderen, en wat trok je aan?
Als kind dat opgroeide in Australië, bracht mijn vader een Commodore 64C thuis en was gamen wat me verslaafd maakte – Boulder Dash, Maniac Mansion, Double Dragon – wat een tijd om te leven. Die computer introduceerde me bij BASIC en het hacken daarmee was mijn eerste echte introductie tot programmeren. Dingen werden intenser doorheen de middelbare school en universiteit waar ik traditionele statische talen voor ingenieurscursussen gebruikte, en op een gegeven moment heb ik zelfs geëxperimenteerd met Javascript en VBA, voordat ik uiteindelijk neerstreken bij Python voor het merendeel van de programmering als de taal van datawetenschap en AI. Ik schreef een heleboel code in mijn vroege startups, maar tegenwoordig gebruik ik natuurlijk Mojo en de toolchain die we daaromheen hebben gebouwd.
Je werkte meer dan 5 jaar bij Google als Senior Product Manager en Group Product Leader, waar je hielp bij het schalen van grote delen van Google’s AI-infrastructuur bij Google Brain. Wat leerde je uit deze ervaring?
Mensen zijn wat wereldveranderende technologieën en producten bouwen, en het is een toegewijd groep mensen gebonden door een grotere visie die hen naar de wereld brengt. Google is een geweldig bedrijf, met geweldige mensen, en ik was gelukkig om veel van de slimste geesten in AI te ontmoeten en te werken met hen toen ik me bij het Brain-team voegde. De grootste lessen die ik leerde, waren om altijd te focussen op de gebruiker en geleidelijk complexiteit te onthullen, om gebruikers te empoweren om hun unieke verhalen aan de wereld te vertellen, zoals het Grote Barrièrerif te herstellen of mensen zoals Jason de Drummer te helpen, en om een diverse mix van mensen aan te trekken om naar een gemeenschappelijk doel te werken. In een enorm bedrijf met veel slimme en getalenteerde mensen is dit veel moeilijker dan je je kunt voorstellen. Als ik terugkijk op mijn tijd daar, zijn het altijd de mensen met wie je hebt gewerkt die echt onvergetelijk zijn. Ik zal altijd met genoegen terugdenken en ben enorm dankbaar dat veel mensen risico’s op me namen, en ik ben hen enorm dankbaar, omdat veel van die risico’s me hebben aangemoedigd om een betere leider en persoon te zijn, om diep te duiken en echt AI-systemen te begrijpen. Dit heeft me echt doen beseffen hoeveel kracht AI heeft om de wereld te beïnvloeden, en dit was de reden waarom ik de inspiratie en de moed had om te vertrekken en Modular mede op te richten.
Kun je het verhaal achter Modular delen?
Chris en ik ontmoetten elkaar bij Google en lanceerden veel invloedrijke technologieën die de wereld van AI vandaag aanzienlijk hebben beïnvloed. Maar we voelden dat AI werd gehinderd door overmatig complexe en gefragmenteerde infrastructuur die we zelf hebben meegemaakt bij het implementeren van grote workloads voor miljarden gebruikers. We werden gemotiveerd door een verlangen om de impact van AI op de wereld te versnellen door de industrie naar productiekwaliteit AI-software te tillen, zodat wij, als een wereldwijde samenleving, een grotere impact kunnen hebben op hoe we leven. Men kan niet anders dan zich afvragen hoeveel problemen AI kan helpen oplossen, hoeveel ziektes genezen, hoeveel productiever we kunnen worden als soort, om ons bestaan voor toekomstige generaties te vergroten, door de penetratie van deze geweldige technologie te vergroten.
Na jaren te hebben samengewerkt aan grote schaal kritieke AI-infrastructuur – hebben we de enorme ontwikkelaarspijn met eigen ogen gezien – “waarom kunnen dingen niet gewoon werken”? Voor de wereld om AI te adopteren en de enorme transformatieve aard ervan te ontdekken, hebben we software- en ontwikkelaarsinfrastructuur nodig die schaalt van onderzoek naar productie en zeer toegankelijk is. Dit zal ons in staat stellen om de volgende manier van wetenschappelijke ontdekkingen te ontgrendelen – waarvan AI een kritiek onderdeel zal zijn – en is een groot ingenieursuitdaging. Met deze motiverende achtergrond hebben we een intrinsieke overtuiging ontwikkeld dat we een nieuwe aanpak voor AI-infrastructuur konden creëren en ontwikkelaars overal empoweren om AI te gebruiken om de wereld een betere plek te maken. We zijn ook erg gelukkig om veel mensen bij ons op deze reis te hebben, en we hebben het beste AI-infrastructuurteam ter wereld als resultaat.
Kun je bespreken hoe de programmeertaal Mojo oorspronkelijk voor je eigen team werd gebouwd?
Modular’s visie is om AI voor iedereen, overal mogelijk te maken. Alles wat we bij Modular doen, is gericht op dat doel, en we werken achteruit vanuit de manier waarop we onze producten en technologieën ontwikkelen. In dit licht is onze eigen ontwikkelaars snelheid wat voor ons het belangrijkst is, en aangezien we zo veel van de bestaande AI-infrastructuur voor de wereld hebben gebouwd – moesten we zorgvuldig overwegen wat onze team in staat zou stellen om sneller te bewegen. We hebben de twee-wereldentaalprobleem in AI meegemaakt – waar onderzoekers in Python leven en productie- en hardware-ingenieurs in C++ leven – en we hadden geen keuze dan ofwel die weg af te gaan, ofwel de aanpak helemaal opnieuw te overwegen. We kozen voor het laatste. Er was een duidelijke behoefte om dit probleem op te lossen, maar veel verschillende manieren om het op te lossen – we benaderden het met onze sterke overtuiging om de ecosystemen waar ze vandaag zijn te ontmoeten, en om een eenvoudige lift naar de toekomst mogelijk te maken. Ons team draagt de littekens van software-migratie op grote schaal, en we wilden geen herhaling daarvan. We realiseerden ons ook dat er vandaag geen taal is die alle uitdagingen die we proberen op te lossen voor AI kan oplossen, dus we hebben een aanpak vanuit de eerste beginselen ondernomen, en Mojo is geboren.
Hoe zorgt Mojo voor naadloze schaling en portabiliteit over veel soorten hardware?
Chris, ikzelf en ons team bij Google (veel bij Modular) hebben geholpen MLIR in de wereld gebracht jaren geleden – met als doel om de wereldgemeenschap te helpen bij het oplossen van echte uitdagingen door AI-modellen consistent te laten worden weergegeven en uitgevoerd op elk type hardware. MLIR is een nieuwe soort open-source compiler-infrastructuur die op grote schaal is geadopteerd en snel de nieuwe standaard wordt voor het bouwen van compilers via LLVM. Gezien de geschiedenis van ons team in het creëren van deze infrastructuur, is het natuurlijk dat we deze zwaar gebruiken bij Modular en dat dit onze state-of-the-art-aanpak ondersteunt bij het ontwikkelen van nieuwe AI-infrastructuur voor de wereld. Kritisch, terwijl MLIR nu snel wordt geadopteerd, is Mojo de eerste taal die de kracht van MLIR echt naar ontwikkelaars brengt op een unieke en toegankelijke manier. Dit betekent dat het schaalt van Python-ontwikkelaars die toepassingen schrijven, tot prestatie-ingenieurs die hoge prestatiecode implementeren, tot hardware-ingenieurs die zeer lage systeemcode voor hun unieke hardware schrijven.
Verwijzingen naar Mojo beweren dat het eigenlijk Python++ is, met de toegankelijkheid van Python en de hoge prestaties van C. Is dit een grove oversimplificatie? Hoe zou je het beschrijven?
Mojo moet voor elke Python-programmeur heel vertrouwd aanvoelen, omdat het de syntaxis van Python deelt. Maar er zijn een paar belangrijke verschillen die je zult zien als je een eenvoudig Python-programma naar Mojo port, waaronder dat het gewoon uit de doos werkt. Een van onze kerndoelen voor Mojo is om een superset van Python te bieden – dat wil zeggen, om Mojo compatibel te maken met bestaande Python-programma’s – en om de CPython-implementatie voor langstaart-ecosysteemondersteuning te omarmen. Dan kun je langzaam je code aanvullen en vervangen met de lage-niveau-functies van Mojo om expliciet geheugenbeheer, typen toe te voegen, autotuning en veel andere aspecten te gebruiken om de prestaties van C of beter te krijgen! We denken dat Mojo je het beste van beide werelden geeft en dat je geen code hoeft te schrijven en herschrijven in meerdere talen. We waarderen Python++ als een enorm doel, en het zal een meerjarig project zijn, maar we zijn toegewijd om het tot werkelijkheid te maken en onze legendarische gemeenschap van meer dan 140K+ ontwikkelaars te helpen de toekomst samen te bouwen.
In een recente keynote werd getoond dat Mojo 35.000 keer sneller is dan Python, hoe is deze snelheid berekend?
Het is eigenlijk 68.000 keer sneller nu! Maar laten we erkennen dat het maar één programma is in Mandelbrot – je kunt een reeks van drie blogposts lezen over hoe we dit hebben bereikt – hier, hier en hier. Natuurlijk hebben we dit al een lange tijd gedaan en we weten dat prestatie-spellen niet zijn wat taaladoptie aandrijft (ondanks dat het leuk is!) – het is ontwikkelaarssnelheid, taalgebruiksvriendelijkheid, hoge kwaliteit toolchains & documentatie, en een gemeenschap die de infrastructuur gebruikt om te innoveren en te bouwen op manieren die we ons niet eens kunnen voorstellen. We zijn toolbouwers, en ons doel is om de wereld te empoweren om onze tools te gebruiken, om geweldige producten te creëren en belangrijke problemen op te lossen. Als we ons op ons grotere doel richten, is het eigenlijk om een taal te creëren die je ontmoet waar je vandaag bent en je dan gemakkelijk naar een betere wereld tilt. Mojo stelt je in staat om een hoge prestatie, gebruiksvriendelijke, statisch getypeerde en portable taal te hebben die naadloos integreert met je bestaande Python-code – je het beste van beide werelden geeft. Het stelt je in staat om de ware kracht van de hardware te realiseren met multithreading en parallelisatie op manieren die pure Python vandaag niet kan – het wereldwijde ontwikkelaarsgemeenschap ontgrendelt om één taal te hebben die schaalt van boven naar beneden.
Mojo’s magie is zijn vermogen om programmeertalen met één set tools te verenigen, waarom is dit zo belangrijk?
Talen slagen altijd door de kracht van hun ecosystemen en de gemeenschappen die zich daaromheen vormen. We hebben langdurig met open-source-gemeenschappen gewerkt en zijn enorm bedachtzaam bij het op de juiste manier engageren en ervoor zorgen dat we het goed doen voor de gemeenschap. We werken enorm hard om onze infrastructuur te verschepen, maar hebben tijd nodig om ons team uit te breiden – dus we zullen niet meteen alle antwoorden hebben, maar we zullen er komen. Terugkijkend, ons doel is om het Python-ecosysteem te tillen door het hele bestaande ecosysteem te omarmen, en we proberen het niet te breken zoals zoveel andere projecten. Interoperabiliteit maakt het voor de gemeenschap gemakkelijker om onze infrastructuur uit te proberen, zonder dat ze al hun code opnieuw hoeven te schrijven, en dat telt veel voor AI.
Bovendien hebben we zo veel geleerd van de ontwikkeling van AI-infrastructuur en -tools in de afgelopen tien jaar. De bestaande monolithische systemen zijn niet gemakkelijk uitbreidbaar of generaliseerbaar buiten hun initiële domeindoel, en de gevolgtrekking is een enorm gefragmenteerd AI-implementatie-industrie met tientallen toolchains die verschillende compromissen en beperkingen met zich meebrengen. Deze ontwerppatronen hebben de innovatie vertraagd door minder gebruiksvriendelijk, minder portable en moeilijker schaalbaar te zijn.
Het volgende generatie AI-systeem moet productiekwaliteit hebben en ontwikkelaars ontmoeten waar ze zijn. Het mag geen dure herschrijving, herarchitectuur of herschikking van gebruikerscode vereisen. Het moet native multi-framework, multi-cloud en multi-hardware zijn. Het moet de beste prestaties en efficiëntie combineren met de beste gebruiksvriendelijkheid. Dit is de enige manier om fragmentatie te verminderen en de volgende generatie hardware-, data- en algoritme-innovaties te ontgrendelen.
Modular kondigde onlangs aan 100 miljoen dollar aan nieuwe financiering te hebben opgehaald, geleid door General Catalyst en aangevuld door bestaande investeerders GV (Google Ventures), SV Angel, Greylock en Factory. Wat kunnen we verwachten?
Deze nieuwe kapitaal zal voornamelijk worden gebruikt om ons team uit te breiden, door het aannemen van de beste mensen in AI-infrastructuur, en om de enorme commerciële vraag die we zien voor ons platform te blijven ontmoeten. Modverse, onze gemeenschap van meer dan 130K+ ontwikkelaars en 10.000’s van ondernemingen, zoeken allemaal naar onze infrastructuur – dus we willen ervoor zorgen dat we blijven schalen en hard werken om het voor hen te ontwikkelen en te leveren. We houden onszelf aan een ongelooflijk hoge standaard, en de producten die we verschepen zijn een weerspiegeling van wie we zijn als team, en wie we worden als bedrijf. Als je iemand kent die gedreven is, die van de grens tussen software en hardware houdt, en die wil helpen om AI de wereld op een betekenisvolle en positieve manier te laten penetreren – stuur ze onze kant op.
Wat is uw visie voor de toekomst van programmeren?
Programmeren zou een vaardigheid moeten zijn die iedereen in de samenleving kan ontwikkelen en gebruiken. Voor velen roept de “gedachte” aan programmeren onmiddellijk een beeld op van een ontwikkelaar die complexe lage-niveau-code schrijft die zware wiskunde en logica vereist – maar het hoeft niet zo worden waargenomen. Technologie is altijd een geweldige productiviteitsversterker voor de samenleving geweest, en door programmeren toegankelijker en gebruiksvriendelijker te maken, kunnen we meer mensen empoweren om het te omarmen. Mensen in staat stellen om repetitieve processen te automatiseren en hun leven gemakkelijker te maken, is een krachtige manier om mensen meer tijd terug te geven.
En in Python hebben we al een prachtige taal die de tand des tijds heeft doorstaan – het is de meest populaire taal ter wereld, met een geweldige gemeenschap – maar het heeft ook beperkingen. Ik geloof dat we een enorme kans hebben om het nog krachtiger te maken, en om meer van de wereld te laten zien hoe mooi en eenvoudig het is. Zoals ik eerder zei, gaat het om het bouwen van producten met een progressieve onthulling van complexiteit – het mogelijk maken van hoge-niveau-abstraheringen, maar ook schaalbaar naar extreem lage niveaus. We zien nu al een significante sprong met AI-modellen die progressieve tekst-naar-code-translaties mogelijk maken – en deze zullen alleen maar meer gepersonaliseerd worden in de tijd – maar achter deze magische innovatie zit nog steeds een ontwikkelaar die code schrijft en implementeert om het te laten werken. We hebben hier eerder over geschreven – AI zal blijven creativiteit en productiviteit over veel programmeertalen heen ontgrendelen, maar ik geloof ook dat Mojo het ecosysteem nog verder zal openen, door meer toegankelijkheid, schaalbaarheid en hardware-portabiliteit te bieden aan nog meer ontwikkelaars over de hele wereld.
Tot slot, AI zal ons leven op ongekende manieren binnendringen, en het zal overal aanwezig zijn – dus ik hoop dat Mojo ontwikkelaars zal inspireren om sneller de meest belangrijke problemen voor de mensheid op te lossen – waar ze ook ter wereld wonen. Ik denk dat dat een toekomst is waarvoor het de moeite waard is om voor te vechten.
Bedankt voor het geweldige interview, lezers die meer willen leren, moeten Modular bezoeken.












