.

Otros

La segunda ola de codificación de IA ya está aquí

0

Una serie de empresas emergentes compiten para crear modelos que puedan producir software cada vez mejor. Afirman que es el camino más corto hacia la inteligencia artificial general.

  • por Will Douglas Heaven | traducido por
  • 20 Enero, 2025

Pregúntele a las personas que desarrollan IA generativa para qué sirve actualmente la IA generativa (qué es lo que realmente les entusiasma) y muchos le dirán: para codificar.

"Eso es algo que ha sido muy emocionante para los desarrolladores", dijo Jared Kaplan, científico jefe de Anthropic, a MIT Technology Review este mes : "Se trata realmente de comprender qué está mal con el código y depurarlo".

Copilot, una herramienta creada sobre los grandes modelos de lenguaje de OpenAI y lanzada por GitHub, con el respaldo de Microsoft, en 2022, es utilizada actualmente por millones de desarrolladores en todo el mundo. Millones más recurren a chatbots de uso general como Claude de Anthropic, ChatGPT de OpenAI y Gemini de Google DeepMind para obtener ayuda diaria.

“Hoy, más de una cuarta parte de todo el código nuevo de Google es generado por IA, que luego es revisado y aceptado por ingenieros”, afirmó el director ejecutivo de Alphabet, Sundar Pichai, en una conferencia telefónica sobre ganancias en octubre : “Esto ayuda a nuestros ingenieros a hacer más y avanzar más rápido”. Es de esperar que otras empresas tecnológicas se pongan al día, si aún no lo han hecho.

No son solo las grandes bestias las que están lanzando herramientas de codificación de IA. También han entrado en este mercado en plena efervescencia muchas nuevas empresas. Las recién llegadas como Zencoder, Merly, Cosine, Tessl (valorada en 750 millones de dólares a los pocos meses de su creación) y Poolside (valorada en 3.000 millones de dólares antes incluso de lanzar un producto) se pelean por su tajada del pastel. “De hecho, parece que los desarrolladores están dispuestos a pagar por copilotos”, afirma Nathan Benaich, analista de la firma de inversiones Air Street Capital: “Y por eso el código es una de las formas más fáciles de monetizar la IA”.

Estas empresas prometen llevar los asistentes de codificación generativa al siguiente nivel. En lugar de proporcionar a los desarrolladores una especie de autocompletado superpoderoso, como la mayoría de las herramientas existentes, esta próxima generación puede crear prototipos, probar y depurar el código por usted. El resultado es que los desarrolladores podrían convertirse esencialmente en gerentes, que pueden pasar más tiempo revisando y corrigiendo el código escrito por un modelo que escribiéndolo desde cero ellos mismos.

Pero hay más. Muchos de los que están desarrollando asistentes de codificación generativa creen que podrían ser una vía rápida hacia la inteligencia artificial general (AGI), la hipotética tecnología superhumana que varias empresas importantes afirman tener en la mira.

“La primera vez que veremos una actividad económicamente muy valiosa que alcance capacidades de nivel humano será en el desarrollo de software”, afirma Eiso Kant, director ejecutivo y cofundador de Poolside. (OpenAI ya ha alardeado de que su último modelo o3 venció al propio científico jefe de la empresa en un desafío de codificación competitivo).

Bienvenido a la segunda ola de codificación de IA.

Código correcto

Los ingenieros de software hablan de dos tipos de corrección. En primer lugar, está el sentido en el que la sintaxis de un programa (su gramática) es correcta, es decir, que todas las palabras, números y operadores matemáticos están en el lugar correcto. Esto es mucho más importante que la corrección gramatical en el lenguaje natural. Si cometes un pequeño error en miles de líneas de código, nada de lo que se escribe funcionará.

La primera generación de asistentes de codificación es bastante buena para producir código correcto en este sentido. Entrenados con miles de millones de fragmentos de código, han asimilado las estructuras superficiales de muchos tipos de programas.

Pero también está el sentido en el que la función de un programa es correcta: claro, se ejecuta, pero ¿realmente hace lo que uno quería que hiciera? Es ese segundo nivel de corrección al que apunta la nueva ola de asistentes de codificación generativa, y esto es lo que realmente cambiará la forma en que se crea el software.

“Los modelos de lenguaje grandes pueden escribir código que se compila, pero no siempre pueden escribir el programa que uno desea”, afirma Alistair Pullen, cofundador de Cosine. “Para lograrlo, es necesario recrear los procesos de pensamiento que habría seguido un programador humano para obtener ese resultado final”.

El problema es que los datos con los que se ha entrenado a la mayoría de los asistentes de codificación (los miles de millones de fragmentos de código extraídos de repositorios en línea) no reflejan esos procesos de pensamiento. Representan un producto terminado, no lo que se ha hecho para crearlo. “Hay mucho código disponible”, dice Kant. “Pero esos datos no representan el desarrollo del software”.

Lo que Pullen, Kant y otros están descubriendo es que para construir un modelo que haga mucho más que autocompletar (uno que pueda generar programas útiles, probarlos y corregir errores), es necesario mostrarle mucho más que solo código. Es necesario mostrarle cómo se compuso ese código.

En resumen, empresas como Cosine y Poolside están creando modelos que no solo imitan el aspecto que tiene un buen código (ya sea que funcione bien o no), sino que imitan el proceso que produce dicho código en primer lugar. Si se hace bien, los modelos producirán un código mucho mejor y correcciones de errores mucho mejores.

Pan rallado

Pero primero se necesita un conjunto de datos que capture ese proceso: los pasos que un desarrollador humano podría seguir al escribir código. Piense en estos pasos como un rastro de migas de pan que una máquina podría seguir para producir un fragmento de código similar.

Parte de esto es decidir qué materiales utilizar: ¿Qué secciones de la base de código existente son necesarias para una tarea de programación determinada? “El contexto es fundamental”, dice el fundador de Zencoder, Andrew Filev. “La primera generación de herramientas no hacía un buen trabajo con el contexto; básicamente, solo miraban las pestañas abiertas. Pero el repositorio de código podría tener 5000 archivos y se perderían la mayoría”.

Zencoder ha contratado a un grupo de veteranos de los motores de búsqueda para que le ayuden a crear una herramienta que pueda analizar grandes bases de código y determinar qué es relevante y qué no. Este contexto detallado reduce las alucinaciones y mejora la calidad del código que pueden producir los grandes modelos de lenguaje, afirma Filev: "Lo llamamos "repo grokking" (recopilación de datos).

Cosine también cree que el contexto es clave, pero se basa en él para crear un nuevo tipo de conjunto de datos. La empresa ha pedido a docenas de programadores que registren lo que estaban haciendo mientras trabajaban en cientos de tareas de programación diferentes. “Les pedimos que escribieran todo”, dice Pullen: “¿Por qué abriste ese archivo? ¿Por qué te desplazaste hasta la mitad? ¿Por qué lo cerraste?”. También pidieron a los programadores que anotaran fragmentos de código terminados, marcando secciones que habrían requerido el conocimiento de otros fragmentos de código o documentación específica para escribirse.

Luego, Cosine toma toda esa información y genera un gran conjunto de datos sintéticos que mapea los pasos típicos que siguen los programadores y las fuentes de información que utilizan para obtener fragmentos de código terminados. Utilizan este conjunto de datos para entrenar un modelo para que determine qué ruta de navegación debe seguir para producir un programa en particular y luego cómo seguirla.

Poolside, con sede en San Francisco, también está creando un conjunto de datos sintéticos que captura el proceso de codificación, pero se apoya más en una técnica llamada RLCE (aprendizaje de refuerzo a partir de la ejecución del código). (Cosine también la utiliza, pero en menor grado).

RLCE es análoga a la técnica utilizada para hacer que los chatbots como ChatGPT sean conversadores hábiles, conocida como RLHF ( aprendizaje de refuerzo a partir de la retroalimentación humana) . Con RLHF, se entrena a un modelo para que produzca texto que se parezca más al tipo que los evaluadores humanos dicen que prefieren. Con RLCE, se entrena a un modelo para que produzca código que se parezca más al tipo que hace lo que se supone que debe hacer cuando se ejecuta.

Jugando con el sistema

Tanto Cosine como Poolside dicen que se sienten inspirados por el enfoque que adoptó DeepMind con sumodelo de juego AlphaZero . A AlphaZero se le dieron los pasos que podía dar (los movimientos de un juego) y luego se le dejó jugar contra sí mismo una y otra vez, descubriendo mediante ensayo y error qué secuencia de movimientos eran los movimientos ganadores y cuáles no.

“Le permitieron explorar movimientos en cada turno posible, simular tantos juegos como fuera posible, eso condujo a vencer a Lee Sedol”, dice Pengming Wang, un científico fundador de Poolside, refiriéndose al gran maestro coreano de Go al que AlphaZero venció en 2016. Antes de Poolside, Wang trabajó en Google DeepMind en aplicaciones de AlphaZero más allá de los juegos de mesa, incluido FunSearch , una versión entrenada para resolver problemas matemáticos avanzados.

Cuando se aplica ese enfoque AlphaZero a la codificación, los pasos necesarios para producir un fragmento de código (las migas de pan) se convierten en los movimientos disponibles en un juego, y un programa correcto gana ese juego. Si se le deja que juegue solo, un modelo puede mejorar mucho más rápido que un ser humano. “Un codificador humano prueba y falla un fallo a la vez”, dice Kant. “Los modelos pueden probar cosas 100 veces a la vez”.

Una diferencia clave entre Cosine y Poolside es que Cosine utiliza una versión personalizada de GPT-4o proporcionada por OpenAI, lo que permite entrenar en un conjunto de datos más grande que el que el modelo base puede manejar, pero Poolside está construyendo su propio modelo de lenguaje grande desde cero.

Kant, de Poolside, cree que entrenar un modelo con código desde el principio dará mejores resultados que adaptar un modelo existente que ha absorbido no solo miles de millones de fragmentos de código, sino la mayor parte de Internet. "No tengo ningún problema con que nuestro modelo se olvide de la anatomía de la mariposa", afirma.

Cosine afirma que su asistente de codificación generativa, llamado Genie, encabeza la clasificación en SWE-Bench, un conjunto estándar de pruebas para modelos de codificación. Poolside todavía está desarrollando su modelo, pero afirma que lo que tiene hasta ahora ya iguala el rendimiento de Copilot de GitHub.

“Personalmente, creo firmemente que los modelos de lenguaje de gran tamaño nos permitirán alcanzar la misma capacidad que un desarrollador de software”, afirma Kant.

Sin embargo, no todo el mundo comparte esa opinión.

LLM ilógicos

Para Justin Gottschlich, director ejecutivo y fundador de Merly, los modelos de lenguaje de gran tamaño no son la herramienta adecuada para el trabajo, y punto. Invoca a su perro: “Ningún entrenamiento hará que mi perro sea capaz de codificar, simplemente no lo logrará”, afirma. “Puede hacer todo tipo de cosas, pero es incapaz de ese nivel profundo de cognición”.

Gottschlich, que lleva más de una década trabajando en la generación de código, tiene un problema similar con los modelos de lenguajes grandes. La programación requiere la capacidad de resolver problemas lógicos con una precisión inquebrantable. Por muy bien que los modelos de lenguajes grandes aprendan a imitar lo que hacen los programadores humanos, en esencia siguen siendo máquinas tragamonedas estadísticas . “No puedo entrenar un sistema ilógico para que se vuelva lógico”, afirma.

En lugar de entrenar un gran modelo de lenguaje para generar código alimentándolo con muchos ejemplos, Merly no muestra en absoluto a su sistema código escrito por humanos. Esto se debe a que, para construir realmente un modelo que pueda generar código, sostiene Gottschlich, es necesario trabajar en el nivel de la lógica subyacente que representa el código, no en el código en sí. Por lo tanto, el sistema de Merly se entrena en una representación intermedia, algo así como la notación legible por máquina a la que se traducen la mayoría de los lenguajes de programación antes de ejecutarlos.

Gottschlich no explica exactamente cómo se ve esto ni cómo funciona el proceso, pero plantea una analogía: en matemáticas existe la idea de que los únicos números que tienen que existir son los primos, porque se pueden calcular todos los demás números utilizando sólo los primos. “Tomemos ese concepto y apliquémoslo al código”, dice.

Este enfoque no sólo llega directamente a la lógica de la programación, sino que también es rápido, porque millones de líneas de código se reducen a unos pocos miles de líneas de lenguaje intermedio antes de que el sistema las analice.

Cambio de mentalidad

Lo que usted piensa de estos enfoques rivales puede depender de lo que quiere que sean los asistentes de codificación generativa.

En noviembre, Cosine prohibió a sus ingenieros utilizar herramientas distintas a las de sus propios productos. Ahora está viendo el impacto de Genie en sus propios ingenieros, que a menudo se encuentran observando la herramienta mientras crea código para ellos. “Ahora le das al modelo el resultado que deseas y el modelo sigue adelante y se preocupa por la implementación por ti”, dice Yang Li, otro cofundador de Cosine.

Pullen admite que puede resultar desconcertante y que es necesario cambiar de mentalidad. “Tenemos ingenieros que realizan varias tareas a la vez, pasando de una ventana a otra”, afirma. “Mientras Genie ejecuta código en una, puede que le estén indicando que haga otra cosa en otra”.

Estas herramientas también permiten crear prototipos de varias versiones de un sistema a la vez. Supongamos que estás desarrollando un software que necesita un sistema de pago integrado. Puedes conseguir un asistente de codificación para probar simultáneamente varias opciones diferentes (Stripe, Mango, Checkout) en lugar de tener que codificarlas a mano una por una.

Genie puede encargarse de solucionar errores las 24 horas del día. La mayoría de los equipos de software utilizan herramientas de notificación de errores que permiten a las personas cargar descripciones de los errores que han encontrado. Genie puede leer estas descripciones y proponer soluciones. Luego, un humano solo necesita revisarlas antes de actualizar la base de código.

Ningún ser humano entiende los billones de líneas de código de los sistemas de software más grandes de la actualidad, dice Li, "y a medida que más y más software sea escrito por otro software, la cantidad de código solo aumentará".

Esto hará que los asistentes de codificación que mantienen ese código por nosotros sean esenciales. “El cuello de botella será la velocidad con la que los humanos puedan revisar el código generado por las máquinas”, dice Li.

¿Qué opinan los ingenieros de Cosine sobre todo esto? Según Pullen, al menos, bien. “Si te doy un problema difícil, todavía vas a pensar en cómo quieres describir ese problema al modelo”, dice. “En lugar de escribir el código, tienes que escribirlo en lenguaje natural. Pero todavía hay mucho que pensar, así que no estás quitando realmente la alegría de la ingeniería. La picazón sigue ahí”.

Algunos pueden adaptarse más rápido que otros. A Cosine le gusta invitar a los candidatos potenciales a pasar unos días programando con su equipo. Hace un par de meses, le pidió a uno de esos candidatos que creara un widget que permitiera a los empleados compartir en las redes sociales fragmentos interesantes del software en el que estaban trabajando.

La tarea no era sencilla, ya que requería conocimientos prácticos de varias secciones de los millones de líneas de código de Cosine. Pero el candidato la realizó en cuestión de horas. “Esta persona que nunca había visto nuestra base de código se presentó el lunes y el martes por la tarde ya había enviado algo”, dice Li. “Pensábamos que le llevaría toda la semana”. (Lo contrataron).

Pero también hay otro ángulo. Muchas empresas utilizarán esta tecnología para reducir la cantidad de programadores que contratan. Li cree que pronto veremos niveles de ingenieros de software. En un extremo, habrá desarrolladores de élite con salarios de millones de dólares que pueden diagnosticar problemas cuando la IA falla. En el otro extremo, equipos más pequeños de 10 a 20 personas realizarán un trabajo que antes requería cientos de codificadores. "Será como la transformación de los cajeros automáticos en la banca", dice Li.

“Todo lo que quieras hacer estará determinado por los cálculos y no por el número de empleados”, afirma. “Creo que se acepta en general que la era de sumar unos cuantos miles de ingenieros más a tu organización ha terminado”.

Motores warp

De hecho, para Gottschlich, las máquinas que pueden programar mejor que los humanos serán esenciales. Para él, esa es la única manera en que construiremos los vastos y complejos sistemas de software que, en su opinión, necesitaremos en algún momento. Como muchos en Silicon Valley, prevé un futuro en el que los humanos se mudarán a otros planetas. Eso solo será posible si logramos que la IA construya el software necesario, dice: "El verdadero objetivo de Merly es llevarnos a Marte".

Gottschlich prefiere hablar de “programación de máquinas” en lugar de “asistentes de codificación”, porque cree que ese término enmarca el problema de forma incorrecta. “No creo que estos sistemas deban ayudar a los humanos; creo que los humanos deberían ayudarlos”, afirma. “Pueden moverse a la velocidad de la IA. ¿Por qué limitar su potencial?”

“Hay una serie de dibujos animados llamada Los Picapiedra en la que hay coches que solo se mueven cuando los conductores usan los pies”, dice Gottschlich. “Creo que así es como la mayoría de la gente hace inteligencia artificial para sistemas de software”.

“Pero lo que Merly está construyendo son, en esencia, naves espaciales”, añade. Y no está bromeando. “Y no creo que las naves espaciales deban ser impulsadas por humanos en bicicleta. Las naves espaciales deberían ser impulsadas por un motor de curvatura”.

Si esto suena descabellado, lo es. Pero hay un punto serio que debe tenerse en cuenta acerca de cuál es el verdadero objetivo final de esta tecnología, según quienes la desarrollan.

Gottschlich no es un caso aislado con su visión de la galaxia. A pesar de que se centran en productos que los desarrolladores querrán utilizar hoy en día, la mayoría de estas empresas tienen la vista puesta en un resultado mucho mayor. Si se visita el sitio web de Cosine, la empresa se presenta como un "laboratorio de razonamiento humano". Considera la codificación como tan solo el primer paso hacia un modelo de propósito más general que pueda imitar la resolución de problemas humanos en varios dominios.

Poolside tiene objetivos similares: la empresa afirma desde el principio que está desarrollando inteligencia artificial general. “El código es una forma de formalizar el razonamiento”, afirma Kant.

Wang invoca agentes. Imaginemos un sistema que puede crear su propio software para realizar cualquier tarea sobre la marcha, dice. “Si llegamos a un punto en el que nuestro agente puede realmente resolver cualquier tarea computacional que queramos a través de software, eso es, en esencia, una demostración de inteligencia artificial general”.

Aquí en la Tierra, estos sistemas pueden seguir siendo una quimera, pero la ingeniería de software está cambiando más rápido de lo que muchos en la vanguardia esperaban.

"No hemos llegado a un punto en el que todo lo hagan las máquinas, pero definitivamente nos estamos alejando del rol habitual de un ingeniero de software", dice Pullen de Cosine. "Estamos viendo las chispas de ese nuevo flujo de trabajo: lo que significa ser un ingeniero de software en el futuro".

Otros

  1. Mark Zuckerberg y el poder de los medios de comunicación

    Es cierto que hay fuerzas poderosas que controlan lo que se puede ver en Facebook e Instagram, pero no son los medios los que toman esas decisiones.

  2. Neuralink ante las promesas de Musk: más voluntarios y algunos avances

    Más voluntarios recibirán el implante cerebral de Elon Musk, pero no se espera su comercialización como producto pronto

  3. Robotaxis

    Las 10 Tecnologías Emergentes 2025: los coches sin conductor solicitados mediante 'apps' se extienden a más ciudades