Modelos y plataformas de IA
Tim Davis, Co-Fundador y Presidente de Modular – Serie de Entrevistas

Tim Davis es el Co-Fundador y Presidente de Modular, una suite integrada y componible de herramientas que simplifica la infraestructura de inteligencia artificial para que su equipo pueda desarrollar, implementar y innovar más rápido. Modular es más conocida por desarrollar Mojo, un nuevo lenguaje de programación que combina lo mejor de Python con sistemas y metaprogramación para cerrar la brecha entre la investigación y la producció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 (GOOGL ) en Google Brain y Core Systems desde APIs (TensorFlow), Compiladores (XLA y MLIR) y entornos de ejecución para servidor (CPU/GPU/TPU) y TF Lite (Móvil/Micro/Web), Android ML y NNAPI, infraestructura de modelos grandes y OSS para miles de millones de usuarios y dispositivos. Le encanta correr, construir y escalar productos para ayudar a las personas y al mundo.
¿Cuándo descubrió inicialmente la codificación y qué lo atrajo a ella?
Como un niño que crecía en Australia, mi papá 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 jugar con eso fue mi primera introducción real a la programación. Las cosas se volvieron más intensas a través de la escuela secundaria y la universidad, donde utilicé lenguajes estáticos tradicionales para cursos de ingeniería, y con el tiempo incluso me metí en Javascript y VBA, antes de establecerme en Python para la mayoría de la programación como el lenguaje de la ciencia de datos y la inteligencia artificial. Escribí un montón de código en mis startups anteriores, pero estos días, por supuesto, utilizo Mojo y la cadena de herramientas que hemos creado alrededor de ella.
¿Qué aprendió de su experiencia en Google como Gerente de Producto Senior y Líder de Producto de Grupo, donde ayudó a escalar grandes partes de la infraestructura de inteligencia artificial de Google en Google Brain?
Las personas son las que construyen tecnologías y productos que cambian el mundo, y es un grupo dedicado de personas unidas por una visión más grande lo que los lleva al mundo. Google es una empresa increíble, con personas increíbles, y tuve la suerte de conocer y trabajar con muchas de las mentes más brillantes en inteligencia artificial hace años, cuando me mudé para unirme al equipo de Brain. Las lecciones más grandes que aprendí fueron enfocarme siempre en el usuario y revelar progresivamente la complejidad, para empoderar a los usuarios para que cuenten sus historias únicas al mundo, como arreglar el Arrecife de la Gran Barrera o ayudar a personas como Jason el Baterista, y atraer y reunir una mezcla diversa de personas para impulsar hacia un objetivo común. En una empresa masiva de personas muy inteligentes y talentosas, esto es mucho más difícil de lo que puedes imaginar. Reflexionando sobre mi tiempo allí, siempre son las personas con las que trabajé las que son verdaderamente memorables. Siempre miraré hacia atrás con cariño y aprecio que muchas personas corrieron riesgos conmigo, y estoy enormemente agradecido de que lo hicieran, ya que muchos de esos riesgos me animaron a ser un mejor líder y persona, a sumergirme profundamente y comprender verdaderamente los sistemas de inteligencia artificial. Esto me hizo darme cuenta del poder profundo que tiene la inteligencia artificial para impactar el mundo, y esta fue la razón por la que tuve la inspiración y el coraje para dejar y co-fundar Modular.
¿Puede compartir la historia de 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 inteligencia artificial hoy en día. Sin embargo, sentimos que la inteligencia artificial estaba siendo retenida por una infraestructura demasiado compleja y fragmentada que presenciamos de primera mano al implementar grandes cargas de trabajo para miles de millones de usuarios. Estábamos motivados por el deseo de acelerar el impacto de la inteligencia artificial en el mundo al levantar a la industria hacia software de inteligencia artificial de producción de calidad, para que podamos, como sociedad global, tener un impacto mayor en cómo vivimos. Uno no puede evitar preguntarse cuántos problemas puede ayudar a resolver la inteligencia artificial, cuántas enfermedades curar, cuánto más productivos podemos convertirnos como especie, para avanzar nuestra existencia para las generaciones futuras, al aumentar la penetración de esta tecnología increíble.
Habiendo trabajado juntos durante años en infraestructura de inteligencia artificial a gran escala – vimos el dolor de desarrollador enorme de primera mano – “¿por qué las cosas no pueden simplemente funcionar”? Para que el mundo adopte y descubra la naturaleza transformadora de la inteligencia artificial, necesitamos software y infraestructura de desarrollador que se escalen desde la investigación hasta la producción, y que sea altamente accesible. Esto permitirá que desbloqueemos la próxima forma de descubrimientos científicos – de los cuales la inteligencia artificial será crítica – y es un gran desafío de ingeniería. Con esta motivación de fondo, desarrollamos una creencia intrínseca de que podríamos emprender una nueva aproximación para la infraestructura de inteligencia artificial, y empoderar a los desarrolladores en todas partes para que utilicen la inteligencia artificial para ayudar a hacer del mundo un lugar mejor. También somos muy afortunados de tener a muchas personas que se unan a nosotros en este viaje, y tenemos el mejor equipo de infraestructura de inteligencia artificial del mundo como resultado.
¿Puede discutir cómo el lenguaje de programación Mojo se construyó inicialmente para su propio equipo?
La visión de Modular es permitir que la inteligencia artificial sea utilizada por cualquier persona, en cualquier lugar. Todo lo que hacemos en Modular se centra en ese objetivo, y caminamos hacia atrás desde ese objetivo en la forma en que construimos nuestros productos y nuestra tecnología. En esta luz, nuestra propia velocidad de desarrollador es lo que más nos importa, y habiendo construido gran parte de la infraestructura de inteligencia artificial existente para el mundo – necesitábamos considerar cuidadosamente qué permitiría que nuestro equipo se moviera más rápido. Hemos vivido a través del problema de lenguaje de dos mundos en inteligencia artificial – donde los investigadores viven en Python, y los ingenieros de producción y hardware viven en C++ – y no tuvimos más remedio que o bien seguir por ese camino, o replantear completamente el enfoque. Elegimos lo último. Había una necesidad clara de resolver este problema, pero diferentes maneras de resolverlo – nos acercamos a ello con nuestra creencia fuerte de reunirnos con el ecosistema donde está hoy, y permitir una transición más sencilla hacia el futuro. Nuestro equipo lleva las cicatrices de la migración de software a gran escala, y no queríamos una repetición de eso. También nos dimos cuenta de que no hay lenguaje hoy en día, en nuestra opinión, que pueda resolver todos los desafíos que estamos intentando resolver para la inteligencia artificial, así que emprendimos un enfoque de principios básicos, y Mojo nació.
¿Cómo permite Mojo una escalabilidad y portabilidad perfectas en muchos tipos de hardware?
Chris, yo mismo y nuestro equipo en Google (muchos en Modular) ayudamos a traer MLIR al mundo hace años – con el objetivo de ayudar a la comunidad global a resolver desafíos reales al permitir que los modelos de inteligencia artificial sean representados y ejecutados consistentemente en cualquier tipo de hardware. MLIR es una nueva infraestructura de compilador de código abierto que ha sido adoptada a gran escala, y se está convirtiendo rápidamente en el nuevo estándar para la construcción de compiladores a través de LLVM. Dado que la historia de nuestro equipo en la creación de esta infraestructura, es natural que la utilicemos mucho en Modular y que subyace a nuestro enfoque de vanguardia en el desarrollo de nueva infraestructura de inteligencia artificial para el mundo. Críticamente, mientras que MLIR está siendo adoptado 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 se escala desde desarrolladores de Python que escriben aplicaciones, hasta ingenieros de rendimiento que implementan código de alto rendimiento, hasta ingenieros de hardware que escriben código de sistema de bajo nivel para su hardware único.
Las referencias a Mojo afirman que es básicamente Python++, con la accesibilidad de Python y el alto rendimiento de C. ¿Es esta una simplificación excesiva? ¿Cómo describiría usted?
Mojo debería sentirse muy familiar para cualquier programador de Python, ya que comparte la sintaxis de Python. Pero hay algunas diferencias importantes que verás a medida que ports un programa de Python simple a Mojo, incluyendo que simplemente funcionará fuera de la caja. Uno de nuestros objetivos principales para Mojo es proporcionar un superconjunto de Python – es decir, hacer que Mojo sea compatible con programas de Python existentes – y abrazar la implementación de CPython para el soporte del ecosistema de cola larga. Luego, permite que puedas aumentar lentamente tu código y reemplazar las partes que no funcionan con las características de bajo nivel de Mojo para gestionar explícitamente la memoria, agregar tipos, utilizar la autotuning y muchos otros aspectos para obtener el rendimiento de C o mejor. Sentimos que Mojo te da lo mejor de ambos mundos y no tienes que escribir y reescribir tus algoritmos en múltiples lenguajes. Apreciamos que Python++ es un objetivo enorme, y será un esfuerzo de varios años, pero estamos comprometidos con hacer que sea una realidad y permitir que nuestra legendaria comunidad de más de 140K+ desarrolladores nos ayuden a construir el futuro juntos.
En una conferencia reciente se mostró que Mojo es 35,000 veces más rápido que Python, ¿cómo se calculó esta velocidad?
En realidad, ahora es 68,000 veces más rápido. Pero reconozcamos que es solo un programa en Mandelbrot – puedes ir y leer una serie de tres publicaciones en el blog sobre cómo logramos esto – aquí, aquí y aquí. Por supuesto, hemos estado haciendo esto durante mucho tiempo y sabemos que los juegos de rendimiento no son lo que impulsa la adopción de lenguajes (a pesar de que son divertidos) – es la velocidad del desarrollador, la usabilidad del lenguaje, las herramientas de alta calidad y la documentación, y una comunidad que utiliza la infraestructura para inventar y construir de maneras que no podemos ni imaginar. Somos constructores de herramientas, y nuestro objetivo es empoderar al mundo para que utilice nuestras herramientas, para crear productos increíbles y resolver problemas importantes. Si nos enfocamos en nuestro objetivo más grande, es en realidad crear un lenguaje que te encuentre donde estás hoy y luego te eleve a un mundo mejor. Mojo permite que tengas un lenguaje altamente performante, usable, estáticamente tipado y portable que se integra perfectamente con tu código de Python existente – dándote lo mejor de ambos mundos. Te permite realizar el verdadero poder del hardware con multithreading y paralelización de maneras que el Python crudo de hoy en día no puede – desbloqueando la comunidad de desarrolladores globales para que tengan un solo lenguaje que se escalona desde arriba hasta 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?
Los lenguajes siempre tienen éxito por el poder de sus ecosistemas y las comunidades que se forman alrededor de ellos. Hemos estado trabajando con comunidades de código abierto durante mucho tiempo, y somos increíblemente considerados con respecto a involucrarnos de la manera correcta y asegurarnos de que hacemos lo correcto por la comunidad. Estamos trabajando increíblemente duro para enviar nuestra infraestructura, pero necesitamos tiempo para escalar nuestro equipo – así que no tendremos todas las respuestas de inmediato, pero llegaremos allí. Retrocediendo, nuestro objetivo es levantar el ecosistema de Python al abrazar el ecosistema existente entero, y no estamos buscando fracturarlo como muchos 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 importa mucho para la inteligencia artificial.
También hemos aprendido mucho del desarrollo de infraestructura y herramientas de inteligencia artificial en los últimos diez años. Los sistemas monolíticos existentes no son fáciles de extender o generalizar fuera de su objetivo de dominio inicial, y la consecuencia es una industria de implementación de inteligencia artificial muy fragmentada con docenas de cadenas de herramientas que llevan 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 inteligencia artificial de la próxima generación necesita ser de producción de calidad y reunirse con los desarrolladores donde están. No debe requerir una reescritura costosa, una re-arquitectura o una re-base del código del usuario. Debe ser nativamente multi-marco, multi-nube y multi-hardware. 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 de hardware, datos y algoritmos.
Modular acaba de anunciar la recaudación de $100 millones en nueva financiación, liderada por General Catalyst y completada por inversores existentes GV (Google Ventures), SV Angel, Greylock y Factory. ¿Qué debemos esperar a continuación?
Esta nueva capital se utilizará principalmente para crecer nuestro equipo, contratar a las mejores personas en infraestructura de inteligencia artificial, y seguir cumpliendo con la enorme demanda comercial que estamos viendo para nuestra plataforma. Modverse, nuestra comunidad de más de 130K+ desarrolladores y 10K empresas, están buscando nuestra infraestructura – así que queremos asegurarnos de que sigamos escalando y trabajando duro para desarrollarla para ellos, y entregarla a ellos. Nosotros mismos nos mantenemos a un estándar increíblemente alto, y los productos que enviamos son un reflejo de quiénes somos como equipo, y quiénes nos convertimos como empresa. Si conoces a alguien que esté motivado, que ame la frontera entre software y hardware, y que quiera ayudar a que la inteligencia artificial penetre el mundo de una manera significativa y positiva – envíalos hacia nosotros.
¿Cuál es su visión para el futuro de la programación?
La programación debería ser una habilidad que cualquier persona en la sociedad pueda desarrollar y utilizar. Para muchos, la “idea” de programación instantáneamente evoca una imagen de un desarrollador escribiendo código de bajo nivel complejo que requiere matemáticas y lógica pesada – pero no tiene que ser percibido de esa manera. La tecnología siempre ha sido un gran habilitador de productividad para la sociedad, y al hacer que la programación sea más accesible y usable, podemos empoderar a más personas para que la abracen. Empoderar a las personas para que automaticen procesos repetitivos y simplifiquen sus vidas es una manera poderosa de darles más tiempo.
Y en Python, ya tenemos un lenguaje maravilloso que ha resistido la prueba del tiempo – es el lenguaje más popular del mundo, con una comunidad increíble – pero también tiene limitaciones. Creo que tenemos una oportunidad enorme para hacer que sea aún más poderoso, y para animar a más personas del mundo a abrazar su belleza y simplicidad. Como dije anteriormente, se trata de construir productos que tienen una revelación progresiva de la complejidad – permitir abstracciones de alto nivel, pero escalando a abstracciones de bajo nivel también. Ya estamos presenciando un salto significativo con los modelos de inteligencia artificial que permiten traducciones de texto a código progresivas – y estas solo se volverán más personalizadas con el tiempo – pero detrás de esta innovación mágica todavía hay un desarrollador que autoriza y despliega código para alimentarla. Hemos escrito sobre esto en el pasado – la inteligencia artificial continuará desbloqueando la creatividad y la productividad en muchos lenguajes de programación, pero también creo que Mojo abrirá el aperturador del ecosistema aún más, empoderando una mayor accesibilidad, escalabilidad y portabilidad de hardware para muchos más desarrolladores en todo el mundo.
Para terminar, la inteligencia artificial penetrará nuestras vidas de maneras inimaginables, y existirá en todas partes – así que espero que Mojo catalice a los desarrolladores para que vayan y resuelvan los problemas más importantes para la humanidad más rápido – no importa dónde vivan en nuestro mundo. Creo que ese es un futuro por el que vale la pena luchar.
Gracias por la gran entrevista, los lectores que desean aprender más deben visitar Modular.












