Vertex AI: পূর্বাভাসের জন্য একটি BigQuery মেশিন লার্নিং মডেল রপ্তানি করুন এবং স্থাপন করুন

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

এই ল্যাবে, আপনি BigQuery Machine Learning ব্যবহার করে একটি মডেলকে প্রশিক্ষণ দেবেন এবং তারপর সেই মডেলটি Vertex AI- তে এক্সপোর্ট ও ডেপ্লয় করবেন। এটি গুগল ক্লাউডের সর্বাধুনিক এআই প্রোডাক্ট।

আপনি যা শিখবেন

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

  • বিগকোয়েরি মেশিন লার্নিং (BQML) ব্যবহার করে একটি মডেলকে প্রশিক্ষণ দিন
  • আপনার BQML মডেলটি ক্লাউড স্টোরেজে রপ্তানি করুন
  • আপনার প্রশিক্ষিত BQML ভার্টেক্স এআই-তে স্থাপন করুন।
  • আপনার ডেপ্লয় করা মডেলের পূর্বাভাস পান।

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

২. ভার্টেক্স এআই-এর পরিচিতি

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

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

ভার্টেক্স পণ্যের সংক্ষিপ্ত বিবরণ

৩. আপনার পরিবেশ প্রস্তুত করুন

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

ধাপ ১: কম্পিউট ইঞ্জিন এপিআই সক্রিয় করুন

Compute Engine- এ যান এবং যদি আগে থেকে সক্রিয় করা না থাকে তবে 'Enable' নির্বাচন করুন। আপনার নোটবুক ইনস্ট্যান্স তৈরি করার জন্য এটি প্রয়োজন হবে।

ধাপ ২: Vertex AI API সক্রিয় করুন

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

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

ধাপ ৩: একটি নোটবুক ইনস্ট্যান্স তৈরি করুন

আমাদের মডেলটি ডেপ্লয় করার পর প্রেডিকশন পেতে আমরা নোটবুক ব্যবহার করব। আপনার ক্লাউড কনসোলের ভার্টেক্স এআই সেকশন থেকে নোটবুক-এ ক্লিক করুন:

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

সেখান থেকে, New Instance নির্বাচন করুন। তারপর GPU ছাড়া TensorFlow Enterprise 2.3 ইনস্ট্যান্স টাইপটি নির্বাচন করুন:

TFE উদাহরণ

ডিফল্ট অপশনগুলো ব্যবহার করুন এবং তারপর 'Create'-এ ক্লিক করুন। ইনস্ট্যান্সটি তৈরি হয়ে গেলে, 'Open JupyterLab' নির্বাচন করুন:

CAIP নোটবুক খুলুন

৪. একটি BigQuery ML মডেলকে প্রশিক্ষণ দিন

BigQuery ML আপনাকে BigQuery-তে সংরক্ষিত ডেটা ব্যবহার করে কাস্টম মেশিন লার্নিং মডেল প্রশিক্ষণ দিতে দেয়। আপনি SQL ব্যবহার করেই মডেল প্রশিক্ষণ দিতে এবং তার থেকে প্রেডিকশন পেতে পারেন। এই ল্যাবের জন্য, আমরা ক্রেডিট কার্ডের পেমেন্ট খেলাপি হওয়ার সম্ভাব্যতা প্রেডিক্ট করতে BigQuery-তে থাকা একটি পাবলিকলি অ্যাভেইলেবল ডেটাসেট ব্যবহার করব।

ধাপ ১: আপনার প্রজেক্টে একটি BigQuery ডেটাসেট তৈরি করুন।

BigQuery ML-এ একটি মডেলকে প্রশিক্ষণ দিতে, এই মডেলটি সংরক্ষণ করার জন্য আপনাকে আপনার প্রোজেক্টের মধ্যে একটি ডেটাসেট তৈরি করতে হবে। বাম দিকের মেনু বারে আপনার প্রোজেক্টে ক্লিক করুন, এবং তারপর 'Create Dataset ' নির্বাচন করুন।

BQ ডেটাসেট তৈরি করুন

Dataset ID ফিল্ডে cc_default লিখুন। বাকি ফিল্ডগুলো অপরিবর্তিত রেখে Create dataset-এ ক্লিক করুন।

ধাপ ২: একটি CREATE MODEL কোয়েরি চালান।

BigQuery কোয়েরি এডিটরে , আমরা যে পাবলিক ডেটাসেটটি ব্যবহার করব তার উপর একটি BigQuery ML মডেল তৈরি ও প্রশিক্ষণ দিতে নিম্নলিখিত CREATE MODEL কোয়েরিটি চালান। অবশ্যই your-project এর জায়গায় আপনার ক্লাউড প্রজেক্টের নাম বসাবেন:

CREATE OR REPLACE MODEL
  `your-project.cc_default.logistic_model` OPTIONS(model_type='LOGISTIC_REG',
    input_label_cols=['default_payment_next_month']) AS
SELECT
  limit_balance,
  sex,
  education_level,
  marital_status,
  age,
  pay_0,
  pay_2,
  pay_3,
  pay_4,
  pay_5,
  pay_6,
  bill_amt_1,
  bill_amt_2,
  bill_amt_3,
  bill_amt_4,
  bill_amt_5,
  bill_amt_6,
  pay_amt_1,
  pay_amt_2,
  pay_amt_3,
  pay_amt_4,
  pay_amt_5,
  pay_amt_6,
  default_payment_next_month
FROM
  `bigquery-public-data.ml_datasets.credit_card_default`

এটি একটি লজিস্টিক রিগ্রেশন মডেল তৈরি করবে যা ০ থেকে ১ এর মধ্যে একটি সাংখ্যিক মান আউটপুট দেবে এবং এটি চলতে প্রায় এক মিনিট সময় নেবে। এটি সম্পন্ন হলে, আপনি আপনার ডেটাসেটের অধীনে মডেলটি দেখতে পাবেন।

BQML মডেলের বিবরণ

মডেলটির প্রশিক্ষণ এবং মূল্যায়ন মেট্রিকগুলো দেখতে আপনি সেটির উপর ক্লিক করতে পারেন।

৫. আপনার BigQuery ML মডেলটি এক্সপোর্ট করুন।

একটি প্রশিক্ষিত BQML মডেল দিয়ে, আমরা প্রেডিকশন পাওয়ার জন্য BQML SQL সিনট্যাক্স ব্যবহার করতে পারি অথবা মডেলটিকে অন্য কোথাও ডেপ্লয় করার জন্য এক্সপোর্ট করতে পারি। এখানে আমরা আমাদের মডেলটি এক্সপোর্ট করব, যাতে আমরা এটিকে Vertex AI-তে ডেপ্লয় করে স্কেলেবলভাবে মডেলটি সার্ভ করতে এবং প্রেডিকশন পেতে পারি।

ধাপ ১: আপনার মডেলের জন্য একটি ক্লাউড স্টোরেজ বাকেট তৈরি করুন।

মডেলের বিবরণে, এক্সপোর্ট মডেল- এ ক্লিক করুন:

BQML মডেল রপ্তানি করুন

এটি আপনাকে গুগল ক্লাউড স্টোরেজ (GCS)-এর সেই লোকেশনটি লিখতে বলবে যেখানে আপনি আপনার মডেলের অ্যাসেটগুলো এক্সপোর্ট করতে চান। আপনার যদি এখনও কোনো GCS বাকেট না থাকে, তবে চিন্তা করবেন না! আমরা এখন একটি তৈরি করতে যাচ্ছি। প্রথমে, ব্রাউজ-এ ক্লিক করুন:

GCS বাকেটগুলি ব্রাউজ করুন

তারপর একটি নতুন বাকেট তৈরি করতে + আইকনে ক্লিক করুন:

নতুন GCS বালতি

এটিকে একটি অনন্য নাম দিন (স্টোরেজ বাকেটের নামগুলো বিশ্বব্যাপী অনন্য হতে হবে)। 'চালিয়ে যান' (Continue) এ ক্লিক করুন। পরবর্তী ধাপে, 'অবস্থানের ধরন' (Location type) এর অধীনে 'অঞ্চল' (Region ) নির্বাচন করুন এবং ড্রপডাউন থেকে যেকোনো একটি অঞ্চল বেছে নিন:

বালতির অবস্থান

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

অভিন্ন প্রবেশাধিকার নিয়ন্ত্রণ

'চালিয়ে যান'-এ ক্লিক করুন এবং বাকি অপশনগুলোর জন্য ডিফল্ট মান ব্যবহার করুন। তারপর 'তৈরি করুন'-এ ক্লিক করুন।

ধাপ ২: BQML মডেলটি এক্সপোর্ট করুন

আপনার নতুন বাকেটটি তৈরি হয়ে গেলে, Name ফিল্ডে model-assets (বা আপনার পছন্দমতো কিছু) লিখুন এবং তারপর Select-এ ক্লিক করুন।

মডেল রপ্তানির পথ

এরপর এক্সপোর্ট-এ ক্লিক করুন। এটি BigQuery-তে একটি জব তৈরি করবে, যা আপনার মডেলটিকে TensorFlow-এর SavedModel ফরম্যাটে আপনার নির্দিষ্ট করা নতুন GCS বাকেটে এক্সপোর্ট করবে। এই এক্সপোর্ট হতে প্রায় এক মিনিট সময় লাগবে।

আপনার মডেলটি এক্সপোর্ট হওয়ার সময়, আপনার ক্লাউড কনসোলের স্টোরেজ বিভাগে যান। কাজটি সম্পন্ন হলে, আপনি এইমাত্র তৈরি করা বাকেটের মধ্যে model-assets একটি সাবডিরেক্টরিতে আপনার মডেল অ্যাসেটগুলো এক্সপোর্ট হতে দেখবেন।

রপ্তানিকৃত মডেল সম্পদ

৬. মডেলটিকে Vertex AI-তে ইম্পোর্ট করুন।

এই ধাপে আমরা GCS স্টোরেজ লোকেশনটিকে রেফারেন্স করব, যেখান থেকে আমরা এইমাত্র আমাদের মডেল অ্যাসেটগুলো এক্সপোর্ট করেছি, যাতে মডেলটি তৈরি করে Vertex AI-তে ইম্পোর্ট করা যায়।

ধাপ ১: মডেলটি ইম্পোর্ট করুন

আপনার ক্লাউড কনসোলে, Vertex AI Models বিভাগে যান। সেখান থেকে, Import নির্বাচন করুন:

আমদানি মডেল

প্রথম ধাপে, আপনার মডেলের নাম দিন predict_default । যে অঞ্চলে আপনি আপনার বাকেট তৈরি করেছেন, সেই একই অঞ্চল নির্বাচন করুন (হয় us-central1 , europe-west4 , অথবা asia-east1 )। তারপর ' Continue ' ক্লিক করুন। ' Model settings'- এ, "Import model artifacts into a new pre-built container" বিকল্পটি নির্বাচিত রাখুন।

মডেল ফ্রেমওয়ার্ক ড্রপডাউন থেকে TensorFlow নির্বাচন করুন। এরপর ফ্রেমওয়ার্ক ভার্সন হিসেবে 2.3 নির্বাচন করুন।

মডেল আর্টিফ্যাক্ট লোকেশন ফিল্ডে, ব্রাউজ-এ ক্লিক করুন, আপনার এইমাত্র তৈরি করা GCS বাকেটটিতে ক্লিক করুন, এবং মডেল-অ্যাসেটস ডিরেক্টরিতে ক্লিক করুন:

মডেল সম্পদ পথ

এরপর ইম্পোর্ট-এ ক্লিক করুন। আপনার মডেলটি ইম্পোর্ট হতে কয়েক মিনিট সময় লাগবে। এটি তৈরি হয়ে গেলে, আপনি আপনার ক্লাউড কনসোলের মডেল বিভাগে এটি দেখতে পাবেন।

মডেল বিভাগ

৭. মডেলটিকে একটি এন্ডপয়েন্টে স্থাপন করুন।

এখন যেহেতু আমরা আমাদের মডেলটি আপলোড করেছি, পরবর্তী ধাপ হলো Vertex-এ একটি Endpoint তৈরি করা। Vertex-এর একটি Model রিসোর্সের সাথে একাধিক Endpoint যুক্ত থাকতে পারে এবং আপনি Endpoint-গুলোর মধ্যে ট্র্যাফিক ভাগ করে দিতে পারেন।

ধাপ ১: একটি এন্ডপয়েন্ট তৈরি করা

আপনার মডেল পেজে, Deploy and test ট্যাবে যান এবং Deploy to endpoint-এ ক্লিক করুন:

স্থাপন এবং পরীক্ষা করুন

আপনার এন্ডপয়েন্টের একটি নাম দিন, যেমন default_pred_v1 , ট্র্যাফিক স্প্লিটিং সেটিংস অপরিবর্তিত রাখুন, এবং তারপর আপনার মডেল ডেপ্লয়মেন্টের জন্য একটি মেশিন টাইপ নির্বাচন করুন। আমরা এখানে একটি n1-highcpu-2 ব্যবহার করেছি, কিন্তু আপনি আপনার পছন্দমতো যেকোনো মেশিন টাইপ বেছে নিতে পারেন।

এরপর 'Done' নির্বাচন করুন এবং 'Continue'-তে ক্লিক করুন। নির্বাচিত লোকেশন সেটিংস অপরিবর্তিত রাখুন এবং তারপর 'Deploy'-তে ক্লিক করুন। আপনার এন্ডপয়েন্টটি ডেপ্লয় হতে কয়েক মিনিট সময় লাগবে। এটি সম্পন্ন হলে আপনি এর পাশে একটি সবুজ টিক চিহ্ন দেখতে পাবেন।

স্থাপন করা এন্ডপয়েন্ট

আপনি প্রায় কাছাকাছি চলে এসেছেন! এখন আপনি আপনার ডেপ্লয় করা মডেলের প্রেডিকশনগুলো পাওয়ার জন্য প্রস্তুত।

৮. আমাদের স্থাপন করা মডেলের পূর্বাভাস পাওয়া

মডেলের পূর্বাভাস পাওয়ার জন্য কয়েকটি উপায় রয়েছে:

  • ভার্টেক্স এআই ইউআই
  • ভার্টেক্স এআই এপিআই

এখানে আমরা দেখাবো কিভাবে API এর মাধ্যমে পূর্বাভাস পাওয়া যায়।

ধাপ ১: Vertex AI API ব্যবহার করে মডেলের পূর্বাভাস জানুন

এখানে কীভাবে মডেলের পূর্বাভাস পাওয়া যায় তা দেখানোর জন্য, আমরা এই ল্যাবের শুরুতে আপনার তৈরি করা Vertex Notebook ইনস্ট্যান্সটি ব্যবহার করব।

এরপর, আপনার তৈরি করা নোটবুক ইনস্ট্যান্সটি খুলুন এবং লঞ্চার থেকে একটি পাইথন ৩ নোটবুক খুলুন:

নোটবুক খুলুন

আপনার নোটবুকের একটি সেলে নিম্নলিখিত কমান্ডটি চালান, যা default-pred.json নামের একটি JSON ফাইলে একটি পরীক্ষার উদাহরণ লিখবে। আমরা এই উদাহরণটি ভবিষ্যদ্বাণীর জন্য আমাদের মডেলে পাঠাবো:

%%writefile default-pred.json
{
  "instances": [
    {"age": 39,
    "bill_amt_1": 47174,
    "bill_amt_2": 47974,
    "bill_amt_3": 48630,
    "bill_amt_4": 50803,
    "bill_amt_5": 30789,
    "bill_amt_6": 15874,
    "education_level": "1",
    "limit_balance": 50000,
    "marital_status": "2",
    "pay_0": 0,
    "pay_2":0,
    "pay_3": 0,
    "pay_4": 0,
    "pay_5": "0",
    "pay_6": "0",
    "pay_amt_1": 1800,
    "pay_amt_2": 2000,
    "pay_amt_3": 3000,
    "pay_amt_4": 2000,
    "pay_amt_5": 2000,
    "pay_amt_6": 2000,
    "sex": "1"}
  ]
}

এরপরে, Vertex UI-তে, আপনি এইমাত্র ডিপ্লয় করা এন্ডপয়েন্টটির জন্য Sample Request- এ ক্লিক করুন:

নমুনা অনুরোধ

REST ট্যাবের ধাপ ৪ থেকে কোডটি আপনার নোটবুকে কপি করুন এবং সেলটি রান করুন:

অনুরোধ ভেরিয়েবল

এরপর, যে অঞ্চলে আপনি আপনার বাকেট এবং মডেল তৈরি করেছেন, সেই অঞ্চলের জন্য একটি ভেরিয়েবল যোগ করুন। নিচের স্ট্রিংটিতে your-region প্রতিস্থাপন করুন:

REGION="your-region" # either us-central1, europe-west4, or asia-east1

অবশেষে, নিম্নলিখিত কোডটি আপনার নোটবুকে কপি করে curl ব্যবহার করে আপনার এন্ডপয়েন্টে একটি প্রেডিকশন রিকোয়েস্ট পাঠান:

!curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://us-central1-prediction-aiplatform.googleapis.com/v1alpha1/projects/$PROJECT_ID/locations/$REGION/endpoints/$ENDPOINT_ID:predict \
-d "@default-pred.json"

আপনি নিচের মতো কিছু দেখতে পাবেন (সঠিক পূর্বাভাসের মান সামান্য ভিন্ন হতে পারে):

{
  "predictions": [
    {
      "default_payment_next_month_values": [
        "1",
        "0"
      ],
      "default_payment_next_month_probs": [
        0.180815295299778,
        0.819184704700222
      ],
      "predicted_default_payment_next_month": [
        "0"
      ]
    }
  ],
  "deployedModelId": "your-model-id"
}

default_payment_next_month_probs এর মানগুলো প্রতিটি শ্রেণীর সম্ভাবনা দেখায়। এই উদাহরণের জন্য, আমাদের মডেল ভবিষ্যদ্বাণী করে যে এই ব্যক্তি তার পরবর্তী পেমেন্ট খেলাপ করবেন না , তার সম্ভাবনা ৮১%। .819 মানটি 0 শ্রেণীর (খেলাপ না করা) সাথে সঙ্গতিপূর্ণ।

🎉 অভিনন্দন! 🎉

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

  • BQML-এ একটি মডেলকে প্রশিক্ষণ দিন
  • আপনার BQML মডেলটি ক্লাউড স্টোরেজে রপ্তানি করুন
  • পূর্বাভাসের জন্য BQML মডেলটি Vertex AI-তে ইম্পোর্ট করুন।
  • একটি ভার্টেক্স এআই মডেল তৈরি করুন এবং মডেলটি একটি এন্ডপয়েন্টে ডেপ্লয় করুন।
  • Vertex Notebooks এবং curl ব্যবহার করে আপনার ডেপ্লয় করা এন্ডপয়েন্টের প্রেডিকশন পান।

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

৯. পরিচ্ছন্নতা

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

স্টপ ইনস্ট্যান্স

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

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

এন্ডপয়েন্ট মুছুন

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

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