Los LLM han tenido un impacto significativo en los campos de la generación y comprensión de códigos. Estos modelos, entrenados en extensos conjuntos de datos de código como GitHub, destacan en tareas como la conversión de texto a código, la transpilación de código a código y la comprensión del código. Sin embargo, muchos modelos actuales simplemente tratan el código como secuencias de tokens de subpalabras, pasando por alto su estructura. Las investigaciones sugieren que incorporar el árbol de sintaxis abstracta (AST) del código puede mejorar notablemente el rendimiento en tareas relacionadas con el código. Algunos estudios utilizan la ofuscación de código durante el entrenamiento previo para enseñar a los modelos sobre estructuras de código abstractas, pero estos métodos a menudo implican procesos computacionalmente costosos, que restringen la escalabilidad e imponen condiciones estrictas.
Investigadores de UC Berkeley y Meta AI han desarrollado AST-T5, un enfoque de preentrenamiento que aprovecha el AST para mejorar la generación, transpilación y comprensión del código. Este método, que emplea programación dinámica, mantiene la estructura del código a través de AST-Aware Segmentation y equipa al modelo con la capacidad de reconstruir diversas estructuras de código a través de AST-Aware Span Corruption. A diferencia de otros modelos, AST-T5 no requiere análisis de programas complejos ni cambios arquitectónicos, lo que garantiza una integración perfecta con cualquier transformador codificador-decodificador.
Los LM se han ampliado desde la PNL a las tareas de generación y comprensión de código. Los modelos de solo codificador sobresalen en la comprensión del código cuando se ajustan con clasificadores, mientras que los modelos de solo decodificador están optimizados para la generación de código debido a su naturaleza autorregresiva. Se han desarrollado modelos de codificador-decodificador, como PLBART y CodeT5, para funcionar bien en diversas tareas relacionadas con el código. Investigaciones anteriores han aprovechado elementos sintácticos, como los AST, en modelos de redes neuronales para la comprensión y generación de código.
AST-T5 es un marco de preentrenamiento que aprovecha los AST para modelos de lenguaje basados en código. AST-T5 utiliza AST-Aware Segmentation, un algoritmo diseñado para abordar los límites del token de Transformer manteniendo la coherencia semántica del código. AST-T5 también emplea AST-Aware Span Corruption, una técnica de enmascaramiento que entrena previamente el modelo para reconstruir estructuras de código que van desde tokens individuales hasta cuerpos funcionales completos, mejorando su flexibilidad y conciencia de la estructura. La eficacia de los métodos propuestos por AST-T5 se evalúa a través de experimentos controlados, comparándolos con las líneas de base de T5 con arquitecturas Transformer, datos de preentrenamiento y configuraciones computacionales idénticas.
AST-T5 supera consistentemente a los LM de tamaño similar en varias tareas relacionadas con el código, particularmente en tareas de código a código, superando a CodeT5 en 2 puntos en la puntuación de coincidencia exacta para la tarea Bugs2Fix y por 3 puntos en la puntuación de coincidencia precisa para Java. -Transpilación C# en CodeXGLUE. Las contribuciones de cada componente dentro del marco de preentrenamiento consciente de AST de AST-T5 se analizan mediante experimentos controlados, que muestran el efecto de los métodos propuestos. El conocimiento de la estructura de AST-T5, que se logra aprovechando el AST del código, mejora la generación, transpilación y comprensión del código. AST-T5 se integra perfectamente con cualquier transformador codificador-decodificador sin requerir análisis de programa complejos ni cambios arquitectónicos.
En conclusión, AST-T5 es un paradigma de preentrenamiento que aprovecha el poder de los AST para impulsar el rendimiento de modelos de lenguaje centrados en código. AST-T5 supera consistentemente a los modelos de lenguaje de tamaño similar en varias tareas relacionadas con el código, particularmente en tareas de código a código, superando a CodeT5 en puntuaciones de coincidencia exacta para la tarea Bugs2Fix y la transpilación de Java-C# en CodeXGLUE. La simplicidad y adaptabilidad de AST-T5 lo convierten en un posible reemplazo directo para cualquier modelo de lenguaje codificador-decodificador, destacando su potencial para implementaciones en el mundo real. El conocimiento de la estructura de AST-T5, que se logra aprovechando el AST, mejora la generación, transpilación y comprensión del código. El trabajo futuro puede explorar la escalabilidad de AST-T5 entrenando modelos más grandes en conjuntos de datos más amplios y evaluando el modelo en todo el subconjunto desinfectado sin indicaciones breves.
Revisar la Papel y GitHub. Todo el crédito por esta investigación va a los investigadores de este proyecto. Además, no olvides seguirnos en Gorjeo. Unirse nuestro SubReddit de 36k+ ML, 41k+ comunidad de Facebook, Canal de discordiay LinkedIn Grarriba.
Si te gusta nuestro trabajo, te encantará nuestro Boletin informativo..
No olvides unirte a nuestro Canal de telegramas
A Sana Hassan, pasante de consultoría en Marktechpost y estudiante de doble titulación en IIT Madras, le apasiona aplicar la tecnología y la inteligencia artificial para abordar los desafíos del mundo real. Con un gran interés en resolver problemas prácticos, aporta una nueva perspectiva a la intersección de la IA y las soluciones de la vida real.