1. ওভারভিউ
এই ল্যাবে, আপনি শিখবেন কিভাবে Vertex AI Workbench-এর সাথে নোটবুক এক্সিকিউশন কনফিগার এবং চালু করতে হয়।
আপনি কি শিখুন
আপনি কিভাবে শিখবেন:
- একটি নোটবুকে পরামিতি ব্যবহার করুন
- Vertex AI Workbench UI থেকে নোটবুক এক্সিকিউশন কনফিগার এবং লঞ্চ করুন
Google ক্লাউডে এই ল্যাবটি চালানোর জন্য মোট খরচ প্রায় $2 ।
2. ভার্টেক্স এআই-এর ভূমিকা
এই ল্যাবটি Google ক্লাউডে উপলব্ধ নতুন AI পণ্য অফার ব্যবহার করে। Vertex AI Google ক্লাউড জুড়ে ML অফারগুলিকে একটি নিরবচ্ছিন্ন বিকাশের অভিজ্ঞতায় সংহত করে৷ পূর্বে, অটোএমএল এবং কাস্টম মডেলগুলির সাথে প্রশিক্ষিত মডেলগুলি পৃথক পরিষেবার মাধ্যমে অ্যাক্সেসযোগ্য ছিল। নতুন অফারটি অন্যান্য নতুন পণ্যের সাথে একটি একক API-এ উভয়কে একত্রিত করে। আপনি বিদ্যমান প্রকল্পগুলিকে Vertex AI-তে স্থানান্তর করতে পারেন। আপনার কোন প্রতিক্রিয়া থাকলে, অনুগ্রহ করে সমর্থন পৃষ্ঠাটি দেখুন।
Vertex AI এন্ড-টু-এন্ড ML ওয়ার্কফ্লো সমর্থন করার জন্য বিভিন্ন পণ্য অন্তর্ভুক্ত করে। এই ল্যাবটি ভার্টেক্স এআই ওয়ার্কবেঞ্চে ফোকাস করবে।
Vertex AI ওয়ার্কবেঞ্চ ব্যবহারকারীদের দ্রুত ডেটা পরিষেবাগুলির (যেমন Dataproc, Dataflow, BigQuery, এবং Dataplex) এবং Vertex AI-এর সাথে গভীর একীকরণের মাধ্যমে এন্ড-টু-এন্ড নোটবুক-ভিত্তিক ওয়ার্কফ্লো তৈরি করতে সাহায্য করে। এটি ডেটা বিজ্ঞানীদের GCP ডেটা পরিষেবাগুলির সাথে সংযোগ করতে, ডেটাসেটগুলি বিশ্লেষণ করতে, বিভিন্ন মডেলিং কৌশল নিয়ে পরীক্ষা করতে, প্রশিক্ষিত মডেলগুলিকে উত্পাদনে স্থাপন করতে এবং মডেল জীবনচক্রের মাধ্যমে MLOps পরিচালনা করতে সক্ষম করে।
3. কেস ওভারভিউ ব্যবহার করুন
এই ল্যাবে, আপনি টেনসরফ্লো ডেটাসেট থেকে DeepWeeds ডেটাসেটে একটি ইমেজ ক্লাসিফিকেশন মডেলকে প্রশিক্ষণ দিতে ট্রান্সফার লার্নিং ব্যবহার করবেন। আপনি TensorFlow Hub ব্যবহার করবেন বিভিন্ন মডেল আর্কিটেকচার থেকে এক্সট্র্যাক্ট করা বৈশিষ্ট্য ভেক্টর নিয়ে পরীক্ষা করার জন্য, যেমন ResNet50 , ইনসেপশন , এবং MobileNet , সমস্ত ইমেজনেট বেঞ্চমার্ক ডেটাসেটে প্রাক-প্রশিক্ষিত। Vertex AI Workbench UI এর মাধ্যমে নোটবুক এক্সিকিউটরকে কাজে লাগিয়ে, আপনি Vertex AI ট্রেনিং-এ কাজগুলি চালু করবেন যা এই প্রাক-প্রশিক্ষিত মডেলগুলি ব্যবহার করে এবং ডিপউইডস ডেটাসেট থেকে ক্লাসগুলি চিনতে শেষ স্তরটিকে পুনরায় প্রশিক্ষণ দেয়।
4. আপনার পরিবেশ সেট আপ করুন
এই কোডল্যাব চালানোর জন্য আপনার একটি Google ক্লাউড প্ল্যাটফর্ম প্রকল্পের প্রয়োজন হবে যাতে বিলিং সক্ষম থাকে৷ একটি প্রকল্প তৈরি করতে, এখানে নির্দেশাবলী অনুসরণ করুন।
ধাপ 1: Compute Engine API সক্ষম করুন
কম্পিউট ইঞ্জিনে নেভিগেট করুন এবং সক্ষম নির্বাচন করুন যদি এটি ইতিমধ্যে সক্ষম না থাকে।
ধাপ 2: Vertex AI API সক্ষম করুন
আপনার ক্লাউড কনসোলের Vertex AI বিভাগে নেভিগেট করুন এবং Vertex AI API সক্ষম করুন ক্লিক করুন।
ধাপ 3: একটি ভার্টেক্স এআই ওয়ার্কবেঞ্চ উদাহরণ তৈরি করুন
আপনার ক্লাউড কনসোলের ভার্টেক্স এআই বিভাগ থেকে, ওয়ার্কবেঞ্চে ক্লিক করুন:
নোটবুক API সক্রিয় করুন যদি এটি ইতিমধ্যে না থাকে।
একবার সক্রিয় হলে, ম্যানেজড নোটবুক ক্লিক করুন:
তারপর নতুন নোটবুক নির্বাচন করুন।
আপনার নোটবুকে একটি নাম দিন, এবং তারপর Advanced Settings এ ক্লিক করুন।
উন্নত সেটিংসের অধীনে, নিষ্ক্রিয় শাটডাউন সক্ষম করুন এবং মিনিটের সংখ্যা 60 এ সেট করুন। এর অর্থ হল আপনার নোটবুক ব্যবহার না করার সময় স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যাবে যাতে আপনার অপ্রয়োজনীয় খরচ না হয়।
আপনি অন্যান্য উন্নত সেটিংসের মতোই ছেড়ে যেতে পারেন।
পরবর্তী, তৈরি করুন ক্লিক করুন।
একবার উদাহরণ তৈরি হয়ে গেলে, JupyterLab খুলুন নির্বাচন করুন।
আপনি যখন প্রথমবার একটি নতুন উদাহরণ ব্যবহার করবেন, আপনাকে প্রমাণীকরণ করতে বলা হবে।
Vertex AI ওয়ার্কবেঞ্চের একটি কম্পিউট সামঞ্জস্যপূর্ণ স্তর রয়েছে যা আপনাকে টেনসরফ্লো, পাইস্পার্ক, আর, ইত্যাদির জন্য কার্নেলগুলি চালু করতে দেয়, সমস্ত একটি একক নোটবুক উদাহরণ থেকে। প্রমাণীকরণের পরে, আপনি লঞ্চার থেকে যে ধরনের নোটবুক ব্যবহার করতে চান তা নির্বাচন করতে সক্ষম হবেন৷
এই ল্যাবের জন্য, TensorFlow 2 কার্নেল নির্বাচন করুন।
5. প্রশিক্ষণ কোড লিখুন
ডিপউইডস ডেটাসেটে 17,509টি ছবি রয়েছে যা অস্ট্রেলিয়ার আটটি ভিন্ন আগাছা প্রজাতিকে ধারণ করে। এই বিভাগে, আপনি DeepWeeds ডেটাসেট প্রিপ্রসেস করার জন্য কোড লিখবেন এবং TensorFlow Hub থেকে ডাউনলোড করা ফিচার ভেক্টর ব্যবহার করে একটি ইমেজ ক্লাসিফিকেশন মডেল তৈরি ও প্রশিক্ষণ দেবেন।
আপনাকে আপনার নোটবুকের কক্ষগুলিতে নিম্নলিখিত কোড স্নিপেটগুলি অনুলিপি করতে হবে৷ কোষ নির্বাহ করা ঐচ্ছিক।
ধাপ 1: ডেটাসেট ডাউনলোড এবং প্রিপ্রসেস করুন
প্রথমে, আমরা DeepWeeds ডেটাসেটের সর্বশেষ সংস্করণটি দখল করছি তা নিশ্চিত করতে TensorFlow ডেটাসেটের রাতের সংস্করণ ইনস্টল করুন।
!pip install tfds-nightly
তারপরে, প্রয়োজনীয় লাইব্রেরি আমদানি করুন:
import tensorflow as tf
import tensorflow_datasets as tfds
import tensorflow_hub as hub
টেনসরফ্লো ডেটাসেট থেকে ডেটা ডাউনলোড করুন এবং ক্লাসের সংখ্যা এবং ডেটাসেটের আকার বের করুন।
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
255 দ্বারা চিত্র ডেটা স্কেল করার জন্য একটি প্রিপ্রসেসিং ফাংশন সংজ্ঞায়িত করুন।
def preprocess_data(image, label):
image = tf.image.resize(image, (300,300))
return tf.cast(image, tf.float32) / 255., label
DeepWeeds ডেটাসেট ট্রেন/বৈধকরণ বিভাজনের সাথে আসে না। এটি শুধুমাত্র একটি প্রশিক্ষণ ডেটাসেটের সাথে আসে। নীচের কোডে আপনি প্রশিক্ষণের জন্য সেই ডেটার 80% ব্যবহার করবেন এবং বাকি 20% বৈধতার জন্য ব্যবহার করবেন।
# 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)
ধাপ 2: মডেল তৈরি করুন
এখন আপনি প্রশিক্ষণ এবং বৈধতা ডেটাসেট তৈরি করেছেন, আপনি আপনার মডেল তৈরি করতে প্রস্তুত৷ TensorFlow Hub বৈশিষ্ট্য ভেক্টর প্রদান করে, যেগুলি শীর্ষ শ্রেণিবিন্যাসের স্তর ছাড়াই প্রাক-প্রশিক্ষিত মডেল। আপনি hub.KerasLayer
এর সাথে প্রাক-প্রশিক্ষিত মডেলটি মোড়ানোর মাধ্যমে একটি বৈশিষ্ট্য এক্সট্র্যাক্টর তৈরি করবেন, যা একটি কেরাস স্তর হিসাবে একটি টেনসরফ্লো সেভডমডেলকে মোড়ানো হয়। তারপরে আপনি একটি শ্রেণিবিন্যাস স্তর যুক্ত করবেন এবং কেরাস সিকোয়েন্সিয়াল API সহ একটি মডেল তৈরি করবেন।
প্রথমে, প্যারামিটারটি সংজ্ঞায়িত করুন feature_extractor_model
, যা TensorFlow হাব বৈশিষ্ট্য ভেক্টরের নাম যা আপনি আপনার মডেলের ভিত্তি হিসাবে ব্যবহার করবেন।
feature_extractor_model = "inception_v3"
এর পরে, আপনি এই ঘরটিকে একটি প্যারামিটার সেল তৈরি করবেন, যা আপনাকে রানটাইমে feature_extractor_model
জন্য একটি মান পাস করার অনুমতি দেবে।
প্রথমে, ঘরটি নির্বাচন করুন এবং ডান প্যানেলে সম্পত্তি পরিদর্শক-এ ক্লিক করুন।
ট্যাগ হল আপনার নোটবুকে মেটাডেটা যোগ করার একটি সহজ উপায়। অ্যাড ট্যাগ বক্সে "প্যারামিটার" টাইপ করুন এবং এন্টার টিপুন। পরে আপনার এক্সিকিউশন কনফিগার করার সময়, আপনি বিভিন্ন মান পাস করবেন, এই ক্ষেত্রে TensorFlow হাব মডেল, আপনি পরীক্ষা করতে চান। মনে রাখবেন যে আপনাকে অবশ্যই "প্যারামিটার" শব্দটি টাইপ করতে হবে (এবং অন্য কোন শব্দ নয়) কারণ এইভাবে নোটবুক নির্বাহক জানে কোন কোষগুলিকে প্যারামিটারাইজ করতে হবে৷
আপনি আবার ডাবল গিয়ার আইকনে ক্লিক করে সম্পত্তি পরিদর্শক বন্ধ করতে পারেন।
একটি নতুন সেল তৈরি করুন এবং tf_hub_uri
সংজ্ঞায়িত করুন, যেখানে আপনি আপনার নোটবুকের একটি নির্দিষ্ট সম্পাদনের জন্য বেস মডেল হিসাবে ব্যবহার করতে চান এমন প্রাক-প্রশিক্ষিত মডেলের নামে প্রতিস্থাপন করতে স্ট্রিং ইন্টারপোলেশন ব্যবহার করবেন। ডিফল্টরূপে, আপনি feature_extractor_model
"inception_v3"
এ সেট করেছেন, কিন্তু অন্যান্য বৈধ মান হল "resnet_v2_50"
বা "mobilenet_v1_100_224"
। আপনি টেনসরফ্লো হাব ক্যাটালগে অতিরিক্ত বিকল্পগুলি অন্বেষণ করতে পারেন৷
tf_hub_uri = f"https://tfhub.dev/google/imagenet/{feature_extractor_model}/feature_vector/5"
এর পরে, hub.KerasLayer
ব্যবহার করে বৈশিষ্ট্য এক্সট্র্যাক্টর তৈরি করুন এবং আপনি উপরে সংজ্ঞায়িত tf_hub_uri
এ পাস করুন। ভেরিয়েবলগুলিকে ফ্রিজ করার জন্য trainable=False
আর্গুমেন্ট সেট করুন যাতে ট্রেনিং শুধুমাত্র নতুন ক্লাসিফায়ার লেয়ারটিকে পরিবর্তন করে যা আপনি উপরে যোগ করবেন।
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)
6. নোটবুক চালান
নোটবুকের শীর্ষে এক্সিকিউটর আইকনে ক্লিক করুন।
ধাপ 1: প্রশিক্ষণের কাজ কনফিগার করুন
আপনার সম্পাদনের একটি নাম দিন এবং আপনার প্রকল্পে একটি স্টোরেজ বালতি প্রদান করুন।
মেশিনের ধরনটি 4 CPU, 15 GB RAM- তে সেট করুন।
এবং 1 NVIDIA GPU যোগ করুন।
TensorFlow Enterprise 2.6 (GPU) তে পরিবেশ সেট করুন।
ওয়ান-টাইম এক্সিকিউশন বেছে নিন।
ধাপ 2: পরামিতি কনফিগার করুন
আপনার প্যারামিটার সেট করতে অ্যাডভান্সড অপশন ড্রপ ডাউনে ক্লিক করুন। বক্সে, টাইপ করুন feature_extractor_model=resnet_v2_50
। এটি inception_v3
ওভাররাইড করবে, নোটবুকে এই প্যারামিটারের জন্য আপনি resnet_v2_50
এর সাথে সেট করেছেন ডিফল্ট মান।
আপনি ব্যবহার ডিফল্ট পরিষেবা অ্যাকাউন্ট বক্সে টিক চিহ্ন রেখে দিতে পারেন।
তারপর SUBMIT এ ক্লিক করুন
ধাপ 3: ফলাফল পরীক্ষা করুন
কনসোল UI-এর এক্সিকিউশন ট্যাবে, আপনি আপনার নোটবুক এক্সিকিউশনের স্থিতি দেখতে সক্ষম হবেন।
আপনি যদি এক্সিকিউশন নামের উপর ক্লিক করেন, তাহলে আপনাকে ভার্টেক্স এআই ট্রেনিং কাজে নিয়ে যাওয়া হবে যেখানে আপনার নোটবুক চলছে।
আপনার কাজ শেষ হলে, আপনি ফলাফল দেখুন ক্লিক করে আউটপুট নোটবুক দেখতে সক্ষম হবেন।
আউটপুট নোটবুকে, আপনি দেখতে পাবেন যে feature_extractor_model
মানটি রানটাইমে পাস করা মান দ্বারা ওভাররাইট করা হয়েছে।
🎉 অভিনন্দন! 🎉
আপনি শিখেছেন কিভাবে Vertex AI Workbench ব্যবহার করতে হয়:
- একটি নোটবুকে পরামিতি ব্যবহার করুন
- Vertex AI Workbench UI থেকে নোটবুক এক্সিকিউশন কনফিগার এবং লঞ্চ করুন
Vertex AI এর বিভিন্ন অংশ সম্পর্কে আরও জানতে, ডকুমেন্টেশন দেখুন।
7. পরিষ্কার করা
ডিফল্টরূপে, 180 মিনিটের নিষ্ক্রিয়তার পর স্বয়ংক্রিয়ভাবে ম্যানেজ করা নোটবুক বন্ধ হয়ে যায়। আপনি যদি দৃষ্টান্তটি ম্যানুয়ালি বন্ধ করতে চান, তাহলে কনসোলের Vertex AI Workbench বিভাগে স্টপ বোতামে ক্লিক করুন। আপনি যদি নোটবুকটি সম্পূর্ণরূপে মুছে ফেলতে চান তবে মুছুন বোতামটি ক্লিক করুন।
আপনার ক্লাউড কনসোলে নেভিগেশন মেনু ব্যবহার করে স্টোরেজ বাকেট মুছে ফেলতে, স্টোরেজ ব্রাউজ করুন, আপনার বালতি নির্বাচন করুন এবং মুছুন ক্লিক করুন: