Модели и платформы ИИ
Тим Дэвис, сооснователь и президент Modular – Серия интервью

Тим Дэвис – сооснователь и президент Modular, интегрированного, составного набора инструментов, который упрощает вашу инфраструктуру ИИ, чтобы ваша команда могла быстрее разрабатывать, развертывать и инновировать. Modular наиболее известен разработкой Mojo, нового языка программирования, который мостит разрыв между исследованием и производством, сочетая лучшее из Python с системами и метапрограммированием.
Повторный предприниматель и лидер продукта. Тим помог построить, найти и масштабировать крупные части инфраструктуры ИИ Google в Google Brain и Core Systems от API (TensorFlow), компиляторов (XLA и MLIR) и сред выполнения для сервера (CPU/GPU/TPU) и TF Lite (Мобильный/Микро/Веб), Android ML и NNAPI, крупной модели инфраструктуры и OSS для миллиардов пользователей и устройств. Любит бег, построение и масштабирование продуктов, чтобы помочь людям, и миру.
Когда вы впервые открыли для себя программирование, и что вас к этому привлекло?
В детстве, выросши в Австралии, мой отец принес домой Commodore 64C, и игра была тем, что меня увлекло – Boulder Dash, Maniac Mansion, Double Dragon – какой замечательный время было. Этот компьютер познакомил меня с BASIC, и эксперименты с ним были моим первым настоящим введением в программирование. Все стало более интенсивным в школе и университете, где я использовал более традиционные статические языки для инженерных курсов, и со временем я даже пробовал все, от Javascript до VBA, прежде чем остановиться на Python для большинства программирования как языка науки о данных и ИИ. Я написал много кода в своих ранних стартапах, но сейчас, конечно, я использую Mojo и инструменты, которые мы создали вокруг него.
Более 5 лет вы работали в Google в качестве старшего менеджера продукта и лидера группы продукта, где вы помогли масштабировать крупные части инфраструктуры ИИ Google в Google Brain. Что вы узнали из этого опыта?
Люди – это то, что строит технологии и продукты, меняющие мир, и это преданная группа людей, объединенных общей видением, которая приносит их в мир. Google – невероятная компания с удивительными людьми, и мне повезло встретить и работать с многими из самых ярких умов в ИИ много лет назад, когда я присоединился к команде Brain. Самые великие уроки, которые я выучил, – это всегда фокусироваться на пользователе и постепенно раскрывать сложность, чтобы дать пользователям возможность рассказать свои уникальные истории миру, как исправление Большого Барьерного рифа или помощь людям, таким как Джейсон Драммер, и привлечь и собрать разнообразную смесь людей, чтобы двигаться к общей цели. В огромной компании очень умных и талантливых людей это намного сложнее, чем можно представить. Отражая на свое время там, это всегда люди, с которыми вы работали, которые действительно запоминаются. Я всегда буду смотреть назад с благодарностью и ценить, что многие люди рискнули на меня, и я enormously благодарен им, потому что многие из этих рисков побудили меня стать лучше лидером и человеком, чтобы глубоко понять системы ИИ. Это действительно показало мне глубокую силу ИИ, чтобы повлиять на мир, и это была причина, по которой я имел вдохновение и смелость уйти и стать сооснователем Modular.
Можете ли вы поделиться историей создания Modular?
Крис и я встретились в Google и отправили многие влиятельные технологии, которые существенно повлияли на мир ИИ сегодня. Однако мы чувствовали, что ИИ сдерживается слишком сложной и фрагментированной инфраструктурой, которую мы наблюдали при развертывании крупных рабочих нагрузок для миллиардов пользователей. Нас мотивировала желание ускорить влияние ИИ на мир, поднимая отрасль к производственной качественной программному обеспечению ИИ, чтобы мы, как глобальное общество, могли иметь большее влияние на то, как мы живем. Не можем не задуматься, сколько проблем ИИ может помочь решить, сколько заболеваний вылечить, насколько более продуктивными мы можем стать как вид, чтобы продлить наше существование для будущих поколений, увеличивая проникновение этой невероятной технологии.
Работая вместе много лет над крупномасштабной критической инфраструктурой ИИ – мы увидели огромную боль разработчиков в лицо – “почему вещи просто не работают”? Чтобы мир принял и открыл для себя огромную трансформационную природу ИИ, нам нужно программное обеспечение и инфраструктуру разработчика, которая масштабируется от исследования к производству и высоко доступна. Это позволит нам разблокировать следующий способ научных открытий – из которых ИИ будет критическим – и это грандиозный инженерный вызов. С этой мотивирующей предысторией мы развили внутреннюю веру, что мы можем выйти и построить новый подход для инфраструктуры ИИ, и дать разработчикам возможность использовать ИИ, чтобы помочь сделать мир лучше. Мы также очень удачливы, что многие люди присоединились к нам в этом путешествии, и у нас есть лучшая команда инфраструктуры ИИ в мире.
Можете ли вы обсудить, как язык программирования Mojo был изначально построен для вашей собственной команды?
Видение Modular – дать возможность использовать ИИ всем, где угодно. Все, что мы делаем в Modular, сосредоточено на этой цели, и мы отходим назад от этой цели в том, как мы строим наши продукты и технологии. В этом свете наша собственная скорость разработчика – это то, что имеет значение для нас сначала, и построив так много существующей инфраструктуры ИИ для мира – нам нужно было тщательно рассмотреть, что позволит нашей команде двигаться быстрее. Мы прошли через двухмирную проблему языков в ИИ – где исследователи живут в Python, а производство и аппаратные инженеры живут в C++ – и у нас не было выбора, кроме как либо идти по этой дороге, либо переосмыслить подход полностью. Мы выбрали последнее. Была явная необходимость решить эту проблему, но много разных способов решить ее – мы подошли к этому с нашей сильной верой в то, чтобы встретить экосистему там, где она есть сегодня, и дать возможность более простого перехода в будущее. Наша команда несет шрамы программного обеспечения миграции в крупном масштабе, и мы не хотели повторения этого. Мы также поняли, что нет языка сегодня, в нашем мнении, который может решить все проблемы, которые мы пытаемся решить для ИИ, поэтому мы предприняли подход с первого принципа, и Mojo родился.
Как Mojo позволяет обеспечить бесшовное масштабирование и переносимость на многие типы оборудования?
Крис, я и наша команда в Google (многие в Modular) помогли принести MLIR в мир много лет назад – с целью помочь глобальному сообществу решить реальные проблемы, давая возможность ИИ-моделям быть последовательно представленными и выполненными на любом типе оборудования. MLIR – это новый тип открытой компиляторной инфраструктуры, который был принят в крупном масштабе и быстро становится новым стандартом для построения компиляторов через LLVM. Учитывая историю нашей команды в создании этой инфраструктуры, естественно, что мы используем ее сильно в Modular, и это лежит в основе нашего современного подхода в разработке новой инфраструктуры ИИ для мира. Критически, хотя MLIR сейчас быстро принимается, Mojo – это первый язык, который действительно использует силу MLIR и раскрывает ее разработчикам в уникальной и доступной форме. Это означает, что он масштабируется от разработчиков Python, которые пишут приложения, до инженеров производительности, которые развертывают высокопроизводительный код, до аппаратных инженеров, которые пишут очень низкоуровневый системный код для своего уникального оборудования.
Ссылки на Mojo утверждают, что это по сути Python++, с доступностью Python и высокими производительными характеристиками C. Это грубое упрощение? Как бы вы описали его?
Mojo должен показаться очень знакомым любому программисту Python, поскольку он разделяет синтаксис Python. Но есть несколько важных различий, которые вы увидите, когда переносите простую программу Python в Mojo, включая то, что она просто работает сразу. Одна из наших основных целей для Mojo – предоставить супермножество Python – то есть сделать Mojo совместимым с существующими программами Python – и принять реализацию CPython для поддержки долгого хвоста экосистемы. Затем дать вам возможность медленно дополнить свой код и заменить неработающие части функциями Mojo с низкоуровневыми функциями, чтобы явно управлять памятью, добавлять типы, использовать автотюнинг и многие другие аспекты, чтобы получить производительность C или лучше! Мы считаем, что Mojo дает вам лучшее из обоих миров, и вам не нужно писать и переписывать свои алгоритмы на нескольких языках. Мы ценим, что Python++ – это огромная цель, и будет многолетним начинанием, но мы привержены тому, чтобы сделать это реальностью и дать возможность нашему легендарному сообществу более 140 000 разработчиков помочь нам построить будущее вместе.
На недавней конференции было продемонстрировано, что Mojo в 35 000 раз быстрее Python, как была рассчитана эта скорость?
На самом деле это 68 000 сейчас! Но давайте признаем, что это всего лишь одна программа в Mandelbrot – вы можете прочитать серию из трех блог-постов о том, как мы достигли этого – здесь, здесь и здесь. Конечно, мы делаем это уже давно и знаем, что игры производительности не являются тем, что стимулирует принятие языка (несмотря на то, что они веселые!) – это скорость разработчика, удобство языка, высококачественные инструменты и документация, и сообщество, использующее инфраструктуру для изобретения и построения способов, которые мы даже не можем представить. Мы – строители инструментов, и наша цель – дать возможность миру использовать наши инструменты, чтобы создать удивительные продукты и решить важные проблемы. Если мы сосредоточимся на нашей более крупной цели, это на самом деле создать язык, который встречает вас там, где вы есть сегодня, и затем поднимает вас легко в лучший мир. Mojo позволяет вам иметь высокопроизводительный, удобный, статически типизированный и переносимый язык, который без проблем интегрируется с вашим существующим кодом Python – давая вам лучшее из обоих миров. Это позволяет вам реализовать истинную силу оборудования с многопоточностью и параллелизацией способами, которые сырой Python сегодня не может – разблокируя глобальное сообщество разработчиков, чтобы иметь один язык, который масштабируется от верха до низа.
Магия Mojo заключается в ее способности объединить языки программирования с одним набором инструментов, почему это так важно?
Языки всегда преуспевают силой своих экосистем и сообществ, которые формируются вокруг них. Мы работали с открытым сообществом в течение долгого времени и очень внимательно относимся к тому, чтобы взаимодействовать правильно и обеспечить, чтобы мы сделали все правильно для сообщества. Мы работаем невероятно усердно, чтобы отправить нашу инфраструктуру, но нам нужно время, чтобы масштабировать нашу команду – поэтому у нас не будут все ответы сразу, но мы доберемся до этого. Отступая назад, наша цель – поднять экосистему Python, принимая целую существующую экосистему, и мы не стремимся разрушить ее, как многие другие проекты. Интероперабельность просто делает ее проще для сообщества попробовать нашу инфраструктуру, не переписывая весь свой код, и это имеет большое значение для ИИ.
Кроме того, мы узнали так много от разработки инфраструктуры и инструментов ИИ за последние десять лет. Существующие монолитные системы не легко расширяемы или обобщаемы вне их первоначальной области и в результате получается сильно фрагментированная индустрия развертывания ИИ с десятками инструментальных цепочек, которые несут разные компромиссы и ограничения. Эти шаблоны проектирования замедлили темп инноваций, будучи менее удобными, менее переносимыми и более трудными для масштабирования.
Система ИИ следующего поколения должна быть производственной и встречать разработчиков там, где они есть. Она не должна требовать дорогого переписывания, перестройки или ребазирования кода пользователя. Она должна быть родной многофреймовой, многооблачной и многоаппаратной. Она должна сочетать лучшую производительность и эффективность с лучшей удобностью. Это единственный способ уменьшить фрагментацию и разблокировать следующее поколение аппаратного обеспечения, данных и алгоритмических инноваций.
Modular недавно объявила о привлечении 100 миллионов долларов в новом финансировании, возглавляемом General Catalyst и заполненным существующими инвесторами GV (Google Ventures), SV Angel, Greylock и Factory. Что мы должны ожидать дальше?
Этот новый капитал будет в основном использоваться для роста нашей команды, найма лучших людей в инфраструктуре ИИ и продолжения встречи с огромным коммерческим спросом, который мы видим на нашу платформу. Modverse, наше сообщество более 130 000 разработчиков и 10 000 предприятий, ищут нашу инфраструктуру – поэтому мы хотим убедиться, что мы продолжаем масштабироваться и работать усердно, чтобы развивать ее для них и доставлять ее им. Мы держим себя на невероятно высоком стандарте, и продукты, которые мы отправляем, являются отражением того, кто мы есть как команда и кто мы становимся как компания. Если вы знаете кого-то, кто движим, кто любит границу программного обеспечения и оборудования и кто хочет помочь увидеть ИИ, проникающий в мир значимым и положительным образом – отправьте их нам.
Каково ваше видение будущего программирования?
Программирование должно быть навыком, который каждый в обществе может развить и использовать. Для многих “идея” программирования сразу вызывает картину разработчика, пишущего сложный низкоуровневый код, требующий тяжелой математики и логики – но это не должно быть воспринято таким образом. Технология всегда была великим стимулятором производительности для общества, и делая программирование более доступным и удобным, мы можем дать возможность больше людям принять его. Дать людям возможность автоматизировать повторяющиеся процессы и сделать их жизнь проще – это мощный способ дать людям больше времени.
И в Python у нас уже есть замечательный язык, который выдержал испытание временем – это самый популярный язык в мире, с невероятным сообществом – но он также имеет ограничения. Я считаю, что у нас есть огромная возможность сделать его еще более мощным и побудить больше мира принять его красоту и простоту. Как я сказал ранее, это о построении продуктов, которые имеют прогрессивное раскрытие сложности – дать возможность высокоуровневых абстракций, но масштабироваться до невероятно низкоуровневых также. Мы уже наблюдаем значительный скачок с ИИ-моделями, позволяющими прогрессивным текстовым переводам – и эти будут только более персонализированными со временем – но за этой магической инновацией все еще есть разработчик, создающий и развертывающий код, чтобы дать ей силу. Мы написали об этом ранее – ИИ будет продолжать разблокировать творчество и производительность на многих языках программирования, но я также считаю, что Mojo откроет апертур экосистемы еще дальше, даст возможность большей доступности, масштабируемости и переносимости оборудования для многих более разработчиков по всему миру.
Чтобы закончить, ИИ проникнет в нашу жизнь невероятными способами, и он будет существовать повсюду – поэтому я надеюсь, что Mojo стимулирует разработчиков решать наиболее важные проблемы человечества быстрее – независимо от того, где они живут в нашем мире. Я думаю, что это будущее, за которое стоит бороться.
Спасибо за великое интервью, читатели, которые хотят узнать больше, должны посетить Modular.












