نمای کلی
نمای کلی
این آموزش برای کمک به شما طراحی شده است که یاد بگیرید خطوط لوله یادگیری ماشین خود را با استفاده از 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 استفاده کنید.
اطلاعات بیشتر در مورد جریان هوا را اینجا بخوانید.
مجموعه داده تاکسی شیکاگو
شما از مجموعه داده سفرهای تاکسی منتشر شده توسط شهر شیکاگو استفاده خواهید کرد.
هدف مدل - طبقه بندی باینری
آیا مشتری بیشتر از 20 درصد انعام می دهد؟
پروژه Google Cloud را راه اندازی کنید
قبل از اینکه روی دکمه Start Lab کلیک کنید این دستورالعمل ها را بخوانید. آزمایشگاه ها زمان بندی شده اند و نمی توانید آنها را مکث کنید. تایمر که با کلیک روی Start Lab شروع میشود، نشان میدهد که منابع Google Cloud چه مدت در دسترس شما خواهد بود.
این آزمایشگاه عملی به شما امکان می دهد فعالیت های آزمایشگاهی را خودتان در یک محیط ابری واقعی انجام دهید، نه در یک محیط شبیه سازی یا نمایشی. این کار را با دادن اعتبارنامه های جدید و موقتی به شما انجام می دهد که از آنها برای ورود به سیستم و دسترسی به Google Cloud در طول مدت آزمایشگاه استفاده می کنید.
آنچه شما برای تکمیل این آزمایشگاه نیاز دارید ، به موارد زیر نیاز دارید:
- دسترسی به یک مرورگر اینترنت استاندارد (مرورگر کروم توصیه می شود).
- زمان تکمیل آزمایشگاه است.
نحوه راهاندازی آزمایشگاه و ورود به Google Cloud Console 1. روی دکمه Start Lab کلیک کنید. اگر نیاز به پرداخت هزینه آزمایشگاه دارید، یک پاپ آپ برای شما باز می شود تا روش پرداخت خود را انتخاب کنید. در سمت چپ یک پانل پر از اعتبارنامه های موقت است که باید برای این آزمایشگاه استفاده کنید.
- نام کاربری را کپی کنید و سپس روی Open Google Console کلیک کنید. آزمایشگاه منابع را می چرخاند و سپس برگه دیگری را باز می کند که صفحه ورود به سیستم را نشان می دهد.
نکته: برگه ها را در پنجره های جداگانه، کنار هم باز کنید.
- در صفحه ورود ، نام کاربری را که از پنل سمت چپ کپی کرده اید، جایگذاری کنید. سپس رمز عبور را کپی و پیست کنید.
- روی صفحات بعدی کلیک کنید:
- شرایط و ضوابط را بپذیرید.
گزینه های بازیابی یا احراز هویت دو مرحله ای را اضافه نکنید (زیرا این یک حساب موقت است).
برای آزمایش های رایگان ثبت نام نکنید.
پس از چند لحظه، Cloud Console در این تب باز می شود.
Cloud Shell را فعال کنید
Cloud Shell یک ماشین مجازی است که با ابزارهای توسعه بارگذاری شده است. این یک فهرست اصلی 5 گیگابایتی دائمی ارائه می دهد و در Google Cloud اجرا می شود. Cloud Shell دسترسی خط فرمان را به منابع Google Cloud شما فراهم می کند.
در Cloud Console، در نوار ابزار بالا سمت راست، روی دکمه Activate Cloud Shell کلیک کنید.
روی Continue کلیک کنید.
تهیه و اتصال به محیط چند لحظه طول می کشد. وقتی متصل هستید، قبلاً احراز هویت شده اید و پروژه روی _PROJECT ID شما تنظیم شده است. به عنوان مثال:
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 را فعال کنید
- در Cloud Shell، از gcloud برای فعال کردن خدمات مورد استفاده در آزمایشگاه استفاده کنید.
gcloud services enable notebooks.googleapis.com
استقرار نمونه Vertex Notebook
- روی منوی ناوبری کلیک کنید و به Vertex AI و سپس Workbench بروید.
در صفحه نمونههای Notebook، روی New Notebook کلیک کنید.
در منوی نمونه سفارشی، TensorFlow Enterprise را انتخاب کنید و نسخه TensorFlow Enterprise 2.x (با LTS) > Without GPU را انتخاب کنید.
در گفتگوی نمونه نوت بوک جدید ، روی نماد مداد کلیک کنید تا ویژگی های نمونه را ویرایش کنید .
برای نام نمونه ، یک نام برای نمونه خود وارد کنید.
برای منطقه ،
us-east1
و برای Zone ، منطقه ای را در منطقه انتخاب شده انتخاب کنید.به تنظیمات ماشین بروید و e2-standard-2 را برای نوع ماشین انتخاب کنید.
فیلدهای باقیمانده را با پیش فرض خود رها کنید و روی ایجاد کلیک کنید.
پس از چند دقیقه، کنسول Vertex AI نام نمونه شما و به دنبال آن Open Jupyterlab نمایش داده می شود.
- روی Open JupyterLab کلیک کنید. پنجره JupyterLab در یک تب جدید باز می شود.
محیط را تنظیم کنید
مخزن آزمایشگاه را شبیه سازی کنید
در مرحله بعد، مخزن tfx
را در نمونه JupyterLab خود کلون می کنید. 1. در JupyterLab، روی نماد ترمینال کلیک کنید تا ترمینال جدیدی باز شود.
Cancel
برای ساخت پیشنهاد شده کلیک کنید.
- برای کلون کردن مخزن
tfx
Github، دستور زیر را تایپ کرده و Enter را فشار دهید.
git clone https://github.com/tensorflow/tfx.git
- برای تایید اینکه مخزن را شبیه سازی کرده اید، روی دایرکتوری
tfx
دوبار کلیک کنید و تایید کنید که می توانید محتویات آن را ببینید.
وابستگی های آزمایشگاهی را نصب کنید
- برای رفتن به پوشه
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
کپی کنید.
پیکربندی سرور جریان هوا
قانون فایروال را برای دسترسی به سرور جریان هوا در مرورگر ایجاد کنید
- به
<a href="https://console.cloud.google.com/networking/firewalls/list">https://console.cloud.google.com/networking/firewalls/list</a>
بروید و مطمئن شوید نام پروژه به طور مناسب انتخاب شده است - روی گزینه
CREATE FIREWALL RULE
در بالا کلیک کنید
در گفتگوی ایجاد دیوار آتش ، مراحل ذکر شده در زیر را دنبال کنید.
- برای Name ،
airflow-tfx
را قرار دهید. - برای اولویت ،
1
انتخاب کنید. - برای اهداف ،
All instances in the network
را انتخاب کنید. - برای محدوده منبع IPv4 ،
0.0.0.0/0
انتخاب کنید - برای پروتکل ها و پورت ها روی
tcp
کلیک کنید و در کادر کنارtcp
7000
وارد کنید. - روی
Create
کلیک کنید.
سرور جریان هوا را از پوسته خود اجرا کنید
در پنجره 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 &
آی پی خارجی خود را دریافت کنید
- در Cloud Shell، از
gcloud
برای دریافت IP خارجی استفاده کنید.
gcloud compute instances list
اجرای DAG/Pipeline
در یک مرورگر
یک مرورگر باز کنید و به http:// بروید
- در صفحه ورود، نام کاربری (
admin
) و رمز عبور (admin
) را که هنگام اجرای دستورairflow users create
انتخاب کرده اید وارد کنید.
جریان هوا DAG ها را از فایل های منبع پایتون بارگیری می کند. هر فایل را می گیرد و اجرا می کند. سپس هر شیء DAG را از آن فایل بارگذاری می کند. همه فایلهای .py
که اشیاء DAG را تعریف میکنند به عنوان خطوط لوله در صفحه اصلی جریان هوا فهرست میشوند.
در این آموزش، Airflow پوشه ~/airflow/dags/
را برای اشیاء DAG اسکن می کند.
اگر ~/airflow/dags/taxi_pipeline.py
را باز کنید و به پایین بروید، می بینید که یک شی DAG را در متغیری به نام DAG
ایجاد و ذخیره می کند. از این رو همانطور که در زیر نشان داده شده است به عنوان یک خط لوله در صفحه اصلی جریان هوا فهرست می شود:
اگر روی تاکسی کلیک کنید، به نمای شبکه ای DAG هدایت می شوید. می توانید روی گزینه Graph
در بالا کلیک کنید تا نمای نمودار DAG را دریافت کنید.
خط لوله تاکسی را فعال کنید
در صفحه اصلی می توانید دکمه هایی را مشاهده کنید که می توان از آنها برای تعامل با DAG استفاده کرد.
در زیر هدر اقدامات ، روی دکمه ماشه کلیک کنید تا خط لوله راه اندازی شود.
در صفحه DAG تاکسی، از دکمه سمت راست استفاده کنید تا وضعیت نمای نموداری DAG را در حین اجرای خط لوله بازخوانی کنید. علاوه بر این، میتوانید Auto Refresh را فعال کنید تا به Airflow دستور دهد که نمای نمودار را بهصورت خودکار و در زمان تغییر وضعیت، بهروزرسانی کند.
همچنین میتوانید از Airflow CLI در ترمینال برای فعال کردن و راهاندازی DAGهای خود استفاده کنید:
# enable/disable
airflow pause <your DAG name>
airflow unpause <your DAG name>
# trigger
airflow trigger_dag <your DAG name>
در انتظار تکمیل خط لوله
بعد از اینکه خط لوله خود را راه اندازی کردید، در نمای DAGs، می توانید پیشرفت خط لوله خود را در حین اجرا تماشا کنید. همانطور که هر جزء اجرا می شود، رنگ طرح جزء در نمودار DAG برای نشان دادن وضعیت آن تغییر می کند. هنگامی که پردازش یک جزء به پایان رسید، طرح کلی سبز تیره می شود تا نشان دهد که کار انجام شده است.
درک اجزاء
اکنون اجزای این خط لوله را به تفصیل بررسی خواهیم کرد و به طور جداگانه به خروجی های تولید شده توسط هر مرحله در خط لوله نگاه خواهیم کرد.
در JupyterLab به
~/tfx/tfx/examples/airflow_workshop/taxi/notebooks/
برویدnotebook.ipynb را باز کنید.
آزمایشگاه را در نوت بوک ادامه دهید و هر سلول را با کلیک کردن روی Run اجرا کنید ( ) نماد در بالای صفحه نمایش. یا می توانید کد را در یک سلول با SHIFT + ENTER اجرا کنید.
روایت را بخوانید و مطمئن شوید که متوجه شده اید در هر سلول چه اتفاقی می افتد.