نماذج اللغات الضخمة: ثورة في تحسين كود التجميع
أظهرت نماذج اللغات الضخمة (LLMs) قدرات مُذهلة في مختلف مهام البرمجة، إلا أن إمكاناتها في تحسين أداء البرامج لم تُستكشف بالكامل. بينما بذلت بعض الجهود مؤخراً لاستخدام نماذج اللغات الضخمة لتحسين الأداء في لغات مثل C++ و Python، إلا أن التطبيق الأوسع لنماذج اللغات الضخمة لتحسين الكود، خاصة في سياقات البرمجة منخفضة المستوى، لا يزال محدوداً.
قيود الطرق التقليدية
تُركز معايير قياس نماذج اللغات الضخمة الحالية بشكل كبير على توليد الكود من اللغة الطبيعية أو حل مشكلات GitHub، كما هو الحال في HumanEval، و MBPP، و APPS، و SWE-bench، و SWE-agent. علاوة على ذلك، تهدف نماذج مثل Codex و AlphaCode و Code Llama بشكل أساسي إلى تحسين جودة توليد الكود وليس أدائه. ومع ذلك، بدأت بعض الأبحاث الجديدة في معالجة التحسين، بما في ذلك موازاة العمليات وتحسين كفاءة الكود، على الرغم من أن العديد من هذه الأساليب مقيدة بالحاجة إلى التحقق الرسمي، مما يحد من قابلية التوسع. على النقيض من ذلك، تتبنى بعض الطرق الأحدث التحقق القائم على الاختبار، مما يسمح بتحسين البرامج الأكثر تعقيداً التي تحتوي على دورات تكرارية.
استراتيجيات التعلم في تحسين المُترجمين
أظهرت الاستراتيجيات القائمة على التعلم في تحسين المُترجمين – مثل AutoPhase، الذي يستخدم تعلّم التعزيز لتسلسل العمليات، و Coreset، الذي يطبق شبكات الأعصاب الرسومية – وعداً في تحسين الأداء. تهدف تقنيات التحسين الفائق إلى إيجاد الإصدار الأكثر كفاءة من البرنامج، لكنها عادةً ما تكون مقصورة على المشكلات الصغيرة الحجم. بالإضافة إلى ذلك، ركزت أطر عمل مثل AutoTVM و Ansor على تحسين كود نواة وحدة معالجة الرسومات (GPU) من خلال النمذجة الإحصائية والبحث.
نماذج اللغات الضخمة وتعلّم التعزيز: نهج جديد
في الآونة الأخيرة، حظي تحسين الأداء باستخدام نماذج اللغات الضخمة المدعومة بتعلّم التعزيز باهتمام كبير، حيث توجه أساليب تعلّم التعزيز نماذج اللغات الضخمة باستخدام التغذية الراجعة من حالات الاختبار. تستفيد تقنيات مثل CodeRL و PPOCoder من أساليب تحسين السياسات لضبط النماذج بدقة من أجل تحقيق أداء أفضل، حتى عبر لغات البرمجة المقيدة بالموارد مثل Verilog.
دراسة تحسين كود التجميع باستخدام PPO
قام باحثون من جامعات ستانفورد، وUIUC، وCMU، وبحث Visa باستكشاف استخدام نماذج اللغات الضخمة لتحسين أداء كود التجميع – وهو مجال يُعالَج تقليدياً بواسطة مُترجمين مثل GCC. قدموا إطار عمل لتعلم التعزيز باستخدام تقنية تحسين السياسة القريبة (PPO)، موجهين بجائزة تُوازن بين الصحة وزيادة السرعة مقارنةً بمعيار gcc -O3. باستخدام مجموعة بيانات تتكون من 8072 برنامجًا من العالم الحقيقي، حقق نموذجهم، Qwen2.5-Coder-7B-PPO، معدل نجاح اختبار بنسبة 96.0% وزيادة في السرعة بمقدار 1.47 ضعفًا، متفوقًا على 20 نموذجًا آخر، بما في ذلك Claude-3.7-sonnet.
منهجية البحث:
- الهدف: توليد برنامج تجميع جديد (P’) مكافئ وظيفياً للبرنامج الأصلي (P) ولكنه أسرع.
- التحقق من الصحة: باستخدام مجموعة اختبارات.
- قياس السرعة: من خلال تحسين وقت التنفيذ.
- مجموعة البيانات: CodeNet.
- خوارزمية التعلم: PPO.
- دالتي المكافأة: دالة مكافأة مُوجهة بالصحة وزيادة السرعة، ودالة مكافأة مُركزة فقط على زيادة السرعة.
النتائج والمناقشة
أظهرت الدراسة أن معظم النماذج تكافح مع معدلات نجاح منخفضة في الاختبار وزيادات طفيفة في السرعة. ومع ذلك، تفوق نموذج Qwen2.5-Coder-7B-PPO، المُدرّب باستخدام تعلّم التعزيز، بشكل كبير على النماذج الأخرى، محققًا دقة 96% وزيادة في السرعة بمقدار 1.47 ضعفًا. أظهرت دراسات الاستبعاد أن استخدام gcc -O3 كمرجع يُساعد في الأداء، بينما يؤدي إزالته إلى انخفاض حاد. بشكل ملحوظ، يمكن لأنماط مثل Claude-3.7-sonnet أن تتجاوز المُترجمين من خلال تحديد تحسينات خاصة بالأجهزة، مثل استبدال الدورات التكرارية بواحدة popcnt instruction، مما يُظهر قدرتها على إجراء تحويلات كود على مستوى الدلالات تتجاوز قدرات المُترجمين التقليدية.
الخاتمة
تستكشف الدراسة استخدام نماذج اللغات الضخمة لتحسين كود التجميع، وهو مجال تُعاني فيه المُترجمات التقليدية بسبب تعقيد ضبط الأداء منخفض المستوى. قام الباحثون بضبط نموذج Qwen2.5-Coder-7B باستخدام PPO، مُكافئين كل من الصحة (عبر حالات الاختبار) وزيادة السرعة مقارنةً بـ gcc -O3. قدموا معيارًا يتكون من 8072 برنامجًا من العالم الحقيقي لتقييم الأداء. حقق النموذج معدل نجاح اختبار بنسبة 96.0% وزيادة في السرعة بمقدار 1.47 ضعفًا، متفوقًا على 20 نموذجًا آخر. في حين أن هذا النهج فعال، إلا أن هناك قيودًا تتضمن عدم وجود ضمانات رسمية للصحة وتباين أداء الأجهزة عبر الأنظمة المختلفة.
[الورقة البحثية](رابط الورقة البحثية هنا)
جميع الحقوق محفوظة للباحثين الذين قاموا بهذا المشروع.
اترك تعليقاً