SuperCoder: Assembly Program Superoptimization with Large Language Models
تقدم هذه الورقة SuperCoder، وهو إطار عمل يستفيد من النماذج اللغوية الكبيرة والتعلم التعزيزي لتحقيق التحسين الفائق لبرامج التجميع، مما يثبت أن النماذج اللغوية الكبيرة المضبوطة بدقة يمكنها توليد كود برمجي صحيح وأسرع بكثير من مخرجات المترجمات القياسية في الصناعة.
البحث الأصلي مرخَّص بموجب CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). هذا شرح مولَّده بالذكاء الاصطناعي للبحث أدناه. لم يكتبه المؤلفون ولم يصادقوا عليه. وللتحقق من الدقة التقنية، يرجى الرجوع إلى البحث الأصلي. اقرأ إخلاء المسؤولية الكامل
تخيل أنك ميكانيكي محترف انتهيت للتو من ضبط سيارة سباق عالية الأداء. لقد أحكمت ربط كل برغي، وصقلت كل سطح، وضبطت المحرك إلى أقصى حدود المصنع. إنها سريعة، وموثوقة، وجاهزة للسباق. ولكن ماذا لو كان هناك تعديل خفي، مزيج سري من القطع يمكن أن يجعلها أسرع، دون تغيير كيفية قيادة السيارة فعلياً؟ هذا هو عالم التحسين الفائق (superoptimization). في مجال علوم الحاسوب، هو السعي لأخذ كود تم تحسينه بالفعل بواسطة أفضل أدوات البرمجيات في العالم، لانتزاع آخر قطرة ممكنة من السرعة.
لفهم هذا، عليك أن تعرف بعض الأشياء. تتحدث الحواسيب لغة تسمى لغة التجميع (assembly)، وهي تشبه التعليمات الميكانيكية الخام التي تخبر المعالج بما يجب فعله بالضبط. قبل أن يتمكن الحاسوب من تشغيل برنامج مكتوب بلغة بشرية (مثل لغة C)، يقوم المترجم (compiler) بترجمته إلى كود التجميع هذا. فكر في المترجم على أنه مترجم ذكي جداً وذو خبرة كبيرة، لكنه يتبع كتاب قواعد صارم؛ قد يفوت اختصاراً ذكياً لأنه مشغول جداً باتباع القود. التحسين الفائق هو فعل تجاهل كتاب القواعد للعثين على تلك الاختصارات الخفية، بهدف إيجاد الطريقة الأسرع على الإطلاق لأداء مهمة ما مع الحصول على نفس النتيجة تماماً. لعقود من الزمن، كان هذا صعباً للغاية لأن عدد الاختصارات الممكنة هائل لدرجة أن فحصها جميعاً يستغرق وقتاً طويلاً جداً. والآن، يتساءل العلماء: هل يمكن لذكاء اصطناعي فائق الذكاء، يُعرف باسم النموذج اللغوي الكبير (LLM)، أن يعمل كميكانيكي محترف للعثور على هذه الزيادات في السرعة؟
هذه الورقة البحثية، بعنوان "SuperCoder"، تغوص مباشرة في ذلك السؤال. فقد بنى الباحثون ساحة لعب ضخمة وجديدة لاختبار هذه الفكرة، حيث أنشأوا مجموعة بيانات تضم أكثر من 8,000 برنامج بلغة التجميع. وخلافاً للاختبارات السابقة التي استخدمت فقط قصاصات كود صغيرة وبسيطة (مثل 2 إلى 15 سطراً)، فإن هذه البرامج أكثر تعقيداً بكثير، حيث يبلغ متوسط طولها 130 سطراً وتتضمن حلقات (loops) تكرر الإجراءات. لقد أخذوا كوداً تم صقله بالفعل بواسطة المترجم القياسي في الصناعة (gcc -O3) وسألوا 23 نموذجاً مختلفاً من نماذج الذكاء الاصطناعي لإعادة كتابته ليكون أسرع.
كانت النتائج مزيجاً من "متوسط" و"مذهل". عانت معظم نماذج الذكاء الاصطناعي؛ فالعديد منها لم يستطع حتى كتابة كود يمكن للحاسوب تشغيله، أو كتبت كوداً تسبب في انهيار النظام. ومع ذلك، فإن أفضل نموذج ذكاء اصطناعي أداءً، وهو Claude-opus-4، تمكن من اجتياز الاختبارات بنسبة 51.5% وجعل البرامج تعمل، في المتوسط، أسرع بمقدار 1.43 مرة من الخط المرجعي المحسن بالفعل. هذه زيادة كبيرة في السرعة لكود كان يُعتبر بالفعل "سريعاً".
لكن الفريق لم يتوقف عند هذا الحد، فقد أرادوا معرفة ما إذا كان بإمكانهم تعليم الذكاء الاصطناعي ليصبح أفضل. أخذوا نموذجاً يسمى Qwen2.5-Coder-7B، والذي كان جيداً ولكنه ليس مذهلاً (اجتاز 61.4% من الاختبارات مع زيادة سرعة قدرها 1.10 ضعف)، ودربوه باستخدام تقنية تسمى التعلم التعزيزي (reinforcement learning). فكر في هذا الأمر مثل تدريب كلب: في كل مرة يكتب فيها الذكاء الاصطناعي كوداً صحيحاً وسريعاً، يحصل على "مكافأة" (Treat). وفي كل مرة يكتب فيها كوداً يتسبب في الانهيار أو يكون بطيئاً، لا يحصل على شيء. بعد هذا التدريب، أصبح النموذج الجديد، المسمى SuperCoder، نجماً ساطعاً؛ فقد اجتاز 95.0% من الاختبارات وحقق متوسط زيادة في السرعة قدره 1.46 مرة. كما وجدوا أنه إذا طلبوا من الذكاء الاصطناعي إنشاء ثماني نسخ مختلفة من الكود واختاروا الأفضل بينها (وهي طريقة تسمى Best-of-N sampling)، فإن السرعة يمكن أن تقفز بشكل أعلى، لتصل إلى ما يقرب من 1.93 مرة أسرع.
استكشفت الورقة أيضاً ما يحدث إذا حاولت تخطي خطوة "التحسين المسبق" وطلبت من الذكاء الاصطناعي كتابة كود التجميع مباشرة من برنامج C الأصلي. كانت النتائج "لا" قاطعة. فبدون البداية القوية التي يوفرها المترجم، فشل الذكاء الاصطناعي في إنتاج أي كود يعمل على الإطلاق. وهذا يشير إلى أنه بينما تبدو هذه النماذج مذهلة في العثور على التعديلات النهائية الصغيرة لجعل الأشياء أسرع، إلا أنها ليست جاهزة لتحل محل المترجمات التي تبني الأساس في المقام الأول.
باختصار، تظهر هذه الأبحاث أنه لأول مرة، يمكن لنماذج الذكاء الاصطناعي أن تعمل كمحسنات فائقة، حيث تجد تحسينات حقيقة وقابلة للقياس في السرعة في أكواد لغة التجميع المعقدة التي فاتتها حتى أفضل المترجمات التي صنعها البشر. إنها ليست عصا سحرية تحل كل شيء، لكنها تفتح باباً لطريقة جديدة لجعل البرمجيات تعمل بشكل أسرع، مما يثبت أنه في بعض الأحيان، أفضل طريقة لتحسين الآلة هي السماح لمتدرب رقمي بإلقاء نظرة ثانية على المخطط.
غارق في أبحاث مجالك؟
تصلك نشرة يومية بأحدث الأبحاث المطابقة لكلماتك البحثية المفتاحية — مع ملخصات تقنية، بلغتك.