Umělá inteligence
Tim Davis, spoluzakladatel a prezident Modular – Interview Series

Tim Davis je spoluzakladatel a prezident Modular, integrované, komponovatelné sady nástrojů, které zjednodušují vaši AI infrastrukturu, aby váš tým mohl vyvíjet, nasazovat a inovovat rychleji. Modular je nejznámější díky vývoji Mojo, nového programovacího jazyka, který mostí mezeru mezi výzkumem a produkcí kombinací nejlepších vlastností Pythonu se systémy a metaprogramováním.
Opakovaný podnikatel a produktový líder. Tim pomáhal budovat, zakládat a škálovat velké části AI infrastruktury Google v Google Brain a Core Systems od API (TensorFlow), kompilátorů (XLA & MLIR) a runtime pro server (CPU/GPU/TPU) a TF Lite (Mobile/Micro/Web), Android ML & NNAPI, velké modelové infrastruktury & OSS pro miliardy uživatelů a zařízení. Má rád běh, budování a škálování produktů, aby pomohl lidem, a světu.
Kdy jste poprvé objevil kódování, a co vás k němu přitáhlo?
Jako dítě, které vyrostlo v Austrálii, můj otec přinesl domů Commodore 64C a hraní her mě dostalo – Boulder Dash, Maniac Mansion, Double Dragon – jaké to bylo skvělé období. Tento počítač mě seznámil s BASIC a hraní si s ním bylo mé první skutečné seznámení s programováním. Věci se staly intenzivnějšími během střední školy a univerzity, kde jsem používal více tradiční statické jazyky pro inženýrské kurzy, a postupně jsem se dostal až k Javascriptu a VBA, než jsem se usadil na Pythonu jako na jazyku datové vědy a AI. Napsal jsem spoustu kódu ve svých dřívějších startupech, ale dneska samozřejmě využívám Mojo a nástrojový řetězec, který jsme kolem něj vytvořili.
Přes 5 let jste pracoval v Google jako Senior Product Manager a Group Product Leader, kde jste pomáhal škálovat velké části AI infrastruktury Google v Google Brain. Co jste se z této zkušenosti naučil?
Lidé jsou ti, kteří budují svět měnící technologie a produkty, a je to oddaná skupina lidí spojená větší vizi, která je přináší světu. Google je úžasná společnost s úžasnými lidmi, a měl jsem štěstí, že jsem potkal a pracoval s mnoha z nejchytřejších myslí v AI před lety, když jsem se přestěhoval, aby se připojil k týmu Brain. Největší lekce, které jsem se naučil, byly vždy se zaměřovat na uživatele a postupně odhalovat složitost, aby uživatelé mohli vyprávět své jedinečné příběhy světu, jako je oprava Velké bariérové řífe nebo pomoc lidem jako Jason the Drummer, a přilákat a shromáždit rozmanitou směs lidí, aby se pohybovali směrem k společnému cíli. V obrovské společnosti velmi chytrých a talentovaných lidí je to mnohem těžší, než si můžete představit. Když se ohlédnu zpět na svou dobu tam, je to vždy lidé, se kterými jste pracovali, kteří jsou skutečně zapamatovatelní. Budu vždy vzpomínat s úctou a jsem enormně vděčný, že mnoho lidí riskovalo se mnou, a jsem enormně vděčný, že mnoho lidí riskovalo se mnou, a mnoho z těchto rizik mě povzbudilo, abych byl lepším lídrem a člověkem, aby se ponořil hluboko a skutečně pochopil AI systémy. To mi skutečně ukázalo, jakou hlubokou moc AI má na svět, a to byla ta samá příčina, proč jsem měl inspiraci a odvahu odejít a spoluzakládat Modular.
Můžete sdílet příběh o vzniku Modular?
Chris a já se seznámili v Google a dodali mnoho vlivných technologií, které měly významný dopad na svět AI dnes. Ale cítili jsme, že AI je brzděno příliš složitou a fragmentovanou infrastrukturou, kterou jsme svědky při nasazování velkých zátěží pro miliardy uživatelů. Byli jsme motivováni touhou urychlit dopad AI na svět tím, že zvedneme průmysl směrem k produkční kvalitě AI softwaru, aby jsme jako globální společnost mohli mít větší dopad na to, jak žijeme. Nemůžete než se divit, kolik problémů může AI pomoci vyřešit, kolik nemocí vyléčit, kolik více produktivních můžeme být jako druh, abychom dále existovali pro budoucí generace, zvýšením penetrace této úžasné technologie.
Pracovali jsme spolu po mnoho let na velkém měřítku kritické AI infrastruktury – viděli jsme enormní bolest vývojářů přímo – „proč nemohou věci prostě fungovat?“ Pro svět, aby přijal a objevil enormní transformační povahu AI, potřebujeme software a vývojářskou infrastrukturu, která škáluje od výzkumu do produkce, a je vysoce přístupná. To nám umožní odemknout další cestu vědeckých objevů – z nichž AI bude kritická – a je velkým inženýrským výzvou. S touto motivující historií jsme vyvinuli intrinsickou víru, že můžeme vyjít a postavit nový přístup pro AI infrastrukturu, a povzbudit vývojáře všude, aby používali AI, aby pomohli udělat svět lepším místem. Jsme také velmi štěstí, že máme mnoho lidí, kteří se k nám připojují na této cestě, a máme nejlepší AI infrastrukturní tým na světě.
Můžete diskutovat, jak byl programovací jazyk Mojo původně postaven pro váš vlastní tým?
Vize Modular je umožnit AI používat kdokoli, kdekoli. Vše, co děláme v Modular, je zaměřeno na tento cíl, a jdeme zpět od něj, jak stavíme naše produkty a technologii. V tomto světle je naší vlastní vývojářská rychlost tím, co nás zajímá nejprve, a jelikož jsme postavili tolik stávající AI infrastruktury pro svět – potřebovali jsme pečlivě zvážit, co by umožnilo našemu týmu pohybovat se rychleji. Prožili jsme dvou-světový jazykový problém v AI – kde výzkumníci žijí v Pythonu, a produkční a hardwaroví inženýři žijí v C++ – a neměli jsme na výběr, než buď jít touto cestou, nebo úplně předefinovat přístup. Zvolili jsme poslední. Byla zde jasná potřeba vyřešit tento problém, ale mnohem různých způsobů, jak ho vyřešit – přistupovali jsme k němu s naší silnou vírou ve setkání s ekosystémem, kde je dnes, a umožnění jednoduchého zvednutí do budoucnosti. Náš tým nese jizvy softwarové migrace ve velkém měřítku, a nechtěli jsme opakovat to. Také jsme si uvědomili, že není žádný jazyk dnes, podle našeho názoru, který by mohl vyřešit všechny výzvy, které se snažíme vyřešit pro AI, a proto jsme se uchýlili k prvnímu principu přístupu, a Mojo se narodil.
Jak Mojo umožňuje bezproblémové škálování a přenositelnost napříč mnoha typy hardwaru?
Chris, já a náš tým v Google (mnozí v Modular) pomohli přivést MLIR do světa před lety – s cílem pomoci globální komunitě vyřešit skutečné výzvy tím, že umožní AI modelům být konzistentně reprezentovány a spuštěny na jakémkoli hardwaru. MLIR je nový typ open-source kompilátorové infrastruktury, která byla přijata ve velkém měřítku, a rychle se stává novým standardem pro stavbu kompilátorů prostřednictvím LLVM. Vzhledem k historii našeho týmu při vytváření této infrastruktury je přirozené, že ji využíváme silně v Modular a tato podpora našeho státního uměleckého přístupu ve vývoji nové AI infrastruktury pro svět. Kriticky, zatímco MLIR je nyní rychle přijímán, Mojo je prvním jazykem, který skutečně využívá sílu MLIR a odhaluje ji vývojářům jedinečným a přístupným způsobem. To znamená, že škáluje od Python vývojářů, kteří píší aplikace, po performance inženýrů, kteří nasazují vysoce výkonný kód, po hardwarové inženýry, kteří píší velmi nízkoúrovňový systémový kód pro jejich jedinečný hardware.
Reference k Mojo tvrdí, že je to vlastně Python++, s přístupností Pythonu a vysokým výkonem C. Je to hrubé zjednodušení? Jak byste to popsal?
Mojo by mělo vypadat velmi podobně pro každého Python programátora, protože sdílí syntaxi Pythonu. Ale jsou zde beberapa důležitých rozdílů, které uvidíte, když portujete jednoduchý Python program do Mojo, včetně toho, že to prostě funguje přímo z krabice. Jedním z našich hlavních cílů pro Mojo je poskytnout nadmnožinu Pythonu – to znamená, aby Mojo byl kompatibilní s existujícími Python programy – a aby přijal CPython implementaci pro podporu dlouhého ocasu ekosystému. Pak vám umožníte pomalu doplňovat váš kód a nahradit nefungující části funkcemi Mojo s explicitním řízením paměti, přidáním typů, využitím autotuning a mnoha dalších aspektů, aby jste získali výkon C nebo lepší! Cítíme, že Mojo vám dává nejlepší z obou světů a nemusíte psát a přepisovat vaše algoritmy v několika jazycích. Oceňujeme, že Python++ je enormní cíl, a bude to mnoholeté úsilí, ale jsme zavázáni k tomu, aby se to stalo realitou a aby naše legendární komunita více než 140K+ vývojářů pomohla budovat budoucnost společně.
V recentní keynote bylo ukázáno, že Mojo je 35 000x rychlejší než Python, jak byla tato rychlost vypočtena?
Je to vlastně 68 000x teď! Ale uznáváme, že je to jen jeden program v Mandelbrot – můžete jít a přečíst sérii tří blogových příspěvků o tom, jak jsme toho dosáhli – zde, zde a zde. Samozřejmě, že jsme to dělali dlouho a víme, že hry s výkonem nejsou tím, co pohání přijetí jazyka (přes to, že jsou zábavné!) – je to vývojářská rychlost, použitelnost jazyka, vysoká kvalita nástrojových řetězců a dokumentace, a komunita, která využívá infrastruktury, aby vynalezla a postavila způsoby, které nemůžeme ani představit. Jsme stavitelé nástrojů, a náš cíl je povzbudit svět, aby používal naše nástroje, aby vytvořil úžasné produkty a vyřešil důležité problémy. Pokud se soustředíme na náš větší cíl, je to vlastně vytvořit jazyk, který se setká s vámi tam, kde jste dnes, a pak vás zvedne snadno do lepšího světa. Mojo umožňuje vám mít vysoce výkonný, použitelný, staticky typovaný a přenositelný jazyk, který bezproblémově integruje s vaším stávajícím Python kódem – dává vám nejlepší z obou světů. Umožňuje vám realizovat skutečnou sílu hardwaru s multithreadingem a paralelizací způsoby, které raw Python dnes nemůže – odemykání globální vývojářské komunity, aby měla jediný jazyk, který škáluje od shora dolů.
Mojoova magie spočívá v jeho schopnosti sjednotit programovací jazyky s jedním sadou nástrojů, proč je to tak důležité?
Jazyky vždy uspějí silou svých ekosystémů a komunit, které se kolem nich formují. Pracovali jsme s open-source komunitami po dlouhou dobu, a jsme enormně uvážliví při zapojování se správným způsobem a zajišťování, že děláme správnou věc pro komunitu. Pracujeme enormně tvrdě, aby jsme dodali naší infrastrukturu, ale potřebujeme čas, aby jsme škálovali náš tým – takže nebudeme mít všechny odpovědi okamžitě, ale dostaneme se tam. Krok zpět, náš cíl je zvednout Python ekosystém přijetím celého stávajícího ekosystému, a nebudeme se snažit rozdělit ho, jako tolik jiných projektů. Přenositelnost prostě dělá to snazší pro komunitu, aby vyzkoušela naší infrastrukturu, bez nutnosti přepisovat všechen jejich kód, a to záleží hodně pro AI.
Také jsme se naučili tolik z vývoje AI infrastruktury a nástrojů za posledních deset let. Stávající monolitické systémy nejsou snadno rozšiřitelné nebo generalizovatelné mimo jejich původní cíl a důsledkem je enormně fragmentovaná AI nasazovací průmysl s desítkami nástrojových řetězců, které nesou různé kompromisy a omezení. Tyto designové vzory zpomalily tempo inovací tím, že jsou méně použitelné, méně přenositelné a těžší škálovat.
Další generace AI systému musí být produkční kvality a setkat se s vývojáři tam, kde jsou. Nemusí vyžadovat drahý přepis, re-architekturu nebo re-bázi uživatelského kódu. Musí být nativně multi-framework, multi-cloud a multi-hardware. Musí kombinovat nejlepší výkon a efektivitu s nejlepší použitelností. To je jediný způsob, jak snížit fragmentaci a odemknout další generaci hardwaru, dat a algoritmických inovací.
Modular nedávno ohlasilo zvýšení 100 milionů dolarů v novém financování, vedené General Catalyst a doplněné stávajícími investory GV (Google Ventures), SV Angel, Greylock a Factory. Co bychom měli očekávat dál?
Toto nové kapitál bude primárně použito pro růst našeho týmu, najímání nejlepších lidí v AI infrastruktuře, a pokračování v setkávání enormního komerčního požadavku, který vidíme pro naši platformu. Modverse, naše komunita více než 130K+ vývojářů a 10 000 podniků, všechny hledají naší infrastrukturu – takže chceme se ujistit, že budeme pokračovat ve škálování a tvrdé práci na vývoji pro ně, a dodání jim. Držíme se enormně vysoké standardy, a produkty, které dodáváme, jsou odrazem toho, kým jsme jako tým, a kým se stáváme jako společnost. Pokud znáte někoho, kdo je poháněn, kdo miluje hranici softwaru a hardwaru, a kdo chce pomoci vidět AI proniknout světem smysluplným a pozitivním způsobem – pošlete je naší cestou.
Co je vaše vize pro budoucnost programování?
Programování by mělo být dovedností, kterou může vyvinout a využít kdokoli ve společnosti. Pro mnoho lidí „nápad“ programování okamžitě vyvolává obraz vývojáře, který píše komplexní nízkoúrovňový kód, který vyžaduje těžkou matematiku a logiku – ale nemusí to být vnímáno tímto způsobem. Technologie vždy byla velkým produktivním enablerem pro společnost, a děláním programování více přístupným a použitelným, můžeme povzbudit více lidí, aby ho přijali. Povzbuzení lidí, aby automatizovali opakující se procesy a dělali jejich životy jednodušší, je silným způsobem, jak dát lidem více času zpět.
A v Pythonu už máme úžasný jazyk, který stál test času – je to nejpopulárnější jazyk na světě, s úžasnou komunitou – ale také má omezení. Věřím, že máme enormní příležitost, aby se stal ještě silnějším, a aby povzbudil více světa, aby přijal jeho krásu a jednoduchost. Jako jsem řekl dříve, je to o budování produktů, které mají progresivní odhalení složitosti – umožňující vysoké úrovně abstrakce, ale škálování na enormně nízké úrovně také. Už jsme svědky významného skoku s AI modely, které umožňují progresivní text-to-kód překlady – a tyto budou pouze více personalizované s časem – ale za touto magickou inovací je stále vývojář, který autorizuje a nasazuje kód, aby ho poháněl. Napsali jsme o tom v minulosti – AI bude pokračovat v odemykání kreativity a produktivity napříč mnoha programovacími jazyky, ale také věřím, že Mojo otevře ekosystémový apertur ještě dále, povzbuzující více přístupnosti, škálovatelnosti a hardwarové přenositelnosti pro více vývojářů po celém světě.
Na závěr, AI pronikne našim životům nepovědomými způsoby, a bude existovat všude – takže doufám, že Mojo katalyzuje vývojáře, aby šli a vyřešili nejimportnější problémy pro lidstvo rychleji – bez ohledu na to, kde žijí ve нашем světě. Věřím, že je to budoucnost, za kterou stojí za to bojovat.
Děkuji za skvělý rozhovor, čtenáři, kteří chtějí se dozvědět více, by měli navštívit Modular.
