ما هو Beam Search؟
Beam Search هي خوارزمية تُستخدم في الذكاء الاصطناعي وخاصة في نماذج البيانات المتسلسلة (Sequence Models) مثل الترجمة الآلية وتوليد النصوص. تُعتبر Beam Search تحسينًا على Greedy Decoding، حيث تأخذ في الحسبان أكثر من خيار في كل خطوة من عملية التوليد، مما يزيد من احتمالية الوصول إلى تسلسل مثالي.
كيف تعمل Beam Search؟
بدلاً من اختيار الكلمة أو العنصر الأكثر احتمالاً في كل خطوة (كما في Greedy Decoding)، تقوم Beam Search بـ:
- الحفاظ على مجموعة من أفضل الخيارات الممكنة (المسارات) بناءً على الاحتمالات.
- تسمى هذه المجموعة بـ “الحزمة” أو “الشعاع” (Beam).
- في كل خطوة:
- يتم حساب الاحتمالات لجميع الخيارات الممكنة.
- تُختار فقط أفضل الخيارات (وفقًا لحجم الحزمة أو الـ Beam Width).
- يتم تكرار العملية حتى يتم الوصول إلى نهاية التسلسل أو شرط الإيقاف.
مصطلحات Beam Search:
- Beam Width (عرض الشعاع):
- عدد المسارات (الأفضل) التي يتم الاحتفاظ بها في كل خطوة.
- Beam Width أكبر يعني استكشاف أوسع (ولكن مع تكلفة حسابية أعلى).
- Score (الدرجة):
- يتم حساب درجة لكل مسار بناءً على مجموع الاحتمالات عبر جميع الخطوات السابقة.
- Pruning (التقليم):
- يتم إزالة المسارات الأقل احتمالًا، والاحتفاظ فقط بالأفضل.
مثال عملي:
المشكلة: ترجمة جملة
- جملة الإدخال: “I am happy.”
- خطوات Beam Search:
- الخطوة الأولى (اختيار أول كلمة):
- خيارات النموذج: “Je (0.6)”، “Moi (0.3)”، “Nous (0.1)”
- يتم الاحتفاظ بأفضل 2 خيارات (إذا كان Beam Width = 2): “Je” و “Moi”.
- الخطوة الثانية (اختيار الكلمة الثانية لكل خيار):
- “Je” → “suis (0.7)”، “vais (0.2)”
- “Moi” → “suis (0.5)”، “vais (0.4)”
- الاحتفاظ بأفضل المسارات:
- “Je suis (0.6 × 0.7 = 0.42)”
- “Moi suis (0.3 × 0.5 = 0.15)”
- الخطوة الثالثة: تستمر العملية حتى نهاية الجملة.
- الخطوة الأولى (اختيار أول كلمة):
الفرق بين Beam Search وGreedy Decoding:
الميزة | Greedy Decoding | Beam Search |
---|---|---|
عدد المسارات | مسار واحد فقط (أكثر احتمالًا لحظيًا) | مسارات متعددة (أفضل احتمالات مستقبلية) |
الدقة | أقل دقة (قد يفوت المسار الأمثل) | أعلى دقة (يستكشف خيارات أكثر) |
السرعة | أسرع | أبطأ (بسبب حساب مسارات متعددة) |
التنوع | أقل تنوع | أكثر تنوعًا |
مزايا Beam Search:
- زيادة الدقة: يستكشف النموذج خيارات أكثر، مما يزيد من احتمالية الوصول إلى تسلسل مثالي.
- التوازن بين الدقة والكفاءة: يمكن تعديل Beam Width حسب الحاجة.
- أفضل في المهام المعقدة: مثل الترجمة الآلية وتوليد النصوص الطويلة.
عيوب Beam Search:
- زيادة التكلفة الحسابية: خاصة عند زيادة Beam Width.
- قد لا يضمن الحل الأمثل: يعتمد الأداء على Beam Width، وقد يخطئ في تسلسل نادر لكنه أفضل.
بدائل Beam Search:
- Sampling Decoding: اختيار الكلمة عشوائيًا بناءً على الاحتمالات.
- Diverse Beam Search: تحسين تنوع النتائج من Beam Search.
- Top-k Sampling: اختيار أعلى k خيارات فقط في كل خطوة.
أهم التطبيقات:
- الترجمة الآلية (Machine Translation): اختيار أفضل ترجمة محتملة.
- توليد النصوص (Text Generation): مثل كتابة جمل طويلة.
- التعرف على الصوت (Speech Recognition): تحديد النصوص المنطوقة.
- التلخيص الآلي (Summarization): إنشاء ملخصات دقيقة.
الخلاصة:
Beam Search طريقة فعالة ومثلى لتحسين النتائج التي تنتجها نماذج Sequence Models. تعتمد على الاحتفاظ بأفضل المسارات المتعددة بدلاً من مسار واحد فقط، مما يُعزز دقة النتائج ويُقدم حلولًا أكثر تنوعًا وواقعية.