English-to-Arabic Translator
ترجمة آلية بمحوّل Transformer
محوّل Transformer من نوع مشفِّر-مفكِّك مكتوب من الصفر يتعلم الترجمة من الإنجليزية إلى العربية انطلاقًا من أي مدونة متوازية.
- BLEU 98.4 على البيانات التجريبية
- chrF 99.0
- إعدادات من 3.0 M إلى 52.3 M معامل
التقنياتPyTorchCustom TransformersHugging Face TokenizersBeam search
Hugging Face DatasetssacreBLEU
pytest

نظرة عامة
الترجمة الآلية هي المهمة التي صُمِّم المحوّل (Transformer) من أجلها، لذلك كتبت نموذج المشفِّر-المفكِّك (encoder-decoder) من ورقة Attention Is All You Need بلغة PyTorch خالصة، في نحو 150 سطرًا للنموذج نفسه، وبنيت حوله كل ما يحتاجه نظام ترجمة: إعداد البيانات، والمقطِّع (tokenizer)، والتدريب، وفك التشفير، والتقييم. زوج الإنجليزية إلى العربية هو الافتراضي، لكن رموز اللغات ليست سوى لواحق للملفات.
يستخدم النموذج كتلًا متبقية من نوع pre-norm، ومفردات BPE مشتركة مع تضمينات دخل وخرج مربوطة (tied embeddings)، وانتباهًا مدمجًا بالجداء النقطي المقيس مع أقنعة الحشو للمصدر وأقنعة سببية للهدف. يُدرَّب المقطِّع على البيانات ويتعامل مع أي نظام كتابة، لذلك تبقى العربية في ترتيبها الطبيعي دون أي حيل لعكسها. يتضمن التدريب تنعيم التسميات، وجدول إحماء، ودفعات مجمّعة بحسب الطول، وتراكم التدرّجات، والاستئناف، ونقاط حفظ مكتفية بذاتها؛ وفك التشفير جشع على دفعات أو بحث شعاعي (beam search) مع عقوبة طول؛ ويعرض التقييم BLEU وchrF بواسطة sacreBLEU، إضافة إلى حساب متوسط نقاط الحفظ.
تحققت من خط المعالجة من البداية إلى النهاية على مجموعة بيانات تجريبية مدمجة: 2,000 زوج اصطناعي من معجم إنجليزي من 16 كلمة مترجم كلمة بكلمة إلى العربية. نموذج بـ 0.95 M معلمة مدرَّب لـ 1,500 خطوة على المعالج المركزي يبلغ BLEU 98.4 وchrF 99.0 على 100 زوج غير مرئي. هذا يثبت أن الشيفرة تعمل؛ ولا يقول شيئًا عن جودة الترجمة الحقيقية، التي تتطلب مدونة مثل OPUS-100 ووحدة معالجة رسومية.
السؤال
هل يستطيع محوّل Transformer مضغوط ومقروء، مع خط المعالجة الكامل حوله (تنظيف البيانات، والمقطِّع، والتدريب، وفك التشفير، والتقييم)، الانتقال من النص المتوازي الخام إلى الترجمات من دون أي صندوق أسود؟
أهم الميزات
- مشفِّر-مفكِّك Transformer من الصفر: مواضع جيبية، وانتباه متعدد الرؤوس مع أقنعة الحشو والأقنعة السببية، وكتل pre-norm، وتضمينات مربوطة.
- en2ar-prepare ينظّف أي مدونة متوازية ويزيل تكراراتها ويقسّمها ويقطّعها: ملفاتك الخاصة، أو مجموعة بيانات من Hugging Face بعمود ترجمة، أو المجموعة التجريبية المدمجة.
- مقطِّع BPE مشترك مع تطبيع NFKC يعمل لأي نظام كتابة ويحافظ على النص المكتوب من اليمين إلى اليسار في ترتيبه المنطقي.
- تدريب مع تنعيم التسميات، وإحماء Noam، ودفعات بميزانية رموز، وتراكم التدرّجات، والاستئناف، وفحص للإفراط في التخصيص (overfit)، ونقاط حفظ تحمل مقطِّعها الخاص.
- فك تشفير جشع على دفعات وبحث شعاعي مع عقوبة طول، من سطر الأوامر أو من ملفات أو من الأنابيب (pipes) أو من Python.
- تقييم BLEU وchrF بواسطة sacreBLEU وحساب متوسط نقاط الحفظ.
- 43 اختبارًا تعمل على المعالج المركزي فقط، منها تشغيل تدريب حقيقي يجب أن يترجم أكثر من 90% من الجمل التجريبية غير المرئية ترجمة مطابقة تمامًا.
كيف يعمل
الإعداد
تُنظَّف الجمل (مرشّحات للطول ولنسبة الأطوال وللتكرار)، وتُخلط، وتُقسَّم، وتُستخدم لتدريب مفردات BPE واحدة للغتين.
التضمين
تمر معرّفات الرموز عبر جدول تضمين واحد يتشاركه المشفِّر والمفكِّك وإسقاط الخرج، مقيس بالجذر التربيعي للعرض ومضاف إلى المواضع الجيبية.
التشفير وفك التشفير
تبني طبقات المشفِّر من نوع pre-norm ذاكرة للمصدر؛ وتستخدم طبقات المفكِّك انتباهًا ذاتيًا سببيًا على ما وُلِّد من الهدف حتى الآن وانتباهًا متقاطعًا على تلك الذاكرة.
التدريب
إنتروبيا متقاطعة مع تنعيم التسميات على رمز الهدف التالي، وAdam مع جدول Noam، ودفعات مجمّعة بحسب الطول حتى ميزانية رموز، وحفظ أفضل خسارة تحقق في best.pt.
الترجمة والتقييم
فك تشفير جشع للسرعة أو بحث شعاعي مع عقوبة طول للجودة؛ ويقيّم en2ar-evaluate تقسيم الاختبار بـ BLEU على مستوى المدونة وchrF.
أمثلة
المدخل
en2ar-translate --checkpoint checkpoints/toy/best.pt --text "three red bird" --text "blue cat" --text "seven green dog one"
المخرج
ثلاثة أحمر طائر أزرق قطة سبعة أخضر كلب واحد
المدخل
en2ar-train --data-dir data/toy --preset small --max-steps 1500 --warmup-steps 200 --eval-every 500 --tokens-per-batch 1000 --device cpu && en2ar-evaluate --checkpoint checkpoints/toy/best.pt --beam-size 1
المخرج
val loss 0.092 (perplexity 1.10) at step 1000; test BLEU 98.4, chrF 99.0 greedy; BLEU 95.1, chrF 95.9 with beam size 4
التقنيات المستخدمة
المحوّل Transformer وحلقة التدريب وفك التشفير
Custom Transformers
مشفِّر-مفكِّك بكتل pre-norm وتضمينات مربوطة وانتباه مدمج
مقطِّع BPE مشترك مدرَّب على المدونة
Beam search
بحث شعاعي مع عقوبة طول وفك تشفير جشع على دفعات
تنزيل المدونات المتوازية مثل OPUS-100 (إضافة اختيارية)
حساب BLEU على مستوى المدونة وchrF
43 اختبارًا: الأقنعة، والمقطِّع، والتجميع في دفعات، وفك التشفير، وتشغيل تدريب حقيقي
ما تعلمته
- المفردات المشتركة بـ BPE هي ما يجعل التضمينات المربوطة ممكنة، وهي تزيل كل حيلة خاصة بنظام كتابة معين، بما فيها عكس النص العربي
- البحث الشعاعي ليس دائمًا أفضل من فك التشفير الجشع: في مهمة كلمة بكلمة، تكلّف عقوبة الطول، المضبوطة للجمل الحقيقية، نحو 3 نقاط BLEU
الحدود
- لم تُدرَّب وتُقيَّم سوى المجموعة التجريبية؛ ولا توجد أرقام BLEU على OPUS-100 أو أي مدونة حقيقية أخرى، ولا أوزان مدرَّبة مسبقًا
الكلمات المفتاحية
الترجمة الآلية · الترجمة الآلية العصبية · NMT · من الإنجليزية إلى العربية · معالجة اللغة العربية · Transformer · مشفِّر-مفكِّك · الانتباه · من الصفر · BPE · byte-pair encoding · البحث الشعاعي · تنعيم التسميات · BLEU · chrF · sacreBLEU · OPUS-100 · PyTorch · تسلسل إلى تسلسل