Beyond BLEU: A Semantic Evaluation Method for Code Translation
تقترح هذه الورقة منهجية تقييم دلالي مبتكرة لترجمة الكود البرمجي تستخدم اختبار المترجم (compiler testing) لقياس صحة التنفيذ، مما يثبت أن أدوات فك التجميع (decompilers) القائمة على النماذج اللغوية الكبيرة تتفوق بشكل كبير على النهج الاستدلالي، في حين تفشل المقاييس النحوية التقليدية مثل BLEU في الارتباط بالدقة الوظيفية.
البحث الأصلي مرخَّص بموجب CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). هذا شرح مولَّده بالذكاء الاصطناعي للبحث أدناه. لم يكتبه المؤلفون ولم يصادقوا عليه. وللتحقق من الدقة التقنية، يرجى الرجوع إلى البحث الأصلي. اقرأ إخلاء المسؤولية الكامل
تخيل أنك تحاول ترجمة وصفة من لغة أجنبية إلى اللغة الإنجليزية.
الطريقة القديمة: عدّ الكلمات
تقليديًا، عندما تتحقق الحواسيب مما إذا كانت الترجمة جيدة، فإنها تستخدم طريقة تسمى BLEU. فكر في هذا الأمر كمعلم يصحح ترجمة عبر مجرد عدّ كم عدد الكلمات التي تتطابق مع الأصل، متجاهلاً المعنى.
- المشكلة: إذا كانت الوصفة الأصلية تقول "أضف رشة ملح"، والترجمة تقول "أضف القليل من الملح"، فإن الكمبيوتر سيعتبرهما مختلفين تمامًا لأن الكلمات لا تتطابق بدقة.
- المشكلة الأكبر: إذا كانت الوصفة الأصلية تقول "اخبز عند درجة حرارة 350 فهرنهايت" والترجمة أخطأت وقالت "اخبز عند درجة حرارة 500 فهرنهايت"، فقد لا يزال الكمبيوتر يعطيها درجة عالية لأن الكلمات تبدو متشابهة. النتيجة؟ ستحصل على كعكة محترقة، لكن الكمبيوتر سيقول لك: "عمل رائع!"
يجادل مؤلفو هذه الورقة بأن طريقة "عدّ الكلمات" هذه عديمة الفائدة بالنسبة لأكواد الكمبيوتر. يمكن لبرنامجين أن يبدوا مختلفين تمامًا على الصفحة، لكنهما يقومان بنفس الشيء بالضبط (مثل طريقتين مختلفتين لربط حذاء). وعلى العكس من ذلك، يمكن لبرنامجين أن يبدوا متشابهين تقريبًا ولكن يقومان بأشياء مختلفة تمامًا (مثل وصفة تقول "أضف سكرًا" مقابل "أضف ملحًا").
الطريقة الجديدة: اختبار التذوق
بدلاً من مجرد النظر إلى الكلمات، يقترح المؤلفون نهج "اختبار التذوق". إنهم يريدون معرفة ما إذا كان الكود المترجم يعمل بالفعل بنفس الطريقة مثل الكود الأصلي.
إليك كيف تعمل طريقتهم الجديدة، باستخدام تشبيه إبداعي:
- المولد (الطاهي): يستخدمون أداة تسمى Csmith لإنشاء آلاف البرامج الحاسوبية البسيطة والعشوائية تلقائيًا. إنه يشبه روبوت طاهٍ يصنع آلاف الأطباق الصغيرة والعشوائية.
- الطبق المرجعي: يقومون بتشغيل هذه البرامج الأصلية وقياس "ملف تعريف نكهة" محدد (مجموع حسابي رياضي - checksum) للنتيجة. هذا هو خط الأساس لديهم.
- الترجمة: يقومون بتغذية الكود الأصلي إلى مترجم (إما ذكاء اصطناعي يشبه البشر أو أداة تقليدية تعتمد على القواعد) للحصول على الكود "المترجم".
- إعادة الطهي: يأخذون ذلك الكود المترجم، ويقومون بطهيه مرة أخرى، ويقيسون "ملف تعريف نكهة" الجديد.
- الحكم: إذا تطابقت ملفات تعريف النكهة تمامًا، فإن الترجمة صحيحة دلاليًا (Semantically Correct). هذا يعني أن الكود يقوم بنفس المهمة بالضبط، حتى لو بدت الكلمات مختلفة. إذا لم تتطابق النكهات، فإن الترجمة قد فشلت، حتى لو بدت الكلمات متشابهة.
ما وجدوه
لقد اختبروا هذه الطريقة على نوعين من المترجمين:
- المدرسة القديمة (الاستدلالية): وهي أدوات تقليدية تتبع قواعد صارمة.
- الذكاء الاصطناي الجديد (LLM): وهو نموذج لغوي كبير تم تدريبه لترجمة الكود.
النتائج:
- الذكاء الاصطناوي يفوز: كان المترجم الذي يعمل بالذكاء الاصطناعي أفضل بكثير في الحفاظ على "النكهة" (الوظيفة الفعلية) للكود مقارنة بالأدوات التقليدية القائمة على القواعد.
- المقياس القديم مكسور: عندما نظروا إلى درجات "عدّ الكلمات" (BLEU)، وجدوا انعدام أي صلة بمدى عمل الكود فعليًا.
- أحيانًا حصل الذكاء الاصطناعي على درجة مطابقة كلمات منخفضة، لكن الكود كان يعمل بشكل مثالي.
- وأحيانًا حصل الذكاء الاصطناعي على درجة مطابقة كلمات عالية، لكن الكود كان معطلًا.
الخلاصة
تخلص الورقة إلى أننا بحاجة للتوقف عن تقييم ترجمات الكود بناءً على مدى تشابهها في الشكل مع الأصل. بدلاً من ذلك، يجب أن نقيمها بناءً على ما إذا كانت تعمل مثل الأصل. الطريقة القديمة لعدّ الكلمات هي مثل الحكم على سيارة بناءً على مدى تشابه شكلها مع سيارة فيراري، بينما الطريقة الجديدة هي في الواقع قيادتها لمعرفة ما إذا كانت تعمل. يوضح المؤلفون أن "اختبار القيادة" يكشف أن الذكاء الاصطناعي يتحسن كثيرًا في هذه المهمة، بينما "اختبار التشابه الشكلي" يضللنا.
غارق في أبحاث مجالك؟
تصلك نشرة يومية بأحدث الأبحاث المطابقة لكلماتك البحثية المفتاحية — مع ملخصات تقنية، بلغتك.