1. ভূমিকা
এই কোডল্যাবে, আমরা শুধুমাত্র SQL ব্যবহার করে BigQuery ML কাস্টম মডেল সহ একটি মুভি স্কোর পূর্বাভাস মডেল তৈরি করব এবং মডেলটিকে VertexAI-তে স্থাপন করব। আপনি শিখবেন:
- ক্লাউড শেল ব্যবহার করে কীভাবে একটি BigQuery ডেটাসেট তৈরি করবেন এবং ফাইল থেকে ডেটা লোড করবেন
- তত্ত্বাবধানে শেখার জন্য BigQuery ML কীভাবে ব্যবহার করবেন মুভি স্কোরের পূর্বাভাসের জন্য একটি মাল্টি-ক্লাস রিগ্রেশন ভবিষ্যদ্বাণী মডেল তৈরি করতে খুব বেশি কোডিং ছাড়াই কিন্তু শুধুমাত্র SQL কোয়েরি ব্যবহার করে
আপনি কি নির্মাণ করবেন
আপনি একটি তৈরি করবেন
- একটি BigQuery ডেটাসেট যাতে টেবিল এবং মডেলের উপাদান থাকে
- SQL কোয়েরি ব্যবহার করে মুভি রেটিং পূর্বাভাসের জন্য BigQuery ML মডেল
- Vertex AI মডেল রেজিস্ট্রিতে মডেলটি স্থাপন করুন
প্রয়োজনীয়তা
- একটি ব্রাউজার, যেমন ক্রোম বা ফায়ারফক্স
- বিলিং সক্ষম সহ একটি Google ক্লাউড প্রকল্প৷
2. আপনার প্রকল্প তৈরি করুন
- Google ক্লাউড কনসোলে , প্রকল্প নির্বাচক পৃষ্ঠায়, একটি Google ক্লাউড প্রকল্প নির্বাচন করুন বা তৈরি করুন।
- নিশ্চিত করুন যে আপনার ক্লাউড প্রকল্পের জন্য বিলিং সক্ষম করা আছে৷ একটি প্রকল্পে বিলিং সক্ষম কিনা তা পরীক্ষা করতে শিখুন।
- API সক্ষম করতে BigQuery- এ নেভিগেট করুন। এছাড়াও আপনি আপনার ব্রাউজারে নিম্নলিখিত URLটি প্রবেশ করে সরাসরি BigQuery ওয়েব UI খুলতে পারেন: https://console.cloud.google.com/bigquery
3. ক্লাউড শেল সক্রিয় করুন
- আপনি ক্লাউড শেল ব্যবহার করবেন, Google ক্লাউডে চলমান একটি কমান্ড-লাইন পরিবেশ যা bq এর সাথে প্রি-লোড করা হয় : ক্লাউড কনসোল থেকে, উপরের ডানদিকে কোণায় ক্লাউড শেল সক্রিয় করুন ক্লিক করুন:
- একবার ক্লাউড শেলের সাথে সংযুক্ত হয়ে গেলে, আপনি দেখতে পাবেন যে আপনি ইতিমধ্যেই প্রমাণীকরণ করেছেন এবং প্রকল্পটি ইতিমধ্যে আপনার প্রকল্প আইডিতে সেট করা আছে। আপনি প্রমাণীকৃত কিনা তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান:
gcloud auth list
- gcloud কমান্ড আপনার প্রকল্প সম্পর্কে জানে তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান
gcloud config list project
- যদি আপনার প্রজেক্ট সেট করা না থাকে, তাহলে এটি সেট করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:
gcloud config set project <PROJECT_ID>
জিক্লাউড কমান্ড এবং ব্যবহারের জন্য ডকুমেন্টেশন পড়ুন।
4. প্রশিক্ষণ তথ্য প্রস্তুত করা
এটি সমস্ত ডেটা সম্পর্কিত প্রকল্প, পণ্য এবং অ্যাপগুলির একটি প্রধান পদক্ষেপ যা একটি সর্বোত্তম ডেটাসেট প্রস্তুত করতে এবং এটিকে আপনার ML প্রকল্পের জন্য প্রস্তুত করতে প্রযুক্তি ছাড়াও প্রচুর ডোমেন দক্ষতার প্রয়োজন। এই কোডল্যাবের উদ্দেশ্যে আমরা ইতিমধ্যে প্রস্তুত করা ডেটা ফাইল ব্যবহার করতে যাচ্ছি।
5. ডেটাসেট তৈরি এবং লোড করা
একটি BigQuery ডেটাসেট হল টেবিলের একটি সংগ্রহ৷ একটি ডেটাসেটের সমস্ত টেবিল একই ডেটা অবস্থানে সংরক্ষণ করা হয়। আপনি একটি ডেটাসেট এবং এর টেবিলগুলিতে অ্যাক্সেস সীমিত করতে কাস্টম অ্যাক্সেস নিয়ন্ত্রণগুলিও সংযুক্ত করতে পারেন।
- ক্লাউড শেলে, "চলচ্চিত্র" নামে একটি ডেটাসেট তৈরি করতে bq mk কমান্ডটি ব্যবহার করুন।
bq mk --location=<<LOCATION>> movies
একটি অঞ্চলে অবস্থান সেট করুন (এশিয়া-দক্ষিণ 1)।
- নিশ্চিত করুন যে আপনার ডেটা ফাইল (.csv) প্রস্তুত আছে। সংগ্রহস্থল ক্লোন করতে এবং প্রকল্পে নেভিগেট করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডগুলি চালান:
git clone <<repository link>>
cd movie-score
- একটি BigQuery টেবিলে আপনার CSV ফাইল লোড করতে bq লোড কমান্ড ব্যবহার করুন (দয়া করে মনে রাখবেন যে আপনি 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
অপশন বর্ণনা: –source_format=CSV - ডেটা ফাইল পার্স করার সময় CSV ডেটা ফরম্যাট ব্যবহার করে। –skip_leading_rows=1 - CSV ফাইলের প্রথম লাইনটি এড়িয়ে যায় কারণ এটি একটি হেডার সারি। Movies.movies - প্রথম অবস্থানগত যুক্তি—সংজ্ঞায়িত করে কোন টেবিলে ডেটা লোড করা উচিত৷ ./movies.csv—দ্বিতীয় অবস্থানগত যুক্তি—কোন ফাইলটি লোড করতে হবে তা নির্ধারণ করে৷ স্থানীয় ফাইলগুলি ছাড়াও, bq লোড কমান্ড gs://my_bucket/path/to/file URI-এর সাথে ক্লাউড স্টোরেজ থেকে ফাইল লোড করতে পারে। একটি স্কিমা, যা একটি JSON স্কিমা ফাইলে বা একটি কমা-বিচ্ছিন্ন তালিকা হিসাবে সংজ্ঞায়িত করা যেতে পারে (আমি একটি কমা-বিচ্ছিন্ন তালিকা ব্যবহার করেছি)। হুররে! আমাদের csv ডেটা এখন টেবিল movies.movies এ লোড করা হয়েছে।
- 3টির মধ্যে একটি উপায়ে প্রশ্ন করুন:
আমরা BigQuery এর সাথে তিনটি উপায়ে ইন্টারঅ্যাক্ট করতে পারি, আমরা এর মধ্যে দুটি চেষ্টা করব: ক। BigQuery ওয়েব UI খ. bq কমান্ড গ. API
SELECT name, rating, genre, runtime FROM movies.movies_score limit 3;
আমি প্রশ্ন চালানোর জন্য BigQuery ওয়েব SQL ওয়ার্কস্পেস ব্যবহার করেছি। এসকিউএল ওয়ার্কস্পেস এই মত দেখায়:
bq কমান্ড ব্যবহার করে:
bq query --use_legacy_sql=false \
SELECT name, rating, genre, runtime FROM movies.movies_score limit 3;
6. 1 থেকে 10 এর স্কেলে চলচ্চিত্রের রেটিং অনুমান করা
BigQuery ML লজিস্টিক রিগ্রেশন মডেল টাইপের সাথে তত্ত্বাবধানে শিক্ষাকে সমর্থন করে। আপনি বাইনারি লজিস্টিক রিগ্রেশন মডেল টাইপ ব্যবহার করতে পারেন ভবিষ্যদ্বাণী করতে একটি মান দুটি বিভাগের একটিতে পড়ে কিনা; অথবা, আপনি মাল্টি-ক্লাস রিগ্রেশন মডেল টাইপ ব্যবহার করে ভবিষ্যদ্বাণী করতে পারেন যে একটি মান একাধিক বিভাগের মধ্যে পড়ে কিনা। এগুলিকে শ্রেণীবিন্যাস সমস্যা বলা হয়, কারণ তারা ডেটাকে দুই বা ততোধিক বিভাগে শ্রেণীবদ্ধ করার চেষ্টা করে।
মডেলের পছন্দ সম্পর্কে একটি দ্রুত নোট: এটি এখানে নির্বাচিত মডেলের একটি পরীক্ষামূলক পছন্দ, ফলাফলের মূল্যায়নের উপর ভিত্তি করে আমি প্রাথমিকভাবে কয়েকটি মডেল জুড়ে দিয়েছিলাম এবং অবশেষে এটিকে সহজ রাখতে এবং ফলাফলের কাছাকাছি ফলাফল পেতে LOGISTIC REG-এর সাথে এগিয়ে গিয়েছিলাম বিভিন্ন ডাটাবেস থেকে প্রকৃত সিনেমা রেটিং। অনুগ্রহ করে মনে রাখবেন যে এটিকে মডেল বাস্তবায়নের জন্য একটি নমুনা হিসাবে বিবেচনা করা উচিত এবং অগত্যা এই ব্যবহারের ক্ষেত্রে প্রস্তাবিত মডেল নয়। এটি বাস্তবায়নের অন্য একটি উপায় হল স্কোরের ভবিষ্যদ্বাণী করার পরিবর্তে এই লজিস্টিক রিগ্রেশন মডেলটি ব্যবহার করে মুভির ফলাফল ভাল / খারাপ হিসাবে ভবিষ্যদ্বাণী করা।
আপনার প্রশিক্ষণ তথ্য নির্বাচন করুন
আমরা ইতিমধ্যেই "data_cat" ফিল্ডটি ব্যবহার করে সারণীতে মুভি ডেটা (csv-এ) 3টি বিভাগে বিভক্ত করেছি যার 3টি মানগুলির মধ্যে একটি রয়েছে - TRAIN, TEST এবং PREDICT৷ পরীক্ষা এবং প্রশিক্ষণের উদ্দেশ্যে ডেটাসেট বিভক্ত করা মডেলের একটি গুরুত্বপূর্ণ দিক। ডেটাসেট বিভাজন বোঝার বিষয়ে আপনার আরও তথ্যের প্রয়োজন হলে, ডকুমেন্টেশন দেখুন।
লজিস্টিক রিগ্রেশন মডেল তৈরি করুন
লজিস্টিক রিগ্রেশন মডেল তৈরি এবং প্রশিক্ষণের জন্য আমরা 'LOGISTIC_REG' বিকল্পের সাথে CREATE MODEL স্টেটমেন্ট ব্যবহার করতে পারি।
BigQuery ওয়েব UI এসকিউএল ওয়ার্কস্পেসে নিচের কোয়েরিটি চালান:
CREATE OR REPLACE MODEL
`movies.movies_score_model`
OPTIONS
( model_type='LOGISTIC_REG',
auto_class_weights=TRUE,
data_split_method='NO_SPLIT',
input_label_cols=[‘score']
) AS
SELECT
* EXCEPT(id, data_cat)
FROM
‘movies.movies_score'
WHERE
data_cat = 'TRAIN';
প্রশ্নের বিবরণ:
- CREATE MODEL স্টেটমেন্ট SELECT স্টেটমেন্টে ট্রেনিং ডেটা ব্যবহার করে একটি মডেলকে প্রশিক্ষণ দেয়
- বিকল্প ধারাটি মডেলের ধরন এবং প্রশিক্ষণের বিকল্পগুলি নির্দিষ্ট করে৷ এখানে, LOGISTIC_REG বিকল্পটি একটি লজিস্টিক রিগ্রেশন মডেল প্রকার নির্দিষ্ট করে। একটি মাল্টিক্লাস লজিস্টিক রিগ্রেশন মডেল বনাম একটি বাইনারি লজিস্টিক রিগ্রেশন মডেল নির্দিষ্ট করার প্রয়োজন নেই: BigQuery ML লেবেল কলামে অনন্য মানের সংখ্যার উপর ভিত্তি করে কোনটিকে প্রশিক্ষণ দিতে হবে তা নির্ধারণ করতে পারে
- data_split_method='NO_SPLIT' BQML কে ক্যোয়ারী শর্ত অনুযায়ী ডেটার উপর প্রশিক্ষণ দিতে বাধ্য করে (data_cat = 'TRAIN'), এছাড়াও মনে রাখবেন যে ফ্রেমওয়ার্ককে (বা এই ক্ষেত্রে পরিষেবা) অনুমতি দেওয়ার জন্য এই বিকল্পে 'AUTO_SPLIT' ব্যবহার করা ভাল। ট্রেন/পরীক্ষা বিভাজনের বিভাজন র্যান্ডমাইজ করুন
- input_label_cols বিকল্পটি SELECT স্টেটমেন্টের কোন কলামটি লেবেল কলাম হিসাবে ব্যবহার করবে তা নির্দিষ্ট করে। এখানে, লেবেল কলামটি স্কোর, তাই মডেলটি শিখবে স্কোরের 10টি মানের মধ্যে কোনটি সম্ভবত প্রতিটি সারিতে উপস্থিত অন্যান্য মানের উপর ভিত্তি করে
- 'auto_class_weights=TRUE' বিকল্পটি প্রশিক্ষণের ডেটাতে ক্লাস লেবেলগুলির ভারসাম্য বজায় রাখে। ডিফল্টরূপে, প্রশিক্ষণের ডেটা ওজনহীন। যদি প্রশিক্ষণের ডেটার লেবেলগুলি ভারসাম্যহীন হয়, তাহলে মডেলটি সবচেয়ে জনপ্রিয় লেবেলগুলির আরও বেশি ভবিষ্যদ্বাণী করতে শিখতে পারে
- SELECT বিবৃতিটি আমাদের csv ডেটা দিয়ে লোড করা টেবিলটিকে জিজ্ঞাসা করে। WHERE ক্লজ ইনপুট টেবিলের সারিগুলি ফিল্টার করে যাতে এই ধাপে শুধুমাত্র TRAIN ডেটাসেট নির্বাচন করা হয়
একবার তৈরি হয়ে গেলে, নিচেরটি BigQuery SQL ওয়ার্কস্পেসের SCHEMA বিভাগে প্রদর্শিত হবে:
লেবেল
বৈশিষ্ট্য
আপনার লজিস্টিক রিগ্রেশন মডেল মূল্যায়ন
আপনার মডেল তৈরি করার পরে, ML.EVALUATE ফাংশন ব্যবহার করে মডেলের কর্মক্ষমতা মূল্যায়ন করুন। ML.EVALUATE ফাংশন প্রকৃত ডেটার বিপরীতে পূর্বাভাসিত মানগুলিকে মূল্যায়ন করে। মডেলটি মূল্যায়ন করার প্রশ্নটি নিম্নরূপ:
SELECT
*
FROM
ML.EVALUATE (MODEL movies.movies_score_model,
(
SELECT
*
FROM
movies.movies_score
WHERE
data_cat= ‘TEST'
)
)
ML.EVALUATE ফাংশনটি আমাদের পূর্ববর্তী ধাপে প্রশিক্ষিত মডেল এবং একটি SELECT সাবকোয়েরি দ্বারা ফেরত মূল্যায়ন ডেটা নেয়। ফাংশনটি মডেল সম্পর্কে পরিসংখ্যানের একক সারি প্রদান করে।
যেহেতু আপনি একটি লজিস্টিক রিগ্রেশন করেছেন, ফলাফলগুলির মধ্যে আপনি উপরের স্ক্রিনশটে যে মেট্রিকগুলি দেখতে পাচ্ছেন তা অন্তর্ভুক্ত করে - যথার্থতা, রিকল, নির্ভুলতা, f1-স্কোর, log_loss, roc_auc যা মডেলের কার্যকারিতা মূল্যায়নে সত্যিই গুরুত্বপূর্ণ। আপনি ইনপুট ডেটা প্রদান না করেও ML.EVALUATE কল করতে পারেন৷ ML.EVALUATE প্রশিক্ষণের সময় প্রাপ্ত মূল্যায়ন মেট্রিক্স পুনরুদ্ধার করে, যা স্বয়ংক্রিয়ভাবে সংরক্ষিত মূল্যায়ন ডেটাসেট ব্যবহার করে।
এক নজরে মূল মেট্রিক্স:
যথার্থতা - ইতিবাচক শনাক্তকরণের কোন অনুপাত আসলে সঠিক ছিল? যথার্থতা = সত্য ইতিবাচক / (সত্য ইতিবাচক + মিথ্যা ইতিবাচক) স্মরণ করুন - প্রকৃত ইতিবাচকের কোন অনুপাত সঠিকভাবে চিহ্নিত করা হয়েছিল? প্রত্যাহার = সত্য ইতিবাচক / (সত্য ইতিবাচক + মিথ্যা নেতিবাচক) নির্ভুলতা - শ্রেণিবিন্যাসের মডেলগুলি মূল্যায়নের জন্য একটি মেট্রিক, এটি আমাদের মডেল প্রকৃতপক্ষে সঠিক ভবিষ্যদ্বাণীগুলির ভগ্নাংশ = সঠিক ভবিষ্যদ্বাণীর সংখ্যা / ভবিষ্যদ্বাণীগুলির মোট সংখ্যা
ML.PREDICT ব্যবহার করে মুভি রেটিং অনুমান করুন
নিম্নলিখিত ক্যোয়ারী ডেটাসেটের PREDICT অংশে প্রতিটি মুভির স্কোরের পূর্বাভাস দেয়।
SELECT
*
FROM
ML.PREDICT (MODEL movies.movies_score_model,
(
SELECT
*
FROM
movies.movies_score
WHERE
data_cat= ‘PREDICT'
)
)
নীচে ফলাফলগুলির একটি স্নিপেট রয়েছে:
মডেল ফলাফল 1 থেকে 10 (শ্রেণীবিন্যাস) স্কেলে সিনেমার পূর্বাভাসিত স্কোর দেখায়। আপনি নিশ্চয়ই ভাবছেন কেন প্রতিটি সিনেমার বিপরীতে বেশ কয়েকটি ভবিষ্যদ্বাণী সারি রয়েছে। এর কারণ হল মডেলটি সম্ভাব্য ভবিষ্যদ্বাণীকৃত লেবেল এবং প্রতিটির হওয়ার সম্ভাবনা হ্রাসকারী ক্রমে ফিরিয়ে দিয়েছে।
পূর্বাভাসিত ফলাফল এবং মডেল বিশ্লেষণ করুন
উপরন্তু, আপনি ভবিষ্যদ্বাণী ফলাফলের অংশ হিসাবে দুটি দুর্দান্ত বিশ্লেষণ পদক্ষেপ করতে পারেন:
- আপনার মডেল কেন এই পূর্বাভাস ফলাফল তৈরি করছে তা বোঝার জন্য, আপনি ML.EXPLAIN_PREDICT ফাংশন ব্যবহার করতে পারেন
- সাধারণভাবে আয় বন্ধনী নির্ধারণের জন্য কোন বৈশিষ্ট্যগুলি সবচেয়ে গুরুত্বপূর্ণ তা জানতে, আপনি ML.GLOBAL_EXPLAIN ফাংশন ব্যবহার করতে পারেন
আপনি ডকুমেন্টেশনে এই পদক্ষেপগুলি সম্পর্কে বিস্তারিত পড়তে পারেন।
7. BigQuery AutoML ব্যবহার করে মুভির রেটিং অনুমান করুন৷
আপনি যদি BigQuery পরিষেবাকে আপনার জন্য মডেল তৈরি করতে দিতে চান এবং আপনার মডেলের ফলাফল তৈরি না হওয়া পর্যন্ত আরাম করতে চান তাহলে AutoML দুর্দান্ত। AUTOML ক্ষমতা সরাসরি BQML-এ পাওয়া যায় (model_type=AUTOML_CLASSIFIER বা AUTOML_REGRESSOR) এবং যদি ডেটা আগে থেকেই BigQuery-এ থাকে তাহলে কল করা অনেক সহজ।
CREATE OR REPLACE MODEL movies.auto_movies
OPTIONS(model_type='AUTOML_CLASSIFIER',
input_label_cols=['score'],
budget_hours=1.0)
AS
SELECT
* EXCEPT(id, data_cat)
FROM
movies.movies_score;
মডেলটি তৈরি হয়ে গেলে, আমরা কাস্টম BQML মডেলে যেমন আলোচনা করেছি, আপনি মূল্যায়ন, পূর্বাভাস এবং EXPLAIN_PREDICT করার পদক্ষেপগুলি সম্পাদন করতে পারেন৷ ডকুমেন্টেশনে BigQuery AutoML সম্পর্কে আরও পড়ুন।
8. ভার্টেক্স এআই মডেল রেজিস্ট্রিতে BQML মডেল স্থাপন করতে এক-ক্লিক করুন
আপনি এখন Vertex AI মডেল রেজিস্ট্রির মধ্যে আপনার সমস্ত ML মডেল দেখতে পারেন, যা আপনার প্রতিষ্ঠানের জন্য মডেলগুলি পরিচালনা এবং স্থাপন করা সহজ করে তোলে। এর মধ্যে BigQuery ML, AutoML এবং কাস্টম প্রশিক্ষিত মডেলগুলির সাথে তৈরি মডেলগুলি অন্তর্ভুক্ত রয়েছে৷ আপনি এটি কীভাবে করবেন তা এখানে:
CREATE OR REPLACE MODEL
`movies.movies_score_model`
OPTIONS
( model_type='LOGISTIC_REG',
auto_class_weights=TRUE,
data_split_method='NO_SPLIT',
model_registry='vertex_ai',
vertex_ai_model_version_aliases=['logistic_reg', 'experimental'],
input_label_cols=[‘score']
) AS
SELECT
* EXCEPT(id, data_cat)
FROM
‘movies.movies_score'
WHERE
data_cat = 'TRAIN';
মডেল_রেজিস্ট্রি="vertex_ai" বিকল্পটি CREATE MODEL ক্যোয়ারীতে অন্তর্ভুক্ত করুন যাতে BigQuery ML কোন মডেলগুলিকে স্পষ্টভাবে Vertex AI মডেল রেজিস্ট্রিতে নিবন্ধন করতে চায় তা বেছে নিতে পারে৷ আপনি এই ব্লগে এই সম্পর্কে আরো পড়তে পারেন.
9. সারাংশ
30 মিনিটেরও কম সময়ে, আমাদের আছে:
- বিশ্লেষণ প্রকল্পের জন্য আমাদের ডাটাবেস হিসাবে BigQuery সেট আপ করুন
- শুধুমাত্র BigQuery ডেটা SQL ব্যবহার করে কাস্টম ভবিষ্যদ্বাণী মডেল তৈরি করা হয়েছে এবং অন্য কোন কোডিং নয়
- শুধুমাত্র SQL কোয়েরি ব্যবহার করে BQ Auto ML মডেল তৈরি করা হয়েছে
- Vertex AI মডেল রেজিস্ট্রিতে BQML মডেল স্থাপন করা হয়েছে
10. পরিষ্কার করুন
এই পোস্টে ব্যবহৃত সংস্থানগুলির জন্য আপনার Google ক্লাউড অ্যাকাউন্টে চার্জ এড়াতে, এই পদক্ষেপগুলি অনুসরণ করুন:
- Google ক্লাউড কনসোলে, সম্পদ পরিচালনা পৃষ্ঠাতে যান
- প্রকল্প তালিকায়, আপনি যে প্রকল্পটি মুছতে চান সেটি নির্বাচন করুন এবং তারপরে মুছুন ক্লিক করুন
- ডায়ালগে, প্রজেক্ট আইডি টাইপ করুন এবং তারপরে প্রোজেক্ট মুছে ফেলতে শাট ডাউন ক্লিক করুন
11. অভিনন্দন
অভিনন্দন! আপনি সফলভাবে BQML কাস্টম এবং অটোএমএল সহ একটি মুভি স্কোর পূর্বাভাস মডেল তৈরি করেছেন এবং মডেলটিকে Vertex AI মডেল রেজিস্ট্রিতে স্থাপন করেছেন এবং এই সমস্ত শুধুমাত্র SQL ব্যবহার করে৷