Pull Requests as a Training Signal for Repo-Level Code Editing
Este artículo presenta Clean-PR, un paradigma de entrenamiento intermedio que aprovecha un gran corpus de pull requests de GitHub reconstruidos para permitir que los modelos internalicen capacidades de edición de código a nivel de repositorio, superando significativamente a las líneas base en SWE-bench sin depender de estructuras de agentes complejas.
Artículo original bajo licencia CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta es una explicación generada por IA del artículo a continuación. No ha sido escrita ni avalada por los autores. Para mayor precisión técnica, consulte el artículo original. Leer descargo de responsabilidad completo
Imagina que tienes una biblioteca masiva y antigua (un repositorio de software) con millones de libros (archivos de código). Tu objetivo es corregir una errata específica o añadir un nuevo capítulo a uno de esos libros.
Normalmente, para hacer esto, contratas a un bibliotecario muy inteligente pero ligeramente torpe (un modelo de IA). Debido a que la biblioteca es tan enorme, el bibliotecario necesita un equipo de asistentes, un sistema complejo de lectura de mapas y mucho tiempo para encontrar el libro adecuado, abrirlo en la página correcta y realizar el cambio. Así es como trabajan la mayoría de los "ingenieros de software de IA" actuales: utilizan herramientas pesadas y complicadas para navegar por el caos.
Este artículo plantea una pregunta sencilla: ¿Podemos enseñar al bibliotecario a ser tan bueno encontrando y arreglando cosas que ya no necesite a los pesados asistentes?
Los autores dicen que "Sí", y así es como lo hicieron, utilizando algunas analogías creativas:
1. El Problema: La biblioteca "Ruidosa"
Los autores analizaron GitHub, que es como un registro público gigante de personas arreglando y cambiando código. Descubrieron que este registro es increíblemente desordenado.
- El Ruido: Imagina intentar aprender a arreglar un coche viendo un vídeo de alguien cambiando un neumático, pero el 40% del vídeo es solo la persona almorzando, el 25% es un robot fingiendo ser un mecánico, y el 25% es un vídeo que nunca se terminó.
- El Resultado: Si simplemente le das este vídeo desordenado a tu bibliotecario de IA, este se confunde. Aprende malos hábitos, como intentar arreglar cosas que no necesitan arreglo o perderse en el pasillo equivocado.
2. La Solución: "Clean-PR" (El vídeo filtrado)
El equipo construyó una máquina llamada Clean-PR. Piensa en esto como un editor de vídeo superinteligente que observa todos esos vídeos desordenados de GitHub y elimina la basura.
- El Filtro: Elimina los vídeos donde no se realizó un trabajo real, donde un robot hizo el trabajo o donde el arreglo nunca fue aprobado.
- La Traducción: En lugar de mostrarle a la IA una imagen de "antes y después" desordenada (que es difícil de leer), la máquina traduce el arreglo en una instrucción clara y paso a paso: "Busca el párrafo que comienza con 'Hola' y cámbialo por 'Adiós'".
- La Verificación: Antes de guardar la instrucción, la máquina realmente intenta aplicar la instrucción a un libro de prueba para asegurarse de que funciona perfectamente. Si no funciona, la instrucción se desecha.
El resultado es una biblioteca masiva y limpia de 2 millones de instrucciones perfectas (llamadas "Pull Requests") que cubren 12 lenguajes diferentes.
3. El Entrenamiento: Aprendizaje de dos etapas
No se limitaron a volcar estos datos sobre la IA. Le enseñaron en dos etapas específicas:
Etapa 1: Mid-Training (La fase de "Aprendiz")
Le dieron a la IA esta biblioteca limpia de 2 millones de instrucciones. Esto fue como darle al bibliotecario un curso intensivo sobre cómo la gente real arregla cosas en bibliotecas reales. La IA aprendió los patrones de edición sin necesidad de hablar con nadie más. Esto "internalizó" la habilidad en el cerebro de la IA (sus pesos).Etapa 2: Práctica Especializada (La fase de "SFT")
Los problemas del mundo real son complicados. A veces, se le da al bibliotecario una lista de 1.000 libros, pero el problema está solo en uno de ellos. Si el bibliotecario intenta arreglar todos, hace un desastre.
Para solucionar esto, los autores crearon un ejercicio de entrenamiento especial donde engañaron a la IA. Le dieron el libro correcto más un montón de libros incorrectos (distractores) y le preguntaron: "¿Cuál necesita arreglo?".
Esto enseñó a la IA a decir: "No necesito tocar estos otros libros", evitando que realice cambios innecesarios.
4. El Resultado: Un Superbibliotecario
Cuando probaron este nuevo IA en el SWE-bench (un examen difícil para ingenieros de software de IA):
- La forma antigua: Los modelos top anteriores necesitaban un gran equipo de asistentes digitales y bucles de planificación complejos para resolver aproximadamente el 20% de los problemas.
- La nueva forma: Este nuevo IA, utilizando un enfoque mucho más simple, "sin asistentes", resolvió el 30.6% de los problemas.
- La sorpresa: Aunque este IA era más pequeño (32 mil millones de "células cerebrales") que algunos de sus competidores (72 mil millones), tuvo un mejor rendimiento.
La Gran Conclusión
El artículo demuestra que no necesitas una máquina gigante y compleja con muchas herramientas para arreglar software. En su lugar, si le das a un modelo ejemplos de alta calidad y verificados de cómo arreglar las cosas, puede aprender la habilidad directamente.
Es como la diferencia entre enseñar a un estudiante a conducir dándole un manual sobre cómo arreglar el motor de un coche (desordenado, teórico) frente a dejarlo sentado en el asiento del conductor de un coche que ya ha sido conducido perfectamente por un profesional durante 2 millones de millas (Clean-PR). El estudiante aprende el sentir de la conducción tan bien que no necesita un copiloto que le diga hacia dónde girar.
En resumen: Los autores limpiaron los datos desordenados de internet, enseñaron a una IA a aprender de la versión limpia y demostraron que esto hace que la IA sea un ingeniero de software mucho mejor e independiente.
¿Ahogado en artículos de tu campo?
Recibe resúmenes diarios de los artículos más novedosos que coincidan con tus palabras clave de investigación — con resúmenes técnicos, en tu idioma.