أفضل ممارسات Google و Uber للتعلم العميق

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

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

كانت الدوافع الأساسية لنظام أوبر المسمى Michelangelo هي أنه "لا توجد أنظمة قائمة لإنشاء خطوط أنابيب موثوقة وموحدة وقابلة للتكرار لإنشاء وإدارة بيانات التدريب والتنبؤ على نطاق واسع." قضايا نشر وإدارة الديون الفنية. تحتوي الورقة على حجج كافية من شأنها أن تقنع أي متشكك بأن الأطر الحالية غير كافية للإنتاج.

لن أتصفح ورقة أوبر معك بالكامل. بدلاً من ذلك ، سأقوم فقط بتسليط الضوء على بعض النقاط المهمة حول بنيتها المعمارية. نظام Uber ليس نظامًا للتعلم العميق تمامًا ، ولكنه نظام تعلم الآلة الذي يمكنه استخدام العديد من طرق ML اعتمادًا على الملاءمة. إنه مبني على المكونات مفتوحة المصدر التالية: HDFS ، Spark ، Samza ، Cassandra ، MLLib ، XGBoost ، و TensorFlow. لذلك ، إنه نظام BigData تقليدي يشتمل على مكونات Learning Machine لتحليلاته:

تم بناء Michelangelo على رأس بنية Uber للبيانات والبنية التحتية للحساب ، مما يوفر بحيرة بيانات تخزن جميع بيانات Uber الخاصة بالمعاملات والمسجلة ، وسماسرة Kafka الذين يقومون بتجميع الرسائل المسجلة من جميع خدمات Uber ، ومحرك تدفق بيانات Samza ، ومجموعات Cassandra المدارة ، و Uber's -توفير الخدمات وأدوات النشر.

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

  1. إدارة البيانات
  2. نماذج القطار
  3. تقييم النماذج
  4. نشر والتنبؤ ورصد

تصور أبنية مايكل أنجلو لأوبر على النحو التالي:

سوف أتخطى اهتمامات بنية البيانات الكبيرة المعتادة وأشير إلى بعض الأفكار البارزة التي تتعلق أكثر بالتعلم الآلي.

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

في الوقت الحالي ، لدينا ما يقرب من 10000 ميزة في Feature Store تُستخدم لتسريع مشاريع التعلم الآلي ، وتضيف الفرق عبر الشركة ميزات جديدة طوال الوقت. يتم احتساب الميزات في متجر الميزات وتحديثها تلقائيًا يوميًا.

أنشأ Uber لغة خاصة بالمجال (DSL) للمصممين لتحديد الميزة وتحويلها والجمع بينها قبل إرسال نموذج للتدريب والتنبؤ. أساليب ML المدعومة حاليًا هي أشجار القرار والنماذج الخطية واللوجستية والوسائل الوسيطة والسلاسل الزمنية والشبكات العصبية العميقة.

يحدد تكوين النموذج النوع ، المعلمات المفرطة ، مراجع مصدر البيانات ، تعبيرات DSL للميزات ومتطلبات حساب الموارد (مثل cpus ، الذاكرة ، استخدام GPU ، إلخ). يتم إجراء التدريب إما في مجموعة YARN أو Mesos.

بعد التدريب النموذجي ، يتم حساب مقاييس الأداء وتقديمها في تقرير التقييم. يتم تخزين كل المعلومات ، أي تكوين النموذج ، والنموذج المكتسب وتقرير التقييم في مستودع طراز مُصدّر للتحليل والنشر. تحتوي معلومات النموذج على:

  • الذين دربوا النموذج
  • وقت بداية ونهاية مهمة التدريب
  • تكوين نموذج كامل (الميزات المستخدمة ، قيم المعلمة المفرطة ، وما إلى ذلك)
  • إشارة إلى التدريب واختبار مجموعات البيانات
  • التوزيع والأهمية النسبية لكل ميزة
  • مقاييس دقة النموذج
  • تخطيطات ورسومات بيانية قياسية لكل نوع من أنواع النماذج (مثل منحنى ROC ومنحنى العلاقات العامة ومصفوفة الارتباك لمصنف ثنائي)
  • المعلمات المستفادة الكاملة للنموذج
  • إحصائيات ملخص لتصور النموذج

والفكرة هي دمقرطة الوصول إلى نماذج ML ، تقاسمها مع الآخرين لتحسين المعرفة التنظيمية. تتمثل الميزة الفريدة لنهج Uber في ظهور "Feature Store" الذي يسمح للعديد من الأطراف المختلفة بمشاركة بياناتهم عبر طرز ML مختلفة.

لدى الأشخاص في Google ورقة حديثة بعنوان "TFX: A منصة لتعلم آلة الإنتاج تعتمد على TensorFlow" والتي تعرض تفاصيل نظامهم الداخلي.

تم تصميم الورقة بشكل مشابه لورقة أوبر بحيث تغطي نفس سير العمل:

  1. إدارة البيانات - تحليل البيانات والتحويل والتحقق من الصحة
  2. نماذج القطار - نموذج التدريب: الانطلاق الحار ومواصفات النموذج
  3. تقييم النماذج - نموذج التقييم والتحقق من الصحة
  4. النشر والتنبؤ والرصد - تقديم النماذج

تعتمد بنية Google على الإرشادات العالية المستوى المعلنة التالية:

  • التقاط البيانات الشذوذ في وقت مبكر.
  • أتمتة التحقق من صحة البيانات.
  • تعامل مع أخطاء البيانات بنفس الدقة في التعليمات البرمجية.
  • دعم التدريب المستمر.
  • تكوين موحد لتحسين المشاركة.
  • موثوقة وقابلة للتطوير نشر الإنتاج وخدمة.

دعونا نتعمق أكثر في القدرات الفريدة لـ TFX من Google. هناك الكثير من الحكايات من الحكمة وكذلك مقدمة من العديد من القدرات الفريدة.

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

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

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

يستخدم TFX TensorFlow كتوصيف لطرازه. لدى TFX فكرة "الانطلاق الدافئ" المستوحاة من تقنية التعلم بالنقل الموجودة في التعلم العميق. الفكرة هي تقليل كمية التدريب من خلال الاستفادة من التدريب الحالي. على عكس تعلم النقل الذي يستخدم شبكة حالية مُدرَّبة مسبقًا ، فإن البداية الدافئة تحدد بشكل انتقائي شبكة الميزات العامة كنقطة انطلاق. تُستخدم الشبكة التي يتم تدريبها على الميزات العامة كأساس لتدريب شبكات أكثر تخصصًا. يبدو أن هذه الميزة مطبقة بـ TF-Slim.

يستخدم TFX مواصفات TensorFlow الشائعة عالية المستوى (انظر: مقدمو TensorFlow: إدارة البساطة مقابل المرونة في أطر عمل تعلم الآلة عالية المستوى) لتوفير التوحيد وترميز أفضل الممارسات عبر تطبيقات مختلفة. انظر هذه المادة على المقدرين لمزيد من التفاصيل.

يستخدم TFX إطار عمل TensorFlow للنشر والتقديم. يسمح الإطار بتقديم نماذج مختلفة مع الحفاظ على نفس البنية وواجهة برمجة التطبيقات. تخدم TensorFlow Serving "نموذجًا ناعمًا للعزل" للسماح بنشر النماذج المتعددة للمستأجرين. تم تصميم الإطار أيضًا لدعم الاستدلالات القابلة للتحجيم.

ذكرت ورقة TFX الحاجة إلى تحسين إلغاء تسلسل النماذج. على ما يبدو ، تم إنشاء موزعات بروتوكول مؤقت مخصصة لتحسين الأداء حتى 2-5 مرات.

يوفر تشريح Uber والبنية الداخلية لـ Google رؤية جيدة حول نقاط الألم والحلول لبناء النظام الأساسي الداخلي الخاص بك. بالمقارنة مع أطر DL مفتوحة المصدر المتاحة ، هناك تركيز أكبر في إدارة وتبادل المعلومات الوصفية. يتطلب نهج Google أيضًا بذل جهد إضافي لضمان التوحيد وكذلك التحقق التلقائي. هذه هي الممارسات التي رأيناها سابقًا في مشاريع هندسة البرمجيات التقليدية.

يتم إدخال ممارسات هندسة البرمجيات مثل تطوير الاختبارات المدفوعة (TDD) والتكامل المستمر والاستعادة والاستعادة ومراقبة التغيير وما إلى ذلك في ممارسات تعلم الآلة المتقدمة. لا يكفي أن يقوم متخصص بالتطوير على دفتر Jupyter وإلقائه فوق الحائط لفريق لتشغيله. إن نفس ممارسات المطورين من النهاية إلى النهاية التي نجدها اليوم في أفضل شركات الهندسة ستكون مطلوبة أيضًا في مساعي التعلم الآلي. نرى هذا اليوم في كل من Uber و Google ، وبالتالي يجب أن نتوقع ذلك في أي ممارسة ML / DL مستدامة.

تحديث: https://www.linkedin.com/pulse/ai-layer-diego-oppenheimer ، https://arxiv.org/abs/1804.09997v1

استكشاف التعلم العميق: الحدس الاصطناعي: ثورة التعلم العميق غير المحتملاستغلال التعلم العميق: The Play Learning AI Playbook