Regression Language Models for Code
تقدم هذه الورقة نموذج لغة انحدار (RLM) موحداً وخفيف الوزن يستفيد من مشفر نموذج لغة كبير (LLM) مجمد للتنبؤ بدقة بمقاييس تنفيذ الكود المتنوعة — بما في ذلك بصمة الذاكرة، وزمن الاستجابة، والدقة — عبر لغات برمجة متعددة ومنصات أجهزة مختلفة، متفوقاً بذلك على النهج السابقة القائمة على هندسة الميزات والرسوم البيانية دون الحاجة إلى تخصيص خاص لكل مهمة.
البحث الأصلي مرخَّص بموجب CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). هذا شرح مولَّده بالذكاء الاصطناعي للبحث أدناه. لم يكتبه المؤلفون ولم يصادقوا عليه. وللتحقق من الدقة التقنية، يرجى الرجوع إلى البحث الأصلي. اقرأ إخلاء المسؤولية الكامل
تخيل أن لديك مكتبة ضخمة من البرامج الحاسوبية المكتوبة بعشرات اللغات المختلفة (مثل بايثون، أو C++، أو حتى لغات متخصصة لبطاقات الرسوميات). عادةً، إذا أردت معرفة مقدار الذاكرة التي سيستهلكها برنامج ما، أو كم سيستغرق من الوقت للتشغيل، أو مدى دقة شبكة عصبية ما، فعليك في الواقع تشغيل البرنامج على جهاز كمبيوتر لمعرفة ذلك. وهذا أمر بطيء، ومكلف، وأحياناً مستحيل إذا لم تكن قد صنعت الأجهزة (Hardware) بعد.
لفترة طويلة، حاول الخبراء بناء "كرات بلورية" خاصة للتنبؤ بهذه الأرقام دون تشغيل الكود. لكن هذه الكرات البلورية كانت مثل أدوات مصممة خصيصاً: فإذا أردت التنبؤ بالذاكرة للغة بايثون، كنت بحاجة لأداة واحدة؛ وإذا أردت التنبؤ بالسرعة لبطاقة رسوميات، كنت بحاجة لأداة مختلفة تماماً. كانت هذه الأدوات تتطلب من البشر البحث يدوياً في الكود، وعدّ أوامر محددة، وتحويل الكود إلى مخططات ورسوم بيانية معقدة فقط لتغذية الآلة الحاسبة بها. وإذا تغير الكود قليلاً، فإن الأداة غالباً ما تتعطل.
"المترجم العالمي" الجديد للكود
تقدم هذه الورقة البحثية نوعاً جديداً من الذكاء الاصطناعي يسمى نموذج لغة الانحدار (Regression Language Model - RLM). فكر في هذا ليس كآلة حاسبة، بل كـ مترجم فائق يتحدث لغتين: "كود الكمبيوتر" و"الأرقام".
إليك كيف يعمل، باستخدام تشبيهات بسيطة:
1. "الدماغ المتجمد" و"الكاتب المبدع"
تم بناء النموذج كفريق مكون من جزأين:
- الدماغ المتجمد (المُشفّر - Encoder): هذا الجزء عبور عن ذكاء اصطناعي مُدرب مسبقاً (يعتمد على نموذج يسمى T5Gemma) قد قرأ بالفعل ملايين الكتب والأسطر البرمجية. إنه يفهم بنية الجمل والكود بشكل مثالي. لقد قام الباحثون بـ "تجميد" هذا الجزء، مما يعني أنهم لم يعلموه أي شيء جديد؛ فهو يعمل فقط كقارئ ذكي يفهم ما يقوله الكود.
- الكاتب المبدع (المُفكك - Decoder): هذا هو الجزء الذي قاموا بتدريبه بالفعل. وبدلاً من كتابة قصة، فإن مهمة هذا الكاتب هي النظر إلى الكود الذي قرأه "الدماغ" وكتابة رقم ككلمة تالية في الجملة.
التشبيه: تخيل أنك تقرأ وصفة طعام (الكود). الذكاء الاصطناعي العادي قد يحاول تخمين قائمة المكونات. أما هذا الذكاء الاصطناعي الجديد، فينظر إلى الوصفة ويقول: "بناءً على هذا النص، الكلمة التالية هي '500' (سعرة حرارية)". إنه يعامل التنبؤ برقم (مثل استهلاك الذاكرة أو السرعة) تماماً مثل إكمال جملة.
2. أداة واحدة لكل شيء
الاختراق الأكبر هو أن هذا "المترجم العالمي" الوحيد يمكنه التعامل مع كل شيء في وقت واحد.
- يمكنه قراءة كود بايثون (Python) وتخمين مقدار الذاكرة التي يستخدمها.
- يمكنه قراءة كود C++ وتخمين المدة التي سيستغرقها للتشغيل.
- يمكنه قراءة تصميم شبكة عصبية (مكتوب بتنسيق يسمى ONNX) وتخمين مدى دقتها أو سرعتها على شريحة معينة.
في السابق، كنت تحتاج إلى "خبير" مختلف لكل مهمة من هذه المهام. هذا النموذج يشبه السكين السويسري الذي يمكنه التحول بين كونه خبيراً في الذاكرة، وخبيراً في السرعة، وخبيراً في الدقة بمجرد النظر إلى النص.
3. كيف "يعدّ" دون رياضيات
إحدى الحيل الذكية هي كيفية إخراج النموذج للأرقام. بدلاً من محاولة إجراء عمليات حسابية معقدة لإخراج الرقم "72.5"، فإنه يفكك الرقم إلى قطع صغيرة، مثل القفل الرقمي.
- هو لا يقول "72.5".
- بل يقول: "علامة زائد... 7... 2... علامة عشرية... 5".
- التشبيه: تخيل أنك تعلم طفلاً العدّ. بدلاً من سؤاله عن حل "50 + 25"، تطلب منه كتابة الإجابة رقماً تلو الآخر: "5... 0... زائد... 2... 5... يساوي... 7... 2... 5". هذا يجعل من الأسهل بكثير على الذكاء الاصطناعي التعامل مع الأرقام الضخمة (مثل ملايين البايتات) أو الأرقام الصغيرة جداً دون ارتباك.
4. لماذا هو أفضل من الطريقة القديمة؟
- لا عمل يدوي: الطرق القديمة تطلبت من البشر تصميم ميزات يدوياً (مثل "عدّ عدد الحلقات التكرارية"). هذا النموذج يقرأ النص الخام مباشرة، تماماً كما يقرأ الإنسان كتاباً.
- قدرة أفضل على التصنيف: تُظهر الورقة البحثية أنه إذا أعطيت هذا النموذج 10 نسخ مختلفة من نفس الكود، فإنه بارع جداً في ترتيبها من "الأسرع" إلى "الأبطأ" أو من "الأقل ذاكرة" إلى "الأكبر ذاكرة". إنه يشبه حكماً يمكنه النظر إلى 10 عداءين ومعرفة من سيفوز فوراً، حتى بدون ساعة توقيت.
- التكلفة: وجد الباحثون أن استخدام هذا النموذج أرخص بكثير من استخدام نماذج الذكاء الاصطناعي العامة والضخمة (مثل GPT-5) لتخمين الأرقام. روبوتات الدردشة تلك تشبه استخدام مطرقة ثقيلة لكسر حبة جوز؛ فهي مكلفة وغالباً ما تكون خاطئة. هذا النموذج هو أداة متخصصة وخفيفة الوزن تنجز المهمة ببضعة سنتات.
ما الذي أثبتوه بالفعل؟
اختبرت الورقة البحثية ذلك على:
- CodeNet: مجموعة بيانات ضخمة تحتوي على ملايين من مقاطع الكود بـ 37 لغة مختلفة. نجح النموذج في التنبؤ باستهلاك الذاكرة عبر جميعها.
- APPS: مجموعة من تحديات البرمجة. استطاع النموذج النظر إلى حل ما والتنبؤ باستهلاكه للذاكرة بدقة عالية (أفضل من 90% ارتباطاً بالواقع).
- الشبكات العصبية: تنبأ بسرعة ودقة تصميمات الذكاء الاصطناعي بشكل أفضل من الأساليب المتطورة السابقة التي استخدمت مخططات رسومية معقدة.
باخت- ملخص:
تزعم الورقة البحثية أننا لسنا بحاجة لبناء أدوات معقدة ومخصصة للتنبؤ بأداء الكود. بدلاً من ذلك، يمكننا معاملة الكود كقصة والأرقام ككلمة تالية في تلك القصة. ومن خلال تدريب ذكاء اصطناعي واحد موحد للقيام بذلك، يمكننا التنبؤ بالذاكرة، والسرعة، والدقة لأي لغة برمجة أو تصميم ذكاء اصطناعي تقريباً، بمجرد قراءة النص. إنها تحول مسألة رياضية صعبة إلى لعبة بسيطة من نوع "ماذا سيأتي بعد ذلك؟".
غارق في أبحاث مجالك؟
تصلك نشرة يومية بأحدث الأبحاث المطابقة لكلماتك البحثية المفتاحية — مع ملخصات تقنية، بلغتك.