1. ভূমিকা
Kubeflow হল Kubernetes- এর জন্য একটি মেশিন লার্নিং টুলকিট। প্রকল্পটি Kubernetes-এ সহজ, বহনযোগ্য এবং স্কেলযোগ্য মেশিন লার্নিং (ML) কর্মপ্রবাহের স্থাপনার জন্য নিবেদিত। লক্ষ্য হল বিভিন্ন পরিকাঠামোতে ML-এর জন্য সর্বোত্তম-প্রজাতির ওপেন-সোর্স সিস্টেম স্থাপন করার একটি সহজ উপায় প্রদান করা। |
একটি Kubeflow স্থাপনা দেখতে কেমন?
একটি Kubeflow স্থাপনা হল:
- পোর্টেবল - যেকোন কুবারনেটস ক্লাস্টারে কাজ করে, তা Google ক্লাউড প্ল্যাটফর্মে (GCP), প্রাঙ্গনে বা প্রদানকারী জুড়ে থাকে।
- মাপযোগ্য - অস্থির সম্পদ ব্যবহার করতে পারে এবং শুধুমাত্র কুবারনেটস ক্লাস্টারে বরাদ্দকৃত সম্পদের সংখ্যা দ্বারা সীমাবদ্ধ।
- কম্পোজেবল - অফলাইনে বা নিম্ন-মানের নেটওয়ার্কে কাজ করার জন্য পরিষেবা কর্মীদের সাথে উন্নত।
এটি একটি একক ইউনিট হিসাবে ঢিলেঢালাভাবে সংযুক্ত মাইক্রোসার্ভিসগুলিকে সংগঠিত করার একটি উপায় এবং সেগুলিকে বিভিন্ন স্থানে স্থাপন করা, তা ল্যাপটপ বা ক্লাউড যাই হোক না কেন।
এই কোডল্যাবটি আপনাকে MiniKF ব্যবহার করে আপনার নিজস্ব Kubeflow স্থাপনা তৈরি করতে এবং একটি Jupyter Notebook এর ভিতর থেকে একটি Kubeflow Pipelines ওয়ার্কফ্লো চালানোর মাধ্যমে নিয়ে যাবে।
আপনি কি নির্মাণ করবেন
এই কোডল্যাবে, আপনি কোনো CLI কমান্ড বা SDK ব্যবহার না করেই Kubeflow Pipelines সহ একটি জটিল ডেটা সায়েন্স পাইপলাইন তৈরি করবেন। আপনার কোন কুবারনেটস বা ডকার জ্ঞান থাকতে হবে না। সমাপ্তির পরে, আপনার পরিকাঠামোতে থাকবে:
- একটি MiniKF (Mini Kubeflow) VM যা স্বয়ংক্রিয়ভাবে ইনস্টল করে:
- কুবারনেটস (মিনিকুব ব্যবহার করে)
- কুবেফ্লো
- Kale , সাধারণ উদ্দেশ্য জুপিটার নোটবুককে কুবেফ্লো পাইপলাইন ওয়ার্কফ্লোতে রূপান্তর করার একটি টুল ( GitHub )
- ডেটা সংস্করণ এবং প্রজননযোগ্যতার জন্য Arrikto Rok
আপনি কি শিখবেন
- MiniKF এর সাথে কুবেফ্লো কীভাবে ইনস্টল করবেন
- কোন CLI কমান্ড বা SDK ব্যবহার না করে কীভাবে আপনার জুপিটার নোটবুকগুলিকে কুবেফ্লো পাইপলাইনে রূপান্তর করবেন
- একটি বোতামে ক্লিক করে একটি নোটবুকের ভিতর থেকে কুবেফ্লো পাইপলাইনগুলি কীভাবে চালাবেন
- একটি নোটবুকে এবং প্রতিটি পাইপলাইন ধাপে কীভাবে স্বয়ংক্রিয়ভাবে আপনার ডেটা সংস্করণ করবেন
আপনি কি প্রয়োজন হবে
- একটি সক্রিয় GCP প্রকল্প যার জন্য আপনার মালিকের অনুমতি রয়েছে৷
এটি একটি উন্নত কোডল্যাব যা কুবেফ্লোকে কেন্দ্র করে। আরও পটভূমি এবং প্ল্যাটফর্মের একটি ভূমিকার জন্য, কুবেফ্লো ডকুমেন্টেশনের ভূমিকা দেখুন। অ-প্রাসঙ্গিক ধারণা এবং কোড ব্লকগুলিকে চকচকে করা হয়েছে এবং আপনাকে কেবল অনুলিপি এবং পেস্ট করার জন্য সরবরাহ করা হয়েছে।
2. পরিবেশ সেট আপ করুন
আপনার GCP প্রকল্প আইডি এবং ক্লাস্টার নাম সেট করুন
আপনার প্রোজেক্ট আইডি খুঁজে পেতে, GCP কনসোলের হোম প্যানেলে যান, উপরের বামদিকে হ্যামবার্গার মেনুতে পাওয়া যায়। যদি স্ক্রীনটি খালি থাকে তবে একটি ড্যাশবোর্ড তৈরি করতে প্রম্পটে হ্যাঁ ক্লিক করুন।
যদি প্রকল্পটি ইতিমধ্যে নির্বাচিত না হয় তবে একটি প্রকল্প নির্বাচন করুন এ ক্লিক করুন:
এবং আপনার প্রকল্প নির্বাচন করুন. আপনার শুধুমাত্র একটি থাকা উচিত:
3. MiniKF ইনস্টল করুন
একটি কম্পিউট উদাহরণ তৈরি করুন
GCP মার্কেটপ্লেসে, "MiniKF" অনুসন্ধান করুন।
Arrikto দ্বারা MiniKF ভার্চুয়াল মেশিন নির্বাচন করুন।
লঞ্চ অন কম্পিউট ইঞ্জিন বোতামে ক্লিক করুন এবং আপনার প্রকল্প নির্বাচন করুন।
কনফিগার এবং স্থাপন উইন্ডোতে, আপনার MiniKF উদাহরণের জন্য একটি নাম চয়ন করুন এবং ডিফল্ট বিকল্পগুলি ছেড়ে দিন। তারপর Deploy বাটনে ক্লিক করুন।
MiniKF Compute দৃষ্টান্ত বুট করার জন্য অপেক্ষা করুন।
MiniKF এ লগ ইন করুন
MiniKF VM চালু হলে, SSH বোতামে ক্লিক করে সংযোগ করুন এবং লগইন করুন। minikf
কমান্ড চালানোর জন্য অন-স্ক্রীন নির্দেশাবলী অনুসরণ করুন, যা Minikube, Kubeflow এবং Rok-এর স্থাপনা শুরু করবে। এটি সম্পূর্ণ হতে কয়েক মিনিট সময় লাগবে।
কুবেফ্লোতে লগ ইন করুন
ইনস্টলেশন সম্পূর্ণ হলে এবং সমস্ত পড প্রস্তুত হলে, MiniKF ড্যাশবোর্ডে যান। MiniKF ব্যবহারকারীর নাম এবং পাসওয়ার্ড ব্যবহার করে Kubeflow এ লগ ইন করুন।
Chrome ব্যবহারকারীরা এই স্ক্রীনটি দেখতে পাবেন:
ফায়ারফক্স ব্যবহারকারীরা এই স্ক্রীনটি দেখতে পাবেন:
সাফারি ব্যবহারকারীরা এই স্ক্রীনটি দেখতে পাবেন:
Rok এ লগ ইন করুন
কুবেফ্লোতে লগ ইন করার পরে, হ্যামবার্গার আইকনে ক্লিক করে বাম মেনু খুলুন। স্ন্যাপশট স্টোরে নেভিগেট করুন এবং MiniKF ব্যবহারকারীর নাম এবং পাসওয়ার্ড ব্যবহার করে Rok-এ লগ ইন করুন।
অভিনন্দন! আপনি সফলভাবে GCP-তে MiniKF স্থাপন করেছেন! আপনি এখন নোটবুক তৈরি করতে পারেন, আপনার ML কোড লিখতে পারেন এবং Kubeflow Pipelines চালাতে পারেন। ডেটা সংস্করণ এবং প্রজননযোগ্যতার জন্য Rok ব্যবহার করুন।
4. আপনার নোটবুকের ভিতর থেকে একটি পাইপলাইন চালান
এই বিভাগ চলাকালীন, আপনি টাইটানিকের উদাহরণ চালাবেন, একটি কাগল প্রতিযোগিতা যা ভবিষ্যদ্বাণী করে যে কোন যাত্রীরা টাইটানিক জাহাজ ধ্বংস থেকে বেঁচে গেছে।
একটি নোটবুক সার্ভার তৈরি করুন
কুবেফ্লো কেন্দ্রীয় ড্যাশবোর্ডে নোটবুক সার্ভার লিঙ্কে নেভিগেট করুন।
নতুন সার্ভারে ক্লিক করুন।
আপনার নোটবুক সার্ভারের জন্য একটি নাম উল্লেখ করুন।
আপনি এই ছবিটি নির্বাচন করেছেন তা নিশ্চিত করুন:
gcr.io/arrikto-public/tensorflow-1.14.0-notebook-cpu:kubecon-workshop
5GB আকারের একটি নতুন, খালি ডেটা ভলিউম যুক্ত করুন এবং এটিকে ডেটা নাম দিন।
নোটবুক সার্ভার তৈরি করতে লঞ্চ ক্লিক করুন।
নোটবুক সার্ভার উপলব্ধ হলে, এটির সাথে সংযোগ করতে সংযোগ ক্লিক করুন৷
ডেটা এবং নোটবুক ডাউনলোড করুন
JupyterLab ল্যান্ডিং পৃষ্ঠার সাথে একটি নতুন ট্যাব খুলবে। JupyterLab এ একটি নতুন টার্মিনাল তৈরি করুন।
টার্মিনাল উইন্ডোতে, ডেটা ফোল্ডারে নেভিগেট করতে এই কমান্ডগুলি চালান এবং নোটবুক এবং ডেটা ডাউনলোড করুন যা আপনি ল্যাবের অবশিষ্টাংশের জন্য ব্যবহার করবেন।
cd data/ git clone -b kubecon-workshop https://github.com/kubeflow-kale/examples
এই সংগ্রহস্থলে ডেটা এবং টীকাযুক্ত নোটবুক সহ একাধিক কিউরেটেড উদাহরণ রয়েছে। সাইডবারে data/examples/titanic-ml-dataset/
ফোল্ডারে নেভিগেট করুন এবং নোটবুকটি খুলুন titanic_dataset_ml.ipynb
।
টাইটানিক চ্যালেঞ্জের এমএল কোড অন্বেষণ করুন
ধাপে ধাপে নোটবুক চালান। নোট করুন যে কোডটি ব্যর্থ হয়েছে কারণ একটি লাইব্রেরি অনুপস্থিত।
টার্মিনালে ফিরে যান এবং অনুপস্থিত লাইব্রেরি ইনস্টল করুন।
pip3 install --user seaborn
রিফ্রেশ আইকনে ক্লিক করে নোটবুক কার্নেল রিস্টার্ট করুন।
সঠিক লাইব্রেরি ইনস্টল করে আবার সেলটি চালান এবং এটি সফল হতে দেখুন।
আপনার নোটবুককে কুবেফ্লো পাইপলাইনে রূপান্তর করুন
বাম ফলকে Kubeflow আইকনে ক্লিক করে Kale সক্ষম করুন।
প্রতি-কোষ নির্ভরতা অন্বেষণ করুন। দেখুন কিভাবে একাধিক সেল একটি একক পাইপলাইন ধাপের অংশ হতে পারে এবং কিভাবে একটি পাইপলাইন ধাপ পূর্ববর্তী ধাপের উপর নির্ভর করতে পারে।
কম্পাইল এবং রান বোতামে ক্লিক করুন।
স্ন্যাপশটের অগ্রগতি দেখুন।
পাইপলাইন রানের অগ্রগতি দেখুন।
Kubeflow Pipelines UI এ যেতে এবং রান দেখতে লিঙ্কটিতে ক্লিক করুন।
এটি সম্পূর্ণ হওয়ার জন্য অপেক্ষা করুন।
অভিনন্দন! আপনি সবেমাত্র আপনার নোটবুক থেকে শুরু করে এন্ড-টু-এন্ড Kubeflow পাইপলাইন চালিয়েছেন!
5. ভলিউম স্ন্যাপশট সহ প্রজননযোগ্যতা
ফলাফল পরীক্ষা করুন
দ্বিতীয় থেকে শেষ পাইপলাইন ধাপের ফলাফলের জন্য লগগুলি দেখুন। লক্ষ্য করুন যে সমস্ত ভবিষ্যদ্বাণী 100% স্কোর দেখায়। একজন অভিজ্ঞ ডেটা সায়েন্টিস্ট অবিলম্বে এটি সন্দেহজনক বলে মনে করবেন। এটি একটি ভাল ইঙ্গিত যে আমাদের মডেলগুলি সাধারণীকরণ করছে না এবং পরিবর্তে প্রশিক্ষণ ডেটা সেটে অতিরিক্ত ফিটিং করছে৷ এটি সম্ভবত মডেলগুলির দ্বারা ব্যবহৃত ডেটার সাথে একটি সমস্যার কারণে হয়েছে৷
পূর্বের অবস্থা পুনরুত্পাদন
সৌভাগ্যবশত, Rok ডেটা ভার্সনিং এবং পুরো পরিবেশের পুনরুত্পাদনের যত্ন নেয় কারণ আপনি কম্পাইল এবং রান বোতামে ক্লিক করার সময় ছিল। এইভাবে, আপনার ডেটা এবং কোডের জন্য আপনার কাছে একটি টাইম মেশিন রয়েছে। সুতরাং আসুন মডেলগুলির একটিকে প্রশিক্ষণ দেওয়ার আগে পাইপলাইনের অবস্থা আবার শুরু করি এবং দেখুন কী চলছে। র্যান্ডমফরেস্ট ধাপে একবার দেখুন, তারপর আর্টিফ্যাক্টগুলিতে ক্লিক করুন।
মার্কডাউনের ধাপগুলি অনুসরণ করুন, যেমন সংশ্লিষ্ট লিঙ্কে ক্লিক করে Rok UI-তে স্ন্যাপশটটি দেখুন।
Rok URL কপি করুন।
নোটবুক সার্ভার লিঙ্কে নেভিগেট করুন।
নতুন সার্ভারে ক্লিক করুন।
আপনি পূর্বে কপি করা Rok URL পেস্ট করুন এবং অটোফিল বোতামে ক্লিক করুন।
আপনার নোটবুকের জন্য একটি নাম উল্লেখ করুন।
আপনি এই ছবিটি নির্বাচন করেছেন তা নিশ্চিত করুন:
gcr.io/arrikto-public/tensorflow-1.14.0-notebook-cpu:kubecon-workshop
নোটবুক সার্ভার তৈরি করতে লঞ্চ ক্লিক করুন।
নোটবুক সার্ভার উপলব্ধ হলে, এটির সাথে সংযোগ করতে সংযোগ ক্লিক করুন৷
নোটবুকটি আপনি যে পাইপলাইন ধাপটি তৈরি করেছেন তার সঠিক কক্ষে খোলে।
পটভূমিতে, ক্যালে সমস্ত লাইব্রেরি আমদানি করে এবং পূর্ববর্তী ধাপগুলি থেকে ভেরিয়েবলগুলি লোড করে নোটবুকের অবস্থা পুনরায় শুরু করেছে৷
পূর্বের অবস্থা ডিবাগ করুন
এই ঘরে একটি প্রিন্ট কমান্ড যোগ করুন:
print(acc_random_forest)
এলোমেলো বনকে পুনরায় প্রশিক্ষণ দিতে এবং স্কোর প্রিন্ট করতে Shift + Return টিপে সক্রিয় সেলটি চালান। এটা 100।
প্রশিক্ষণের তথ্যে অদ্ভুত কিছু আছে কিনা তা এখন দেখার সময়। এই সমস্যাটি অন্বেষণ এবং সমাধান করতে, পূর্ববর্তী ঘরটি নির্বাচন করে এবং প্লাস আইকন (+) ক্লিক করে র্যান্ডম ফরেস্ট মার্কডাউনের উপরে একটি ঘর যোগ করুন।
নিম্নলিখিত পাঠ্য যোগ করুন এবং প্রশিক্ষণ সেট মুদ্রণ করার জন্য ঘর চালান।
train_df
উফ! প্রশিক্ষণ লেবেল সহ কলাম ("বাঁচা") ভুলবশত ইনপুট বৈশিষ্ট্য হিসাবে অন্তর্ভুক্ত করা হয়েছে! মডেলটি "বেঁচে থাকা" বৈশিষ্ট্যের উপর ফোকাস করতে এবং ইনপুটকে দূষিত করে বাকিগুলিকে উপেক্ষা করতে শিখেছে। এই কলামটি মডেলের লক্ষ্যের সাথে হুবহু মেলে এবং ভবিষ্যদ্বাণী করার সময় উপস্থিত থাকে না, তাই মডেলটিকে অন্যান্য বৈশিষ্ট্যগুলি থেকে শিখতে দেওয়ার জন্য প্রশিক্ষণ ডেটাসেট থেকে এটি সরানো দরকার৷
একটি বাগ ফিক্স যোগ করুন
এই কলামটি সরাতে, এই কমান্ডটি যোগ করতে ঘরটি সম্পাদনা করুন:
train_df.drop('Survived', axis=1, inplace=True) train_df
Kale সক্ষম করুন এবং নিশ্চিত করুন যে সেল যেটি বেঁচে থাকা লেবেলগুলিকে সরিয়ে দেয় সেটি বৈশিষ্ট্য প্রকৌশলী পাইপলাইন ধাপের অংশ (এটির রূপরেখার রঙ একই হওয়া উচিত)৷
কম্পাইল এবং রান বোতামে ক্লিক করে আবার পাইপলাইনটি চালান।
Kubeflow Pipelines UI এ যেতে এবং রান দেখতে লিঙ্কটিতে ক্লিক করুন।
ফলাফলের ধাপ সম্পূর্ণ হওয়ার জন্য অপেক্ষা করুন এবং চূড়ান্ত ফলাফল দেখতে লগগুলি দেখুন। আপনি এখন বাস্তবসম্মত ভবিষ্যদ্বাণী স্কোর আছে!
6. পরিষ্কার করুন
MiniKF VM ধ্বংস করুন
GCP কনসোলে ডিপ্লোয়মেন্ট ম্যানেজার -এ নেভিগেট করুন এবং minikf-1
ডিপ্লয়মেন্ট মুছে দিন।
7. অভিনন্দন
অভিনন্দন, আপনি Kubeflow (MiniKF), Kale, এবং Rok ব্যবহার করে সফলভাবে একটি এন্ড-টু-এন্ড ডেটা সায়েন্স ওয়ার্কফ্লো পরিচালনা করেছেন!
এরপর কি?
কুবেফ্লো কমিউনিটিতে যোগ দিন:
- github.com/kubeflow
- কুবেফ্লো স্ল্যাক
- kubeflow-discuss@googlegroups.com
- মঙ্গলবার কমিউনিটি কল