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 বোঝার মূল্যায়নের জন্য একটি বেঞ্চমার্ক

মৌলিক তথ্য

  • পেপার আইডি: 2510.12487
  • শিরোনাম: Diff-XYZ: A Benchmark for Evaluating Diff Understanding
  • লেখক: Evgeniy Glukhov, Michele Conti, Egor Bogomolov, Yaroslav Golubev, Alexander Bezzubov (JetBrains Research)
  • শ্রেণীবিভাগ: cs.SE (সফটওয়্যার ইঞ্জিনিয়ারিং), cs.LG (মেশিন লার্নিং)
  • প্রকাশনা সম্মেলন: 39th Conference on Neural Information Processing Systems (NeurIPS 2025) Workshop: Deep Learning for Code in the Agentic Era
  • পেপার লিঙ্ক: https://arxiv.org/abs/2510.12487

সারসংক্ষেপ

এই পেপারটি Diff-XYZ বেঞ্চমার্ক প্রস্তাব করে, যা বড় ভাষা মডেলগুলির কোড পার্থক্য (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 কাজ:

  • স্ট্রিপড এক্সাক্ট ম্যাচ (EM): হোয়াইটস্পেস লাইন সরিয়ে দেওয়ার পরে নিখুঁত ম্যাচের হার
  • স্ট্রিপড ইন্টারসেকশন ওভার ইউনিয়ন (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 ইত্যাদি

সামগ্রিক মূল্যায়ন: এটি একটি উচ্চ-মানের পদ্ধতিগত গবেষণা পেপার যা কোড সম্পাদনা ক্ষেত্রে একটি গুরুত্বপূর্ণ সমস্যা সঠিকভাবে চিহ্নিত করে এবং সমাধান করে। যদিও তাত্ত্বিক গভীরতায় কিছু অভাব রয়েছে, তবে এর ব্যবহারিক মূল্য এবং পদ্ধতিগত অবদান উল্লেখযোগ্য এবং কোড সম্পাদনা প্রযুক্তি উন্নয়নে গুরুত্বপূর্ণ ভূমিকা পালন করতে পারে।