آموزش TFX Airflow

بررسی اجمالی

بررسی اجمالی

این آموزش برای کمک به شما طراحی شده است که یاد بگیرید خطوط لوله یادگیری ماشین خود را با استفاده از TensorFlow Extended (TFX) و Apache Airflow به عنوان ارکستر ایجاد کنید. روی Vertex AI Workbench اجرا می‌شود و ادغام با TFX و TensorBoard و همچنین تعامل با TFX را در محیط آزمایشگاه Jupyter نشان می‌دهد.

چه خواهید کرد؟

شما یاد خواهید گرفت که چگونه یک خط لوله ML با استفاده از TFX ایجاد کنید

  • خط لوله TFX یک گراف غیر چرخشی جهت دار یا "DAG" است. ما اغلب به خطوط لوله به عنوان DAG اشاره می کنیم.
  • خطوط لوله TFX زمانی مناسب هستند که شما یک برنامه کاربردی ML تولیدی را اجرا می کنید
  • خطوط لوله TFX زمانی مناسب هستند که مجموعه داده ها بزرگ باشند یا ممکن است بزرگ شوند
  • خطوط لوله TFX زمانی مناسب هستند که یکنواختی آموزش/خدمت مهم باشد
  • خطوط لوله TFX زمانی مناسب هستند که مدیریت نسخه برای استنتاج مهم باشد
  • گوگل از خطوط لوله TFX برای تولید ML استفاده می کند

لطفاً برای کسب اطلاعات بیشتر به راهنمای کاربر TFX مراجعه کنید.

شما یک فرآیند معمولی توسعه ML را دنبال خواهید کرد:

  • بلع، درک، و پاک کردن داده های ما
  • مهندسی ویژگی
  • آموزش
  • تجزیه و تحلیل عملکرد مدل
  • کف کنید، بشویید، تکرار کنید
  • آماده برای تولید

جریان هوای آپاچی برای ارکستراسیون خط لوله

ارکسترهای TFX مسئول برنامه ریزی اجزای خط لوله TFX بر اساس وابستگی های تعریف شده توسط خط لوله هستند. TFX طوری طراحی شده است که برای چندین محیط و چارچوب های ارکستراسیون قابل حمل باشد. یکی از ارکستراتورهای پیش فرض پشتیبانی شده توسط TFX Apache Airflow است. این آزمایشگاه استفاده از Apache Airflow را برای ارکستراسیون خط لوله TFX نشان می دهد. Apache Airflow پلتفرمی برای نوشتن، برنامه‌ریزی و نظارت بر گردش‌های کاری برنامه‌ریزی شده است. TFX از Airflow برای نوشتن جریان های کاری به عنوان نمودارهای غیر چرخه ای جهت دار (DAG) از وظایف استفاده می کند. رابط کاربری غنی، تجسم خطوط لوله در حال اجرا در تولید، نظارت بر پیشرفت و عیب یابی مشکلات را در صورت نیاز آسان می کند. جریان کاری Apache Airflow به عنوان کد تعریف می شود. این باعث می‌شود که آنها قابل نگهداری، نسخه‌پذیرتر، آزمایش‌پذیرتر و مشارکت‌پذیرتر باشند. Apache Airflow برای خطوط لوله پردازش دسته ای مناسب است. سبک وزن و یادگیری آن آسان است.

در این مثال، می‌خواهیم یک خط لوله TFX را با تنظیم دستی Airflow اجرا کنیم.

دیگر ارکستراتورهای پیش فرض پشتیبانی شده توسط TFX Apache Beam و Kubeflow هستند. Apache Beam می تواند بر روی چندین باطن پردازش داده (Beam Ruunners) اجرا شود. Cloud Dataflow یکی از این پرتوهای است که می تواند برای اجرای خطوط لوله TFX استفاده شود. Apache Beam می تواند برای خطوط لوله استریم و پردازش دسته ای استفاده شود.
Kubeflow یک پلتفرم متن باز ML است که به ایجاد استقرار گردش کار یادگیری ماشین (ML) در Kubernetes ساده، قابل حمل و مقیاس پذیر اختصاص دارد. Kubeflow را می توان به عنوان یک ارکستراتور برای خطوط لوله TFFX زمانی که نیاز به استقرار در خوشه های Kubernetes استفاده کرد. علاوه بر این، شما همچنین می توانید از ارکستراتور سفارشی خود برای اجرای خط لوله TFX استفاده کنید.

اطلاعات بیشتر در مورد جریان هوا را اینجا بخوانید.

مجموعه داده تاکسی شیکاگو

taxi.jpg

chicago.png

شما از مجموعه داده سفرهای تاکسی منتشر شده توسط شهر شیکاگو استفاده خواهید کرد.

هدف مدل - طبقه بندی باینری

آیا مشتری بیشتر از 20 درصد انعام می دهد؟

پروژه Google Cloud را راه اندازی کنید

قبل از اینکه روی دکمه Start Lab کلیک کنید این دستورالعمل ها را بخوانید. آزمایشگاه ها زمان بندی شده اند و نمی توانید آنها را مکث کنید. تایمر که با کلیک روی Start Lab شروع می‌شود، نشان می‌دهد که منابع Google Cloud چه مدت در دسترس شما خواهد بود.

این آزمایشگاه عملی به شما امکان می دهد فعالیت های آزمایشگاهی را خودتان در یک محیط ابری واقعی انجام دهید، نه در یک محیط شبیه سازی یا نمایشی. این کار را با دادن اعتبارنامه های جدید و موقتی به شما انجام می دهد که از آنها برای ورود به سیستم و دسترسی به Google Cloud در طول مدت آزمایشگاه استفاده می کنید.

آنچه شما برای تکمیل این آزمایشگاه نیاز دارید ، به موارد زیر نیاز دارید:

  • دسترسی به یک مرورگر اینترنت استاندارد (مرورگر کروم توصیه می شود).
  • زمان تکمیل آزمایشگاه است.

نحوه راه‌اندازی آزمایشگاه و ورود به Google Cloud Console 1. روی دکمه Start Lab کلیک کنید. اگر نیاز به پرداخت هزینه آزمایشگاه دارید، یک پاپ آپ برای شما باز می شود تا روش پرداخت خود را انتخاب کنید. در سمت چپ یک پانل پر از اعتبارنامه های موقت است که باید برای این آزمایشگاه استفاده کنید.

qwiksetup1.png

  1. نام کاربری را کپی کنید و سپس روی Open Google Console کلیک کنید. آزمایشگاه منابع را می چرخاند و سپس برگه دیگری را باز می کند که صفحه ورود به سیستم را نشان می دهد.

qwiksetup2.png

نکته: برگه ها را در پنجره های جداگانه، کنار هم باز کنید.

qwiksetup3.png

  1. در صفحه ورود ، نام کاربری را که از پنل سمت چپ کپی کرده اید، جایگذاری کنید. سپس رمز عبور را کپی و پیست کنید.
  1. روی صفحات بعدی کلیک کنید:
  2. شرایط و ضوابط را بپذیرید.
  • گزینه های بازیابی یا احراز هویت دو مرحله ای را اضافه نکنید (زیرا این یک حساب موقت است).

  • برای آزمایش های رایگان ثبت نام نکنید.

پس از چند لحظه، Cloud Console در این تب باز می شود.

qwiksetup4.png

Cloud Shell را فعال کنید

Cloud Shell یک ماشین مجازی است که با ابزارهای توسعه بارگذاری شده است. این یک فهرست اصلی 5 گیگابایتی دائمی ارائه می دهد و در Google Cloud اجرا می شود. Cloud Shell دسترسی خط فرمان را به منابع Google Cloud شما فراهم می کند.

در Cloud Console، در نوار ابزار بالا سمت راست، روی دکمه Activate Cloud Shell کلیک کنید.

qwiksetup5.png

روی Continue کلیک کنید.

qwiksetup6.png

تهیه و اتصال به محیط چند لحظه طول می کشد. وقتی متصل هستید، قبلاً احراز هویت شده اید و پروژه روی _PROJECT ID شما تنظیم شده است. مثلا:

qwiksetup7.png

gcloud ابزار خط فرمان برای Google Cloud است. این برنامه از پیش روی Cloud Shell نصب شده است و از تکمیل تب پشتیبانی می کند.

با این دستور می توانید نام حساب فعال را لیست کنید:

gcloud auth list

(خروجی)

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net برای تنظیم حساب فعال، اجرا کنید: $ gcloud config set account ACCOUNT

شما می توانید ID پروژه را با این دستور فهرست کنید: gcloud config list project (خروجی)

[هسته] پروژه =

(خروجی نمونه)

پروژه [core] = qwiklabs-gcp-44776a13dea667a6

برای مستندات کامل gcloud نمای کلی ابزار خط فرمان gcloud را ببینید.

خدمات Google Cloud را فعال کنید

  1. در Cloud Shell، از gcloud برای فعال کردن خدمات مورد استفاده در آزمایشگاه استفاده کنید. gcloud services enable notebooks.googleapis.com

استقرار نمونه Vertex Notebook

  1. روی منوی ناوبری کلیک کنید و به Vertex AI و سپس Workbench بروید.

vertex-ai-workbench.png

  1. در صفحه نمونه‌های Notebook، روی New Notebook کلیک کنید.

  2. در منوی نمونه سفارشی، TensorFlow Enterprise را انتخاب کنید و نسخه TensorFlow Enterprise 2.x (با LTS) > Without GPU را انتخاب کنید.

vertex-notebook-create-2.png

  1. در گفتگوی نمونه نوت بوک جدید ، روی نماد مداد کلیک کنید تا ویژگی های نمونه را ویرایش کنید .

  2. برای نام نمونه ، یک نام برای نمونه خود وارد کنید.

  3. برای منطقه ، us-east1 و برای Zone ، منطقه ای را در منطقه انتخاب شده انتخاب کنید.

  4. به تنظیمات ماشین بروید و e2-standard-2 را برای نوع ماشین انتخاب کنید.

  5. فیلدهای باقیمانده را با پیش فرض خود رها کنید و روی ایجاد کلیک کنید.

پس از چند دقیقه، کنسول Vertex AI نام نمونه شما و به دنبال آن Open Jupyterlab نمایش داده می شود.

  1. روی Open JupyterLab کلیک کنید. پنجره JupyterLab در یک تب جدید باز می شود.

محیط را تنظیم کنید

مخزن آزمایشگاه را شبیه سازی کنید

در مرحله بعد، مخزن tfx را در نمونه JupyterLab خود کلون می کنید. 1. در JupyterLab، روی نماد ترمینال کلیک کنید تا ترمینال جدیدی باز شود.

توجه: در صورت درخواست، روی Cancel برای ساخت پیشنهاد شده کلیک کنید.

  1. برای کلون کردن مخزن tfx Github، دستور زیر را تایپ کرده و Enter را فشار دهید.
git clone https://github.com/tensorflow/tfx.git
  1. برای تایید اینکه مخزن را شبیه سازی کرده اید، روی دایرکتوری tfx دوبار کلیک کنید و تایید کنید که می توانید محتویات آن را ببینید.

repo-directory.png

وابستگی های آزمایشگاهی را نصب کنید

  1. برای رفتن به پوشه tfx/tfx/examples/airflow_workshop/taxi/setup/ دستور زیر را اجرا کنید، سپس ./setup_demo.sh را برای نصب وابستگی‌های آزمایشگاهی اجرا کنید:
cd ~/tfx/tfx/examples/airflow_workshop/taxi/setup/
./setup_demo.sh

کد بالا خواهد بود

  • بسته های مورد نیاز را نصب کنید.
  • یک پوشه airflow در پوشه خانه ایجاد کنید.
  • پوشه dags را از پوشه tfx/tfx/examples/airflow_workshop/taxi/setup/ در پوشه ~/airflow/ کپی کنید.
  • فایل csv را از tfx/tfx/examples/airflow_workshop/taxi/setup/data در ~/airflow/data کپی کنید.

airflow-home.png

پیکربندی سرور جریان هوا

قانون فایروال را برای دسترسی به سرور جریان هوا در مرورگر ایجاد کنید

  1. به <a href="https://console.cloud.google.com/networking/firewalls/list">https://console.cloud.google.com/networking/firewalls/list</a> بروید و مطمئن شوید نام پروژه به طور مناسب انتخاب شده است
  2. روی گزینه CREATE FIREWALL RULE در بالا کلیک کنید

firewall-rule.png

در گفتگوی ایجاد دیوار آتش ، مراحل ذکر شده در زیر را دنبال کنید.

  1. برای Name ، airflow-tfx قرار دهید.
  2. برای اولویت ، 1 را انتخاب کنید.
  3. برای اهداف ، All instances in the network را انتخاب کنید.
  4. برای محدوده منبع IPv4 ، 0.0.0.0/0 انتخاب کنید
  5. برای پروتکل ها و پورت ها روی tcp کلیک کنید و در کادر کنار tcp 7000 را وارد کنید.
  6. Create کلیک کنید.

create-firewall-dialog.png

سرور جریان هوا را از پوسته خود اجرا کنید

در پنجره Jupyter Lab Terminal، به فهرست اصلی تغییر دهید، دستور airflow users create را اجرا کنید تا یک کاربر مدیر برای Airflow ایجاد کنید:

cd
airflow users  create --role Admin --username admin --email admin --firstname admin --lastname admin --password admin

سپس دستور airflow webserver و airflow scheduler اجرا کنید تا سرور اجرا شود. پورت 7000 را انتخاب کنید زیرا از طریق فایروال مجاز است.

nohup airflow webserver -p 7000 &> webserver.out &
nohup airflow scheduler &> scheduler.out &

آی پی خارجی خود را دریافت کنید

  1. در Cloud Shell، از gcloud برای دریافت IP خارجی استفاده کنید.
gcloud compute instances list

gcloud-instance-ip.png

اجرای DAG/Pipeline

در یک مرورگر

یک مرورگر باز کنید و به http:// بروید : 7000

  • در صفحه ورود، نام کاربری ( admin ) و رمز عبور ( admin ) را که هنگام اجرای دستور airflow users create انتخاب کرده اید وارد کنید.

airflow-login.png

جریان هوا DAG ها را از فایل های منبع پایتون بارگیری می کند. هر فایل را می گیرد و اجرا می کند. سپس هر شیء DAG را از آن فایل بارگذاری می کند. همه فایل‌های .py که اشیاء DAG را تعریف می‌کنند به عنوان خطوط لوله در صفحه اصلی جریان هوا فهرست می‌شوند.

در این آموزش، Airflow پوشه ~/airflow/dags/ را برای اشیاء DAG اسکن می کند.

اگر ~/airflow/dags/taxi_pipeline.py باز کنید و به پایین بروید، می بینید که یک شی DAG را در متغیری به نام DAG ایجاد و ذخیره می کند. از این رو همانطور که در زیر نشان داده شده است به عنوان یک خط لوله در صفحه اصلی جریان هوا فهرست می شود:

dag-home-full.png

اگر روی تاکسی کلیک کنید، به نمای شبکه ای DAG هدایت می شوید. می توانید روی گزینه Graph در بالا کلیک کنید تا نمای نمودار DAG را دریافت کنید.

airflow-dag-graph.png

خط لوله تاکسی را فعال کنید

در صفحه اصلی می توانید دکمه هایی را مشاهده کنید که می توان از آنها برای تعامل با DAG استفاده کرد.

dag-buttons.png

در زیر هدر اقدامات ، روی دکمه ماشه کلیک کنید تا خط لوله راه اندازی شود.

در صفحه DAG تاکسی، از دکمه سمت راست استفاده کنید تا وضعیت نمای نموداری DAG را در حین اجرای خط لوله بازخوانی کنید. علاوه بر این، می‌توانید Auto Refresh را فعال کنید تا به Airflow دستور دهد که نمای نمودار را به‌صورت خودکار و در زمان تغییر وضعیت، به‌روزرسانی کند.

dag-button-refresh.png

همچنین می‌توانید از Airflow CLI در ترمینال برای فعال کردن و راه‌اندازی DAG‌های خود استفاده کنید:

# enable/disable
airflow pause <your DAG name>
airflow unpause <your DAG name>

# trigger
airflow trigger_dag <your DAG name>

در انتظار تکمیل خط لوله

بعد از اینکه خط لوله خود را راه اندازی کردید، در نمای DAGs، می توانید پیشرفت خط لوله خود را در حین اجرا تماشا کنید. همانطور که هر جزء اجرا می شود، رنگ طرح جزء در نمودار DAG برای نشان دادن وضعیت آن تغییر می کند. هنگامی که پردازش یک جزء به پایان رسید، طرح کلی سبز تیره می شود تا نشان دهد که کار انجام شده است.

dag-step7.png

درک اجزاء

اکنون اجزای این خط لوله را به تفصیل بررسی خواهیم کرد و به طور جداگانه به خروجی های تولید شده توسط هر مرحله در خط لوله نگاه خواهیم کرد.

  1. در JupyterLab به ~/tfx/tfx/examples/airflow_workshop/taxi/notebooks/ بروید

  2. notebook.ipynb را باز کنید. notebook-ipynb.png

  3. آزمایشگاه را در نوت بوک ادامه دهید و هر سلول را با کلیک کردن روی Run اجرا کنید ( run-button.png ) نماد در بالای صفحه نمایش. یا می توانید کد را در یک سلول با SHIFT + ENTER اجرا کنید.

روایت را بخوانید و مطمئن شوید که متوجه شده اید در هر سلول چه اتفاقی می افتد.