La localización de problemas en el código consiste en identificar las partes exactas que deben modificarse para solucionar fallos en el software, una tarea que suele requerir mucho trabajo manual por parte de los desarrolladores, especialmente en repositorios grandes. Debido a su complejidad y al tiempo que demanda, automatizar este proceso se ha convertido en un área clave de investigación. Los agentes basados en modelos de lenguaje (LLMs) permiten utilizar diversas herramientas para explorar repositorios de forma dinámica, pero enfrentan importantes desafíos para realizar búsquedas profundas en repositorios (Repo Deep Search). Esta tarea implica una navegación secuencial que requiere razonamiento en varios pasos y un uso efectivo de las herramientas disponibles. Los modelos actuales a menudo tienen dificultades para mantener cadenas coherentes de razonamiento y realizar llamadas correctas a las herramientas durante el proceso.
Entre los trabajos previos destacan métodos de localización de fallos y entrenamientos con agentes. Por ejemplo, técnicas como DeepFL y DeepRL4FL emplean redes neuronales profundas y CNNs para detectar código defectuoso analizando la cobertura de pruebas, dependencias de datos y representaciones estáticas del código. Más recientemente, los LLMs, como Agentless, se han utilizado para acotar las áreas del código relacionadas con el problema, pero suelen carecer de la complejidad necesaria para el razonamiento avanzado y el uso eficiente de herramientas en la exploración de repositorios. Para superar estas limitaciones, se han desarrollado métodos de entrenamiento con agentes, como SWE-Gym y SEAlign, que ajustan los LLMs a partir de trayectorias de alta calidad. Otra estrategia, LocAgent, genera datos de referencia para la localización de problemas basándose en las funciones modificadas por parches verificados en GitHub.
Investigadores de la Universidad de Pekín, ByteDance y el Instituto de Tecnología de Beijing han presentado ToolTrain, un marco de entrenamiento integrado con herramientas que mejora la capacidad de razonamiento multi-paso de los LLMs durante la localización de problemas. ToolTrain incorpora RepoSearcher, un agente ligero equipado con herramientas de recuperación simples que permiten a los LLMs encontrar definiciones de funciones o clases por nombre. Para guiar el uso estratégico de estas herramientas en el razonamiento multi-paso, los investigadores crearon datos etiquetados a partir de repositorios de código abierto y aplicaron un proceso en dos etapas: primero un ajuste fino con muestreo por rechazo (SFT) y luego un entrenamiento por refuerzo integrado con herramientas (RL). Esta metodología ayuda a que el modelo aprenda a usar las herramientas de forma eficiente, evitando búsquedas redundantes y enfocándose en caminos prometedores dentro del código.
El conjunto de evaluación se construyó con SWE-Bench-Verified, un benchmark basado en problemas reales de GitHub, verificados manualmente por desarrolladores profesionales. Este conjunto proporciona respuestas de referencia sobre la localización de problemas, identificando funciones y archivos modificados en parches "dorados". Para medir el desempeño de RepoSearcher se utilizan métricas como Recall@k, MAP, MRR, nDCG@k y porcentaje de problemas resueltos (%Resolved). Además, ToolTrain se aplicó a dos modelos, Qwen-7B y Qwen-32B, para compararlos con cuatro sistemas de última generación: Agentless, CrcaLoca, CoSIL y LocAgent. Estos frameworks representan diversas aproximaciones, permitiendo una evaluación completa de la efectividad de ToolTrain en exploraciones de código precisas y estratégicas.
Los resultados muestran que RepoSearcher con ToolTrain alcanza un rendimiento líder en su categoría, superando incluso a modelos comerciales más grandes en ciertos indicadores. Por ejemplo, la versión con ToolTrain-32B logra un Recall@5 a nivel de función del 68.55%, superando al Claude-3.7-Sonnet que alcanza 66.38%. Sorprendentemente, el modelo de 7 mil millones de parámetros supera a otros frameworks que usan modelos de 32 mil millones, mejorando la capacidad de llamar herramientas en modelos más pequeños. En la resolución de problemas, RepoSearcher con ToolTrain-7B obtiene un Recall@5 del 62.38% y una tasa de resolución del 14.00%, la más alta entre los modelos de ese tamaño. Sin embargo, existen diferencias al usar distintos modelos generadores de parches, evidenciadas en las tasas de resolución de 14.00% (ToolTrain-7B) frente a 31.60% (ToolTrain-32B), pese a resultados similares en la localización.
En resumen, ToolTrain es un marco que mejora la localización de problemas en LLMs combinando ajuste fino y entrenamiento por refuerzo para que los modelos naveguen repositorios y realicen razonamientos multi-paso con mayor precisión. Evaluado en benchmarks reales, ToolTrain alcanza resultados de vanguardia en modelos de tamaño similar y supera en ciertos aspectos a modelos comerciales más grandes como Claude-3.7. Esto evidencia su capacidad para optimizar el uso de herramientas y el razonamiento en modelos más compactos, minimizando redundancias y aumentando la eficiencia. El estudio destaca el potencial de ToolTrain para transformar la localización de problemas y ofrecer una solución eficiente a desafíos complejos del software.



