تدريب نموذج Vowpal Wabbit

توضح هذه المقالة كيفية استخدام المكون Train Vowpal Wabbit Model في مصمم التعلم الآلي من Microsoft Azure لإنشاء نموذج تعلم آلي باستخدام Vowpal Wabbit.

لاستخدام Vowpal Wabbit للتعلم الآلي، قم بتنسيق الإدخال وفقاً لمتطلبات Vowpal Wabbit، وقم بإعداد البيانات بالتنسيق المطلوب. استخدم هذا المكون لتحديد وسيطات سطر أوامر Vowpal Wabbit.

عند تشغيل خط التدفق، يتم تحميل مثيل Vowpal Wabbit في وقت تشغيل التجربة، مع البيانات المحددة. عند اكتمال التدريب، يتم تسلسل النموذج إلى مساحة العمل. يمكنك استخدام النموذج على الفور لتسجيل البيانات.

لتدريب نموذج موجود بشكل متزايد على بيانات جديدة، قم بتوصيل نموذج محفوظ بمنفذ إدخال نموذج Vowpal Wabbit المدرب مسبقاً في Train Vowpal Wabbit Model، وأضف البيانات الجديدة إلى الآخر منفذ الإدخال.

ما هو Vowpal Wabbit؟

Vowpal Wabbit (VW) هو إطار عمل تعلم آلي سريع ومتوازٍ تم تطويره للحوسبة الموزعة بواسطة Yahoo! البحث. في وقت لاحق تم نقله إلى Windows وتكييفه بواسطة John Langford (Microsoft Research) للحوسبة العلمية في البنى المتوازية.

تشمل ميزات Vowpal Wabbit المهمة للتعلم الآلي التعلم المستمر (التعلم عبر الإنترنت) وتقليل الأبعاد والتعلم التفاعلي. يعد Vowpal Wabbit أيضاً حلاً للمشكلات التي لا يمكنك فيها احتواء بيانات النموذج في الذاكرة.

المستخدمون الأساسيون لـ Vowpal Wabbit هم علماء البيانات الذين استخدموا سابقاً إطار عمل مهام التعلم الآلي مثل التصنيف أو الانحدار أو نمذجة الموضوع أو عامل المصفوفة. يتميز غلاف Azure لـ Vowpal Wabbit بخصائص أداء مشابهة جداً للإصدار المحلي، لذا يمكنك استخدام الميزات القوية والأداء الأصلي لـ Vowpal Wabbit، ونشر النموذج المدرب بسهولة كخدمة تشغيلية.

يشتمل مكون Feature Hashing أيضاً على الوظائف التي يوفرها Vowpal Wabbit، والتي تتيح لك تحويل مجموعات البيانات النصية إلى ميزات ثنائية باستخدام خوارزمية التجزئة.

كيفية تكوين نموذج Vowpal Wabbit

يصف هذا القسم كيفية تدريب نموذج جديد وكيفية إضافة بيانات جديدة إلى نموذج موجود.

على عكس المكونات الأخرى في المصمم، فإن هذا المكون يحدد معلمات المكون ويدرب النموذج. إذا كان لديك نموذج موجود، يمكنك إضافته كمدخل اختياري، لتدريب النموذج بشكل متزايد.

قم بإعداد بيانات الإدخال

لتدريب نموذج باستخدام هذا المكون، يجب أن تتكون مجموعة بيانات الإدخال من عمود نص واحد بأحد التنسيقين المدعومين: SVMLight أو VW. هذا لا يعني أن Vowpal Wabbit يحلل البيانات النصية فقط، فقط أنه يجب إعداد الميزات والقيم بتنسيق الملف النصي المطلوب.

يمكن قراءة البيانات من نوعين من مجموعات البيانات، أو مجموعة بيانات الملف أو مجموعة البيانات المجدولة. يجب أن تكون كلتا مجموعتي البيانات هاتين إما بتنسيق SVMLight أو VW. يتميز تنسيق بيانات Vowpal Wabbit بأنه لا يتطلب تنسيقاً عمودياً، ما يوفر مساحة عند التعامل مع البيانات المتفرقة. لمزيد من المعلومات حول هذا التنسيق، راجع صفحة Vowpal Wabbit wiki.

إنشاء وتدريب نموذج Vowpal Wabbit

  1. أضف المكون Train Vowpal Wabbit Model إلى تجربتك.

  2. أضف مجموعة بيانات التدريب واربطها بـ Training data. إذا كانت مجموعة بيانات التدريب عبارة عن دليل يحتوي على ملف بيانات التدريب، فحدد اسم ملف بيانات التدريب باستخدام Name of the training data file. إذا كانت مجموعة بيانات التدريب عبارة عن ملف واحد، فاترك Name of the training data file فارغاً.

  3. في مربع النص VW arguments، اكتب وسيطات سطر الأوامر لملف Vowpal Wabbit القابل للتنفيذ.

    على سبيل المثال، يمكنك إضافة –l لتحديد معدل التعلم، أو -b للإشارة إلى عدد بتات التجزئة.

    لمزيد من المعلومات، راجع قسم معلمات Vowpal Wabbit.

  4. Name of the training data file: اكتب اسم الملف الذي يحتوي على بيانات الإدخال. يتم استخدام هذه الوسيطة فقط عندما تكون مجموعة بيانات التدريب عبارة عن دليل.

  5. Specify file type: حدد التنسيق الذي تستخدمه بيانات التدريب. يدعم Vowpal Wabbit تنسيقي ملفات الإدخال هذين:

    • يمثلVW التنسيق الداخلي المستخدم بواسطة Vowpal Wabbit. راجع صفحة Vowpal Wabbit على wiki للحصول على التفاصيل.
    • SVMLight هو تنسيق تستخدمه بعض أدوات التعلم الآلي الأخرى.
  6. إخراج ملف نموذج قابل للقراءة: حدد الخيار إذا كنت تريد أن يحفظ المكون النموذج القابل للقراءة في سجلات الوظائف. تتوافق هذه الوسيطة مع المعلمة --readable_model في سطر أوامر VW.

  7. إخراج ملف تجزئة معكوس: حدد الخيار إذا كنت تريد أن يحفظ المكون دالة التجزئة المقلوبة في ملف واحد في سجلات الوظائف. تتوافق هذه الوسيطة مع المعلمة --invert_hash في سطر أوامر VW.

  8. إرسال المسار.

إعادة تدريب نموذج Vowpal Wabbit الحالي

يدعم Vowpal Wabbit التدريب الإضافي عن طريق إضافة بيانات جديدة إلى نموذج موجود. هناك طريقتان للحصول على نموذج موجود لإعادة التدريب:

  • استخدم إخراج مكون Train Vowpal Wabbit Model في نفس خط التدفق.

  • حدد موقع نموذج محفوظ في فئة Datasets في جزء التنقل الأيسر من المصمم، واسحبه إلى خط التدفق الخاص بك.

  1. أضف مكوِّن Train Vowpal Wabbit Model إلى خط التدفق الخاص بك.

  2. قم بتوصيل النموذج الذي تم تدريبه مسبقاً بمنفذ الإدخال Vowpal Wabbit Model الذي تم تدريبه مسبقاً بالمكون.

  3. قم بتوصيل بيانات التدريب الجديدة بمنفذ إدخال بيانات التدريب للمكون.

  4. في جزء المعلمات من Train Vowpal Wabbit Model، حدد تنسيق بيانات التدريب الجديدة، وكذلك اسم ملف بيانات التدريب إذا كانت مجموعة بيانات الإدخال عبارة عن دليل.

  5. حدد إخراج ملف نموذج القابل للقراءة وخيارات إخراج ملف تجزئة مقلوب إذا كانت الملفات المقابلة بحاجة إلى حفظها في سجلات الوظائف.

  6. إرسال المسار.

  7. حدد المكون وحدد Register dataset ضمن علامة التبويب Outputs+logs في الجزء الأيمن، للاحتفاظ بالنموذج المحدث في مساحة عمل التعلم الآلي. إذا لم تحدد اسماً جديداً، فسيحل النموذج المحدث محل النموذج المحفوظ الحالي.

النتائج

ملاحظة

إذا كنت بحاجة إلى توزيع النموذج المدرب في المصمم، فتأكد من أن Score Vowpal Wabbit Model بدلاً من Score Model متصل بإدخال مكون إخراج خدمة الويب في تدفق الاستدلال.

ملاحظات فنية

يحتوي هذا القسم على تفاصيل التنفيذ ونصائح وإجابات للأسئلة المتداولة.

مزايا Vowpal Wabbit

يوفر Vowpal Wabbit تعلماً سريعاً للغاية على الميزات غير الخطية مثل n-grams.

يستخدم Vowpal Wabbit تقنيات التعلم عبر الإنترنت مثل النسب المتدرج العشوائي (SGD) لملاءمة سجل نموذج واحد في كل مرة. وبالتالي فإنه يتكرر بسرعة كبيرة على البيانات الأولية ويمكنه تطوير متنبئ جيد أسرع من معظم النماذج الأخرى. يتجنب هذا النهج أيضاً الاضطرار إلى قراءة جميع بيانات التدريب في الذاكرة.

يحول Vowpal Wabbit جميع البيانات إلى تجزئة، ليس فقط البيانات النصية ولكن المتغيرات الفئوية الأخرى. يؤدي استخدام التجزئة إلى زيادة كفاءة البحث عن أوزان الانحدار، وهو أمر بالغ الأهمية لتحقيق هبوط التدرج العشوائي الفعال.

المعلمات المدعومة وغير المدعومة

يصف هذا القسم دعم معلمات سطر أوامر Vowpal Wabbit في مصمم التعلم الآلي.

بشكل عام، يتم دعم جميع الحجج باستثناء مجموعة محدودة. للحصول على قائمة كاملة بالوسيطات، استخدم صفحة Vowpal Wabbit wiki.

المعلمات التالية غير مدعومة:

  • خيارات الإدخال / الإخراج المحددة في https://github.com/JohnLangford/vowpal_wabbit/wiki/Command-line-arguments

    تم بالفعل تكوين هذه الخصائص تلقائياً بواسطة المكون.

  • بالإضافة إلى ذلك، فإن أي خيار يولد مخرجات متعددة أو يأخذ مدخلات متعددة غير مسموح به. يتضمن ذلك --cbt، و--lda، و--wap.

  • يتم دعم خوارزميات التعلم تحت الإشراف فقط. لذلك، هذه الخيارات غير مدعومة: –active، --rank، --search إلخ.

القيود

نظراً لأن الهدف من الخدمة هو دعم المستخدمين ذوي الخبرة في Vowpal Wabbit، يجب إعداد بيانات الإدخال مسبقاً باستخدام تنسيق النص الأصلي Vowpal Wabbit، بدلاً من تنسيق مجموعة البيانات الذي تستخدمه المكونات الأخرى.

الخطوات التالية

راجع مجموعة المكونات المتوفرة للتعلم الآلي من Azure.