AI-modellen en platforms
Tim Davis, mede-oprichter en president van Modular – Interviewreeks

Tim Davis is de mede-oprichter en president van Modular, een geïntegreerde, componeren suite van tools die uw AI-infrastructuur vereenvoudigt, zodat uw team sneller kan ontwikkelen, implementeren en innoveren. Modular is het meest bekend vanwege de ontwikkeling van Mojo, een nieuwe programmeertaal die de kloof tussen onderzoek en productie overbrugt door de beste aspecten van Python te combineren met systemen en metaprogrammering.
Herhaalde ondernemer en productleider. Tim heeft geholpen bij het opbouwen, vinden en schalen van grote delen van Google’s (GOOGL ) 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 modelinfrastructuur & 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 daarvan was mijn eerste echte introductie tot programmeren. Dingen werden serieuzer doorheen de middelbare school en universiteit waar ik traditionele statische talen voor ingenieurscursussen gebruikte, en met de tijd heb ik zelfs geklust met Javascript en VBA, voordat ik me uiteindelijk vestigde op Python voor de meeste 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 toolketen die we daaromheen hebben gebouwd.
Je werkte meer dan 5 jaar bij Google als Senior Product Manager en Group Product Leader, waar je hebt geholpen bij het schalen van grote delen van Google’s AI-infrastructuur bij Google Brain. Wat leerde je van deze ervaring?
Mensen zijn wat wereldveranderende technologieën en producten bouwen, en het is een toegewijd groep mensen die gebonden zijn door een grotere visie die hen naar de wereld brengt. Google is een ongelooflijk bedrijf, met geweldige mensen, en ik was gelukkig om veel van de slimste geesten in AI te ontmoeten en te werken met jaren geleden toen ik me bij het Brain-team voegde. De grootste lessen die ik leerde, waren om altijd te focussen op de gebruiker en progressief complexiteit te onthullen, om gebruikers in staat te stellen 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 en samen te stellen om naar een gemeenschappelijk doel te werken. In een enorm bedrijf van heel slimme en getalenteerde mensen, is dit veel moeilijker dan je je kan voorstellen. Als ik terugkijk op mijn tijd daar, zijn het altijd de mensen met wie ik heb gewerkt die echt onvergetelijk zijn. Ik zal altijd terugkijken met weemoed en waardering, want veel mensen hebben risico’s op me genomen, en ik ben enorm dankbaar dat ze dat deden, want veel van die risico’s hebben me aangemoedigd om een betere leider en persoon te worden, 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 de oorsprong van Modular delen?
Chris en ik ontmoetten elkaar bij Google en hebben veel invloedrijke technologieën uitgebracht die vandaag de dag een significante impact hebben op de wereld van AI. We voelden echter 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 we als 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 onze bestaan voor toekomstige generaties te vergroten, door de penetratie van deze ongelooflijke technologie te vergroten.
Na jarenlang samen te hebben gewerkt aan grote schaal kritieke AI-infrastructuur, zagen we de enorme ontwikkelaarspijn met eigen ogen – “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 tot productie en zeer toegankelijk is. Dit zal ons in staat stellen om de volgende manier van wetenschappelijke ontdekkingen te ontgrendelen – waarvan AI cruciaal zal zijn – en is een grote uitdaging voor ingenieurs. Met deze motiverende achtergrond, ontwikkelden we een intrinsieke overtuiging dat we een nieuwe benadering voor AI-infrastructuur konden uitwerken en ontwikkelaars overal in staat stellen om AI te gebruiken om de wereld een betere plek te maken. We zijn ook heel gelukkig om veel mensen te hebben die zich bij ons aansloten op deze reis, en we hebben het beste AI-infrastructuurteam ter wereld als resultaat.
Kun je bespreken hoe de Mojo-programmeertaal oorspronkelijk voor jouw eigen team werd gebouwd?
Modular’s visie is om AI voor iedereen, overal toegankelijk 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 opbouwen. In dit licht is onze eigen ontwikkelaars snelheid wat ons het meest aangaat, en aangezien we al 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-wereldtaalproblemen 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 dalen, of onze aanpak helemaal opnieuw te bekijken. 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 ecosysteem waar het vandaag is te ontmoeten en een eenvoudige lift naar de toekomst te bieden. Ons team draagt de littekens van software-migratie op grote schaal, en we wilden geen herhaling van dat hebben. We realiseerden ons ook dat er vandaag geen taal is die alle uitdagingen kan oplossen die we proberen op te lossen voor AI, dus we zijn een eerste-principesbenadering begonnen, 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 MLIR in de wereld gebracht jaren geleden – met het doel om de wereldwijde gemeenschap te helpen echte uitdagingen op te lossen door AI-modellen consistent te laten vertegenwoordigen en uitvoeren 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 het zwaar gebruiken bij Modular en dat het onze state-of-the-art-aanpak ondersteunt bij het ontwikkelen van nieuwe AI-infrastructuur voor de wereld. Critisch, terwijl MLIR nu snel wordt geadopteerd, is Mojo de eerste taal die de kracht van MLIR echt blootstelt en deze op een unieke en toegankelijke manier aan ontwikkelaars biedt. Dit betekent dat het schaalt van Python-ontwikkelaars die toepassingen schrijven, tot prestatie-ingenieurs die hoge prestatiecode implementeren, tot hardware-ingenieurs die zeer lage niveau systeemcode voor hun unieke hardware schrijven.
Referenties 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 heel vertrouwd aanvoelen voor elke Python-programmeur, 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. Vervolgens kun je langzaam je code aanpassen en niet-presterende delen vervangen door Mojo’s lage-niveau-functies om expliciet geheugen te beheren, typen toe te voegen, autotuning te gebruiken en veel andere aspecten om de prestaties van C of beter te krijgen! We denken dat Mojo je het beste van beide werelden biedt en dat je niet hoeft te schrijven en herschrijven van je algoritmes in meerdere talen. We waarderen Python++ als een enorm doel, en het zal een meerjarige onderneming 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 slechts éé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 prestatiespelletjes niet wat taaladoptie aandrijven (ondanks dat ze leuk zijn!) – het is ontwikkelaarssnelheid, taalgebruik, hoge kwaliteit toolketens & documentatie, en een gemeenschap die de infrastructuur gebruikt om te ontdekken en te bouwen op manieren die we ons niet eens kunnen voorstellen. We zijn toolbouwers, en ons doel is om de wereld in staat te stellen 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, bruikbare, statisch getypeerde en portable taal te hebben die naadloos integreert met je bestaande Python-code – je het beste van beide werelden biedt. 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 in staat stellen 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 ecosysteem en de gemeenschappen die zich daaromheen vormen. We hebben langdurig met open-source-gemeenschappen gewerkt, en we zijn ongelooflijk zorgvuldig in het op de juiste manier engageren en ervoor zorgen dat we het goed doen voor de gemeenschap. We werken ongelooflijk hard om onze infrastructuur te verschepen, maar we 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 zoeken niet naar het breken ervan zoals veel andere projecten. Interoperabiliteit maakt het voor de gemeenschap gemakkelijker om onze infrastructuur te proberen, zonder dat ze al hun code opnieuw moeten schrijven, en dat telt veel voor AI.
Ook hebben we 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 doel, en het gevolg is een enorm gefragmenteerd AI-implementatie-industrie met tientallen toolketens die verschillende trade-offs en beperkingen hebben. Deze ontwerppatronen hebben het tempo van innovatie vertraagd door minder bruikbaar, minder portabel en moeilijker te schalen te zijn.
Het volgende-generatie AI-systeem moet productiekwaliteit hebben en ontwikkelaars ontmoeten waar ze zijn. Het mag niet een dure herschrijving, herarchitectuur of herschrijving 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 bruikbaarheid. 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 verdiend, 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 te laten groeien, de beste mensen in AI-infrastructuur in te huren 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 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 van software en hardware houdt, en die wil helpen AI de wereld op een positieve manier te laten doordringen – 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 “idee” van 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 te worden waargenomen. Technologie is altijd een grote productiviteitsverhoging voor de samenleving geweest, en door programmeren toegankelijker en bruikbaarder te maken, kunnen we meer mensen in staat stellen het te omarmen. Ontwikkelaars in staat stellen om herhaalde processen te automatiseren en hun leven eenvoudiger 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 ongelooflijke gemeenschap – maar het heeft ook beperkingen. Ik geloof dat we een enorme kans hebben om het nog krachtiger te maken en om meer mensen aan te moedigen de schoonheid en eenvoud ervan te omarmen. Zoals ik eerder zei, is het over het bouwen van producten met progressieve complexiteitsdisclosure – het mogelijk maken van hoge-niveau-abstraheringen, maar ook het schalen naar extreem lage niveaus. We zien al een significante sprong met AI-modellen die progressieve tekst-naar-code-vertalingen mogelijk maken – en deze zullen alleen maar meer gepersonaliseerd worden in de tijd – maar achter deze magische innovatie is 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 de ecosysteem-apertuur nog verder zal openen, om meer toegankelijkheid, schaalbaarheid en hardware-portabiliteit voor nog meer ontwikkelaars over de hele wereld te bieden.
Tot slot, AI zal ons leven op onverklaarbare manieren binnendringen, en het zal overal bestaan – dus ik hoop dat Mojo ontwikkelaars in staat stelt om te gaan en de belangrijkste problemen voor de mensheid sneller op te lossen – ongeacht waar ze in onze wereld wonen. Ik denk dat dat een toekomst is die het waard is om voor te vechten.
Bedankt voor het geweldige interview, lezers die meer willen leren, moeten Modular bezoeken.












