Diff-XYZ: Un Punto de Referencia para Evaluar la Comprensión de Diferencias
Diff-XYZ: A Benchmark for Evaluating Diff Understanding
October 14, 2025
Autores: Evgeniy Glukhov, Michele Conti, Egor Bogomolov, Yaroslav Golubev, Alexander Bezzubov
cs.AI
Resumen
El manejo confiable de diferencias de código (diffs) es fundamental para agentes que editan y refactorizan repositorios a gran escala. Presentamos Diff-XYZ, un benchmark compacto para la comprensión de diferencias de código con tres tareas supervisadas: aplicar (código antiguo + diff → código nuevo), anti-aplicar (código nuevo - diff → código antiguo) y generación de diff (código nuevo - código antiguo → diff). Las instancias en el benchmark son triplas ⟨código antiguo, código nuevo, diff⟩ extraídas de commits reales en CommitPackFT, acompañadas de métricas automáticas y un protocolo de evaluación claro. Utilizamos el benchmark para realizar un estudio empírico centrado en el formato unificado de diff y ejecutamos una comparación cruzada de diferentes representaciones de diff. Nuestros hallazgos revelan que deben utilizarse diferentes formatos según el caso de uso y el tamaño del modelo. Por ejemplo, representar los diffs en formato de búsqueda y reemplazo es adecuado para modelos más grandes en el escenario de generación de diff, pero no se adapta bien al análisis de diffs y a modelos más pequeños. El benchmark Diff-XYZ es una base reutilizable para evaluar y mejorar el manejo de diffs en LLMs que puede ayudar al desarrollo futuro de formatos de diff y modelos que editan código. El conjunto de datos se publica en HuggingFace Hub: https://huggingface.co/datasets/JetBrains-Research/diff-xyz.
English
Reliable handling of code diffs is central to agents that edit and refactor
repositories at scale. We introduce Diff-XYZ, a compact benchmark for code-diff
understanding with three supervised tasks: apply (old code + diff
rightarrow new code), anti-apply (new code - diff rightarrow old code),
and diff generation (new code - old code rightarrow diff). Instances in
the benchmark are triples langle old code, new code,
diff rangle drawn from real commits in CommitPackFT, paired with
automatic metrics and a clear evaluation protocol. We use the benchmark to do a
focused empirical study of the unified diff format and run a cross-format
comparison of different diff representations. Our findings reveal that
different formats should be used depending on the use case and model size. For
example, representing diffs in search-replace format is good for larger models
in the diff generation scenario, yet not suited well for diff analysis and
smaller models. The Diff-XYZ benchmark is a reusable foundation for assessing
and improving diff handling in LLMs that can aid future development of diff
formats and models editing code. The dataset is published on HuggingFace Hub:
https://huggingface.co/datasets/JetBrains-Research/diff-xyz.