2025-11-12T15:16:15.308508

Diff-XYZ: A Benchmark for Evaluating Diff Understanding

Glukhov, Conti, Bogomolov et al.
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 \textit{old code}, \textit{new code}, \textit{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.
academic

Diff-XYZ: Diff рд╕рдордЭ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреЗрдВрдЪрдорд╛рд░реНрдХ

рдмреБрдирд┐рдпрд╛рджреА рдЬрд╛рдирдХрд╛рд░реА

  • рдкреЗрдкрд░ ID: 2510.12487
  • рд╢реАрд░реНрд╖рдХ: Diff-XYZ: Diff рд╕рдордЭ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреЗрдВрдЪрдорд╛рд░реНрдХ
  • рд▓реЗрдЦрдХ: Evgeniy Glukhov, Michele Conti, Egor Bogomolov, Yaroslav Golubev, Alexander Bezzubov (JetBrains Research)
  • рд╡рд░реНрдЧреАрдХрд░рдг: cs.SE (рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ), cs.LG (рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ)
  • рдкреНрд░рдХрд╛рд╢рди рд╕рдореНрдореЗрд▓рди: 39рд╡рд╛рдВ рдиреНрдпреВрд░рд▓ рдЗрдирдлреЙрд░реНрдореЗрд╢рди рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдореНрд╕ рд╕рдореНрдореЗрд▓рди (NeurIPS 2025) рдХрд╛рд░реНрдпрд╢рд╛рд▓рд╛: рдПрдЬреЗрдВрдЯрд┐рдХ рдпреБрдЧ рдореЗрдВ рдХреЛрдб рдХреЗ рд▓рд┐рдП рдЧрд╣рди рд╢рд┐рдХреНрд╖рд╛
  • рдкреЗрдкрд░ рд▓рд┐рдВрдХ: https://arxiv.org/abs/2510.12487

рд╕рд╛рд░рд╛рдВрд╢

рдпрд╣ рдкреЗрдкрд░ Diff-XYZ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдмрдбрд╝реЗ рднрд╛рд╖рд╛ рдореЙрдбрд▓ (LLM) рдХреА рдХреЛрдб рдЕрдВрддрд░ (diff) рд╕рдордЭрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдореЗрдВ рддреАрди рдкрд░реНрдпрд╡реЗрдХреНрд╖рд┐рдд рд╢рд┐рдХреНрд╖рдг рдХрд╛рд░реНрдп рд╢рд╛рдорд┐рд▓ рд╣реИрдВ: apply (рдкреБрд░рд╛рдиреА рдХреЛрдб + diff тЖТ рдирдИ рдХреЛрдб), anti-apply (рдирдИ рдХреЛрдб - diff тЖТ рдкреБрд░рд╛рдиреА рдХреЛрдб) рдФрд░ diff рдЬрдирди (рдирдИ рдХреЛрдб - рдкреБрд░рд╛рдиреА рдХреЛрдб тЖТ diff)ред рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдбреЗрдЯрд╛ CommitPackFT рд╕реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛рдУрдВ рд╕реЗ рдЖрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ 1000 рддреНрд░рд┐рдкрдХреНрд╖реАрдп рдЙрджрд╛рд╣рд░рдг тЯирдкреБрд░рд╛рдиреА рдХреЛрдб, рдирдИ рдХреЛрдб, diffтЯй рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЕрдиреБрд╕рдВрдзрд╛рди рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рднрд┐рдиреНрди diff рдкреНрд░рд╛рд░реВрдкреЛрдВ рдХреЛ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдФрд░ рдореЙрдбрд▓ рдЖрдХрд╛рд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЪреБрдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреЛ рднрд╡рд┐рд╖реНрдп рдХреЗ рдХреЛрдб рд╕рдВрдкрд╛рджрди рдореЙрдбрд▓ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЖрдзрд╛рд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

рдЕрдиреБрд╕рдВрдзрд╛рди рдкреГрд╖реНрдарднреВрдорд┐ рдФрд░ рдкреНрд░реЗрд░рдгрд╛

рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛

рдЖрдзреБрдирд┐рдХ рдХреЛрдб рд╕рдВрдкрд╛рджрди рдПрдЬреЗрдВрдЯреЛрдВ рдХреЛ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕рдВрдкрд╛рджрди рдФрд░ рдкреБрдирд░реНрд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдХреЛрдб рдЕрдВрддрд░ рдХреЛ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рд╕рдВрднрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореМрдЬреВрджрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ:

  1. рдкреНрд░рд╛рд░реВрдк рдЪрдпрди рдореЗрдВ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдЕрдиреБрд╕рдВрдзрд╛рди рдХреА рдХрдореА: рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХрдИ diff рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдкреНрд░рд╛рд░реВрдк (unified diff, search-replace рдЖрджрд┐) рдореМрдЬреВрдж рд╣реИрдВ, рд▓реЗрдХрд┐рди рдкреНрд░рд╛рд░реВрдкреЛрдВ рдХреА рд╡реНрдпрд╡рд╕реНрдерд┐рдд рддреБрд▓рдирд╛ рдХрд╛ рдЕрднрд╛рд╡ рд╣реИ
  2. рдореВрд▓реНрдпрд╛рдВрдХрди рдЬрдЯрд┐рд▓рддрд╛: рдореМрдЬреВрджрд╛ end-to-end рдмреЗрдВрдЪрдорд╛рд░реНрдХ (рдЬреИрд╕реЗ SWE-bench) рдХрдИ рдХрд╛рд░рдХреЛрдВ (рдкреБрдирдГ рдкреНрд░рд╛рдкреНрддрд┐, рдЙрдкрдХрд░рдг рдЙрдкрдпреЛрдЧ рдЖрджрд┐) рдХреЛ рдорд┐рд╢реНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ diff рдкреНрд░рд╛рд░реВрдк рдХреЗ рдкреНрд░рднрд╛рд╡ рдХреЛ рдЕрд▓рдЧ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ
  3. рд╡рд┐рд╡рд┐рдз рд╡рд┐рдлрд▓рддрд╛ рдкреИрдЯрд░реНрди: рдкреИрдЪ рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рддреНрд░реБрдЯрд┐рдпреЛрдВ, рд╕рдВрджрд░реНрдн рдмреЗрдореЗрд▓ рдпрд╛ рддрд╛рд░реНрдХрд┐рдХ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдХрд╛рд░рдг рд╡рд┐рдлрд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ

рдЕрдиреБрд╕рдВрдзрд╛рди рдХрд╛ рдорд╣рддреНрд╡

  • рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдореВрд▓реНрдп: рдХреЛрдб diff рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХреЛрдб рд╕рдВрдкрд╛рджрди, рдмрдЧ рд╕реБрдзрд╛рд░, CI рдмрд┐рд▓реНрдб рд╕реБрдзрд╛рд░ рдЖрджрд┐ рдХрд╛рд░реНрдпреЛрдВ рдХреА рдореБрдЦреНрдп рдХреНрд╖рдорддрд╛ рд╣реИ
  • рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рдорд╣рддреНрд╡: LLM рдХреИрд╕реЗ рд╕рдВрд░рдЪрд┐рдд рд╕рдВрдкрд╛рджрди рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рд╕рдВрднрд╛рд▓рддреЗ рд╣реИрдВ, рдпрд╣ рд╕рдордЭрдирд╛ рдХреЛрдб рдЬрдирди рдореЙрдбрд▓ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ
  • рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдореВрд▓реНрдп: рдЙрдкрдпреБрдХреНрдд diff рдкреНрд░рд╛рд░реВрдк рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛-рд╕рдВрдЪрд╛рд▓рд┐рдд рдорд╛рд░реНрдЧрджрд░реНрд╢рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ

рдореБрдЦреНрдп рдпреЛрдЧрджрд╛рди

  1. Diff-XYZ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд░рдирд╛: рддреАрди рдкреВрд░рдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╣рд▓реНрдХрд╛, рдкреБрдирд░реБрддреНрдкрд╛рджрдиреАрдп рдореВрд▓реНрдпрд╛рдВрдХрди рдврд╛рдВрдЪрд╛
  2. рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдкреНрд░рд╛рд░реВрдк рддреБрд▓рдирд╛: рдкрд╣рд▓реА рдмрд╛рд░ рдХрдИ diff рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдкреНрд░рд╛рд░реВрдкреЛрдВ рдХреА рдирд┐рдпрдВрддреНрд░рд┐рдд рдЪрд░ рддреБрд▓рдирд╛
  3. рдкреНрд░рджрд░реНрд╢рди рдЖрдзрд╛рд░рднреВрдорд┐ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛: diff рд╕рдордЭ рдХрд╛рд░реНрдпреЛрдВ рдкрд░ рдорд╛рд▓рд┐рдХрд╛рдирд╛ рдФрд░ рдУрдкрди-рд╕реЛрд░реНрд╕ рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╕реНрддреГрдд рдкреНрд░рджрд░реНрд╢рди рдЖрдзрд╛рд░рднреВрдорд┐
  4. рдкреНрд░рд╛рд░реВрдк рдЪрдпрди рдорд╛рд░реНрдЧрджрд░реНрд╢рди: рдореЙрдбрд▓ рдЖрдХрд╛рд░, рдХрд╛рд░реНрдп рдкреНрд░рдХрд╛рд░ рдФрд░ рдЗрд╖реНрдЯрддрдо рдкреНрд░рд╛рд░реВрдк рдЪрдпрди рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдз рдЦреЛрдЬрдирд╛
  5. рдЦреБрд▓рд╛ рдбреЗрдЯрд╛рд╕реЗрдЯ: HuggingFace Hub рдкрд░ рдЙрдЪреНрдЪ рдЧреБрдгрд╡рддреНрддрд╛ рд╡рд╛рд▓рд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдбреЗрдЯрд╛рд╕реЗрдЯ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдирд╛

рд╡рд┐рдзрд┐ рд╡рд┐рд╡рд░рдг

рдХрд╛рд░реНрдп рдкрд░рд┐рднрд╛рд╖рд╛

рд╕рдореАрдХрд░рдг diff = рдирдИ рдХреЛрдб - рдкреБрд░рд╛рдиреА рдХреЛрдб рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рддреАрди рдХрд╛рд░реНрдп рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВ:

X. Apply рдХрд╛рд░реНрдп (рдЖрд╡реЗрджрди рдХрд╛рд░реНрдп)

  • рдЗрдирдкреБрдЯ: рдкреБрд░рд╛рдиреА рдХреЛрдб + diff
  • рдЖрдЙрдЯрдкреБрдЯ: рдирдИ рдХреЛрдб
  • рдЙрджреНрджреЗрд╢реНрдп: рдкреНрд░рд╛рд░реВрдк рдЕрдиреБрдкрд╛рд▓рди рдФрд░ рд╡рд░реНрдг-рд╕реНрддрд░реАрдп рдирд┐рд╖реНрдард╛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛

Y. Anti-Apply рдХрд╛рд░реНрдп (рд╡рд┐рдкрд░реАрдд рдЖрд╡реЗрджрди рдХрд╛рд░реНрдп)

  • рдЗрдирдкреБрдЯ: рдирдИ рдХреЛрдб + diff
  • рдЖрдЙрдЯрдкреБрдЯ: рдкреБрд░рд╛рдиреА рдХреЛрдб
  • рдЙрджреНрджреЗрд╢реНрдп: рдкреНрд░рд╛рд░реВрдк рдХреА рдкреНрд░рддрд┐рд╡рд░реНрддрдиреАрдпрддрд╛ рдФрд░ рд╣рд╛рдирд┐рд░рд╣рд┐рддрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛

Z. Diff рдЬрдирди рдХрд╛рд░реНрдп (рдЕрдВрддрд░ рдЬрдирди рдХрд╛рд░реНрдп)

  • рдЗрдирдкреБрдЯ: рдкреБрд░рд╛рдиреА рдХреЛрдб + рдирдИ рдХреЛрдб
  • рдЖрдЙрдЯрдкреБрдЯ: diff
  • рдЙрджреНрджреЗрд╢реНрдп: рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп diff рд╕рдВрд╢реНрд▓реЗрд╖рдг рдХреНрд╖рдорддрд╛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛

рдбреЗрдЯрд╛рд╕реЗрдЯ рдирд┐рд░реНрдорд╛рдг

рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд: CommitPackFT рдбреЗрдЯрд╛рд╕реЗрдЯ рд╕реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдУрдкрди-рд╕реЛрд░реНрд╕ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛рдПрдВ

рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рд░рдгрдиреАрддрд┐:

  • рдХреЗрд╡рд▓ рдПрдХрд▓-рдлрд╝рд╛рдЗрд▓ рд╕рдВрд╢реЛрдзрди рд╡рд╛рд▓реА рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛рдУрдВ рдХреЛ рдмрдирд╛рдП рд░рдЦрдирд╛
  • рдмрд╛рдЗрдирд░реА рдлрд╝рд╛рдЗрд▓реЗрдВ, рдЙрддреНрдкрдиреНрди рдХреЛрдб, рд╡рд┐рдХреНрд░реЗрддрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдВ рдмрд╛рд╣рд░ рдХрд░рдирд╛
  • рдлрд╝рд╛рдЗрд▓ рдкрдВрдХреНрддрд┐ рд╕реАрдорд╛: 40-1000 рдкрдВрдХреНрддрд┐рдпрд╛рдВ
  • рдХреЗрд╡рд▓ рд╡реНрд╣рд╛рдЗрдЯрд╕реНрдкреЗрд╕ рдкрд░рд┐рд╡рд░реНрддрди рдмрд╛рд╣рд░ рдХрд░рдирд╛

рд╕реНрддрд░реАрдХреГрдд рдирдореВрдирд╛рдХрд░рдг:

  • рднрд╛рд╖рд╛ рд╡рд┐рддрд░рдг: Python, JavaScript, Java, Kotlin, Rust рдкреНрд░рддреНрдпреЗрдХ 200 рдирдореВрдиреЗ
  • рд╕рдВрдкрд╛рджрди рдЬрдЯрд┐рд▓рддрд╛: рдкрд░рд┐рд╡рд░реНрддрди рдмреНрд▓реЙрдХ рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдкрд░рд┐рд╡рд░реНрддрди рдЖрдХрд╛рд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕реНрддрд░реАрдХреГрдд
    • рдЫреЛрдЯреЗ рд╕рдВрдкрд╛рджрди: тЙд7 рдкрдВрдХреНрддрд┐ рдкрд░рд┐рд╡рд░реНрддрди (40%)
    • рдордзреНрдпрдо рд╕рдВрдкрд╛рджрди: 8-24 рдкрдВрдХреНрддрд┐ рдкрд░рд┐рд╡рд░реНрддрди (40%)
    • рдмрдбрд╝реЗ рд╕рдВрдкрд╛рджрди: >24 рдкрдВрдХреНрддрд┐ рдкрд░рд┐рд╡рд░реНрддрди (20%)
  • рдкрд░рд┐рд╡рд░реНрддрди рдкреНрд░рдХрд╛рд░: 81.5% рдореЗрдВ рдЬреЛрдбрд╝/рд╣рдЯрд╛рдирд╛ рд╢рд╛рдорд┐рд▓, 16.3% рдХреЗрд╡рд▓ рдЬреЛрдбрд╝рдирд╛, 2.2% рдХреЗрд╡рд▓ рд╣рдЯрд╛рдирд╛

рдореВрд▓реНрдпрд╛рдВрдХрди рдореЗрдЯреНрд░рд┐рдХреНрд╕

Apply рдФрд░ Anti-Apply рдХрд╛рд░реНрдп:

  • Stripped Exact Match (EM): рд╡реНрд╣рд╛рдЗрдЯрд╕реНрдкреЗрд╕ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рдмрд╛рдж рд╕рдЯреАрдХ рдорд┐рд▓рд╛рди рджрд░
  • Stripped Intersection over Union (IoU): рдкрдВрдХреНрддрд┐-рд╕реНрддрд░реАрдп рдкреНрд░рддрд┐рдЪреНрдЫреЗрджрди рд╕рдВрдШ

Diff рдЬрдирди рдХрд╛рд░реНрдп:

  • рдкрд╛рд░реНрд╕рд┐рдВрдЧ рджрд░: рдкрд╛рд░реНрд╕реЗрдмрд▓ diff рдХрд╛ рдЕрдиреБрдкрд╛рдд
  • рдЖрд╡реЗрджрди рджрд░: рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд▓рд╛рдЧреВ рдХрд┐рдП рдЬрд╛ рд╕рдХрдиреЗ рд╡рд╛рд▓реЗ diff рдХрд╛ рдЕрдиреБрдкрд╛рдд
  • EM/IoU рдЖрд╡реЗрджрди рдХреЗ рдмрд╛рдж: diff рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╕рдЯреАрдХ рдорд┐рд▓рд╛рди рджрд░ рдФрд░ IoU
  • F1+ / F1-: рдЬреЛрдбрд╝реА рдЧрдИ рдФрд░ рд╣рдЯрд╛рдИ рдЧрдИ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП F1 рд╕реНрдХреЛрд░

рддрдХрдиреАрдХреА рдирд╡рд╛рдЪрд╛рд░ рдмрд┐рдВрджреБ

  1. рдХрд╛рд░реНрдп рдбрд┐рдЬрд╛рдЗрди рдХреА рдкреВрд░рдХрддрд╛: рддреАрди рдХрд╛рд░реНрдп рд╡рд┐рднрд┐рдиреНрди рдХреЛрдгреЛрдВ рд╕реЗ diff рд╕рдордЭ рдХреНрд╖рдорддрд╛ рдХрд╛ рд╡реНрдпрд╛рдкрдХ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рддреЗ рд╣реИрдВ
  2. рдирд┐рдпрдВрддреНрд░рд┐рдд рдЪрд░ рдкреНрд░рдпреЛрдЧ: рд╕рдВрджрд░реНрдн рдкрд░рд┐рд╡рд░реНрддрди рдкреНрд░рд╛рд░реВрдк рдХреЛ рдареАрдХ рдХрд░рдХреЗ, рдкреНрд░рд╛рд░реВрдк рдкреНрд░рднрд╛рд╡ рдХреЛ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рдорд╛рдкрдирд╛
  3. рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбреЗрдЯрд╛-рд╕рдВрдЪрд╛рд▓рд┐рдд: рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛рдУрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд, рдХреГрддреНрд░рд┐рдо рдбреЗрдЯрд╛ рдирд╣реАрдВ, рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рд╡реИрдзрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ
  4. рдмрд╣реБ-рдЖрдпрд╛рдореА рдореВрд▓реНрдпрд╛рдВрдХрди: рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рд╕рд╣реА рд╣реЛрдирд╛, рдЖрд╡реЗрджрди рд╕рдлрд▓рддрд╛ рджрд░ рдФрд░ рд╢рдмреНрджрд╛рд░реНрде рд╕рд╣реА рд╣реЛрдирд╛ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ

рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рд╕реЗрдЯрдЕрдк

рддреБрд▓рдирд╛ рдкреНрд░рд╛рд░реВрдк

  1. udiff: рдорд╛рдирдХ unified diff рдкреНрд░рд╛рд░реВрдк
  2. udiff-h: рд╢рд┐рдерд┐рд▓ рдмреНрд▓реЙрдХ рд╣реЗрдбрд░ рдХреЗ рд╕рд╛рде unified diff
  3. udiff-l: рд╕реНрдкрд╖реНрдЯ рдЯреИрдЧ (ADD/DEL/CON) рдХреЗ рд╕рд╛рде unified diff
  4. search-replace: рдЦреЛрдЬ-рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдкреНрд░рд╛рд░реВрдк

рдкрд░реАрдХреНрд╖рдг рдореЙрдбрд▓

рдорд╛рд▓рд┐рдХрд╛рдирд╛ рдореЙрдбрд▓:

  • GPT-4o, GPT-4o-mini
  • GPT-4.1, GPT-4.1-mini, GPT-4.1-nano
  • Claude 4 Sonnet
  • Gemini 2.5 Flash

рдУрдкрди-рд╕реЛрд░реНрд╕ рдореЙрдбрд▓:

  • Qwen2.5-Coder рд╢реНрд░реГрдВрдЦрд▓рд╛ (0.5B-32B)

рдкреНрд░реЙрдореНрдкреНрдЯ рд░рдгрдиреАрддрд┐

  • рдмрд┐рдирд╛ рдкреНрд░рд╛рд░реВрдк рдХреЗ: рд╕рд╛рдорд╛рдиреНрдп рд╕рд╣рд╛рдпрдХ рдкреНрд░реЙрдореНрдкреНрдЯ
  • рдкреНрд░рд╛рд░реВрдк рдХреЗ рд╕рд╛рде: рдкреНрд░рд╛рд░реВрдк рд╡рд┐рд╡рд░рдг рд╡рд╛рд▓реА рд╕рд┐рд╕реНрдЯрдо рдкреНрд░реЙрдореНрдкреНрдЯ

рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рдкрд░рд┐рдгрд╛рдо

рдореБрдЦреНрдп рдкрд░рд┐рдгрд╛рдо

рдорд╛рд▓рд┐рдХрд╛рдирд╛ рдореЙрдбрд▓ рдкреНрд░рджрд░реНрд╢рди:

  • Claude 4 Sonnet Apply рдХрд╛рд░реНрдп рдкрд░ рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рдкреНрд░рджрд░реНрд╢рди рдХрд░рддрд╛ рд╣реИ (EM: 0.95-0.96)
  • GPT-4.1 рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдкрд░ рдордЬрдмреВрдд рдкреНрд░рджрд░реНрд╢рди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░реЙрдореНрдкреНрдЯ рдХреЗ рдкреНрд░рддрд┐ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╣реИ
  • рдЫреЛрдЯреЗ рдорд╛рд▓рд┐рдХрд╛рдирд╛ рдореЙрдбрд▓ (рдЬреИрд╕реЗ GPT-4.1-nano) рдЬрдЯрд┐рд▓ рдХрд╛рд░реНрдпреЛрдВ рдкрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдЧрд┐рд░рддреЗ рд╣реИрдВ

рдУрдкрди-рд╕реЛрд░реНрд╕ рдореЙрдбрд▓ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдирд┐рдпрдо:

  • рдкреНрд░рджрд░реНрд╢рди рдореЙрдбрд▓ рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рде рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕реБрдзрд░рддрд╛ рд╣реИ
  • Qwen2.5-Coder-32B Apply/Anti-Apply рдкрд░ GPT-4o рд╕реНрддрд░ рдХреЗ рдХрд░реАрдм рд╣реИ
  • рд▓реЗрдХрд┐рди Diff рдЬрдирди рдкрд░ рдЕрднреА рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдВрддрд░ рд╣реИ

рдкреНрд░рд╛рд░реВрдк рддреБрд▓рдирд╛ рдирд┐рд╖реНрдХрд░реНрд╖

рдореБрдЦреНрдп рдирд┐рд╖реНрдХрд░реНрд╖:

  1. рдХрд╛рд░реНрдп рдирд┐рд░реНрднрд░рддрд╛:
    • Apply/Anti-Apply: udiff рдкреНрд░рд╛рд░реВрдк рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рдкреНрд░рджрд░реНрд╢рди рдХрд░рддрд╛ рд╣реИ
    • Diff рдЬрдирди: search-replace рдмрдбрд╝реЗ рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╣реИ
  2. рдореЙрдбрд▓ рдЖрдХрд╛рд░ рдкреНрд░рднрд╛рд╡:
    • рдмрдбрд╝реЗ рдореЙрдбрд▓: search-replace рдЬрдирди рдХрд╛рд░реНрдп рдореЗрдВ рдЙрддреНрдХреГрд╖реНрдЯ рдкреНрд░рджрд░реНрд╢рди рдХрд░рддрд╛ рд╣реИ
    • рдЫреЛрдЯреЗ рдореЙрдбрд▓: udiff-l (рд╕реНрдкрд╖реНрдЯ рдЯреИрдЧ) рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рд╣реИ
  3. рдкреНрд░рд╛рд░реВрдк рд╡рд┐рд╢реЗрд╖рддрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг:
    • search-replace рд▓рд╛рдн: рд╡реИрд╢реНрд╡рд┐рдХ рдмрд╛рдзрд╛рдУрдВ рд╕реЗ рдмрдЪрдирд╛, рд╕реНрдерд╛рдиреАрдп рд╕рдВрдкрд╛рджрди рд╕реНрд╡рддрдВрддреНрд░
    • udiff-h рдиреБрдХрд╕рд╛рди: рдкрдВрдХреНрддрд┐ рд╕рдВрдЦреНрдпрд╛ рд╕рдорд░реНрдерди рдХреЛ рд╣рдЯрд╛рдиреЗ рд╕реЗ рд╕рдВрд░рдЪрдирд╛ рднреНрд░рдорд┐рдд рд╣реЛрддреА рд╣реИ
    • udiff-l рд▓рд╛рдн: рд╕реНрдкрд╖реНрдЯ рдЯреИрдЧ рдЯреИрдЧ рд╕рдВрдШрд░реНрд╖ рдХреЛ рдХрдо рдХрд░рддреЗ рд╣реИрдВ

рд╡рд┐рд▓реЛрдкрди рдкреНрд░рдпреЛрдЧ рдкрд░рд┐рдгрд╛рдо

рдкреНрд░реЙрдореНрдкреНрдЯ рдкреНрд░рднрд╛рд╡:

  • Diff рдЬрдирди рдХрд╛рд░реНрдп рдкреНрд░рд╛рд░реВрдк рд╡рд┐рд╡рд░рдг рдХреЗ рдкреНрд░рддрд┐ рдЕрддреНрдпрдзрд┐рдХ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╣реИ
  • GPT-4.1 рдкреНрд░рд╛рд░реВрдк рд╡рд┐рд╡рд░рдг рдХреЗ рдмрд┐рдирд╛ V4A рдкреНрд░рд╛рд░реВрдк рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╡реГрддреНрдд рд╣реИ
  • Apply рдХрд╛рд░реНрдп рдкреНрд░реЙрдореНрдкреНрдЯ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд▓рд┐рдП рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдордЬрдмреВрдд рд╣реИ

рднрд╛рд╖рд╛ рдЕрдВрддрд░:

  • рдкрд╛рдВрдЪ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдкрд░ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╕реБрд╕рдВрдЧрдд рдкреНрд░рджрд░реНрд╢рди
  • Python рдФрд░ JavaScript рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдкрд░ рдереЛрдбрд╝рд╛ рдмреЗрд╣рддрд░ рд╣реИрдВ

рд╕рдВрдмрдВрдзрд┐рдд рдХрд╛рд░реНрдп

рдХреЛрдб рдЬрдирди рдмреЗрдВрдЪрдорд╛рд░реНрдХ

  • HumanEval/MBPP: рдлрд╝рдВрдХреНрд╢рди-рд╕реНрддрд░реАрдп рдХреЛрдб рдЬрдирди
  • BigCodeBench: рдЬрдЯрд┐рд▓ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЙрд▓ рдХрд╛рд░реНрдп
  • рд╕реАрдорд╛рдПрдВ: рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рд╢реВрдиреНрдп рд╕реЗ рдЬрдирди рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд, рд╕рдВрдкрд╛рджрди рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ

рд╕рдВрдкрд╛рджрди рдФрд░ рд╕рдорд╕реНрдпрд╛ рд╕рдорд╛рдзрд╛рди рдмреЗрдВрдЪрдорд╛рд░реНрдХ

  • SWE-bench: рд╡рд╛рд╕реНрддрд╡рд┐рдХ GitHub рд╕рдорд╕реНрдпрд╛ рд╕рдорд╛рдзрд╛рди
  • CodeEditorBench: рдирд┐рд░реНрджреЗрд╢-рдкрд╛рд▓рди рд╕рдВрдкрд╛рджрди
  • рд╕реАрдорд╛рдПрдВ: end-to-end рдореВрд▓реНрдпрд╛рдВрдХрди, рдкреНрд░рд╛рд░реВрдк рдкреНрд░рднрд╛рд╡ рдХреЛ рдЕрд▓рдЧ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓

рдЗрд╕ рдкреЗрдкрд░ рдХреА рд╕реНрдерд┐рддрд┐

  • рдкреВрд░рдХрддрд╛: рд╕рдВрдкрд╛рджрди рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЗ рдЕрд▓рдЧ-рдерд▓рдЧ рдЕрдзреНрдпрдпрди рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд
  • рд╣рд▓реНрдХрд╛рдкрди: рдХреЛрдИ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗрдЯрдЕрдк рдпрд╛ рдирд┐рд╖реНрдкрд╛рджрди рд╡рд╛рддрд╛рд╡рд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ
  • рдирд┐рдпрдВрддреНрд░рдгрд╢реАрд▓рддрд╛: рдХрд╛рд░реНрдп рд╕рдВрджрд░реНрдн рдХреЛ рдареАрдХ рдХрд░рдирд╛, рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдкреНрд░рд╛рд░реВрдк рдХреЛ рдмрджрд▓рдирд╛

рдирд┐рд╖реНрдХрд░реНрд╖ рдФрд░ рдЪрд░реНрдЪрд╛

рдореБрдЦреНрдп рдирд┐рд╖реНрдХрд░реНрд╖

  1. рдкреНрд░рд╛рд░реВрдк рдЪрдпрди рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ: рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рд╛рд░реВрдк рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рдореЙрдбрд▓ рдЖрдХрд╛рд░реЛрдВ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рднрд┐рдиреНрди рд╣реЛрддреЗ рд╣реИрдВ
  2. рдХрд╛рд░реНрдп рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛: рдЬрдирди рдФрд░ рдЖрд╡реЗрджрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдЗрд╖реНрдЯрддрдо рдкреНрд░рд╛рд░реВрдкреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
  3. рдЖрдХрд╛рд░ рдирд┐рд░реНрднрд░рддрд╛: рдЫреЛрдЯреЗ рдФрд░ рдмрдбрд╝реЗ рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП рдЗрд╖реНрдЯрддрдо рд░рдгрдиреАрддрд┐ рдЕрд▓рдЧ рд╣реИ
  4. рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрдВрддрд░: рдУрдкрди-рд╕реЛрд░реНрд╕ рдореЙрдбрд▓ рдореЗрдВ diff рдЬрдирди рдкрд░ рдЕрднреА рднреА рдмрдбрд╝реА рд╕реБрдзрд╛рд░ рдХреА рдЧреБрдВрдЬрд╛рдЗрд╢ рд╣реИ

рд╕реАрдорд╛рдПрдВ

  1. рд╕рд░рд▓реАрдХреГрдд рдХрд╛рд░реНрдп: рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдХрд╛рд░реНрдп рдбрд╛рдЙрдирд╕реНрдЯреНрд░реАрдо рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╕рд░рд▓реАрдХреГрдд рдкреНрд░реЙрдХреНрд╕реА рд╣реИрдВ
  2. рдореВрд▓реНрдпрд╛рдВрдХрди рджрд╛рдпрд░рд╛: рдХреЗрд╡рд▓ рд▓рд╛рд▓рдЪреА рдбрд┐рдХреЛрдбрд┐рдВрдЧ рдкрд░ рд╡рд┐рдЪрд╛рд░, рддрд░реНрдХ рдпрд╛ рдЙрдкрдХрд░рдг рдЙрдкрдпреЛрдЧ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ
  3. рдкреНрд░рд╛рд░реВрдк рдХрд╡рд░реЗрдЬ: AST-рд╕реНрддрд░реАрдп рдпрд╛ рд╕рдВрд░рдЪрд┐рдд рдкреИрдЪ рдкреНрд░рд╛рд░реВрдк рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ
  4. рдбрд╛рдЙрдирд╕реНрдЯреНрд░реАрдо рдХрдиреЗрдХреНрд╢рди: рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдкреНрд░рджрд░реНрд╢рди рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкреНрд░рднрд╛рд╡ рдХреЗ рдмреАрдЪ рдорд╛рддреНрд░рд╛рддреНрдордХ рд╕рдВрдмрдВрдз рдХреА рдХрдореА

рднрд╡рд┐рд╖реНрдп рдХреА рджрд┐рд╢рд╛рдПрдВ

  1. рдкреНрд░рд╛рд░реВрдк рд╡рд┐рд╕реНрддрд╛рд░: рд╡реГрдХреНрд╖ рд╕рдВрд░рдЪрдирд╛ рдФрд░ AST-рд╕реНрддрд░реАрдп рд╕рдВрдкрд╛рджрди рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд╛ рдЕрдиреНрд╡реЗрд╖рдг
  2. рдбрд╛рдЙрдирд╕реНрдЯреНрд░реАрдо рдХрдиреЗрдХреНрд╢рди: рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдкреНрд░рджрд░реНрд╢рди рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкреНрд░рднрд╛рд╡ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдз рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛
  3. рддрд░реНрдХ рдХреНрд╖рдорддрд╛: рдмрд╣реБ-рдЪрд░рдгреАрдп рддрд░реНрдХ рдФрд░ рдЙрдкрдХрд░рдг рдЙрдкрдпреЛрдЧ рдкрд░рд┐рджреГрд╢реНрдп рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди
  4. рддреНрд░реБрдЯрд┐ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрддрд┐: рдЖрдВрд╢рд┐рдХ рдпрд╛ рдХреНрд╖рддрд┐рдЧреНрд░рд╕реНрдд diff рдХреА рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреНрд╖рдорддрд╛ рдХрд╛ рдЕрдзреНрдпрдпрди

рдЧрд╣рди рдореВрд▓реНрдпрд╛рдВрдХрди

рд╢рдХреНрддрд┐рдпрд╛рдВ

  1. рд╕реНрдкрд╖реНрдЯ рд╕рдорд╕реНрдпрд╛ рдкрд░рд┐рднрд╛рд╖рд╛: diff рд╕рдордЭ рдХреА рдЗрд╕ рдореБрдЦреНрдп рд▓реЗрдХрд┐рди рдЕрдирджреЗрдЦреА рдХреНрд╖рдорддрд╛ рдХреЛ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рдкрд╣рдЪрд╛рдирдирд╛
  2. рдХрдареЛрд░ рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рдбрд┐рдЬрд╛рдЗрди: рдирд┐рдпрдВрддреНрд░рд┐рдд рдЪрд░ рдкреНрд░рд╛рд░реВрдк рддреБрд▓рдирд╛ рд╡рд┐рдзрд┐ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдФрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╣реИ
  3. рдЙрдЪреНрдЪ рдбреЗрдЯрд╛ рдЧреБрдгрд╡рддреНрддрд╛: рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛рдУрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд, рд╕реНрддрд░реАрдХреГрдд рдирдореВрдирд╛рдХрд░рдг рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ
  4. рдореВрд▓реНрдпрд╡рд╛рди рдирд┐рд╖реНрдХрд░реНрд╖: рдкреНрд░рд╛рд░реВрдк рдЪрдпрди рдорд╛рд░реНрдЧрджрд░реНрд╢рди рдореЗрдВ рд╕реАрдзрд╛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдореВрд▓реНрдп рд╣реИ
  5. рдордЬрдмреВрдд рдкреБрдирд░реБрддреНрдкрд╛рджрдирд╢реАрд▓рддрд╛: рд╡рд┐рд╕реНрддреГрдд рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рд╕реЗрдЯрдЕрдк рдФрд░ рдЦреБрд▓рд╛ рдбреЗрдЯрд╛рд╕реЗрдЯ

рдХрдорд┐рдпрд╛рдВ

  1. рд╕реАрдорд┐рдд рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рдЧрд╣рд░рд╛рдИ: рдкреНрд░рд╛рд░реВрдк рдЕрдВрддрд░ рддрдВрддреНрд░ рдХрд╛ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ
  2. рдПрдХрд▓ рдореВрд▓реНрдпрд╛рдВрдХрди рдЖрдпрд╛рдо: рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рд╕рд╣реА рд╣реЛрдирд╛ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд, рджрдХреНрд╖рддрд╛ рдФрд░ рдкрдардиреАрдпрддрд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХреА рдХрдореА
  3. рдЕрдзреВрд░рд╛ рдореЙрдбрд▓ рдХрд╡рд░реЗрдЬ: рдУрдкрди-рд╕реЛрд░реНрд╕ рдореЙрдбрд▓ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ Qwen рд╢реНрд░реГрдВрдЦрд▓рд╛ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд
  4. рд╕реАрдорд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкрд░рд┐рджреГрд╢реНрдп: рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рд╕рдВрдкрд╛рджрди рдФрд░ рд╡реГрджреНрдзрд┐рд╢реАрд▓ рдЕрдкрдбреЗрдЯ рдкрд░рд┐рджреГрд╢реНрдп рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ

рдкреНрд░рднрд╛рд╡

  1. рд╢реИрдХреНрд╖рдгрд┐рдХ рдореВрд▓реНрдп: рдХреЛрдб рд╕рдВрдкрд╛рджрди рдореВрд▓реНрдпрд╛рдВрдХрди рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдВрддрд░ рднрд░рддрд╛ рд╣реИ, рдмрд╛рдж рдХреЗ рдЕрдиреБрд╕рдВрдзрд╛рди рдХреЛ рдкреНрд░реЗрд░рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ
  2. рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдореВрд▓реНрдп: рдФрджреНрдпреЛрдЧрд┐рдХ рдХреНрд╖реЗрддреНрд░ рдХреЛ diff рдкреНрд░рд╛рд░реВрдк рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рд╕рдорд░реНрдерди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ
  3. рд╕рдореБрджрд╛рдп рдпреЛрдЧрджрд╛рди: рдЦреБрд▓рд╛ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдФрд░ рдбреЗрдЯрд╛рд╕реЗрдЯ рдкреВрд░реЗ рдЕрдиреБрд╕рдВрдзрд╛рди рд╕рдореБрджрд╛рдп рдХреЛ рд▓рд╛рднрд╛рдиреНрд╡рд┐рдд рдХрд░реЗрдЧрд╛
  4. рдорд╛рдирдХреАрдХрд░рдг рдХреНрд╖рдорддрд╛: рдХреЛрдб рд╕рдВрдкрд╛рджрди рдХреНрд╖рдорддрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдмрди рд╕рдХрддрд╛ рд╣реИ

рд▓рд╛рдЧреВ рдкрд░рд┐рджреГрд╢реНрдп

  1. рдореЙрдбрд▓ рд╡рд┐рдХрд╛рд╕: рдХреЛрдб рд╕рдВрдкрд╛рджрди рдореЙрдбрд▓ рдХреА рдХреНрд╖рдорддрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдФрд░ рд╕реБрдзрд╛рд░
  2. рдкреНрд░рд╛рд░реВрдк рдбрд┐рдЬрд╛рдЗрди: рдирдП diff рдкреНрд░рд╛рд░реВрдк рдХреА рдкреНрд░рднрд╛рд╡рд╢реАрд▓рддрд╛ рд╕рддреНрдпрд╛рдкрди
  3. рдЙрдкрдХрд░рдг рдЪрдпрди: рдХреЛрдб рд╕рдВрдкрд╛рджрди рдЙрдкрдХрд░рдгреЛрдВ рдХреА рдкреНрд░рд╛рд░реВрдк рд░рдгрдиреАрддрд┐ рдЪрдпрди
  4. рдЕрдиреБрд╕рдВрдзрд╛рди рдЖрдзрд╛рд░: рдЬрдЯрд┐рд▓ рдХреЛрдб рд╕рдВрдкрд╛рджрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдмреБрдирд┐рдпрд╛рджреА рдХреНрд╖рдорддрд╛ рдкрд░реАрдХреНрд╖рдг

рд╕рдВрджрд░реНрдн

рдкреЗрдкрд░ 31 рд╕рдВрдмрдВрдзрд┐рдд рд╕рдВрджрд░реНрднреЛрдВ рдХрд╛ рд╣рд╡рд╛рд▓рд╛ рджреЗрддрд╛ рд╣реИ, рдореБрдЦреНрдп рд░реВрдк рд╕реЗ:

  • рдХреЛрдб рдЬрдирди рдмреЗрдВрдЪрдорд╛рд░реНрдХ: HumanEval, MBPP, BigCodeBench рдЖрджрд┐
  • рд╕рдВрдкрд╛рджрди рдореВрд▓реНрдпрд╛рдВрдХрди: SWE-bench, CodeEditorBench рдЖрджрд┐
  • рдореЙрдбрд▓ рддрдХрдиреАрдХреА рд░рд┐рдкреЛрд░реНрдЯ: GPT-4o, Claude, Qwen2.5-Coder рдЖрджрд┐
  • рдЙрдкрдХрд░рдг рдФрд░ рдкреНрд░рд╛рд░реВрдк: Aider, GNU diffutils рдЖрджрд┐

рд╕рдордЧреНрд░ рдореВрд▓реНрдпрд╛рдВрдХрди: рдпрд╣ рдПрдХ рдЙрдЪреНрдЪ рдЧреБрдгрд╡рддреНрддрд╛ рд╡рд╛рд▓рд╛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдЕрдиреБрд╕рдВрдзрд╛рди рдкреЗрдкрд░ рд╣реИ рдЬреЛ рдХреЛрдб рд╕рдВрдкрд╛рджрди рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рдкрд╣рдЪрд╛рдирддрд╛ рд╣реИ рдФрд░ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рдЧрд╣рд░рд╛рдИ рдореЗрдВ рдХреБрдЫ рдХрдореА рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдореВрд▓реНрдп рдФрд░ рдкрджреНрдзрддрд┐ рдпреЛрдЧрджрд╛рди рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдФрд░ рдХреЛрдб рд╕рдВрдкрд╛рджрди рддрдХрдиреАрдХ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рдиреЗ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рддрд╛ рд╣реИред