১. সংক্ষিপ্ত বিবরণ
এই ল্যাবে, আপনি একটি কাস্টম কন্টেইনারে কোড ব্যবহার করে Vertex AI-এর সাহায্যে একটি TensorFlow মডেলকে প্রশিক্ষণ দেবেন এবং পরিবেশন করবেন।
যদিও আমরা এখানে মডেল কোডের জন্য টেনসরফ্লো ব্যবহার করছি, আপনি সহজেই এটিকে অন্য কোনো ফ্রেমওয়ার্ক দিয়ে প্রতিস্থাপন করতে পারেন।
আপনি যা শিখবেন
আপনি শিখবেন কীভাবে:
- ভার্টেক্স ওয়ার্কবেঞ্চে মডেল প্রশিক্ষণ কোড তৈরি এবং কন্টেইনারাইজ করুন
- Vertex AI-তে একটি কাস্টম মডেল প্রশিক্ষণের কাজ জমা দিন
- আপনার প্রশিক্ষিত মডেলটি একটি এন্ডপয়েন্টে স্থাপন করুন এবং প্রেডিকশন পেতে সেই এন্ডপয়েন্টটি ব্যবহার করুন।
গুগল ক্লাউডে এই ল্যাবটি চালানোর মোট খরচ প্রায় ১ ডলার ।
২. ভার্টেক্স এআই-এর পরিচিতি
এই ল্যাবটি গুগল ক্লাউডে উপলব্ধ সর্বাধুনিক এআই প্রোডাক্টটি ব্যবহার করে। ভার্টেক্স এআই গুগল ক্লাউডের এমএল অফারিংগুলোকে একটি নির্বিঘ্ন ডেভেলপমেন্ট অভিজ্ঞতায় একীভূত করে। পূর্বে, অটোএমএল (AutoML) দিয়ে প্রশিক্ষিত মডেল এবং কাস্টম মডেলগুলো আলাদা সার্ভিসের মাধ্যমে অ্যাক্সেস করা যেত। নতুন অফারিংটি অন্যান্য নতুন প্রোডাক্টের সাথে উভয়কে একটি একক এপিআই-তে একত্রিত করেছে। আপনি আপনার বিদ্যমান প্রোজেক্টগুলোও ভার্টেক্স এআই-তে মাইগ্রেট করতে পারেন। আপনার কোনো মতামত থাকলে, অনুগ্রহ করে সাপোর্ট পেজটি দেখুন।
ভার্টেক্স এআই-এর এন্ড-টু-এন্ড এমএল ওয়ার্কফ্লো সমর্থন করার জন্য বিভিন্ন ধরনের পণ্য রয়েছে। এই ল্যাবটি নিচে উল্লেখিত পণ্যগুলোর উপর আলোকপাত করবে: ট্রেনিং, প্রেডিকশন এবং ওয়ার্কবেঞ্চ।

৩. আপনার পরিবেশ প্রস্তুত করুন
এই কোডল্যাবটি চালানোর জন্য আপনার বিলিং চালু করা একটি গুগল ক্লাউড প্ল্যাটফর্ম প্রজেক্ট প্রয়োজন হবে। প্রজেক্ট তৈরি করতে, এখানের নির্দেশাবলী অনুসরণ করুন।
ধাপ ১: কম্পিউট ইঞ্জিন এপিআই সক্রিয় করুন
Compute Engine- এ যান এবং যদি আগে থেকে সক্রিয় করা না থাকে তবে 'Enable' নির্বাচন করুন। আপনার নোটবুক ইনস্ট্যান্স তৈরি করার জন্য এটি প্রয়োজন হবে।
ধাপ ২: Vertex AI API সক্রিয় করুন
আপনার ক্লাউড কনসোলের Vertex AI বিভাগে যান এবং Enable Vertex AI API-তে ক্লিক করুন।

ধাপ ৩: কন্টেইনার রেজিস্ট্রি এপিআই সক্রিয় করুন
কন্টেইনার রেজিস্ট্রি- তে যান এবং যদি আগে থেকে সক্ষম করা না থাকে তবে তা নির্বাচন করুন। আপনার কাস্টম ট্রেনিং জবের জন্য একটি কন্টেইনার তৈরি করতে আপনি এটি ব্যবহার করবেন।
ধাপ ৪: একটি Vertex AI Workbench ইনস্ট্যান্স তৈরি করুন
আপনার ক্লাউড কনসোলের Vertex AI সেকশন থেকে Workbench-এ ক্লিক করুন:

সেখান থেকে, ব্যবহারকারী-পরিচালিত নোটবুকগুলোর মধ্যে, নতুন নোটবুক-এ ক্লিক করুন:

তারপর GPU ছাড়া TensorFlow Enterprise (LTS সহ) ইনস্ট্যান্স টাইপের সর্বশেষ সংস্করণটি নির্বাচন করুন:

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

mpg নামে একটি নতুন ডিরেক্টরি তৈরি করুন এবং তার ভেতরে যান:
mkdir mpg
cd mpg
ধাপ ১: একটি ডকারফাইল তৈরি করুন
আমাদের কোডকে কন্টেইনারাইজ করার প্রথম ধাপ হলো একটি ডকারফাইল তৈরি করা। আমাদের ডকারফাইলে আমরা ইমেজটি চালানোর জন্য প্রয়োজনীয় সমস্ত কমান্ড অন্তর্ভুক্ত করব। এটি আমাদের ব্যবহৃত সমস্ত লাইব্রেরি ইনস্টল করবে এবং আমাদের ট্রেনিং কোডের জন্য এন্ট্রি পয়েন্ট সেট আপ করবে। আপনার টার্মিনাল থেকে, একটি খালি ডকারফাইল তৈরি করুন:
touch Dockerfile
Dockerfile-টি খুলুন এবং এর মধ্যে নিম্নলিখিত বিষয়গুলো কপি করুন:
FROM gcr.io/deeplearning-platform-release/tf2-cpu.2-6
WORKDIR /
# Copies the trainer code to the docker image.
COPY trainer /trainer
# Sets up the entry point to invoke the trainer.
ENTRYPOINT ["python", "-m", "trainer.train"]
এই ডকারফাইলটি ডিপ লার্নিং কন্টেইনার টেনসরফ্লো এন্টারপ্রাইজ ২.৩ ডকার ইমেজ ব্যবহার করে। গুগল ক্লাউডের ডিপ লার্নিং কন্টেইনারগুলোতে অনেক প্রচলিত এমএল এবং ডেটা সায়েন্স ফ্রেমওয়ার্ক আগে থেকেই ইনস্টল করা থাকে। আমরা যেটি ব্যবহার করছি তাতে টিএফ এন্টারপ্রাইজ ২.৩, পান্ডাস, সাইকিট-লার্ন এবং অন্যান্য অন্তর্ভুক্ত রয়েছে। সেই ইমেজটি ডাউনলোড করার পর, এই ডকারফাইলটি আমাদের ট্রেনিং কোডের জন্য এন্ট্রি পয়েন্ট সেট আপ করে। আমরা এখনও এই ফাইলগুলো তৈরি করিনি – পরবর্তী ধাপে, আমরা আমাদের মডেলকে ট্রেনিং এবং এক্সপোর্ট করার জন্য কোড যোগ করব।
ধাপ ২: একটি ক্লাউড স্টোরেজ বাকেট তৈরি করুন
আমাদের ট্রেনিং জবে, আমরা আমাদের প্রশিক্ষিত TensorFlow মডেলটিকে একটি ক্লাউড স্টোরেজ বাকেটে এক্সপোর্ট করব। Vertex আমাদের এক্সপোর্ট করা মডেল অ্যাসেটগুলো পড়তে এবং মডেলটি ডিপ্লয় করতে এটি ব্যবহার করবে। আপনার টার্মিনাল থেকে, আপনার প্রোজেক্টের জন্য একটি এনভ ভ্যারিয়েবল নির্ধারণ করতে নিম্নলিখিত কমান্ডটি চালান, এবং অবশ্যই your-cloud-project এর জায়গায় আপনার প্রোজেক্টের আইডি বসাবেন:
PROJECT_ID='your-cloud-project'
এরপর, আপনার প্রোজেক্টে একটি নতুন বাকেট তৈরি করতে আপনার টার্মিনালে নিম্নলিখিত কমান্ডটি চালান। -l (লোকেশন) ফ্ল্যাগটি গুরুত্বপূর্ণ, কারণ এটি সেই একই অঞ্চলে হতে হবে যেখানে আপনি টিউটোরিয়ালের পরবর্তী অংশে একটি মডেল এন্ডপয়েন্ট ডেপ্লয় করবেন:
BUCKET_NAME="gs://${PROJECT_ID}-bucket"
gsutil mb -l us-central1 $BUCKET_NAME
ধাপ ৩: মডেল প্রশিক্ষণ কোড যোগ করুন
আপনার টার্মিনাল থেকে, আমাদের ট্রেনিং কোডের জন্য একটি ডিরেক্টরি এবং কোড যোগ করার জন্য একটি পাইথন ফাইল তৈরি করতে নিম্নলিখিত কমান্ডটি চালান:
mkdir trainer
touch trainer/train.py
আপনার mpg/ ডিরেক্টরিতে এখন নিম্নলিখিত বিষয়গুলো থাকা উচিত:
+ Dockerfile
+ trainer/
+ train.py
এরপরে, আপনার তৈরি করা train.py ফাইলটি খুলুন এবং নিচের কোডটি কপি করুন (এটি TensorFlow ডক্সের টিউটোরিয়াল থেকে নেওয়া)।
ফাইলের শুরুতে, পূর্ববর্তী ধাপে তৈরি করা স্টোরেজ বাকেটের নামটি দিয়ে BUCKET ভেরিয়েবলটি আপডেট করুন:
import numpy as np
import pandas as pd
import pathlib
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
print(tf.__version__)
"""## The Auto MPG dataset
The dataset is available from the [UCI Machine Learning Repository](https://archive.ics.uci.edu/ml/).
### Get the data
First download the dataset.
"""
dataset_path = keras.utils.get_file("auto-mpg.data", "http://archive.ics.uci.edu/ml/machine-learning-databases/auto-mpg/auto-mpg.data")
dataset_path
"""Import it using pandas"""
column_names = ['MPG','Cylinders','Displacement','Horsepower','Weight',
'Acceleration', 'Model Year', 'Origin']
dataset = pd.read_csv(dataset_path, names=column_names,
na_values = "?", comment='\t',
sep=" ", skipinitialspace=True)
dataset.tail()
# TODO: replace `your-gcs-bucket` with the name of the Storage bucket you created earlier
BUCKET = 'gs://your-gcs-bucket'
"""### Clean the data
The dataset contains a few unknown values.
"""
dataset.isna().sum()
"""To keep this initial tutorial simple drop those rows."""
dataset = dataset.dropna()
"""The `"Origin"` column is really categorical, not numeric. So convert that to a one-hot:"""
dataset['Origin'] = dataset['Origin'].map({1: 'USA', 2: 'Europe', 3: 'Japan'})
dataset = pd.get_dummies(dataset, prefix='', prefix_sep='')
dataset.tail()
"""### Split the data into train and test
Now split the dataset into a training set and a test set.
We will use the test set in the final evaluation of our model.
"""
train_dataset = dataset.sample(frac=0.8,random_state=0)
test_dataset = dataset.drop(train_dataset.index)
"""### Inspect the data
Have a quick look at the joint distribution of a few pairs of columns from the training set.
Also look at the overall statistics:
"""
train_stats = train_dataset.describe()
train_stats.pop("MPG")
train_stats = train_stats.transpose()
train_stats
"""### Split features from labels
Separate the target value, or "label", from the features. This label is the value that you will train the model to predict.
"""
train_labels = train_dataset.pop('MPG')
test_labels = test_dataset.pop('MPG')
"""### Normalize the data
Look again at the `train_stats` block above and note how different the ranges of each feature are.
It is good practice to normalize features that use different scales and ranges. Although the model *might* converge without feature normalization, it makes training more difficult, and it makes the resulting model dependent on the choice of units used in the input.
Note: Although we intentionally generate these statistics from only the training dataset, these statistics will also be used to normalize the test dataset. We need to do that to project the test dataset into the same distribution that the model has been trained on.
"""
def norm(x):
return (x - train_stats['mean']) / train_stats['std']
normed_train_data = norm(train_dataset)
normed_test_data = norm(test_dataset)
"""This normalized data is what we will use to train the model.
Caution: The statistics used to normalize the inputs here (mean and standard deviation) need to be applied to any other data that is fed to the model, along with the one-hot encoding that we did earlier. That includes the test set as well as live data when the model is used in production.
## The model
### Build the model
Let's build our model. Here, we'll use a `Sequential` model with two densely connected hidden layers, and an output layer that returns a single, continuous value. The model building steps are wrapped in a function, `build_model`, since we'll create a second model, later on.
"""
def build_model():
model = keras.Sequential([
layers.Dense(64, activation='relu', input_shape=[len(train_dataset.keys())]),
layers.Dense(64, activation='relu'),
layers.Dense(1)
])
optimizer = tf.keras.optimizers.RMSprop(0.001)
model.compile(loss='mse',
optimizer=optimizer,
metrics=['mae', 'mse'])
return model
model = build_model()
"""### Inspect the model
Use the `.summary` method to print a simple description of the model
"""
model.summary()
"""Now try out the model. Take a batch of `10` examples from the training data and call `model.predict` on it.
It seems to be working, and it produces a result of the expected shape and type.
### Train the model
Train the model for 1000 epochs, and record the training and validation accuracy in the `history` object.
Visualize the model's training progress using the stats stored in the `history` object.
This graph shows little improvement, or even degradation in the validation error after about 100 epochs. Let's update the `model.fit` call to automatically stop training when the validation score doesn't improve. We'll use an *EarlyStopping callback* that tests a training condition for every epoch. If a set amount of epochs elapses without showing improvement, then automatically stop the training.
You can learn more about this callback [here](https://www.tensorflow.org/api_docs/python/tf/keras/callbacks/EarlyStopping).
"""
model = build_model()
EPOCHS = 1000
# The patience parameter is the amount of epochs to check for improvement
early_stop = keras.callbacks.EarlyStopping(monitor='val_loss', patience=10)
early_history = model.fit(normed_train_data, train_labels,
epochs=EPOCHS, validation_split = 0.2,
callbacks=[early_stop])
# Export model and save to GCS
model.save(BUCKET + '/mpg/model')
ধাপ ৪: কন্টেইনারটি স্থানীয়ভাবে বিল্ড এবং টেস্ট করুন
আপনার টার্মিনাল থেকে, গুগল কন্টেইনার রেজিস্ট্রি-তে থাকা আপনার কন্টেইনার ইমেজের URI দিয়ে একটি ভেরিয়েবল নির্ধারণ করুন:
IMAGE_URI="gcr.io/$PROJECT_ID/mpg:v1"
এরপর, আপনার mpg ডিরেক্টরির রুট থেকে নিম্নলিখিত কমান্ডটি চালিয়ে কন্টেইনারটি বিল্ড করুন:
docker build ./ -t $IMAGE_URI
এটি সঠিকভাবে কাজ করছে কিনা তা নিশ্চিত করতে আপনার নোটবুক ইনস্ট্যান্সের মধ্যে কন্টেইনারটি চালান:
docker run $IMAGE_URI
মডেলটির প্রশিক্ষণ ১-২ মিনিটের মধ্যে শেষ হওয়া উচিত এবং এর ভ্যালিডেশন অ্যাকুরেসি প্রায় ৭২% হবে (সঠিক অ্যাকুরেসি ভিন্ন হতে পারে)। আপনার লোকাল সিস্টেমে কন্টেইনারটি চালানো শেষ হলে, সেটিকে গুগল কন্টেইনার রেজিস্ট্রি-তে পুশ করুন:
docker push $IMAGE_URI
আমাদের কন্টেইনারটি কন্টেইনার রেজিস্ট্রি-তে পুশ করার পর, আমরা এখন একটি কাস্টম মডেল ট্রেনিং জব শুরু করার জন্য প্রস্তুত।
৫. ভার্টেক্স এআই-তে একটি ট্রেনিং জব চালান।
ভার্টেক্স এআই আপনাকে মডেল প্রশিক্ষণের জন্য দুটি বিকল্প দেয়:
- অটোএমএল : ন্যূনতম পরিশ্রম ও এমএল দক্ষতা দিয়ে উন্নত মানের মডেল তৈরি করুন।
- কাস্টম প্রশিক্ষণ : গুগল ক্লাউডের আগে থেকে তৈরি কন্টেইনারগুলোর একটি ব্যবহার করে অথবা আপনার নিজের কন্টেইনার ব্যবহার করে ক্লাউডে আপনার কাস্টম প্রশিক্ষণ অ্যাপ্লিকেশনগুলো চালান।
এই ল্যাবে, আমরা গুগল কন্টেইনার রেজিস্ট্রি-তে আমাদের নিজস্ব কাস্টম কন্টেইনারের মাধ্যমে কাস্টম ট্রেনিং ব্যবহার করছি। শুরু করতে, আপনার ক্লাউড কনসোলের ভার্টেক্স (Vertex) বিভাগের মডেলস (Models) সেকশনে যান:

ধাপ ১: প্রশিক্ষণের কাজটি শুরু করুন।
আপনার ট্রেনিং জব এবং ডেপ্লয়েড মডেলের প্যারামিটারগুলো প্রবেশ করাতে ক্রিয়েট-এ ক্লিক করুন:
- ডেটাসেট-এর অধীনে, কোনো পরিচালিত ডেটাসেট নয় নির্বাচন করুন।
- তারপর আপনার প্রশিক্ষণ পদ্ধতি হিসেবে কাস্টম প্রশিক্ষণ (উন্নত) নির্বাচন করুন এবং চালিয়ে যান-এ ক্লিক করুন।
- চালিয়ে যান ক্লিক করুন
পরবর্তী ধাপে, 'Model name'-এর জায়গায় mpg (অথবা আপনার মডেলের জন্য পছন্দসই নাম) লিখুন। তারপর 'Custom container' নির্বাচন করুন।

কন্টেইনার ইমেজ টেক্সট বক্সে, ব্রাউজ-এ ক্লিক করুন এবং আপনি এইমাত্র কন্টেইনার রেজিস্ট্রি-তে আপলোড করা ডকার ইমেজটি খুঁজুন। বাকি ফিল্ডগুলো খালি রেখে কন্টিনিউ-তে ক্লিক করুন।
এই টিউটোরিয়ালে আমরা হাইপারপ্যারামিটার টিউনিং ব্যবহার করব না, তাই ‘Enable hyperparameter tuning’ বক্সটি আনচেক করে ‘Continue’ ক্লিক করুন।
কম্পিউট এবং প্রাইসিং- এ, নির্বাচিত অঞ্চলটি অপরিবর্তিত রাখুন এবং আপনার মেশিনের ধরন হিসেবে n1-standard-4 বেছে নিন:

অ্যাক্সিলারেটর ফিল্ডগুলো খালি রাখুন এবং 'Continue' নির্বাচন করুন। যেহেতু এই ডেমোর মডেলটি দ্রুত প্রশিক্ষিত হয়, তাই আমরা একটি ছোট মেশিন টাইপ ব্যবহার করছি।
Prediction container ধাপের অধীনে, Pre-built container নির্বাচন করুন এবং তারপর TensorFlow 2.6 নির্বাচন করুন।
প্রি-বিল্ট কন্টেইনারের ডিফল্ট সেটিংস অপরিবর্তিত রাখুন। 'Model directory'-এর অধীনে, 'mpg' সাবডিরেক্টরিসহ আপনার GCS বাকেটটি প্রবেশ করান। আপনার মডেল ট্রেনিং স্ক্রিপ্টে এটিই সেই পাথ, যেখান থেকে আপনি আপনার প্রশিক্ষিত মডেলটি এক্সপোর্ট করেন:

আপনার মডেলটি ডেপ্লয় করার সময় ভার্টেক্স এই লোকেশনটিতে খুঁজবে। এখন আপনি ট্রেনিংয়ের জন্য প্রস্তুত! ট্রেনিং জবটি শুরু করতে 'স্টার্ট ট্রেনিং'-এ ক্লিক করুন। আপনার কনসোলের 'ট্রেনিং' সেকশনে আপনি এইরকম কিছু দেখতে পাবেন:

৬. একটি মডেল এন্ডপয়েন্ট স্থাপন করুন
যখন আমরা আমাদের ট্রেনিং জব সেট আপ করি, তখন আমরা নির্দিষ্ট করে দিই যে আমাদের এক্সপোর্ট করা মডেল অ্যাসেটগুলো Vertex AI কোথায় খুঁজবে। আমাদের ট্রেনিং পাইপলাইনের অংশ হিসেবে, Vertex এই অ্যাসেট পাথের উপর ভিত্তি করে একটি মডেল রিসোর্স তৈরি করবে। মডেল রিসোর্সটি নিজে কোনো ডেপ্লয়েড মডেল নয়, কিন্তু একবার আপনার কাছে একটি মডেল থাকলে, আপনি এটিকে একটি এন্ডপয়েন্টে ডেপ্লয় করার জন্য প্রস্তুত। Vertex AI-তে মডেল এবং এন্ডপয়েন্ট সম্পর্কে আরও জানতে, ডকুমেন্টেশন দেখুন।
এই ধাপে আমরা আমাদের প্রশিক্ষিত মডেলের জন্য একটি এন্ডপয়েন্ট তৈরি করব। এটি ব্যবহার করে আমরা Vertex AI API-এর মাধ্যমে আমাদের মডেলের প্রেডিকশন পেতে পারি।
ধাপ ১: এন্ডপয়েন্ট স্থাপন করুন
আপনার ট্রেনিং জবটি সম্পন্ন হলে, আপনি আপনার কনসোলের মডেলস সেকশনে mpg (বা আপনি যে নাম দিয়েছেন) নামের একটি মডেল দেখতে পাবেন:

যখন আপনার ট্রেনিং জবটি চলেছিল, তখন ভার্টেক্স আপনার জন্য একটি মডেল রিসোর্স তৈরি করেছে। এই মডেলটি ব্যবহার করার জন্য, আপনাকে একটি এন্ডপয়েন্ট ডিপ্লয় করতে হবে। একটি মডেলের জন্য একাধিক এন্ডপয়েন্ট থাকতে পারে। মডেলটির উপর ক্লিক করুন এবং তারপরে 'Deploy to endpoint'-এ ক্লিক করুন।
'Create new endpoint' নির্বাচন করুন এবং v1-এর মতো একটি নাম দিন। Access-এর জন্য 'Standard' নির্বাচিত রাখুন এবং তারপর 'Continue'-তে ক্লিক করুন।
ট্র্যাফিক স্প্লিট ১০০-তে রাখুন এবং ন্যূনতম কম্পিউট নোড সংখ্যার জন্য ১ লিখুন। মেশিন টাইপের অধীনে, n1-standard-2 (অথবা আপনার পছন্দের যেকোনো মেশিন টাইপ) নির্বাচন করুন। বাকি ডিফল্টগুলো নির্বাচিত রাখুন এবং তারপর 'Continue ' ক্লিক করুন। আমরা এই মডেলের জন্য মনিটরিং চালু করব না, তাই এরপর এন্ডপয়েন্ট ডেপ্লয়মেন্ট শুরু করতে 'Deploy' ক্লিক করুন।
এন্ডপয়েন্টটি ডেপ্লয় করতে ১০-১৫ মিনিট সময় লাগবে এবং ডেপ্লয়মেন্ট সম্পন্ন হলে আপনি একটি ইমেল পাবেন। এন্ডপয়েন্টটির ডেপ্লয়মেন্ট শেষ হলে, আপনি নিম্নলিখিতটি দেখতে পাবেন, যা আপনার মডেল রিসোর্সের অধীনে ডেপ্লয় করা একটি এন্ডপয়েন্ট প্রদর্শন করে:

ধাপ ২: স্থাপন করা মডেলের পূর্বাভাস নিন।
আমরা ভার্টেক্স পাইথন এপিআই (Vertex Python API) ব্যবহার করে একটি পাইথন নোটবুক থেকে আমাদের প্রশিক্ষিত মডেলের প্রেডিকশনগুলো পাব। আপনার নোটবুক ইনস্ট্যান্সে ফিরে যান এবং লঞ্চার থেকে একটি পাইথন ৩ নোটবুক তৈরি করুন:

আপনার নোটবুকের একটি সেলে Vertex AI SDK ইনস্টল করতে নিম্নলিখিত কমান্ডটি চালান:
!pip3 install google-cloud-aiplatform --upgrade --user
এরপর, SDK ইম্পোর্ট করতে এবং আপনার সদ্য ডিপ্লয় করা এন্ডপয়েন্টটির একটি রেফারেন্স তৈরি করতে আপনার নোটবুকে একটি সেল যোগ করুন:
from google.cloud import aiplatform
endpoint = aiplatform.Endpoint(
endpoint_name="projects/YOUR-PROJECT-NUMBER/locations/us-central1/endpoints/YOUR-ENDPOINT-ID"
)
আপনাকে উপরের endpoint_name স্ট্রিং-এর দুটি মান আপনার প্রজেক্ট নম্বর এবং এন্ডপয়েন্ট দিয়ে প্রতিস্থাপন করতে হবে। আপনি আপনার প্রজেক্ট ড্যাশবোর্ডে গিয়ে 'Project Number' মানটি থেকে আপনার প্রজেক্ট নম্বরটি খুঁজে নিতে পারেন।
আপনি আপনার এন্ডপয়েন্ট আইডিটি কনসোলের এন্ডপয়েন্টস সেকশনে এখানে খুঁজে পাবেন:

অবশেষে, নিচের কোডটি একটি নতুন সেলে কপি করে রান করার মাধ্যমে আপনার এন্ডপয়েন্টে একটি প্রেডিকশন তৈরি করুন:
test_mpg = [1.4838871833555929,
1.8659883497083019,
2.234620276849616,
1.0187816540094903,
-2.530890710602246,
-1.6046416850441676,
-0.4651483719733302,
-0.4952254087173721,
0.7746763768735953]
response = endpoint.predict([test_mpg])
print('API response: ', response)
print('Predicted MPG: ', response.predictions[0][0])
এই উদাহরণটিতে ইতিমধ্যেই স্বাভাবিককৃত মান রয়েছে, যা আমাদের মডেলের প্রত্যাশিত বিন্যাস।
এই সেলটি রান করলে, আপনি প্রতি গ্যালনে প্রায় ১৬ মাইলের একটি পূর্বাভাস আউটপুট দেখতে পাবেন।
🎉 অভিনন্দন! 🎉
আপনি শিখেছেন কীভাবে ভার্টেক্স এআই ব্যবহার করে:
- একটি কাস্টম কন্টেইনারে ট্রেনিং কোড দিয়ে একটি মডেলকে প্রশিক্ষণ দিন। এই উদাহরণে আপনি একটি TensorFlow মডেল ব্যবহার করেছেন, কিন্তু আপনি কাস্টম কন্টেইনার ব্যবহার করে যেকোনো ফ্রেমওয়ার্ক দিয়ে তৈরি মডেলকে প্রশিক্ষণ দিতে পারেন।
- প্রশিক্ষণের জন্য ব্যবহৃত একই ওয়ার্কফ্লোর অংশ হিসেবে একটি প্রি-বিল্ট কন্টেইনার ব্যবহার করে একটি টেনসরফ্লো মডেল ডেপ্লয় করুন।
- একটি মডেল এন্ডপয়েন্ট তৈরি করুন এবং একটি পূর্বাভাস তৈরি করুন।
Vertex-এর বিভিন্ন অংশ সম্পর্কে আরও জানতে ডকুমেন্টেশন দেখুন।
৭. পরিচ্ছন্নতা
আপনি যদি এই ল্যাবে তৈরি করা নোটবুকটি ব্যবহার করা চালিয়ে যেতে চান, তবে ব্যবহার না করার সময় এটি বন্ধ করে রাখার পরামর্শ দেওয়া হচ্ছে। আপনার ক্লাউড কনসোলের ওয়ার্কবেঞ্চ UI থেকে, নোটবুকটি নির্বাচন করুন এবং তারপরে স্টপ (Stop) নির্বাচন করুন।
যদি আপনি নোটবুকটি সম্পূর্ণরূপে মুছে ফেলতে চান, তাহলে উপরের ডানদিকে থাকা ডিলিট বোতামটিতে ক্লিক করুন।
আপনার ডিপ্লয় করা এন্ডপয়েন্টটি ডিলিট করতে, আপনার Vertex AI কনসোলের Endpoints সেকশনে যান, আপনার তৈরি করা এন্ডপয়েন্টটিতে ক্লিক করুন, এবং তারপরে Undeploy model from endpoint সিলেক্ট করুন।

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