Artificial Intelligence
Tim Davis, współzałożyciel i prezes Modular – seria wywiadów

Tim Davis, jest współzałożycielem i prezesem Modułowe, zintegrowany, dający się komponować zestaw narzędzi, który upraszcza infrastrukturę sztucznej inteligencji, dzięki czemu Twój zespół może szybciej rozwijać, wdrażać i wprowadzać innowacje. Modułowość jest najbardziej znana z programowania Mojo, nowy język programowania, który wypełnia lukę między badaniami a produkcją, łącząc to, co najlepsze w Pythonie z systemami i metaprogramowaniem.
Powtórz Przedsiębiorca i Lider Produktu. Tim pomógł w budowie, znalezieniu i skalowaniu dużej części infrastruktury AI firmy Google. Mózg Google i systemy podstawowe z interfejsów API (TensorFlow), kompilatory (XLA & MLIR) i czasy działania serwera (CPU/GPU/TPU) i TF Lite (mobilne/mikro/internetowe), AndroidML & NNAPI, infrastruktura wielkomodelowa i OSS dla miliardów użytkowników i urządzeń. Uwielbia biegać, budować i skalować produkty pomagać ludziom, świat.
Kiedy po raz pierwszy odkryłeś kodowanie i co Cię do tego przyciągnęło?
Jako dziecko dorastające w Australii mój tata przywiózł do domu Commodore 64C i to właśnie gry mnie wciągnęły – Boulder Dash, Maniac Mansion, Double Dragon – co za czas, aby żyć. Ten komputer wprowadził mnie w język BASIC i hackowanie przy jego pomocy było moim pierwszym prawdziwym wprowadzeniem do programowania. Sprawy stały się bardziej intensywne w szkole średniej i na uniwersytecie, gdzie używałem bardziej tradycyjnych języków statycznych na kursach inżynierskich, a z czasem nawet zacząłem zajmować się Javascriptem i VBA, zanim zdecydowałem się na Python w zdecydowanej większości programowania jako język danych nauka i sztuczna inteligencja. Napisałem sporo kodu podczas moich wcześniejszych start-upów, ale obecnie korzystam oczywiście z Mojo i zestawu narzędzi, który wokół niego stworzyliśmy.
Przez ponad 5 lat pracowałeś w Google jako starszy menedżer produktu i lider grupy produktów, gdzie pomagałeś w skalowaniu dużej części infrastruktury sztucznej inteligencji Google w Google Brain. Czego nauczyłeś się dzięki temu doświadczeniu?
To ludzie tworzą technologie i produkty zmieniające świat. Jest to oddana grupa ludzi, których łączy szersza wizja, która sprowadza ich na świat. Google to niesamowita firma zatrudniająca niesamowitych ludzi. Miałem szczęście poznać wiele najwybitniejszych umysłów w dziedzinie sztucznej inteligencji i pracować z nimi wiele lat temu, kiedy dołączyłem do zespołu Brain. Największą lekcją, jaką się nauczyłem, było to, że zawsze skupiałem się na użytkowniku i stopniowo ujawniałem złożoność, aby umożliwić użytkownikom opowiadanie światu swoich wyjątkowych historii, na przykład naprawianie Wielka Rafa Koralowa lub pomaganie ludziom takim jak Jason Perkusistaoraz przyciąganie i gromadzenie zróżnicowanej grupy ludzi, którzy dążą do wspólnego celu. W ogromnej firmie bardzo inteligentnych i utalentowanych ludzi jest to znacznie trudniejsze, niż możesz sobie wyobrazić. Kiedy wspominam czas, który tam spędziłem, zawsze zapadają w pamięć ludzie, z którymi pracowałeś. Zawsze będę czule spoglądać wstecz i doceniać, że wiele osób podjęło ryzyko, i jestem im niezmiernie wdzięczny, ponieważ wiele z tych ryzyk zachęciło mnie do bycia lepszym przywódcą i osobą, do głębszego zanurzenia się i prawdziwego zrozumienia systemów sztucznej inteligencji. To naprawdę uświadomiło mi głęboką moc AI, która ma wpływ na świat, i to był właśnie powód, dla którego miałem inspirację i odwagę, aby opuścić i być współzałożycielem Modular.
Czy możesz podzielić się historią powstania Modular?
Chris i ja spotkaliśmy się w Google i dostarczyliśmy wiele wpływowych technologii, które znacząco wpłynęły na dzisiejszy świat sztucznej inteligencji. Jednak czuliśmy, że sztuczna inteligencja jest hamowana przez zbyt złożoną i fragmentaryczną infrastrukturę, czego byliśmy świadkami na własne oczy wdrażając duże obciążenia dla miliardów użytkowników. Motywowała nas chęć przyspieszenia wpływu sztucznej inteligencji na świat poprzez skierowanie branży w stronę oprogramowania AI o jakości produkcyjnej, abyśmy jako społeczeństwo globalne mogli mieć większy wpływ na to, jak żyjemy. Nie można nie zastanawiać się, ile problemów sztuczna inteligencja może pomóc rozwiązać, ile chorób wyleczyć, o ile bardziej produktywni możemy stać się jako gatunek, aby zapewnić dalsze istnienie przyszłym pokoleniom, zwiększając penetrację tej niesamowitej technologii.
Pracując razem przez lata nad krytyczną infrastrukturą sztucznej inteligencji na dużą skalę – na własne oczy widzieliśmy ogromny ból programistów – „dlaczego wszystko nie może po prostu działać”? Aby świat mógł przyjąć i odkryć ogromny, transformacyjny charakter sztucznej inteligencji, potrzebujemy oprogramowania i infrastruktury programistycznej, która umożliwia skalowanie od badań po produkcję i jest łatwo dostępna. Umożliwi nam to odblokowanie kolejnej drogi odkryć naukowych – w których sztuczna inteligencja będzie miała kluczowe znaczenie – i jest wielkie wyzwanie inżynieryjneDzięki temu motywującemu doświadczeniu rozwinęliśmy w sobie głębokie przekonanie, że możemy stworzyć nowe podejście do infrastruktury AI i umożliwić programistom na całym świecie wykorzystanie AI, aby uczynić świat lepszym miejscem. Mamy też ogromne szczęście, że tak wiele osób dołącza do nas w tej podróży, dzięki czemu mamy najlepszy na świecie zespół ds. infrastruktury AI.
Czy możesz omówić, w jaki sposób początkowo zbudowano język programowania Mojo dla Twojego zespołu?
Modułowe wizja jest umożliwienie korzystania ze sztucznej inteligencji każdemu i wszędzie. Wszystko, co robimy w Modular, koncentruje się na tym celu, a my cofamy się od tego w sposobie, w jaki budujemy nasze produkty i technologię. W tym świetle nasz własny deweloper liczy się dla nas przede wszystkim prędkość, a po zbudowaniu tak dużej części istniejącej infrastruktury sztucznej inteligencji dla świata – musieliśmy dokładnie rozważyć, co umożliwiłoby naszemu zespołowi szybsze działanie. Przeszliśmy przez problem dwóch języków światowych w sztucznej inteligencji – gdzie badacze mieszkają w Pythonie, a inżynierowie ds. produkcji i sprzętu w C++ – i nie mieliśmy innego wyboru, jak albo pójść tą drogą, albo całkowicie przemyśleć podejście. Wybraliśmy to drugie. Istniała wyraźna potrzeba rozwiązania tego problemu, ale wiele różnych sposobów rozwiązać ten problem – podeszliśmy do tego z naszą silną wiarą w spotkanie z ekosystemem tam, gdzie jest dzisiaj, i umożliwienie prostszego przejścia w przyszłość. Nasz zespół nosi blizny po migracji oprogramowania na dużą skalę i nie chcieliśmy, żeby to się powtórzyło. Zdaliśmy sobie również sprawę, że naszym zdaniem nie ma obecnie języka, który byłby w stanie rozwiązać wszystkie wyzwania, jakie próbujemy rozwiązać w odniesieniu do sztucznej inteligencji, dlatego przyjęliśmy podejście oparte na pierwszych zasadach i tak narodził się Mojo.
W jaki sposób Mojo umożliwia płynne skalowanie i przenośność na wielu typach sprzętu?
Pomogliśmy Chrisowi, ja i nasz zespół w Google (wielu w Modular). MLIR w świat lata temu – mając na celu pomóc społeczności globalnej w rozwiązywaniu prawdziwych wyzwań, umożliwiając spójne reprezentowanie i wykonywanie modeli sztucznej inteligencji na dowolnym typie sprzętu. MLIR to nowy typ infrastruktury kompilatorów typu open source, który został przyjęty na dużą skalę i szybko staje się nowym standardem w budowaniu kompilatorów poprzez LLVMBiorąc pod uwagę doświadczenie naszego zespołu w tworzeniu tej infrastruktury, naturalne jest, że intensywnie z niej korzystamy w Modular, co stanowi podstawę naszego najnowocześniejszego podejścia do rozwoju nowej infrastruktury AI dla świata. Co istotne, podczas gdy MLIR jest obecnie szybko wdrażany, Mojo jest pierwszym językiem, który naprawdę wykorzystuje potencjał MLIR i udostępnia go programistom w unikalny i przystępny sposób. Oznacza to, że skalowalność jest dostosowana do potrzeb zarówno programistów Pythona piszących aplikacje, jak i inżynierów wydajności wdrażających kod o wysokiej wydajności, a także inżynierów sprzętu piszących kod systemowy bardzo niskiego poziomu dla swojego unikalnego sprzętu.
Odniesienia do Mojo twierdzą, że jest to w zasadzie Python++, z dostępnością Pythona i wysoką wydajnością C. Czy to duże uproszczenie? Jakbyś to opisał?
Mojo powinno być dobrze znane każdemu programiście Pythona, ponieważ ma taką samą składnię Pythona. Istnieje jednak kilka ważnych różnic, które zobaczysz podczas przenoszenia prostego programu w języku Python do Mojo, w tym to, że będzie on po prostu działać od razu po wyjęciu z pudełka. Jednym z naszych głównych celów dla Mojo jest zapewnienie nadzbioru języka Python — to znaczy zapewnienie zgodności Mojo z istniejącymi programami w języku Python — oraz wykorzystanie implementacji CPython w celu zapewnienia długoterminowej obsługi ekosystemu. Następnie umożliwij powolne rozszerzanie kodu i zastępowanie niedziałających części funkcjami niższego poziomu Mojo, aby jawnie zarządzać pamięcią, dodawać typy, wykorzystywać automatyczne dostrajanie i wiele innych aspektów, aby uzyskać wydajność C lub lepszą! Uważamy, że Mojo daje Ci to, co najlepsze z obu światów i nie musisz pisać ani przepisywać swoich algorytmów w wielu językach. Rozumiemy, że Python++ to ogromny cel i będzie to przedsięwzięcie wieloletnie, ale zależy nam na urzeczywistnieniu tego celu i umożliwieniu naszej legendarnej społeczności liczącej ponad 140 XNUMX programistów pomocy w budowaniu wspólnej przyszłości.
W niedawnym przemówieniu zaprezentowano, że Mojo jest 35,000 XNUMX razy szybszy niż Python. Jak obliczono tę prędkość?
W rzeczywistości jest to już 68,000 XNUMXx! Ale pamiętajmy, że to tylko pojedynczy program w Mandelbrocie – możesz przeczytać serię trzech wpisów na blogu o tym, jak to osiągnęliśmy – tutaj, tutaj i tutaj. Oczywiście, robimy to od dawna i wiemy, że gry wydajnościowe nie są tym, co napędza adopcję języka (pomimo że są świetną zabawą!) – to prędkość deweloperów, użyteczność języka, wysokiej jakości łańcuchy narzędzi i dokumentacja oraz społeczność wykorzystująca infrastrukturę do tworzenia i budowania w sposób, którego nawet nie jesteśmy w stanie sobie wyobrazić. Jesteśmy twórcami narzędzi, a naszym celem jest umożliwienie światu korzystania z naszych narzędzi, tworzenia niesamowitych produktów i rozwiązywania ważnych problemów. Jeśli skupimy się na naszym ważniejszym celu, to w rzeczywistości będzie to stworzenie języka, który spełni Twoje oczekiwania i z łatwością przeniesie Cię do lepszego świata. Mojo umożliwia Ci posiadanie wysoce wydajnego, użytecznego, statycznie typowanego i przenośnego języka, który płynnie integruje się z Twoim istniejącym kodem Pythona – dając Ci to, co najlepsze z obu światów. Umożliwia ona wykorzystanie prawdziwej mocy sprzętu dzięki wielowątkowości i paralelizacji w sposób, jaki nie jest możliwy w przypadku dzisiejszego Pythona – otwierając globalnej społeczności programistów możliwość korzystania z jednego języka, który jest skalowalny od podstaw.
Magia Mojo polega na możliwości ujednolicenia języków programowania za pomocą jednego zestawu narzędzi. Dlaczego jest to takie ważne?
Języki zawsze odnoszą sukces dzięki sile swoich ekosystemów i tworzących się wokół nich społeczności. Od dłuższego czasu współpracujemy ze społecznościami open source i niezwykle troskliwie podchodzimy do angażowania się we właściwy sposób i upewniania się, że postępujemy właściwie przez społeczność. Niesamowicie ciężko pracujemy nad dostawą naszej infrastruktury, ale potrzebujemy czasu, aby rozszerzyć nasz zespół – dlatego nie będziemy znać wszystkich odpowiedzi od razu, ale uda nam się to osiągnąć. Cofając się, naszym celem jest ulepszenie ekosystemu Pythona poprzez wykorzystanie cały Przede wszystkim system został opracowany Ekosystemi nie zamierzamy go łamać, jak w przypadku wielu innych projektów. Interoperacyjność po prostu ułatwia społeczności wypróbowanie naszej infrastruktury bez konieczności przepisywania całego kodu, a to ma ogromne znaczenie dla sztucznej inteligencji.
Ponadto wiele się nauczyliśmy dzięki rozwojowi infrastruktury i narzędzi sztucznej inteligencji w ciągu ostatnich dziesięciu lat. Istniejących systemów monolitycznych nie można łatwo rozszerzać ani uogólniać poza ich początkową domenę docelową, czego konsekwencją jest niezwykle rozdrobniona branża wdrażania sztucznej inteligencji z dziesiątkami łańcuchów narzędzi, które wiążą się z różnymi kompromisami i ograniczeniami. Te wzorce projektowe spowolniły tempo innowacji, ponieważ są mniej użyteczne, mniej przenośne i trudniejsze do skalowania.
System sztucznej inteligencji nowej generacji musi zapewniać jakość produkcyjną i spełniać wymagania programistów tam, gdzie się znajdują. Nie może wymagać kosztownego przepisania, przeprojektowania lub ponownego oparcia kodu użytkownika. Musi to być natywnie wieloplatformowe, wielochmurowe i wielosprzętowe. Musi łączyć najlepszą wydajność i efektywność z najlepszą użytecznością. Tylko w ten sposób można zmniejszyć fragmentację i odblokować następną generację innowacji sprzętowych, danych i algorytmicznych.
Od niedawna modułowe ogłosił zebranie 100 milionów dolarów w nowym finansowaniu, kierowany przez General Catalyst i wypełniany przez istniejących inwestorów GV (Google Ventures), SV Angel, Greylock i Factory. Czego powinniśmy się spodziewać dalej?
Ten nowy kapitał zostanie wykorzystany przede wszystkim na rozwój naszego zespołu, zatrudnianie najlepszych ludzi w infrastrukturze AI i dalsze zaspokajanie ogromnego popytu komercyjnego, jaki widzimy na naszą platformę. Modverse, nasza społeczność licząca ponad 130 10 programistów i XNUMX XNUMX przedsiębiorstw, poszukuje naszej infrastruktury — dlatego chcemy mieć pewność, że będziemy ją stale skalować i ciężko pracować, aby ją dla nich rozwijać i dostarczać. Trzymamy się niewiarygodnie wysokich standardów, a dostarczane przez nas produkty odzwierciedlają to, kim jesteśmy jako zespół i kim stajemy się jako firma. Jeśli znasz kogoś, kto ma motywację, kocha granicę między oprogramowaniem a sprzętem i chce pomóc AI penetrować świat w znaczący i pozytywny sposób – wyślij go do nas.
Jaka jest Twoja wizja przyszłości programowania?
Programowanie powinno być umiejętnością, którą każdy członek społeczeństwa może rozwijać i wykorzystywać. Wielu osobom „pomysł” programowania od razu przywodzi na myśl obraz programisty piszącego złożony kod niskiego poziomu, wymagający dużej matematyki i logiki – ale nie musi to być postrzegane w ten sposób. Technologia zawsze była ogromnym czynnikiem zwiększającym produktywność społeczeństwa, a czyniąc programowanie bardziej dostępnym i użytecznym, możemy umożliwić większej liczbie osób korzystanie z niego. Umożliwienie ludziom automatyzacji powtarzalnych procesów i uproszczenia ich życia to skuteczny sposób na zapewnienie ludziom większej ilości czasu.
W Pythonie mamy już wspaniały język, który przetrwał próbę czasu – to najpopularniejszy język na świecie, z niesamowitą społecznością – ale ma też swoje ograniczenia. Wierzę, że mamy ogromną szansę, aby uczynić go jeszcze potężniejszym i zachęcić więcej osób na świecie do docenienia jego piękna i prostoty. Jak wspomniałem wcześniej, chodzi o tworzenie produktów, które charakteryzują się stopniowym ujawnianiem złożoności – umożliwiając abstrakcje wysokiego poziomu, ale skalowalne również do abstrakcji niezwykle niskiego poziomu. Jesteśmy już świadkami znaczącego skoku w modelach sztucznej inteligencji, umożliwiających progresywne tłumaczenie tekstu na kod – i z czasem będą one stawać się coraz bardziej spersonalizowane – ale za tą magiczną innowacją wciąż stoi programista, który tworzy i wdraża kod, aby ją uruchomić. Pisaliśmy o tym w przeszłości – sztuczna inteligencja będzie nadal uwalniać kreatywność i produktywność w wielu językach programowania, ale wierzę też, że Mojo jeszcze bardziej otworzy ekosystem, zapewniając większą dostępność, skalowalność i przenośność sprzętu dla wielu innych programistów na całym świecie.
Na koniec sztuczna inteligencja przeniknie do naszego życia na niewypowiedziane sposoby i będzie istnieć wszędzie – mam więc nadzieję, że Mojo będzie katalizatorem dla programistów, aby szybciej rozwiązywali najważniejsze problemy ludzkości – bez względu na to, gdzie mieszkają w naszym świecie. Myślę, że to przyszłość, o którą warto walczyć.
Dziękuję za wspaniały wywiad. Czytelnicy chcący dowiedzieć się więcej powinni odwiedzić nas Modułowe.