SelfCodeAlign: Autoalineación para la generación de código
Author
Venue
NeurIPS 2024
Abstract
El ajuste de instrucciones es un enfoque de ajuste fino supervisado que mejora significativamente la capacidad de los grandes modelos de lenguaje (LLM) para seguir instrucciones humanas. Proponemos SelfCodeAlign, el primer proceso totalmente transparente y flexible para la autoalineación de LLM de código sin necesidad de extensas anotaciones humanas ni destilación. SelfCodeAlign emplea el mismo modelo base para la inferencia a lo largo de todo el proceso de generación de datos. En primer lugar, extrae diversos conceptos de codificación a partir de fragmentos de código de alta calidad para generar nuevas tareas. A continuación, toma muestras de múltiples respuestas por tarea, las empareja con casos de prueba y las valida en un entorno de pruebas. Por último, se seleccionan los ejemplos que superan la prueba para el ajuste de instrucciones. En nuestros experimentos principales, utilizamos SelfCodeAlign con CodeQwen1.5-7B para generar un conjunto de datos de 74 000 pares de instrucciones y respuestas. El ajuste fino en este conjunto de datos da lugar a un modelo que alcanza un 67,1 % de aciertos en HumanEval+, superando a CodeLlama-70B-Instruct a pesar de ser diez veces más pequeño. En todas las pruebas comparativas, este modelo ajustado supera sistemáticamente a la versión original entrenada con OctoPack, el método de vanguardia anterior para el ajuste de instrucciones sin anotaciones humanas ni destilación. Además, demostramos que SelfCodeAlign es eficaz en LLM de diversos tamaños, desde 3 000 millones hasta 33 000 millones, y que los modelos base pueden beneficiarse más de la alineación con su propia distribución de datos. Validamos además la eficacia de cada componente de nuestro proceso, demostrando que SelfCodeAlign supera tanto a la destilación directa de GPT-4o como a los principales métodos de destilación basados en GPT-3.5, como OSS-Instruct y Evol-Instruct. SelfCodeAlign también ha dado lugar a la creación de StarCoder2-Instruct, el primer LLM de código totalmente transparente, con licencia permisiva y autoalineado que alcanza un rendimiento de codificación de vanguardia.
