Investigadores del MIT presentan LILO un marco neuro-simbólico para aprender bibliotecas interpretables para la síntesis de programas

Investigadores del MIT presentan LILO un marco neuro-simbólico para aprender bibliotecas interpretables para la síntesis de programas

Los grandes modelos de lenguaje (LLMs) se están volviendo cada vez más expertos en programación en varios contextos, como completar código parcialmente escrito, interactuar con programadores humanos e incluso resolver acertijos de programación desafiantes en competencias. Sin embargo, los desarrolladores de software están más interesados en crear bibliotecas que se puedan utilizar para resolver problemas completos que en terminar el trabajo actual en curso. Con este objetivo, la habilidad de refactorizar, es decir, encontrar abstracciones que hagan que la base de código sea más legible (intuitiva para otros programadores), reutilizable (generalizable a nuevos trabajos) y compacta (consolidando estructuras compartidas), es un componente crucial del desarrollo de software. Será necesario ampliar las capacidades de las herramientas actuales de completado de código, que en la actualidad utilizan millones de programadores, para abordar el problema del aprendizaje de bibliotecas y resolver esta optimización multiobjetivo.

Para aprender bibliotecas de abstracciones de funciones reutilizables, integran modelos de lenguaje con los avances algorítmicos actuales en refactorización automática de la literatura de lenguajes de programación (PL) en este estudio. Investigadores del MIT CSAIL, MIT Brain and Cognitive Sciences y Harvey Mudd College presentan LILO, un marco neurosimbólico compuesto por tres módulos interrelacionados (Fig. 1) para la inducción de bibliotecas a partir de observaciones de lenguaje:

• Un módulo de síntesis de doble sistema, que utiliza dos enfoques diferentes para buscar respuestas a problemas de programación: la búsqueda guiada por LLM introduce conocimientos generales de dominio fuertes en el sistema, mientras que la búsqueda enumerativa puede encontrar expresiones específicas del dominio.

• Un módulo de compresión que utiliza STITCH, un sistema de compresión simbólica de alto rendimiento, para encontrar abstracciones relevantes en el conjunto de soluciones actuales.

• Un módulo de autodocumentación (AutoDoc) que produce docstrings y nombres de funciones legibles por humanos, mejorando la interpretabilidad y facilitando la búsqueda guiada por LLM más adelante.

Su diseño se basa en el algoritmo iterativo de Wake-Sleep DREAMCODER, que alterna entre encontrar soluciones a desafíos de programación (fase de Wake) y reescribir abstracciones comunes en una biblioteca (fase de Sleep), lo que ayuda a dirigir la búsqueda. DreamCoder, a diferencia de las técnicas convencionales de aprendizaje profundo, puede obtener generalizaciones significativas a partir de un pequeño número de muestras, y la biblioteca aprendida representa simbólicamente el conocimiento conceptual del modelo. Pero el proceso de búsqueda de DreamCoder es tan exigente computacionalmente que el aprendizaje de un solo dominio lleva más de dos meses de CPU.

Figura 1: Resumen del bucle de aprendizaje de LILO. (Al) Utilizando una metodología de búsqueda de doble sistema, LILO crea programas a partir de descripciones de tareas escritas en lenguaje común. LILO combina la autodocumentación generada por LLM (C) con un método de compresión llamado STITCH (B) para reestructurar un conjunto de soluciones de programas y crear una biblioteca interpretable de λ-abstracciones. La estructura de las soluciones de los programas (A vs. D) se simplifica mediante este ciclo de búsqueda-compresión-documentación, lo que facilita la resolución de trabajos cada vez más difíciles en rondas posteriores.

Una parte importante de este tiempo de búsqueda se dedica a “despegar”, es decir, encontrar un conjunto fundamental de abstracciones con las que los programadores ya estén familiarizados o que puedan comprender rápidamente debido a su experiencia previa en la resolución de problemas específicos del dominio. Además, las bibliotecas de DreamCoder no siempre son interpretables; descifrarlas requiere conocimientos del dominio y comprensión del cálculo lambda. Para abordar estos problemas, LILO utiliza los LLM de dos formas innovadoras: (1) para encontrar soluciones de programas más rápidamente durante las búsquedas y (2) para mejorar la documentación de las bibliotecas aprendidas y hacerlas más fáciles de entender. En tres dominios difíciles de síntesis de programas (edición de cadenas con expresiones regulares, razonamiento de escenas en el conjunto de datos CLEVR y composición de gráficos en el lenguaje de gráficos de tortuga 2D Logo), comparan LILO con un equivalente de DreamCoder guiado por lenguaje.

En comparación con DreamCoder, LILO completa más trabajos en los tres dominios y aprende bibliotecas empíricamente más ricas que contienen abstracciones que son imposibles de encontrar con técnicas actuales. Como ejemplo, LILO comprende el concepto de una vocal, un primer paso crucial en el campo de la edición de cadenas, ya que elimina la necesidad de buscar más de 265 disyunciones primitivas de caracteres potenciales. LILO comprime esta información en abstracciones simbólicas que son útiles tanto para técnicas de búsqueda convencionales como para síntesis guiada por LLM, a diferencia de los resultados basados únicamente en LLM, que pueden realizar tareas comparables. Su módulo AutoDoc es esencial para esta integración neurosimbólica, ya que mejora la interpretabilidad y facilita una mejor utilización de la biblioteca por parte del sintetizador LLM. Como un desarrollo novedoso en una larga línea de trabajo en síntesis inductiva de programas, LILO muestra cómo se pueden combinar conceptos y recursos de la comunidad de PL con los avances actuales en modelado de lenguaje.

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Inteligencia Artificial

Un nuevo estudio de IA desvela los secretos de las baterías de ion de litio a través de la visión por computadora

Miles de partículas minúsculas empaquetadas densamente en los electrodos de las baterías de iones de litio recargable...

Inteligencia Artificial

Transforma imágenes de moda en impresionantes videos fotorrealistas con el marco de IA DreamPose

La fotografía de moda es omnipresente en plataformas en línea, incluyendo redes sociales y sitios web de comercio ele...

Inteligencia Artificial

Asistentes de correo electrónico AI más valorados (noviembre de 2023)

Translate this html (keep the html code in the result) to Spanish: Los asistentes de correo electrónico de inteligenc...

Inteligencia Artificial

Últimos avances en el campo de la IA multimodal (ChatGPT + DALLE 3) + (Google BARD + extensiones) y muchos más…

La IA multimodal es un campo de la Inteligencia Artificial (IA) que combina diferentes tipos de datos (modalidades), ...