Vertex AI: পূর্বাভাসের জন্য ডেটা প্রিপ্রসেস এবং পোস্টপ্রসেস করতে Sklearn-এর সাথে কাস্টম ভবিষ্যদ্বাণী রুটিন ব্যবহার করুন

1. ওভারভিউ

এই ল্যাবে, আপনি শিখবেন কীভাবে কাস্টম প্রিপ্রসেসিং এবং পোস্টপ্রসেসিং লজিক লিখতে Vertex AI-তে কাস্টম ভবিষ্যদ্বাণী রুটিন ব্যবহার করতে হয়। যদিও এই নমুনাটি Scikit-learn ব্যবহার করে, কাস্টম ভবিষ্যদ্বাণী রুটিন অন্যান্য Python ML ফ্রেমওয়ার্ক যেমন XGBoost, PyTorch এবং TensorFlow এর সাথে কাজ করতে পারে।

আপনি কি শিখুন

আপনি কিভাবে শিখবেন:

  • কাস্টম ভবিষ্যদ্বাণী রুটিন সহ কাস্টম ভবিষ্যদ্বাণী যুক্তি লিখুন
  • স্থানীয়ভাবে কাস্টম পরিবেশন ধারক এবং মডেল পরীক্ষা করুন
  • Vertex AI ভবিষ্যদ্বাণীতে কাস্টম পরিবেশন কন্টেইনার পরীক্ষা করুন

Google ক্লাউডে এই ল্যাবটি চালানোর জন্য মোট খরচ প্রায় $1 USD৷

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

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

Vertex AI এন্ড-টু-এন্ড ML ওয়ার্কফ্লো সমর্থন করার জন্য বিভিন্ন পণ্য অন্তর্ভুক্ত করে। এই ল্যাবটি পূর্বাভাস এবং ওয়ার্কবেঞ্চে ফোকাস করবে।

ভার্টেক্স পণ্য ওভারভিউ

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

কেস ব্যবহার করুন

এই ল্যাবে, আপনি কাট, স্বচ্ছতা এবং আকারের মতো বৈশিষ্ট্যগুলির উপর ভিত্তি করে একটি হীরার দামের পূর্বাভাস দিতে একটি র্যান্ডম ফরেস্ট রিগ্রেশন মডেল তৈরি করবেন৷

পরিবেশন করার সময় ডেটা মডেলের প্রত্যাশিত বিন্যাসে আছে কিনা তা পরীক্ষা করতে আপনি কাস্টম প্রিপ্রসেসিং লজিক লিখবেন। আপনি পূর্বাভাসগুলিকে বৃত্তাকার করতে এবং স্ট্রিংগুলিতে রূপান্তর করতে কাস্টম পোস্টপ্রসেসিং যুক্তিও লিখবেন। এই যুক্তি লিখতে, আপনি কাস্টম ভবিষ্যদ্বাণী রুটিন ব্যবহার করবেন।

কাস্টম ভবিষ্যদ্বাণী রুটিন পরিচিতি

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

একটি কাস্টম সার্ভিং কন্টেইনার তৈরি করার জন্য একটি HTTP সার্ভার লেখার প্রয়োজন হয় যা প্রশিক্ষিত মডেলকে মোড়ানো হয়, HTTP অনুরোধগুলিকে মডেল ইনপুটগুলিতে অনুবাদ করে এবং মডেল আউটপুটগুলিকে প্রতিক্রিয়াগুলিতে অনুবাদ করে৷

কাস্টম ভবিষ্যদ্বাণী রুটিনের সাথে, Vertex AI আপনার জন্য পরিবেশন-সম্পর্কিত উপাদানগুলি সরবরাহ করে, যাতে আপনি আপনার মডেল এবং ডেটা রূপান্তরের উপর ফোকাস করতে পারেন।

4. আপনার পরিবেশ সেট আপ করুন

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

ধাপ 1: Compute Engine API সক্ষম করুন

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

ধাপ 2: আর্টিফ্যাক্ট রেজিস্ট্রি API সক্ষম করুন

আর্টিফ্যাক্ট রেজিস্ট্রিতে নেভিগেট করুন এবং সক্ষম নির্বাচন করুন যদি এটি ইতিমধ্যে না থাকে। আপনি এটি একটি কাস্টম পরিবেশন ধারক তৈরি করতে ব্যবহার করবেন।

ধাপ 3: Vertex AI API সক্ষম করুন

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

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

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

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

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

নোটবুক API সক্রিয় করুন যদি এটি ইতিমধ্যে না থাকে।

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

একবার সক্ষম হয়ে গেলে, ইনস্ট্যান্সে ক্লিক করুন এবং তারপরে নতুন তৈরি করুন নির্বাচন করুন।

ডিফল্ট বিকল্পগুলি গ্রহণ করুন এবং তৈরি করুন ক্লিক করুন।

দৃষ্টান্তটি প্রস্তুত হলে, দৃষ্টান্তটি খুলতে OPEN JUPYTERLAB এ ক্লিক করুন।

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

ধাপ 1: একটি ক্লাউড স্টোরেজ বালতি তৈরি করুন

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

লঞ্চার থেকে একটি নতুন টার্মিনাল সেশন খুলুন।

ওপেন_টার্মিনাল

আপনার টার্মিনাল থেকে, আপনার প্রকল্পের জন্য একটি env ভেরিয়েবল সংজ্ঞায়িত করতে নিম্নলিখিতটি চালান, আপনার প্রকল্পের আইডি দিয়ে your-cloud-project প্রতিস্থাপন নিশ্চিত করুন:

PROJECT_ID='your-cloud-project'

এরপরে, আপনার প্রকল্পে একটি নতুন বালতি তৈরি করতে আপনার টার্মিনালে নিম্নলিখিতটি চালান।

BUCKET="gs://${PROJECT_ID}-cpr-bucket"
gsutil mb -l us-central1 $BUCKET

ধাপ 2: ট্রেন মডেল

টার্মিনাল থেকে, cpr-codelab নামে একটি নতুন ডিরেক্টরি তৈরি করুন এবং এটিতে cd দিন।

mkdir cpr-codelab
cd cpr-codelab

ফাইল ব্রাউজারে, নতুন cpr-codelab ডিরেক্টরিতে নেভিগেট করুন এবং তারপর task.ipynb নামে একটি নতুন পাইথন 3 নোটবুক তৈরি করতে লঞ্চার ব্যবহার করুন।

ফাইল_ব্রাউজার

আপনার cpr-codelab ডিরেক্টরি এখন দেখতে হবে:

+ cpr-codelab/
    + task.ipynb

নোটবুকে, নিম্নলিখিত কোডটি পেস্ট করুন।

প্রথমে একটি requirements.txt ফাইল লিখুন।

%%writefile requirements.txt
fastapi
uvicorn==0.17.6
joblib~=1.0
numpy~=1.20
scikit-learn>=1.2.2
pandas
google-cloud-storage>=1.26.0,<2.0.0dev
google-cloud-aiplatform[prediction]>=1.16.0

আপনি যে মডেলটি স্থাপন করবেন তা আপনার নোটবুকের পরিবেশের তুলনায় আগে থেকে ইনস্টল করা নির্ভরতার একটি ভিন্ন সেট থাকবে। এই কারণে, আপনি requirements.txt এ মডেলের জন্য সমস্ত নির্ভরতা তালিকাভুক্ত করতে চাইবেন এবং তারপর নোটবুকে ঠিক একই নির্ভরতাগুলি ইনস্টল করতে পিপ ব্যবহার করুন৷ পরবর্তীতে, পরিবেশের মিল আছে কিনা তা দুবার চেক করতে Vertex AI-তে স্থাপন করার আগে আপনি মডেলটি স্থানীয়ভাবে পরীক্ষা করবেন।

পিপ নোটবুকে নির্ভরতা ইনস্টল করুন।

!pip install -U --user -r requirements.txt

নোট করুন যে পিপ ইনস্টল সম্পূর্ণ হওয়ার পরে আপনাকে কার্নেলটি পুনরায় চালু করতে হবে।

রিস্টার্ট_কারনেল

এরপরে, ডিরেক্টরি তৈরি করুন যেখানে আপনি মডেল এবং প্রিপ্রসেসিং আর্টিফ্যাক্টগুলি সংরক্ষণ করবেন।

USER_SRC_DIR = "src_dir"
!mkdir $USER_SRC_DIR
!mkdir model_artifacts

# copy the requirements to the source dir
!cp requirements.txt $USER_SRC_DIR/requirements.txt

আপনার cpr-codelab ডিরেক্টরি এখন দেখতে হবে:

+ cpr-codelab/
    + model_artifacts/
    + scr_dir/
        + requirements.txt
    + task.ipynb
    + requirements.txt

এখন যে ডিরেক্টরি কাঠামো সেট আপ করা হয়েছে, এটি একটি মডেল প্রশিক্ষণের সময়!

প্রথমত, লাইব্রেরি আমদানি করুন।

import seaborn as sns
import numpy as np
import pandas as pd

from sklearn import preprocessing
from sklearn.ensemble import RandomForestRegressor
from sklearn.pipeline import make_pipeline
from sklearn.compose import make_column_transformer

import joblib
import logging

# set logging to see the docker container logs
logging.basicConfig(level=logging.INFO)

তারপর নিম্নলিখিত ভেরিয়েবলগুলি সংজ্ঞায়িত করুন। আপনার প্রজেক্ট আইডি দিয়ে PROJECT_ID এবং আগের ধাপে আপনার তৈরি করা বাকেট দিয়ে BUCKET_NAME প্রতিস্থাপন করতে ভুলবেন না।

REGION = "us-central1"
MODEL_ARTIFACT_DIR = "sklearn-model-artifacts"
REPOSITORY = "diamonds"
IMAGE = "sklearn-image"
MODEL_DISPLAY_NAME = "diamonds-cpr"

# Replace with your project
PROJECT_ID = "{PROJECT_ID}"

# Replace with your bucket
BUCKET_NAME = "gs://{BUCKET_NAME}"

সমুদ্রের লাইব্রেরি থেকে ডেটা লোড করুন এবং তারপরে দুটি ডেটাফ্রেম তৈরি করুন, একটি বৈশিষ্ট্য সহ এবং অন্যটি লেবেল সহ।

data = sns.load_dataset('diamonds', cache=True, data_home=None)

label = 'price'

y_train = data['price']
x_train = data.drop(columns=['price'])

চলুন প্রশিক্ষণের তথ্য দেখে নেওয়া যাক। আপনি দেখতে পারেন যে প্রতিটি সারি একটি হীরা প্রতিনিধিত্ব করে।

x_train.head()

এবং লেবেল, যা সংশ্লিষ্ট মূল্য.

y_train.head()

এখন, একটি স্কলারন কলাম রূপান্তরকে একটি হট এনকোডে শ্রেণীবদ্ধ বৈশিষ্ট্যগুলি সংজ্ঞায়িত করুন এবং সংখ্যাসূচক বৈশিষ্ট্যগুলিকে স্কেল করুন

column_transform = make_column_transformer(
    (preprocessing.OneHotEncoder(), [1,2,3]),
    (preprocessing.StandardScaler(), [0,4,5,6,7,8]))

এলোমেলো বন মডেল সংজ্ঞায়িত করুন

regr = RandomForestRegressor(max_depth=10, random_state=0)

এর পরে, একটি স্কলার পাইপলাইন তৈরি করুন। এর মানে হল যে এই পাইপলাইনে দেওয়া ডেটা প্রথমে এনকোড/স্কেল করা হবে এবং তারপর মডেলে পাঠানো হবে।

my_pipeline = make_pipeline(column_transform, regr)

প্রশিক্ষণ ডেটাতে পাইপলাইন ফিট করুন

my_pipeline.fit(x_train, y_train)

এটি প্রত্যাশিত হিসাবে কাজ করছে তা নিশ্চিত করতে মডেলটি চেষ্টা করুন। মডেলে predict পদ্ধতি কল করুন, একটি পরীক্ষার নমুনা পাস.

my_pipeline.predict([[0.23, 'Ideal', 'E', 'SI2', 61.5, 55.0, 3.95, 3.98, 2.43]])

এখন আমরা model_artifacts ডিরে পাইপলাইন সংরক্ষণ করতে পারি এবং এটিকে ক্লাউড স্টোরেজ বালতিতে কপি করতে পারি।

joblib.dump(my_pipeline, 'model_artifacts/model.joblib')

!gsutil cp model_artifacts/model.joblib {BUCKET_NAME}/{MODEL_ARTIFACT_DIR}/

ধাপ 3: একটি প্রিপ্রসেসিং আর্টিফ্যাক্ট সংরক্ষণ করুন

এরপরে আপনি একটি প্রিপ্রসেসিং আর্টিফ্যাক্ট তৈরি করবেন। মডেল সার্ভার শুরু হলে এই আর্টিফ্যাক্টটি কাস্টম কন্টেইনারে লোড করা হবে। আপনার প্রি-প্রসেসিং আর্টিফ্যাক্ট প্রায় যেকোনো ফর্মের হতে পারে (যেমন একটি পিকল ফাইল), কিন্তু এই ক্ষেত্রে আপনি একটি JSON ফাইলে একটি অভিধান লিখবেন।

clarity_dict={"Flawless": "FL",
              "Internally Flawless": "IF",
              "Very Very Slightly Included": "VVS1",
              "Very Slightly Included": "VS2",
              "Slightly Included": "S12",
              "Included": "I3"}

আমাদের প্রশিক্ষণের ডেটাতে clarity বৈশিষ্ট্যটি সর্বদা সংক্ষিপ্ত আকারে ছিল (অর্থাৎ "ফ্লোলেস" এর পরিবর্তে "FL")। পরিবেশন করার সময়, আমরা পরীক্ষা করতে চাই যে এই বৈশিষ্ট্যটির ডেটাও সংক্ষিপ্ত করা হয়েছে। এর কারণ হল আমাদের মডেল জানে কিভাবে একটি হট এনকোড "FL" করতে হয় কিন্তু "Flawless" নয়। আপনি এই কাস্টম প্রিপ্রসেসিং লজিকটি পরে লিখবেন। কিন্তু আপাতত, এই লুক আপ টেবিলটিকে একটি json ফাইলে সংরক্ষণ করুন এবং তারপরে এটি ক্লাউড স্টোরেজ বালতিতে লিখুন।

import json
with open("model_artifacts/preprocessor.json", "w") as f:
    json.dump(clarity_dict, f)

!gsutil cp model_artifacts/preprocessor.json {BUCKET_NAME}/{MODEL_ARTIFACT_DIR}/

আপনার স্থানীয় cpr-codelab ডিরেক্টরি এখন দেখতে হবে:

+ cpr-codelab/
    + model_artifacts/
        + model.joblib
        + preprocessor.json
    + scr_dir/
        + requirements.txt
    + task.ipynb
    + requirements.txt

6. CPR মডেল সার্ভার ব্যবহার করে একটি কাস্টম পরিবেশন ধারক তৈরি করুন

এখন যেহেতু মডেলটি প্রশিক্ষিত হয়েছে এবং এবং প্রিপ্রসেসিং আর্টিফ্যাক্ট সংরক্ষণ করা হয়েছে, এটি কাস্টম পরিবেশন ধারক তৈরি করার সময়। সাধারণত একটি পরিবেশন পাত্র তৈরি করতে মডেল সার্ভার কোড লেখার প্রয়োজন হয়। যাইহোক, কাস্টম ভবিষ্যদ্বাণী রুটিনের সাথে, Vertex AI পূর্বাভাস একটি মডেল সার্ভার তৈরি করে এবং আপনার জন্য একটি কাস্টম ধারক চিত্র তৈরি করে।

একটি কাস্টম পরিবেশন পাত্রে নিম্নলিখিত 3 টুকরা কোড থাকে:

  1. মডেল সার্ভার (এটি SDK দ্বারা স্বয়ংক্রিয়ভাবে তৈরি হবে এবং scr_dir/ এ সংরক্ষণ করা হবে)
    • HTTP সার্ভার যে মডেল হোস্ট
    • রুট/বন্দর/ইত্যাদি সেট আপ করার জন্য দায়ী।
  2. অনুরোধ হ্যান্ডলার
    • একটি অনুরোধ পরিচালনার ওয়েবসার্ভারের দিকগুলির জন্য দায়ী, যেমন অনুরোধের অংশটিকে ডিসিরিয়ালাইজ করা, এবং প্রতিক্রিয়াকে সিরিয়াল করা, প্রতিক্রিয়া শিরোনাম সেট করা ইত্যাদি।
    • এই উদাহরণে, আপনি SDK-এ দেওয়া ডিফল্ট হ্যান্ডলার, google.cloud.aiplatform.prediction.handler.PredictionHandler ব্যবহার করবেন।
  3. ভবিষ্যদ্বাণীকারী
    • একটি ভবিষ্যদ্বাণী অনুরোধ প্রক্রিয়া করার জন্য ML যুক্তির জন্য দায়ী।

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

ভবিষ্যদ্বাণীকারী একটি ভবিষ্যদ্বাণী অনুরোধ প্রক্রিয়াকরণের জন্য এমএল লজিকের জন্য দায়ী, যেমন কাস্টম প্রিপ্রসেসিং এবং পোস্টপ্রসেসিং। কাস্টম ভবিষ্যদ্বাণী যুক্তি লিখতে, আপনি ভার্টেক্স এআই ভবিষ্যদ্বাণীকারী ইন্টারফেসটি সাবক্লাস করবেন।

কাস্টম ভবিষ্যদ্বাণী রুটিনগুলির এই প্রকাশটি পুনরায় ব্যবহারযোগ্য XGBoost এবং Sklearn ভবিষ্যদ্বাণীগুলির সাথে আসে, তবে যদি আপনার একটি ভিন্ন কাঠামো ব্যবহার করার প্রয়োজন হয় তবে আপনি বেস ভবিষ্যদ্বাণীকারীকে সাবক্লাস করে নিজের তৈরি করতে পারেন।

আপনি নীচে Sklearn ভবিষ্যদ্বাণীকারীর একটি উদাহরণ দেখতে পারেন। এই কাস্টম মডেল সার্ভার তৈরি করার জন্য আপনাকে লিখতে হবে এমন সমস্ত কোড।

sklearn_predictor

SklearnPredictor সাবক্লাস করতে নিচের কোডে আপনার নোটবুকে পেস্ট করুন এবং src_dir/ এ একটি পাইথন ফাইলে লিখুন। মনে রাখবেন যে এই উদাহরণে আমরা শুধুমাত্র load , preprocess এবং postprocess পদ্ধতি কাস্টমাইজ করছি, predict পদ্ধতি নয়।

%%writefile $USER_SRC_DIR/predictor.py

import joblib
import numpy as np
import json

from google.cloud import storage
from google.cloud.aiplatform.prediction.sklearn.predictor import SklearnPredictor


class CprPredictor(SklearnPredictor):

    def __init__(self):
        return

    def load(self, artifacts_uri: str) -> None:
        """Loads the sklearn pipeline and preprocessing artifact."""

        super().load(artifacts_uri)

        # open preprocessing artifact
        with open("preprocessor.json", "rb") as f:
            self._preprocessor = json.load(f)


    def preprocess(self, prediction_input: np.ndarray) -> np.ndarray:
        """Performs preprocessing by checking if clarity feature is in abbreviated form."""

        inputs = super().preprocess(prediction_input)

        for sample in inputs:
            if sample[3] not in self._preprocessor.values():
                sample[3] = self._preprocessor[sample[3]]
        return inputs

    def postprocess(self, prediction_results: np.ndarray) -> dict:
        """Performs postprocessing by rounding predictions and converting to str."""

        return {"predictions": [f"${value}" for value in np.round(prediction_results)]}

আসুন এই পদ্ধতিগুলির প্রতিটিতে আরও গভীরভাবে নজর দেওয়া যাক।

  • load পদ্ধতিটি প্রিপ্রসেসিং আর্টিফ্যাক্টে লোড হয়, যা এই ক্ষেত্রে একটি অভিধান যা হীরার স্বচ্ছতার মানগুলিকে তাদের সংক্ষিপ্ত রূপগুলিতে ম্যাপিং করে।
  • preprocess পদ্ধতিটি সেই আর্টিফ্যাক্টটি ব্যবহার করে নিশ্চিত করে যে পরিবেশন করার সময় স্পষ্টতা বৈশিষ্ট্যটি তার সংক্ষিপ্ত বিন্যাসে রয়েছে। যদি না হয়, এটি সম্পূর্ণ স্ট্রিংটিকে তার সংক্ষেপে রূপান্তর করে।
  • postprocess পদ্ধতি $ চিহ্ন সহ একটি স্ট্রিং হিসাবে পূর্বাভাসিত মান প্রদান করে এবং মানটিকে বৃত্তাকার করে।

এরপরে, ইমেজ তৈরি করতে Vertex AI Python SDK ব্যবহার করুন। কাস্টম ভবিষ্যদ্বাণী রুটিন ব্যবহার করে, ডকারফাইল তৈরি করা হবে এবং আপনার জন্য ছবি তৈরি করা হবে।

from google.cloud import aiplatform

aiplatform.init(project=PROJECT_ID, location=REGION)

import os

from google.cloud.aiplatform.prediction import LocalModel

from src_dir.predictor import CprPredictor  # Should be path of variable $USER_SRC_DIR

local_model = LocalModel.build_cpr_model(
    USER_SRC_DIR,
    f"{REGION}-docker.pkg.dev/{PROJECT_ID}/{REPOSITORY}/{IMAGE}",
    predictor=CprPredictor,
    requirements_path=os.path.join(USER_SRC_DIR, "requirements.txt"),
)

ভবিষ্যদ্বাণীর জন্য দুটি নমুনা সহ একটি পরীক্ষা ফাইল লিখুন। একটি দৃষ্টান্তের সংক্ষিপ্ত স্পষ্টতা নাম আছে, কিন্তু অন্যটিকে প্রথমে রূপান্তর করতে হবে।

import json

sample = {"instances": [
  [0.23, 'Ideal', 'E', 'VS2', 61.5, 55.0, 3.95, 3.98, 2.43],
  [0.29, 'Premium', 'J', 'Internally Flawless', 52.5, 49.0, 4.00, 2.13, 3.11]]}

with open('instances.json', 'w') as fp:
    json.dump(sample, fp)

একটি স্থানীয় মডেল স্থাপন করে স্থানীয়ভাবে পাত্রটি পরীক্ষা করুন।

with local_model.deploy_to_local_endpoint(
    artifact_uri = 'model_artifacts/', # local path to artifacts
) as local_endpoint:
    predict_response = local_endpoint.predict(
        request_file='instances.json',
        headers={"Content-Type": "application/json"},
    )

    health_check_response = local_endpoint.run_health_check()

আপনি এর সাথে ভবিষ্যদ্বাণী ফলাফল দেখতে পারেন:

predict_response.content

7. Vertex AI-তে মডেল স্থাপন করুন

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

প্রথমে, আর্টিফ্যাক্ট রেজিস্ট্রি অ্যাক্সেস করতে ডকার কনফিগার করুন।

!gcloud artifacts repositories create {REPOSITORY} --repository-format=docker \
--location=us-central1 --description="Docker repository"


!gcloud auth configure-docker {REGION}-docker.pkg.dev --quiet

তারপর, ইমেজ ধাক্কা.

local_model.push_image()

এবং মডেল আপলোড করুন।

model = aiplatform.Model.upload(local_model = local_model,
                                display_name=MODEL_DISPLAY_NAME,
                                artifact_uri=f"{BUCKET_NAME}/{MODEL_ARTIFACT_DIR}",)

যখন মডেলটি আপলোড করা হয়, তখন আপনি এটি কনসোলে দেখতে পাবেন:

মডেল_রেজিস্ট্রি

এরপরে, মডেলটি স্থাপন করুন যাতে আপনি এটি অনলাইন পূর্বাভাসের জন্য ব্যবহার করতে পারেন। কাস্টম ভবিষ্যদ্বাণী রুটিনগুলি ব্যাচের পূর্বাভাসের সাথেও কাজ করে তাই আপনার ব্যবহারের ক্ষেত্রে যদি অনলাইন পূর্বাভাসের প্রয়োজন না হয়, তাহলে আপনাকে মডেলটি স্থাপন করার প্রয়োজন নেই৷

endpoint = model.deploy(machine_type="n1-standard-2")

অবশেষে, একটি ভবিষ্যদ্বাণী পেয়ে মোতায়েন মডেল পরীক্ষা করুন।

endpoint.predict(instances=[[0.23, 'Ideal', 'E', 'VS2', 61.5, 55.0, 3.95, 3.98, 2.43]])

🎉 অভিনন্দন! 🎉

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

  • কাস্টম পূর্বাভাস রুটিন সহ কাস্টম প্রিপ্রসেসিং এবং পোস্টপ্রসেসিং লজিক লিখুন

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

8. পরিষ্কার করা

আপনি যদি এই ল্যাবে তৈরি করা নোটবুকটি ব্যবহার চালিয়ে যেতে চান, তাহলে এটি ব্যবহার না করার সময় এটি বন্ধ করার পরামর্শ দেওয়া হয়। Google ক্লাউড কনসোলের ওয়ার্কবেঞ্চ UI থেকে, নোটবুকটি নির্বাচন করুন এবং তারপরে থামুন নির্বাচন করুন।

আপনি যদি নোটবুকটি সম্পূর্ণরূপে মুছে ফেলতে চান, উপরের ডানদিকে মুছুন বোতামে ক্লিক করুন।

Stop_nb

আপনি যে এন্ডপয়েন্টটি স্থাপন করেছেন সেটি মুছে ফেলতে, কনসোলের এন্ডপয়েন্ট বিভাগে নেভিগেট করুন, আপনার তৈরি করা এন্ডপয়েন্টে ক্লিক করুন এবং তারপর এন্ডপয়েন্ট থেকে আনডিপ্লোয় মডেল নির্বাচন করুন :

ডিলিট_এন্ডপয়েন্ট

কন্টেইনার ইমেজ মুছতে, আর্টিফ্যাক্ট রেজিস্ট্রিতে নেভিগেট করুন, আপনার তৈরি করা সংগ্রহস্থল নির্বাচন করুন এবং মুছুন নির্বাচন করুন

ডিলিট_ইমেজ

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

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