Modelos e plataformas de IA

Tim Davis, Co-Fundador e Presidente da Modular – Série de Entrevistas

mm
Adicione Unite.AI às suas fontes preferidas no Google

Tim Davis é o Co-Fundador e Presidente da Modular, uma suíte integrada e composta de ferramentas que simplifica a infraestrutura de IA para que sua equipe possa desenvolver, implantar e inovar mais rapidamente. A Modular é mais conhecida por desenvolver o Mojo, uma nova linguagem de programação que combina a melhor parte do Python com sistemas e metaprogramação.

Empreendedor repetido e Líder de Produto. Tim ajudou a construir, fundar e escalar grandes partes da infraestrutura de IA do Google (GOOGL ) no Google Brain e Sistemas Core, desde APIs (TensorFlow), Compiladores (XLA e MLIR) e tempo de execução para servidor (CPU/GPU/TPU) e TF Lite (Móvel/Micro/Web), Android ML e NNAPI, infraestrutura de modelo grande e OSS para bilhões de usuários e dispositivos. Gosta de correr, construir e escalar produtos para ajudar as pessoas e o mundo.

Quando você descobriu inicialmente a codificação, e o que o atraiu para isso?

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

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

As pessoas são o que constroem tecnologias e produtos que mudam o mundo, e é um grupo dedicado de pessoas ligadas por uma visão maior que as traz ao mundo. O Google é uma empresa incrível, com pessoas incríveis, e eu tive a sorte de conhecer e trabalhar com muitas das mentes mais brilhantes em IA anos atrás, quando me mudei para me juntar à equipe do Brain. As maiores lições que eu aprendi foram sempre se concentrar no usuário e progressivamente revelar a complexidade, para permitir que os usuários contem suas histórias únicas ao mundo, como consertar a Grande Barreira de Coral ou ajudar pessoas como Jason, o Baterista, e atrair e reunir uma mistura diversa de pessoas para dirigir em direção a um objetivo comum. Em uma empresa massiva de pessoas muito inteligentes e talentosas, isso é muito mais difícil do que você pode imaginar. Refletindo sobre meu tempo lá, é sempre as pessoas com quem você trabalhou que são realmente memoráveis. Eu sempre olharei para trás com carinho e apreciarei que muitas pessoas correram riscos comigo, e estou enormemente grato que o fizeram, pois muitos desses riscos me encorajaram a ser um melhor líder e pessoa, a mergulhar fundo e realmente entender os sistemas de IA. Isso realmente me fez perceber o poder profundo que a IA tem para impactar o mundo, e essa foi a razão pela qual tive a inspiração e a coragem de deixar e co-fundar a Modular.

Pode compartilhar a história de criação por trás da Modular?

Chris e eu nos conhecemos no Google e enviaram muitas tecnologias influentes que tiveram um impacto significativo no mundo da IA hoje. No entanto, sentimos que a IA estava sendo segurada por infraestrutura complexa e fragmentada demais, que testemunhamos pessoalmente implantando grandes cargas de trabalho para bilhões de usuários. Fomos motivados pelo desejo de acelerar o impacto da IA no mundo, elevando a indústria em direção ao software de IA de produção de qualidade, para que possamos, como uma sociedade global, ter um impacto maior sobre como vivemos. Alguém não pode deixar de se perguntar quantos problemas a IA pode ajudar a resolver, quantas doenças curar, quão mais produtivos podemos nos tornar como espécie, para avançar nossa existência para as gerações futuras, aumentando a penetração dessa tecnologia incrível.

Tendo trabalhado juntos por anos em infraestrutura de IA em grande escala – vimos a dor enorme do desenvolvedor em primeira mão – “por que as coisas não podem simplesmente funcionar”? Para o mundo adotar e descobrir a natureza transformadora da IA, precisamos de software e infraestrutura de desenvolvedor que escala da pesquisa para a produção e é altamente acessível. Isso permitirá que desbloqueamos a próxima forma de descobertas científicas – das quais a IA será crítica – e é um grande desafio de engenharia. Com esse histórico motivador, desenvolvemos uma crença intrínseca de que poderíamos nos empenhar em construir uma nova abordagem para a infraestrutura de IA e empoderar os desenvolvedores em todos os lugares para usar a IA para ajudar a tornar o mundo um lugar melhor. Também somos muito afortunados por ter muitas pessoas se juntarem a nós nessa jornada, e temos a melhor equipe de infraestrutura de IA do mundo como resultado.

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

A visão da Modular é permitir que a IA seja usada por qualquer pessoa, em qualquer lugar. Tudo o que fazemos na Modular está focado nesse objetivo, e trabalhamos de trás para frente na forma como construímos nossos produtos e tecnologia. Nessa luz, a velocidade do desenvolvedor é o que mais importa para nós, e tendo construído grande parte da infraestrutura de IA existente para o mundo – precisávamos considerar cuidadosamente o que permitiria que nossa equipe se movesse mais rapidamente. Vivemos o problema de linguagem de dois mundos em IA – onde os pesquisadores vivem no Python, e os engenheiros de produção e hardware vivem em C++ – e não tivemos escolha a não ser seguir esse caminho ou repensar a abordagem inteiramente. Escolhemos o último. Havia uma necessidade clara de resolver esse problema, mas muitas maneiras diferentes de resolvê-lo – abordamos isso com nossa forte crença de encontrar o ecossistema onde ele está 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 uma repetição disso. Também percebemos que não há linguagem hoje, em nossa opinião, que possa resolver todos os desafios que estamos tentando resolver para a IA, então empreendemos uma abordagem de princípios fundamentais, e o Mojo nasceu.

Como o Mojo permite uma escalabilidade e portabilidade sem esforço em muitos tipos de hardware?

Chris, eu mesmo e nossa equipe no Google (muitos na Modular) ajudamos a trazer o MLIR para o mundo anos atrás – com o objetivo de ajudar a comunidade global a resolver desafios reais, permitindo que os modelos de IA sejam consistentemente representados e executados em qualquer tipo de hardware. O MLIR é uma nova infraestrutura de compilador de código aberto que foi adotada em escala e está rapidamente se tornando o novo padrão para construir compiladores por meio do LLVM. Dada a história da nossa equipe em criar essa infraestrutura, é natural que a utilizemos pesadamente na Modular e que isso sublinhe nossa abordagem de ponta em desenvolver nova infraestrutura de IA para o mundo. Criticamente, enquanto o MLIR está sendo rapidamente adotado, o Mojo é a primeira linguagem que realmente aproveita o poder do MLIR e o expõe aos desenvolvedores de uma maneira única e acessível. Isso significa que ele escala desde os desenvolvedores Python que estão escrevendo aplicações, até os engenheiros de desempenho que estão implantando código de alto desempenho, até os engenheiros de hardware que estão escrevendo código de sistema de baixo nível para seu hardware único.

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?

O Mojo deve parecer muito familiar a qualquer programador Python, pois compartilha a sintaxe do Python. Mas há algumas diferenças importantes que você verá à medida que porta um programa Python simples para o Mojo, incluindo que ele simplesmente funcionará fora da caixa. Um de nossos principais objetivos para o Mojo é fornecer um superconjunto do Python – ou seja, tornar o Mojo compatível com programas Python existentes – e abraçar a implementação CPython para suporte de ecossistema de longa cauda. Então, permita que você lentamente aumente seu código e substitua as partes não performáticas com os recursos de baixo nível do Mojo para gerenciar explicitamente a memória, adicionar tipos, utilizar autotuning e muitos outros aspectos para obter o desempenho do C ou melhor! Sentimos que o Mojo lhe dá o melhor dos dois mundos e você não precisa escrever e reescrever seus algoritmos em múltiplas linguagens. Apreciamos que Python++ é um objetivo enorme, e será um esforço de vários anos, mas estamos comprometidos em torná-lo realidade e permitir que nossa comunidade lendária de mais de 140K+ desenvolvedores nos ajude a construir o futuro juntos.

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

Na verdade, é 68.000x agora! Mas vamos reconhecer que é apenas um programa em Mandelbrot – você pode ir e ler uma série de três posts de blog sobre como alcançamos isso – aqui, aqui e aqui. Claro, já estamos fazendo isso há muito tempo e sabemos que os 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, as ferramentas de alta qualidade e a documentação, e uma comunidade que utiliza a infraestrutura para inventar e construir de maneiras que não podemos nem imaginar. Somos construtores de ferramentas, e nosso objetivo é empoderar o mundo para usar nossas ferramentas, para criar produtos incríveis e resolver problemas importantes. Se nos concentrarmos em nosso objetivo maior, é realmente criar uma linguagem que encontre você onde você está hoje e então o eleve para um mundo melhor. O Mojo permite que você tenha uma linguagem altamente performática, usável, estáticamente tipada e portátil que se integra perfeitamente com seu código Python existente – dando a você o melhor dos dois mundos. Ele permite que você realize o verdadeiro poder do hardware com multithreading e parallelização de maneiras que o Python bruto de hoje não pode – desbloqueando a comunidade global de desenvolvedores para ter uma linguagem única que escala de cima para baixo.

O Mojo tem um poder mágico, que é sua capacidade de unificar linguagens de programação com um conjunto de ferramentas, por que isso é tão importante?

As linguagens sempre têm sucesso pelo poder de seus ecossistemas e das comunidades que se formam em torno delas. Já estamos trabalhando com comunidades de código aberto por muito tempo, e somos incrivelmente cuidadosos em nos envolver da maneira certa e garantir que façamos o que é certo pela comunidade. Estamos trabalhando incrivelmente duro para enviar nossa infraestrutura, mas precisamos de tempo para escalonar nossa equipe – então não teremos todas as respostas imediatamente, mas chegaremos lá. Recuando, nosso objetivo é elevar o ecossistema Python, abraçando o todo ecossistema existente, e não estamos buscando fraturá-lo como muitos outros projetos. A interoperabilidade torna mais fácil para a comunidade experimentar nossa infraestrutura, sem ter que reescrever todo o código, e isso importa muito para a IA.

Também aprendemos muito com o desenvolvimento de infraestrutura e ferramentas de IA ao longo dos últimos dez anos. Os sistemas monolíticos existentes não são facilmente extensíveis ou generalizáveis fora de seu alvo de domínio inicial, e a consequência é uma indústria de implantação de IA altamente fragmentada, com dezenas de cadeias de ferramentas que carregam diferentes trade-offs e limitações. Esses padrões de design retardaram o ritmo da inovação, tornando-as menos usáveis, menos portáteis e mais difíceis de escalar.

O próximo sistema de IA de próxima geração precisa ser de produção de qualidade e atender aos desenvolvedores onde eles estão. Ele não deve exigir uma reescrita cara, re-arquitetura ou re-base de código de usuário. Ele deve ser nativamente multi-framework, multi-nuvem e multi-hardware. Ele precisa combinar o melhor desempenho e eficiência com a melhor usabilidade. Essa é a única maneira de reduzir a fragmentação e desbloquear a próxima geração de hardware, dados e inovações algorítmicas.

A Modular recentemente anunciou que levantou US$ 100 milhões em nova financiamento, liderado pelo General Catalyst e preenchido por investidores existentes GV (Google Ventures), SV Angel, Greylock e Factory. O que devemos esperar em seguida?

Esse novo capital será usado principalmente para crescer nossa equipe, contratando as melhores pessoas em infraestrutura de IA, e continuar atendendo à enorme demanda comercial que estamos vendo por nossa plataforma. Modverse, nossa comunidade de mais de 130K+ desenvolvedores e 10K’s de empresas, estão todos buscando nossa infraestrutura – então queremos garantir que continuemos escalonando e trabalhando duro para desenvolvê-la para eles e entregá-la a eles. Nós nos mantemos em um padrão incrivelmente alto, e os produtos que enviamos são um reflexo de quem somos como uma equipe e de quem nos tornamos como uma empresa. Se você conhece alguém que é motivado, que ama a fronteira entre software e hardware e que quer ajudar a ver a IA penetrar o mundo de uma maneira significativa e positiva – envie-os para nós.

Qual é 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 “ideia” de programação instantaneamente evoca uma imagem de um desenvolvedor escrevendo código de baixo nível complexo que exige matemática pesada e lógica – mas não precisa ser percebido dessa maneira. A tecnologia sempre foi um grande facilitador de produtividade para a sociedade, e tornando a programação mais acessível e usável, podemos empoderar mais pessoas para abraçá-la. Empoderar as pessoas para automatizar processos repetitivos e tornar suas vidas mais simples é uma maneira poderosa de dar às pessoas mais tempo de volta.

E no 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. Eu acredito que temos uma grande oportunidade de torná-la ainda mais poderosa e encorajar mais do mundo a abraçar sua beleza e simplicidade. Como eu disse anteriormente, é sobre construir produtos que têm uma revelação progressiva de complexidade – permitindo abstrações de alto nível, mas escalando para abstrações de baixo nível também. Já estamos testemunhando um salto significativo com os modelos de IA permitindo traduções de texto para código progressivas – e essas só se tornarão mais personalizadas com o tempo – mas por trás dessa inovação mágica ainda há um desenvolvedor autorando e implantando código para alimentá-la. Já escrevemos sobre isso no passado – a IA continuará a desbloquear a criatividade e a produtividade em muitas linguagens de programação, mas eu também acredito que o Mojo abrirá o aperturamento do ecossistema ainda mais, permitindo mais acessibilidade, escalabilidade e portabilidade de hardware para muitos mais desenvolvedores em todo o mundo.

Para concluir, a IA penetrará nossas vidas de maneiras incontáveis, e ela existirá em todos os lugares – então eu espero que o Mojo catalise os desenvolvedores para ir e resolver os problemas mais importantes para a humanidade mais rapidamente – não importa onde eles vivam em nosso mundo. Eu acho que esse é um futuro pelo qual vale a pena lutar.

Obrigado pela grande entrevista, leitores que desejam aprender mais devem visitar Modular.

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

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