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.
- Investigadores de la Universidad de Cambridge presentan un conjunto de datos de 50,000 imágenes sintéticas y fotorealistas de pies, junto con una novedosa biblioteca de IA para pies.
- Conoce CodeGPT Una nueva herramienta de generación de código que está causando sensación en la comunidad de IA
- El nuevo modelo de IA de Phind supera a GPT-4 en codificación, con una velocidad similar a la de GPT-3.5 y un contexto de 16k.
• 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!
Was this article helpful?
93 out of 132 found this helpful
Related articles
- Investigadores de Amazon presentan Fortuna una biblioteca de IA para la cuantificación de la incertidumbre en el aprendizaje profundo
- Core42 y Cerebras establecen un nuevo referente para los modelos árabes de lenguaje grande con el lanzamiento de Jais 30B
- Investigadores de Hugging Face presentan Distil-Whisper un modelo compacto de reconocimiento de voz que cubre la brecha en entornos de alto rendimiento y bajos recursos.
- Esta investigación de IA presenta PERF la transformación Panorámica NeRF que convierte imágenes individuales en escenas 3D explorables.
- 40+ Herramientas de IA Geniales que Deberías Comprobar (noviembre de 2023)
- Nuevo trabajo de DeepMind revela semillas suprema de prompt para modelos de lenguaje
- La inflación de la inteligencia artificial ¿es siempre mejor tener más?