BigQuery-এ অনায়াসে ডেটা প্রিপ: একটি লো-কোডারের গাইড

1. ভূমিকা

ডেটা বিশ্লেষকরা প্রায়শই JSON পেলোডের মতো আধা-গঠিত বিন্যাসে লক করা মূল্যবান ডেটার সম্মুখীন হন। বিশ্লেষণ এবং মেশিন লার্নিংয়ের জন্য এই ডেটা বের করা এবং প্রস্তুত করা ঐতিহ্যগতভাবে একটি উল্লেখযোগ্য প্রযুক্তিগত বাধা, ঐতিহ্যগতভাবে জটিল ETL স্ক্রিপ্ট এবং ডেটা ইঞ্জিনিয়ারিং দলের হস্তক্ষেপ প্রয়োজন।

এই কোডল্যাব ডেটা বিশ্লেষকদের স্বাধীনভাবে এই চ্যালেঞ্জ কাটিয়ে উঠতে একটি প্রযুক্তিগত ব্লুপ্রিন্ট প্রদান করে। এটি একটি এন্ড-টু-এন্ড এআই পাইপলাইন নির্মাণের জন্য একটি "লো-কোড" পদ্ধতির প্রদর্শন করে। আপনি শিখবেন কীভাবে Google ক্লাউড স্টোরেজের একটি কাঁচা CSV ফাইল থেকে একটি AI-চালিত সুপারিশ বৈশিষ্ট্যকে পাওয়ার করতে যায়, শুধুমাত্র BigQuery স্টুডিওতে উপলব্ধ টুলগুলি ব্যবহার করে৷

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

পূর্বশর্ত

  • Google ক্লাউড কনসোলের একটি প্রাথমিক ধারণা
  • কমান্ড লাইন ইন্টারফেস এবং গুগল ক্লাউড শেলের প্রাথমিক দক্ষতা

আপনি কি শিখবেন

  • BigQuery ডেটা প্রিপারেশন ব্যবহার করে কীভাবে সরাসরি Google ক্লাউড স্টোরেজ থেকে একটি CSV ফাইল ইনজেস্ট করবেন এবং রূপান্তর করবেন।
  • আপনার ডেটার মধ্যে নেস্টেড JSON স্ট্রিংগুলিকে পার্স এবং সমতল করতে নো-কোড রূপান্তরগুলি কীভাবে ব্যবহার করবেন৷
  • কীভাবে একটি BigQuery ML রিমোট মডেল তৈরি করবেন যা পাঠ্য এম্বেডিংয়ের জন্য একটি Vertex AI ফাউন্ডেশন মডেলের সাথে সংযোগ করে।
  • পাঠ্য ডেটাকে সংখ্যাসূচক ভেক্টরে রূপান্তর করতে ML.GENERATE_TEXT_EMBEDDING ফাংশনটি কীভাবে ব্যবহার করবেন।
  • কোসাইন সাদৃশ্য গণনা করতে এবং আপনার ডেটাসেটে সবচেয়ে অনুরূপ আইটেমগুলি খুঁজে পেতে ML.DISTANCE ফাংশনটি কীভাবে ব্যবহার করবেন৷

আপনি কি প্রয়োজন হবে

  • একটি Google ক্লাউড অ্যাকাউন্ট এবং Google ক্লাউড প্রকল্প
  • একটি ওয়েব ব্রাউজার যেমন ক্রোম

মূল ধারণা

  • BigQuery ডেটা প্রস্তুতি: BigQuery স্টুডিওর মধ্যে একটি টুল যা ডেটা পরিষ্কার এবং প্রস্তুতির জন্য একটি ইন্টারেক্টিভ, ভিজ্যুয়াল ইন্টারফেস প্রদান করে। এটি রূপান্তরের পরামর্শ দেয় এবং ব্যবহারকারীদের ন্যূনতম কোড সহ ডেটা পাইপলাইন তৈরি করতে দেয়।
  • BQML রিমোট মডেল: একটি BigQuery ML অবজেক্ট যা Vertex AI (যেমন মিথুন) তে হোস্ট করা একটি মডেলের প্রক্সি হিসাবে কাজ করে। এটি আপনাকে পরিচিত এসকিউএল সিনট্যাক্স ব্যবহার করে শক্তিশালী, প্রাক-প্রশিক্ষিত এআই মডেল আহ্বান করতে দেয়।
  • ভেক্টর এমবেডিং: তথ্যের একটি সংখ্যাসূচক উপস্থাপনা, যেমন পাঠ্য বা চিত্র। এই কোডল্যাবে, আমরা আর্টওয়ার্কের টেক্সট বর্ণনাকে ভেক্টরে রূপান্তর করব, যেখানে একই ধরনের বর্ণনার ফলে বহু-মাত্রিক স্পেসে একসাথে "ঘনিষ্ঠ" ভেক্টর হয়।
  • কোসাইন সাদৃশ্য: একটি গাণিতিক পরিমাপ যা দুইটি ভেক্টর কতটা সমান তা নির্ধারণ করতে ব্যবহৃত হয়। এটি আমাদের সুপারিশ ইঞ্জিনের যুক্তির মূল, ML.DISTANCE ফাংশন দ্বারা "সর্বাধিক কাছের" (সবচেয়ে অনুরূপ) আর্টওয়ার্কগুলি খুঁজে পেতে ব্যবহৃত হয়৷

2. সেটআপ এবং প্রয়োজনীয়তা

ক্লাউড শেল শুরু করুন

যদিও Google ক্লাউড আপনার ল্যাপটপ থেকে দূরবর্তীভাবে পরিচালিত হতে পারে, এই কোডল্যাবে আপনি Google ক্লাউড শেল ব্যবহার করবেন, একটি কমান্ড লাইন পরিবেশ যা ক্লাউডে চলছে।

Google ক্লাউড কনসোল থেকে, উপরের ডানদিকে টুলবারে ক্লাউড শেল আইকনে ক্লিক করুন:

55efc1aaa7a4d3ad.png

পরিবেশের ব্যবস্থা করতে এবং সংযোগ করতে এটি শুধুমাত্র কয়েক মুহূর্ত নিতে হবে। এটি সমাপ্ত হলে, আপনি এই মত কিছু দেখতে হবে:

7ffe5cbb04455448.png

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

প্রয়োজনীয় API সক্রিয় করুন এবং পরিবেশ কনফিগার করুন

ক্লাউড শেলের ভিতরে, আপনার প্রোজেক্ট আইডি সেট করতে, এনভায়রনমেন্ট ভেরিয়েবল সংজ্ঞায়িত করতে এবং এই কোডল্যাবের জন্য প্রয়োজনীয় সমস্ত API সক্রিয় করতে নিম্নলিখিত কমান্ডগুলি চালান৷

export PROJECT_ID=$(gcloud config get-value project)
gcloud config set project $PROJECT_ID
export LOCATION="US"
export GCS_BUCKET_NAME="met-artworks-source-${PROJECT_ID}" # Must be a globally unique name

gcloud services enable bigquery.googleapis.com \
                       storage.googleapis.com \
                       aiplatform.googleapis.com \
                       bigqueryconnection.googleapis.com

একটি BigQuery ডেটাসেট এবং একটি GCS বাকেট তৈরি করুন৷

আমাদের সারণী রাখার জন্য একটি নতুন BigQuery ডেটাসেট এবং আমাদের উৎস CSV ফাইল সংরক্ষণ করার জন্য একটি Google ক্লাউড স্টোরেজ বাকেট তৈরি করুন৷

# Create the BigQuery Dataset in the US multi-region
bq --location=$LOCATION mk --dataset $PROJECT_ID:met_art_dataset

# Create the GCS Bucket
gcloud storage buckets create gs://$GCS_BUCKET_NAME --project=$PROJECT_ID --location=$LOCATION

নমুনা ডেটা প্রস্তুত করুন এবং আপলোড করুন

নমুনা CSV ফাইল ধারণকারী GitHub সংগ্রহস্থল ক্লোন করুন এবং তারপর আপনি এইমাত্র তৈরি করা GCS বালতিতে আপলোড করুন।

# Clone the repository
git clone https://github.com/GoogleCloudPlatform/devrel-demos.git

# Navigate to the correct directory
cd devrel-demos/data-analytics/dataprep

# Upload the CSV file to your GCS bucket
gsutil cp dataprep-met-bqml.csv gs://$GCS_BUCKET_NAME/

3. ডেটা প্রস্তুতি সহ GCS থেকে BigQuery পর্যন্ত

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

ডেটা প্রস্তুতি চালু করুন এবং উত্সের সাথে সংযোগ করুন

  1. Google ক্লাউড কনসোলে, BigQuery স্টুডিওতে নেভিগেট করুন।

8825270159447e89.png

  1. স্বাগত পৃষ্ঠায়, শুরু করতে ডেটা প্রস্তুতি কার্ডে ক্লিক করুন।

8b7b3ce147a55647.png

  1. এটি আপনার প্রথমবার হলে, আপনাকে প্রয়োজনীয় API সক্ষম করতে হতে পারে। "Gemini for Google Cloud API" এবং "BigQuery ইউনিফাইড API" উভয়ের জন্য সক্ষম করুন ক্লিক করুন৷ একবার সেগুলি সক্ষম হয়ে গেলে, আপনি এই প্যানেলটি বন্ধ করতে পারেন৷

e0a128b8b63137e6.png

1ab7db12bd624bff.png

  1. প্রধান ডেটা প্রস্তুতি উইন্ডোতে, "অন্যান্য ডেটা উত্স চয়ন করুন" এর অধীনে, Google ক্লাউড স্টোরেজ ক্লিক করুন৷ এটি ডানদিকে "ডেটা প্রস্তুত করুন" প্যানেলটি খুলবে।

5ef56d07d54abab4.png

  1. আপনার সোর্স ফাইল নির্বাচন করতে ব্রাউজ বোতামে ক্লিক করুন।

95899fcbb7383967.png

  1. আপনার আগে তৈরি করা GCS বাকেটটিতে নেভিগেট করুন ( met-artworks-source-... ) এবং dataprep-met-bqml.csv ফাইলটি নির্বাচন করুন। নির্বাচন ক্লিক করুন.

3590d0841677ad01.png

107797a8f134b248.png

  1. এর পরে, আপনাকে একটি স্টেজিং টেবিল কনফিগার করতে হবে।
  2. ডেটাসেটের জন্য, আপনার তৈরি করা met_art_dataset নির্বাচন করুন।
  3. টেবিল নামের জন্য, একটি নাম লিখুন, উদাহরণস্বরূপ, temp
  4. তৈরি করুন ক্লিক করুন।

694a7064eb1f2109.png

ডেটা ট্রান্সফর্ম এবং ক্লিন করুন

  1. BigQuery-এর ডেটা প্রস্তুতি এখন CSV-এর একটি প্রিভিউ লোড করবে। label_details_json কলাম খুঁজুন, যেটিতে দীর্ঘ JSON স্ট্রিং রয়েছে। এটি নির্বাচন করতে কলাম হেডারে ক্লিক করুন।

345e09d8222ef0d6.png

  1. ডানদিকের সাজেশন প্যানেলে, BigQuery-এ Gemini স্বয়ংক্রিয়ভাবে প্রাসঙ্গিক রূপান্তরের পরামর্শ দেবে। "Flatening column label_details_json " কার্ডে প্রয়োগ বোতামে ক্লিক করুন। এটি নেস্টেড ক্ষেত্রগুলিকে ( description , score , ইত্যাদি) তাদের নিজস্ব শীর্ষ-স্তরের কলামে বের করবে।

a432edf49f182ea3.png

  1. অবজেক্ট_আইডি কলামে ক্লিক করুন এবং "কলাম object_id টাইপ string থেকে int64 তে রূপান্তর করে" এ প্রয়োগ বোতামে ক্লিক করুন।

46523a5dd6b7c495.png

a190553c0a153393.png

গন্তব্য সংজ্ঞায়িত করুন এবং কাজ চালান

  1. ডানদিকের প্যানেলে, আপনার রূপান্তরের আউটপুট কনফিগার করতে গন্তব্য বোতামে ক্লিক করুন।

90b0d1e641d6ace9.png

  1. গন্তব্য বিবরণ সেট করুন:
  2. ডেটাসেটটি met_art_dataset দিয়ে আগে থেকে পূর্ণ হওয়া উচিত।
  3. আউটপুটের জন্য একটি নতুন টেবিলের নাম লিখুন: met_art_flatten_table
  4. Save এ ক্লিক করুন।

cda9b07bfd5ff6a3.png

  1. রান বোতামে ক্লিক করুন, এবং ডেটা প্রস্তুতির কাজ শেষ না হওয়া পর্যন্ত অপেক্ষা করুন।

9be3f3baecc7ee93.png

  1. আপনি পৃষ্ঠার নীচের এক্সিকিউশন ট্যাবে কাজের অগ্রগতি নিরীক্ষণ করতে পারেন। কিছুক্ষণ পরে, কাজ শেষ হবে।

df820e4a5183e9b9.png

f9329c88a7fdb535.png

4. BQML এর সাথে ভেক্টর এমবেডিং তৈরি করা

এখন যেহেতু আমাদের ডেটা পরিষ্কার এবং কাঠামোগত, আমরা মূল AI টাস্কের জন্য BigQuery ML ব্যবহার করব: আর্টওয়ার্কের পাঠ্য বিবরণকে সংখ্যাসূচক ভেক্টর এম্বেডিংয়ে রূপান্তর করা।

একটি BigQuery সংযোগ তৈরি করুন৷

BigQuery-কে Vertex AI পরিষেবার সাথে যোগাযোগ করার অনুমতি দিতে, আপনাকে প্রথমে একটি BigQuery সংযোগ তৈরি করতে হবে।

  1. BigQuery স্টুডিওর এক্সপ্লোরার প্যানেলে, "+ ডেটা যোগ করুন" বোতামে ক্লিক করুন।

eef6c5c73cf8736.png

  1. ডানদিকের প্যানেলে, Vertex AI টাইপ করতে অনুসন্ধান বারটি ব্যবহার করুন। ফিল্টার করা তালিকা থেকে এটি এবং তারপর BigQuery ফেডারেশন নির্বাচন করুন।

32e9632e84dd1ae7.png

7feedffb98bb288a.png

  1. এটি বহিরাগত ডেটা উত্স ফর্ম খুলবে। নিম্নলিখিত বিবরণ পূরণ করুন:
  • সংযোগ আইডি: সংযোগ আইডি লিখুন (যেমন, bqml-vertex-connection )
  • অবস্থানের ধরন: বহু-অঞ্চল নির্বাচন করা হয়েছে তা নিশ্চিত করুন।
  • অবস্থান: অবস্থান নির্বাচন করুন (যেমন, US )।

c0681e76440a18cd.png

  1. সংযোগ তৈরি হয়ে গেলে, একটি নিশ্চিতকরণ ডায়ালগ প্রদর্শিত হবে। এক্সপ্লোরার ট্যাবে সংযোগ বা বাহ্যিক সংযোগগুলিতে যান ক্লিক করুন। সংযোগের বিশদ পৃষ্ঠায়, আপনার ক্লিপবোর্ডে সম্পূর্ণ ID অনুলিপি করুন। এটি সেই পরিষেবা অ্যাকাউন্ট পরিচয় যা BigQuery Vertex AI কল করতে ব্যবহার করবে।

fd0d82f3265f1def.png

  1. Google ক্লাউড কনসোল নেভিগেশন মেনুতে, IAM & admin > IAM-এ যান।

de8a0fe28f8dee8f.png

  1. "অ্যাক্সেস মঞ্জুর করুন" বোতামে ক্লিক করুন
  2. নতুন প্রিন্সিপাল ক্ষেত্রে আগের ধাপে আপনি যে পরিষেবা অ্যাকাউন্টটি কপি করেছেন সেটি আটকান।
  3. ভূমিকা ড্রপডাউনে " Vertex AI ব্যবহারকারী " বরাদ্দ করুন এবং "সংরক্ষণ করুন" এ ক্লিক করুন।

8b2c89b8c97e37cc.png

এই গুরুত্বপূর্ণ পদক্ষেপটি নিশ্চিত করে যে BigQuery-এর কাছে আপনার পক্ষে Vertex AI মডেলগুলি ব্যবহার করার জন্য যথাযথ অনুমোদন রয়েছে।

একটি দূরবর্তী মডেল তৈরি করুন

BigQuery স্টুডিওতে, একটি নতুন SQL এডিটর ট্যাব খুলুন। এখানে আপনি মিথুনের সাথে সংযোগকারী BQML মডেলটিকে সংজ্ঞায়িত করবেন।

এই বিবৃতি একটি নতুন মডেল প্রশিক্ষণ না. এটি সহজভাবে BigQuery-এ একটি রেফারেন্স তৈরি করে যা আপনার অনুমোদিত সংযোগ ব্যবহার করে একটি শক্তিশালী, প্রাক-প্রশিক্ষিত gemini-embedding-001 মডেলের দিকে নির্দেশ করে।

নীচের সমগ্র SQL স্ক্রিপ্ট কপি করুন এবং BigQuery সম্পাদকে পেস্ট করুন।

ba0a9c9d951c0f71.png

CREATE OR REPLACE MODEL `met_art_dataset.embedding_model`
REMOTE WITH CONNECTION `US.bqml-vertex-connection`
OPTIONS (endpoint = 'gemini-embedding-001');

এমবেডিং তৈরি করুন

এখন, আমরা ভেক্টর এমবেডিং তৈরি করতে আমাদের BQML মডেল ব্যবহার করব। প্রতিটি সারির জন্য একটি একক পাঠ্য লেবেল রূপান্তর করার পরিবর্তে, আমরা প্রতিটি শিল্পকর্মের জন্য একটি সমৃদ্ধ, আরও অর্থপূর্ণ "অর্থবোধক সারাংশ" তৈরি করতে আরও পরিশীলিত পদ্ধতি ব্যবহার করব। এর ফলে উচ্চ-মানের এম্বেডিং এবং আরও সঠিক সুপারিশ পাওয়া যাবে।

এই ক্যোয়ারীটি একটি গুরুত্বপূর্ণ প্রিপ্রসেসিং ধাপ সঞ্চালন করে:

  • এটি প্রথমে একটি অস্থায়ী টেবিল তৈরি করতে একটি WITH ক্লজ ব্যবহার করে।
  • এটির ভিতরে, আমরা একটি একক শিল্পকর্ম সম্পর্কে সমস্ত তথ্য এক সারিতে একত্রিত করতে প্রতিটি object_id GROUP BY
  • আমরা STRING_AGG ফাংশন ব্যবহার করে সমস্ত পৃথক টেক্সট বর্ণনাকে একত্রিত করি (যেমন 'পোর্ট্রেট', 'ওম্যান', 'ক্যানভাসে তেল') একটি একক, ব্যাপক পাঠ্য স্ট্রিং-এ তাদের প্রাসঙ্গিক স্কোর অনুসারে ক্রমানুসারে।

এই সম্মিলিত টেক্সটটি AI-কে আর্টওয়ার্ক সম্পর্কে আরও সমৃদ্ধ প্রসঙ্গ দেয়, যা আরও সূক্ষ্ম এবং শক্তিশালী ভেক্টর এম্বেডিংয়ের দিকে পরিচালিত করে।

একটি নতুন SQL এডিটর ট্যাবে, পেস্ট করুন এবং নিম্নলিখিত ক্যোয়ারী চালান:

CREATE OR REPLACE TABLE `met_art_dataset.artwork_embeddings` AS
WITH artwork_semantic_text AS (
  -- First, we group all text labels for each artwork into a single row.
  SELECT
    object_id,
    ANY_VALUE(title) AS title,
    ANY_VALUE(artist_display_name) AS artist_display_name,
    -- STRING_AGG combines all descriptions into one comma-separated string,
    -- ordering them by score to put the most relevant labels first.
    STRING_AGG(description, ', ' ORDER BY score DESC) AS aggregated_labels
  FROM
    `met_art_dataset.met_art_flatten_table`
  GROUP BY
    object_id
)
SELECT
  *
FROM ML.GENERATE_TEXT_EMBEDDING(
  MODEL `met_art_dataset.embedding_model`,
  (
    -- We pass the new, combined string as the content to be embedded.
    SELECT
      object_id,
      title,
      artist_display_name,
      aggregated_labels AS content
    FROM
      artwork_semantic_text
  )
);

এই প্রশ্নটি প্রায় 10 মিনিট সময় নেবে৷ একবার ক্যোয়ারী সম্পূর্ণ হলে, ফলাফল যাচাই করুন। এক্সপ্লোরার প্যানেলে, আপনার নতুন artwork_embeddings টেবিলটি খুঁজুন এবং এটিতে ক্লিক করুন। টেবিল স্কিমা ভিউয়ারে, আপনি object_id দেখতে পাবেন, নতুন ml_generate_text_embedding_result কলাম যেখানে ভেক্টর রয়েছে, এবং এছাড়াও সমষ্টিগত_লেবেল কলাম যা উৎস টেক্সট হিসাবে ব্যবহৃত হয়েছিল।

c894ad3624d710e7.png

5. এসকিউএল এর সাথে অনুরূপ আর্টওয়ার্ক খোঁজা

আমাদের উচ্চ-মানের, প্রসঙ্গ-সমৃদ্ধ ভেক্টর এম্বেডিং তৈরি করে, থিম্যাটিকভাবে অনুরূপ আর্টওয়ার্কগুলি খুঁজে পাওয়া একটি SQL কোয়েরি চালানোর মতোই সহজ। আমরা ভেক্টরের মধ্যে কোসাইন সাদৃশ্য গণনা করতে ML.DISTANCE ফাংশন ব্যবহার করি। যেহেতু আমাদের এম্বেডিংগুলি একত্রিত টেক্সট থেকে তৈরি করা হয়েছিল, তাই মিলের ফলাফলগুলি আরও নির্ভুল এবং প্রাসঙ্গিক হবে৷

  1. একটি নতুন SQL সম্পাদক ট্যাবে, নিম্নলিখিত ক্যোয়ারী পেস্ট করুন। এই প্রশ্নটি একটি সুপারিশ অ্যাপ্লিকেশনের মূল যুক্তি অনুকরণ করে:
  • এটি প্রথমে একটি একক, নির্দিষ্ট আর্টওয়ার্কের জন্য ভেক্টর নির্বাচন করে (এই ক্ষেত্রে, ভ্যান গঘের "সাইপ্রেসিস," যার একটি object_id 436535 রয়েছে)।
  • এটি তারপর সেই একক ভেক্টর এবং টেবিলের অন্যান্য সমস্ত ভেক্টরের মধ্যে দূরত্ব গণনা করে।
  • অবশেষে, এটি শীর্ষ 10টি নিকটতম মিলগুলি খুঁজে পেতে দূরত্ব অনুসারে ফলাফলগুলি অর্ডার করে (একটি ছোট দূরত্ব মানে আরও অনুরূপ)।
WITH selected_artwork AS (
  SELECT text_embedding
  FROM `met_art_dataset.artwork_embeddings`
  WHERE object_id = 436535
)
SELECT
  base.object_id,
  base.title,
  base.artist_display_name,
  -- ML.DISTANCE calculates the cosine distance between the two vectors.
  -- A smaller distance means the items are more similar.
  ML.DISTANCE(base.text_embedding, (SELECT text_embedding FROM selected_artwork), 'COSINE') AS similarity_distance
FROM
  `met_art_dataset.artwork_embeddings` AS base, selected_artwork
ORDER BY
  similarity_distance
LIMIT 10;
  1. প্রশ্নটি চালান। ফলাফলগুলি object_id তালিকাভুক্ত করবে, শীর্ষে নিকটতম মিলগুলি সহ। উৎস আর্টওয়ার্কটি প্রথমে 0 এর দূরত্বের সাথে প্রদর্শিত হবে। এটি হল মূল যুক্তি যা একটি AI সুপারিশ ইঞ্জিনকে শক্তি দেয় এবং আপনি শুধুমাত্র SQL ব্যবহার করে এটি সম্পূর্ণরূপে BigQuery-এর মধ্যে তৈরি করেছেন।

6. (ঐচ্ছিক) ক্লাউড শেল-এ ডেমো চালানো

এই কোডল্যাব থেকে ধারণাগুলিকে জীবন্ত করতে, আপনি যে সংগ্রহস্থলটি ক্লোন করেছেন তাতে একটি সাধারণ ওয়েব অ্যাপ্লিকেশন রয়েছে৷ এই ঐচ্ছিক ডেমোটি একটি ভিজ্যুয়াল সার্চ ইঞ্জিনকে শক্তিশালী করতে আপনার তৈরি করা artwork_embeddings টেবিল ব্যবহার করে, যা আপনাকে AI-চালিত সুপারিশগুলিকে কার্যকরভাবে দেখতে দেয়।

ক্লাউড শেলে ডেমো চালানোর জন্য, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. এনভায়রনমেন্ট ভেরিয়েবল সেট করুন: অ্যাপ্লিকেশন চালানোর আগে আপনাকে PROJECT_ID এবং BIGQUERY_DATASET এনভায়রনমেন্ট ভেরিয়েবল সেট করতে হবে।
export PROJECT_ID=$(gcloud config get-value project)
export BIGQUERY_DATASET=met_art_dataset
export REGION='us-central1'
bq cp bigquery-public-data:the_met.images $PROJECT_ID:met_art_dataset.images
  1. নির্ভরতা ইনস্টল করুন এবং ব্যাকএন্ড সার্ভার শুরু করুন।
cd ~/devrel-demos/data-analytics/dataprep/backend/ && npm install
node server.js
  1. ফ্রন্টএন্ড অ্যাপ্লিকেশন চালানোর জন্য আপনার একটি দ্বিতীয় টার্মিনাল ট্যাবের প্রয়োজন হবে। একটি নতুন ক্লাউড শেল ট্যাব খুলতে "+" আইকনে ক্লিক করুন।

bbc9ecde0ff417f4.png

  1. এখন, নতুন ট্যাবে, নির্ভরতা ইনস্টল করতে এবং ফ্রন্টএন্ড সার্ভার চালানোর জন্য নিম্নলিখিত কমান্ডটি চালান
cd ~/devrel-demos/data-analytics/dataprep/frontend/ && npm install
npm run dev
  1. অ্যাপ্লিকেশনটির পূর্বরূপ দেখুন: ক্লাউড শেল টুলবারে, ওয়েব প্রিভিউ আইকনে ক্লিক করুন এবং পোর্ট 5173-এ প্রিভিউ নির্বাচন করুন৷ এটি একটি নতুন ব্রাউজার ট্যাব খুলবে যেখানে অ্যাপ্লিকেশনটি চলছে৷ আপনি এখন আর্টওয়ার্কগুলি অনুসন্ধান করতে এবং কর্মে মিল অনুসন্ধান দেখতে অ্যাপ্লিকেশনটি ব্যবহার করতে পারেন৷

d4dc326a225354c9.png

b9956f2c29af2864.png

  1. এই ভিজ্যুয়াল ডেমোটিকে আপনি BigQuery SQL এডিটরে যে কাজটি করেছিলেন তার সাথে সংযোগ করতে, অনুসন্ধান বারে "সাইপ্রেস" টাইপ করার চেষ্টা করুন। এটি একই আর্টওয়ার্ক( object_id=436535 ) আপনি ML.DISTANCE ক্যোয়ারীতে ব্যবহার করেছেন৷ তারপর সাইপ্রেস ইমেজটিতে ক্লিক করুন যখন এটি বাম প্যানেলে প্রদর্শিত হবে, আপনি ডানদিকে ফলাফলগুলি পর্যবেক্ষণ করবেন। অ্যাপ্লিকেশনটি সবচেয়ে অনুরূপ আর্টওয়ার্কগুলি প্রদর্শন করে, দৃশ্যত আপনার তৈরি ভেক্টর সাদৃশ্য অনুসন্ধানের শক্তি প্রদর্শন করে।

a030b3ee20c8703d.png

7. আপনার পরিবেশ পরিষ্কার করা

এই কোডল্যাবে ব্যবহৃত সংস্থানগুলির জন্য আপনার Google ক্লাউড অ্যাকাউন্টে ভবিষ্যতের চার্জগুলি এড়াতে, আপনার তৈরি করা সংস্থানগুলি মুছতে হবে৷

পরিষেবা অ্যাকাউন্ট, BigQuery সংযোগ, GCS বাকেট এবং BigQuery ডেটাসেট সরাতে আপনার ক্লাউড শেল টার্মিনালে নিম্নলিখিত কমান্ডগুলি চালান৷

# Re-run these exports if your Cloud Shell session timed out
export PROJECT_ID=$(gcloud config get-value project)
export LOCATION="US"
export GCS_BUCKET_NAME="met-artworks-source-${PROJECT_ID}"
export BQ_CONNECTION_ID="bqml-vertex-connection"

BigQuery সংযোগ এবং GCS বাকেট সরান

# Delete the BigQuery connection
bq rm --connection $LOCATION.$BQ_CONNECTION_ID

# Delete the GCS bucket and its contents
gcloud storage rm --recursive gs://$GCS_BUCKET_NAME

BigQuery ডেটাসেট মুছুন

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

# Manually type this command to confirm you are deleting the correct dataset
bq rm -r -f --dataset $PROJECT_ID:met_art_dataset

8. অভিনন্দন!

আপনি সফলভাবে এন্ড-টু-এন্ড, এআই-চালিত ডেটা পাইপলাইন তৈরি করেছেন।

আপনি একটি GCS বালতিতে একটি কাঁচা CSV ফাইল দিয়ে শুরু করেছেন, জটিল JSON ডেটা গ্রহণ এবং সমতল করতে BigQuery ডেটা প্রিপ-এর লো-কোড ইন্টারফেস ব্যবহার করেছেন, একটি জেমিনি মডেলের সাথে উচ্চ-মানের ভেক্টর এম্বেডিং তৈরি করতে একটি শক্তিশালী BQML রিমোট মডেল তৈরি করেছেন এবং সম্পর্কিত আইটেমগুলি খুঁজে পেতে একটি সাদৃশ্য অনুসন্ধান ক্যোয়ারী সম্পাদন করেছেন৷

আপনি এখন Google ক্লাউডে AI-সহায়ক ওয়ার্কফ্লো তৈরি করার জন্য মৌলিক প্যাটার্ন দিয়ে সজ্জিত, কাঁচা ডেটাকে গতি এবং সরলতার সাথে বুদ্ধিমান অ্যাপ্লিকেশনে রূপান্তরিত করে৷

পরবর্তী কি?

  • লুকার স্টুডিওতে আপনার ফলাফলগুলি কল্পনা করুন: আপনার artwork_embeddings BigQuery টেবিলটি সরাসরি লুকার স্টুডিওতে সংযুক্ত করুন (এটি বিনামূল্যে!) আপনি একটি ইন্টারেক্টিভ ড্যাশবোর্ড তৈরি করতে পারেন যেখানে ব্যবহারকারীরা একটি আর্টওয়ার্ক নির্বাচন করতে পারে এবং কোন ফ্রন্টএন্ড কোড না লিখে সবচেয়ে অনুরূপ টুকরোগুলির একটি ভিজ্যুয়াল গ্যালারি দেখতে পারে।
  • নির্ধারিত প্রশ্নগুলির সাথে স্বয়ংক্রিয়: আপনার এম্বেডিংগুলি আপ-টু-ডেট রাখতে আপনার জটিল অর্কেস্ট্রেশন সরঞ্জামের প্রয়োজন নেই। দৈনিক বা সাপ্তাহিক ভিত্তিতে স্বয়ংক্রিয়ভাবে ML.GENERATE_TEXT_EMBEDDING ক্যোয়ারী পুনরায় চালানোর জন্য BigQuery-এর অন্তর্নির্মিত নির্ধারিত কোয়েরি বৈশিষ্ট্য ব্যবহার করুন।
  • Gemini CLI-এর সাহায্যে একটি অ্যাপ তৈরি করুন: সাধারণ পাঠ্যে আপনার প্রয়োজনীয়তা বর্ণনা করে একটি সম্পূর্ণ অ্যাপ্লিকেশন তৈরি করতে Gemini CLI ব্যবহার করুন। এটি আপনাকে পাইথন কোড ম্যানুয়ালি না লিখে আপনার মিল অনুসন্ধানের জন্য দ্রুত একটি কার্যকরী প্রোটোটাইপ তৈরি করতে দেয়।
  • ডকুমেন্টেশন পড়ুন: