Nebius AI Impulsa LLMs de Peso Abierto para Agentes SWE con Avance en RL

Marktechpost

El panorama en evolución de la automatización de la ingeniería de software está cada vez más moldeado por los avances en los Grandes Modelos de Lenguaje (LLMs). Sin embargo, ha persistido un obstáculo significativo: la mayoría de los agentes LLM capaces dependen de modelos propietarios o de métodos de entrenamiento caros y guiados por un profesor. Esto ha dejado a los LLMs de peso abierto —aquellos con modelos disponibles públicamente— con una utilidad limitada en el mundo real para tareas complejas de desarrollo de software. Un reciente avance de un equipo de investigación conjunto en Nebius AI y Humanoid tiene como objetivo cambiar esto, introduciendo un novedoso marco de aprendizaje por refuerzo diseñado para entrenar agentes de ingeniería de software de alta capacidad, contexto largo y múltiples turnos. Esta investigación marca un cambio fundamental, yendo más allá de las interacciones simplistas y de un solo turno típicamente vistas en el aprendizaje por refuerzo de LLM para abordar las intrincadas demandas de la ingeniería de software genuina.

La ingeniería de software difiere fundamentalmente de muchas tareas para las que se entrenan los LLMs, como el razonamiento matemático o la generación de código de un solo disparo. A diferencia de estas, que a menudo proporcionan una única recompensa al final, la ingeniería de software (SWE) requiere que los agentes ejecuten largas secuencias de acciones, interpreten retroalimentación rica como errores del compilador y registros de pruebas, y mantengan el contexto a lo largo de cientos de miles de tokens. Esta complejidad introduce varios desafíos clave para el aprendizaje por refuerzo. Los agentes deben mantener la coherencia lógica a lo largo de muchos pasos, lo que a menudo requiere ventanas de contexto que superen los 100.000 tokens. Las acciones producen observaciones significativas y no triviales —como salidas de comandos de shell o resultados de suites de pruebas— que son cruciales para guiar decisiones posteriores. Además, las señales de éxito suelen ser escasas y tardías, emergiendo solo al final de interacciones complejas, lo que dificulta atribuir el crédito a acciones específicas. Evaluar el progreso también es complejo, requiere el despliegue completo de la trayectoria y puede ser ruidoso debido a la inestabilidad de las pruebas.

Para abordar estos desafíos, el equipo de investigación desarrolló un pipeline de aprendizaje de dos etapas para entrenar un agente Qwen2.5-72B-Instruct. El proceso comienza con el Ajuste Fino por Rechazo (RFT), un método supervisado donde el agente se ejecuta a través de 7.249 tareas de ingeniería de software rigurosamente filtradas del conjunto de datos SWE-REBENCH. Solo las trazas de interacción exitosas —donde el agente pasa la suite de pruebas del entorno— se utilizan para ajustar el modelo, prestando especial atención a enmascarar acciones de formato de entorno inválidas durante el entrenamiento. Solo este paso inicial aumentó significativamente la precisión de la línea base del 11% al 20% en el benchmark SWE-bench Verified.

Sobre esta base, la segunda etapa emplea el aprendizaje por refuerzo utilizando un algoritmo de Optimización de Políticas por Ventaja Desacoplada (DAPO) modificado. Se introdujeron varias modificaciones clave para mejorar la escalabilidad y la estabilidad. Se implementó el Recorte Asimétrico para evitar el colapso de la entropía de la política, asegurando que el agente continúe explorando nuevas soluciones. El Filtrado Dinámico de Muestras centra la optimización en trayectorias que producen señales de aprendizaje reales, haciendo el entrenamiento más eficiente. Las Penalizaciones por Longitud desincentivan los episodios excesivamente largos, ayudando al agente a evitar quedarse atascado en bucles improductivos. Finalmente, el Promedio a Nivel de Token asegura que cada token en cada trayectoria contribuya igualmente al gradiente, permitiendo que interacciones más largas y complejas ejerzan una influencia apropiada en las actualizaciones. El agente mismo utiliza un bucle de estilo ReAct, lo que le permite combinar pasos de razonamiento con el uso práctico de herramientas. Su robusto kit de herramientas incluye la capacidad de ejecutar comandos de shell arbitrarios, realizar ediciones precisas de código, usar utilidades de navegación y búsqueda, y señalar la finalización del episodio. Cada interacción se basa en un entorno robusto de sandbox, inicializado a partir de instantáneas de repositorios reales y presentado con avisos de problemas al estilo GitHub.

Inicialmente entrenado con una longitud de contexto de 65.000 tokens —ya el doble que la mayoría de los modelos abiertos— el rendimiento del agente se estancó en el 32%. Para ir más allá, una segunda fase de aprendizaje por refuerzo expandió el contexto a 131.000 tokens y duplicó el límite de duración del episodio. Esta fase centró el entrenamiento posterior solo en las tareas más beneficiosas, permitiendo que el modelo escalara a los rastros de pila más largos y los historiales de diferencias inherentes a las tareas de depuración y parcheo del mundo real.

Los resultados son convincentes. El agente final entrenado con RL logró una precisión Pass@1 del 39% en el benchmark SWE-bench Verified, duplicando efectivamente el rendimiento de la línea base ajustada por rechazo. Crucialmente, igualó el rendimiento de modelos de peso abierto de vanguardia como DeepSeek-V3-0324, todo sin requerir supervisión basada en un profesor. En las divisiones de SWE-rebench retenidas, las puntuaciones se mantuvieron competitivas, demostrando la robustez del método: 35% para mayo y 31,7% para junio. Cuando se compara directamente con las principales líneas base abiertas y los agentes especializados en ingeniería de software, este agente de RL igualó o superó consistentemente a varios modelos, confirmando la efectividad de esta metodología de aprendizaje por refuerzo en el dominio del desarrollo de software autónomo.

A pesar de estos avances, persisten los desafíos. La asignación de crédito en regímenes de recompensa escasa sigue siendo fundamentalmente difícil, lo que sugiere que el trabajo futuro podría explorar la conformación de recompensas, críticos a nivel de paso o despliegues basados en prefijos para una retroalimentación más granular. Los agentes del mundo real también necesitan estimar la incertidumbre, sabiendo cuándo abstenerse o expresar confianza, con técnicas como la entropía de salida o la puntuación explícita de confianza como próximos pasos. El entrenamiento en sí mismo fue una tarea significativa, aprovechando el paralelismo de contexto para dividir secuencias largas en 16 nodos H200, con la orquestación distribuida gestionada a través de Kubernetes y Tracto AI, y vLLM para una inferencia rápida.

Esta investigación valida decisivamente el aprendizaje por refuerzo como un paradigma potente para construir ingenieros de software autónomos utilizando LLMs de peso abierto. Al conquistar tareas de horizonte largo, múltiples turnos y entorno real, la metodología allana el camino para el desarrollo de agentes escalables y sin necesidad de profesores que aprovechan directamente el poder de la interacción en lugar de la instrucción estática. Con más refinamientos, tales pipelines de aprendizaje por refuerzo prometen ofrecer una automatización eficiente, confiable y versátil para el futuro de la ingeniería de software.