TFX على خطوط أنابيب Cloud AI Platform

مقدمة

تم تصميم هذا البرنامج التعليمي لتقديم TensorFlow Extended (TFX) و AIPlatform Pipelines ، ولمساعدتك على تعلم كيفية إنشاء مسارات التعلم الآلي الخاصة بك على Google Cloud. يظهر التكامل مع TFX و AI Platform Pipelines و Kubeflow ، بالإضافة إلى التفاعل مع TFX في دفاتر Jupyter.

في نهاية هذا البرنامج التعليمي ، ستكون قد قمت بإنشاء وتشغيل ML Pipeline ، مستضاف على Google Cloud. ستكون قادرًا على تصور نتائج كل شوط ، وعرض نسب القطع الأثرية التي تم إنشاؤها.

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

مجموعة بيانات تاكسي شيكاغو

سيارة اجرهتاكسي شيكاغو

أنت تستخدم مجموعة بيانات رحلات سيارات الأجرة الصادرة عن مدينة شيكاغو.

يمكنك قراءة المزيد حول مجموعة البيانات في Google BigQuery . استكشف مجموعة البيانات الكاملة في BigQuery UI .

هدف النموذج - التصنيف الثنائي

هل سيقدم العميل إكرامية أكثر أم أقل من 20٪؟

1. إعداد مشروع Google Cloud

1.a إعداد بيئتك على Google Cloud

للبدء ، تحتاج إلى حساب Google Cloud. إذا كان لديك بالفعل واحد ، فانتقل إلى إنشاء مشروع جديد .

  1. انتقل إلى Google Cloud Console .

  2. وافق على شروط وأحكام Google Cloud

  3. إذا كنت ترغب في البدء بحساب تجريبي مجاني ، فانقر فوق جرب مجانًا (أو ابدأ مجانًا ).

    1. اختر بلدك.

    2. وافق على شروط الخدمة.

    3. أدخل تفاصيل الفواتير.

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

1.b إنشاء مشروع جديد.

  1. من لوحة تحكم Google Cloud الرئيسية ، انقر فوق القائمة المنسدلة للمشروع بجوار رأس Google Cloud Platform ، وحدد مشروع جديد .
  2. امنح مشروعك اسمًا وأدخل تفاصيل المشروع الأخرى
  3. بمجرد إنشاء مشروع ، تأكد من تحديده من القائمة المنسدلة للمشروع.

2. قم بإعداد ونشر AI Platform Pipeline على مجموعة Kubernetes جديدة

  1. انتقل إلى صفحة AI Platform Pipelines Clusters .

    ضمن قائمة التنقل الرئيسية: ≡> AI Platform> Pipelines

  2. انقر فوق + مثيل جديد لإنشاء كتلة جديدة.

  3. في صفحة نظرة عامة على خطوط أنابيب Kubeflow ، انقر فوق تكوين .

  4. انقر على "تمكين" لتمكين Kubernetes Engine API

  5. في صفحة نشر خطوط أنابيب Kubeflow :

    1. حدد منطقة (أو "منطقة") لمجموعتك. يمكن تعيين الشبكة والشبكة الفرعية ، ولكن لأغراض هذا البرنامج التعليمي سنتركهما افتراضيتين.

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

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

      تم إنشاء الكتلة "الكتلة -1" بنجاح في المنطقة "us-central1-a".

    4. حدد مساحة الاسم واسم المثيل (لا بأس باستخدام الإعدادات الافتراضية). لأغراض هذا البرنامج التعليمي ، لا تحقق من المنفذ .

    5. انقر فوق نشر ، وانتظر عدة لحظات حتى يتم نشر خط الأنابيب. من خلال نشر خطوط أنابيب Kubeflow ، فإنك تقبل شروط الخدمة.

3. إعداد مثيل Cloud AI Platform Notebook.

  1. انتقل إلى صفحة Vertex AI Workbench . في المرة الأولى التي تقوم فيها بتشغيل Workbench ، ستحتاج إلى تمكين Notebooks API.

    ضمن قائمة التنقل الرئيسية: ≡ -> Vertex AI -> Workbench

  2. إذا طُلب منك ، قم بتمكين Compute Engine API.

  3. قم بإنشاء دفتر ملاحظات جديد مع تثبيت TensorFlow Enterprise 2.7 (أو أعلى).

    دفتر ملاحظات جديد -> TensorFlow Enterprise 2.7 -> بدون GPU

    حدد منطقة ومنطقة ، وقم بتسمية مثيل دفتر الملاحظات.

    للبقاء ضمن حدود المستوى المجاني ، قد تحتاج إلى تغيير الإعدادات الافتراضية هنا لتقليل عدد وحدات المعالجة المركزية الافتراضية المتاحة لهذا المثيل من 4 إلى 2:

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

    3. انتظر حتى يتم إنشاء دفتر الملاحظات الجديد ، ثم انقر فوق تمكين واجهة برمجة تطبيقات Notebooks

4. قم بتشغيل دفتر الشروع في العمل

  1. انتقل إلى صفحة AI Platform Pipelines Clusters .

    ضمن قائمة التنقل الرئيسية: ≡ -> AI Platform -> خطوط الأنابيب

  2. في سطر المجموعة الذي تستخدمه في هذا البرنامج التعليمي ، انقر فوق فتح لوحة معلومات خطوط الأنابيب .

  3. في صفحة البدء ، انقر فوق Open a Cloud AI Platform Notebook على Google Cloud .

  4. حدد مثيل Notebook الذي تستخدمه لهذا البرنامج التعليمي ثم متابعة ، ثم تأكيد .

    حدد دفتر الملاحظات

5. مواصلة العمل في Notebook

تثبيت

يبدأ دفتر الخطوات الأولى بتثبيت TFX و Kubeflow Pipelines (KFP) في الجهاز الظاهري الذي يعمل فيه Jupyter Lab.

ثم يتحقق من إصدار TFX المثبت ، ويقوم بعملية الاستيراد ، ويعين ويطبع معرف المشروع:

تحقق من إصدار python واستيراده

تواصل مع خدمات جوجل كلاود

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

# Read GCP project id from env.
shell_output=!gcloud config list --format 'value(core.project)' 2>/dev/null
GCP_PROJECT_ID=shell_output[0]
print("GCP project ID:" + GCP_PROJECT_ID)

الآن قم بتعيين نقطة نهاية مجموعة KFP.

يمكن العثور على هذا من عنوان URL الخاص بلوحة معلومات خطوط الأنابيب. انتقل إلى لوحة معلومات Kubeflow Pipeline وانظر إلى عنوان URL. نقطة النهاية هي كل شيء في عنوان URL يبدأ بـ https:// وحتى ، بما في ذلك googleusercontent.com .

ENDPOINT='' # Enter YOUR ENDPOINT here.

يقوم الكمبيوتر الدفتري بعد ذلك بتعيين اسم فريد لصورة Docker المخصصة:

# Docker image name for the pipeline image
CUSTOM_TFX_IMAGE='gcr.io/' + GCP_PROJECT_ID + '/tfx-pipeline'

6. انسخ قالبًا إلى دليل مشروعك

قم بتحرير خلية دفتر الملاحظات التالية لتعيين اسم لخط الأنابيب الخاص بك. في هذا البرنامج التعليمي سوف نستخدم my_pipeline .

PIPELINE_NAME="my_pipeline"
PROJECT_DIR=os.path.join(os.path.expanduser("~"),"imported",PIPELINE_NAME)

ثم يستخدم الكمبيوتر الدفتري tfx CLI لنسخ قالب خط الأنابيب. يستخدم هذا البرنامج التعليمي مجموعة بيانات Chicago Taxi لإجراء تصنيف ثنائي ، لذلك يضبط النموذج النموذج على taxi :

!tfx template copy \
  --pipeline-name={PIPELINE_NAME} \
  --destination-path={PROJECT_DIR} \
  --model=taxi

يقوم الكمبيوتر الدفتري بعد ذلك بتغيير سياق CWD الخاص به إلى دليل المشروع:

%cd {PROJECT_DIR}

تصفح ملفات خطوط الأنابيب

على الجانب الأيسر من Cloud AI Platform Notebook ، يجب أن ترى متصفح الملفات. يجب أن يكون هناك دليل باسم خط الأنابيب الخاص بك ( my_pipeline ). افتحه واعرض الملفات. (ستتمكن من فتحها وتحريرها من بيئة دفتر الملاحظات أيضًا.)

# You can also list the files from the shell
 ls

أنشأ الأمر tfx template copy أعلاه سقالة أساسية من الملفات التي تنشئ مسارًا. وتشمل هذه الرموز المصدر Python وبيانات العينة ودفاتر Jupyter. هذه مخصصة لهذا المثال بالذات. بالنسبة لخطوط الأنابيب الخاصة بك ، ستكون هذه هي الملفات الداعمة التي يتطلبها خط الأنابيب الخاص بك.

فيما يلي وصف موجز لملفات Python.

  • pipeline - يحتوي هذا الدليل على تعريف خط الأنابيب
    • configs.py - يعرّف الثوابت المشتركة لعدائي خطوط الأنابيب
    • pipeline.py - يحدد مكونات TFX وخط أنابيب
  • models - يحتوي هذا الدليل على تعريفات نموذج ML.
    • features.py features_test.py - يحدد ميزات النموذج
    • preprocessing.py / preprocessing_test.py - يحدد وظائف المعالجة المسبقة باستخدام tf::Transform
    • estimator - يحتوي هذا الدليل على نموذج قائم على المقدر.
      • constants.py py - تحدد ثوابت النموذج
      • model.py / model_test.py - يحدد نموذج DNN باستخدام مقدر TF
    • keras - يحتوي هذا الدليل على نموذج قائم على Keras.
      • constants.py py - تحدد ثوابت النموذج
      • model.py / model_test.py - يحدد نموذج DNN باستخدام Keras
  • beam_runner.py / kubeflow_runner.py - حدد العدائين لكل محرك تزامن

7. قم بتشغيل أول خط أنابيب TFX على Kubeflow

سيقوم الكمبيوتر الدفتري بتشغيل خط الأنابيب باستخدام الأمر tfx run CLI.

قم بتوصيله بوحدة التخزين

تخلق خطوط الأنابيب الجارية القطع الأثرية التي يجب تخزينها في ML-Metadata . تشير المصنوعات إلى الحمولات ، وهي ملفات يجب تخزينها في نظام ملفات أو تخزين كتلة. في هذا البرنامج التعليمي ، سنستخدم GCS لتخزين حمولات البيانات الوصفية الخاصة بنا ، باستخدام الحاوية التي تم إنشاؤها تلقائيًا أثناء الإعداد. سيكون اسمه <your-project-id>-kubeflowpipelines-default .

قم بإنشاء خط الأنابيب

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

gsutil cp data/data.csv gs://{GOOGLE_CLOUD_PROJECT}-kubeflowpipelines-default/tfx-template/data/taxi/data.csv

ثم يستخدم الكمبيوتر الدفتري الأمر tfx pipeline create لإنشاء خط الأنابيب.

!tfx pipeline create  \
--pipeline-path=kubeflow_runner.py \
--endpoint={ENDPOINT} \
--build-image

أثناء إنشاء خط أنابيب ، سيتم إنشاء Dockerfile لإنشاء صورة Docker. لا تنس إضافة هذه الملفات إلى نظام التحكم بالمصادر (على سبيل المثال ، git) مع ملفات المصدر الأخرى.

قم بتشغيل خط الأنابيب

يستخدم الكمبيوتر الدفتري بعد ذلك الأمر tfx run create لبدء تشغيل تنفيذ لخط الأنابيب الخاص بك. سترى أيضًا هذا التشغيل مدرجًا ضمن التجارب في لوحة معلومات Kubeflow Pipelines Dashboard.

tfx run create --pipeline-name={PIPELINE_NAME} --endpoint={ENDPOINT}

يمكنك عرض خط الأنابيب الخاص بك من Kubeflow Pipelines Dashboard Dashboard.

8. تحقق من صحة البيانات الخاصة بك

المهمة الأولى في أي علم بيانات أو مشروع ML هي فهم البيانات وتنظيفها.

  • فهم أنواع البيانات لكل معلم
  • ابحث عن القيم الشاذة والقيم المفقودة
  • افهم توزيعات كل ميزة

عناصر

مكونات البياناتمكونات البيانات

  • يستوعب ExampleGen مجموعة بيانات الإدخال ويقسمها.
  • StatisticsGen يحسب إحصائيات لمجموعة البيانات.
  • SchemaGen SchemaGen بفحص الإحصائيات وإنشاء مخطط بيانات.
  • يبحث ExampleValidator عن القيم الشاذة والقيم المفقودة في مجموعة البيانات.

في محرر ملف Jupyter lab:

في pipeline / pipeline.py ، قم بإلغاء التعليق على الخطوط التي تلحق هذه المكونات بخط الأنابيب الخاص بك:

# components.append(statistics_gen)
# components.append(schema_gen)
# components.append(example_validator)

(تم تمكين ExampleGen بالفعل عندما تم نسخ ملفات القالب.)

قم بتحديث خط الأنابيب وأعد تشغيله

# Update the pipeline
! tfx pipeline update \
  --pipeline-path=kubeflow_runner.py \
  --endpoint={ENDPOINT}

! tfx run create --pipeline-name "{PIPELINE_NAME}"

تحقق من خط الأنابيب

بالنسبة إلى Kubeflow Orchestrator ، تفضل بزيارة لوحة معلومات KFP وابحث عن مخرجات خطوط الأنابيب في الصفحة لتشغيل خط الأنابيب الخاص بك. انقر فوق علامة التبويب "التجارب" على اليسار ، و "كل عمليات التشغيل" في صفحة التجارب. يجب أن تكون قادرًا على العثور على المدى باسم خط الأنابيب الخاص بك.

مثال أكثر تقدمًا

إن الغرض من المثال المعروض هنا هو البدء فقط. للحصول على مثال أكثر تقدمًا ، راجع TensorFlow Data Validation Colab .

لمزيد من المعلومات حول استخدام TFDV لاستكشاف مجموعة بيانات والتحقق منها ، راجع الأمثلة على tensorflow.org .

9. ميزة الهندسة

يمكنك زيادة الجودة التنبؤية لبياناتك و / أو تقليل الأبعاد باستخدام هندسة الميزات.

  • تقاطعات الميزة
  • المفردات
  • حفلات الزفاف
  • PCA
  • الترميز القاطع

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

عناصر

تحول

  • ينفذ التحويل هندسة الميزات على مجموعة البيانات.

في محرر ملف Jupyter lab:

في pipeline / pipeline.py ، ابحث عن السطر الذي يلحق التحويل بخط الأنابيب وأزله من التعليق.

# components.append(transform)

قم بتحديث خط الأنابيب وأعد تشغيله

# Update the pipeline
! tfx pipeline update \
  --pipeline-path=kubeflow_runner.py \
  --endpoint={ENDPOINT}

! tfx run create --pipeline-name "{PIPELINE_NAME}"

تحقق من مخرجات خطوط الأنابيب

بالنسبة إلى Kubeflow Orchestrator ، تفضل بزيارة لوحة معلومات KFP وابحث عن مخرجات خطوط الأنابيب في الصفحة لتشغيل خط الأنابيب الخاص بك. انقر فوق علامة التبويب "التجارب" على اليسار ، و "كل عمليات التشغيل" في صفحة التجارب. يجب أن تكون قادرًا على العثور على المدى باسم خط الأنابيب الخاص بك.

مثال أكثر تقدمًا

إن الغرض من المثال المعروض هنا هو البدء فقط. للحصول على مثال أكثر تقدمًا ، راجع TensorFlow Transform Colab .

10. التدريب

قم بتدريب نموذج TensorFlow باستخدام بياناتك المحولة والنظيفة والرائعة.

  • قم بتضمين التحويلات من الخطوة السابقة حتى يتم تطبيقها بشكل متسق
  • حفظ النتائج كنموذج SavedModel للإنتاج
  • تصور واستكشف عملية التدريب باستخدام TensorBoard
  • احفظ أيضًا نموذج EvalSavedModel لتحليل أداء النموذج

عناصر

في محرر ملف Jupyter lab:

في pipeline / pipeline.py ، ابحث عن العنصر الذي يلحق المدرب بخط الأنابيب وأزل تعليقه:

# components.append(trainer)

قم بتحديث خط الأنابيب وأعد تشغيله

# Update the pipeline
! tfx pipeline update \
  --pipeline-path=kubeflow_runner.py \
  --endpoint={ENDPOINT}

! tfx run create --pipeline-name "{PIPELINE_NAME}"

تحقق من مخرجات خطوط الأنابيب

بالنسبة إلى Kubeflow Orchestrator ، تفضل بزيارة لوحة معلومات KFP وابحث عن مخرجات خطوط الأنابيب في الصفحة لتشغيل خط الأنابيب الخاص بك. انقر فوق علامة التبويب "التجارب" على اليسار ، و "كل عمليات التشغيل" في صفحة التجارب. يجب أن تكون قادرًا على العثور على المدى باسم خط الأنابيب الخاص بك.

مثال أكثر تقدمًا

إن الغرض من المثال المعروض هنا هو البدء فقط. للحصول على مثال أكثر تقدمًا ، راجع البرنامج التعليمي TensorBoard .

11. تحليل أداء النموذج

فهم أكثر من مجرد مقاييس المستوى الأعلى.

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

عناصر

  • المقيم يقوم بتحليل عميق لنتائج التدريب.

في محرر ملف Jupyter lab:

في pipeline / pipeline.py ، ابحث عن السطر الذي يُلحق المُقيِّم بخط الأنابيب وأزل التعليق عنه:

components.append(evaluator)

قم بتحديث خط الأنابيب وأعد تشغيله

# Update the pipeline
! tfx pipeline update \
  --pipeline-path=kubeflow_runner.py \
  --endpoint={ENDPOINT}

! tfx run create --pipeline-name "{PIPELINE_NAME}"

تحقق من مخرجات خطوط الأنابيب

بالنسبة إلى Kubeflow Orchestrator ، تفضل بزيارة لوحة معلومات KFP وابحث عن مخرجات خطوط الأنابيب في الصفحة لتشغيل خط الأنابيب الخاص بك. انقر فوق علامة التبويب "التجارب" على اليسار ، و "كل عمليات التشغيل" في صفحة التجارب. يجب أن تكون قادرًا على العثور على المدى باسم خط الأنابيب الخاص بك.

12. خدمة النموذج

إذا كان النموذج الجديد جاهزًا ، فاجعله كذلك.

  • ينشر Pusher SavedModels في المواقع المعروفة

أهداف النشر تتلقى نماذج جديدة من مواقع معروفة

  • خدمة TensorFlow
  • TensorFlow Lite
  • TensorFlow JS
  • TensorFlow Hub

عناصر

  • ينشر Pusher النموذج إلى بنية تحتية تخدم.

في محرر ملف Jupyter lab:

في pipeline / pipeline.py ، ابحث عن الخط الذي يلحق Pusher بخط الأنابيب وأزل تعليقه:

# components.append(pusher)

تحقق من مخرجات خطوط الأنابيب

بالنسبة إلى Kubeflow Orchestrator ، تفضل بزيارة لوحة معلومات KFP وابحث عن مخرجات خطوط الأنابيب في الصفحة لتشغيل خط الأنابيب الخاص بك. انقر فوق علامة التبويب "التجارب" على اليسار ، و "كل عمليات التشغيل" في صفحة التجارب. يجب أن تكون قادرًا على العثور على المدى باسم خط الأنابيب الخاص بك.

أهداف النشر المتاحة

لقد قمت الآن بتدريب نموذجك والتحقق منه ، وأصبح نموذجك الآن جاهزًا للإنتاج. يمكنك الآن نشر النموذج الخاص بك على أي من أهداف نشر TensorFlow ، بما في ذلك:

  • خدمة TensorFlow ، لخدمة النموذج الخاص بك على خادم أو مزرعة خوادم ومعالجة طلبات استدلال REST و / أو gRPC.
  • TensorFlow Lite ، لتضمين نموذجك في تطبيق جوال أصلي يعمل بنظام Android أو iOS ، أو في تطبيق Raspberry Pi أو IoT أو متحكم دقيق.
  • TensorFlow.js ، لتشغيل النموذج الخاص بك في متصفح الويب أو تطبيق Node.JS.

المزيد من الأمثلة المتقدمة

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

اعتبارات موارد خطوط أنابيب كوبفلو

بناءً على متطلبات عبء العمل الخاص بك ، قد يلبي التكوين الافتراضي لنشر Kubeflow Pipelines احتياجاتك وقد لا يلبي. يمكنك تخصيص تكوينات الموارد الخاصة بك باستخدام pipeline_operator_funcs في مكالمتك إلى KubeflowDagRunnerConfig .

pipeline_operator_funcs هي قائمة OpFunc ، والتي تحول جميع مثيلات ContainerOp التي تم إنشاؤها في مواصفات خط أنابيب KFP والتي تم تجميعها من KubeflowDagRunner .

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

def request_more_memory():
  def _set_memory_spec(container_op):
    container_op.set_memory_request('32G')
  return _set_memory_spec

# Then use this opfunc in KubeflowDagRunner
pipeline_op_funcs = kubeflow_dag_runner.get_default_pipeline_operator_funcs()
pipeline_op_funcs.append(request_more_memory())
config = KubeflowDagRunnerConfig(
    pipeline_operator_funcs=pipeline_op_funcs,
    ...
)
kubeflow_dag_runner.KubeflowDagRunner(config=config).run(pipeline)

تشمل وظائف تكوين الموارد المماثلة:

  • set_memory_limit
  • set_cpu_request
  • set_cpu_limit
  • set_gpu_limit

جرب BigQueryExampleGen

BigQuery عبارة عن مستودع بيانات سحابي بدون خادم وقابل للتطوير بدرجة عالية وفعال من حيث التكلفة. يمكن استخدام BigQuery كمصدر لتدريب الأمثلة في TFX. في هذه الخطوة ، سنضيف BigQueryExampleGen إلى خط الأنابيب.

في محرر ملف Jupyter lab:

انقر نقرًا مزدوجًا لفتح pipeline.py . اكتب تعليقًا على CsvExampleGen وأزل التعليق عن السطر الذي يُنشئ مثيلًا من BigQueryExampleGen . تحتاج أيضًا إلى إلغاء التعليق على وسيطة query الخاصة بوظيفة create_pipeline .

نحتاج إلى تحديد مشروع GCP الذي يجب استخدامه في BigQuery ، ويتم ذلك عن طريق تعيين --project في beam_pipeline_args عند إنشاء خط أنابيب.

انقر نقرًا مزدوجًا لفتح configs.py . أزل تعريف BIG_QUERY_WITH_DIRECT_RUNNER_BEAM_PIPELINE_ARGS و BIG_QUERY_QUERY . يجب استبدال معرّف المشروع وقيمة المنطقة في هذا الملف بالقيم الصحيحة لمشروع Google Cloud Platform الخاص بك.

تغيير الدليل مستوى واحد لأعلى. انقر فوق اسم الدليل أعلى قائمة الملفات. اسم الدليل هو اسم خط الأنابيب الذي هو my_pipeline إذا لم تقم بتغيير اسم خط الأنابيب.

انقر نقرًا مزدوجًا لفتح kubeflow_runner.py . قم بإلغاء تعليق وسيطين ، query و beam_pipeline_args ، من أجل وظيفة create_pipeline .

الآن أصبح خط الأنابيب جاهزًا لاستخدام BigQuery كمصدر نموذجي. قم بتحديث خط الأنابيب كما كان من قبل وقم بإنشاء تشغيل تنفيذ جديد كما فعلنا في الخطوتين 5 و 6.

قم بتحديث خط الأنابيب وأعد تشغيله

# Update the pipeline
!tfx pipeline update \
  --pipeline-path=kubeflow_runner.py \
  --endpoint={ENDPOINT}

!tfx run create --pipeline-name {PIPELINE_NAME} --endpoint={ENDPOINT}

جرب Dataflow

تستخدم العديد من مكونات TFX Apache Beam لتنفيذ خطوط الأنابيب المتوازية ، وهذا يعني أنه يمكنك توزيع أعباء عمل معالجة البيانات باستخدام Google Cloud Dataflow . في هذه الخطوة ، سنقوم بتعيين منسق Kubeflow لاستخدام Dataflow كنهاية خلفية لمعالجة البيانات لـ Apache Beam.

# Select your project:
gcloud config set project YOUR_PROJECT_ID

# Get a list of services that you can enable in your project:
gcloud services list --available | grep Dataflow

# If you don't see dataflow.googleapis.com listed, that means you haven't been
# granted access to enable the Dataflow API.  See your account adminstrator.

# Enable the Dataflow service:

gcloud services enable dataflow.googleapis.com

انقر نقرًا مزدوجًا فوق pipeline لتغيير الدليل ، وانقر نقرًا مزدوجًا لفتح configs.py . قم بإلغاء تعريف GOOGLE_CLOUD_REGION و DATAFLOW_BEAM_PIPELINE_ARGS .

تغيير الدليل مستوى واحد لأعلى. انقر فوق اسم الدليل أعلى قائمة الملفات. اسم الدليل هو اسم خط الأنابيب الذي هو my_pipeline إذا لم تتغير.

انقر نقرًا مزدوجًا لفتح kubeflow_runner.py . beam_pipeline_args . (تأكد أيضًا من التعليق على beam_pipeline_args الحالية التي أضفتها في الخطوة 7.)

قم بتحديث خط الأنابيب وأعد تشغيله

# Update the pipeline
!tfx pipeline update \
  --pipeline-path=kubeflow_runner.py \
  --endpoint={ENDPOINT}

!tfx run create --pipeline-name {PIPELINE_NAME} --endpoint={ENDPOINT}

يمكنك العثور على وظائف Dataflow الخاصة بك في Dataflow في Cloud Console .

جرب التدريب والتنبؤ على Cloud AI Platform مع KFP

تتفاعل TFX مع العديد من خدمات GCP المُدارة ، مثل Cloud AI Platform للتدريب والتنبؤ . يمكنك تعيين مكون Trainer الخاص بك لاستخدام Cloud AI Platform Training ، وهي خدمة مُدارة لتدريب نماذج ML. علاوة على ذلك ، عندما يتم بناء النموذج الخاص بك وجاهزًا للعرض ، يمكنك دفع النموذج الخاص بك إلى Cloud AI Platform Prediction لتقديمه. في هذه الخطوة ، سنقوم بتعيين مكون Trainer Pusher لاستخدام خدمات Cloud AI Platform.

قبل تحرير الملفات ، قد يتعين عليك أولاً تمكين واجهة برمجة تطبيقات AI Platform Training & Prediction API .

انقر نقرًا مزدوجًا فوق pipeline لتغيير الدليل ، وانقر نقرًا مزدوجًا لفتح configs.py . قم بإلغاء تعريف GOOGLE_CLOUD_REGION و GCP_AI_PLATFORM_TRAINING_ARGS و GCP_AI_PLATFORM_SERVING_ARGS . سنستخدم صورة الحاوية المخصصة لدينا لتدريب نموذج في Cloud AI Platform Training ، لذلك يجب علينا تعيين masterConfig.imageUri في GCP_AI_PLATFORM_TRAINING_ARGS بنفس قيمة CUSTOM_TFX_IMAGE أعلاه.

قم بتغيير الدليل بمستوى واحد لأعلى ، وانقر نقرًا مزدوجًا لفتح kubeflow_runner.py . قم بإلغاء التعليق على ai_platform_training_args و ai_platform_serving_args .

قم بتحديث خط الأنابيب وأعد تشغيله

# Update the pipeline
!tfx pipeline update \
  --pipeline-path=kubeflow_runner.py \
  --endpoint={ENDPOINT}

!tfx run create --pipeline-name {PIPELINE_NAME} --endpoint={ENDPOINT}

يمكنك العثور على وظائف التدريب الخاصة بك في Cloud AI Platform Jobs . إذا اكتمل خط الأنابيب الخاص بك بنجاح ، يمكنك العثور على النموذج الخاص بك في Cloud AI Platform Models .

14. استخدم بياناتك الخاصة

في هذا البرنامج التعليمي ، قمت بإنشاء خط أنابيب لنموذج باستخدام مجموعة بيانات Chicago Taxi. حاول الآن وضع البيانات الخاصة بك في خط الأنابيب. يمكن تخزين بياناتك في أي مكان يمكن لخط الأنابيب الوصول إليه ، بما في ذلك ملفات Google Cloud Storage أو BigQuery أو CSV.

تحتاج إلى تعديل تعريف خط الأنابيب ليلائم بياناتك.

إذا كانت بياناتك مخزنة في ملفات

  1. قم بتعديل DATA_PATH في kubeflow_runner.py ، مشيرًا إلى الموقع.

إذا تم تخزين بياناتك في BigQuery

  1. قم بتعديل BIG_QUERY_QUERY في configs.py إلى بيان الاستعلام الخاص بك.
  2. أضف ميزات في models / features.py .
  3. تعديل models / preprocessing.py لتحويل بيانات الإدخال للتدريب .
  4. قم بتعديل models / keras / model.py models / keras / constants.py لوصف نموذج ML الخاص بك .

تعرف على المزيد حول المدرب

راجع دليل مكون المدرب لمزيد من التفاصيل حول خطوط أنابيب التدريب.

تنظيف

لتنظيف جميع موارد Google Cloud المستخدمة في هذا المشروع ، يمكنك حذف مشروع Google Cloud الذي استخدمته في البرنامج التعليمي.

بدلاً من ذلك ، يمكنك تنظيف الموارد الفردية من خلال زيارة كل وحدة تحكم: - Google Cloud Storage - Google Container Registry - Google Kubernetes Engine