TFX এয়ারফ্লো টিউটোরিয়াল

ওভারভিউ

ওভারভিউ

এই টিউটোরিয়ালটি টেনসরফ্লো এক্সটেন্ডেড (TFX) এবং অর্কেস্ট্রেটর হিসাবে Apache Airflow ব্যবহার করে আপনার নিজস্ব মেশিন লার্নিং পাইপলাইন তৈরি করতে শিখতে সাহায্য করার জন্য ডিজাইন করা হয়েছে। এটি ভার্টেক্স এআই ওয়ার্কবেঞ্চে চলে, এবং জুপিটার ল্যাব পরিবেশে টিএফএক্স এবং টেনসরবোর্ডের সাথে একীকরণের পাশাপাশি টিএফএক্সের সাথে মিথস্ক্রিয়া দেখায়।

তুমি কি করবে?

আপনি শিখবেন কিভাবে TFX ব্যবহার করে একটি ML পাইপলাইন তৈরি করতে হয়

  • একটি TFX পাইপলাইন একটি নির্দেশিত অ্যাসাইক্লিক গ্রাফ, বা "DAG"। আমরা প্রায়শই পাইপলাইনগুলিকে ডিএজি হিসাবে উল্লেখ করব।
  • আপনি যখন একটি প্রোডাকশন ML অ্যাপ্লিকেশন স্থাপন করবেন তখন TFX পাইপলাইনগুলি উপযুক্ত
  • যখন ডেটাসেট বড় হয়, বা বড় হতে পারে তখন TFX পাইপলাইন উপযুক্ত
  • TFX পাইপলাইন উপযুক্ত যখন প্রশিক্ষণ/পরিষেবা ধারাবাহিকতা গুরুত্বপূর্ণ
  • TFX পাইপলাইন উপযুক্ত যখন অনুমানের জন্য সংস্করণ ব্যবস্থাপনা গুরুত্বপূর্ণ
  • ML উৎপাদনের জন্য Google TFX পাইপলাইন ব্যবহার করে

আরও জানতে দয়া করে TFX ব্যবহারকারীর নির্দেশিকা দেখুন।

আপনি একটি সাধারণ ML বিকাশ প্রক্রিয়া অনুসরণ করবেন:

  • আমাদের ডেটা গ্রহণ, বোঝা এবং পরিষ্কার করা
  • ফিচার ইঞ্জিনিয়ারিং
  • প্রশিক্ষণ
  • মডেল কর্মক্ষমতা বিশ্লেষণ
  • ফেটানো, ধুয়ে ফেলুন, পুনরাবৃত্তি করুন
  • উৎপাদনের জন্য প্রস্তুত

পাইপলাইন অর্কেস্ট্রেশনের জন্য অ্যাপাচি এয়ারফ্লো

TFX অর্কেস্ট্রেটররা পাইপলাইন দ্বারা সংজ্ঞায়িত নির্ভরতার উপর ভিত্তি করে TFX পাইপলাইনের উপাদানগুলি নির্ধারণের জন্য দায়ী। TFX একাধিক পরিবেশ এবং অর্কেস্ট্রেশন ফ্রেমওয়ার্কের জন্য পোর্টেবল করার জন্য ডিজাইন করা হয়েছে। TFX দ্বারা সমর্থিত ডিফল্ট অর্কেস্ট্রেটরগুলির মধ্যে একটি হল Apache Airflow । এই ল্যাবটি TFX পাইপলাইন অর্কেস্ট্রেশনের জন্য Apache Airflow এর ব্যবহারকে চিত্রিত করে। অ্যাপাচি এয়ারফ্লো হল প্রোগ্রাম্যাটিকভাবে লেখক, সময়সূচী এবং কর্মপ্রবাহ নিরীক্ষণ করার একটি প্ল্যাটফর্ম। TFX কার্যের নির্দেশিত অ্যাসাইক্লিক গ্রাফ (DAGs) হিসাবে লেখক ওয়ার্কফ্লোতে এয়ারফ্লো ব্যবহার করে। সমৃদ্ধ ইউজার ইন্টারফেস উত্পাদনে চলমান পাইপলাইনগুলিকে কল্পনা করা, অগ্রগতি নিরীক্ষণ করা এবং প্রয়োজনে সমস্যা সমাধান করা সহজ করে তোলে। অ্যাপাচি এয়ারফ্লো ওয়ার্কফ্লোগুলিকে কোড হিসাবে সংজ্ঞায়িত করা হয়। এটি তাদের আরও রক্ষণাবেক্ষণযোগ্য, সংস্করণযোগ্য, পরীক্ষাযোগ্য এবং সহযোগিতামূলক করে তোলে। Apache Airflow ব্যাচ প্রসেসিং পাইপলাইনের জন্য উপযুক্ত। এটা হালকা এবং শেখা সহজ.

এই উদাহরণে, আমরা ম্যানুয়ালি এয়ারফ্লো সেট আপ করে একটি উদাহরণে একটি TFX পাইপলাইন চালাতে যাচ্ছি।

TFX দ্বারা সমর্থিত অন্যান্য ডিফল্ট অর্কেস্ট্রেটর হল Apache Beam এবং Kubeflow। Apache Beam একাধিক ডেটা প্রসেসিং ব্যাকএন্ডে (Beam Ruunners) চলতে পারে। ক্লাউড ডেটাফ্লো হল এমন একটি বিম রানার যা টিএফএক্স পাইপলাইন চালানোর জন্য ব্যবহার করা যেতে পারে। Apache Beam স্ট্রিমিং এবং ব্যাচ প্রক্রিয়াকরণ পাইপলাইন উভয়ের জন্য ব্যবহার করা যেতে পারে।
Kubeflow হল একটি ওপেন সোর্স ML প্ল্যাটফর্ম যা Kubernetes-এ সহজ, বহনযোগ্য এবং স্কেলযোগ্য মেশিন লার্নিং (ML) ওয়ার্কফ্লো স্থাপনের জন্য নিবেদিত। Kubeflow টিএফএফএক্স পাইপলাইনগুলির জন্য একটি অর্কেস্ট্রেটর হিসাবে ব্যবহার করা যেতে পারে যখন সেগুলি Kubernetes ক্লাস্টারগুলিতে মোতায়েন করার প্রয়োজন হয়৷ এছাড়াও, আপনি একটি TFX পাইপলাইন চালানোর জন্য আপনার নিজস্ব কাস্টম অর্কেস্ট্রেটর ব্যবহার করতে পারেন।

এখানে বায়ুপ্রবাহ সম্পর্কে আরও পড়ুন।

শিকাগো ট্যাক্সি ডেটাসেট

taxi.jpg

chicago.png

আপনি শিকাগো সিটি দ্বারা প্রকাশিত ট্যাক্সি ট্রিপ ডেটাসেট ব্যবহার করবেন৷

মডেল লক্ষ্য - বাইনারি শ্রেণীবিভাগ

গ্রাহক কি 20% এর বেশি বা কম টিপ দেবেন?

গুগল ক্লাউড প্রজেক্ট সেটআপ করুন

স্টার্ট ল্যাব বোতামে ক্লিক করার আগে এই নির্দেশাবলী পড়ুন। ল্যাবগুলি সময় হয়ে গেছে এবং আপনি সেগুলি থামাতে পারবেন না৷ টাইমার, যা শুরু হয় যখন আপনি স্টার্ট ল্যাব ক্লিক করেন, দেখায় কতক্ষণ Google ক্লাউড সংস্থানগুলি আপনার জন্য উপলব্ধ করা হবে৷

এই হ্যান্ডস-অন ল্যাব আপনাকে একটি বাস্তব ক্লাউড পরিবেশে ল্যাব ক্রিয়াকলাপগুলি নিজে করতে দেয়, সিমুলেশন বা ডেমো পরিবেশে নয়। এটি আপনাকে নতুন, অস্থায়ী শংসাপত্র প্রদান করে যা আপনি সাইন ইন করতে এবং ল্যাবের সময়কালের জন্য Google ক্লাউড অ্যাক্সেস করতে ব্যবহার করেন।

এই ল্যাবটি সম্পূর্ণ করতে আপনার যা প্রয়োজন , আপনার প্রয়োজন:

  • একটি স্ট্যান্ডার্ড ইন্টারনেট ব্রাউজারে অ্যাক্সেস (Chrome ব্রাউজার প্রস্তাবিত)।
  • ল্যাব সম্পূর্ণ করার সময়।

কীভাবে আপনার ল্যাব শুরু করবেন এবং Google ক্লাউড কনসোলে সাইন ইন করবেন 1. স্টার্ট ল্যাব বোতামে ক্লিক করুন। আপনি যদি ল্যাবের জন্য অর্থপ্রদান করতে চান, তাহলে আপনার অর্থপ্রদানের পদ্ধতি নির্বাচন করার জন্য একটি পপ-আপ খোলে। বাম দিকে একটি প্যানেল রয়েছে যা অস্থায়ী শংসাপত্রগুলির সাথে রয়েছে যা আপনাকে এই ল্যাবের জন্য ব্যবহার করতে হবে৷

qwiksetup1.png

  1. ব্যবহারকারীর নাম অনুলিপি করুন, এবং তারপর Google কনসোল খুলুন ক্লিক করুন। ল্যাবটি রিসোর্স স্পিন করে, এবং তারপরে সাইন ইন পৃষ্ঠাটি দেখায় এমন আরেকটি ট্যাব খোলে।

qwiksetup2.png

টিপ: ট্যাবগুলিকে পাশাপাশি আলাদা উইন্ডোতে খুলুন।

qwiksetup3.png

  1. সাইন ইন পৃষ্ঠায়, আপনি বাম প্যানেল থেকে যে ব্যবহারকারীর নামটি অনুলিপি করেছেন সেটি আটকান৷ তারপর পাসওয়ার্ড কপি করে পেস্ট করুন।
  1. পরবর্তী পৃষ্ঠাগুলির মাধ্যমে ক্লিক করুন:
  2. শর্তাবলী গ্রহণ করুন.
  • পুনরুদ্ধারের বিকল্প বা দ্বি-ফ্যাক্টর প্রমাণীকরণ যোগ করবেন না (কারণ এটি একটি অস্থায়ী অ্যাকাউন্ট)।

  • বিনামূল্যে ট্রায়াল জন্য সাইন আপ করবেন না.

কয়েক মুহূর্ত পরে, এই ট্যাবে ক্লাউড কনসোল খোলে।

qwiksetup4.png

ক্লাউড শেল সক্রিয় করুন

ক্লাউড শেল একটি ভার্চুয়াল মেশিন যা ডেভেলপমেন্ট টুল দিয়ে লোড করা হয়। এটি একটি ক্রমাগত 5GB হোম ডিরেক্টরি অফার করে এবং Google ক্লাউডে চলে। ক্লাউড শেল আপনার Google ক্লাউড সংস্থানগুলিতে কমান্ড-লাইন অ্যাক্সেস সরবরাহ করে।

ক্লাউড কনসোলে, উপরের ডানদিকে টুলবারে, অ্যাক্টিভেট ক্লাউড শেল বোতামে ক্লিক করুন।

qwiksetup5.png

অবিরত ক্লিক করুন.

qwiksetup6.png

পরিবেশের সাথে সংযোগ স্থাপন এবং সংযোগ করতে কয়েক মুহূর্ত লাগে। যখন আপনি সংযুক্ত থাকবেন, আপনি ইতিমধ্যেই প্রমাণীকৃত হয়েছেন, এবং প্রকল্পটি আপনার _PROJECT আইডিতে সেট করা হয়েছে। উদাহরণ স্বরূপ:

qwiksetup7.png

gcloud হল Google ক্লাউডের জন্য কমান্ড-লাইন টুল। এটি ক্লাউড শেলে প্রি-ইনস্টল করা আছে এবং ট্যাব-সম্পূর্ণতা সমর্থন করে।

আপনি এই কমান্ডের সাথে সক্রিয় অ্যাকাউন্টের নাম তালিকাভুক্ত করতে পারেন:

gcloud auth list

(আউটপুট)

সক্রিয়: * অ্যাকাউন্ট: student-01-xxxxxxxxxxxx@qwiklabs.net সক্রিয় অ্যাকাউন্ট সেট করতে, চালান: $ gcloud config সেট অ্যাকাউন্ট ACCOUNT

আপনি এই কমান্ডের সাথে প্রকল্প আইডি তালিকাভুক্ত করতে পারেন: gcloud config list project (আউটপুট)

[কোর] প্রকল্প =

(উদাহরণ আউটপুট)

[core] প্রকল্প = qwiklabs-gcp-44776a13dea667a6

gcloud-এর সম্পূর্ণ ডকুমেন্টেশনের জন্য gcloud কমান্ড-লাইন টুল ওভারভিউ দেখুন।

Google ক্লাউড পরিষেবাগুলি সক্ষম করুন৷

  1. ক্লাউড শেলে, ল্যাবে ব্যবহৃত পরিষেবাগুলি সক্ষম করতে gcloud ব্যবহার করুন। gcloud services enable notebooks.googleapis.com

ভার্টেক্স নোটবুক উদাহরণ স্থাপন করুন

  1. নেভিগেশন মেনুতে ক্লিক করুন এবং Vertex AI , তারপর Workbench- এ নেভিগেট করুন।

vertex-ai-workbench.png

  1. নোটবুক ইনস্ট্যান্স পৃষ্ঠায়, নতুন নোটবুক-এ ক্লিক করুন।

  2. কাস্টমাইজ ইনস্ট্যান্স মেনুতে, টেনসরফ্লো এন্টারপ্রাইজ নির্বাচন করুন এবং টেনসরফ্লো এন্টারপ্রাইজ 2.x (এলটিএস সহ) > জিপিইউ ছাড়া সংস্করণ বেছে নিন।

vertex-notebook-create-2.png

  1. নতুন নোটবুক ইনস্ট্যান্স ডায়ালগে, ইনস্ট্যান্স বৈশিষ্ট্য সম্পাদনা করতে পেন্সিল আইকনে ক্লিক করুন।

  2. উদাহরণ নামের জন্য, আপনার উদাহরণের জন্য একটি নাম লিখুন।

  3. অঞ্চলের জন্য, us-east1 নির্বাচন করুন এবং অঞ্চলের জন্য, নির্বাচিত অঞ্চলের মধ্যে একটি অঞ্চল নির্বাচন করুন।

  4. মেশিন কনফিগারেশনে নিচে স্ক্রোল করুন এবং মেশিনের প্রকারের জন্য e2-standard-2 নির্বাচন করুন।

  5. অবশিষ্ট ক্ষেত্রগুলি তাদের ডিফল্ট সহ ছেড়ে দিন এবং তৈরি করুন ক্লিক করুন।

কয়েক মিনিটের পরে, Vertex AI কনসোল আপনার উদাহরণের নাম প্রদর্শন করবে, তার পরে ওপেন জুপিটারল্যাব

  1. JupyterLab খুলুন ক্লিক করুন। একটি জুপিটারল্যাব উইন্ডো একটি নতুন ট্যাবে খুলবে।

পরিবেশ সেটআপ করুন

ল্যাব রিপোজিটরি ক্লোন করুন

এরপরে আপনি আপনার JupyterLab উদাহরণে tfx সংগ্রহস্থল ক্লোন করবেন। 1. JupyterLab-এ, একটি নতুন টার্মিনাল খুলতে টার্মিনাল আইকনে ক্লিক করুন।

দ্রষ্টব্য: অনুরোধ করা হলে, প্রস্তাবিত বিল্ডের জন্য Cancel ক্লিক করুন।

  1. tfx Github সংগ্রহস্থল ক্লোন করতে, নিম্নলিখিত কমান্ড টাইপ করুন, এবং এন্টার টিপুন।
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/ ফোল্ডারে কপি করুন।
  • tfx/tfx/examples/airflow_workshop/taxi/setup/data থেকে ~/airflow/data তে csv ফাইলটি কপি করুন।

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. নামের জন্য, 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

আপনার শেল থেকে এয়ারফ্লো সার্ভার চালান

জুপিটার ল্যাব টার্মিনাল উইন্ডোতে, হোম ডিরেক্টরিতে পরিবর্তন করুন, এয়ারফ্লো-এর জন্য অ্যাডমিন ব্যবহারকারী তৈরি করতে airflow users create কমান্ড চালান:

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. ক্লাউড শেলে, এক্সটার্নাল আইপি পেতে gcloud ব্যবহার করুন।
gcloud compute instances list

gcloud-instance-ip.png

একটি DAG/পাইপলাইন চালানো

একটি ব্রাউজারে

একটি ব্রাউজার খুলুন এবং http:// এ যান :7000

  • লগইন পৃষ্ঠায়, airflow users create কমান্ড চালানোর সময় আপনি যে ব্যবহারকারীর নাম ( admin ) এবং পাসওয়ার্ড ( admin ) চয়ন করেছেন তা লিখুন।

airflow-login.png

এয়ারফ্লো পাইথন সোর্স ফাইল থেকে DAG লোড করে। এটি প্রতিটি ফাইল নেয় এবং এটি কার্যকর করে। তারপর এটি সেই ফাইল থেকে যেকোনো DAG অবজেক্ট লোড করে। DAG অবজেক্ট সংজ্ঞায়িত করে এমন সমস্ত .py ফাইল এয়ারফ্লো হোমপেজে পাইপলাইন হিসাবে তালিকাভুক্ত করা হবে।

এই টিউটোরিয়ালে, এয়ারফ্লো DAG অবজেক্টের জন্য ~/airflow/dags/ ফোল্ডার স্ক্যান করে।

আপনি যদি ~/airflow/dags/taxi_pipeline.py খোলেন এবং নীচে স্ক্রোল করেন, আপনি দেখতে পাবেন যে এটি DAG নামক একটি ভেরিয়েবলে একটি DAG অবজেক্ট তৈরি ও সংরক্ষণ করে। তাই এটি নীচে দেখানো হিসাবে বায়ুপ্রবাহ হোমপেজে একটি পাইপলাইন হিসাবে তালিকাভুক্ত করা হবে:

dag-home-full.png

আপনি ট্যাক্সিতে ক্লিক করলে, আপনাকে DAG-এর গ্রিড ভিউতে পুনঃনির্দেশিত করা হবে। আপনি DAG-এর গ্রাফ ভিউ পেতে উপরে Graph বিকল্পে ক্লিক করতে পারেন।

airflow-dag-graph.png

ট্যাক্সি পাইপলাইন ট্রিগার

হোমপেজে আপনি বোতামগুলি দেখতে পাবেন যা DAG-এর সাথে যোগাযোগ করতে ব্যবহার করা যেতে পারে।

dag-buttons.png

অ্যাকশন হেডারের অধীনে, পাইপলাইনটি ট্রিগার করতে ট্রিগার বোতামে ক্লিক করুন।

ট্যাক্সি DAG পৃষ্ঠায়, পাইপলাইন চলার সাথে সাথে DAG-এর গ্রাফ ভিউয়ের অবস্থা রিফ্রেশ করতে ডানদিকের বোতামটি ব্যবহার করুন। উপরন্তু, আপনি স্বয়ংক্রিয় রিফ্রেশ সক্ষম করতে পারেন যাতে এবং যখন অবস্থা পরিবর্তন হয় তখন গ্রাফ ভিউ স্বয়ংক্রিয়ভাবে রিফ্রেশ করার জন্য এয়ারফ্লোকে নির্দেশ দেয়।

dag-button-refresh.png

আপনি আপনার DAGs সক্ষম এবং ট্রিগার করতে টার্মিনালে এয়ারফ্লো CLI ব্যবহার করতে পারেন:

# 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 খুলুন। নোটবুক-ipynb.png

  3. নোটবুকে ল্যাব চালিয়ে যান এবং Run- এ ক্লিক করে প্রতিটি সেল চালান ( run-button.png ) স্ক্রিনের শীর্ষে আইকন। বিকল্পভাবে, আপনি SHIFT + ENTER দিয়ে একটি ঘরে কোডটি কার্যকর করতে পারেন।

বর্ণনাটি পড়ুন এবং নিশ্চিত করুন যে আপনি প্রতিটি ঘরে কী ঘটছে তা বুঝতে পেরেছেন।