تتيح لك خطوط أنابيب TFX تنظيم سير عمل التعلم الآلي (ML) الخاص بك على المنظمين ، مثل: Apache Airflow و Apache Beam و Kubeflow Pipelines. تنظم خطوط الأنابيب سير عملك في سلسلة من المكونات ، حيث يؤدي كل مكون خطوة في سير عمل ML الخاص بك. توفر مكونات TFX القياسية وظائف مجربة لمساعدتك على البدء في بناء سير عمل ML بسهولة. يمكنك أيضًا تضمين مكونات مخصصة في سير عملك. تتيح لك المكونات المخصصة تمديد سير عمل ML الخاص بك من خلال:
- بناء المكونات المصممة لتلبية احتياجاتك ، مثل استيعاب البيانات من نظام احتكاري.
- تطبيق زيادة البيانات أو تصغيرها أو تصغيرها.
- قم بإجراء اكتشاف الشذوذ بناءً على فترات الثقة أو خطأ إعادة إنتاج المشفر التلقائي.
- التواصل مع الأنظمة الخارجية مثل مكاتب المساعدة للتنبيه والمراقبة.
- تطبيق التسميات على الأمثلة غير المسماة.
- دمج الأدوات المصممة بلغات أخرى غير Python في سير عمل ML الخاص بك ، مثل إجراء تحليل البيانات باستخدام R.
من خلال مزج المكونات القياسية والمكونات المخصصة ، يمكنك بناء سير عمل ML يلبي احتياجاتك مع الاستفادة من أفضل الممارسات المضمنة في مكونات TFX القياسية.
يصف هذا الدليل المفاهيم المطلوبة لفهم مكونات TFX المخصصة ، والطرق المختلفة التي يمكنك من خلالها إنشاء مكونات مخصصة.
تشريح مكون TFX
يقدم هذا القسم نظرة عامة عالية المستوى على تكوين مكون TFX. إذا كنت جديدًا على خطوط أنابيب TFX ، فتعلم المفاهيم الأساسية من خلال قراءة الدليل لفهم خطوط أنابيب TFX .
تتكون مكونات TFX من مواصفات المكون وفئة المنفذ التي يتم حزمها في فئة واجهة مكون.
تحدد مواصفات المكون عقد المدخلات والمخرجات للمكون. يحدد هذا العقد عناصر المدخلات والمخرجات للمكون ، والمعلمات المستخدمة لتنفيذ المكون.
توفر فئة المنفذ للمكون التنفيذ للعمل الذي يقوم به المكون.
تجمع فئة واجهة المكون بين مواصفات المكون مع المنفذ لاستخدامها كمكون في خط أنابيب TFX.
مكونات TFX في وقت التشغيل
عندما يقوم خط الأنابيب بتشغيل مكون TFX ، يتم تنفيذ المكون على ثلاث مراحل:
- أولاً ، يستخدم برنامج التشغيل مواصفات المكون لاسترداد العناصر المطلوبة من مخزن البيانات الوصفية وتمريرها إلى المكون.
- بعد ذلك ، يقوم المنفذ بتنفيذ عمل المكون.
- ثم يستخدم الناشر مواصفات المكون والنتائج من المنفذ لتخزين مخرجات المكون في مخزن البيانات الوصفية.
لا تتطلب منك معظم تطبيقات المكونات المخصصة تخصيص برنامج التشغيل أو الناشر. عادةً ، يجب أن تكون التعديلات على برنامج التشغيل والناشر ضرورية فقط إذا كنت ترغب في تغيير التفاعل بين مكونات خط الأنابيب ومخزن البيانات الوصفية. إذا كنت تريد فقط تغيير المدخلات أو المخرجات أو المعلمات للمكون الخاص بك ، فأنت تحتاج فقط إلى تعديل مواصفات المكون .
أنواع المكونات المخصصة
هناك ثلاثة أنواع من المكونات المخصصة: المكونات المستندة إلى وظائف Python ، والمكونات المستندة إلى الحاوية ، والمكونات المخصصة بالكامل. تصف الأقسام التالية الأنواع المختلفة للمكونات والحالات التي يجب فيها استخدام كل أسلوب.
مكونات بايثون القائمة على الوظائف
المكونات المستندة إلى وظائف Python أسهل في الإنشاء من المكونات المستندة إلى الحاوية أو المكونات المخصصة بالكامل. يتم تحديد مواصفات المكون في وسيطات دالة Python باستخدام التعليقات التوضيحية للنوع التي تصف ما إذا كانت الوسيطة عبارة عن عنصر إدخال ، أو عنصر ناتج ، أو معلمة. يحدد جسم الوظيفة منفذ المكون. يتم تحديد واجهة المكون عن طريق إضافة مصمم @component
إلى وظيفتك.
من خلال تزيين وظيفتك باستخدام @component
decorator وتحديد وسيطات الوظيفة باستخدام التعليقات التوضيحية للنوع ، يمكنك إنشاء مكون بدون تعقيد بناء مواصفات مكون ومنفذ وواجهة مكون.
تعرف على كيفية بناء مكونات تعتمد على وظائف بايثون .
المكونات القائمة على الحاويات
توفر المكونات المستندة إلى الحاوية المرونة لدمج التعليمات البرمجية المكتوبة بأي لغة في خط الأنابيب الخاص بك ، طالما يمكنك تنفيذ هذا الرمز في حاوية Docker. لإنشاء مكون مستند إلى الحاوية ، يجب عليك إنشاء صورة حاوية Docker تحتوي على التعليمات البرمجية القابلة للتنفيذ الخاصة بالمكون. ثم يجب عليك استدعاء دالة create_container_component
لتعريف:
- المدخلات والمخرجات والمعلمات الخاصة بمواصفات المكون الخاص بك.
- صورة الحاوية والأمر الذي يشغله منفذ المكون.
تقوم هذه الوظيفة بإرجاع مثيل لمكون يمكنك تضمينه في تعريف خط الأنابيب الخاص بك.
هذا النهج أكثر تعقيدًا من بناء مكون قائم على وظيفة Python ، لأنه يتطلب تغليف الكود الخاص بك كصورة حاوية. هذا النهج هو الأنسب لتضمين كود غير Python في خط الأنابيب الخاص بك ، أو لبناء مكونات Python مع بيئات أو تبعيات وقت تشغيل معقدة.
تعرف على كيفية بناء المكونات المستندة إلى الحاوية .
مكونات مخصصة بالكامل
تتيح لك المكونات المخصصة بالكامل إنشاء مكونات من خلال تحديد مواصفات المكون والمنفذ وفئات واجهة المكون. يتيح لك هذا الأسلوب إعادة استخدام المكون القياسي وتوسيعه ليلائم احتياجاتك.
إذا تم تعريف مكون موجود بنفس المدخلات والمخرجات مثل المكون المخصص الذي تقوم بتطويره ، فيمكنك ببساطة تجاوز فئة المنفذ للمكون الحالي. هذا يعني أنه يمكنك إعادة استخدام مواصفات المكون وتنفيذ منفذ جديد مشتق من مكون موجود. بهذه الطريقة ، يمكنك إعادة استخدام الوظائف المضمنة في المكونات الحالية وتنفيذ الوظيفة المطلوبة فقط.
إذا كانت مدخلات ومخرجات المكون الجديد فريدة ، فيمكنك تحديد مواصفات مكون جديدة تمامًا.
هذا النهج هو الأفضل لإعادة استخدام مواصفات المكونات الحالية والمنفذين.
تعرف على كيفية بناء مكونات مخصصة بالكامل .