ম্যানেজড এআই ফাংশন এবং SQL ব্যবহার করে BigQuery-তে সিমান্টিক বিশ্লেষণ

১. স্বাগতম

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

bigquery-public-data.cymbal_pets পাবলিক ডেটাসেটটি ব্যবহার করে, আপনি পোষা প্রাণীর সরঞ্জাম ও আনুষঙ্গিক সামগ্রীর একটি ই-কমার্স রিটেইলার Cymbal Pets- এর একজন ডেটা অ্যানালিস্টের ভূমিকায় অবতীর্ণ হবেন।

SQL কোয়েরির সরাসরি ভিতরে শব্দার্থিক বিশ্লেষণ

ঐতিহ্যগতভাবে, এন্টারপ্রাইজ ডেটাসেটে মেশিন লার্নিং বা লার্জ ল্যাঙ্গুয়েজ মডেল (এলএলএম) প্রয়োগ করার জন্য ডেটা ওয়্যারহাউস থেকে ডেটা বের করে বাহ্যিক পাইথন নোটবুক পরিবেশে নিয়ে যেতে হতো। এর জন্য বিশেষ ডেটা ইঞ্জিনিয়ারিং পাইপলাইন এবং এমএল দক্ষতার প্রয়োজন হতো।

BigQuery-এর পরিচালিত AI ফাংশনগুলো—যার মধ্যে AI.SCORE , AI.CLASSIFY , AI.IF , এবং AI.AGG অন্তর্ভুক্ত—সরাসরি আপনার ডেটাতে মৌলিক মডেলের বুদ্ধিমত্তা নিয়ে আসে। BigQuery স্বয়ংক্রিয়ভাবে মডেল নির্বাচনকে অপ্টিমাইজ করে এবং সহজ স্বাভাবিক ভাষার প্রম্পট থেকে উচ্চ-সঠিকতার ফলাফল প্রদানের জন্য অভ্যন্তরীণ প্রম্পট-পুনর্লিখন কৌশল প্রয়োগ করে।

বিশাল আকারের ডেটাসেটের জন্য, BigQuery অপ্টিমাইজড মোড প্রদান করে, যা অন-দ্য-ফ্লাই মডেল ডিসটিলেশন এবং লাইটওয়েট প্রক্সি মডেল ব্যবহার করে ১০০ গুণ পর্যন্ত দ্রুততর ও সাশ্রয়ী কোয়েরি সরবরাহ করে।

আপনি যা করবেন

  • SQL ব্যবহার করে BigQuery Studio-তে মাল্টিমোডাল রিটেইল ডেটা অন্বেষণ করুন ।
  • ‘উপহারযোগ্যতা’-র মতো বিষয়ভিত্তিক পণ্যের বৈশিষ্ট্যগুলো মূল্যায়ন করতে AI.SCORE ব্যবহার করে শব্দার্থিক ক্রমবিন্যাস সম্পাদন করুন ।
  • AI.CLASSIFY ব্যবহার করে অসংগঠিত ডেটাকে শ্রেণিবদ্ধ করুন, যাতে পণ্যগুলোকে নির্দিষ্ট প্রাণী প্রজাতির সাথে সংযুক্ত করা যায়।
  • WHERE ক্লজের মধ্যে AI.IF ব্যবহার করে মাল্টিমোডাল ইমেজ অ্যাসেট ফিল্টার করুন ।
  • টেক্সট প্রোডাক্ট রেকর্ডগুলোর সাথে এক্সটার্নাল ইমেজ ফাইলগুলো মেলানোর জন্য JOIN ... ON ক্লজে AI.IF ব্যবহার করে টেবিলগুলোর মধ্যে সিমান্টিক জয়েন সম্পাদন করুন ।
  • AI.AGG অ্যাগ্রিগেট ফাংশন ব্যবহার করে একাধিক সারির অন্তর্দৃষ্টি সংশ্লেষণ করুন ।
  • অপ্টিমাইজড মোড ( optimization_mode => 'MINIMIZE_COST' ) এবং প্রক্সি মডেল ডিস্টিলেশন সহ AI.IF ব্যবহার করে বৃহৎ ডেটাসেটে কোয়েরি লেটেন্সি এবং কস্ট অপ্টিমাইজ করুন ।

আপনার যা যা লাগবে

  • বিলিং সক্ষম একটি গুগল ক্লাউড প্রজেক্ট।
  • ক্রোমের মতো একটি ওয়েব ব্রাউজার।

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

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

একটি গুগল ক্লাউড প্রজেক্ট তৈরি করুন এবং এপিআই (API) সক্রিয় করুন।

  1. গুগল ক্লাউড কনসোলের প্রজেক্ট সিলেক্টর পেজে, একটি গুগল ক্লাউড প্রজেক্ট নির্বাচন করুন বা তৈরি করুন ।
  2. আপনার ক্লাউড প্রোজেক্টের জন্য বিলিং চালু আছে কিনা তা নিশ্চিত করুন। কোনো প্রোজেক্টে বিলিং চালু আছে কিনা তা কীভাবে পরীক্ষা করবেন, তা জেনে নিন।
  3. BigQuery, BigQuery Connection, এবং Agent Platform API-গুলো সক্রিয় করুন ।

বিগকোয়েরি স্টুডিও খুলুন

  1. Google Cloud Console-এর নেভিগেশন মেনুতে, BigQuery Studio খোলার জন্য BigQuery-তে ক্লিক করুন।
  2. BigQuery Studio এডিটর টুলবারে, একটি নতুন SQL কোয়েরি ট্যাব খোলার জন্য + SQL query-তে ক্লিক করুন। এই কোডল্যাব জুড়ে আপনি সমস্ত SQL কোয়েরি এই SQL ট্যাবগুলিতেই লিখবেন এবং চালাবেন।

SQL-এ একটি ক্লাউড রিসোর্স সংযোগ তৈরি করুন

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

us.conn নামের একটি কানেকশন তৈরি করতে আপনার SQL ট্যাবে নিম্নলিখিত স্টেটমেন্টটি চালান:

CREATE CONNECTION IF NOT EXISTS `us.conn`
OPTIONS (
  connection_type = "CLOUD_RESOURCE"
);

৩. সিম্বাল পেটস ডেটাসেটটি অন্বেষণ করুন

Cymbal Pets তার পাবলিক ডেটাসেটের bigquery-public-data.cymbal_pets.products নামের টেবিলে একটি সমৃদ্ধ পণ্য ক্যাটালগ রক্ষণাবেক্ষণ করে। প্রতিটি পণ্যের রেকর্ডে প্রোডাক্ট আইডি, শিরোনাম, রিটেইল ক্যাটাগরি, মূল্য এবং বর্ণনামূলক টেক্সটের মতো কাঠামোগত অ্যাট্রিবিউট থাকে।

পণ্য ক্যাটালগ অনুসন্ধান করুন

BigQuery Studio-তে একটি SQL ট্যাব খুলুন এবং products টেবিলটি পরীক্ষা করার জন্য নিম্নলিখিত কোয়েরিটি চালান:

SELECT
  product_id,
  product_name,
  category,
  price,
  description
FROM
  `bigquery-public-data.cymbal_pets.products`;

আপনার ফলাফলগুলো নিচের মতো দেখতে হবে:

BigQuery Studio-তে পণ্য ক্যাটালগ রেকর্ড দেখানো কোয়েরির ফলাফল

পণ্যের ছবিগুলো পরিদর্শন করুন

Cymbal Pets তার পণ্যের ছবির রেফারেন্সগুলো bigquery-public-data.cymbal_pets.product_images ফাইলে সংরক্ষণ করে। ছবির রেকর্ডগুলো দেখতে নিম্নলিখিত কোয়েরিটি চালান:

SELECT
  uri,
  OBJ.GET_READ_URL(OBJ.MAKE_REF(uri, 'us.conn')).url AS product_image_url,
  metadata
FROM
  `bigquery-public-data.cymbal_pets.product_images`;

আপনার ফলাফলগুলো নিচের মতো দেখতে হবে:

BigQuery Studio-এর কোয়েরির ফলাফলে পণ্যের ছবির প্রিভিউ এবং মেটাডেটা দেখানো হচ্ছে।

এরপরে, আপনি Cymbal Pets ডেটা ওয়্যারহাউস থেকে টেক্সট এবং ইমেজ ডেটা বিশ্লেষণ করতে BigQuery ম্যানেজড ফাংশন ব্যবহার করবেন।

৪. AI.SCORE ব্যবহার করে শব্দার্থগত মানদণ্ড অনুসারে পণ্যগুলোকে র‍্যাঙ্ক করুন।

AI.SCORE ফাংশনটি টেক্সট ইনপুট গ্রহণ করে এবং একটি জেমিনি মডেল ব্যবহার করে স্বাভাবিক ভাষার স্কোরিং রুব্রিকের উপর ভিত্তি করে সেগুলোকে রেট দেয়, এবং একটি সাংখ্যিক FLOAT64 স্কোর ফেরত দেয়।

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

উপহারযোগ্যতার জন্য পণ্যগুলোকে নম্বর দিন।

ধরুন, সিম্বাল পেটস-এর মার্কেটিং টিম একটি ছুটির উপহার নির্দেশিকা তৈরি করতে চায়। তারা পোষ্য মালিকদের জন্য উপহার হিসেবে ক্যাটালগের প্রতিটি জিনিসের উপযোগিতাকে ১ থেকে ১০ এর স্কেলে র‍্যাঙ্ক করতে চায়।

আপনার SQL ট্যাবে নিম্নলিখিত কোয়েরিটি চালান:

SELECT
  product_name,
  description,
  AI.SCORE(
    ('How "giftable" is this product for a pet owner? ', description,
    'Use a scale from 1-10.')
  ) AS giftability_score
FROM
  `bigquery-public-data.cymbal_pets.products`
ORDER BY
  giftability_score DESC;

ফলাফলগুলো বুঝুন

আপনার ফলাফলগুলো নিচের মতো দেখতে হবে:

core_giftability_results.png

কোয়েরির ফলাফলে giftability_score কলামটি পরীক্ষা করুন:

  • অত্যন্ত আকর্ষণীয় ইন্টারেক্টিভ খেলনা : Cozy Naps Cat Teaser Wand , Playful Pup Puzzle Toy , এবং Playful Pup Treat Dispenser মতো আকর্ষক আইটেমগুলি সর্বোচ্চ রেটিং ( 9.0 ) পেয়েছে।
  • বিশেষ আরামদায়ক ও আঁচড়ানোর সামগ্রী : Purrfect Perch Cat Scratcher মতো জনপ্রিয় প্রয়োজনীয় সামগ্রীগুলো 8.0 স্কোর পেয়ে বেশ ভালো অবস্থানে রয়েছে।
  • কার্যকরী পরবর্তী র‍্যাঙ্কিং : যেহেতু AI.SCORE নর্মালাইজড FLOAT64 স্কোর তৈরি করে, আপনি ORDER BY giftability_score DESC ব্যবহার করে ফলাফলগুলো তাৎক্ষণিকভাবে সাজাতে পারেন অথবা WHERE AI.SCORE(...) >= 8.0 ব্যবহার করে ক্যান্ডিডেটদের ফিল্টার করে স্বয়ংক্রিয় গিফট গাইড তৈরি করতে পারেন।

৫. AI.CLASSIFY ব্যবহার করে ক্যাটালগ আইটেমগুলোকে শ্রেণীবদ্ধ করুন।

AI.CLASSIFY ফাংশনটি Gemini ব্যবহার করে ইনপুট রেকর্ডগুলোকে একটি SQL অ্যারে হিসেবে প্রদত্ত টার্গেট ক্যাটাগরির একটি সুনির্দিষ্ট তালিকায় শ্রেণিবদ্ধ করে।

AI.CLASSIFY বহুবিধ ইনপুট (টেক্সট, ছবি, অডিও, ভিডিও) সমর্থন করে এবং ট্যাক্সোনমি ব্যবস্থাপনার জন্য বিশেষ ক্লাসিফিকেশন মডেল তৈরি, প্রশিক্ষণ বা স্থাপনের প্রয়োজনীয়তা দূর করে।

লক্ষ্য প্রাণী প্রজাতি অনুসারে খেলনা শ্রেণীবদ্ধ করুন (একক-লেবেল)

ধরা যাক, Cymbal Pets ক্যাটালগের কিছু পণ্যকে নির্দিষ্ট প্রাণী উল্লেখ না করে সাধারণভাবে "খেলনা" হিসেবে ট্যাগ করা হয়েছে। আপনি প্রতিটি খেলনাকে তার নাম এবং বিবরণের উপর ভিত্তি করে শ্রেণিবদ্ধ করতে AI.CLASSIFY ব্যবহার করতে পারেন।

BigQuery Studio-তে নিম্নলিখিত কোয়েরিটি চালান:

SELECT
  product_name,
  description,
  AI.CLASSIFY(
    ('What animal is this product for?', product_name, ' ', description),
    categories => ["Dog", "Cat", "Bird", "Fish", "Small Animal", "All Pets"]
  ) AS animal_type
FROM
  `bigquery-public-data.cymbal_pets.products`
WHERE
  category = "Toys"
LIMIT 20;

ফলাফল দেখুন

আপনার ফলাফলগুলো নিচের মতো দেখতে হবে:

BigQuery Studio-তে একক-লেবেল AI.CLASSIFY প্রাণী শ্রেণিবিন্যাস দেখানো কোয়েরির ফলাফল

ডিফল্টরূপে, AI.CLASSIFY একক-লেবেল শ্রেণীকরণ সম্পাদন করে এবং আপনার ক্যান্ডিডেট অ্যারে থেকে সবচেয়ে প্রাসঙ্গিক একক বিভাগটি ধারণকারী একটি STRING ফেরত দেয়। লক্ষ্য করুন, কীভাবে জেমিনি ক্যাটনিপ বল এবং ফেদার টিজারকে Cat হিসেবে ম্যাপ করে, অপরদিকে চিউ টয় এবং ফেচ স্টিককে Dog (Dog) হিসেবে ম্যাপ করে।

মাল্টি-লেবেল ক্লাসিফিকেশনের মাধ্যমে একাধিক ট্যাগ নির্ধারণ করুন

একটি খুচরা ক্যাটালগের অনেক পণ্য একই সাথে একাধিক ধরণের পোষা প্রাণীর জন্য প্রযোজ্য (উদাহরণস্বরূপ, একটি নরম বিছানা বা টানেল যা বিড়াল এবং ছোট প্রাণী উভয়ের জন্যই উপযুক্ত)।

একটি রেকর্ডে একাধিক ক্যাটাগরি নির্ধারণ করতে, ঐচ্ছিক প্যারামিটার output_mode => 'multi' সেট করুন। মাল্টি-লেবেল মোডে, AI.CLASSIFY একটি ARRAY রিটার্ন করে। ARRAY সমস্ত মিলে যাওয়া বিভাগ ধারণকারী।

আপনার SQL ট্যাবে নিম্নলিখিত কোয়েরিটি চালান:

SELECT
  product_name,
  description,
  AI.CLASSIFY(
    ('Identify all pet types that this product is suitable for: ', product_name, ' ', description),
    categories => ["Dog", "Cat", "Bird", "Fish", "Small Animal", "Reptile"],
    output_mode => 'multi'
  ) AS pet_types
FROM
  `bigquery-public-data.cymbal_pets.products`
WHERE
  category = "Toys";

আপনার ফলাফলগুলো নিচের মতো দেখতে হবে:

BigQuery Studio-এর কোয়েরির ফলাফলে দেখা যাচ্ছে যে, মাল্টি-লেবেল AI.CLASSIFY ব্যবহার করে পোষা প্রাণীর প্রকারের অ্যারে ফেরত আসছে।

শ্রেণিবিন্যাস পদ্ধতি পর্যালোচনা করুন

  • একক-লেবেল বনাম একাধিক-লেবেল : output_mode ছাড়া, AI.CLASSIFY একটি স্কেলার STRING রিটার্ন করে। output_mode => 'multi' সেট করলে একটি ARRAY রিটার্ন হয়। ARRAY শূন্য, এক বা একাধিক মিলে যাওয়া লেবেল ধারণকারী।
  • একাধিক ক্যাটাগরিতে বণ্টন : লক্ষ্য করুন, কীভাবে Chew-tastic! Dental Chew Toy এবং Playful Pup Fetch Stick মতো নির্দিষ্ট পণ্যগুলো [Dog] ট্যাগ পায়, অন্যদিকে Cozy Naps Dog Toy (একটি নরম আয়তাকার বিছানা)-এর মতো বহুমুখী আরামদায়ক পণ্যগুলো সঠিকভাবে একাধিক ট্যাগ পায়: [Dog, Cat, Small Animal] ।
  • জিরো-শট ম্যাচিং : এই মডেলটি আগে থেকে প্রশিক্ষিত কাস্টম এমএল মডেলের প্রয়োজন ছাড়াই, সরবরাহকৃত categories অ্যারের সাথে সম্মিলিত টেক্সট এবং প্রম্পটকে মূল্যায়ন করে।
  • ডাউনস্ট্রিম SQL অ্যারে অপারেশন : আপনি একাধিক লেবেলযুক্ত রেকর্ড ফিল্টার, এক্সপ্লোড এবং অ্যাগ্রিগেট করতে WHERE 'Cat' IN UNNEST(pet_types) অথবা CROSS JOIN UNNEST(pet_types) এর মতো স্ট্যান্ডার্ড BigQuery SQL অ্যারে ফাংশন ব্যবহার করতে পারেন।

৬. AI.IF ব্যবহার করে মাল্টিমোডাল পণ্যের ছবি ফিল্টার করুন।

AI.IF ফাংশনটি একটি স্বাভাবিক-ভাষার শর্ত মূল্যায়ন করতে Gemini ব্যবহার করে এবং একটি বুলিয়ান ( TRUE বা FALSE ) রিটার্ন করে।

যেহেতু AI.IF মাল্টিমোডাল ইনপুট গ্রহণ করে, তাই ক্লাউড স্টোরেজে সংরক্ষিত অসংগঠিত ইমেজ ফাইল ফিল্টার করার জন্য আপনি এটিকে সরাসরি SQL WHERE ক্লজের মধ্যে ব্যবহার করতে পারেন।

নির্দিষ্ট বস্তু ধারণকারী ছবি ফিল্টার করুন

ধরুন, মার্চেন্ডাইজিং টিম ক্যাটালগ থেকে এমন সব পণ্যের ছবি খুঁজে বের করতে চায়, যেগুলোতে দৃশ্যত পোষা প্রাণীর খাবার বা জলখাবার রয়েছে।

আপনার SQL ট্যাবে নিম্নলিখিত কোয়েরিটি চালান:

SELECT
  uri,
  OBJ.GET_READ_URL(OBJ.MAKE_REF(uri, 'us.conn')).url AS product_image_url,
  metadata
FROM
  `bigquery-public-data.cymbal_pets.product_images`
WHERE
  AI.IF(
    ('Does this product image contain pet food or snacks? ', OBJ.MAKE_REF(uri, 'us.conn'))
  );

আপনার ফলাফলগুলো নিচের মতো দেখতে হবে:

BigQuery Studio কোয়েরির ফলাফল, যা পোষ্যের খাবার বা জলখাবারযুক্ত পণ্যগুলির জন্য মাল্টিমোডাল ইমেজ ফিল্টারিং দেখাচ্ছে।

মাল্টিমোডাল ফিল্টারিং কীভাবে কাজ করে

  • তাৎক্ষণিক অবজেক্ট রেফারেন্স : যদিও আমরা এখানে OBJ.MAKE_REF(uri, 'us.conn') ব্যবহার করে তাৎক্ষণিকভাবে অবজেক্ট রেফারেন্স তৈরি করি, আপনি সরাসরি আপনার BigQuery টেবিলগুলিতে ObjectRef কলাম তৈরি এবং সংরক্ষণ করতে পারেন। এর ফলে প্রতিটি কোয়েরিতে OBJ.MAKE_REF ফাংশন ব্যবহার না করেই, সেগুলি বিশ্লেষণের জন্য অবিলম্বে ব্যবহারের জন্য প্রস্তুত থাকে।
  • গভীর চাক্ষুষ বস্তু শনাক্তকরণ : লক্ষ্য করুন, জেমিনি কীভাবে বিভিন্ন ধরনের প্যাকেজিং (যেমন ভেজা খাবারের ভ্যারাইটি প্যাক বক্স, শুকনো হ্যামস্টারের খাবারের ব্যাগ এবং টিনজাত বিড়ালের খাবার) নির্ভুলভাবে শনাক্ত করে, এবং একই সাথে নীল ট্রিট ডিসপেনসারের মতো খেলনার ভেতরে রাখা খাবারও চিনতে পারে।
  • সারি-স্তরের প্রেডিকেট মূল্যায়ন : BigQuery সরাসরি WHERE ক্লজের মধ্যেই প্রতিটি ক্লাউড স্টোরেজ ইমেজ রেফারেন্সের বিপরীতে স্বাভাবিক ভাষার শর্তটি মূল্যায়ন করে।
  • বুলিয়ান ফিল্টারিং : ফলাফল সেটে শুধুমাত্র সেই রেকর্ডগুলোই ফেরত দেওয়া হয়, যেখানে জেমিনি শর্তটিকে TRUE হিসেবে মূল্যায়ন করে।

৭. AI.IF ব্যবহার করে টেবিলগুলোর মধ্যে সিমান্টিক জয়েন সম্পাদন করুন।

প্রচলিত রিলেশনাল ডাটাবেস জয়েনের জন্য কী-গুলোর মধ্যে হুবহু সমতা প্রয়োজন হয় (যেমন products.product_id = images.product_id )। তবে, বাস্তব জগতের এন্টারপ্রাইজ ডেটাসেটগুলোতে প্রায়শই এমন অসংগঠিত অ্যাসেট থাকে যেগুলোতে সুস্পষ্ট ফরেন কী থাকে না।

যেহেতু AI.IF একটি বুলিয়ান মান রিটার্ন করে, তাই সিমান্টিক জয়েন করার জন্য আপনি এটিকে সরাসরি একটি SQL INNER JOIN ... ON ক্লজের ভিতরে রাখতে পারেন।

পণ্যের বিবরণকে ছবির অ্যাসেটের সাথে শব্দার্থগতভাবে যুক্ত করুন

ধরুন, আপনি Fluffy Buns ব্র্যান্ডের তৈরি পণ্যগুলোর জন্য products টেবিলের পণ্যের বিবরণের সাথে product_images টেবিলের অসংযুক্ত ইমেজ ফাইলগুলো মেলাতে চান।

আপনার BigQuery Studio-র SQL ট্যাবে নিম্নলিখিত কোয়েরিটি চালান (মনে রাখবেন, এটি সম্পন্ন হতে কয়েক মিনিট সময় লাগে):

SELECT
  products.product_id,
  products.product_name,
  products.description,
  products.brand,
  images.uri AS image_uri,
  OBJ.GET_READ_URL(OBJ.MAKE_REF(images.uri, 'us.conn')).url AS product_image_url
FROM
  `bigquery-public-data.cymbal_pets.products` AS products
INNER JOIN
  `bigquery-public-data.cymbal_pets.product_images` AS images
ON
  AI.IF(
    ('You will be provided an image of a pet product. ',
    'Determine if the image is of the following pet toy: ',
    products.product_name,
    products.description,
    OBJ.MAKE_REF(images.uri, 'us.conn')
    )
  )
WHERE
  products.category = "Toys" AND
  products.brand = "Fluffy Buns";

আপনার ফলাফলগুলো নিচের মতো দেখতে হবে:

BigQuery Studio-এর কোয়েরির ফলাফলে products এবং images-এর মধ্যে সিমান্টিক জয়েন দেখানো হচ্ছে।

SQL-এ সিমান্টিক জয়েন বুঝুন

  • ক্রস-মোডাল কন্ডিশন ইভ্যালুয়েশন : ক্যান্ডিডেট রেকর্ড পেয়ারের জন্য, BigQuery products টেক্সচুয়াল মেটাডেটা এবং ইমেজ রেফারেন্স ( OBJ.MAKE_REF(...) ) উভয়ই Gemini-তে পাঠায়।
  • সঠিক চাক্ষুষ মিল : ফলাফলে যেমন দেখানো হয়েছে, Fluffy Buns Hamster Exercise Ball স্বচ্ছ প্লাস্টিকের বলের ছবির সাথে মিলেছে, অন্যদিকে Fluffy Buns Chinchilla Play Tunnel এবং Guinea Pig Tunnel নীল প্লাশ টানেলের ছবির সাথে মিলেছে। স্ট্যান্ডার্ড SQL INNER JOIN সেম্যান্টিক্সের কারণে, একটি পণ্য ক্যাটালগের একাধিক ইমেজ অ্যাসেটের সাথে মিলে গেলে (যেমন একাধিক ছবির অ্যাঙ্গেল বা একই রকম শট) আউটপুটে একাধিক সারি তৈরি করতে পারে।
  • ইনলাইন ইমেজ রেন্ডারিং : তাৎক্ষণিক চাক্ষুষ যাচাইয়ের জন্য BigQuery Studio স্বয়ংক্রিয়ভাবে আপনার রেজাল্ট গ্রিডের মধ্যে সরাসরি product_image_url কলামে অনুমোদিত রিড ইউআরএলগুলো রেন্ডার করে।
  • অসংগঠিত সত্তা সমাধান : এটি ম্যানুয়াল লেবেলিং বা সুস্পষ্ট ফরেন কী ছাড়াই লিগ্যাসি ক্যাটালগ, স্ক্র্যাপ করা ডেটাসেট এবং মিডিয়া আর্কাইভ জুড়ে শক্তিশালী সত্তা সমাধান ওয়ার্কফ্লো উন্মোচন করে।

৮. AI.AGG-এর সাহায্যে বিভিন্ন সারি জুড়ে প্রাপ্ত তথ্য সংশ্লেষণ করুন।

যদিও AI.SCORE , AI.CLASSIFY , এবং AI.IF মতো ফাংশনগুলো স্বতন্ত্র সারি মূল্যায়ন করে (স্কেলার অপারেশন), এন্টারপ্রাইজ ডেটা বিশ্লেষণের জন্য প্রায়শই একাধিক রেকর্ডের মধ্যে প্যাটার্ন সংশ্লেষণ করার প্রয়োজন হয়।

AI.AGG ফাংশনটি একটি অ্যাগ্রিগেট ফাংশন, যা স্বাভাবিক ভাষার নির্দেশাবলী ব্যবহার করে হাজার হাজার বা লক্ষ লক্ষ অসংগঠিত সারি থেকে প্রাপ্ত তথ্যকে সংক্ষিপ্ত, গুচ্ছবদ্ধ বা সংশ্লেষণ করে একটি সমন্বিত ফলাফলে পরিণত করে।

প্রচলিত SQL মেট্রিক্সের পাশাপাশি ক্যাটাগরি সারাংশ সংশ্লেষণ করুন

AI.AGG প্রচলিত SQL GROUP BY এবং অ্যাগ্রিগেট ফাংশনগুলোর সাথে নির্বিঘ্নে সমন্বিত হয়। উদাহরণস্বরূপ, আপনি প্রতিটি ক্যাটাগরির পণ্যগুলোর মধ্যে কী কী মিল রয়েছে তা বর্ণনা করে এমন একটি জেনারেটিভ এআই সারাংশের পাশাপাশি প্রচলিত মেট্রিকগুলো (যেমন আইটেমের সংখ্যা) গণনা করতে পারেন।

BigQuery Studio-তে নিম্নলিখিত কোয়েরিটি চালান:

SELECT 
  category,
  COUNT(*) AS item_count,
  AI.AGG(
    ('Product: ', product_name, ' - Description: ', description),
    'Write a concise, one-sentence summary describing the common characteristics or purpose of the products in this category.'
  ) AS category_summary
FROM 
  `bigquery-public-data.cymbal_pets.products`
GROUP BY 
  category
ORDER BY 
  item_count DESC;

আপনার ফলাফলগুলো নিচের মতো দেখতে হবে:

BigQuery Studio কোয়েরির ফলাফলে AI.AGG ক্যাটাগরির সারাংশ ও আইটেমের সংখ্যা দেখানো হচ্ছে।

AI.AGG কীভাবে অসংগঠিত ডেটা একত্রিত করে

  • স্তরভিত্তিক একত্রীকরণ : BigQuery বিভাগ অনুযায়ী সারির ডেটাকে দলবদ্ধ করে, কাঠামোগত কনটেক্সট উইন্ডো তৈরি করে এবং পণ্যের রেকর্ডের সম্পূর্ণ সংগ্রহকে সংশ্লেষণ করতে Gemini ব্যবহার করে।
  • স্বয়ংক্রিয় ক্যাটালগ সংশ্লেষণ : লক্ষ্য করুন, কীভাবে প্রতিটি বিভাগ একটি স্বতন্ত্র ও নির্ভুল সারাংশ পায়; যেমন Accessories বিভাগে বাসস্থান ও প্রশিক্ষণের সরঞ্জাম, অথবা Food বিভাগে একাধিক প্রাণী প্রজাতির সুষম পুষ্টির ওপর আলোকপাত করা হয়েছে।
  • হাইব্রিড পরিমাণগত ও গুণগত রিপোর্টিং : COUNT(*) এর মতো স্ট্যান্ডার্ড অ্যাগ্রিগেশনগুলির সাথে AI.AGG সমন্বয় কাস্টম ETL পাইপলাইন ছাড়াই একটি একক কোয়েরিতে ক্যাটালগের ব্যাপক ওভারভিউ তৈরি করে।
  • নমনীয় বিভাজন : আপনি যেকোনো গ্রুপিং ডাইমেনশন জুড়ে (যেমন GROUP BY brand , GROUP BY category , অথবা আপনার সম্পূর্ণ টেবিল জুড়ে) AI.AGG প্রয়োগ করে কয়েক সেকেন্ডের মধ্যে নির্বাহী-স্তরের অন্তর্দৃষ্টি তৈরি করতে পারেন।

৯. অপ্টিমাইজড মোড এবং প্রক্সি মডেলের সাহায্যে কোয়েরির গতি বাড়ান।

হাজার হাজার বা লক্ষ লক্ষ সারি সম্বলিত বিশাল ডেটাসেট প্রক্রিয়াকরণের সময়, প্রতিটি সারির জন্য আলাদাভাবে রিমোট এলএলএম (LLM) ব্যবহার করলে তা বিলম্ব এবং খরচ বাড়াতে পারে।

এর সমাধানে, BigQuery AI.IF এবং AI.CLASSIFY এর জন্য অপটিমাইজড মোড প্রদান করে। অপটিমাইজড মোড প্রক্সি মডেল এবং অন-দ্য-ফ্লাই মডেল ডিস্টিলেশন ব্যবহার করে কম LLM টোকেন খরচে ১০০ গুণেরও বেশি দ্রুত এক্সিকিউশন প্রদান করে।

অপ্টিমাইজড মোড কীভাবে কাজ করে

এআই অপ্টিমাইজেশন ওয়ার্কফ্লো

  1. প্রতিনিধিত্বমূলক স্যাম্পলিং এবং লেবেলিং : BigQuery স্বয়ংক্রিয়ভাবে সারিগুলির একটি প্রতিনিধিত্বমূলক নমুনা নির্বাচন করে এবং Gemini থেকে লেবেল সংগ্রহ করে।
  2. সংক্ষিপ্ত মডেল প্রশিক্ষণ : BigQuery টেক্সট এমবেডিংকে ফিচার হিসেবে ব্যবহার করে সিপিইউ-তে জাস্ট-ইন-টাইমে একটি অত্যন্ত হালকা প্রক্সি মডেল (যেমন লজিস্টিক রিগ্রেশন) প্রশিক্ষণ দেয়।
  3. গুণমান যাচাইকরণ : BigQuery, Gemini-এর সাপেক্ষে পরিমার্জিত মডেলটির নির্ভুলতা মূল্যায়ন করে। যদি এটি গুণমানের নির্ধারিত মান পূরণ করে, তবে BigQuery ডেটাসেটের বাকি অংশ প্রক্রিয়াকরণের জন্য এটিকে অনুমোদন দেয়।
  4. স্থানীয় দ্রুতগতির ইনফারেন্স : প্রক্সি মডেলটি শূন্য রিমোট এলএলএম টোকেন খরচ এবং অত্যন্ত কম ল্যাটেন্সিতে অবশিষ্ট সারিগুলো স্থানীয়ভাবে মূল্যায়ন করে।

অপ্টিমাইজেশন ছাড়া একটি বেসলাইন কোয়েরি চালান

যেহেতু bigquery-public-data.cymbal_pets.products ক্যাটালগ নমুনাটিতে প্রক্সি মডেল ডিস্টিলেশন চালু করার জন্য যথেষ্ট সংখ্যক সারি নেই, তাই আমরা bigquery-public-data.bbc_news.fulltext বৃহত্তর পাবলিক ডেটাসেটটি ব্যবহার করব (যেটিতে ২,২০০-এর বেশি সংবাদ নিবন্ধ রয়েছে)।

প্রথমে, প্রাকৃতিক দুর্যোগ সম্পর্কিত সংবাদ নিবন্ধগুলি সনাক্ত করতে অপ্টিমাইজেশন ছাড়াই স্ট্যান্ডার্ড কোয়েরিটি চালান:

SELECT
  title,
  body
FROM
  `bigquery-public-data.bbc_news.fulltext`
WHERE
  AI.IF(
    ('The following news story is about a natural disaster: ', body)
  );

বেসলাইন কাজের বিবরণ এবং টোকেন ব্যবহার পরিদর্শন করুন

বেসলাইন কোয়েরি সম্পন্ন হওয়ার পর, এক্সিকিউশন মেট্রিক্স পরীক্ষা করুন:

  1. BigQuery Studio-এর নিচের ফলাফল প্যানে, জব ইনফরমেশন ট্যাবটি নির্বাচন করুন।
  2. ইনপুট টোকেন সংখ্যা এবং আউটপুট টোকেন সংখ্যা অংশ পর্যন্ত স্ক্রোল করুন।

আপনার ফলাফলগুলো নিচের মতো দেখতে হবে:

বেসলাইন কোয়েরির জন্য BigQuery Studio কাজের তথ্য

  • সম্পূর্ণ ডেটাসেট টোকেন ব্যবহার : যেহেতু BigQuery প্রক্সি অপ্টিমাইজেশন ছাড়াই সমস্ত ২,২২৫টি সংবাদ নিবন্ধের প্রতিটি সারির জন্য রিমোট জেমিনি মডেলকে কল করে, তাই কোয়েরিটি ১,২৭৯,০৭২টি ইনপুট টোকেন এবং ১১,৯২৫টি আউটপুট টোকেন ব্যবহার করে।
  • কোনো অপ্টিমাইজেশন বিভাগ নেই : লক্ষ্য করুন যে এখানে কোনো Gen AI Function Optimizations এন্ট্রি নেই, কারণ স্ট্যান্ডার্ড এক্সিকিউশন প্রতিটি স্বতন্ত্র সারিকে রিমোট LLM এন্ডপয়েন্টের সাপেক্ষে মূল্যায়ন করে।

অপ্টিমাইজড মোডে কোয়েরিটি চালান।

টোকেন ব্যবহার কমাতে এবং প্রক্সি মডেল ডিস্টিলেশনকে কাজে লাগাতে, embeddings => AI.EMBED(...) পাস করে এবং optimization_mode => 'MINIMIZE_COST' সেট করে অপ্টিমাইজড মোড সক্রিয় করুন:

SELECT
  title,
  body
FROM
  `bigquery-public-data.bbc_news.fulltext`
WHERE
  AI.IF(
    ('The following news story is about a natural disaster: ', body),
    embeddings => AI.EMBED(body, endpoint => 'text-embedding-005', task_type => 'CLASSIFICATION').result,
    optimization_mode => 'MINIMIZE_COST'
  );

অপ্টিমাইজেশন যাচাই করুন এবং টোকেন ব্যবহার হ্রাস লক্ষ্য করুন।

অপ্টিমাইজ করা কোয়েরিটি চালানোর পর, টোকেন ব্যবহার এবং এক্সিকিউশন মেট্রিক্সের তুলনা পর্যবেক্ষণ করতে BigQuery Studio-এর জব ইনফরমেশন ট্যাবে যান:

  1. BigQuery Studio-এর নিচের ফলাফল প্যানে, জব ইনফরমেশন ট্যাবটি নির্বাচন করুন।
  2. Gen AI Function Optimizations সেকশন এবং টোকেন সংখ্যাগুলো পর্যন্ত স্ক্রল করুন।

আপনার ফলাফলগুলো নিচের মতো দেখতে হবে:

BigQuery Studio-তে Gen AI ফাংশন অপ্টিমাইজেশন দেখানো হচ্ছে

  • টোকেনের উল্লেখযোগ্য হ্রাস : লক্ষ্য করুন, কীভাবে ইনপুট টোকেনের সংখ্যা ১,২৭৯,০৭২ থেকে কমে ৭৭৮,৬২৬- এ নেমে এসেছে—যার ফলে একটিমাত্র কোয়েরি রানেই ৫০০,৪৪৬টি ইনপুট টোকেন সাশ্রয় হয়েছে (যা প্রায় ৪০% হ্রাস)! একইভাবে, আউটপুট টোকেনের সংখ্যাও হ্রাস পেয়েছে।
  • স্বয়ংক্রিয় প্রক্সি ডিস্টিলেশন : AI.IF('The following news s'): 875 out of 2225 rows optimized. Cost Optimization successfully applied. BigQuery ডেটাসেট থেকে স্যাম্পল নিয়েছে, Gemini ব্যবহার করে প্রতিনিধিত্বমূলক আর্টিকেলগুলোকে লেবেল করেছে, একটি দ্রুত লাইটওয়েট প্রক্সি ক্লাসিফায়ার ডিস্টিল করেছে, এবং রিমোট LLM এন্ডপয়েন্ট কল না করেই স্থানীয়ভাবে CPU-তে ২,২২৫টি সারির মধ্যে ৮৭৫টি প্রসেস করেছে।
  • সরাসরি খরচ সাশ্রয় : যেহেতু BigQuery পরিচালিত AI ফাংশনগুলোর বিল প্রক্রিয়াকৃত মডেল টোকেনের পরিমাণের উপর ভিত্তি করে করা হয়, তাই টোকেনের ব্যবহার কমালে তা সরাসরি কোয়েরি সম্পাদনের খরচ কমিয়ে আনে।
  • গুণমান যাচাইকরণ : অবশিষ্ট সারিগুলো মূল্যায়নের জন্য প্রক্সি মডেলটিকে উন্নীত করার আগে BigQuery স্বয়ংক্রিয়ভাবে Gemini-এর বিপরীতে এর নির্ভুলতা যাচাই করে, যা শ্রেণিবিন্যাসের গুণমান বজায় থাকা নিশ্চিত করে।

বড় টেবিলে আরও বেশি টোকেন হ্রাস এবং লেটেন্সি স্কেলিং।

২,২২৫টি সারিতে ৫ লক্ষেরও বেশি টোকেন সাশ্রয় করা উল্লেখযোগ্য হলেও, আরও বড় টেবিলের ক্ষেত্রে টোকেন হ্রাস এবং কর্মক্ষমতার উন্নতি আরও বেশি হয়।

  • ডেটাসেটের আকারের সাথে টোকেন হ্রাস কেন বাড়ে : BigQuery-তে এক্সিকিউট করা কোয়েরিগুলির জন্য, LLM দ্বারা লেবেল করা প্রায় ১,০০০ সারির একটি প্রাথমিক স্যাম্পল ব্যবহার করে প্রক্সি মডেলগুলিকে তাৎক্ষণিকভাবে প্রশিক্ষণ দেওয়া হয়। একবার প্রশিক্ষণ এবং বৈধতা যাচাই করা হয়ে গেলে, প্রক্সি মডেলটি অবশিষ্ট সারিগুলিতে সরাসরি LLM কলগুলিকে প্রতিস্থাপন করে। বড় কোয়েরিগুলির জন্য (যেমন সাধারণ ১০ লক্ষ সারির ডেটাসেট), এটি ডেটার বেশিরভাগ অংশের জন্য LLM ইনভোকেশন দূর করে, ৪০০ গুণ পর্যন্ত কম টোকেন ব্যবহার করে এবং খরচ ব্যাপকভাবে কমিয়ে দেয়।
  • উল্লেখযোগ্য ল্যাটেন্সি ত্বরণ : বিশেষায়িত LLM হার্ডওয়্যার থেকে ইনফারেন্সকে সরিয়ে সরাসরি স্ট্যান্ডার্ড ডেটাবেস ওয়ার্কার সিপিইউ-তে চলমান অতি-হালকা প্রক্সি মডেলে (প্রি-কম্পিউটেড জেমিনি এমবেডিং ব্যবহার করে) স্থানান্তরের মাধ্যমে, BigQuery সামগ্রিক কোয়েরি রানটাইম ৩০ থেকে ১০০ গুণ পর্যন্ত কমিয়ে আনে।

১০. সম্পদ পরিষ্কার করুন

এই কোডল্যাবের সময় তৈরি হওয়া রিসোর্সগুলি পরিষ্কার করতে, ক্লাউড রিসোর্স কানেকশনটি সরিয়ে ফেলার জন্য BigQuery Studio-এর SQL ট্যাবে নিম্নলিখিত স্টেটমেন্টটি চালান:

DROP CONNECTION IF EXISTS `us.conn`;

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

১১. অভিনন্দন

অভিনন্দন! আপনি ম্যানেজড এআই ফাংশন এবং SQL ব্যবহার করে BigQuery-তে সিমান্টিক অ্যানালাইসিস- এর উপর কোডল্যাবটি সফলভাবে সম্পন্ন করেছেন।

আপনি BigQuery-এর পরিচালিত জেনারেটিভ এআই ফাংশনগুলো আয়ত্ত করেছেন:

  • AI.SCORE ): স্বয়ংক্রিয় প্রম্পট পুনর্লিখন ব্যবহার করে উপহারযোগ্যতার মতো বিষয়ভিত্তিক মানদণ্ডের ওপর ভিত্তি করে পণ্যগুলোকে ১-১০ স্কেলে র‍্যাঙ্ক করে।
  • AI.CLASSIFY : অসংগঠিত ক্যাটালগ আইটেমগুলোকে নির্দিষ্ট প্রাণী শ্রেণীতে শ্রেণীবদ্ধ করে।
  • AI.IF (মাল্টিমোডাল ফিল্টারিং) : ভিজ্যুয়াল কন্টেন্টের উপর ভিত্তি করে SQL WHERE ক্লজে ক্লাউড স্টোরেজ ইমেজ অ্যাসেট ফিল্টার করে।
  • AI.IF (সিমান্টিক জয়েন) : পণ্যের লিখিত বিবরণের সাথে ছবির ফাইল সংযুক্ত করার জন্য SQL ON ক্লজে ক্রস-মোডাল জয়েন প্রয়োগ করা হয়েছে।
  • AI.AGG : একাধিক সারিবিশিষ্ট অসংগঠিত ক্যাটালগ টেক্সটকে সংশ্লেষণ করে একটি সংক্ষিপ্ত কার্যনির্বাহী সারাংশে পরিণত করেছে।
  • অপ্টিমাইজড মোড ও প্রক্সি মডেল : অন-দ্য-ফ্লাই মডেল ডিস্টিলেশন এবং AI.EMBED সহ optimization_mode => 'MINIMIZE_COST' ব্যবহার করে দ্রুততর কোয়েরি এবং সর্বনিম্ন টোকেন খরচ।

আরও জানুন