Entre em contato

Tim Davis, cofundador e presidente da Modular – série de entrevistas

Inteligência artificial

Tim Davis, cofundador e presidente da Modular – série de entrevistas

mm

Tim Davis, é o cofundador e presidente da modular, um conjunto integrado e combinável de ferramentas que simplifica sua infraestrutura de IA para que sua equipe possa desenvolver, implantar e inovar com mais rapidez. A Modular é mais conhecida por desenvolver Mojo, uma nova linguagem de programação que preenche a lacuna entre pesquisa e produção, combinando o melhor do Python com sistemas e metaprogramação.

Empreendedor repetido e Líder de Produto. Tim ajudou a construir, encontrar e dimensionar grandes partes da infraestrutura de IA do Google em Google Brain e sistemas principais de APIs (TensorFlow), Compiladores (XLA & MLIR) e tempos de execução para servidor (CPU/GPU/TPU) e TF Lite (Móvel/Micro/Web), ML Android & NNAPI, grande modelo de infraestrutura e OSS para bilhões de usuários e dispositivos. Adora executar, construir e dimensionar produtos para ajude as pessoas e o mundo.

Quando você descobriu a codificação pela primeira vez e o que o atraiu nela?

Quando criança, crescendo na Austrália, meu pai trouxe para casa um Commodore 64C e os jogos foram o que me fisgou – Boulder Dash, Maniac Mansion, Double Dragon – que época para estar vivo. Aquele computador me apresentou ao BASIC e brincar com ele foi minha primeira introdução real à programação. As coisas ficaram mais intensas durante o ensino médio e a universidade, onde usei linguagens estáticas mais tradicionais para cursos de engenharia e, com o tempo, até me envolvi com Javascript e VBA, antes de optar pelo Python para a grande maioria da programação como linguagem de dados. ciência e IA. Eu escrevi um monte de código em minhas startups anteriores, mas hoje em dia, é claro, eu utilizo o Mojo e o conjunto de ferramentas que criamos em torno dele.

Por mais de 5 anos, você trabalhou no Google como Gerente Sênior de Produto e Líder de Produto do Grupo, onde ajudou a escalar grande parte da infraestrutura de IA do Google no Google Brain. O que você aprendeu com essa experiência?

São as pessoas que constroem tecnologias e produtos que mudam o mundo, e é um grupo dedicado de pessoas unidas por uma visão mais ampla que as traz ao mundo. O Google é uma empresa incrível, com pessoas incríveis, e tive a sorte de conhecer e trabalhar com muitas das mentes mais brilhantes da IA ​​anos atrás, quando me mudei para me juntar à equipe Brain. As maiores lições que aprendi foram sempre focar no usuário e divulgar progressivamente a complexidade, capacitar os usuários a contar suas histórias únicas para o mundo, como consertar o Grande Barreira de Corais ou ajudar pessoas como Jason, o bateristae atrair e reunir um mix diversificado de pessoas para atingir um objetivo comum. Em uma grande empresa com pessoas muito inteligentes e talentosas, isso é muito mais difícil do que você pode imaginar. Refletindo sobre o tempo que passei lá, são sempre as pessoas com quem você trabalhou que são verdadeiramente memoráveis. Sempre olharei para trás com carinho e apreciarei que muitas pessoas assumiram riscos comigo, e estou imensamente grato por isso, pois muitos desses riscos me encorajaram a ser um líder e uma pessoa melhor, a mergulhar fundo e compreender verdadeiramente os sistemas de IA. Isso realmente me fez perceber o profundo poder que a IA tem para impactar o mundo, e foi por isso que tive a inspiração e a coragem de sair e co-fundar a Modular.

Você pode compartilhar a história da gênese do Modular?

Chris e eu nos conhecemos no Google e lançamos muitas tecnologias influentes que impactaram significativamente o mundo da IA ​​hoje. No entanto, sentimos que a IA estava a ser travada por uma infraestrutura excessivamente complexa e fragmentada que testemunhámos em primeira mão a implementação de grandes cargas de trabalho para milhares de milhões de utilizadores. Fomos motivados pelo desejo de acelerar o impacto da IA ​​no mundo, elevando a indústria para software de IA com qualidade de produção, para que nós, como sociedade global, possamos ter um impacto maior na forma como vivemos. Não podemos deixar de nos perguntar quantos problemas a IA pode ajudar a resolver, quantas doenças curadas, quão mais produtivos podemos tornar-nos como espécie, para promover a nossa existência para as gerações futuras, aumentando a penetração desta tecnologia incrível.

Tendo trabalhado juntos durante anos em infraestruturas críticas de IA em larga escala – vimos em primeira mão a enorme dor dos desenvolvedores – “por que as coisas simplesmente não funcionam”? Para que o mundo adote e descubra a enorme natureza transformadora da IA, precisamos de software e de infraestrutura de desenvolvimento que escale desde a investigação até à produção e que seja altamente acessível. Isto permitir-nos-á desbloquear o próximo caminho das descobertas científicas – das quais a IA será crítica – e é um grande desafio de engenhariaCom esse histórico motivador, desenvolvemos uma crença intrínseca de que poderíamos construir uma nova abordagem para a infraestrutura de IA e capacitar desenvolvedores em todo o mundo a usar a IA para ajudar a tornar o mundo um lugar melhor. Também temos a sorte de ter muitas pessoas se juntando a nós nessa jornada e, como resultado, temos a melhor equipe de infraestrutura de IA do mundo.

Você pode discutir como a linguagem de programação Mojo foi inicialmente construída para sua própria equipe?

Modulares visão é permitir que a IA seja usada por qualquer pessoa, em qualquer lugar. Tudo o que fazemos na Modular está focado nesse objetivo, e retrocedemos a partir disso na forma como construímos nossos produtos e nossa tecnologia. Sob esta luz, nosso desenvolvedor próprio a velocidade é o que importa para nós em primeiro lugar, e tendo construído grande parte da infraestrutura de IA existente para o mundo – precisávamos considerar cuidadosamente o que permitiria à nossa equipe avançar mais rapidamente. Já vivemos o problema da linguagem de dois mundos na IA – onde os investigadores vivem em Python e os engenheiros de produção e de hardware vivem em C++ – e não tivemos escolha senão seguir por esse caminho ou repensar totalmente a abordagem. Nós escolhemos o último. Havia uma clara necessidade de resolver este problema, mas muitas maneiras diferentes para resolvê-lo – abordámo-lo com a nossa forte convicção de ir ao encontro do ecossistema onde ele se encontra hoje e permitir uma elevação mais simples para o futuro. Nossa equipe carrega as cicatrizes da migração de software em grande escala e não queríamos que isso se repetisse. Também percebemos que hoje, em nossa opinião, não existe uma linguagem que possa resolver todos os desafios que estamos tentando resolver para a IA e, por isso, adotamos uma abordagem de primeiros princípios e nasceu o Mojo.

Como o Mojo permite escalabilidade e portabilidade contínuas em vários tipos de hardware?

Chris, eu e nossa equipe do Google (muitos na Modular) ajudamos a trazer MLIR para o mundo anos atrás – com o objetivo de ajudar a comunidade global a resolver desafios reais, permitindo que modelos de IA sejam representados e executados de forma consistente em qualquer tipo de hardware. MLIR é um novo tipo de infraestrutura de compilador de código aberto que foi adotado em grande escala e está rapidamente se tornando o novo padrão para a construção de compiladores por meio de LLVMDado o histórico da nossa equipe na criação dessa infraestrutura, é natural que a utilizemos intensamente na Modular, o que sustenta nossa abordagem de ponta no desenvolvimento de novas infraestruturas de IA para o mundo. Fundamentalmente, embora o MLIR esteja sendo adotado rapidamente, o Mojo é a primeira linguagem que realmente aproveita o poder do MLIR e o expõe aos desenvolvedores de uma forma única e acessível. Isso significa que ele pode ser escalado desde desenvolvedores Python, que escrevem aplicativos, a engenheiros de desempenho, que implantam código de alto desempenho, e engenheiros de hardware, que escrevem código de sistema de nível muito baixo para seus hardwares específicos.

As referências ao Mojo afirmam que é basicamente Python++, com a acessibilidade do Python e o alto desempenho do C. Isso é uma simplificação grosseira? Como você descreveria isso?

Mojo deve parecer muito familiar para qualquer programador Python, pois compartilha a sintaxe do Python. Mas existem algumas diferenças importantes que você verá ao transportar um programa Python simples para o Mojo, incluindo o fato de que ele funcionará imediatamente. Um dos nossos principais objetivos para o Mojo é fornecer um superconjunto de Python – ou seja, tornar o Mojo compatível com os programas Python existentes – e adotar a implementação do CPython para suporte ao ecossistema de cauda longa. Em seguida, permita que você aumente lentamente seu código e substitua partes sem desempenho pelos recursos de nível inferior do Mojo para gerenciar explicitamente a memória, adicionar tipos, utilizar ajuste automático e muitos outros aspectos para obter o desempenho de C ou melhor! Acreditamos que o Mojo oferece o melhor dos dois mundos e você não precisa escrever e reescrever seus algoritmos em vários idiomas. Reconhecemos que o Python++ é um objetivo enorme e será um empreendimento de vários anos, mas estamos comprometidos em torná-lo realidade e permitir que nossa lendária comunidade de mais de 140 mil desenvolvedores nos ajude a construir o futuro juntos.

Em uma palestra recente foi demonstrado que o Mojo é 35,000x mais rápido que o Python, como essa velocidade foi calculada?

Na verdade, são 68,000x agora! Mas vamos reconhecer que é apenas um único programa em Mandelbrot – você pode ler uma série de três posts de blog sobre como alcançamos isso – aqui, aqui e aqui. É claro que fazemos isso há muito tempo e sabemos que jogos de desempenho não são o que impulsiona a adoção da linguagem (apesar de serem divertidos!) – é a velocidade do desenvolvedor, a usabilidade da linguagem, cadeias de ferramentas e documentação de alta qualidade e uma comunidade que utiliza a infraestrutura para inventar e construir de maneiras que nem podemos imaginar. Somos construtores de ferramentas e nosso objetivo é capacitar o mundo a usar nossas ferramentas, criar produtos incríveis e resolver problemas importantes. Se nos concentrarmos em nosso objetivo maior, é, na verdade, criar uma linguagem que o encontre onde você está hoje e, então, o eleve facilmente para um mundo melhor. O Mojo permite que você tenha uma linguagem de alto desempenho, utilizável, estaticamente tipada e portátil que se integra perfeitamente ao seu código Python existente – oferecendo o melhor dos dois mundos. Ele permite que você perceba o verdadeiro poder do hardware com multithreading e paralelização de maneiras que o Python bruto não consegue hoje em dia — liberando a comunidade global de desenvolvedores para ter uma única linguagem que pode ser dimensionada de cima para baixo.

A magia do Mojo é sua capacidade de unificar linguagens de programação com um conjunto de ferramentas. Por que isso é tão importante?

As línguas sempre têm sucesso pelo poder de seus ecossistemas e das comunidades que se formam ao seu redor. Trabalhamos com comunidades de código aberto há muito tempo e somos extremamente atenciosos em nos envolver da maneira certa e garantir que fazemos o que é certo pela comunidade. Estamos trabalhando arduamente para entregar nossa infraestrutura, mas precisamos de tempo para ampliar nossa equipe – portanto, não teremos todas as respostas imediatamente, mas chegaremos lá. Recuando, nosso objetivo é elevar o ecossistema Python, abraçando o inteiro existente ecossistema, e não estamos tentando fraturá-lo como tantos outros projetos. A interoperabilidade apenas torna mais fácil para a comunidade experimentar a nossa infraestrutura, sem ter que reescrever todo o seu código, e isso é muito importante para a IA.

Além disso, aprendemos muito com o desenvolvimento da infraestrutura e das ferramentas de IA nos últimos dez anos. Os sistemas monolíticos existentes não são facilmente extensíveis ou generalizáveis ​​fora do seu alvo de domínio inicial e a consequência é uma indústria de implementação de IA extremamente fragmentada, com dezenas de cadeias de ferramentas que acarretam diferentes compensações e limitações. Esses padrões de design desaceleraram o ritmo da inovação por serem menos utilizáveis, menos portáteis e mais difíceis de escalar.

O sistema de IA da próxima geração precisa ter qualidade de produção e atender os desenvolvedores onde eles estiverem. Não deve exigir uma reescrita, rearquitetura ou rebase dispendiosa do código do usuário. Deve ser nativamente multiframework, multicloud e multihardware. Precisa combinar o melhor desempenho e eficiência com a melhor usabilidade. Esta é a única maneira de reduzir a fragmentação e desbloquear a próxima geração de hardware, dados e inovações algorítmicas.

Modular recentemente anunciou a captação de US$ 100 milhões em novos financiamentos, liderado pela General Catalyst e preenchido pelos investidores existentes GV (Google Ventures), SV Angel, Greylock e Factory. O que devemos esperar a seguir?

Este novo capital será utilizado principalmente para aumentar a nossa equipe, contratando as melhores pessoas em infraestrutura de IA e continuando a atender à enorme demanda comercial que estamos vendo para a nossa plataforma. Modverse, nossa comunidade de mais de 130 mil desenvolvedores e 10 mil empresas, estão todos buscando nossa infraestrutura – por isso, queremos ter certeza de que continuaremos expandindo e trabalhando duro para desenvolvê-la para eles e entregá-la a eles. Mantemos um padrão incrivelmente alto e os produtos que enviamos são um reflexo de quem somos como equipe e de quem nos tornamos como empresa. Se você conhece alguém que é motivado, que ama os limites do software e do hardware e que deseja ajudar a ver a IA penetrar no mundo de uma forma significativa e positiva – envie-o para nós.

Qual é a sua visão para o futuro da programação?

A programação deve ser uma habilidade que todos na sociedade possam desenvolver e utilizar. Para muitos, a “idéia” de programação evoca instantaneamente a imagem de um desenvolvedor escrevendo código complexo de baixo nível que requer matemática e lógica pesadas – mas não precisa ser percebido dessa forma. A tecnologia sempre foi um grande facilitador de produtividade para a sociedade e, ao tornar a programação mais acessível e utilizável, podemos capacitar mais pessoas para adotá-la. Capacitar as pessoas para automatizar processos repetitivos e tornar suas vidas mais simples é uma maneira poderosa de devolver mais tempo às pessoas.

E em Python, já temos uma linguagem maravilhosa que resistiu ao teste do tempo – é a linguagem mais popular do mundo, com uma comunidade incrível – mas também tem limitações. Acredito que temos uma enorme oportunidade de torná-la ainda mais poderosa e de encorajar mais pessoas no mundo a abraçar sua beleza e simplicidade. Como eu disse antes, trata-se de construir produtos que tenham uma revelação progressiva de complexidade – permitindo abstrações de alto nível, mas também escalando para níveis incrivelmente baixos. Já estamos testemunhando um salto significativo com modelos de IA que permitem traduções progressivas de texto para código – e estas só se tornarão mais personalizadas com o tempo – mas por trás dessa inovação mágica ainda há um desenvolvedor criando e implementando o código para impulsioná-la. Nós escrevemos sobre isso no passado – a IA continuará a desbloquear a criatividade e a produtividade em muitas linguagens de programação, mas também acredito que o Mojo abrirá ainda mais a abertura do ecossistema, capacitando mais acessibilidade, escalabilidade e portabilidade de hardware para muito mais desenvolvedores em todo o mundo.

Para finalizar, a IA penetrará em nossas vidas de maneiras incalculáveis ​​e existirá em todos os lugares – então espero que o Mojo catalise os desenvolvedores para resolver os problemas mais importantes para a humanidade com mais rapidez – não importa onde eles vivam em nosso mundo. Acho que é um futuro pelo qual vale a pena lutar.

Obrigado pela ótima entrevista, os leitores que desejam saber mais devem visitar modular.

Antoine é um líder visionário e sócio fundador da Unite.AI, movido por uma paixão inabalável por moldar e promover o futuro da IA ​​e da robótica. Um empreendedor em série, ele acredita que a IA será tão disruptiva para a sociedade quanto a eletricidade, e é frequentemente pego delirando sobre o potencial das tecnologias disruptivas e da AGI.

Como um futurista, ele se dedica a explorar como essas inovações moldarão nosso mundo. Além disso, ele é o fundador da Valores Mobiliários.io, uma plataforma focada em investir em tecnologias de ponta que estão redefinindo o futuro e remodelando setores inteiros.