ভার্টেক্স এআই অটোএমএল সহ মুভি রেটিং পূর্বাভাস

১. ভূমিকা

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

  1. এমএল মডেল তৈরি এবং স্থাপন
  2. এমএল এপিআই ব্যবহার করে পূর্বাভাস দেওয়ার জন্য ট্রিগার

এমএল মডেল তৈরি:

  1. CSV থেকে BigQuery-তে ডেটা সংগ্রহ করা হয়েছে
  2. অটোএমএল মডেল তৈরির জন্য ভার্টেক্স এআই-তে বিগকোয়েরি ডেটা একীভূত করা হয়েছে
  3. এন্ডপয়েন্ট এপিআই তৈরির জন্য মডেলটি ভার্টেক্স এআই মডেল রেজিস্ট্রি-তে স্থাপন করা হয়েছে।

এমএল এপিআই ব্যবহার করে পূর্বাভাস দেওয়ার ট্রিগার:

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

নিম্নে অ্যাপ্লিকেশনটির উচ্চ-স্তরের স্থাপত্যগত সংক্ষিপ্ত বিবরণ দেওয়া হলো:

5ae50607c0f2db20.png

উপরোক্ত আর্কিটেকচারের প্রয়োগ এই কোডল্যাবের আওতার বাইরে, কিন্তু আপনি যদি ক্লায়েন্ট অ্যাপ্লিকেশনও তৈরি করতে চান, তবে অনুগ্রহ করে ব্লগটি দেখুন।

চলুন বাস্তবায়নের ধাপগুলো জেনে নেওয়া যাক।

আপনি যা তৈরি করবেন

আপনি একটি তৈরি করবেন

  • টেবিল এবং মডেলের উপাদানসমূহ ধারণ করার জন্য একটি BigQuery ডেটাসেট।
  • ভার্টেক্স এআই অটোএমএল মডেল (তৈরি এবং স্থাপন)
  • এমএল এপিআই ব্যবহার করে পূর্বাভাস দেওয়ার জন্য জাভা ক্লাউড ফাংশন ট্রিগার

২. প্রয়োজনীয়তা

নিম্নে পূর্বশর্তগুলো দেওয়া হলো:

আপনার প্রকল্প তৈরি করুন

  1. গুগল ক্লাউড কনসোলের প্রজেক্ট সিলেক্টর পেজে, একটি গুগল ক্লাউড প্রজেক্ট নির্বাচন করুন বা তৈরি করুন।
  2. আপনার ক্লাউড প্রোজেক্টের জন্য বিলিং চালু আছে কিনা তা নিশ্চিত করুন। কোনো প্রোজেক্টে বিলিং চালু আছে কিনা তা কীভাবে পরীক্ষা করবেন, তা জেনে নিন।
  3. এপিআই (API) সক্রিয় করতে BigQuery- তে যান। এছাড়া, আপনি আপনার ব্রাউজারে নিম্নলিখিত URL-টি লিখে সরাসরি BigQuery ওয়েব UI খুলতে পারেন: https://console.cloud.google.com/bigquery

ক্লাউড শেল সক্রিয় করুন

  1. আপনি ক্লাউড শেল ব্যবহার করবেন, যা গুগল ক্লাউডে চলমান একটি কমান্ড-লাইন পরিবেশ এবং এতে bq আগে থেকেই লোড করা থাকে: ক্লাউড কনসোল থেকে, উপরের ডান কোণায় থাকা ‘Activate Cloud Shell’-এ ক্লিক করুন: 6757b2fb50ddcc2d.png
  2. ক্লাউড শেলে সংযুক্ত হওয়ার পর, আপনি দেখতে পাবেন যে আপনি ইতিমধ্যেই প্রমাণীকৃত এবং প্রজেক্টটি আপনার প্রজেক্ট আইডিতে সেট করা আছে। আপনি যে প্রমাণীকৃত, তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান:
gcloud auth list
  1. gcloud কমান্ডটি আপনার প্রজেক্ট সম্পর্কে জানে কিনা তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান।
gcloud config list project
  1. আপনার প্রজেক্টটি সেট করা না থাকলে, এটি সেট করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:
gcloud config set project <PROJECT_ID>

gcloud কমান্ড এবং এর ব্যবহার সম্পর্কে জানতে ডকুমেন্টেশন দেখুন।

৩. প্রশিক্ষণ ডেটা প্রস্তুত করা

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

৪. ডেটাসেট তৈরি এবং লোড করা

BigQuery ডেটাসেট হলো কতগুলো টেবিলের সমষ্টি। একটি ডেটাসেটের সমস্ত টেবিল একই ডেটা লোকেশনে সংরক্ষিত থাকে। আপনি একটি ডেটাসেট এবং এর টেবিলগুলোতে অ্যাক্সেস সীমিত করার জন্য কাস্টম অ্যাক্সেস কন্ট্রোলও যুক্ত করতে পারেন।

  1. ক্লাউড শেলে, 'movies' নামে একটি ডেটাসেট তৈরি করতে bq mk কমান্ডটি ব্যবহার করুন।
bq mk --location=<<LOCATION>> movies

অবস্থানটি একটি অঞ্চলে (asia-south1) সেট করুন। মনে রাখবেন, VERTEX AI ধাপের জন্যও এটিকে অঞ্চল হিসেবে সেট করতে হবে (উভয় ইনস্ট্যান্স একই অঞ্চলে থাকা উচিত)।

  1. আপনার ডেটা ফাইল (.csv) প্রস্তুত আছে কিনা তা নিশ্চিত করুন। রিপোজিটরি ক্লোন করতে এবং প্রজেক্টে যেতে ক্লাউড শেলে নিম্নলিখিত কমান্ডগুলো চালান:
git clone <<repository link>>

cd movie-score
  1. আপনার CSV ফাইলটি BigQuery টেবিলে লোড করতে bq load কমান্ডটি ব্যবহার করুন (অনুগ্রহ করে মনে রাখবেন যে আপনি BigQuery UI থেকেও সরাসরি আপলোড করতে পারেন):
bq load --source_format=CSV --skip_leading_rows=1 movies.movies_score \
./movies_bq_src.csv \ Id:numeric,name:string,rating:string,genre:string,year:numeric,released:string,score:string,director:string,writer:string,star:string,country:string,budget:numeric,company:string,runtime:numeric,data_cat:string
  1. ৩টি উপায়ের যেকোনো একটিতে অনুসন্ধান করুন:

আমরা তিনভাবে BigQuery-এর সাথে কাজ করতে পারি, আমরা তার মধ্যে দুটি চেষ্টা করে দেখব: ক. BigQuery ওয়েব UI খ. bq কমান্ড গ. API

SELECT name, rating, genre, runtime FROM movies.movies_score limit 3;

আমি কোয়েরি চালানোর জন্য BigQuery Web SQL Workspace ব্যবহার করেছি। SQL Workspace-টি দেখতে এইরকম:

109a0b2c7155e9b3.png

bq কমান্ড ব্যবহার করে:

bq query --use_legacy_sql=false \
SELECT name, rating, genre, runtime FROM movies.movies_score limit 3;

৫. Vertex AI AutoML-এ BigQuery ডেটা ব্যবহার

BigQuery থেকে আপনার ডেটা ব্যবহার করে Vertex AI-এর সাহায্যে সরাসরি একটি AutoML মডেল তৈরি করুন। মনে রাখবেন, আমরা সরাসরি BigQuery থেকেও AutoML সম্পাদন করতে পারি এবং VertexAI-তে মডেলটি রেজিস্টার করে এন্ডপয়েন্টটি উন্মুক্ত করতে পারি। BigQuery AutoML- এর ডকুমেন্টেশন দেখুন। তবে, এই উদাহরণে আমরা আমাদের মডেল তৈরি করতে Vertex AI AutoML ব্যবহার করব।

একটি ভার্টেক্স এআই ডেটাসেট তৈরি করা

গুগল ক্লাউড কনসোল থেকে Vertex AI-তে যান, যদি আগে থেকে করা না থাকে তবে Vertex AI API সক্রিয় করুন, ডেটা প্রসারিত করুন এবং ডেটাসেট নির্বাচন করুন, 'Create data set'-এ ক্লিক করুন, TABULAR ডেটা টাইপ এবং "Regression / classification" বিকল্পটি নির্বাচন করুন, এবং 'Create'-এ ক্লিক করুন:

4104c75c34cbd2d9.png

ডেটা উৎস নির্বাচন করুন

পরবর্তী পৃষ্ঠায়, একটি ডেটা সোর্স নির্বাচন করুন। 'Select a table or view from BigQuery' অপশনটি বেছে নিন এবং BigQuery path BROWSE ফিল্ডে BigQuery থেকে টেবিলটি নির্বাচন করুন। Continue-তে ক্লিক করুন।

মনে রাখবেন: BigQuery টেবিলটি Vertex AI-তে প্রদর্শিত হওয়ার জন্য BigQuery ইনস্ট্যান্স এবং Vertex AI ডেটা সেটগুলোর অঞ্চল একই হতে হবে।

b787ef18dbca4cff.png

ব্রাউজ তালিকা থেকে আপনার উৎস টেবিল/ভিউ নির্বাচন করার সময়, নিচের ধাপগুলো চালিয়ে যাওয়ার জন্য রেডিও বাটনে ক্লিক করতে মনে রাখবেন। যদি আপনি ভুলবশত টেবিল/ভিউ-এর নামে ক্লিক করেন, তাহলে আপনাকে ডেটাপ্লেক্স-এ নিয়ে যাওয়া হবে। এমনটা ঘটলে আপনাকে শুধু ভার্টেক্স এআই-তে ব্রাউজ করে ফিরে আসতে হবে।

মডেলটিকে প্রশিক্ষণ দিন

  1. ডেটাসেট তৈরি হয়ে গেলে, আপনি Analyze পেজটি দেখতে পাবেন, যেখানে একটি নতুন মডেল প্রশিক্ষণের (train) অপশন থাকবে। সেখানে ক্লিক করুন:

bf095263d57106de.png

  1. প্রথম পৃষ্ঠায় Objective হিসেবে Classification অপরিবর্তিত রেখে AutoML অপশনটি নির্বাচন করুন এবং continue-তে ক্লিক করুন: e50597bc3f29894c.png
  2. আপনার মডেলের একটি নাম দিন এবং প্রদর্শিত ড্রপডাউন থেকে টার্গেট কলামের নাম হিসেবে "স্কোর" নির্বাচন করে কন্টিনিউ-তে ক্লিক করুন।
  3. আরও মনে রাখবেন যে আপনি "Export test dataset to BigQuery" অপশনটি চেক করতে পারেন, যা কোনো অতিরিক্ত ইন্টিগ্রেশন লেয়ার ছাড়াই বা সার্ভিসগুলোর মধ্যে ডেটা স্থানান্তর না করেই ডাটাবেসে ফলাফলসহ টেস্ট সেটটি দক্ষতার সাথে দেখতে সাহায্য করে।
  4. পরবর্তী পৃষ্ঠায়, আপনার প্রয়োজনীয় যেকোনো উন্নত প্রশিক্ষণ বিকল্প এবং মডেলটিকে প্রশিক্ষণের জন্য নির্ধারিত সময় বেছে নেওয়ার সুযোগ রয়েছে। অনুগ্রহ করে মনে রাখবেন যে, প্রশিক্ষণের জন্য ব্যবহৃত নোড আওয়ারের সংখ্যা বাড়ানোর আগে আপনাকে মূল্য নির্ধারণের বিষয়টি বিবেচনা করতে হতে পারে।

আপনার নতুন মডেলের প্রশিক্ষণ শুরু করতে স্টার্ট ট্রেনিং-এ ক্লিক করুন।

e72b004a17849bd.png

মডেলটি মূল্যায়ন, স্থাপন এবং পরীক্ষা করুন

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

  1. প্রশিক্ষণের ফলাফল দেখুন এবং মূল্যায়ন করুন। 4767b4bbd7cf93fa.png
  2. আপনার এপিআই এন্ডপয়েন্টের সাথে মডেলটি ডেপ্লয় এবং টেস্ট করুন।

আপনার মডেলটি ডেপ্লয় করার পর একটি API এন্ডপয়েন্ট তৈরি হয়, যা আপনার অ্যাপ্লিকেশনে রিকোয়েস্ট পাঠাতে এবং রেসপন্সে মডেলের প্রেডিকশনের ফলাফল পেতে ব্যবহার করা যেতে পারে।

95fb4495618174f0.png

এই অংশ থেকে এগিয়ে যাওয়ার আগে, আপনার Vertex AI এন্ডপয়েন্ট বিভাগে ডেপ্লয় করা মডেলের এন্ডপয়েন্ট আইডি, অবস্থান এবং অন্যান্য বিবরণ লিখে রাখতে ভুলবেন না।

৬. এমএল আহ্বান শুরু করার জন্য জাভা ক্লাউড ফাংশন

মনে আছে, এমএল ডেপ্লয়মেন্ট ধাপে আমরা এন্ডপয়েন্ট এবং অন্যান্য বিবরণ পেয়েছিলাম? আমরা এখানে সেটাই ব্যবহার করব, এবং যেহেতু আমরা জাভা ক্লাউড ফাংশন ব্যবহার করছি, তাই ডিপেন্ডেন্সিগুলো সামলানোর জন্য pom.xml ব্যবহার করব। ভার্টেক্স এআই অটোএমএল এন্ডপয়েন্ট এপিআই ব্যবহারের জন্য আমরা google-cloud-aiplatform লাইব্রেরিটি ব্যবহার করি।

  1. গুগল ক্লাউড কনসোলে ক্লাউড ফাংশনস (Cloud Functions) অনুসন্ধান করুন এবং 'ক্রিয়েট ফাংশন' (Create Function) এ ক্লিক করুন।
  2. কনফিগারেশনের বিবরণ, যেমন এনভায়রনমেন্ট, ফাংশনের নাম, রিজিয়ন, ট্রিগার (এই ক্ষেত্রে, HTTPS), আপনার পছন্দের অথেনটিকেশন লিখুন, "Require HTTPS" সক্রিয় করুন এবং নেক্সট/সেভ-এ ক্লিক করুন।

a68272022df062f2.png

  1. পরবর্তী পৃষ্ঠায়, রানটাইম (জাভা ১১), সোর্স কোড (ইনলাইন বা আপলোড) নির্বাচন করুন এবং সম্পাদনা শুরু করুন।

13df616369ca5951.png

  1. রিপো থেকে java এবং pom.xml ফাইলগুলো কপি করে ইনলাইন এডিটরের নির্দিষ্ট জায়গায় পেস্ট করুন, আর যদি আপনি আপনার লোকাল এডিটর ব্যবহার করেন (যা বাঞ্ছনীয়), তাহলে রিপো থেকে সোর্সটি ক্লোন করুন।
  2. এই উদাহরণটির জন্য .java সোর্স ফাইলে প্রজেক্ট আইডি, এন্ডপয়েন্ট আইডি, লোকেশন এবং এন্ডপয়েন্ট পরিবর্তন করুন, তবে অনুগ্রহ করে মনে রাখবেন যে ক্রেডেনশিয়াল সংরক্ষণের জন্য সিক্রেট ম্যানেজার ব্যবহার করাই সর্বোত্তম পন্থা।
  3. এই কোডল্যাবের প্রয়োজনে, আপনার কপি করা সোর্স কোডের .java ক্লাসের মধ্যে থাকা MongoDB অংশগুলো কমেন্ট আউট করে দিন।

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

৭. পরিষ্কার করুন

এই পোস্টে ব্যবহৃত রিসোর্সগুলোর জন্য আপনার গুগল ক্লাউড অ্যাকাউন্টে চার্জ হওয়া এড়াতে, এই ধাপগুলো অনুসরণ করুন:

  1. Google Cloud কনসোলে, রিসোর্স পরিচালনা (Manage resources) পৃষ্ঠায় যান।
  2. প্রজেক্ট তালিকা থেকে আপনি যে প্রজেক্টটি মুছতে চান সেটি নির্বাচন করুন এবং তারপর ডিলিট-এ ক্লিক করুন।
  3. ডায়ালগ বক্সে প্রজেক্ট আইডি টাইপ করুন, এবং তারপর প্রজেক্টটি ডিলিট করতে শাট ডাউন-এ ক্লিক করুন।

৮. অভিনন্দন

অভিনন্দন! আপনি সফলভাবে Vertex AI AutoML-এ একটি মুভি স্কোর প্রেডিকশন মডেল তৈরি ও ডেপ্লয় করেছেন এবং ক্লাউড ফাংশন থেকে ডেপ্লয় করা মডেলটি ট্রিগার করেছেন।