Diff-XYZ: Бенчмарк для оценки понимания разностей
Diff-XYZ: A Benchmark for Evaluating Diff Understanding
October 14, 2025
Авторы: Evgeniy Glukhov, Michele Conti, Egor Bogomolov, Yaroslav Golubev, Alexander Bezzubov
cs.AI
Аннотация
Надежная обработка различий в коде (diff) является ключевой для агентов, которые редактируют и рефакторят репозитории в больших масштабах. Мы представляем Diff-XYZ — компактный бенчмарк для понимания различий в коде с тремя контролируемыми задачами: применение (старый код + diff → новый код), отмена применения (новый код - diff → старый код) и генерация diff (новый код - старый код → diff). Экземпляры в бенчмарке представляют собой тройки ⟨старый код, новый код, diff⟩, извлеченные из реальных коммитов в CommitPackFT, снабженные автоматическими метриками и четким протоколом оценки. Мы используем бенчмарк для целенаправленного эмпирического исследования формата унифицированного diff (unified diff) и проводим кросс-форматное сравнение различных представлений diff. Наши результаты показывают, что в зависимости от варианта использования и размера модели следует использовать разные форматы. Например, представление diff в формате поиска-и-замены хорошо подходит для более крупных моделей в сценарии генерации diff, но плохо подходит для анализа diff и smaller моделей. Бенчмарк Diff-XYZ является переиспользуемой основой для оценки и улучшения обработки diff в больших языковых моделях (LLM), что может помочь в будущей разработке форматов diff и моделей для редактирования кода. Набор данных опубликован на 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.