أطلقت شركة Yelp برنامج منسق التدريب. يحل هذا الإطار الداخلي الجديد محل نصوص تدريب Spark الفردية للفريق. والآن، يستخدم نموذج تنفيذ قائمًا على التكوين ومعتمدًا على DAG. تعالج هذه الخطوة مشكلة شائعة في منصات تعلم الآلة الكبيرة. قام كل فريق ML مطبق بإنشاء التنسيق الخاص به. وقد أدى ذلك إلى تكرار التعليمات البرمجية والتكوينات غير المتسقة والمراقبة المخصصة الهشة.

تم تنفيذ التدريب في Yelp سابقًا كنصوص متجانسة مقترنة بإحكام بمجموعة Spark وتنفيذ مشغل المهام. لم يتسبب هذا الاقتران في أي عمليات تشغيل محلية، أو ضعف قابلية الاختبار، أو التكرار البطيء. هناك حاجة إلى تغيير بسيط في التعليمات البرمجية لتقديم وظيفة Spark. بعد ذلك، كان عليك الانتظار حتى تبدأ الحاويات والمجموعات قبل معرفة ما إذا كان هناك عطل. تم نشر منطق التحقق في البرامج النصية. وهذا جعل من الصعب إعادة إنتاج التجارب السابقة في بيئات مختلفة. كانت هناك مشكلات تتعلق بالإعدادات غير المتسقة والمصدر المفقود.

يفصل منسق التدريب ما سيتم تشغيله عن كيفية تشغيله. تستخدم خطوط الأنابيب كائنات التكوين المستندة إلى Pydantic. يتضمن ذلك تكوين المنسق، وتكوين تشغيل MLflow، وتكوينات الخطوات المتنوعة. يتم التحقق من صحة كل شيء عند إنشائه، لذلك لا يتم إهدار أي حساب. يستخدم المنسق تبعيات الخطوة المعلنة لإنشاء رسم بياني دوري موجه. ثم يقوم بتشغيل الخطوات بالترتيب الطوبولوجي. تتم إضافة سياق Spark/MLflow مشترك، مما يسمح بتشغيل تعريفات الخطوة نفسها دون تغيير، سواء محليًا أو في Jupyter أو في الإنتاج. تربط كل خطوة فئة الإعدادات بوظيفة محددة من قبل المستخدم. يستخدم مخطط الإدخال/الإخراج لإظهار ما يتطلبه الأمر وما يقدمه. على سبيل المثال، يأخذ PreviewDataStep مجموعة بيانات ويخرج مجموعة بيانات معدة. يتيح هذا الإعداد للفرق تغيير منطق المعالجة المسبقة بسهولة. يمكنهم تشغيل إصدارات مختلفة من النماذج في وقت واحد. علاوة على ذلك، يمكنهم إعادة استخدام الوظائف عبر خطوط الأنابيب دون تغيير كود التنسيق.

تدريب منسق الهندسة المعمارية

يكتشف التحقق من صحة المخطط بسرعة عدم تطابق التكوين. إنه يشير إلى مشكلات مثل عمليات الاقتران غير الصحيحة للإدخال/الإخراج والمعلمات خارج النطاق في ثوانٍ. يعد هذا أسرع بكثير من العثور عليهم لساعات في مهمة Spark الجارية. يمكن للمطورين تشغيل مسارات كاملة محليًا باستخدام بيانات نموذجية نظرًا لأن الخطوات منفصلة عن البنية الأساسية. يمكنهم أيضًا كتابة اختبارات الوحدة لكل خطوة. بالإضافة إلى ذلك، فإن التخزين المؤقت للإدخال لخطوات تحميل البيانات يقلل من وقت اختبار التكامل على مجموعات البيانات الأصغر. يتم تسجيل التكوين الكامل لكل عملية تشغيل تلقائيًا كعنصر MLflow، مما يجعل عمليات إعادة التشغيل قابلة لإعادة التشغيل من هذا السجل الفردي. لا تتطلب الآن إشعارات Slack وتتبع تشغيل MLflow، التي كانت يتم تقديمها يدويًا لكل فريق، سوى عدد قليل من معلمات التكوين.

يعمل منسق التدريب مع منصة ML الخاصة بشركة Yelp. فهو يربط متاجر الميزات، وشبكة عصبية مشتركة، ومكتبة شجرة معززة بالتدرج، وMLflow للتتبع والنشر. يرى فريق التعلم الآلي الأساسي أنها طبقة التنسيق الحيوية التي يحتاجونها. إنه إطار داخلي، وليس إصدارًا مفتوح المصدر. تخطط Yelp لإضافة خطوات واضحة لتقييم النموذج ومقارنته وشرحه. سيتم أيضًا تنفيذ تتبع النسب في طبقة التنسيق. وبهذه الطريقة، سوف ينتشر إلى خطوط الأنابيب الحالية دون الحاجة إلى الترحيل.

يتضمن النمط الرئيسي تكوينات خطوة تعريفية تم التحقق من صحتها بواسطة Pydantic والتي تقود محرك تنفيذ DAG. يفصل هذا النمط منطق التدريب عن وقت تشغيل المجموعة. كما أنه يتيح التشغيل المحلي واختبار الوحدة. يمكن استخدام هذا الأسلوب خارج نطاق مكدس Yelp الخاص بـ Spark. تتضمن المقايضة استثمارًا أوليًا في تصميم المخطط والنوع المرحلي. كما يتطلب أيضًا ترحيل البرامج النصية الموجودة إلى عقد الإعدادات والوظيفة. تنظر شركة Yelp إلى ذلك كوسيلة لمركزة التكلفة، بحيث لا تضطر الفرق إلى دفعها بشكل متكرر.

تعكس جهود Yelp اتجاهًا أوسع في الصناعة. تتجه العديد من الشركات التي لديها العديد من فرق تعلم الآلة نحو بنية تحتية تدريبية مركزية وواضحة. تقدمت Netflix أيضًا للأمام مع Metaflow. لقد أضافوا مؤخرًا كائن تكوين. يتيح ذلك للفرق إدارة سلوك التدفق بوضوح عبر العديد من مسارات تعلم الآلة التي يقومون بصيانتها. تم إنشاء منصة Michelangelo التابعة لشركة Uber لمعالجة مشكلة التجزئة التي ذكرها موقع Yelp. فهو يساعد الفرق على استخدام أدوات مختلفة من خلال توفير مسار واضح من النماذج الأولية إلى الإنتاج.

تُظهر هذه الجهود استنتاجًا مشتركًا من مجموعات هندسية مختلفة: مع ظهور المزيد من النماذج وفرق التدريب، يصبح التنسيق المخصص بمثابة عنق الزجاجة. إن مركزية هذه العملية، على الرغم من التكاليف الأولية، تعمل على تحسين إمكانية التكرار وقابلية الاختبار وسرعة المطور.



شاركها.
اترك تعليقاً