Síntesis de programas: la vía de Ndea hacia la AGI

La síntesis de programas consiste en descubrir automáticamente un programa que cumpla una petición expresada mediante restricciones, ejemplos o una especificación. Ndea quiere combinar esta búsqueda de programas con el aprendizaje profundo para crear sistemas capaces de adaptarse a problemas nuevos: una vía hacia la AGI que se plantea como hipótesis de investigación.
Encontrar una regla ejecutable a partir del resultado esperado
En la programación habitual, usted escribe las operaciones que debe ejecutar la máquina. En la síntesis de programas, describe el comportamiento esperado y un sistema busca las operaciones que permiten obtenerlo. La petición puede expresarse mediante pares de entrada y salida, una demostración o propiedades lógicas.
La presentación de este campo de Microsoft Research recoge esa definición amplia: descubrir código ejecutable a partir de la intención del usuario, expresada de distintas maneras. Por tanto, la síntesis no se limita a generar código a partir de una frase ni a investigar la inteligencia general.
Imagine que quiere transformar nombres de archivos. Proporciona ejemplos en los que un nombre y un apellido se convierten en iniciales seguidas del apellido. El sistema debe identificar qué fragmentos conservar, qué separadores eliminar y en qué orden recomponerlos. El resultado que se busca es un procedimiento que pueda aplicarse al siguiente archivo.
Ese procedimiento representa una hipótesis sobre su intención. Si los ejemplos no incluyen ningún apellido compuesto, varias reglas pueden encajar y, más adelante, producir resultados distintos. Encontrar un programa compatible con los ejemplos no basta para establecer que responde a la necesidad.
La capacidad de aplicar una regla más allá de lo observado conecta este tema con la generalización. Nuestra página de referencia sobre la síntesis de programas desarrolla los métodos y su historia; aquí el objetivo es entender qué papel desempeñan en la propuesta de Ndea.
Cómo funciona la búsqueda de programas
Para que el problema se pueda abordar, hay que definir un espacio de búsqueda. En el ejemplo de los archivos, las operaciones disponibles podrían ser dividir una cadena de texto, seleccionar un fragmento, extraer una inicial y unir los resultados. El sistema explora combinaciones de esas piezas.
Una secuencia sencilla ayuda a entender el mecanismo:
- Describir las entradas y las salidas esperadas.
- Definir las operaciones permitidas y las reglas para combinarlas.
- Proponer un programa candidato.
- Ejecutarlo con los ejemplos disponibles.
- Descartar los candidatos incompatibles y elegir entre los restantes.
Supongamos que la transformación debe conservar el apellido completo. Una regla que tome únicamente el último fragmento puede funcionar con los primeros ejemplos y fallar después con un apellido compuesto. Un contraejemplo permite eliminar esa regla o precisar la petición.
La elección del lenguaje importa tanto como la búsqueda. Un vocabulario muy limitado facilita la exploración, pero puede impedir que se exprese la solución. Un lenguaje más amplio permite describir más comportamientos y multiplica los caminos posibles. El sistema también debe gestionar programas que fallan, entran en bucles o consumen demasiados recursos.
Se puede dar preferencia a las soluciones breves o a las que reutilizan operaciones conocidas. Se trata de un criterio para orientar la búsqueda, no de una garantía de corrección: la regla más corta puede pasar por alto una excepción esencial. En una aplicación real, la calidad de la especificación y las pruebas con casos nuevos siguen siendo determinantes.
Por qué Ndea quiere orientar la búsqueda mediante aprendizaje
La dificultad práctica aparece pronto: al combinar operaciones, el número de programas posibles aumenta a medida que las combinaciones se hacen más profundas. Una búsqueda sin orientación puede dedicar mucho cálculo a vías que no guardan relación con la tarea.
En su presentación oficial, consultada en octubre de 2026, Ndea defiende una síntesis de programas guiada por aprendizaje profundo. Según el laboratorio, una red puede orientar la exploración hacia programas prometedores, mientras que su ejecución permite contrastar las hipótesis con las observaciones. Ndea presenta esa combinación como el núcleo de su enfoque hacia la inteligencia general.
Para entender el reparto de funciones, imagine un problema con una cuadrícula de colores. Un sistema de reconocimiento sugiere que la transformación está relacionada con una simetría. La búsqueda examina entonces primero las operaciones de reflexión y sus combinaciones, en lugar de explorar todas las transformaciones imaginables. Los programas propuestos todavía deben reproducir los ejemplos.
La ambición de Ndea es reunir el reconocimiento de patrones y el razonamiento formal en una misma arquitectura. Esa intención no describe, por sí sola, un método completo cuyo rendimiento esté plenamente demostrado. Las afirmaciones del laboratorio sobre los límites del aprendizaje profundo y el alcance de esta combinación deben entenderse como su postura de investigación.
El interés de esta vía reside en una pregunta concreta: ¿se pueden utilizar conocimientos adquiridos para descubrir de forma eficiente una regla nueva? Ese criterio exige más que producir un programa que parezca plausible.
Qué permiten observar los trabajos publicados
La combinación de redes neuronales y búsqueda simbólica va más allá del proyecto de Ndea. Los trabajos publicados permiten examinar sus mecanismos sin dar por supuesto que conducen a una inteligencia general.
DreamCoder, presentado en una publicación de investigación, aprende a la vez una biblioteca de componentes y una red que guía la búsqueda de programas. A partir de las soluciones descubiertas, construye abstracciones reutilizables. También entrena su mecanismo de orientación con problemas que vuelve a resolver o que genera.
La idea es concreta: si una misma secuencia aparece en varias soluciones, puede convertirse en una nueva pieza. Las búsquedas posteriores pueden utilizarla directamente. Así, el aprendizaje abarca tanto las soluciones como el vocabulario que permite expresarlas.
Este trabajo ofrece un ejemplo de sistema que combina búsqueda, aprendizaje y reutilización. No demuestra que esa organización sea suficiente para aprender en cualquier entorno. Las tareas estudiadas, las representaciones disponibles y los recursos asignados forman parte del resultado.
El informe técnico de ARC Prize 2024 también describe la búsqueda de programas entre los enfoques explorados en ARC. Distingue entre inferir un procedimiento y predecir directamente una salida, y señala el interés de combinar ambos enfoques en aquella edición.
Estos resultados históricos documentan métodos, no el estado de las clasificaciones de octubre de 2026. Para interpretar un resultado reciente, el artículo sobre los benchmarks y las condiciones para compararlos ayuda a examinar el protocolo, más allá de la puntuación.
La relación con la inteligencia según François Chollet
En On the Measure of Intelligence, publicado en noviembre de 2019, François Chollet propone caracterizar la inteligencia por la eficiencia con la que se adquieren habilidades. Su análisis exige tener en cuenta los conocimientos previos y la experiencia: un rendimiento elevado puede reflejar una preparación abundante, en lugar de una gran capacidad de adaptación.
La síntesis de programas resulta pertinente desde esta perspectiva porque permite formular una regla a partir de observaciones limitadas. Sin embargo, no elimina los conocimientos previos. El lenguaje de búsqueda, los componentes disponibles y el modelo que orienta la exploración ya incorporan decisiones y aprendizajes.
Pensemos en un ejercicio que exige mover un objeto hasta un borde. Si el sistema ya dispone de una operación específica para ese movimiento, descubrir la solución es más fácil. Si debe construirla a partir de manipulaciones elementales, la dificultad cambia. La evaluación debe tener en cuenta esa diferencia.
El artículo On the Measure of Intelligence explicado de forma sencilla desarrolla esta distinción entre habilidad y eficiencia de aprendizaje. Ayuda a evitar que un éxito observable se equipare automáticamente con una inteligencia más general.
Por tanto, la síntesis no es una prueba de AGI. Ofrece un marco para estudiar cómo un sistema descubre y reutiliza procedimientos. Para establecer que su alcance es general, hay que medir después la transferencia, los recursos necesarios y la dependencia de representaciones preparadas de antemano.
Qué puede medir ARC y qué queda por demostrar
En las tareas de cuadrículas de ARC, los ejemplos muestran una transformación y el sistema debe producir una salida para una entrada nueva. Un enfoque basado en síntesis busca un procedimiento compatible con las demostraciones y después lo aplica al caso solicitado.
Las notas técnicas publicadas por ARC Prize en octubre de 2024 exponen esta vía que combina aprendizaje profundo y búsqueda de programas. Presentan una orientación técnica; no demuestran que toda inteligencia pueda reducirse a ese mecanismo.
En un ejemplo ficticio, las demostraciones podrían sugerir que hay que conservar el objeto más grande. Un procedimiento puede resolver esos ejemplos y fallar cuando dos objetos tienen el mismo tamaño. También puede aprovechar por accidente un color común a las demostraciones. El programa se puede ejecutar e inspeccionar, pero todavía hay que comprobar si su interpretación es adecuada.
Pasar de estos ejercicios a problemas abiertos añade otras dificultades:
- las observaciones pueden ser incompletas o contener ruido;
- puede resultar difícil verificar automáticamente cuál es el resultado correcto;
- los objetivos pueden seguir siendo ambiguos;
- una acción puede modificar el entorno antes de que se valide la hipótesis.
Estos obstáculos explican por qué el éxito en un benchmark debe interpretarse dentro de su ámbito. Para entender las distintas familias de pruebas y sus límites, la página dedicada a los benchmarks de AGI ofrece un marco complementario. Un programa que explica unos ejemplos no demuestra que la regla sea única ni que siga siendo válida en otros contextos.
Cómo valorar los avances anunciados
Para seguir esta investigación en nuestro dossier sobre la AGI, el criterio útil es la capacidad demostrada de resolver tareas nuevas en condiciones documentadas. El anuncio de una arquitectura describe un medio que se propone utilizar; una evaluación debe mostrar qué permite conseguir en la práctica.
Conviene examinar, en particular, qué componentes estaban disponibles antes de la prueba, qué recursos de cálculo se dedicaron a la búsqueda y cuántos programas candidatos se ejecutaron. Los fallos también cuentan: un sistema puede resolver ciertas familias de tareas y seguir siendo incapaz de formular una solución cuando se utiliza otra representación.
Un avance convincente también debería distinguir la aportación de cada mecanismo. Hay que comprobar si la orientación reduce la búsqueda necesaria, si las abstracciones aprendidas sirven para tareas nuevas y si el resultado se mantiene con un presupuesto comparable. Estas comprobaciones permiten evaluar la combinación sin atribuir toda mejora a una sola idea.
Ideas clave
- La síntesis de programas busca un procedimiento ejecutable a partir de un comportamiento esperado.
- Ndea propone guiar esa búsqueda mediante aprendizaje profundo; su alcance como vía hacia la AGI sigue siendo una hipótesis que debe evaluarse.
- Los trabajos publicados muestran cómo aprender mecanismos de orientación y componentes reutilizables en marcos definidos.
- Resolver los ejemplos no garantiza la generalización: el protocolo, los recursos y los casos nuevos determinan el alcance del resultado.
Preguntas frecuentes
¿La síntesis de programas necesita un modelo de lenguaje?
No. Un sistema puede explorar un lenguaje limitado mediante métodos de búsqueda o herramientas de resolución lógica. Una red neuronal puede ayudarle a seleccionar las vías más prometedoras, pero esa orientación no es un requisito para hablar de síntesis de programas.
¿Qué diferencia hay entre síntesis de programas y compilación?
Un compilador traduce un programa ya descrito a otro lenguaje y conserva su comportamiento. La síntesis debe descubrir el programa a partir de lo que espera el usuario, por lo que a menudo admite varias soluciones posibles.
¿Se puede demostrar que un programa sintetizado es correcto?
En ciertos marcos formales, una demostración puede establecer que cumple una especificación determinada. Sin embargo, esa garantía depende de los supuestos y de la especificación elegidos. Resolver correctamente unos ejemplos no constituye por sí solo una demostración de ese tipo.
¿La propuesta de Ndea significa que la AGI está cerca?
Una línea de investigación no permite establecer un calendario fiable. Para valorar los avances, hay que examinar evaluaciones reproducibles, los recursos utilizados y la transferencia a problemas nuevos. La ambición declarada de un laboratorio no sustituye esas pruebas.