لماذا نحتاج إلى DevOps في مجال بيانات ML



إن نشر التعلم الآلي (ML) في الإنتاج ليس بالمهمة السهلة ، ولكنه في الواقع أصعب بكثير من نشر البرامج التقليدية. ونتيجة لذلك ، لن ترى معظم مشاريع إدارة التعلم أبدًا ضوء النهار - والإنتاج - حيث تتخلى معظم المؤسسات عن محاولة استخدام إدارة الأموال والترويج لها للترويج لمنتجاتها وخدمة العملاء.

بقدر ما نرى ، فإن العقبة الأساسية أمام معظم الفرق لإنشاء ونشر ML في الإنتاج على النطاق المتوقع هو أننا ما زلنا غير قادرين على جلب ممارسات DevOpsفي التعلم الآلي. تم الكشف جزئياً عن عملية إنشاء نماذج ML ونشرها بواسطة حلول MLOps التي تم إصدارها بالفعل ، ولكنها تفتقر إلى الدعم من أحد أصعب جوانب ML: البيانات.

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

تم إنشاء Tecton من قبل فريق من المهندسين الذين أنشأوا منصات ML داخلية لشركات مثل Uber و Google و Facebook و Twitter و Airbnb و AdRoll و Quora. سمحت الاستثمارات الكبيرة لهذه الشركات في ML بتطوير العمليات والأدوات للاستخدام المكثف لل ML في منظماتهم ومنتجاتهم. تستند الدروس المقدمة في هذه المقالة ، بالإضافة إلى منصة Tecton نفسها ، إلى حد كبير على تجربة فريق نشر ML لدينا في الإنتاج على مدار السنوات القليلة الماضية.

هل تذكر الوقت الذي كان فيه إصدار البرنامج طويلًا ومؤلمًا؟


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

يسمح نهج DevOps للمهندسين بالعمل في قاعدة كود مشتركة محددة جيدًا. بمجرد أن يصبح التغيير المرحلي جاهزًا للنشر ، يتحقق المهندس من ذلك من خلال نظام التحكم في الإصدار. تأخذ عملية التكامل والتسليم المستمر (CD / CI) أحدث التغييرات ، وتجري اختبار الوحدة ، وتنشئ الوثائق ، وتجري اختبار التكامل ، ونتيجة لذلك ، بطريقة خاضعة للرقابة ، تطرح تغييرات على الإنتاج أو تعد إصدارًا للتوزيع.


تين. 1: عملية DevOps النموذجية

الميزات الرئيسية لـ DevOps:

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

في هذه الأيام ، اتخذ العديد من فرق التطوير مثل هذا النهج المتكامل كأساس.

... بشكل عام ، لا يزال نشر ML طويلًا ومؤلمًا


على عكس تطوير البرمجيات ، لا توجد عمليات محددة جيدًا ومؤتمتة بالكامل للإنتاج السريع في تحليل البيانات. تتكون عملية إنشاء تطبيق ML ونشره في منتج من عدة خطوات:


الشكل. 2: يجب على متخصصي تحليل البيانات تنسيق عملهم بين عدة فرق في مجالات مختلفة

  • الاكتشاف والوصول إلى بيانات المصدر. يقضي متخصصو علوم البيانات في معظم الشركات ما يصل إلى 80٪ من وقتهم في البحث عن بيانات المصدر لنمذجة مشكلتهم. غالبًا ما يتطلب هذا تنسيقًا متعدد الوظائف مع مهندسي البيانات والفريق التنظيمي.
  • . , . , , .
  • . . ( ).
  • نشر ودمج النموذج. تتضمن هذه الخطوة عادةً التكامل مع خدمة تستخدم النموذج للتنبؤ. على سبيل المثال ، تطبيق جوّال لبائع التجزئة عبر الإنترنت يستخدم نموذج توصية للتنبؤ بعروض المنتجات.
  • إعداد المراقبة. مرة أخرى ، للتأكد من أن نموذج ML وعمليات البيانات تعمل بشكل صحيح ، مطلوب مساعدة المبرمجين.

نتيجة لذلك ، تواجه فرق ML المشاكل نفسها التي واجهها المبرمجون منذ عشرين عامًا:

  • لا يمتلك خبراء علوم البيانات الملكية الكاملة لدورة حياة النماذج والوظائف. لنشر تعديلاتهم ودعمهم في الإنتاج ، عليهم الاعتماد على الآخرين.
  • data science . . . , , data science, , , , , .


. 3: ,

  • . data science, . , , , .

DevOps ML . DevOps ML data


منصات MLOps هذه مثل Sagemaker Kubeflow وتتحرك في الاتجاه الصحيح على الطريق لمساعدة الشركات على تبسيط إنتاج ML ، حتى نتمكن من ملاحظة كيفية تقديم MLOps للمبادئ وأدوات DevOps في ML. للبدء ، يحتاجون إلى استثمارات مسبقة لائقة تمامًا ، ولكن بعد الاندماج المناسب ، فإنهم قادرون على توسيع قدرات المتخصصين في علوم البيانات في مجال التدريب والإدارة وإنتاج نماذج ML.

لسوء الحظ ، تميل معظم أدوات MLOps إلى التركيز على سير العمل حول النموذج نفسه (التدريب والتنفيذ والإدارة) ، مما يخلق عددًا من الصعوبات لل MLS الموجودة. يتم تعريف تطبيقات ML من خلال التعليمات البرمجية والنماذج والبيانات.. يعتمد نجاحهم على القدرة على إنشاء بيانات ML عالية الجودة وتسليمها للإنتاج بسرعة وثبات ... وإلا فهذا هو "القمامة في الخارج ، القمامة خارج". يوضح الرسم التوضيحي التالي ، الذي تم اختياره وتكييفه خصيصًا من عمل Google بشأن الدين التقني في ML ، العناصر "التي تركز على البيانات" و "التي تركز على النموذج" في أنظمة ML. اليوم ، تساعد منصات MLOps في العديد من العناصر "التي تركز على النموذج" ، ولكن فقط مع بعض العناصر "التي تركز على البيانات" أو لا تؤثر عليها على الإطلاق:


الشكل. 4: عناصر نموذجية وغير مركزية لأنظمة ML. واليوم ، تغطي أنظمة MLOps العناصر التي تركز على النموذج إلى حد كبير.

يوضح القسم التالي بعضًا من أصعب الاختبارات التي واجهناها في تبسيط إنتاج ML. إنها ليست أمثلة شاملة ، ولكنها مصممة لإظهار المشاكل التي نواجهها أثناء إدارة دورة حياة بيانات ML (الوظائف والعلامات):

  • الوصول إلى مصادر بيانات المصدر الصحيحة
  • إنشاء وظائف وتسميات من البيانات المصدر
  • الجمع بين الوظائف في بيانات التدريب
  • حساب وإصدار الوظائف في الإنتاج
  • تتبع الإنتاج

تذكير صغير قبل أن نتعمق أكثر: وظيفة ML هي البيانات التي تعمل كمدخل للنموذج لاتخاذ قرار. على سبيل المثال ، تريد خدمة توصيل الطعام إظهار وقت التسليم المتوقع في تطبيقه. للقيام بذلك ، من الضروري التنبؤ بمدة طهي طبق معين ، في مطعم معين ، في وقت محدد. واحدة من الإشارات الملائمة لإنشاء مثل هذه التوقعات - وكيل لمدى انشغال المطعم - ستكون "الحساب النهائي" للطلبات الواردة في آخر 30 دقيقة. يتم حساب الوظيفة بناءً على تدفق البيانات الأولية لأمر الأمر:


الشكل. 5: يتم تغيير البيانات الأولية عن طريق تحويل الدالة إلى قيم دالة

تاريخ الاختبار رقم 1: الوصول إلى بيانات المصدر الصحيحة


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

  • اكتشاف البيانات: يحتاج المحترفون إلى معرفة مكان بيانات المصدر. الحل الرائع هو أنظمة فهرسة البيانات (مثل Lyft`s Amundsen ) ، لكنها لم تستخدم حتى الآن على مستوى العالم. في كثير من الأحيان لا توجد البيانات الضرورية ببساطة ، وبالتالي يجب إنشاؤها أو فهرستها أولاً.
  • الموافقة على الوصول: غالبًا ما يكون التنقل بين السلطات للحصول على أذونات للوصول إلى البيانات التي ستحل المشكلات خطوة إلزامية على مسار خبراء علوم البيانات.
  • : , , . , .

- #2:


يمكن أن تأتي بيانات المصدر من مصادر عديدة ، لكل منها خصائصه الخاصة المهمة التي تؤثر على أنواع الوظائف المستخرجة منها. وتشمل هذه الخصائص دعم البيانات المصدر ل أنواع التحول ، أهمية البيانات ، وكمية من البيانات أرشيف المتاحة :


الشكل. 6: مصادر البيانات المختلفة لها طرق مختلفة لأنواع مختلفة من تحويل البيانات وتوفر الوصول إلى كميات مختلفة من البيانات اعتمادًا على مدى الصلة بالموضوع. من

المهم أخذ هذه الخصائص في الاعتبار ، لأن أنواع مصادر البيانات تحدد أنواع الوظائف التي يمكن لأخصائي علوم البيانات الحصول عليها من البيانات المصدر:

  • ( Snowflake Redshift) ( ). , , « ».
  • ( MongoDB MySQL) . , 24 .
  • ( Kafka) ( ). . , « 30 ».
  • بيانات استعلام التنبؤات هي البيانات الأولية للأحداث التي تحدث في الوقت الحقيقي قبل إجراء توقعات ML ، على سبيل المثال ، استعلام أدخله المستخدم للتو في شريط البحث. حتى إذا كانت هذه البيانات محدودة ، فغالبًا ما تكون "حديثة" قدر الإمكان وتحتوي على إشارة يمكن التنبؤ بها بسهولة. تأتي هذه البيانات مع طلب تنبؤ ويمكن استخدامها في الحسابات في الوقت الحقيقي مثل البحث عن تقديرات التشابه بين استعلام بحث المستخدم والمستندات في صفيف البحث.

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

تاريخ الاختبار رقم 3: دمج الوظائف في بيانات التدريب


يتطلب تكوين مجموعات بيانات التدريب أو الاختبار دمج بيانات الوظائف المقابلة. في هذه الحالة ، من الضروري تتبع العديد من التفاصيل التي يمكن أن يكون لها تأثيرات حرجة على النموذج. هما الأكثر غدرا:

  • تسرب البيانات: يحتاج متخصصو علوم البيانات إلى التأكد من تدريب نموذجهم على المعلومات الصحيحة وعدم السماح "بتسرب" المعلومات غير المرغوب فيها إلى بيانات التدريب. قد تكون هذه البيانات: بيانات من مجموعة اختبار ، بيانات من الحقيقة الأرضية ، بيانات من المستقبل ، أو معلومات تنتهك العمليات التحضيرية المهمة (على سبيل المثال ، إخفاء الهوية).
  • : — . ( ). , data science , .

- #4:


بعد تشغيل النموذج في الوقت الفعلي ، من أجل إنشاء تنبؤات صحيحة وذات صلة ، يحتاج إلى توفير بيانات وظائف جديدة باستمرار - غالبًا على نطاق واسع وبأقل وقت انتظار.

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



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



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



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



منع التشويه في التدريب ( التدريب / الانحراف ):يمكن أن تؤدي الاختلافات بين نتائج التعلم وعمليات العمل إلى تشوهات في التعلم. من الصعب إلى حد ما الكشف عن التشوهات أثناء التدريب ، ويمكن أن يجعل وجودها تنبؤات النموذج غير قابلة للاستخدام. يمكن أن يتصرف النموذج بشكل عشوائي عند استخلاص استنتاجات بناءً على بيانات تم إنشاؤها بشكل مختلف عن تلك التي تم تدريبها عليها. في حد ذاتها ، فإن قضية التشويه والعمل معهم تستحق سلسلة منفصلة من المقالات. ومع ذلك ، يجدر إبراز خطرين نموذجيين:

  • : ( ) , . Null? ? . .


. 7 ,

  • ́ : - ( ). , , , . , , . — , , , .


تين. 8: يوضح الرسم البياني الحساب النهائي للأوامر: في (1) يتم عرض قيم الوظيفة الصادرة للتنبؤات ويتم تحديثها كل 10 دقائق ؛ على (2) بيانات تدريب تظهر بشكل غير صحيح القيم الحقيقية بشكل أوضح بكثير بالمقارنة مع الوظائف الصادرة للإنتاج

تاريخ الاختبار رقم 5: تتبع الميزات في الإنتاج


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

  • : , , . , , . , .
  • : , . , , (, ), .
  • : . , (, , ) .
  • المسؤولية غير الواضحة لجودة البيانات: في الحالة التي يمكن فيها للوظائف تلقي بيانات المصدر من عدة مصادر توزيع مختلفة ، فمن المسؤول في النهاية عن جودة الوظيفة؟ أخصائي علوم البيانات الذي أنشأ الوظيفة؟ أخصائي علوم البيانات الذي درب النموذج؟ مالك قناة تغذية البيانات؟ المبرمج الذي قام بدمج النموذج في الإنتاج؟ في الحالات التي تكون فيها المسؤوليات غير واضحة ، تظل المشكلات بدون حل لفترة طويلة.

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

إدخال Tecton: منصة تعلم آلة التاريخ


في Tecron ، نقوم بإنشاء منصة للتاريخ للتعلم الآلي لتقديم المساعدة في المشاكل الأكثر شيوعًا والأكثر صعوبة في مجال علم البيانات.

على مستوى عال ، فإن منصة Tecron لديها:

  1. عمليات الدوال لتحويل بيانات المصدر إلى دالات وتسميات
  2. مستودع الوظائف لتخزين بيانات الوظيفة والعلامات المؤرشفة
  3. خادم دالة لإصدار أحدث قيم دالة للإنتاج
  4. SDK لبيانات التدريب ومعالجة العمليات الوظيفية
  5. واجهة مستخدم ويب لرصد وتتبع الميزات والتسميات ومجموعات البيانات
  6. محرك مراقبة لتحديد جودة البيانات أو مشاكل الانجراف والتنبيهات



تين. 9: كونها منصة البيانات المركزية لـ ML ، توفر Tecton وظائف في بيئات التطوير والإنتاج.

تسمح المنصة لفرق ML بإحضار ممارسات DevOps إلى بيانات ML:



  • التخطيط: يتم تخزين ميزات Tecron في مستودع مركزي. يسمح هذا لمتخصصي علوم البيانات بمشاركة وإيجاد واستخدام عمال بعضهم البعض.
  • الرمز: يسمح Tecton للمستخدمين بإعداد عمليات تحويل الوظائف البسيطة والمرنة.
  • بناء: يجمع Tecton الوظائف في مهام معالجة البيانات عالية الأداء.
  • الاختبار: Tecton يدعم الاختبار الوظيفي والتكامل للوظائف.
  • الإصدار: Tecton يتكامل بإحكام مع git. تحتوي جميع أوصاف الوظائف على تحكم في الإصدار ويسهل إعادة إنتاجها.
  • : Tecton ( Spark). Tecron.
  • : Tecton data science , .
  • : Tecton .

بالطبع ، لن تمنحك بيانات ML بدون نموذج ML تنفيذًا عمليًا لـ ML. لذلك ، توفر Tecton واجهات برمجة تطبيقات مرنة وتتكامل مع منصات ML الموجودة. بدأنا مع Databricks و SageMaker و Kuberflow ، ونستمر في التكامل مع مكونات النظام البيئي التكميلية.

All Articles