La generación de código utilizando modelos de lenguaje grande (LLM) se ha convertido en un área de investigación crítica, pero generar código preciso para problemas complejos en un solo intento sigue siendo un desafío importante. Incluso los desarrolladores humanos capacitados a menudo requieren múltiples iteraciones de depuración de prueba y error para resolver problemas de programación difíciles. Si bien los LLM han demostrado capacidades impresionantes de generación de código, su capacidad de autodepuración para analizar código incorrecto y realizar las correcciones necesarias aún es limitada. Esta limitación es evidente en modelos de código abierto como StarCoder y CodeLlama, que muestran un rendimiento de autorrefinamiento significativamente menor en comparación con modelos como GPT-3.5-Turbo.
Los enfoques existentes para mejorar las capacidades de generación y depuración de código en los LLM han seguido varios caminos distintos. Los LLM han demostrado un éxito significativo en diversas tareas relacionadas con el código, incluida la generación de código, la corrección de errores, las pruebas de programas y la confusión. Estos modelos utilizan un entrenamiento previo extenso en vastos conjuntos de datos para comprender patrones y generar código contextualmente relevante. Sin embargo, la mayor parte del trabajo existente se ha centrado principalmente en la generación de una sola ronda en lugar de en la mejora iterativa. Otros métodos como ILF, CYCLE y Self-Edit han explorado enfoques de ajuste supervisado, mientras que soluciones como OpenCodeInterpreter y EURUS han intentado crear conjuntos de datos de interacción de múltiples turnos de alta calidad utilizando modelos avanzados para fines de ajuste.
Investigadores de la Universidad Purdue, los laboratorios de IA de AWS y la Universidad de Virginia han propuesto LEDEX (aprender a autodepurar y explicar código), un marco de capacitación novedoso diseñado para mejorar las capacidades de autodepuración de los LLM. El marco se basa en la observación de que un proceso secuencial de explicación del código incorrecto seguido de un refinamiento permite a los LLM analizar y mejorar el código defectuoso de una mejor manera. LEDEX implementa un proceso automatizado para recopilar conjuntos de datos de alta calidad para explicar y refinar el código. Además, combina enfoques de ajuste fino supervisado (SFT) y aprendizaje por refuerzo (RL), utilizando trayectorias exitosas y fallidas con un sistema de recompensa especializado que evalúa la explicación del código y la calidad del refinamiento.
LEDEX emplea una arquitectura integral que contiene procesos de recopilación, verificación y capacitación de múltiples etapas. El marco comienza recopilando conjuntos de datos de explicación y refinamiento del código a través de consultas a modelos previamente entrenados o ajustados por instrucciones. Estas respuestas se someten a una rigurosa verificación basada en la ejecución para filtrar y mantener solo datos de explicación y refinamiento de alta calidad. El conjunto de datos recopilado sirve luego como entrada para un ajuste supervisado que mejora significativamente las capacidades del modelo en la explicación de errores y el refinamiento del código. LEDEX utiliza problemas de programación de MBPP, APPS y CodeContests para entrenar datos. Para ampliar el conjunto de datos de soluciones incorrectas, el marco solicita LLM previamente capacitados como StarCoder y CodeLlama con ejemplos de 3 tomas para generar 20 soluciones por problema.
LEDEX se evalúa utilizando tres modelos troncales: StarCoder-15B, CodeLlama-7B y CodeLlama-13B, con datos de entrenamiento inicial recopilados de GPT-3.5-Turbo. La fase SFT muestra mejoras significativas, logrando un aumento de hasta un 15,92 % en las métricas pass@1 y un 9,30 % en pass@10 en cuatro conjuntos de datos de referencia. La fase RL posterior mejora aún más el rendimiento con mejoras adicionales de hasta un 3,54 % en pass@1 y un 2,55 % en pass@10. En particular, la naturaleza independiente del modelo de LEDEX se muestra a través de experimentos con CodeLlama-7B, que logran mejoras sustanciales (8,25% en pass@1 y 2,14% en pass@10) incluso cuando se entrenan con datos recopilados de CodeLlama-34B o de él mismo, lo que demuestra su Efectividad independiente de GPT-3.5-Turbo.
En conclusión, los investigadores presentaron LEDEX, un marco integral y escalable que combina la recopilación de datos automatizada, procesos de verificación, SFT y RL con diseños de recompensa innovadores para mejorar significativamente la capacidad de los LLM para identificar y corregir errores de código. La naturaleza independiente del modelo del marco se evidencia en su implementación exitosa con GPT-3.5-Turbo y CodeLlama, mientras que su riguroso proceso de verificación de datos garantiza la calidad de las explicaciones y mejoras del código. Las evaluaciones humanas validan aún más la efectividad del marco, confirmando que los modelos entrenados por LEDEX producen explicaciones de código superiores que ayudan eficazmente a los desarrolladores a comprender y resolver problemas de código.
Verificar el Papel. Todo el crédito por esta investigación va a los investigadores de este proyecto. Además, no olvides seguirnos en Gorjeo y únete a nuestro Canal de telegramas y LinkedIn Grarriba. No olvides unirte a nuestro SubReddit de más de 60.000 ml.
Sajjad Ansari es un estudiante de último año de IIT Kharagpur. Como entusiasta de la tecnología, profundiza en las aplicaciones prácticas de la IA centrándose en comprender el impacto de las tecnologías de IA y sus implicaciones en el mundo real. Su objetivo es articular conceptos complejos de IA de una manera clara y accesible.
