← أحدث الأبحاث
💬 NLP

To Diff or Not to Diff? Structure-Aware and Adaptive Output Formats for Efficient LLM-based Code Editing

تقدم هذه الورقة تنسيقات الفرق المدركة للبنية (BlockDiff وFuncDiff) واستراتيجية تكيفية (AdaEdit) تمكّن النماذج اللغوية الكبيرة من اختيار التنسيق الأكثر كفاءة في استهلاك الرموز ديناميكيًا، مما يحقق دقة كاملة في الأكواد مع تقليل زمن الاستجادة والتكلفة بنسبة تزيد عن 30% لمهام تحرير الأكواد الطويلة.

المؤلفون الأصليون: Wei Cheng, Yongchang Cao, Chen Shen, Binhua Li, Jue Chen, Yongbin Li, Wei Hu

نُشر 2026-05-01
📖 3 دقيقة قراءة☕ قراءة في استراحة قهوة

المؤلفون الأصليون: Wei Cheng, Yongchang Cao, Chen Shen, Binhua Li, Jue Chen, Yongbin Li, Wei Hu

البحث الأصلي مرخَّص بموجب CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). هذا شرح مولَّده بالذكاء الاصطناعي للبحث أدناه. لم يكتبه المؤلفون ولم يصادقوا عليه. وللتحقق من الدقة التقنية، يرجى الرجوع إلى البحث الأصلي. اقرأ إخلاء المسؤولية الكامل

تخيل أنك محرر بارع تعمل مع مساعد آلي (روبوت) موهوب للغاية ولكنه حرفي التفكير إلى حد ما. مهمتك هي إخبار الروبوت بكيفية إصلاح قطعة من الكود (مجموعة من التعليمات للكمبيوتر).

المشكلة: الروبوت "الذي يعتمد على القوة الغاشمة"

حالياً، تعمل معظم مساعدات البرمجة القائمة على الذكاء الاصطناي مثل رسام يستخدم القوة الغاشمة (Brute-force painter). إذا طلبت منها تغيير كلمة واحدة فقط في كتاب مكون من 1000 صفحة، فهي لا تكتب الكلمة الجديدة فحسب، بل تعيد كتابة الـ 1000 صفحة بالكامل من البداية.

  • لماذا هذا سيء: إنه بطيء للغاية (زمن استجابة مرتفع) ويكلف ثروة من قدرة الحوسبة (تكلفة عالية) لأنها تولد آلاف الكلمات التي لم تكن بحاجة إليها.
  • البديل: قد تفكر، "فقط أخبر الروبوت أن يكتب 'diff' (قائمة بالتغييرات)، مثل: السطر 5: غير 'قطة' إلى 'كلب'".

مشكلة الـ "Diff" القديمة: الخريطة الهشة

وجد البحث أن تنسيقات الـ "diff" القياسية تشبه خرائط الكنز الهشة التي تعتمد على إحداثيات دقيقة (مثل: "اذهب إلى السطر 42، العمود 3").

  • المشكلة: نماذج الذكاء الاصطناعي بارعة في تخمين السياق، لكنها سيئة جداً في العدّ. إذا خمن الذكاء الاصطناعي أن السطر هو 43 بدلاً من 42، فإن التعليمات بأكملها ستفشل. الأمر يشبه إعطاء شخص ما اتجاهات بناءً على رقم شارع غير موجود؛ سيتوه فوراً.
  • مشكلة أخرى: أحياناً، يقوم الـ "diff" بكسر الجملة إلى نصفين، حيث يطلب من الذكاء الاصطناعي إصلاح منتصف الجملة فقط دون البداية أو النهاية. هذا يبدو غير طبيعي للذكاء الاصطناعي، مما يؤدي إلى وقوع أخطاء.

الحل: نهج "الكتلة" و"الدالة"

قدم "وي تشنغ" وزملاؤه طريقة جديدة للتحدث مع الروبوت. بدلاً من إعطائه إحداثيات أو أجزاء جمل مكسورة، علموه التفكير في كتل منطقية.

فكر في ملف الكود ليس كقائمة طويلة من الأسطر، بل كـ قلعة من قطع الليغو.

  • الطريقة القديمة: "أزل الطوبة الحمراء عند الصف 10، العمود 5." (صعبة التحديد، وسهلة الخطأ).
  • الطريقة الجديدة (BLOCKDIFF & FUNCDIFF): "أخرج قسم 'النافذة' بالكامل من القلعة واستبدله بتصميم نافذة جديد."

الآن يرى الذكاء الاصطناعي الكود كوحدات متماسكة (مثل الحلقات التكرارية، أو الدوال، أو جمل الشرط). هو يعيد كتابة "النافذة" أو "الباب" بالكامل دفعة واحدة. هذا يبدو أكثر طبيعية للذكاء الاصطناعي، تماماً كما يسهل على البشر وصف إصلاح غرفة كاملة بدلاً من تحريك بلاطة واحدة.

المفتاح الذكي: ADAEDIT

أدرك الباحثون أنه في بعض الأحيان، تكون إعادة كتابة "كتلة" كاملة في الواقع أكثر جهداً من مجرد إعادة كتابة الصفحة بأكملها. إذا كنت بحاجة لتغيير 90% من الكود، فإن إرسال قائمة بالتغييرات سيكون أطول من إرسال الكود الجديد بالكامل.

لذا، أنشأوا ADAEDIT، وهو مفتاح ذكي.

  • كيف يعمل: قبل أن يبدأ الذكاء الاصطناعي في الكتابة، ينظر إلى المهمة ويسأل نفسه: "هل من الأسرع إرسال قائمة بالتغييرات، أم إرسال الكود الجديد بالكامل؟"
  • النتيجة: يتعلم الذكاء الاصطناعي اتخاذ هذا الخيار تلقائياً. إذا كان التغيير صغيراً، فإنه يرسل "block diff". وإذا كان التغيير ضخماً، فإنه يرسل الكود كاملاً.

النتائج: أسرع، أرخص، وبنفس الجودة

اختبر الباحثون هذه الطريقة على مهام برمجية متنوعة. وإليكم ما وجدوه:

  1. الدقة: الطريقة الجديدة لا تقل دقة عن طريقة "إعادة الكتابة الكاملة" القديمة.
  2. السرعة والتكلفة: بالنسبة لقطع الكود الطويلة، هذه الطريقة أسرع وأرخص بنسبة تزيد عن 30% لأنها تمنع الذكاء الاصطناعي من إضاعة الوقت في إعادة كتابة أجزاء الكود التي لم تتغير.
  3. الموثوقية: بما أن الذكاء الاصطناعي لا يخمن أرقام الأسطر، فإن "الرقعات" (الإصلاحات) تعمل بالفعل عند تطبيقها على الكود.

باخت ملخص: يعلم هذا البحث مساعدات برمجة الذكاء الاصطناعي التوقف عن التصرف كآلة تصوير تعيد طباعة الكتاب بأكامل من أجل خطأ مطبعي واحد، وبدلاً من ذلك، التصرف كمحرر ماهر يعرف متى يستبدل فقرة فقط ومتى يعيد كتابة الفصل بأكمله.

غارق في أبحاث مجالك؟

تصلك نشرة يومية بأحدث الأبحاث المطابقة لكلماتك البحثية المفتاحية — مع ملخصات تقنية، بلغتك.

جرّب Digest →