Inteligencia Artificial
Tim Davis, cofundador y presidente de Modular – Serie de entrevistas

Tim Davis, es cofundador y presidente de Modular, un conjunto de herramientas integrado y componible que simplifica su infraestructura de IA para que su equipo pueda desarrollar, implementar e innovar más rápido. Modular es mejor conocido por desarrollar Mojo, un nuevo lenguaje de programación que cierra la brecha entre la investigación y la producción al combinar lo mejor de Python con sistemas y metaprogramación.
Emprendedor repetido y líder de producto. Tim ayudó a construir, fundar y escalar grandes partes de la infraestructura de inteligencia artificial de Google en Google Brain y sistemas centrales de API (TensorFlow), compiladores (XLA & MLIR) y tiempos de ejecución para el servidor (CPU/GPU/TPU) y TF Lite (Móvil/Micro/Web), aprendizaje automático de Android & NNAPI, infraestructura de modelos grandes y OSS para miles de millones de usuarios y dispositivos. Le encanta ejecutar, construir y escalar productos para ayudar a las personasy el mundo.
¿Cuándo descubriste la codificación por primera vez y qué te atrajo de ella?
Cuando era niño y crecía en Australia, mi padre trajo a casa un Commodore 64C y los juegos fueron lo que me enganchó: Boulder Dash, Maniac Mansion, Double Dragon... ¡Qué época para estar vivo! Esa computadora me introdujo a BASIC y hackearlo fue mi primera introducción real a la programación. Las cosas se volvieron más intensas en la escuela secundaria y la universidad, donde usé lenguajes estáticos más tradicionales para los cursos de ingeniería y, con el tiempo, incluso incursioné en Javascript y VBA, antes de decidirme por Python para la gran mayoría de la programación como lenguaje de datos. ciencia e inteligencia artificial. Escribí un montón de código en mis inicios anteriores, pero hoy en día, por supuesto, utilizo Mojo y la cadena de herramientas que hemos creado a su alrededor.
Durante más de 5 años trabajaste en Google como Gerente Sénior de Producto y Líder de Producto del Grupo, donde ayudaste a escalar gran parte de la infraestructura de IA de Google en Google Brain. ¿Qué aprendiste de esta experiencia?
Las personas son las que construyen tecnologías y productos que cambian el mundo, y es un grupo devoto de personas unidas por una visión más amplia lo que las trae al mundo. Google es una empresa increíble, con gente increíble, y tuve la suerte de conocer y trabajar con muchas de las mentes más brillantes en IA hace años, cuando me uní al equipo de Brain. Las mayores lecciones que aprendí fueron centrarme siempre en el usuario y revelar progresivamente la complejidad, para capacitar a los usuarios para que cuenten sus historias únicas al mundo, como arreglar el problema. Gran Barrera de Coral o ayudar a personas como jason el bateristay atraer y reunir una mezcla diversa de personas para impulsar hacia un objetivo común. En una empresa enorme de gente muy inteligente y talentosa, esto es mucho más difícil de lo que puedas imaginar. Reflexionando sobre mi tiempo allí, siempre son las personas con las que trabajaste las que son realmente memorables. Siempre miraré hacia atrás con cariño y apreciaré que muchas personas asumieron riesgos por mí, y estoy enormemente agradecido de que lo hicieran, ya que muchos de esos riesgos me alentaron a ser un mejor líder y persona, a profundizar y comprender verdaderamente los sistemas de IA. Realmente me hizo darme cuenta del profundo poder que tiene la IA para impactar al mundo, y esta fue la razón por la que tuve la inspiración y el coraje de dejar y cofundar Modular.
¿Puedes compartir la historia del génesis detrás de Modular?
Chris y yo nos conocimos en Google y enviamos muchas tecnologías influyentes que han impactado significativamente el mundo de la IA actual. Sin embargo, sentimos que la IA estaba siendo frenada por una infraestructura demasiado compleja y fragmentada que fuimos testigos de primera mano del despliegue de grandes cargas de trabajo para miles de millones de usuarios. Nos motivó el deseo de acelerar el impacto de la IA en el mundo elevando la industria hacia software de IA de calidad de producción para que nosotros, como sociedad global, podamos tener un mayor impacto en la forma en que vivimos. Uno no puede evitar preguntarse cuántos problemas puede ayudar a resolver la IA, cuántas enfermedades curar, cuánto más productivos podemos llegar a ser como especie, para promover nuestra existencia para las generaciones futuras, al aumentar la penetración de esta increíble tecnología.
Después de haber trabajado juntos durante años en infraestructura crítica de IA a gran escala (vimos de primera mano el enorme dolor de los desarrolladores), "¿por qué las cosas no pueden simplemente funcionar"? Para que el mundo adopte y descubra la enorme naturaleza transformadora de la IA, necesitamos software e infraestructura de desarrollo que escale desde la investigación hasta la producción y que sea altamente accesible. Esto nos permitirá desbloquear la próxima vía de descubrimientos científicos, para los cuales la IA será fundamental, y es un gran desafío de ingenieríaCon esta experiencia motivadora, desarrollamos la convicción intrínseca de que podíamos proponernos construir un nuevo enfoque para la infraestructura de IA y empoderar a desarrolladores de todo el mundo para que la usen y ayuden a mejorar el mundo. También tenemos la gran suerte de contar con tantas personas que se unen a nosotros en este viaje, y como resultado, contamos con el mejor equipo de infraestructura de IA del mundo.
¿Puedes contarnos cómo se creó inicialmente el lenguaje de programación Mojo para su propio equipo?
modulares visión es permitir que la IA sea utilizada por cualquier persona, en cualquier lugar. Todo lo que hacemos en Modular se centra en ese objetivo, y partimos de ese objetivo en la forma en que desarrollamos nuestros productos y nuestra tecnología. En esta luz, nuestro propio desarrollador La velocidad es lo que nos importa en primer lugar, y habiendo construido gran parte de la infraestructura de IA existente para el mundo, necesitábamos considerar cuidadosamente qué permitiría a nuestro equipo moverse más rápido. Hemos vivido el problema del lenguaje de dos mundos en la IA (donde los investigadores viven en Python y los ingenieros de producción y hardware viven en C++) y no tuvimos más remedio que seguir ese camino o repensar el enfoque por completo. Elegimos este último. Había una clara necesidad de resolver este problema, pero muchas formas diferentes para resolverlo: lo abordamos con nuestra firme convicción de alcanzar el ecosistema donde se encuentra hoy y permitir un ascenso más simple hacia el futuro. Nuestro equipo sufre las cicatrices de la migración de software a gran escala y no queríamos que eso se repitiera. También nos dimos cuenta de que, en nuestra opinión, hoy en día no existe un lenguaje que pueda resolver todos los desafíos que intentamos resolver para la IA, por lo que adoptamos un enfoque de primeros principios y nació Mojo.
¿Cómo permite Mojo una escalabilidad y portabilidad perfectas en muchos tipos de hardware?
Chris, nuestro equipo de Google y yo (muchos de ellos en Modular) ayudamos a lograr MLIR en el mundo hace años, con el objetivo de ayudar a la comunidad global a resolver desafíos reales permitiendo que los modelos de IA se representen y ejecuten consistentemente en cualquier tipo de hardware. MLIR es un nuevo tipo de infraestructura de compilador de código abierto que se ha adoptado a escala y se está convirtiendo rápidamente en el nuevo estándar para crear compiladores a través de LLVMDada la trayectoria de nuestro equipo en la creación de esta infraestructura, es natural que la utilicemos ampliamente en Modular, lo que refuerza nuestro enfoque de vanguardia en el desarrollo de nuevas infraestructuras de IA para el mundo. Es fundamental destacar que, si bien MLIR se está adoptando rápidamente, Mojo es el primer lenguaje que realmente aprovecha el poder de MLIR y lo expone a los desarrolladores de una manera única y accesible. Esto significa que escala desde desarrolladores de Python que crean aplicaciones, hasta ingenieros de rendimiento que implementan código de alto rendimiento, e ingenieros de hardware que escriben código de sistema de muy bajo nivel para su hardware específico.
Las referencias a Mojo afirman que es básicamente Python++, con la accesibilidad de Python y el alto rendimiento de C. ¿Es esto una simplificación excesiva? ¿Cómo lo describirías?
Mojo debería resultarle muy familiar a cualquier programador de Python, ya que comparte la sintaxis de Python. Pero hay algunas diferencias importantes que verá al trasladar un programa Python simple a Mojo, incluido el hecho de que funcionará de inmediato. Uno de nuestros objetivos principales para Mojo es proporcionar un superconjunto de Python, es decir, hacer que Mojo sea compatible con los programas Python existentes, y adoptar la implementación de CPython para brindar soporte al ecosistema de cola larga. Luego, le permitirá aumentar lentamente su código y reemplazar las partes que no funcionan con las funciones de nivel inferior de Mojo para administrar explícitamente la memoria, agregar tipos, utilizar el ajuste automático y muchos otros aspectos para obtener el rendimiento de C o mejor. Creemos que Mojo le ofrece lo mejor de ambos mundos y no tiene que escribir y reescribir sus algoritmos en varios idiomas. Sabemos que Python++ es un objetivo enorme y que será un esfuerzo de varios años, pero estamos comprometidos a hacerlo realidad y permitir que nuestra legendaria comunidad de más de 140 desarrolladores nos ayude a construir el futuro juntos.
En una conferencia magistral reciente se mostró que Mojo es 35,000 veces más rápido que Python, ¿cómo se calculó esta velocidad?
¡Ahora es 68,000 veces mayor! Pero reconozcamos que solo se trata de un programa en Mandelbrot; puedes leer una serie de tres entradas de blog sobre cómo lo logramos: aquí, aquí y aquí. Claro que llevamos mucho tiempo haciendo esto y sabemos que los juegos de alto rendimiento no son lo que impulsa la adopción del lenguaje (¡aunque sean divertidos!). Es la velocidad del desarrollador, la usabilidad del lenguaje, cadenas de herramientas y documentación de alta calidad, y una comunidad que utiliza la infraestructura para inventar y construir de maneras que ni siquiera podemos imaginar. Somos desarrolladores de herramientas y nuestro objetivo es empoderar al mundo para que las use, cree productos increíbles y resuelva problemas importantes. Si nos centramos en nuestro objetivo más amplio, es crear un lenguaje que te acompañe en tu situación actual y te lleve fácilmente a un mundo mejor. Mojo te permite tener un lenguaje de alto rendimiento, usable, tipado estático y portable que se integra a la perfección con tu código Python existente, ofreciéndote lo mejor de ambos mundos. Le permite aprovechar el verdadero poder del hardware con subprocesos múltiples y paralelización de maneras que hoy en día el Python puro no puede, lo que permite que la comunidad global de desarrolladores tenga un solo lenguaje que se escale de arriba a abajo.
La magia de Mojo es su capacidad para unificar lenguajes de programación con un conjunto de herramientas, ¿por qué es esto tan importante?
Las lenguas siempre triunfan por el poder de sus ecosistemas y las comunidades que se forman a su alrededor. Hemos estado trabajando con comunidades de código abierto durante mucho tiempo y estamos increíblemente atentos a participar de la manera correcta y garantizar que hacemos lo correcto para la comunidad. Estamos trabajando increíblemente duro para enviar nuestra infraestructura, pero necesitamos tiempo para ampliar nuestro equipo, por lo que no tendremos todas las respuestas de inmediato, pero las llegaremos. Dando un paso atrás, nuestro objetivo es mejorar el ecosistema Python adoptando la todo existente ecosistema, y no buscamos fracturarlo como tantos otros proyectos. La interoperabilidad simplemente hace que sea más fácil para la comunidad probar nuestra infraestructura, sin tener que reescribir todo su código, y eso es muy importante para la IA.
Además, hemos aprendido mucho del desarrollo de la infraestructura y las herramientas de IA durante los últimos diez años. Los sistemas monolíticos existentes no son fácilmente extensibles o generalizables fuera de su dominio objetivo inicial y la consecuencia es una industria de implementación de IA enormemente fragmentada con docenas de cadenas de herramientas que conllevan diferentes compensaciones y limitaciones. Estos patrones de diseño han ralentizado el ritmo de la innovación al ser menos utilizables, menos portátiles y más difíciles de escalar.
El sistema de IA de próxima generación debe tener calidad de producción y satisfacer a los desarrolladores dondequiera que estén. No debe requerir una reescritura costosa, una nueva arquitectura o una nueva base del código de usuario. Debe ser de forma nativa multiframework, multinube y multihardware. Debe combinar el mejor rendimiento y eficiencia con la mejor usabilidad. Esta es la única manera de reducir la fragmentación y desbloquear la próxima generación de innovaciones algorítmicas, de datos y de hardware.
Modular recientemente anunció recaudar $ 100 millones en nuevos fondos, liderado por General Catalyst y ocupado por los inversores existentes GV (Google Ventures), SV Angel, Greylock y Factory. ¿Qué debemos esperar a continuación?
Este nuevo capital se utilizará principalmente para hacer crecer nuestro equipo, contratar a las mejores personas en infraestructura de IA y continuar satisfaciendo la enorme demanda comercial que estamos viendo para nuestra plataforma. Modverse, nuestra comunidad de más de 130 desarrolladores y 10 empresas, están buscando nuestra infraestructura, por lo que queremos asegurarnos de seguir escalando y trabajando duro para desarrollarla para ellos y entregársela. Mantenemos estándares increíblemente altos y los productos que enviamos son un reflejo de quiénes somos como equipo y en quiénes nos convertiremos como empresa. Si conoce a alguien motivado, que ama los límites del software y el hardware y que quiere ayudar a que la IA penetre en el mundo de una manera significativa y positiva, envíenoslo.
¿Cuál es su visión para el futuro de la programación?
La programación debería ser una habilidad que todos en la sociedad puedan desarrollar y utilizar. Para muchos, la “idea” de programación evoca instantáneamente la imagen de un desarrollador escribiendo código complejo de bajo nivel que requiere mucha lógica y matemática, pero no tiene por qué ser percibido de esa manera. La tecnología siempre ha sido un gran facilitador de la productividad para la sociedad y, al hacer que la programación sea más accesible y utilizable, podemos capacitar a más personas para que la adopten. Empoderar a las personas para que automaticen procesos repetitivos y les hagan la vida más sencilla es una forma poderosa de devolverles más tiempo.
Y en Python, ya contamos con un lenguaje maravilloso que ha resistido el paso del tiempo: es el lenguaje más popular del mundo, con una comunidad increíble, pero también tiene limitaciones. Creo que tenemos una gran oportunidad para hacerlo aún más potente y animar a más personas a abrazar su belleza y simplicidad. Como mencioné antes, se trata de crear productos con una revelación progresiva de la complejidad, lo que permite abstracciones de alto nivel, pero también escalables a niveles increíblemente bajos. Ya estamos presenciando un avance significativo con los modelos de IA que permiten traducciones progresivas de texto a código, y estas se volverán más personalizadas con el tiempo. Pero detrás de esta innovación mágica sigue habiendo un desarrollador que crea e implementa el código para impulsarla. Hemos escrito sobre esto en el pasado: la IA seguirá desbloqueando la creatividad y la productividad en muchos lenguajes de programación, pero también creo que Mojo abrirá aún más la apertura del ecosistema, potenciando una mayor accesibilidad, escalabilidad y portabilidad de hardware para muchos más desarrolladores en todo el mundo.
Para terminar, la IA penetrará nuestras vidas de maneras incalculables y existirá en todas partes, por lo que espero que Mojo impulse a los desarrolladores a resolver los problemas más importantes para la humanidad más rápido, sin importar dónde vivan en nuestro mundo. Creo que es un futuro por el que vale la pena luchar.
Gracias por la gran entrevista, los lectores que deseen obtener más información deben visitar Modular.