ভার্টেক্স এআই ওয়ার্কবেঞ্চ: ট্রান্সফার লার্নিং এবং নোটবুক এক্সিকিউটর সহ একটি ইমেজ ক্লাসিফিকেশন মডেল তৈরি করুন

1. সংক্ষিপ্ত বিবরণ

এই ল্যাবে, আপনি শিখবেন কিভাবে Vertex AI Workbench দিয়ে নোটবুক এক্সিকিউশন কনফিগার এবং চালু করতে হয়।

তুমি যা শিখো

তুমি শিখবে কিভাবে:

  • একটি নোটবুকে প্যারামিটার ব্যবহার করুন
  • Vertex AI Workbench UI থেকে নোটবুক এক্সিকিউশন কনফিগার এবং চালু করুন

গুগল ক্লাউডে এই ল্যাবটি পরিচালনা করতে মোট খরচ প্রায় $2

2. ভার্টেক্স এআই-এর ভূমিকা

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

ভার্টেক্স এআই-তে এন্ড-টু-এন্ড এমএল ওয়ার্কফ্লো সমর্থন করার জন্য অনেকগুলি বিভিন্ন পণ্য রয়েছে। এই ল্যাবটি ভার্টেক্স এআই ওয়ার্কবেঞ্চের উপর ফোকাস করবে।

ভার্টেক্স এআই ওয়ার্কবেঞ্চ ব্যবহারকারীদের ডেটা পরিষেবা (যেমন ডেটাপ্রোক, ডেটাফ্লো, বিগকুয়েরি এবং ডেটাপ্লেক্স) এবং ভার্টেক্স এআই-এর সাথে গভীর একীকরণের মাধ্যমে দ্রুত এন্ড-টু-এন্ড নোটবুক-ভিত্তিক ওয়ার্কফ্লো তৈরি করতে সহায়তা করে। এটি ডেটা বিজ্ঞানীদের জিসিপি ডেটা পরিষেবার সাথে সংযোগ স্থাপন, ডেটাসেট বিশ্লেষণ, বিভিন্ন মডেলিং কৌশল নিয়ে পরীক্ষা-নিরীক্ষা, প্রশিক্ষিত মডেলগুলিকে উৎপাদনে স্থাপন এবং মডেল জীবনচক্রের মাধ্যমে এমএলওপি পরিচালনা করতে সক্ষম করে।

৩. কেস ওভারভিউ ব্যবহার করুন

এই ল্যাবে, আপনি TensorFlow Datasets থেকে DeepWeeds ডেটাসেটে একটি ইমেজ ক্লাসিফিকেশন মডেল প্রশিক্ষণের জন্য ট্রান্সফার লার্নিং ব্যবহার করবেন। আপনি TensorFlow Hub ব্যবহার করে বিভিন্ন মডেল আর্কিটেকচার, যেমন ResNet50 , Inception এবং MobileNet থেকে নেওয়া ফিচার ভেক্টরগুলি নিয়ে পরীক্ষা করবেন, যা ImageNet বেঞ্চমার্ক ডেটাসেটে প্রাক-প্রশিক্ষিত। Vertex AI Workbench UI এর মাধ্যমে নোটবুক এক্সিকিউটরকে কাজে লাগিয়ে, আপনি Vertex AI প্রশিক্ষণে কাজ শুরু করবেন যা এই প্রাক-প্রশিক্ষিত মডেলগুলি ব্যবহার করে এবং DeepWeeds ডেটাসেট থেকে ক্লাসগুলি সনাক্ত করার জন্য শেষ স্তরটিকে পুনরায় প্রশিক্ষণ দেবে।

৪. আপনার পরিবেশ ঠিক করুন

এই কোডল্যাবটি চালানোর জন্য আপনার বিলিং সক্ষম একটি Google ক্লাউড প্ল্যাটফর্ম প্রকল্পের প্রয়োজন হবে। একটি প্রকল্প তৈরি করতে, এখানে নির্দেশাবলী অনুসরণ করুন।

ধাপ ১: কম্পিউট ইঞ্জিন API সক্ষম করুন

কম্পিউট ইঞ্জিনে নেভিগেট করুন এবং যদি এটি ইতিমধ্যেই সক্রিয় না থাকে তবে সক্ষম করুন নির্বাচন করুন।

ধাপ ২: ভার্টেক্স এআই এপিআই সক্ষম করুন

আপনার ক্লাউড কনসোলের Vertex AI বিভাগে যান এবং Enable Vertex AI API এ ক্লিক করুন।

ভার্টেক্স এআই ড্যাশবোর্ড

ধাপ ৩: একটি ভার্টেক্স এআই ওয়ার্কবেঞ্চ ইনস্ট্যান্স তৈরি করুন

আপনার ক্লাউড কনসোলের ভার্টেক্স এআই বিভাগ থেকে, ওয়ার্কবেঞ্চে ক্লিক করুন:

ভার্টেক্স এআই মেনু

যদি Notebooks API ইতিমধ্যেই না থাকে, তাহলে তা সক্রিয় করুন।

নোটবুক_এপিআই

একবার সক্রিয় হয়ে গেলে, MANAGED NOTEBOOKS এ ক্লিক করুন:

নোটবুক_UI

তারপর NEW NOTEBOOK নির্বাচন করুন।

নতুন_নোটবুক

আপনার নোটবুকের একটি নাম দিন, এবং তারপর উন্নত সেটিংস এ ক্লিক করুন।

নোটবুক তৈরি করুন

অ্যাডভান্সড সেটিংসের অধীনে, নিষ্ক্রিয় শাটডাউন সক্ষম করুন এবং মিনিটের সংখ্যা 60 এ সেট করুন। এর অর্থ হল আপনার নোটবুক ব্যবহার না করার সময় স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যাবে যাতে আপনার অপ্রয়োজনীয় খরচ না হয়।

নিষ্ক্রিয়_সময়সীমা

আপনি অন্যান্য সমস্ত উন্নত সেটিংস যেমন আছে তেমন রেখে যেতে পারেন।

এরপর, তৈরি করুন এ ক্লিক করুন।

একবার ইনস্ট্যান্স তৈরি হয়ে গেলে, Open JupyterLab নির্বাচন করুন।

ওপেন_জুপিটারল্যাব

প্রথমবার যখন আপনি একটি নতুন উদাহরণ ব্যবহার করবেন, তখন আপনাকে প্রমাণীকরণ করতে বলা হবে।

প্রমাণীকরণ করা

ভার্টেক্স এআই ওয়ার্কবেঞ্চে একটি কম্পিউট সামঞ্জস্য স্তর রয়েছে যা আপনাকে একটি একক নোটবুক ইনস্ট্যান্স থেকে টেনসরফ্লো, পাইস্পার্ক, আর ইত্যাদির জন্য কার্নেল চালু করতে দেয়। প্রমাণীকরণের পরে, আপনি লঞ্চার থেকে যে ধরণের নোটবুক ব্যবহার করতে চান তা নির্বাচন করতে সক্ষম হবেন।

এই ল্যাবের জন্য, TensorFlow 2 কার্নেলটি নির্বাচন করুন।

tf_kernel সম্পর্কে

৫. প্রশিক্ষণ কোড লিখুন

ডিপউইডস ডেটাসেটে ১৭,৫০৯টি ছবি রয়েছে যা অস্ট্রেলিয়ার আটটি ভিন্ন প্রজাতির আগাছা ধারণ করে। এই বিভাগে, আপনি ডিপউইডস ডেটাসেট প্রিপ্রসেস করার জন্য কোড লিখবেন এবং টেনসরফ্লো হাব থেকে ডাউনলোড করা ফিচার ভেক্টর ব্যবহার করে একটি চিত্র শ্রেণিবিন্যাস মডেল তৈরি এবং প্রশিক্ষণ দেবেন।

আপনার নোটবুকের কোষগুলিতে নিম্নলিখিত কোড স্নিপেটগুলি অনুলিপি করতে হবে। কোষগুলি কার্যকর করা ঐচ্ছিক।

ধাপ ১: ডেটাসেট ডাউনলোড এবং প্রিপ্রসেস করুন

প্রথমে, DeepWeeds ডেটাসেটের সর্বশেষ সংস্করণটি নিশ্চিত করতে TensorFlow ডেটাসেটের নাইটলি সংস্করণটি ইনস্টল করুন।

!pip install tfds-nightly

তারপর, প্রয়োজনীয় লাইব্রেরিগুলি আমদানি করুন:

import tensorflow as tf
import tensorflow_datasets as tfds
import tensorflow_hub as hub

TensorFlow Datasets থেকে ডেটা ডাউনলোড করুন এবং ক্লাসের সংখ্যা এবং ডেটাসেটের আকার বের করুন।

data, info = tfds.load(name='deep_weeds', as_supervised=True, with_info=True)
NUM_CLASSES = info.features['label'].num_classes
DATASET_SIZE = info.splits['train'].num_examples

ছবির ডেটা ২৫৫ দ্বারা স্কেল করার জন্য একটি প্রিপ্রসেসিং ফাংশন সংজ্ঞায়িত করো।

def preprocess_data(image, label):
  image = tf.image.resize(image, (300,300))
  return tf.cast(image, tf.float32) / 255., label

ডিপওয়িডস ডেটাসেট ট্রেন/ভ্যালিডেশন স্প্লিটের সাথে আসে না। এটি শুধুমাত্র একটি ট্রেনিং ডেটাসেটের সাথে আসে। নীচের কোডে আপনি সেই ডেটার ৮০% প্রশিক্ষণের জন্য এবং বাকি ২০% বৈধতার জন্য ব্যবহার করবেন।

# Create train/validation splits

# Shuffle dataset
dataset = data['train'].shuffle(1000)

train_split = 0.8
val_split = 0.2
train_size = int(train_split * DATASET_SIZE)
val_size = int(val_split * DATASET_SIZE)

train_data = dataset.take(train_size)
train_data  = train_data.map(preprocess_data)
train_data  = train_data.batch(64)

validation_data = dataset.skip(train_size)
validation_data  = validation_data.map(preprocess_data)
validation_data  = validation_data.batch(64)

ধাপ ২: মডেল তৈরি করুন

এখন যেহেতু আপনি প্রশিক্ষণ এবং বৈধতা ডেটাসেট তৈরি করেছেন, আপনি আপনার মডেল তৈরি করতে প্রস্তুত। TensorFlow Hub ফিচার ভেক্টর সরবরাহ করে, যা উপরের শ্রেণীবিভাগ স্তর ছাড়াই প্রাক-প্রশিক্ষিত মডেল। আপনি hub.KerasLayer দিয়ে প্রাক-প্রশিক্ষিত মডেলটি মোড়ানোর মাধ্যমে একটি ফিচার এক্সট্র্যাক্টর তৈরি করবেন, যা একটি TensorFlow SavedModel কে Keras স্তর হিসাবে মোড়ানো হবে। তারপরে আপনি একটি ক্লাসিফিকেশন স্তর যুক্ত করবেন এবং Keras Sequenceal API ব্যবহার করে একটি মডেল তৈরি করবেন।

প্রথমে, feature_extractor_model প্যারামিটারটি সংজ্ঞায়িত করুন, যা আপনার মডেলের ভিত্তি হিসেবে ব্যবহার করা TensorFlow Hub বৈশিষ্ট্য ভেক্টরের নাম।

feature_extractor_model = "inception_v3"

এরপর, আপনি এই ঘরটিকে একটি প্যারামিটার ঘর বানাবেন, যা আপনাকে রানটাইমের সময় feature_extractor_model এর জন্য একটি মান পাস করার অনুমতি দেবে।

প্রথমে, ঘরটি নির্বাচন করুন এবং ডান প্যানেলে সম্পত্তি পরিদর্শকটিতে ক্লিক করুন।

সম্পত্তি_পরিদর্শক

ট্যাগ হল আপনার নোটবুকে মেটাডেটা যোগ করার একটি সহজ উপায়। Add Tag বক্সে "parameters" টাইপ করুন এবং Enter টিপুন। পরে আপনার এক্সিকিউশন কনফিগার করার সময়, আপনি বিভিন্ন মান পাস করবেন, এই ক্ষেত্রে TensorFlow Hub মডেল, যা আপনি পরীক্ষা করতে চান। মনে রাখবেন যে আপনাকে "parameters" শব্দটি টাইপ করতে হবে (এবং অন্য কোনও শব্দ নয়) কারণ এইভাবে নোটবুক এক্সিকিউটার জানে কোন কোষগুলিকে প্যারামিটারাইজ করতে হবে।

ট্যাগ যোগ করুন

আপনি আবার ডাবল গিয়ার আইকনে ক্লিক করে সম্পত্তি পরিদর্শকটি বন্ধ করতে পারেন।

একটি নতুন সেল তৈরি করুন এবং tf_hub_uri সংজ্ঞায়িত করুন, যেখানে আপনি আপনার নোটবুকের একটি নির্দিষ্ট এক্সিকিউশনের জন্য বেস মডেল হিসাবে যে পূর্ব-প্রশিক্ষিত মডেলটি ব্যবহার করতে চান তার নামে স্ট্রিং ইন্টারপোলেশন ব্যবহার করবেন। ডিফল্টরূপে, আপনি feature_extractor_model "inception_v3" তে সেট করেছেন, তবে অন্যান্য বৈধ মান হল "resnet_v2_50" অথবা "mobilenet_v1_100_224" । আপনি TensorFlow Hub ক্যাটালগে অতিরিক্ত বিকল্পগুলি অন্বেষণ করতে পারেন।

tf_hub_uri = f"https://tfhub.dev/google/imagenet/{feature_extractor_model}/feature_vector/5"

এরপর, hub.KerasLayer ব্যবহার করে ফিচার এক্সট্র্যাক্টর তৈরি করুন এবং উপরে সংজ্ঞায়িত tf_hub_uri পাস করুন। ভেরিয়েবলগুলিকে ফ্রিজ করার জন্য trainable=False আর্গুমেন্ট সেট করুন যাতে training শুধুমাত্র নতুন ক্লাসিফায়ার স্তরটি পরিবর্তন করে যা আপনি উপরে যোগ করবেন।

feature_extractor_layer = hub.KerasLayer(
    tf_hub_uri,
    trainable=False)

মডেলটি সম্পূর্ণ করার জন্য, ফিচার এক্সট্র্যাক্টর স্তরটি একটি tf.keras.Sequential মডেলে মুড়ে নিন এবং শ্রেণীবিভাগের জন্য একটি সম্পূর্ণ-সংযুক্ত স্তর যুক্ত করুন। এই শ্রেণীবিভাগের শিরোনামে ইউনিটের সংখ্যা ডেটাসেটের ক্লাসের সংখ্যার সমান হওয়া উচিত:

model = tf.keras.Sequential([
  feature_extractor_layer,
  tf.keras.layers.Dense(units=NUM_CLASSES)
])

সবশেষে, মডেলটি কম্পাইল করুন এবং ফিট করুন।

model.compile(
  optimizer=tf.keras.optimizers.Adam(),
  loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
  metrics=['acc'])

model.fit(train_data, validation_data=validation_data, epochs=3)

৬. নোটবুক চালান

নোটবুকের উপরে থাকা এক্সিকিউটর আইকনে ক্লিক করুন।

নির্বাহক

ধাপ ১: প্রশিক্ষণের কাজ কনফিগার করুন

তোমার এক্সিকিউশনের একটি নাম দাও এবং তোমার প্রোজেক্টে একটি স্টোরেজ বাকেট দাও।

এক্সিকিউটর_কনফিগ

মেশিনের ধরণটি 4 টি CPU, 15 GB RAM এ সেট করুন।

এবং 1টি NVIDIA GPU যোগ করুন।

পরিবেশটি TensorFlow Enterprise 2.6 (GPU) তে সেট করুন।

এককালীন সম্পাদন নির্বাচন করুন।

ধাপ ২: প্যারামিটার কনফিগার করুন

আপনার প্যারামিটার সেট করতে ADVANCED OPTIONS ড্রপ ডাউনে ক্লিক করুন। বাক্সে, feature_extractor_model=resnet_v2_50 টাইপ করুন। এটি inception_v3 কে ওভাররাইড করবে, যা নোটবুকে এই প্যারামিটারের জন্য আপনি যে ডিফল্ট মান সেট করেছেন, resnet_v2_50 দিয়ে।

উন্নত_বিকল্প

আপনি "ডিফল্ট পরিষেবা অ্যাকাউন্ট ব্যবহার করুন" বাক্সটি চেক করে রাখতে পারেন।

তারপর SUBMIT এ ক্লিক করুন।

ধাপ ৩: ফলাফল পরীক্ষা করুন

কনসোল UI-তে "Executions" ট্যাবে, আপনি আপনার নোটবুক এক্সিকিউশনের অবস্থা দেখতে পারবেন।

এক্সিকিউশন_ইউআই

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

ভার্টেক্স_ট্রেনিং

আপনার কাজ শেষ হয়ে গেলে, আপনি "RESULT দেখুন" এ ক্লিক করে আউটপুট নোটবুকটি দেখতে পারবেন।

ফলাফল দেখুন

আউটপুট নোটবুকে, আপনি দেখতে পাবেন যে feature_extractor_model এর মানটি রানটাইমে আপনার পাস করা মান দ্বারা ওভাররাইট করা হয়েছে।

প্যারাম_সেল

🎉 অভিনন্দন! 🎉

আপনি Vertex AI Workbench ব্যবহার করে শিখেছেন:

  • একটি নোটবুকে প্যারামিটার ব্যবহার করুন
  • Vertex AI Workbench UI থেকে নোটবুক এক্সিকিউশন কনফিগার এবং চালু করুন

ভার্টেক্স এআই-এর বিভিন্ন অংশ সম্পর্কে আরও জানতে, ডকুমেন্টেশনটি দেখুন।

৭. পরিষ্কার-পরিচ্ছন্নতা

ডিফল্টরূপে, পরিচালিত নোটবুকগুলি ১৮০ মিনিট নিষ্ক্রিয় থাকার পরে স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যায়। আপনি যদি ইনস্ট্যান্সটি ম্যানুয়ালি বন্ধ করতে চান, তাহলে কনসোলের Vertex AI Workbench বিভাগে "Stop" বোতামে ক্লিক করুন। আপনি যদি নোটবুকটি সম্পূর্ণরূপে মুছে ফেলতে চান, তাহলে "Delete" বোতামে ক্লিক করুন।

মুছে ফেলা

স্টোরেজ বাকেট মুছে ফেলার জন্য, আপনার ক্লাউড কনসোলের নেভিগেশন মেনু ব্যবহার করে, স্টোরেজ ব্রাউজ করুন, আপনার বাকেট নির্বাচন করুন এবং ডিলিট ক্লিক করুন:

স্টোরেজ মুছুন