Try Again, Don't Look Back: Blind Resampling Outperforms Self-Repair in Small Code Models
تُظهر هذه الورقة أنه بالنسبة لنماذج الأكواد الصغيرة، يتفوق إعادة أخذ العينات الأعمى (إعادة المحاولة دون تغذية راجعة) على طرق الإصلاح الذاتي القياسية أو يضاهيها مع استخدام عدد أقل بكثير من الرموز (tokens)، لأن التكييف على محاولة النموذج الفاشلة الخاصة به يجعل النموذج "يرتكز" على الخطأ الأصلي بدلاً من الاستفادة بفعالية من التغذية الراجعة للتنفيذ.
البحث الأصلي مرخَّص بموجب CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). هذا شرح مولَّده بالذكاء الاصطناعي للبحث أدناه. لم يكتبه المؤلفون ولم يصادقوا عليه. وللتحقق من الدقة التقنية، يرجى الرجوع إلى البحث الأصلي. اقرأ إخلاء المسؤولية الكامل
تخيل أنك تعلم روبوتًا كيفية كتابة كود برمجي. تعطي الروبوت مهمة، مثل "اكتب برنامجًا يجمع رقمين"، فيحاول القيام بذلك. أحيانًا، يرتكب الروبوت خطأً، ولا يعمل الكود. في عالم الذكاء الاصطناعي، هناك فكرة شائعة وهي "الإصلاح الذاتي". هذا يشبه قولك للروبوت: "مهلًا، لقد أخطأت. إليك الكود المعطل الخاص بك ورسالة الخطأ. الآن، انظر إليه، وفكر فيما حدث بشكل خاطئ، وحاول إصلاحه". يبدو هذا كطريقة ذكية للتعلم من الأخطاء، أليس كذلك؟ لكن هناك عقبة. عندما نختبر ما إذا كان هذا "الإصلاح" فعالًا، فإننا غالبًا ما نقارنه بروبوت يستسلم بعد محاولة واحدة فقط. هذا غير عادل لأن الروبوت الذي يحصل على فرصة ثانية لديه فرصة أفضل للنجاح ببساطة لأنه حاول مرة أخرى، وليس بالضرورة لأنه تعلم من خطئه. لكي نعرف حقًا ما إذا كان "الإصلاح" هو المكون السحري، نحتاج إلى مقارنته بروبوت يحصل على فرصة ثانية ولكنه لا يرى خطأه القديم. هذه الورقة البحثية تغوص في هذا السؤال بالضبط: هل من الأفضل النظر إلى الفشل ومحاولة إصلاحه، أم من الأفضل نسيان الفشل وتجربة نهج جديد تمامًا من الصفر؟
قرر الباحثون في هذه الورقة لعب لعبة "حاول مجددًا، لا تنظر إلى الوراء" مع بعض نماذج الذكاء الاصطناعي الصغيرة. لقد أعدوا تجربة ذكية باستخدام اختبار "العلاج الوهمي" (placebo)، وهو اختبار يُستخدم عادةً في الطب لمعرفة ما إذا كان الدواء فعالًا أم أنه مجرد الأمل في تناول الدواء هو ما يساعد. هنا، قارنوا بين أربع طرق مختلفة يمكن للروبوت من خلالها محاولة إصلاح الكود الخاص به:
- إعادة العينات العمياء (Blind Resampling): يحصل الروبوت على فرصة ثانية ولكن لا يتم إخباره بشيء عن المحاولة الأولى. الأمر يشبه أن تطلب من طالب إعادة اختبار الرياضيات دون إظهار الاختبار الأول له.
- العلاج الوهمي (The Placebo): يرى الروبوت الكود المعطل الخاص به مع ملاحظة بسيطة تقول "هذا خطأ"، ولكن دون تفاصيل حول السبب.
- التغذية الراجعة الحقيقية (Real Feedback): يرى الربوت الكود المعطل و رسالة الخطأ المحددة (مثل "لقد نسيت فاصلة منقوطة").
- التفكير التأملي (Reflection): يرى الروبوت الخطأ ويُطلب منه كتابة فقرة تشرح ما حدث بشكل خاطئ قبل محاولة الإصلاح.
أجروا هذا الاختبار على ثلاثة أحجام مختلفة من نماذج الذكاء الاصطناعي (صغير، متوسط، وأكبر قليلاً) وراقبوا عدد المرات التي نجحوا فيها في كتابة الكود بشكل صحيح.
إليك التحول المفاجئ: النظر إلى الوراء إلى الخطأ جعل الروبوتات الصغيرة أسوأ حالًا.
بالنسبة للنماذج الأصغر (1.5 مليار و3 مليارات معلمة/parameter)، كانت استراتيجية "إعادة العينات العمياء" هي الفائزة بوضوح. لم تكن هي الأكثر دقة فحسب، بل كانت أيضًا الأقل تكلفة من حيث وقت الكمبيوتر والطاقة. عندما أجبر الباحثون الروبوتات على النظر في الكود الفاشل الخاص بها (مجموعات "العلاج الوهمي" أو "التغذية الراجعة")، علقت الروبوتات. لقد مالوا إلى إجراء تغييرات طفيفة، غير مرئية تقريبًا، على الكود المعطل بدلاً من التفكير في حل جديد تمامًا. تطلق الورقة على هذا اسم "الارتكاز" (anchoring). إنه يشبه أن تحاول رسم قطة، ثم تخطئ، ثم تحاول إصلاحها عن طريق مسح بعض الخطوط من الرسم السيئ. ينتهي بك الأمر برسم قطة غريبة ونصف مُصلحة. ولكن إذا وضعت الورقة جانبًا وبدأت في ورقة جديدة، فقد ترسم قطة مختلفة تمامًا وأفضل.
وجد الباحثون أن الروبوتات عندما نظرت إلى محاولاتها الفاشلة، قامت بإعادة إنتاج برنامج مطابق تقريبًا بنسبة 33% إلى 68% من الوقت. في المقابل، عندما حاولوا بشكل أعمى (دون النظر)، لم يكرروا أنفسهم إلا بنسبة 2% إلى 14% من الوقت. "المعلومات" الموجودة في رسائل الخطأ لم تساعد على الإطلاق؛ فملاحظة بسيطة مثل "هذا خطأ" كانت سيئة تمامًا مثل تقرير الخطأ الكامل. حتى طلب "التفكير بصوت عالٍ" عن الخطأ (التأمل) لم ينقذ الموقف؛ فقد جعل العملية أكثر تكلفة دون تحسين النتائج بما يكفي ليكون لها قيمة.
ومع ذلك، هناك بصيص من الأمل للعقول الأكبر. عندما اختبروا النموذج الأكبر (7 مليارات معلمة)، اختفت عقوبة النظر إلى الوراء تقريبًا. انتهى الأمر باستراتيجيتي "إعادة العينات العمياء" و"الإصلاح الذاتي" إلى تعادل إحصائي. هذا يشير إلى أنه كلما أصبح الذكاء الاصطناعي أكثر ذكاءً، أصبح أفضل في عدم التعلق بأخطائه. ولكن بالنسبة للنماذج الأصغر والأرخص التي يستخدمها الكثير من الناس بالفعل، فإن النصيحة واضحة: لا تنظر إلى الوراء.
كما استبعدت الورقة بعض الأفكار الأخرى. لقد تحققوا مما إذا كانت المشكلة هي مجرد طول النصوص التي أربكت الروبوتات، ولكن إضافة كود من مهام ناجحة أخرى لم يضر بالأداء. أثبت هذا أن المشكلة لم تكن تتعلق بالطول، بل كانت تحديدًا تتعلق بنظر الروبوت إلى فشله الخاص. كما تحققوا مما إذا كانت المشكلة مجرد خلل في كيفية تخزين الكمبيوتر للأرقام (الكمية/quantization)، وظلت النتيجة كما هي حتى مع دقة أعلى.
إذًا، ما هي الخلاصة؟ إذا كنت تستخدم ذكاءً اصطناعيًا صغيرًا لكتابة الكود، فلا تضيع الوقت في إظهار أخطائه له وطلب إصلاحها منها. سيعلق الروبوت على الأرجح في حلقة مفرغة من التعديلات الصغيرة عديمة الفائدة. بدلاً من ذلك، اطلب منه فقط المحاولة مرة أخرى من الصفر. إنها أسرع، وأرخص، ومن المثير للدهشة أنها تعمل بشكل أفضل. تكلفة "إصلاح" محاولة أولى سيئة هي مجرد تكلفة البقاء عالقًا في تلك المحاولة الأولى السيئة. أحيانًا، تكون أفضل طريقة للمضي قدمًا هي نسيان الماضي والبدء من جديد.
غارق في أبحاث مجالك؟
تصلك نشرة يومية بأحدث الأبحاث المطابقة لكلماتك البحثية المفتاحية — مع ملخصات تقنية، بلغتك.