AI-modeller och plattformar
Tim Davis, medgrundare och VD för Modular – Intervjuserie

Tim Davis är medgrundare och VD för Modular, ett integrerat, sammansatt paket med verktyg som förenklar din AI-infrastruktur så att ditt team kan utveckla, distribuera och innovativa snabbare. Modular är mest känd för att ha utvecklat Mojo, ett nytt programmeringsspråk som broar gapet mellan forskning och produktion genom att kombinera det bästa av Python med system och metaprogrammering.
Upprepad entreprenör och produktledare. Tim hjälpte till att bygga, hitta och skala stora delar av Googles AI-infrastruktur på Google Brain (GOOGL ) och Core Systems från API:er (TensorFlow), kompilatorer (XLA & MLIR) och körningar för server (CPU/GPU/TPU) och TF Lite (Mobil/Mikro/Web), Android ML & NNAPI, stor modellinfrastruktur & OSS för miljarder användare och enheter. Älskar att springa, bygga och skala produkter för att hjälpa människor, och världen.
När upptäckte du kodning första gången, och vad drog dig till det?
Som en ung pojke som växte upp i Australien, tog min pappa hem en Commodore 64C och spel var det som fick mig att fastna – Boulder Dash, Maniac Mansion, Double Dragon – vad en tid att leva. Den datorn introducerade mig till BASIC och att hacka runt med det var min första riktiga introduktion till programmering. Saker blev mer intensiva genom högskolan och universitetet där jag använde mer traditionella statiska språk för ingenjörs kurser, och över tiden experimenterade jag även med Javascript och VBA, innan jag slutligen fastnade för Python för den överväldigande majoriteten av programmering som språket för data science och AI. Jag skrev en massa kod i mina tidigare startups men dessa dagar använder jag naturligtvis Mojo och verktygskedjan vi har skapat runt det.
För över 5 år arbetade du på Google som Senior Product Manager och Group Product Leader, där du hjälpte till att skala stora delar av Googles AI-infrastruktur på Google Brain. Vad lärde du dig av den erfarenheten?
Människor är vad bygger världsförändrande teknologier och produkter, och det är en dedikerad grupp människor bundna av en större vision som för dem till världen. Google är ett fantastiskt företag, med underbara människor, och jag var lycklig att träffa och arbeta med många av de ljusaste hjärnorna inom AI för många år sedan när jag flyttade för att ansluta till Brain-teamet. De största lektionerna jag lärde mig var att alltid fokusera på användaren och progressivt avslöja komplexitet, för att ge användarna möjlighet att berätta sina unika historier till världen, som att fixa Stora Barriärrevet eller hjälpa människor som Jason Trummisen, och att locka och samla en mångfaldig blandning av människor för att driva mot ett gemensamt mål. I ett enormt företag med mycket smarta och begåvade människor, är detta mycket svårare än man kan föreställa sig. När jag ser tillbaka på min tid där, är det alltid människorna jag arbetade med som är verkligen minnesvärda. Jag kommer alltid att se tillbaka med värme och uppskattning att många människor tog risker på mig, och jag är enormt tacksam att de gjorde det, eftersom många av dessa risker uppmuntrade mig att bli en bättre ledare och person, att dyka djupt och verkligen förstå AI-system. Det gjorde mig verkligen förstå den djupa kraften AI har att påverka världen, och detta var den verkliga anledningen till att jag hade inspirationen och modet att lämna och medgrundade Modular.
Kan du dela historien bakom Modular?
Chris och jag möttes på Google och skickade många inflytelserika teknologier som har haft en betydande inverkan på AI-världen idag. Men vi kände att AI hölls tillbaka av alltför komplex och fragmenterad infrastruktur som vi bevittnade förstahands när vi distribuerade stora arbetsbelastningar till miljarder användare. Vi motiverades av en önskan att accelerera AI:s inverkan på världen genom att lyfta branschen mot produktionskvalitets AI-programvara, så att vi som en global samhälle kan ha en större inverkan på hur vi lever. Man kan inte hjälpa att undra hur många problem AI kan hjälpa till att lösa, hur många sjukdomar botas, hur mycket mer produktiva vi kan bli som art, för att ytterligare vår existens för framtida generationer, genom att öka AI-teknikens penetrationsgrad.
Efter att ha arbetat tillsammans i år på storskalig kritisk AI-infrastruktur – såg vi den enorma utvecklarbesväret förstahands – “varför kan saker och ting inte bara fungera”? För att världen ska anta och upptäcka AI:s enorma transformerande natur, behöver vi programvara och utvecklarinfrastruktur som skalar från forskning till produktion och är högt tillgänglig. Detta kommer att möjliggöra för oss att låsa upp den nästa generationens vetenskapliga upptäckter – av vilka AI kommer att vara avgörande – och är en stor ingenjörsutmaning. Med denna motiverande bakgrund utvecklade vi en inbyggd tro att vi kunde sätta oss för att bygga en ny tillvägagångssätt för AI-infrastruktur och ge utvecklare överallt möjlighet att använda AI för att hjälpa till att göra världen till en bättre plats. Vi är också mycket lyckliga att ha många människor som ansluter sig till oss på denna resa, och vi har världens bästa AI-infrastrukturteam som ett resultat.
Kan du diskutera hur Mojo-programmeringsspråket initialt byggdes för ditt eget team?
Modulars vision är att möjliggöra AI för alla, överallt. Allt vi gör på Modular är fokuserat på det målet, och vi går bakåt från det i den väg vi bygger ut våra produkter och vår teknik. I detta ljus är vår egen utvecklarhastighet det som betyder mest för oss först, och eftersom vi har byggt så mycket av den befintliga AI-infrastrukturen för världen – behövde vi noga överväga vad som skulle möjliggöra för vårt team att flytta snabbare. Vi har levt igenom det två-världsspråksproblemet i AI – där forskare bor i Python, och produktion och hårdvaruutvecklare bor i C++ – och vi hade inget annat val än att antingen gå ner den vägen, eller tänka om tillvägagångssättet helt. Vi valde det senare. Det fanns ett tydligt behov av att lösa detta problem, men många olika sätt att lösa det – vi angrep det med vår starka tro på att möta ekosystemet där det är idag, och möjliggöra en enklare lyft in i framtiden. Vårt team bär ärr av programvarumigration i stor skala, och vi ville inte upprepa det. Vi förstod också att det inte finns något språk idag, enligt vår mening, som kan lösa alla utmaningar vi försöker lösa för AI, så vi genomförde en första princip-ansats, och Mojo föddes.
Hur möjliggör Mojo en sömlös skalning och portabilitet över många typer av hårdvara?
Chris, jag själv och vårt team på Google (många på Modular) hjälpte till att föra MLIR in i världen för många år sedan – med målet att hjälpa den globala gemenskapen att lösa riktiga utmaningar genom att aktivera AI-modeller att representeras och köras på alla typer av hårdvara. MLIR är en ny typ av öppen källkods-kompilator-infrastruktur som har antagits i stor skala och blir snabbt den nya standarden för att bygga kompilatorer genom LLVM. Med tanke på vårt teams historia i att skapa denna infrastruktur, är det naturligt att vi använder den tungt på Modular och detta utgör vår toppmoderna tillvägagångssätt för att utveckla ny AI-infrastruktur för världen. Kritiskt, medan MLIR nu snabbt antas, är Mojo det första språket som verkligen tar MLIR:s kraft och exponerar den för utvecklare på ett unikt och tillgängligt sätt. Detta innebär att det skalar från Python-utvecklare som skriver applikationer, till prestandaingenjörer som distribuerar högpresterande kod, till hårdvaruutvecklare som skriver lågnivåsystemkod för sin unika hårdvara.
Referenser till Mojo hävdar att det i princip är Python++, med tillgängligheten hos Python och den höga prestandan hos C. Är detta en grov förenkling? Hur skulle du beskriva det?
Mojo ska kännas mycket bekant för alla Python-programmerare, eftersom det delar Pythons syntax. Men det finns några viktiga skillnader som du kommer att se när du portar ett enkelt Python-program till Mojo, inklusive att det bara fungerar direkt. En av våra kärnmål för Mojo är att tillhandahålla en superset av Python – det vill säga, att göra Mojo kompatibelt med befintliga Python-program – och att omfamna CPython-implementationen för långsvans-ekosystemstöd. Sedan kan du långsamt förbättra din kod och ersätta icke-presterande delar med Mojos lägre nivåfunktioner för att explicit hantera minne, lägga till typer, använda autotuning och många andra aspekter för att få prestandan hos C eller bättre! Vi tycker att Mojo ger dig det bästa av båda världar och du behöver inte skriva och skriva om dina algoritmer i flera språk. Vi uppskattar att Python++ är ett enormt mål, och det kommer att vara ett flerårigt företag, men vi är engagerade i att göra det till verklighet och möjliggöra för vår legendariska gemenskap av mer än 140 000 utvecklare att hjälpa oss bygga framtiden tillsammans.
I en nylig keynote visades det att Mojo är 35 000 gånger snabbare än Python, hur beräknades den hastigheten?
Det är faktiskt 68 000 gånger nu! Men låt oss erkänna att det bara är ett enda program i Mandelbrot – du kan gå och läsa en serie med tre blogginlägg om hur vi uppnådde detta – här, här och här. Naturligtvis har vi gjort detta under en lång tid och vi vet att prestandaspel inte är vad som driver språkantagande (trots att de är roliga!) – det är utvecklarhastighet, språkanvändbarhet, högkvalitativa verktygskedjor och dokumentation, och en gemenskap som använder infrastrukturen för att uppfinna och bygga på sätt som vi inte ens kan föreställa oss. Vi är verktygsbyggare, och vårt mål är att möjliggöra för världen att använda våra verktyg, för att skapa fantastiska produkter och lösa viktiga problem. Om vi fokuserar på vårt större mål, är det faktiskt att skapa ett språk som möter dig där du är idag och sedan lyfter dig enkelt till en bättre värld. Mojo möjliggör för dig att ha ett högpresterande, användbart, statiskt typat och portabelt språk som sömlöst integrerar med din befintliga Python-kod – ger dig det bästa av båda världar. Det möjliggör för dig att förverkliga den sanna kraften hos hårdvaran med multitrådning och parallellisering på sätt som ren Python idag inte kan – låser upp den globala utvecklargemenskapen för att ha ett enda språk som skalar från topp till botten.
Mojo:s magi är dess förmåga att förena programmeringsspråk med ett set verktyg, varför är detta så viktigt?
Språk lyckas alltid med kraften av sina ekosystem och de gemenskaper som formas runt dem. Vi har arbetat med öppen källkods-gemenskaper under en lång tid, och vi är otroligt tänkbara mot att engagera oss på rätt sätt och säkerställa att vi gör rätt av gemenskapen. Vi arbetar otroligt hårt för att leverera vår infrastruktur, men behöver tid för att skala ut vårt team – så vi kommer inte att ha alla svar direkt, men vi kommer dit. Steg tillbaka, vårt mål är att lyfta Python-ekosystemet genom att omfamna hela befintliga ekosystemet, och vi söker inte att spräcka det som så många andra projekt. Kompatibilitet gör det bara enklare för gemenskapen att prova vår infrastruktur, utan att behöva skriva om all sin kod, och det betyder mycket för AI.
Och vi har lärt oss så mycket från utvecklingen av AI-infrastruktur och verktyg under de senaste tio åren. De befintliga monolitiska systemen är inte lätt extensibla eller generaliserbara utanför deras ursprungliga målområde, och följden är en enormt fragmenterad AI-distributionsindustri med dussintals verktygskedjor som bär olika kompromisser och begränsningar. Dessa designmönster har bromsat innovations takten genom att vara mindre användbara, mindre portabla och svårare att skala.
Nästa generations AI-system måste vara produktionskvalitets och möta utvecklare där de är. Det måste inte kräva en dyr om skrivning, om arkitektur eller om basering av användarkod. Det måste vara infödt multiframework, multmoln och multihårdvara. Det behöver kombinera den bästa prestandan och effektiviteten med den bästa användbarheten. Detta är det enda sättet att minska fragmentering och låsa upp nästa generations hårdvara, data och algoritmiska innovationer.
Modular nyligen meddelade att de höjt 100 miljoner dollar i ny finansiering, ledd av General Catalyst och fylld av befintliga investerare GV (Google Ventures), SV Angel, Greylock och Factory. Vad kan vi förvänta oss härnäst?
Denna nya kapital kommer främst att användas för att växa vårt team, anställa de bästa människorna inom AI-infrastruktur, och fortsätta att möta den enorma kommersiella efterfrågan som vi ser för vår plattform. Modverse, vår gemenskap med över 130 000 utvecklare och 10 000 företag, söker alla vår infrastruktur – så vi vill säkerställa att vi fortsätter att skala och arbeta hårt för att utveckla den för dem, och leverera den till dem. Vi håller oss till en otroligt hög standard, och de produkter vi levererar är en reflektion av vem vi är som ett team, och vem vi blir som ett företag. Om du känner någon som är driven, som älskar gränsen mellan programvara och hårdvara, och som vill hjälpa till att se till att AI tränger in i världen på ett meningsfullt och positivt sätt – skicka dem vår väg.
Vad är din vision för programmeringens framtid?
Programmering bör vara en färdighet som alla i samhället kan utveckla och använda. För många, är “idén” om programmering omedelbart en bild av en utvecklare som skriver ut komplex lågnivåkod som kräver tung matematik och logik – men det behöver inte uppfattas på det sättet. Teknologi har alltid varit en stor produktivitetsförbättrare för samhället, och genom att göra programmering mer tillgänglig och användbar, kan vi ge fler människor möjlighet att omfamna det. Att ge människor möjlighet att automatisera repetitiva processer och göra deras liv enklare är ett kraftfullt sätt att ge människor mer tid tillbaka.
Och i Python, har vi redan ett underbart språk som har stått provet av tiden – det är världens mest populära språk, med en otrolig gemenskap – men det har också begränsningar. Jag tror att vi har en enorm möjlighet att göra det ännu kraftfullare, och att uppmuntra fler i världen att omfamna dess skönhet och enkelhet. Som jag sa tidigare, handlar det om att bygga produkter som har en progressiv avslöjande av komplexitet – möjliggöra högnivåabstraktioner, men skala till otroligt låga nivåer också. Vi bevittnar redan ett betydande språng med AI-modeller som möjliggör progressiv text-till-kod-översättning – och dessa kommer bara att bli mer personliga över tiden – men bakom denna magiska innovation är fortfarande en utvecklare som skriver och distribuerar kod för att driva det. Vi har skrivit om detta tidigare – AI kommer att fortsätta att låsa upp kreativitet och produktivitet över många programmeringsspråk, men jag tror också att Mojo kommer att öppna ekosystem-aperturen ännu mer, möjliggöra mer tillgänglighet, skalbarhet och hårdvaruportabilitet för många fler utvecklare över hela världen.
Till slut, AI kommer att tränga in i våra liv på outtalbara sätt, och det kommer att finnas överallt – så jag hoppas att Mojo katalyserar utvecklare att gå och lösa de viktigaste problemen för mänskligheten snabbare – oavsett var de bor i vår värld. Jag tycker att det är en framtid som är värd att kämpa för.
Tack för den underbara intervjun, läsare som vill lära sig mer bör besöka Modular.












