Entrevistas

Profesor Eran Yahav, Co-Fundador y Co-CEO de Tabnine – Serie de Entrevistas

mm
Añade Unite.AI a tus fuentes preferidas en Google

Profesor Eran Yahav, Co-Fundador y Co-CEO de Tabnine es un profesor de ciencias de la computación en el Technion – Instituto de Tecnología de Israel cuya investigación se centra en lenguajes de programación, aprendizaje automático y ingeniería de software, particularmente en síntesis de programas y análisis de código a gran escala. Junto con su trabajo académico, co-fundó Tabnine (originalmente Codota) para aplicar años de investigación en herramientas prácticas para desarrolladores, ayudando a pionear la autocompletación de código y la automatización impulsadas por IA. Su trabajo conecta la academia y la industria, con un enfoque en hacer que el código generado por IA sea más confiable, seguro y consciente del contexto para entornos empresariales del mundo real.

Tabnine es una plataforma de codificación impulsada por IA diseñada para ayudar a los desarrolladores en todo el ciclo de vida del desarrollo de software, desde la escritura y depuración de código hasta la generación de pruebas y documentación. Originalmente lanzada como una herramienta de autocompletación de código, ha evolucionado hacia una plataforma más amplia orientada a la empresa que integra IA generativa y flujos de trabajo basados en agentes, lo que permite a los equipos automatizar tareas de desarrollo complejas mientras mantienen un control sólido sobre la privacidad, la seguridad y el cumplimiento. Con soporte para docenas de lenguajes de programación y integraciones en los principales entornos de desarrollo integrado, Tabnine tiene como objetivo mejorar la productividad de los desarrolladores al mismo tiempo que garantiza que el código generado por IA siga siendo de confianza y esté alineado con los estándares de la organización.

Ha pasado años investigando el análisis y la síntesis de programas en el Technion y anteriormente trabajó en IBM Research. ¿Qué problema en el desarrollo de software lo convenció de co-fundar Tabnine, y cómo su investigación académica dio forma a la visión original de la empresa?

Mi trabajo académico se centró en el análisis y la síntesis de programas, que es esencialmente enseñar a las máquinas a entender y generar código. Hice mi doctorado en Análisis de Programas, y este es también donde pasé mis primeros años de investigación aplicada. Abordar problemas de calidad de software con análisis de programas hizo que me diera cuenta de que algunos problemas son muy difíciles de resolver una vez que el programa se ha escrito de manera incorrecta. Una onza de prevención vale más que una libra de cura, si se puede. Esto me convenció de que la forma correcta de abordar los problemas de calidad de software es a través de la Síntesis de Programas, que es donde invertí la mayoría de mi tiempo y energía de investigación.

Inicialmente trabajé en la Síntesis de Programas para programas concurrentes, intentando automatizar la creación de programas concurrentes a partir de programas secuenciales. Luego cambié a una síntesis de programas más generalmente aplicable utilizando aprendizaje automático.

La síntesis de programas utilizando aprendizaje automático también fue la idea fundamental que impulsó a Tabnine. La idea, que ahora parece obvia, era que los modelos podrían aprender patrones de codificación directamente de grandes corpus de código y asistir a los desarrolladores en tiempo real. Esta idea general es aplicable en todas las etapas del ciclo de vida del desarrollo de software – desde la creación de código hasta la revisión de código, la implementación y más allá.

La visión siempre ha sido la de aumentar al desarrollador humano dándoles herramientas que aceleren el proceso de desarrollo y eliminen la fricción. El desarrollo de software es una disciplina creativa y de resolución de problemas, y el objetivo era que la IA elimine la fricción del proceso manejando tareas rutinarias y ayudando a los desarrolladores a mantenerse en flujo. Esa visión todavía nos guía hoy, aunque la tecnología ha evolucionado significativamente desde aquellos primeros días.

Tabnine pionera en asistentes de codificación de IA años antes de que la IA generativa se convirtiera en mainstream con herramientas como los modelos de OpenAI. Mirando hacia atrás, ¿cómo ha evolucionado el papel de la IA en el desarrollo de software desde aquellos primeros días, y qué lecciones aprendió la industria de la primera oleada de copilotos de codificación?

La primera generación de asistentes de codificación de IA se centró principalmente en la predicción. Eran esencialmente sistemas de autocompletado avanzados que ayudaban a los desarrolladores a escribir código más rápido prediciendo la siguiente línea o función.

Lo que ha cambiado con los bucles de agentes es que la IA ahora puede manejar tareas con mayor autonomía, hasta el punto en que podemos considerar a los agentes (con la guía adecuada) como desarrolladores junior independientes.

Pero esto también ha enseñado a la industria una lección importante. La capacidad bruta del modelo no es suficiente para el desarrollo de software empresarial. Los modelos entrenados con datos públicos pueden producir salidas impresionantes, pero a menudo carecen de conciencia de la arquitectura, las dependencias y las convenciones de una organización.

Eso es por lo que la siguiente etapa de evolución no se trata solo de modelos más grandes o ventanas de contexto más grandes, sino de conectar esos modelos al contexto real en el que se construye el software.

Muchas empresas están descubriendo que escalar agentes de IA requiere más que solo modelos más grandes – requiere un contexto organizacional más profundo. ¿Por qué cree que el contexto se está convirtiendo en la verdadera frontera para el desarrollo de IA confiable?

Los sistemas de software son redes complejas de relaciones. Un solo cambio puede afectar múltiples servicios, API o componentes downstream.

Los modelos de IA de hoy son muy buenos para generar código plausible, pero a menudo operan sin una comprensión estructurada de esas relaciones. Sin esa comprensión, la IA no puede razonar de manera confiable sobre las consecuencias de un cambio.

Lo que las empresas están descubriendo es que la confiabilidad de los sistemas de IA depende de la calidad del contexto en el que operan. Si un sistema de IA entiende la arquitectura del sistema, las dependencias entre servicios y los estándares de codificación de la organización, puede generar código que se alinee mucho más estrechamente con cómo funciona realmente el sistema.

En ese sentido, el contexto se está convirtiendo en la próxima frontera para el desarrollo de IA empresarial.

Su nuevo Motor de Contexto Empresarial tiene como objetivo dar a los agentes de IA una comprensión estructurada de la arquitectura, las dependencias y las prácticas de ingeniería de una organización. ¿Cómo se diferencia este enfoque de métodos comunes como la generación aumentada con recuperación que muchas empresas utilizan actualmente?

La generación aumentada con recuperación es una técnica útil. Permite a los modelos recuperar documentos o fragmentos de código relevantes al generar una respuesta.

Pero la recuperación sola no crea comprensión. Proporciona acceso a la información, no estructura.

El Motor de Contexto Empresarial está diseñado para ir más allá al construir una representación estructurada del entorno de software. Analiza repositorios, servicios, dependencias, API y relaciones arquitectónicas y las organiza en un modelo de cómo funciona realmente el sistema.

Esto permite a los sistemas de IA razonar sobre las relaciones entre componentes en lugar de simplemente recuperar fragmentos de texto. Para entornos empresariales complejos, esa distinción se vuelve muy importante.

Las herramientas de codificación de IA están evolucionando desde sugerencias de autocompletado hasta agentes autónomos capaces de ejecutar flujos de trabajo de múltiples pasos. ¿Cómo ve el cambio en el equilibrio entre desarrolladores humanos y sistemas agénticos en los próximos cinco años?

Los agentes de IA asumirán cada vez más tareas de desarrollo rutinarias. Ya son capaces de implementar características de extremo a extremo, incluyendo pruebas y documentación. Cada desarrollador se convertirá en el líder de un equipo de desarrolladores de IA. El principal desafío sería comunicar los requisitos a este equipo y verificar que los artefactos generados coincidan con los requisitos delineados.

Sin embargo, el desarrollo de software es fundamentalmente sobre resolución de problemas y diseño. Los desarrolladores humanos seguirán definiendo la arquitectura, tomando decisiones y guiando la dirección general de los sistemas.

Lo que cambiará es el nivel de abstracción en el que trabajan los desarrolladores. En lugar de centrarse en el código, los desarrolladores coordinarán cada vez más flujos de trabajo de nivel superior y colaborarán con sistemas de IA que ejecutan partes de esos flujos de trabajo.

En otras palabras, el papel de los desarrolladores se vuelve más estratégico a medida que la IA maneja más del trabajo mecánico.

Tabnine ha indicado que los usuarios empresariales pueden ver tasas de aceptación de código generado por IA que alcanzan alrededor del 80% en algunos entornos. ¿Qué métricas deben utilizar las organizaciones para determinar si las herramientas de codificación de IA realmente están mejorando la productividad de los desarrolladores en lugar de simplemente generar más código?

La pregunta clave no es cuánto código genera la IA, sino cuánto trabajo útil produce en realidad.

Hay varias métricas que las organizaciones deben rastrear. Una es la tasa de aceptación en el primer paso, que mide con qué frecuencia el código generado por IA se puede usar sin modificación. Otra es el tiempo de ciclo de revisión – cuántas iteraciones se requieren antes de que se pueda fusionar una solicitud de extracción.

Las organizaciones también deben examinar el tiempo que los desarrolladores dedican a volver a trabajar, así como el tiempo de liderazgo para los cambios desde el desarrollo hasta la producción.

Si las herramientas de IA realmente están mejorando la productividad, deberías ver mejoras en esas métricas. Los desarrolladores dedican menos tiempo a arreglar el código generado y más tiempo trabajando en tareas de mayor valor.

Las empresas siguen siendo cautelosas al exponer código propietario a modelos externos. ¿Cómo aborda el concepto de “Codificación de IA de Confianza” las preocupaciones de gobernanza, privacidad y cumplimiento que han frenado la adopción empresarial de herramientas de desarrollo de IA?

La confianza es uno de los factores más importantes en la adopción empresarial de IA.

La confianza es el desafío definitivo para hacer realidad al ingeniero de IA. ¿Cómo confiamos en que el ingeniero de IA actúe de manera autónoma para completar tareas críticas de ingeniería de software? ¿Cómo nos aseguramos de que sus acciones se alineen con nuestras expectativas de calidad, seguridad y cumplimiento de nuestras políticas? Si el ingeniero de IA ha de ser un miembro aceptado de nuestros equipos de ingeniería, debe ser tan de confianza como nuestros compañeros de equipo bien verificados y debidamente incorporados.

Abordar este desafío depende de dos pilares críticos:

  • Personalización: Equipar al ingeniero de IA con una comprensión íntima de su organización, base de código y mejores prácticas.
  • Control: Implementar sistemas robustos para garantizar que todo el código – tanto el generado por IA como el escrito por humanos – cumpla con los estándares de calidad, seguridad, rendimiento y confiabilidad de su organización.

Además, la Codificación de IA de Confianza significa dar a las organizaciones el control sobre cómo se despliega la IA y garantizar la gobernanza y el control centralizados.

Ha sugerido que el contexto organizacional puede convertirse en una capa fundamental en la pila de IA empresarial – similar a las bases de datos o la infraestructura en la nube en eras de computación anteriores. ¿Cómo se ve esa arquitectura futura?

Si miramos cómo evoluciona la tecnología empresarial, a menudo vemos la aparición de nuevas capas de infraestructura.

Las bases de datos se convirtieron en la base para la gestión de datos. Las plataformas en la nube se convirtieron en la base para ejecutar aplicaciones a escala.

En la era de la IA, las organizaciones necesitarán infraestructura que permita a los sistemas de IA entender la estructura interna de la empresa – sus sistemas, relaciones y restricciones operativas.

Esta capa de infraestructura proporcionará contexto estructurado que múltiples sistemas de IA puedan utilizar, ya sean asistentes de codificación, agentes de soporte o herramientas de automatización operativa.

En ese sentido, el contexto se convierte en una base compartida para la IA empresarial.

Muchas empresas están construyendo asistentes de codificación estrechamente acoplados a un solo modelo base. Tabnine, en cambio, permite a las empresas conectar diferentes modelos según sus necesidades. ¿Por qué es importante la flexibilidad del modelo para la evolución a largo plazo de las herramientas de desarrollo de IA empresarial?

El ecosistema de IA está evolucionando muy rápidamente. Se lanzan nuevos modelos con frecuencia, y diferentes modelos a menudo tienen fortalezas en diferentes áreas.

Las empresas no deberían tener que rediseñar sus flujos de trabajo de desarrollo cada vez que cambia el paisaje del modelo. Al permitir que las organizaciones elijan y cambien entre modelos, proporcionamos flexibilidad que ayuda a proteger su estrategia de IA para el futuro.

La flexibilidad del modelo también permite a las organizaciones equilibrar el rendimiento, el costo, los requisitos de privacidad y las limitaciones de implementación.

A largo plazo, las empresas probablemente operarán en un entorno de múltiples modelos, y las plataformas de desarrollo deben diseñarse teniendo en cuenta esa realidad.

Para los directores técnicos y líderes de ingeniería que evalúan plataformas de desarrollo de IA hoy en día, ¿cuáles son los errores más grandes que cometen las organizaciones al implementar herramientas de codificación de IA, y cómo pueden evitarlos?

Un error común es centrarse solo en la capacidad del modelo. Los modelos más grandes son definitivamente un componente crítico, pero la confiabilidad en entornos del mundo real depende de cómo bien la IA entiende el sistema en el que opera.

Otro error es implementar herramientas de IA sin considerar los requisitos de gobernanza y seguridad. Las empresas necesitan políticas claras sobre cómo se accede al código, cómo se implementan los modelos y cómo se validan los resultados.

Finalmente, las organizaciones a veces esperan que la IA proporcione ganancias de productividad inmediatas sin adaptar los flujos de trabajo o proporcionar suficiente contexto. Los despliegues exitosos generalmente involucran la integración de la IA en los procesos de desarrollo existentes y la conexión a la arquitectura y el código de la organización.

Cuando esos elementos se unen, la IA puede convertirse en un poderoso acelerador para el desarrollo de software en lugar de solo otra herramienta.

Gracias por la gran entrevista, los lectores que deseen aprender más pueden visitar Tabnine.

Antoine es un líder visionario y socio fundador de Unite.AI, impulsado por una pasión inquebrantable por dar forma y promover el futuro de la IA y la robótica. Como empresario serial, cree que la IA será tan disruptiva para la sociedad como la electricidad, y a menudo se le escucha hablando con entusiasmo sobre el potencial de las tecnologías disruptivas y la AGI.

Como futurista, está dedicado a explorar cómo estas innovaciones darán forma a nuestro mundo. Además, es el fundador de Securities.io, una plataforma enfocada en invertir en tecnologías de vanguardia que están redefiniendo el futuro y remodelando sectores enteros.