Umjetna inteligencija
Tim Davis, suosnivač i predsjednik Modularne serije intervjua

Tim Davis, suosnivač je i predsjednik Modularni, integrirani skup alata koji se može sastaviti i koji pojednostavljuje vašu AI infrastrukturu tako da vaš tim može brže razvijati, implementirati i inovirati. Modular je najpoznatiji po razvoju Mojo, novi programski jezik koji premošćuje jaz između istraživanja i proizvodnje kombinirajući najbolje od Pythona sa sustavima i metaprogramiranjem.
Ponovi poduzetnik i voditelj proizvoda. Tim je pomogao u izgradnji, osnivanju i skaliranju velikih dijelova Googleove AI infrastrukture u Google mozak i temeljni sustavi iz API-ja (TensorFlow), prevoditelji (XLA & MLIR) i vremena izvođenja za poslužitelj (CPU/GPU/TPU) i TF Lite (mobilno/mikro/web), Android ML & NNAPI, veliki model infrastrukture i OSS za milijarde korisnika i uređaja. Voli trčanje, izgradnju i skaliranje proizvoda na pomoći ljudimai svijet.
Kada ste prvi put otkrili kodiranje i što vas je privuklo?
Dok sam bio klinac koji je odrastao u Australiji, moj je tata donio kući Commodore 64C i igre su bile ono što me zakačilo – Boulder Dash, Maniac Mansion, Double Dragon – kakvo je vrijeme biti živ. To me računalo upoznalo s BASIC-om i hakiranje s njim bilo je moje prvo pravo upoznavanje s programiranjem. Stvari su postale intenzivnije kroz srednju školu i sveučilište gdje sam koristio tradicionalnije statične jezike za inženjerske tečajeve, a s vremenom sam se čak okušao sve do Javascripta i VBA, prije nego što sam se odlučio za Python za veliku većinu programiranja kao jezik podataka znanost i AI. Napisao sam hrpu koda u svojim ranijim startupima, ali ovih dana, naravno, koristim Mojo i lanac alata koji smo stvorili oko njega.
Više od 5 godina radili ste u Googleu kao viši voditelj proizvoda i voditelj grupe proizvoda, gdje ste pomogli u skaliranju velikih dijelova Googleove AI infrastrukture u Google Brainu. Što ste naučili iz tog iskustva?
Ljudi su ti koji grade tehnologije i proizvode koji mijenjaju svijet, a u svijet ih dovodi predana grupa ljudi vezana većom vizijom. Google je nevjerojatna tvrtka, s nevjerojatnim ljudima, a ja sam imao sreću upoznati i raditi s mnogima od najbistrijih umova AI-ja prije mnogo godina kada sam se pridružio timu Brain. Najveće lekcije koje sam naučio bile su uvijek usredotočiti se na korisnika i postupno otkrivati složenost, osnažiti korisnike da ispričaju svoje jedinstvene priče svijetu poput popravljanja Veliki koraljni greben ili pomaganje ljudima poput Jason bubnjar, te privući i okupiti raznoliku mješavinu ljudi za vožnju prema zajedničkom cilju. U ogromnom društvu vrlo pametnih i talentiranih ljudi, ovo je mnogo teže nego što možete zamisliti. Osvrćući se na moje vrijeme tamo, uvijek su ljudi s kojima ste radili zaista nezaboravni. Uvijek ću se rado osvrtati na prošlost i cijeniti to što su mnogi ljudi riskirali zbog mene, i neizmjerno sam im zahvalan jer su me mnogi od tih rizika potaknuli da budem bolji vođa i osoba, da duboko zaronim i istinski razumijem AI sustave. To me doista natjeralo da shvatim veliku snagu umjetne inteligencije za utjecaj na svijet, i to je bio razlog zašto sam imao inspiraciju i hrabrost da odem i suosnivam Modular.
Možete li podijeliti priču o nastanku iza Modulara?
Chris i ja smo se upoznali u Googleu i isporučili mnoge utjecajne tehnologije koje su značajno utjecale na današnji svijet umjetne inteligencije. Međutim, smatrali smo da umjetnu inteligenciju koči pretjerano složena i fragmentirana infrastruktura kojoj smo iz prve ruke svjedočili primjenom velikih radnih opterećenja na milijarde korisnika. Bili smo motivirani željom da ubrzamo utjecaj umjetne inteligencije na svijet podizanjem industrije prema softveru umjetne inteligencije proizvodne kvalitete kako bismo mi, kao globalno društvo, mogli imati veći utjecaj na to kako živimo. Čovjek se ne može a da se ne zapita koliko problema umjetna inteligencija može pomoći u rješavanju, koliko bolesti izliječiti, koliko produktivniji možemo postati kao vrsta, kako bismo unaprijedili svoje postojanje za buduće generacije, povećanjem prodora ove nevjerojatne tehnologije.
Budući da smo godinama zajedno radili na kritičnoj AI infrastrukturi velikih razmjera – vidjeli smo ogromnu bol programera iz prve ruke – “zašto stvari jednostavno ne rade”? Kako bi svijet usvojio i otkrio ogromnu transformativnu prirodu umjetne inteligencije, potrebna nam je softverska i razvojna infrastruktura koja se proteže od istraživanja do proizvodnje i koja je vrlo dostupna. To će nam omogućiti da otključamo sljedeći način znanstvenih otkrića – od kojih će umjetna inteligencija biti kritična – i jest veliki inženjerski izazovS ovom motivirajućom pozadinom, razvili smo intrinzično uvjerenje da možemo krenuti u izgradnju novog pristupa za AI infrastrukturu i osnažiti razvojne programere diljem svijeta da koriste AI kako bi svijet učinili boljim mjestom. Također smo vrlo sretni što nam se na ovom putovanju pridružuje mnogo ljudi, a kao rezultat toga imamo najbolji svjetski tim za AI infrastrukturu.
Možete li opisati kako je programski jezik Mojo prvobitno napravljen za vaš tim?
Modularni vizija je omogućiti AI da ga koristi bilo tko, bilo gdje. Sve što radimo u Modularu usredotočeno je na taj cilj, a od toga idemo unatrag u načinu na koji izrađujemo svoje proizvode i tehnologiju. U ovom svjetlu, naš vlastiti programer brzina je ono što nam je prije svega važno, a nakon što smo izgradili toliko postojeće AI infrastrukture za svijet – morali smo pažljivo razmotriti što bi našem timu omogućilo da se kreće brže. Proživjeli smo kroz problem dvaju svjetskih jezika u umjetnoj inteligenciji – gdje istraživači žive u Pythonu, a proizvodni i hardverski inženjeri žive u C++ – i nismo imali drugog izbora nego ili odustati od tog puta ili potpuno preispitati pristup. Mi smo odabrali ovo drugo. Postojala je jasna potreba za rješavanjem ovog problema, ali mnogo različitih načina kako bismo ga riješili – pristupili smo tome s našim čvrstim uvjerenjem da ćemo upoznati ekosustav gdje je danas i omogućiti jednostavniji uspon u budućnost. Naš tim nosi ožiljke masovne migracije softvera i nismo željeli da se to ponovi. Također smo shvatili da danas ne postoji jezik, po našem mišljenju, koji može riješiti sve izazove koje pokušavamo riješiti za AI i stoga smo poduzeli pristup temeljen na prvim principima, i Mojo je rođen.
Kako Mojo omogućuje besprijekorno skaliranje i prenosivost na mnogim vrstama hardvera?
Chris, ja i naš tim u Googleu (mnogi u Modularu) pomogli smo donijeti MLIR u svijet godina – s ciljem pomoći globalnoj zajednici u rješavanju stvarnih izazova omogućavanjem dosljednog predstavljanja i izvođenja AI modela na bilo kojoj vrsti hardvera. MLIR je nova vrsta infrastrukture prevoditelja otvorenog koda koja je prihvaćena u velikom broju i brzo postaje novi standard za izgradnju prevoditelja putem LLVMS obzirom na povijest našeg tima u stvaranju ove infrastrukture, prirodno je da je u Modularu intenzivno koristimo, a to je temelj našeg najsuvremenijeg pristupa u razvoju nove AI infrastrukture za svijet. Ključno je da, iako se MLIR sada brzo usvaja, Mojo je prvi jezik koji zaista iskorištava snagu MLIR-a i izlaže ga programerima na jedinstven i pristupačan način. To znači da se skalira od Python programera koji pišu aplikacije, preko inženjera performansi koji implementiraju visokoučinkoviti kod, do hardverskih inženjera koji pišu vrlo niskorazinski sistemski kod za svoj jedinstveni hardver.
Reference za Mojo tvrde da je to u osnovi Python++, s pristupačnošću Pythona i visokom izvedbom C-a. Je li ovo krajnje pojednostavljeno? Kako biste to opisali?
Mojo bi trebao biti vrlo poznat svakom Python programeru, budući da dijeli Pythonovu sintaksu. Ali postoji nekoliko važnih razlika koje ćete vidjeti kada jednostavno Python program prebacite na Mojo, uključujući to da će raditi odmah. Jedan od naših temeljnih ciljeva za Mojo je pružiti nadskup Pythona – to jest, učiniti Mojo kompatibilnim s postojećim Python programima – i prihvatiti implementaciju CPythona za podršku ekosustava dugog repa. Zatim vam omogućite da polako povećavate svoj kod i zamijenite dijelove koji ne rade Mojo značajkama niže razine za eksplicitno upravljanje memorijom, dodavanje tipova, korištenje automatskog podešavanja i mnoge druge aspekte kako biste dobili izvedbu C ili bolje! Smatramo da vam Mojo daje najbolje od oba svijeta i da ne morate pisati i prepisivati svoje algoritme na više jezika. Cijenimo da je Python++ ogroman cilj i bit će to višegodišnji napor, ali predani smo tome da to učinimo stvarnošću i omogućimo našoj legendarnoj zajednici od više od 140K+ programera da nam pomognu zajedno graditi budućnost.
U nedavnoj uvodnoj riječi prikazano je da je Mojo 35,000 XNUMX puta brži od Pythona, kako je ta brzina izračunata?
Zapravo je sada 68,000 XNUMX puta! Ali priznajmo da je to samo jedan program u Mandelbrotu – možete pročitati niz od tri blog posta o tome kako smo to postigli – ovdje, ovdje i ovdje. Naravno, ovo radimo već dugo i znamo da igre performansi nisu ono što potiče usvajanje jezika (unatoč tome što su zabavne!) – to je brzina programera, upotrebljivost jezika, visokokvalitetni alati i dokumentacija te zajednica koja koristi infrastrukturu za izmišljanje i izgradnju na načine koje ne možemo ni zamisliti. Mi smo graditelji alata i naš je cilj osnažiti svijet da koristi naše alate, stvara nevjerojatne proizvode i rješava važne probleme. Ako se usredotočimo na naš veći cilj, to je zapravo stvaranje jezika koji vas zadovoljava tamo gdje ste danas, a zatim vas lako podiže u bolji svijet. Mojo vam omogućuje da imate visoko učinkovit, upotrebljiv, statički tipiziran i prenosiv jezik koji se besprijekorno integrira s vašim postojećim Python kodom – dajući vam najbolje od oba svijeta. Omogućuje vam da ostvarite pravu snagu hardvera s višenitnim radom i paralelizacijom na načine na koje današnji sirovi Python ne može – otključavajući globalnu zajednicu programera da ima jedan jezik koji se skalira od vrha do dna.
Mojo's magija je njegova sposobnost da objedini programske jezike s jednim skupom alata, zašto je to toliko važno?
Jezici uvijek uspijevaju snagom svojih ekosustava i zajednica koje se formiraju oko njih. Već dugo radimo sa zajednicama otvorenog izvornog koda i nevjerojatno smo pažljivi prema uključivanju na pravi način i osiguravanju da zajednica čini sve ispravno. Nevjerojatno naporno radimo na isporuci naše infrastrukture, ali treba nam vremena da povećamo naš tim – tako da nećemo odmah imati sve odgovore, ali ćemo stići tamo. Odmaknuvši se, naš je cilj podići ekosustav Pythona prihvaćanjem čitav postojeći ekosustav, i ne nastojimo ga razdvojiti kao mnoge druge projekte. Interoperabilnost samo olakšava zajednici da isproba našu infrastrukturu, bez potrebe za prepisivanjem svog koda, a to je jako važno za AI.
Također, puno smo naučili iz razvoja infrastrukture i alata umjetne inteligencije tijekom posljednjih deset godina. Postojeći monolitni sustavi nisu lako proširivi ili generalizirani izvan svoje početne ciljne domene, a posljedica je jako fragmentirana industrija implementacije umjetne inteligencije s desecima lanaca alata koji nose različite kompromise i ograničenja. Ovi obrasci dizajna usporili su tempo inovacija jer su manje upotrebljivi, manje prenosivi i teži za skaliranje.
Sustav umjetne inteligencije sljedeće generacije mora biti proizvodne kvalitete i susretati se s programerima tamo gdje jesu. Ne smije zahtijevati skupo prepisivanje, ponovno projektiranje ili ponovno baziranje korisničkog koda. Mora biti nativno multi-framework, multi-cloud i multi-hardware. Treba kombinirati najbolje performanse i učinkovitost s najboljom upotrebljivošću. Ovo je jedini način da se smanji fragmentacija i otključa nova generacija hardverskih, podatkovnih i algoritamskih inovacija.
Modularno nedavno najavio prikupljanje 100 milijuna dolara novih sredstava, koju vodi General Catalyst, a popunjavaju je postojeći investitori GV (Google Ventures), SV Angel, Greylock i Factory. Što možemo očekivati sljedeće?
Ovaj novi kapital prvenstveno će se koristiti za rast našeg tima, zapošljavanje najboljih ljudi u infrastrukturi umjetne inteligencije i nastavak ispunjavanja ogromne komercijalne potražnje koju vidimo za našom platformom. Modverse, naša zajednica od preko 130 programera i 10 poduzeća, svi traže našu infrastrukturu – stoga želimo biti sigurni da nastavljamo skalirati i naporno radimo kako bismo je razvili za njih i isporučili im je. Držimo se nevjerojatno visokog standarda, a proizvodi koje isporučujemo odraz su toga tko smo kao tim i tko postajemo kao tvrtka. Ako poznajete nekoga tko je motiviran, tko voli granice softvera i hardvera i tko želi pomoći da umjetna inteligencija prodre u svijet na smislen i pozitivan način - pošaljite ih našim putem.
Koja je vaša vizija budućnosti programiranja?
Programiranje bi trebala biti vještina koju svatko u društvu može razviti i koristiti. Za mnoge, "ideja" programiranja trenutno asocira na sliku programera koji ispisuje složeni kod niske razine koji zahtijeva tešku matematiku i logiku - ali to se ne mora tako doživljavati. Tehnologija je uvijek bila veliki pokretač produktivnosti za društvo, a čineći programiranje pristupačnijim i upotrebljivijim, možemo osnažiti više ljudi da ga prihvate. Osnaživanje ljudi da automatiziraju procese koji se ponavljaju i učine svoje živote jednostavnijim moćan je način da se ljudima vrati više vremena.
A u Pythonu već imamo predivan jezik koji je izdržao test vremena – to je najpopularniji jezik na svijetu, s nevjerojatnom zajednicom – ali ima i ograničenja. Vjerujem da imamo ogromnu priliku učiniti ga još moćnijim i potaknuti veći dio svijeta da prihvati njegovu ljepotu i jednostavnost. Kao što sam ranije rekao, radi se o izgradnji proizvoda koji imaju progresivno otkrivanje složenosti – omogućujući apstrakcije visoke razine, ali i skaliranje na nevjerojatno niske razine. Već svjedočimo značajnom skoku s AI modelima koji omogućuju progresivne prijevode teksta u kod – i oni će s vremenom postati samo personaliziraniji – ali iza ove čarobne inovacije još uvijek stoji programer koji piše i implementira kod za njezino pokretanje. Pisali smo o ovome u prošlosti – AI će nastaviti otključavati kreativnost i produktivnost u mnogim programskim jezicima, ali također vjerujem da će Mojo još više otvoriti otvor ekosustava, osnažujući veću pristupačnost, skalabilnost i prenosivost hardvera za mnogo više programera diljem svijeta.
Za kraj, AI će prodrijeti u naše živote na neopisive načine i postojat će posvuda – pa se nadam da će Mojo potaknuti programere da brže rješavaju najvažnije probleme za čovječanstvo – bez obzira gdje žive u našem svijetu. Mislim da je to budućnost za koju se vrijedi boriti.
Hvala vam na sjajnom intervjuu, čitatelji koji žele saznati više neka ga posjete Modularni.