
بقلم: نور | محررة الأبحاث والدراسات · صوت تحريري بإشراف بشري
نماذج الذكاء الاصطناعي اليوم تكتب كود Python بمستوى متقدم، لكنها تتعثر مع لغات أقل انتشاراً مثل Haskell أو Rust بسبب نقص بيانات التدريب. المفارقة أن المهارات البرمجية الأساسية واحدة – فخوارزمية الفرز السريع تعمل بنفس المنطق سواء كُتبت بـ C++ أو Julia.
فريق بحثي من ثمانية علماء بقيادة Zhaofeng Wu طور حلاً يُسمى Parallel-SFT يعالج هذا التحدي عبر تدريب النماذج على “برامج متوازية” – أكواد متطابقة وظيفياً مكتوبة بلغات مختلفة (وفقاً للبحث المنشور في ArXiv).
المشكلة بدأت عندما اكتشف الباحثون أن تدريب Llama-3.1 باستخدام التعلم المعزز (RL) على توليد كود لغة واحدة لا يحسن فحسب، بل قد يضر بالأداء في لغات أخرى. هذا التراجع محبط خاصة أن المفاهيم البرمجية الأساسية متشابهة عبر اللغات.
الحل جاء من فهم أعمق لعملية التعلم: الباحثون افترضوا أن نجاح RL في نقل المهارات بين اللغات يتطلب تهيئة قوية باستخدام Supervised Fine-Tuning (SFT) قبل مرحلة التعلم المعزز.
- إنشاء مجموعة بيانات متوازية: جمع برامج تؤدي نفس الوظيفة مكتوبة بلغات متعددة – مثلاً نفس خوارزمية البحث الثنائي بـ Python وJava وC++ وGo
- تدريب SFT المدمج: تدريب النموذج على هذه البرامج المتوازية ليفهم أن نفس المنطق يمكن التعبير عنه بطرق مختلفة
- بناء التمثيل الموحد: تطوير مساحة كامنة تجمع البرامج المتكافئة وظيفياً بالقرب من بعضها البعض رغم اختلاف الصيغة
- تطبيق التعلم المعزز المحسن: تنفيذ RL training على النموذج المُحسن بـ Parallel-SFT
- قياس قابلية النقل: اختبار قدرة النموذج على كتابة كود صحيح في لغات لم يرها أثناء مرحلة RL
النتائج أثبتت فعالية المقترب: النماذج المدربة بـ Parallel-SFT حققت تحسناً واضحاً في لغات البرمجة غير المرئية مقارنة بالطرق التقليدية. التحليل العميق للتمثيلات الداخلية كشف السر: Parallel-SFT يخلق مساحة كامنة تركز على الوظائف بدلاً من الصيغة النحوية للغة (وفقاً للبحث المنشور في ArXiv).
هذا يعني أن النموذج يتعلم أن `for i in range(10)` في Python و `for(int i=0; i<10; i++)` في C++ هما تعبير عن نفس المفهوم البرمجي. البرامج المتكافئة وظيفياً تُخزن في مناطق قريبة من الذاكرة الداخلية للنموذج، مما يسهل عملية النقل.التقنية تحل مشكلة حقيقية في صناعة الذكاء الاصطناعي. شركات مثل GitHub Copilot وAmazon CodeWhisperer تواجه تحدي دعم عشرات لغات البرمجة بمستوى متقدم، لكن بيانات التدريب متوفرة بوفرة فقط للغات الشائعة. Parallel-SFT يقدم طريقة فعالة للاستفادة من المعرفة المتراكمة في اللغات الشائعة لتحسين الأداء في اللغات النادرة.
التحدي الأكبر يكمن في الحصول على مجموعات بيانات متوازية عالية الجودة. إنتاج نفس البرنامج بلغات متعددة يتطلب مبرمجين متخصصين في كل لغة، وهذا مكلف. لكن النتائج الأولية تشير أن الاستثمار يستحق العناء.
نحن نتجه نحو مستقبل حيث مساعدات البرمجة الذكية تفهم المنطق البرمجي بغض النظر عن اللغة المستخدمة. هذا سيفيد خاصة المطورين العرب الذين يعملون مع لغات متخصصة أو جديدة لا تحظى بدعم كامل من أدوات الذكاء الاصطناعي الحالية.






