1. ওভারভিউ
এই ল্যাবে, আপনি শিখবেন কিভাবে Vertex AI - Google ক্লাউডের সদ্য ঘোষিত পরিচালিত ML প্ল্যাটফর্ম - এন্ড-টু-এন্ড ML ওয়ার্কফ্লো তৈরি করতে ব্যবহার করতে হয়৷ আপনি কীভাবে কাঁচা ডেটা থেকে নিয়োজিত মডেলে যেতে হবে তা শিখবেন, এবং Vertex AI এর সাথে আপনার নিজস্ব ML প্রকল্পগুলি বিকাশ ও উত্পাদন করার জন্য এই ওয়ার্কশপটিকে প্রস্তুত রেখে দেবেন৷ এই ল্যাবে, আমরা ভার্টেক্স এআই-এর সাথে প্রশিক্ষণের জন্য কাস্টম কন্টেইনারগুলি প্রদর্শন করতে একটি কাস্টম ডকার ইমেজ তৈরি করতে ক্লাউড শেল ব্যবহার করছি।
যখন আমরা এখানে মডেল কোডের জন্য TensorFlow ব্যবহার করছি, আপনি সহজেই এটিকে অন্য ফ্রেমওয়ার্ক দিয়ে প্রতিস্থাপন করতে পারেন।
আপনি কি শিখুন
আপনি কিভাবে শিখবেন:
- ক্লাউড শেল ব্যবহার করে মডেল প্রশিক্ষণ কোড তৈরি করুন এবং ধারণ করুন
- Vertex AI-তে একটি কাস্টম মডেল প্রশিক্ষণ কাজ জমা দিন
- আপনার প্রশিক্ষিত মডেলকে একটি এন্ডপয়েন্টে স্থাপন করুন এবং ভবিষ্যদ্বাণী পেতে সেই এন্ডপয়েন্টটি ব্যবহার করুন
Google ক্লাউডে এই ল্যাবটি চালানোর জন্য মোট খরচ প্রায় $2 ।
2. ভার্টেক্স এআই-এর ভূমিকা
এই ল্যাবটি Google ক্লাউডে উপলব্ধ নতুন AI পণ্য অফার ব্যবহার করে। Vertex AI Google ক্লাউড জুড়ে ML অফারগুলিকে একটি নিরবচ্ছিন্ন বিকাশের অভিজ্ঞতায় সংহত করে৷ পূর্বে, অটোএমএল এবং কাস্টম মডেলগুলির সাথে প্রশিক্ষিত মডেলগুলি পৃথক পরিষেবার মাধ্যমে অ্যাক্সেসযোগ্য ছিল। নতুন অফারটি অন্যান্য নতুন পণ্যের সাথে একটি একক API-এ উভয়কে একত্রিত করে। আপনি বিদ্যমান প্রকল্পগুলিকে Vertex AI-তে স্থানান্তর করতে পারেন। আপনার কোন প্রতিক্রিয়া থাকলে, অনুগ্রহ করে সমর্থন পৃষ্ঠাটি দেখুন।
ML কর্মপ্রবাহের প্রতিটি পর্যায়ে আপনাকে সাহায্য করার জন্য Vertex-এ অনেকগুলি বিভিন্ন সরঞ্জাম রয়েছে, যেমন আপনি নীচের চিত্র থেকে দেখতে পাচ্ছেন। আমরা নীচে হাইলাইট করা ভার্টেক্স প্রশিক্ষণ এবং ভবিষ্যদ্বাণী ব্যবহার করার দিকে মনোনিবেশ করব।
3. আপনার পরিবেশ সেটআপ করুন
স্ব-গতিসম্পন্ন পরিবেশ সেটআপ
ক্লাউড কনসোলে সাইন ইন করুন এবং একটি নতুন প্রকল্প তৈরি করুন বা বিদ্যমান একটি পুনরায় ব্যবহার করুন৷ (আপনার যদি ইতিমধ্যেই একটি Gmail বা Google Workspace অ্যাকাউন্ট না থাকে, তাহলে আপনাকে অবশ্যই একটি তৈরি করতে হবে।)
প্রজেক্ট আইডিটি মনে রাখবেন, সমস্ত Google ক্লাউড প্রকল্প জুড়ে একটি অনন্য নাম (উপরের নামটি ইতিমধ্যে নেওয়া হয়েছে এবং আপনার জন্য কাজ করবে না, দুঃখিত!)।
এর পরে, Google ক্লাউড সংস্থানগুলি ব্যবহার করার জন্য আপনাকে ক্লাউড কনসোলে বিলিং সক্ষম করতে হবে৷
এই কোডল্যাবের মাধ্যমে চালানোর জন্য খুব বেশি খরচ করা উচিত নয়, যদি কিছু থাকে। "ক্লিনিং আপ" বিভাগে যে কোনও নির্দেশাবলী অনুসরণ করতে ভুলবেন না যা আপনাকে কীভাবে সংস্থানগুলি বন্ধ করতে হবে তা পরামর্শ দেয় যাতে আপনি এই টিউটোরিয়ালের বাইরে বিলিং করতে না পারেন৷ Google ক্লাউডের নতুন ব্যবহারকারীরা $300 USD বিনামূল্যের ট্রায়াল প্রোগ্রামের জন্য যোগ্য৷
ধাপ 1: ক্লাউড শেল শুরু করুন
এই ল্যাবে আপনি একটি ক্লাউড শেল সেশনে কাজ করতে যাচ্ছেন, যা Google-এর ক্লাউডে চলমান একটি ভার্চুয়াল মেশিন দ্বারা হোস্ট করা একটি কমান্ড ইন্টারপ্রেটার। আপনি আপনার নিজের কম্পিউটারে স্থানীয়ভাবে এই বিভাগটি সহজেই চালাতে পারেন, কিন্তু ক্লাউড শেল ব্যবহার করে প্রত্যেককে একটি সামঞ্জস্যপূর্ণ পরিবেশে একটি পুনরুত্পাদনযোগ্য অভিজ্ঞতার অ্যাক্সেস দেয়। ল্যাবের পরে, আপনার নিজের কম্পিউটারে এই বিভাগটি পুনরায় চেষ্টা করার জন্য আপনাকে স্বাগত জানাই৷
ক্লাউড শেল সক্রিয় করুন
ক্লাউড কনসোলের উপরের ডানদিকে, ক্লাউড শেল সক্রিয় করতে নীচের বোতামে ক্লিক করুন:
আপনি যদি আগে কখনও ক্লাউড শেল চালু না করে থাকেন, তাহলে আপনাকে একটি মধ্যবর্তী স্ক্রীন (ভাঁজের নীচে) উপস্থাপন করা হবে যা বর্ণনা করে। যদি এটি হয়, তবে চালিয়ে যান ক্লিক করুন (এবং আপনি এটি আর কখনও দেখতে পাবেন না)। এককালীন স্ক্রীনটি দেখতে কেমন তা এখানে রয়েছে:
ক্লাউড শেলের সাথে সংযোগ করতে এবং সংযোগ করতে এটির মাত্র কয়েক মুহূর্ত লাগবে৷
এই ভার্চুয়াল মেশিনটি আপনার প্রয়োজনীয় সমস্ত ডেভেলপমেন্ট টুল দিয়ে লোড করা হয়েছে। এটি একটি ক্রমাগত 5GB হোম ডিরেক্টরি অফার করে এবং Google ক্লাউডে চলে, যা নেটওয়ার্ক কর্মক্ষমতা এবং প্রমাণীকরণকে ব্যাপকভাবে উন্নত করে। এই কোডল্যাবে আপনার অনেক কাজ, যদি সব না হয়, শুধুমাত্র একটি ব্রাউজার বা আপনার Chromebook দিয়ে করা যেতে পারে।
একবার ক্লাউড শেলের সাথে সংযুক্ত হয়ে গেলে, আপনি দেখতে পাবেন যে আপনি ইতিমধ্যেই প্রমাণীকরণ করেছেন এবং প্রকল্পটি ইতিমধ্যে আপনার প্রকল্প আইডিতে সেট করা আছে।
আপনি প্রমাণীকৃত কিনা তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান:
gcloud auth list
কমান্ড আউটপুট
Credentialed Accounts ACTIVE ACCOUNT * <my_account>@<my_domain.com> To set the active account, run: $ gcloud config set account `ACCOUNT`
gcloud কমান্ড আপনার প্রকল্প সম্পর্কে জানে তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান:
gcloud config list project
কমান্ড আউটপুট
[core] project = <PROJECT_ID>
যদি এটি না হয়, আপনি এই কমান্ড দিয়ে এটি সেট করতে পারেন:
gcloud config set project <PROJECT_ID>
কমান্ড আউটপুট
Updated property [core/project].
ক্লাউড শেলের কিছু এনভায়রনমেন্ট ভেরিয়েবল রয়েছে, যার মধ্যে রয়েছে GOOGLE_CLOUD_PROJECT
যা আমাদের বর্তমান ক্লাউড প্রকল্পের নাম রয়েছে। আমরা এই ল্যাব জুড়ে বিভিন্ন জায়গায় এটি ব্যবহার করব। আপনি এটি চালানোর মাধ্যমে দেখতে পারেন:
echo $GOOGLE_CLOUD_PROJECT
ধাপ 2: APIs সক্ষম করুন
পরবর্তী ধাপে, আপনি দেখতে পাবেন যে এই পরিষেবাগুলি কোথায় প্রয়োজন (এবং কেন), তবে আপাতত, আপনার প্রকল্পটিকে কম্পিউট ইঞ্জিন, কন্টেইনার রেজিস্ট্রি এবং ভার্টেক্স এআই পরিষেবাগুলিতে অ্যাক্সেস দেওয়ার জন্য এই কমান্ডটি চালান:
gcloud services enable compute.googleapis.com \
containerregistry.googleapis.com \
aiplatform.googleapis.com
এটির অনুরূপ একটি সফল বার্তা তৈরি করা উচিত:
Operation "operations/acf.cc11852d-40af-47ad-9d59-477a12847c9e" finished successfully.
ধাপ 3: একটি ক্লাউড স্টোরেজ বালতি তৈরি করুন
Vertex AI-তে একটি প্রশিক্ষণের কাজ চালানোর জন্য, আমাদের সংরক্ষিত মডেল সম্পদগুলি সংরক্ষণ করার জন্য আমাদের একটি স্টোরেজ বাকেটের প্রয়োজন হবে৷ একটি বালতি তৈরি করতে আপনার ক্লাউড শেল টার্মিনালে নিম্নলিখিত কমান্ডগুলি চালান:
BUCKET_NAME=gs://$GOOGLE_CLOUD_PROJECT-bucket
gsutil mb -l us-central1 $BUCKET_NAME
ধাপ 4: উপনাম পাইথন 3
এই ল্যাবের কোডটি পাইথন 3 ব্যবহার করে৷ আপনি যখন এই ল্যাবে তৈরি করা স্ক্রিপ্টগুলি চালাবেন তখন আপনি পাইথন 3 ব্যবহার করছেন তা নিশ্চিত করতে, ক্লাউড শেলে নিম্নলিখিতগুলি চালিয়ে একটি উপনাম তৈরি করুন:
alias python=python3
এই ল্যাবে আমরা যে মডেলটি প্রশিক্ষণ দেব এবং পরিবেশন করব তা টেনসরফ্লো ডক্স থেকে এই টিউটোরিয়ালের উপর নির্মিত। টিউটোরিয়ালটি একটি গাড়ির জ্বালানী দক্ষতার পূর্বাভাস দিতে Kaggle থেকে অটো MPG ডেটাসেট ব্যবহার করে।
4. প্রশিক্ষণ কোড ধারণ করুন
আমরা আমাদের প্রশিক্ষণ কোডটি একটি ডকার কন্টেইনারে রেখে এবং এই কন্টেইনারটিকে Google কন্টেইনার রেজিস্ট্রিতে পুশ করে Vertex-এ এই প্রশিক্ষণের কাজটি জমা দেব। এই পদ্ধতি ব্যবহার করে, আমরা যে কোনও কাঠামোর সাথে তৈরি একটি মডেলকে প্রশিক্ষণ দিতে পারি।
ধাপ 1: ফাইল সেট আপ করুন
শুরু করতে, ক্লাউড শেলের টার্মিনাল থেকে, আমাদের ডকার কন্টেইনারের জন্য প্রয়োজনীয় ফাইলগুলি তৈরি করতে নিম্নলিখিত কমান্ডগুলি চালান:
mkdir mpg
cd mpg
touch Dockerfile
mkdir trainer
touch trainer/train.py
আপনার এখন একটি mpg/
ডিরেক্টরি থাকা উচিত যা নিচের মত দেখাচ্ছে:
+ Dockerfile
+ trainer/
+ train.py
এই ফাইলগুলি দেখতে এবং সম্পাদনা করতে, আমরা ক্লাউড শেলের অন্তর্নির্মিত কোড সম্পাদক ব্যবহার করব৷ আপনি ক্লাউড শেলের উপরের ডানদিকের মেনু বারের বোতামে ক্লিক করে সম্পাদক এবং টার্মিনালের মধ্যে পিছনে এবং পিছনে যেতে পারেন:
ধাপ 2: একটি ডকারফাইল তৈরি করুন
আমাদের কোড কন্টেইনারাইজ করতে আমরা প্রথমে একটি ডকারফাইল তৈরি করব। আমাদের ডকারফাইলে আমরা আমাদের ছবি চালানোর জন্য প্রয়োজনীয় সমস্ত কমান্ড অন্তর্ভুক্ত করব। এটি আমাদের ব্যবহার করা সমস্ত লাইব্রেরি ইনস্টল করবে এবং আমাদের প্রশিক্ষণ কোডের জন্য এন্ট্রি পয়েন্ট সেট আপ করবে।
ক্লাউড শেল ফাইল এডিটর থেকে, আপনার mpg/
ডিরেক্টরি খুলুন এবং তারপর ডকারফাইল খুলতে ডাবল ক্লিক করুন:
তারপর এই ফাইলে নিম্নলিখিত অনুলিপি করুন:
FROM gcr.io/deeplearning-platform-release/tf2-cpu.2-3
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"]
এই ডকারফাইলটি ডিপ লার্নিং কন্টেইনার টেনসরফ্লো এন্টারপ্রাইজ ২.৩ ডকার ইমেজ ব্যবহার করে। Google ক্লাউডে ডিপ লার্নিং কন্টেনারগুলি অনেক সাধারণ ML এবং ডেটা সায়েন্স ফ্রেমওয়ার্ক আগে থেকে ইনস্টল করা আছে। আমরা যেটি ব্যবহার করছি তার মধ্যে রয়েছে TF Enterprise 2.3, Pandas, Scikit-learn এবং অন্যান্য। সেই ছবিটি ডাউনলোড করার পরে, এই ডকারফাইলটি আমাদের প্রশিক্ষণ কোডের জন্য এন্ট্রিপয়েন্ট সেট আপ করে, যা আমরা পরবর্তী ধাপে যোগ করব।
ধাপ 3: মডেল প্রশিক্ষণ কোড যোগ করুন
ক্লাউড শেল সম্পাদক থেকে, এরপর train.py
ফাইলটি খুলুন এবং নীচের কোডটি অনুলিপি করুন (এটি TensorFlow ডক্সের টিউটোরিয়াল থেকে অভিযোজিত)।
# This will be replaced with your bucket name after running the `sed` command in the tutorial
BUCKET = "BUCKET_NAME"
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.
"""
"""Import it using pandas"""
dataset_path = "https://storage.googleapis.com/io-vertex-codelab/auto-mpg.csv"
dataset = pd.read_csv(dataset_path, na_values = "?")
dataset.tail()
"""### 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')
একবার আপনি mpg/trainer/train.py
ফাইলে উপরের কোডটি অনুলিপি করলে, আপনার ক্লাউড শেলের টার্মিনালে ফিরে যান এবং ফাইলটিতে আপনার নিজের বাকেটের নাম যোগ করতে নিম্নলিখিত কমান্ডটি চালান:
sed -i "s|BUCKET_NAME|$BUCKET_NAME|g" trainer/train.py
ধাপ 4: স্থানীয়ভাবে ধারকটি তৈরি করুন এবং পরীক্ষা করুন
আপনার টার্মিনাল থেকে, Google কন্টেইনার রেজিস্ট্রিতে আপনার কন্টেইনার ইমেজের URI-এর সাথে একটি পরিবর্তনশীল সংজ্ঞায়িত করতে নিম্নলিখিতটি চালান:
IMAGE_URI="gcr.io/$GOOGLE_CLOUD_PROJECT/mpg:v1"
তারপরে, আপনার mpg
ডিরেক্টরির রুট থেকে নিম্নলিখিতগুলি চালিয়ে ধারকটি তৈরি করুন:
docker build ./ -t $IMAGE_URI
একবার আপনি কন্টেইনারটি তৈরি করলে, এটিকে Google কন্টেইনার রেজিস্ট্রিতে পুশ করুন:
docker push $IMAGE_URI
আপনার ছবিটি কনটেইনার রেজিস্ট্রিতে ঠেলে দেওয়া হয়েছে তা যাচাই করতে, আপনি যখন আপনার কনসোলের কন্টেইনার রেজিস্ট্রি বিভাগে নেভিগেট করবেন তখন আপনাকে এইরকম কিছু দেখতে হবে:
আমাদের কন্টেইনারটি কনটেইনার রেজিস্ট্রিতে ঠেলে দিয়ে, আমরা এখন একটি কাস্টম মডেল প্রশিক্ষণের কাজ শুরু করতে প্রস্তুত।
5. Vertex AI-তে একটি প্রশিক্ষণের কাজ চালান
ভার্টেক্স আপনাকে প্রশিক্ষণ মডেলের জন্য দুটি বিকল্প দেয়:
- AutoML : ন্যূনতম প্রচেষ্টা এবং ML দক্ষতার সাথে উচ্চ-মানের মডেলগুলিকে প্রশিক্ষণ দিন।
- কাস্টম প্রশিক্ষণ : Google ক্লাউডের পূর্ব-নির্মিত কন্টেইনারগুলির একটি ব্যবহার করে ক্লাউডে আপনার কাস্টম প্রশিক্ষণ অ্যাপ্লিকেশনগুলি চালান বা আপনার নিজস্ব ব্যবহার করুন৷
এই ল্যাবে, আমরা Google কন্টেইনার রেজিস্ট্রিতে আমাদের নিজস্ব কাস্টম কন্টেইনারের মাধ্যমে কাস্টম প্রশিক্ষণ ব্যবহার করছি। শুরু করতে, আপনার ক্লাউড কনসোলের ভার্টেক্স বিভাগে প্রশিক্ষণ বিভাগে নেভিগেট করুন:
ধাপ 1: প্রশিক্ষণের কাজ শুরু করুন
আপনার প্রশিক্ষণের কাজ এবং স্থাপন করা মডেলের পরামিতি প্রবেশ করতে তৈরি করুন ক্লিক করুন:
- ডেটাসেটের অধীনে, পরিচালিত ডেটাসেট নেই নির্বাচন করুন
- তারপর আপনার প্রশিক্ষণ পদ্ধতি হিসাবে কাস্টম প্রশিক্ষণ (উন্নত) নির্বাচন করুন এবং চালিয়ে যান ক্লিক করুন।
- মডেল নামের জন্য
mpg
(বা আপনি আপনার মডেলকে যা বলতে চান) লিখুন - অবিরত ক্লিক করুন
ধারক সেটিংস ধাপে, কাস্টম ধারক নির্বাচন করুন:
প্রথম বাক্সে (কন্টেইনার ইমেজ), ব্রাউজ ক্লিক করুন এবং কনটেইনার রেজিস্ট্রিতে আপনি যে কন্টেইনারটি পুশ করেছেন সেটি খুঁজুন। এটি এই মত কিছু দেখা উচিত:
বাকি ক্ষেত্রগুলো ফাঁকা রেখে Continue এ ক্লিক করুন।
আমরা এই টিউটোরিয়ালে হাইপারপ্যারামিটার টিউনিং ব্যবহার করব না, তাই Enable hyperparameter টিউনিং বক্সটি চেক না করে রেখে Continue এ ক্লিক করুন।
কম্পিউট এবং মূল্য নির্ধারণে , নির্বাচিত অঞ্চলটিকে যেমন আছে তেমন ছেড়ে দিন এবং আপনার মেশিনের ধরন হিসাবে n1-স্ট্যান্ডার্ড-4 নির্বাচন করুন:
যেহেতু এই ডেমোর মডেলটি দ্রুত ট্রেনিং করে, আমরা একটি ছোট মেশিন ব্যবহার করছি।
ভবিষ্যদ্বাণী ধারক ধাপের অধীনে, কোন পূর্বাভাস ধারক নির্বাচন করুন:
6. একটি মডেল এন্ডপয়েন্ট স্থাপন করুন
এই ধাপে আমরা আমাদের প্রশিক্ষিত মডেলের জন্য একটি শেষ পয়েন্ট তৈরি করব। আমরা Vertex AI API-এর মাধ্যমে আমাদের মডেলের পূর্বাভাস পেতে এটি ব্যবহার করতে পারি। এটি করার জন্য, আমরা একটি পাবলিক GCS বালতিতে রপ্তানিকৃত প্রশিক্ষিত মডেল সম্পদের একটি সংস্করণ তৈরি করেছি ।
একটি প্রতিষ্ঠানে, মডেল তৈরির দায়িত্বে একটি দল বা ব্যক্তি এবং এটি স্থাপনের দায়িত্বে একটি ভিন্ন দল থাকা সাধারণ। আমরা এখানে যে ধাপগুলি অতিক্রম করব সেগুলি আপনাকে দেখাবে কিভাবে একটি মডেল নিতে হবে যা ইতিমধ্যেই প্রশিক্ষিত হয়েছে এবং ভবিষ্যদ্বাণীর জন্য এটি স্থাপন করতে হবে৷
এখানে আমরা Vertex AI SDK ব্যবহার করব একটি মডেল তৈরি করতে, এটিকে একটি এন্ডপয়েন্টে স্থাপন করতে এবং একটি ভবিষ্যদ্বাণী পেতে।
ধাপ 1: Vertex SDK ইনস্টল করুন
আপনার ক্লাউড শেল টার্মিনাল থেকে, ভার্টেক্স এআই এসডিকে ইনস্টল করতে নিম্নলিখিতটি চালান:
pip3 install google-cloud-aiplatform --upgrade --user
আমরা এই SDK ব্যবহার করতে পারি Vertex এর বিভিন্ন অংশের সাথে ইন্টারঅ্যাক্ট করতে।
ধাপ 2: মডেল তৈরি করুন এবং শেষ পয়েন্ট স্থাপন করুন
এরপরে আমরা একটি পাইথন ফাইল তৈরি করব এবং একটি মডেল রিসোর্স তৈরি করতে SDK ব্যবহার করব এবং এটি একটি এন্ডপয়েন্টে স্থাপন করব। ক্লাউড শেলের ফাইল সম্পাদক থেকে, ফাইল এবং তারপরে নতুন ফাইল নির্বাচন করুন:
deploy.py
ফাইলটির নাম দিন। আপনার সম্পাদকে এই ফাইলটি খুলুন এবং নিম্নলিখিত কোডটি অনুলিপি করুন:
from google.cloud import aiplatform
# Create a model resource from public model assets
model = aiplatform.Model.upload(
display_name="mpg-imported",
artifact_uri="gs://io-vertex-codelab/mpg-model/",
serving_container_image_uri="gcr.io/cloud-aiplatform/prediction/tf2-cpu.2-3:latest"
)
# Deploy the above model to an endpoint
endpoint = model.deploy(
machine_type="n1-standard-4"
)
এরপরে, ক্লাউড শেলের টার্মিনালে ফিরে যান, আপনার রুট ডির-এ সিডিতে ফিরে cd
এবং আপনার তৈরি করা এই পাইথন স্ক্রিপ্টটি চালান:
cd ..
python3 deploy.py | tee deploy-output.txt
রিসোর্স তৈরি হওয়ার সাথে সাথে আপনি আপনার টার্মিনালে লগ করা আপডেটগুলি দেখতে পাবেন। এটি চালাতে 10-15 মিনিট সময় লাগবে। এটি সঠিকভাবে কাজ করছে তা নিশ্চিত করতে, Vertex AI-তে আপনার কনসোলের মডেল বিভাগে নেভিগেট করুন:
mgp-imported- এ ক্লিক করুন এবং সেই মডেলটি তৈরি হওয়ার জন্য আপনার শেষ পয়েন্ট দেখতে হবে:
আপনার ক্লাউড শেল টার্মিনালে, আপনার এন্ডপয়েন্ট ডিপ্লোয় সম্পূর্ণ হলে আপনি নিম্নলিখিত লগের মতো কিছু দেখতে পাবেন:
Endpoint model deployed. Resource name: projects/your-project-id/locations/us-central1/endpoints/your-endpoint-id
আপনার নিয়োজিত এন্ডোপিন্টের পূর্বাভাস পেতে আপনি পরবর্তী ধাপে এটি ব্যবহার করবেন।
ধাপ 3: স্থাপন করা শেষ পয়েন্টে ভবিষ্যদ্বাণী পান
আপনার ক্লাউড শেল সম্পাদকে, predict.py
নামে একটি নতুন ফাইল তৈরি করুন :
predict.py
খুলুন এবং এতে নিম্নলিখিত কোড পেস্ট করুন:
from google.cloud import aiplatform
endpoint = aiplatform.Endpoint(
endpoint_name="ENDPOINT_STRING"
)
# A test example we'll send to our model for prediction
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])
এরপর, আপনার টার্মিনালে ফিরে যান এবং আপনার নিজের শেষ পয়েন্টের সাথে পূর্বাভাস ফাইলে ENDPOINT_STRING
প্রতিস্থাপন করতে নিম্নলিখিতটি লিখুন:
ENDPOINT=$(cat deploy-output.txt | sed -nre 's:.*Resource name\: (.*):\1:p' | tail -1)
sed -i "s|ENDPOINT_STRING|$ENDPOINT|g" predict.py
এখন আমাদের স্থাপন করা মডেলের শেষ পয়েন্ট থেকে একটি ভবিষ্যদ্বাণী পেতে predict.py
ফাইলটি চালানোর সময় এসেছে:
python3 predict.py
আমাদের পরীক্ষার ভবিষ্যদ্বাণীর জন্য পূর্বাভাসিত জ্বালানী দক্ষতা সহ আপনার API এর প্রতিক্রিয়া লগ করা উচিত।
🎉 অভিনন্দন! 🎉
আপনি শিখেছেন কিভাবে Vertex AI ব্যবহার করতে হয়:
- একটি কাস্টম পাত্রে প্রশিক্ষণ কোড প্রদান করে একটি মডেল প্রশিক্ষণ. আপনি এই উদাহরণে একটি TensorFlow মডেল ব্যবহার করেছেন, কিন্তু আপনি কাস্টম কন্টেইনার ব্যবহার করে যেকোন ফ্রেমওয়ার্ক দিয়ে তৈরি একটি মডেলকে প্রশিক্ষণ দিতে পারেন।
- আপনি প্রশিক্ষণের জন্য যে কর্মপ্রবাহ ব্যবহার করেছিলেন তার অংশ হিসাবে একটি পূর্ব-নির্মিত কন্টেইনার ব্যবহার করে একটি টেনসরফ্লো মডেল স্থাপন করুন।
- একটি মডেল এন্ডপয়েন্ট তৈরি করুন এবং একটি ভবিষ্যদ্বাণী তৈরি করুন।
Vertex AI এর বিভিন্ন অংশ সম্পর্কে আরও জানতে, ডকুমেন্টেশন দেখুন। আপনি যদি 5 ধাপে শুরু করা প্রশিক্ষণ কাজের ফলাফল দেখতে চান, তাহলে আপনার Vertex কনসোলের প্রশিক্ষণ বিভাগে নেভিগেট করুন।
7. পরিষ্কার করা
আপনার মোতায়েন করা এন্ডপয়েন্ট মুছতে, আপনার Vertex কনসোলের এন্ডপয়েন্ট বিভাগে নেভিগেট করুন এবং মুছুন আইকনে ক্লিক করুন:
আপনার ক্লাউড কনসোলে নেভিগেশন মেনু ব্যবহার করে স্টোরেজ বাকেট মুছে ফেলতে, স্টোরেজ ব্রাউজ করুন, আপনার বালতি নির্বাচন করুন এবং মুছুন ক্লিক করুন: