Screenshot 2024 05 30 At 10.45.05 Pm.png

La generación de código es un campo que tiene como objetivo mejorar los procesos de desarrollo de software mediante la creación de herramientas que puedan generar, interpretar y depurar código automáticamente. Estas herramientas mejoran la eficiencia y reducen los errores de programación, lo cual es crucial para el desarrollo de software moderno. Los avances en esta área tienen el potencial de tener un impacto significativo en la forma en que se escribe, prueba y mantiene el software.

El principal problema es crear conjuntos de datos a gran escala y de alta calidad para entrenar modelos de lenguaje en la generación de código. Los métodos tradicionales de creación de conjuntos de datos son costosos y requieren mucho tiempo, y a menudo dependen de anotaciones manuales o costosos modelos de código cerrado. Esta dependencia limita la accesibilidad y escalabilidad del desarrollo de potentes herramientas de generación de código, ya que anotar manualmente grandes conjuntos de datos requiere mucha mano de obra y es económicamente exigente.

Los métodos actuales para crear conjuntos de datos de instrucciones de código incluyen SELF-INSTRUCT, EVOL-INSTRUCT y OSS-INSTRUCT. Estos métodos utilizan sólidos modelos docentes para generar instrucciones de codificación sintéticas o derivar problemas a partir de fragmentos de código fuente abierto. Sin embargo, estos enfoques están limitados por su dependencia de los modelos docentes, que pueden transferir conocimientos correctos e incorrectos a los modelos de los estudiantes. Como resultado, el rendimiento de estos modelos de estudiantes está limitado por la calidad y precisión de los modelos de docentes, lo que dificulta lograr avances en las capacidades de generación de código.

Investigadores de la Universidad de Connecticut y AIGCode introdujeron un método novedoso llamado AIEV-INSTRUCT. Este método crea un conjunto de datos de código de alta calidad a través de un proceso interactivo que involucra a dos agentes (un interrogador y un programador) que simulan diálogos de codificación y prueba. El método pasa de modelos propietarios a etapas de autoaprendizaje, lo que reduce la dependencia de costosos modelos de código cerrado. Este enfoque innovador no solo aborda las limitaciones de los métodos existentes, sino que también mejora la solidez y precisión de los conjuntos de datos generados.

AIEV-INSTRUCT opera en dos etapas: la Etapa de Enseñanza y la Etapa de Autoaprendizaje. Inicialmente, utiliza un modelo propietario para generar y validar instrucciones de código. En la etapa de enseñanza, GPT-4 Turbo sirve como modelo de maestro, guiando la generación de fragmentos de código de alta calidad y garantizando su corrección mediante pruebas unitarias. El proceso implica múltiples rondas de interacción entre el interrogador y los agentes programadores, y se utiliza retroalimentación de ejecución para refinar el código generado continuamente. Una vez que el modelo de estudiante supera al modelo de maestro en precisión, pasa a una etapa de autoaprendizaje donde el modelo de estudiante genera y valida código de forma autónoma. En la etapa de autoaprendizaje, el modelo de estudiante actúa como interrogador y programador, mejorando iterativamente su desempeño a través de diálogos autogenerados y retroalimentación de ejecución. Este proceso garantiza la precisión del código generado y reduce la dependencia de costosos modelos de código cerrado.

Es destacable el rendimiento del modelo propuesto, AutoCoder, entrenado con AIEV-INSTRUCT. AutoCoder logró una tasa de aprobación del 90,9 % en el punto de referencia HumanEval, superando a modelos superiores como GPT-4 Turbo, que obtuvo una puntuación del 90,2 %. Además, AutoCoder demostró capacidades superiores en interpretación de código, permitiendo la instalación de paquetes externos, a diferencia de sus predecesores, que se limitaban a paquetes integrados. Esta capacidad mejora significativamente la versatilidad y aplicabilidad de AutoCoder en escenarios de codificación del mundo real. Además, AutoCoder se probó en varios conjuntos de datos, incluidos HumanEval+, MBPP, MBPP+, MultiPL-E y DS-1000. Ocupó el primer lugar entre todos los modelos de lenguaje en la prueba base HumanEval y alcanzó los cinco primeros puestos en los otros puntos de referencia. Específicamente, AutoCoder-S, una variante más pequeña con 6,7 mil millones de parámetros, mostró resultados impresionantes con tasas de aprobación del 78,7 % en HumanEval y del 79,4 % en MBPP, destacando su eficiencia y precisión incluso con menos parámetros.

En conclusión, la investigación introduce un avance significativo en la generación de código al proponer un método rentable y preciso para crear conjuntos de datos de instrucciones de código. AutoCoder, que utiliza el método AIEV-INSTRUCT, muestra un rendimiento excepcional, superando a los modelos existentes en puntos de referencia clave. Esta innovación mejora la eficiencia de las tareas de generación de código y proporciona un enfoque escalable para mejorar los modelos de lenguaje en aplicaciones de codificación. Las contribuciones de la Universidad de Connecticut y AIGCode demuestran el potencial de mejoras sustanciales en los procesos de desarrollo de software, haciendo que las herramientas de generación de código de alta calidad sean más accesibles y efectivas para los desarrolladores de todo el mundo.


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. Ú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


Nikhil es consultor interno en Marktechpost. Está cursando una doble titulación integrada en Materiales en el Instituto Indio de Tecnología de Kharagpur. Nikhil es un entusiasta de la IA/ML que siempre está investigando aplicaciones en campos como los biomateriales y la ciencia biomédica. Con una sólida experiencia en ciencia de materiales, está explorando nuevos avances y creando oportunidades para contribuir.