Investigadores de UC Berkeley proponen un modelo de difusión neuronal que opera en árboles de sintaxis para la síntesis de programas

Los modelos de lenguajes grandes (LLM) han revolucionado la generación de código, pero su naturaleza autorregresiva plantea un desafío importante. Estos modelos generan código token por token, sin acceso a la salida del tiempo de ejecución del programa desde los tokens generados previamente. Esta falta de un circuito de retroalimentación, donde el modelo pueda observar el resultado del programa y ajustarlo en consecuencia, dificulta la corrección de errores. Si bien se puede capacitar a los LLM para que sugieran ediciones del código existente, adquirir suficientes datos de capacitación de alta calidad para esta tarea sigue siendo un obstáculo. Los investigadores se esfuerzan por superar estas limitaciones y desarrollar metodologías más efectivas para utilizar LLM en la generación de código y corrección de errores.

Varios enfoques existentes han abordado los desafíos de la generación de código y la corrección de errores. Los métodos de síntesis de programas neuronales generan programas a partir de ejemplos de entrada y salida, combinando redes neuronales con estrategias de búsqueda. Si bien son efectivas, estas técnicas construyen programas de manera incremental, explorando un vasto espacio de programas parciales. Los modelos de difusión neuronal han mostrado resultados impresionantes para el modelado generativo de datos de alta dimensión, como imágenes. Trabajos recientes han ampliado la difusión a datos discretos y estructurados, como gráficos y moléculas. También se ha explorado la edición directa de código utilizando modelos neuronales, el entrenamiento en conjuntos de datos de parches de código del mundo real o el ajuste de modelos de lenguaje. Sin embargo, estos métodos a menudo requieren conjuntos de datos de edición de código extensos o carecen de garantías inherentes de validez sintáctica.

Investigadores de la Universidad de California en Berkeley presentan un enfoque eficaz para Síntesis de programas utilizando modelos de difusión neuronal que operan directamente en árboles de sintaxis.. La utilización de la difusión permite que el modelo refine los programas de forma iterativa al tiempo que garantiza la validez sintáctica. Fundamentalmente, el enfoque permite que el modelo observe el resultado del programa en cada paso, lo que facilita efectivamente un proceso de depuración. Inspirada en sistemas como AlphaZero, la naturaleza iterativa de la difusión se presta bien a la síntesis de programas basada en búsquedas. Al entrenar un modelo de valor junto con el modelo de difusión, el proceso de eliminación de ruido se puede guiar hacia programas que probablemente logren el resultado deseado, lo que permite una exploración eficiente del espacio del programa.

La idea central de este método es desarrollar modelos de difusión de eliminación de ruido para árboles de sintaxis, análogos a los modelos de difusión de imágenes. Utilizando gramática libre de contexto (CFG), el método define un proceso de ruido que muta aleatoriamente los programas al tiempo que garantiza la validez sintáctica. Esto implica muestrear mutaciones restringiendo el “tamaño” del programa dentro de un rango y reemplazando los subárboles con subárboles alternativos derivados de las reglas de producción del CFG. Luego se entrena una red neuronal para revertir este proceso de generación de ruido, aprendiendo a eliminar el ruido de los programas condicionados a la salida del programa objetivo (por ejemplo, una imagen renderizada). Además, se entrena una red de valor para predecir distancias de edición entre programas, lo que permite una exploración de búsqueda de haces eficiente guiada por programas candidatos prometedores.

Este método supera significativamente dos enfoques básicos (CSGNet y REPL Flow) en tareas de gráficos inversos en los dominios CSG2D y TinySVG. CSGNet representa un enfoque autorregresivo moderno, que genera programas de forma autorregresiva hasta que se encuentra una coincidencia. REPL Flow se basa en programas de creación de trabajos previos de forma primitiva con acceso a resultados renderizados intermedios. En ambos dominios, la política de difusión con búsqueda de haz resuelve problemas con menos llamadas al renderizador que las líneas base. Los ejemplos cualitativos resaltan la capacidad del método para solucionar problemas más pequeños que otros enfoques no detectan. Más allá de eso, el modelo de observación puede manejar bocetos estocásticos dibujados a mano, recuperando exitosamente programas de entradas de bocetos ruidosas.

Este trabajo de investigación introdujo un modelo robusto de difusión neuronal que opera directamente en árboles de sintaxis para la síntesis de programas. El enfoque propuesto se implementó con éxito para tareas de gráficos inversos, con el objetivo de encontrar programas que representen una imagen de destino determinada. A diferencia de los métodos anteriores, el modelo puede construir, ejecutar y editar programas de forma iterativa, lo que permite un ciclo de retroalimentación crucial para corregir errores. Evaluaciones integrales en dominios de gráficos demostraron la superioridad de este enfoque sobre los métodos básicos para la síntesis de programas de gráficos inversos. Además, los experimentos de ablación proporcionaron información sobre el impacto de las opciones de diseño clave detrás de la arquitectura y el proceso de capacitación del modelo de difusión.


Revisar la Papel, Proyectoy GitHub. Todo el crédito por esta investigación va a los investigadores de este proyecto. Además, no olvides seguirnos en Gorjeo. Únete a nuestro Canal de telegramas, Canal de discordiay LinkedIn Grarriba.

Si te gusta nuestro trabajo, te encantará nuestro Boletin informativo..

No olvides unirte a nuestro SubReddit de 43k+ ML | Además, consulte nuestro Plataforma de eventos de IA


Asjad es consultor interno en Marktechpost. Está cursando B.Tech en ingeniería mecánica en el Instituto Indio de Tecnología, Kharagpur. Asjad es un entusiasta del aprendizaje automático y el aprendizaje profundo que siempre está investigando las aplicaciones del aprendizaje automático en la atención médica.