ইন-প্লেস LLM অন্তর্দৃষ্টি: BigQuery & স্ট্রাকচার্ড & অসংগঠিত ডেটা বিশ্লেষণ

1. ভূমিকা

বিশাল ডেটাসেট মূল্যবান অন্তর্দৃষ্টি ধারণ করে, কিন্তু অর্থপূর্ণ বোধগম্যতা অর্জন করা একটি কঠিন কাজ হতে পারে। ঐতিহ্যবাহী বিশ্লেষণ সরঞ্জামগুলি প্রায়শই সূক্ষ্ম, মানুষের মতো ব্যাখ্যা প্রদানে ব্যর্থ হয় যা আমাদের ডেটার মধ্যে গল্পটি সত্যিকার অর্থে উপলব্ধি করতে সহায়তা করে। ডেটা গুদামগুলি ক্রমবর্ধমান অসংগঠিত ডেটা ধারণ করছে, কিন্তু সেই ডেটা অন্তর্দৃষ্টি অর্জনের জন্য সর্বদা অ্যাক্সেসযোগ্য নয়। অসংগঠিত পাঠ্য, চিত্র এবং ভিডিওগুলি আপনার ব্যবসার বিকাশের জন্য মূল্যবান তথ্য ধারণ করে। LLMগুলি ব্যাখ্যা, অনুভূতি বিশ্লেষণ, বস্তু সনাক্তকরণ এবং আরও অনেক কিছু প্রদান করে আপনার ডেটা বোঝার জন্য একটি শক্তিশালী নতুন উপায় অফার করে। মাল্টিমোডাল মডেলের আবির্ভাবের সাথে (এবং অবজেক্ট টেবিলের মাধ্যমে BigQuery-তে ছবি এবং ভিডিওর মতো বস্তুর ডেটা সংরক্ষণ করার ক্ষমতা), জেমিনি 1.0 প্রো (টেক্সট-ভিত্তিক বিশ্লেষণের জন্য) এবং জেমিনি 1.0 প্রো ভিশন (টেক্সট এবং চিত্র/ভিডিও বিশ্লেষণের জন্য) এর মতো শক্তিশালী LLMগুলিকে BigQuery-এর সাথে একীভূত করা আপনার ডেটা বিশ্লেষণের পদ্ধতিকে রূপান্তরিত করতে পারে।

এই কোডল্যাবে, আমরা আপনার এন্টারপ্রাইজ ডেটা থেকে LLM অন্তর্দৃষ্টি আঁকার এবং BigQuery-এর মধ্যে হাজার হাজার সারিতে সেই অন্তর্দৃষ্টিগুলিকে স্কেল করার জন্য নিম্নলিখিত দুটি পদ্ধতি দেখব:

পদ্ধতি ১: রিমোট মডেল ইনভোকেশন

  • SELECT কোয়েরিতে ML.GENERATE_TEXT ব্যবহার করে BigQuery এর মধ্যে থেকে Gemini 1.0 Pro-তে কল করুন।
  • BigQuery-তে যখন মডেলটি ইতিমধ্যেই রিমোট মডেল হিসেবে উপলব্ধ থাকে এবং আপনি এটিকে আউট-অফ-দ্য-বক্স ব্যবহার করতে চান, তখন এই পদ্ধতিটি ব্যবহার করুন। BigQuery ডকুমেন্টেশনে আপনি যে মডেলটি ব্যবহার করতে চান তার স্থিতি পরীক্ষা করুন।

পদ্ধতি ২: রিমোট ফাংশন বাস্তবায়ন

  • BigQuery-তে একটি রিমোট ফাংশন হিসেবে প্রকাশিত, Gemini 1.0 Pro Vision কল বাস্তবায়নকারী একটি ক্লাউড ফাংশন কল করুন।
  • যখন আপনি যে মডেলটি ব্যবহার করতে চান তা হয় রিমোট মডেল হিসেবে বাজারে পাওয়া যাচ্ছে না অথবা আপনার ব্যবহারের ক্ষেত্রে আরও নমনীয়তা এবং কাস্টমাইজেশন চান, তখন এই পদ্ধতিটি ব্যবহার করুন।

তুমি কী তৈরি করবে

  • রিমোট মডেল ইনভোকেশন পদ্ধতির জন্য, আপনি BigQuery-তে ML.GENERATE_TEXT কনস্ট্রাক্টে Gemini 1.0 Pro-এর জন্য রিমোট মডেলটি ব্যবহার করে ইন্টারনেট আর্কাইভ বই ডেটাসেটের (যা BigQuery-তে সর্বজনীনভাবে উপলব্ধ) জন্য একটি লোকেশন সামারাইজার তৈরি করবেন।

রিমোট মডেল ইনভোকেশনের জন্য ফ্লো ডায়াগ্রাম

  • রিমোট ফাংশন ইমপ্লিমেন্টেশন পদ্ধতির জন্য, আপনি একটি বেসলাইন ইমেজের বিপরীতে টেস্ট ইমেজ যাচাই করার জন্য একটি ইমেজ ভ্যালিডেটর তৈরি করবেন। এর জন্য, আপনি একটি এক্সটার্নাল টেবিলে টেস্ট ইমেজ স্ক্রিনশট সম্বলিত একটি ডেটাসেট তৈরি করবেন এবং জেমিনি ১.০ প্রো ভিশনকে বেসলাইন ইমেজের বিপরীতে এটি যাচাই করতে বলবেন। তারপর, আপনি একটি জাভা ক্লাউড ফাংশন তৈরি করবেন যা জেমিনি প্রো ভিশন কল বাস্তবায়ন করে এবং এটিকে BigQuery-তে একটি রিমোট ফাংশন হিসেবে ব্যবহার করে।

রিমোট ফাংশন বাস্তবায়নের জন্য ফ্লো ডায়াগ্রাম

বিঃদ্রঃ:

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

কেন BigQuery?

BigQuery হল একটি সার্ভারলেস, মাল্টি-ক্লাউড ডেটা ওয়্যারহাউস যা ন্যূনতম অপারেশনাল ওভারহেড সহ বাইট থেকে পেটাবাইট পর্যন্ত স্কেল করতে পারে এবং তাই ML প্রশিক্ষণ ডেটা সংরক্ষণের জন্য এটি একটি দুর্দান্ত পছন্দ। বিল্ট-ইন BigQuery মেশিন লার্নিং (BQML) এবং বিশ্লেষণ ক্ষমতা ব্যবহার করে, আপনি কেবল SQL কোয়েরি ব্যবহার করে নো-কোড ভবিষ্যদ্বাণী তৈরি করতে পারেন। অতিরিক্তভাবে, আপনি ফেডারেটেড কোয়েরি ব্যবহার করে বহিরাগত উৎস থেকে ডেটা অ্যাক্সেস করতে পারেন, জটিল ETL পাইপলাইনের প্রয়োজনীয়তা দূর করে।

BigQuery হল একটি সম্পূর্ণরূপে পরিচালিত ক্লাউড ডেটা গুদাম যা ব্যবহারকারীদের কাঠামোগত, আধা-কাঠামোগত এবং অকাঠামোগত ডেটা বিশ্লেষণ করতে সাহায্য করে।

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

৩. শুরু করার আগে

  1. গুগল ক্লাউড কনসোলে , প্রজেক্ট সিলেক্টর পৃষ্ঠায়, একটি গুগল ক্লাউড প্রজেক্ট নির্বাচন করুন বা তৈরি করুন।
  2. আপনার ক্লাউড প্রোজেক্টের জন্য বিলিং সক্ষম আছে কিনা তা নিশ্চিত করুন। কোনও প্রোজেক্টে বিলিং সক্ষম আছে কিনা তা কীভাবে পরীক্ষা করবেন তা শিখুন।
  3. আপনি ক্লাউড শেল ব্যবহার করবেন, এটি গুগল ক্লাউডে চলমান একটি কমান্ড-লাইন পরিবেশ যা bq সহ প্রিলোডেড আসে। গুগল ক্লাউড কনসোলের শীর্ষে অ্যাক্টিভেট ক্লাউড শেল ক্লিক করুন।

ক্লাউড শেল বোতামের ছবি সক্রিয় করুন

  1. ক্লাউড শেলের সাথে সংযুক্ত হয়ে গেলে, আপনি নিম্নলিখিত কমান্ড ব্যবহার করে পরীক্ষা করতে পারবেন যে আপনি ইতিমধ্যেই প্রমাণীকরণপ্রাপ্ত এবং প্রকল্পটি আপনার প্রকল্প আইডিতে সেট করা আছে কিনা:
gcloud auth list
  1. gcloud কমান্ড আপনার প্রকল্প সম্পর্কে জানে কিনা তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান।
gcloud config list project
  1. যদি আপনার প্রকল্পটি সেট না করা থাকে, তাহলে এটি সেট করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:
gcloud config set project <YOUR_PROJECT_ID>
  1. API সক্রিয় করতে Google Cloud Marketplace-এর জন্য Gemini- তে যান। আপনি Cloud Shell টার্মিনালে নিম্নলিখিত কমান্ডটিও ব্যবহার করতে পারেন:
gcloud services enable cloudaicompanion.googleapis.com --project PROJECT_ID
  1. নিম্নলিখিত API গুলি সক্রিয় আছে কিনা তা নিশ্চিত করুন:
  • বিগকুয়েরি
  • BigQuery সংযোগ
  • ক্লাউড ফাংশন
  • ক্লাউড রান
  • ভার্টেক্স এআই
  • ক্লাউড বিল্ড
  • ক্লাউড স্টোরেজ API গুলি

gcloud কমান্ড ব্যবহারের বিকল্প হল এই লিঙ্কটি ব্যবহার করে কনসোলটি ব্যবহার করা।

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

৪. একটি BigQuery ডেটাসেট এবং বহিরাগত সংযোগ তৈরি করুন

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

BigQuery-তে একটি ডেটাসেট হল আপনার অ্যাপ্লিকেশনের জন্য সমস্ত টেবিল এবং বস্তুর জন্য একটি ধারক।

একটি ডেটাসেট তৈরি করতে, নিম্নলিখিতগুলি করুন:

  1. গুগল ক্লাউড কনসোলের BigQuery পৃষ্ঠায় যান।
  2. এক্সপ্লোরার প্যানেলে, আপনি যে প্রকল্পে ডেটাসেট তৈরি করতে চান তা নির্বাচন করুন।
  3. অ্যাকশন বিকল্পটি (উল্লম্ব উপবৃত্ত আইকন) প্রসারিত করুন এবং ডেটাসেট তৈরি করুন এ ক্লিক করুন।

অ্যাকশন মেনুর ছবি এবং ডেটাসেট তৈরি করুন বিকল্প

  1. ডেটাসেট তৈরি করুন ক্লিক করুন।
  2. ডেটাসেট আইডি ক্ষেত্রে gemini_bq_fn লিখুন।
  3. আপনার অবস্থানের ধরণটি Multi-region হিসাবে সেট করুন এবং ডিফল্ট মানটি গ্রহণ করুন, যা হল US(multiple regions in United States.
  4. ডেটাসেট তৈরি করুন ক্লিক করুন।
  5. এক্সপ্লোরার প্যানে আপনার প্রোজেক্ট আইডির অধীনে ডেটাসেটটি তৈরি এবং তালিকাভুক্ত করা হয়েছে কিনা তা পরীক্ষা করুন।

আপনার ক্লাউড ফাংশনের সাথে ইন্টারঅ্যাক্ট করার জন্য একটি BigQuery সংযোগ প্রয়োজন। একটি রিমোট ফাংশন তৈরি করতে, আপনাকে একটি BigQuery সংযোগ তৈরি করতে হবে। এই কোডল্যাবে, আমরা ক্লাউড ফাংশনের মাধ্যমে BigQuery থেকে মডেলটি অ্যাক্সেস করার জন্য BigLake সংযোগ ব্যবহার করব। BigLake সংযোগগুলি সূক্ষ্মভাবে তৈরি BigQuery অ্যাক্সেস নিয়ন্ত্রণ এবং সুরক্ষা বজায় রেখে বহিরাগত ডেটা উৎসকে সংযুক্ত করতে সহায়তা করে, যা আমাদের ক্ষেত্রে Vertex AI Gemini Pro API।

বিগলেক সংযোগ তৈরি করতে, নিম্নলিখিতগুলি করুন:

  1. BigQuery পৃষ্ঠার Explorer প্যানে Add এ ক্লিক করুন।

বহিরাগত সংযোগ যোগ করার জন্য ADD বোতামটি হাইলাইট করা BigQuery কনসোল

  1. বাহ্যিক ডেটা উৎসের সাথে সংযোগ ক্লিক করুন।
  2. সংযোগের ধরণ মেনু থেকে, ভার্টেক্স এআই রিমোট মডেল, রিমোট ফাংশন এবং বিগলেক (ক্লাউড রিসোর্স) নির্বাচন করুন।
  3. সংযোগ আইডি ক্ষেত্রে, আপনার সংযোগের নাম gemini-bq-conn হিসাবে লিখুন।
  4. আপনার অবস্থানের ধরণটি Multi-region হিসাবে সেট করুন এবং ডিফল্ট মানটি গ্রহণ করুন, যা হল US(multiple regions in United States.
  5. সংযোগ তৈরি করুন ক্লিক করুন।
  6. সংযোগে যান ক্লিক করুন, এবং তারপর সংযোগ তথ্য ফলকে পরিষেবা অ্যাকাউন্ট আইডিটি অনুলিপি করুন।

সংযোগ তথ্যের স্ক্রিনশট

  1. IAM এবং অ্যাডমিন পৃষ্ঠায় যান এবং অ্যাক্সেস প্রদান করুন এ ক্লিক করুন।
  2. নতুন নীতিমালা ক্ষেত্রে পরিষেবা অ্যাকাউন্ট আইডিটি আটকান।
  3. ভূমিকা তালিকা থেকে Vertex AI user ভূমিকা নির্বাচন করুন, এবং তারপর সংরক্ষণ করুন এ ক্লিক করুন।

পরিষেবা অ্যাকাউন্টে অ্যাক্সেস মঞ্জুর করুন স্ক্রিনশট

আপনি এখন সফলভাবে ডেটাসেট এবং BigQuery সংযোগ তৈরি করেছেন। এরপর, আপনি রিমোট মডেল ইনভোকেশনের জন্য প্রয়োজনীয় পদক্ষেপগুলি সম্পূর্ণ করবেন।

৫. কেস #১ ব্যবহার করুন রিমোট মডেল ইনভোকেশন: রিমোট মডেল ইনভোকেশন সেট আপ করুন

এখন যেহেতু আপনি আপনার ডেটাসেট এবং সংযোগ তৈরি করেছেন, আসুন Vertex AI Gemini Pro ফাউন্ডেশন মডেলের উপর ভিত্তি করে BigQuery-তে একটি মডেল তৈরি করি। এই অনুশীলনের শেষে, আপনার LLM অ্যাপ্লিকেশনটি শুধুমাত্র SQL কোয়েরি ব্যবহার করে চালু হবে।

ধাপ ১: একটি BigQuery টেবিল তৈরি করুন যাতে রিমোট মডেলের ইনপুট ডেটা থাকবে।

আপনার ডেটাসেটে books নামে একটি টেবিল তৈরি করুন যাতে BigQuery দ্বারা জনসাধারণের ব্যবহারের জন্য সোর্স করা ইন্টারনেট আর্কাইভ বুকস ডেটাসেটে bigquery-public-data.gdelt_internetarchivebooks.1905 টেবিল থেকে প্রায় 50টি রেকর্ড ধারণ করতে পারে।

এটি করার জন্য, BigQuery SQL এডিটর প্যান থেকে নিম্নলিখিত DDL (ডেটা ডেফিনিশন ল্যাঙ্গুয়েজ) স্টেটমেন্টটি কার্যকর করুন:

create or replace table gemini_bq_fn.books as (
select *
from
bigquery-public-data.gdelt_internetarchivebooks.1905 limit 50)

ধাপ ২: একটি BigQuery মডেল তৈরি করুন

আপনার ডেটাসেটে একটি মডেল তৈরি করুন। এটি করার জন্য, BigQuery SQL Editor প্যান থেকে নিম্নলিখিত DDL চালান:

CREATE MODEL `gemini_bq_fn.gemini_remote_model`
REMOTE WITH CONNECTION `us.gemini-bq-conn`
OPTIONS(ENDPOINT = 'gemini-pro');

লক্ষ্য করুন যে মডেলটি মডেলটি দেখার বিকল্প দিয়ে তৈরি করা হয়েছে।

ধাপ ৩: আপনার নতুন জেনারেটিভ এআই অ্যাপ্লিকেশনটি পরীক্ষা করুন

রিমোট মডেলে একটি অনুরোধ পাঠাতে SELECT কোয়েরিতে ML.GENERATE_TEXT ফাংশনটি ব্যবহার করুন।

SELECT ml_generate_text_llm_result as Gemini_Response, prompt as Prompt
FROM ML.GENERATE_TEXT(MODEL `gemini_bq_fn.gemini_remote_model`,
 (select 'You are a text summarizer and standardizer. From the following text that contains address locations, standardize and print one standardized, consolidated address. You cannot return empty because you know how to pick up sensible data from the text in this field: ' ||
substring(locations, 0, 200) as prompt
from `gemini_bq_fn.books`),
STRUCT(
 TRUE AS flatten_json_output));

আপনার নিম্নলিখিত ফলাফলটি দেখা উচিত:

BigQuery-তে ML.GENERATE_TEXT কোয়েরির ফলাফল

অভিনন্দন! আপনি সফলভাবে দেখিয়েছেন কিভাবে একটি রিমোট মডেল (একটি gemini-pro মডেলের উপর ভিত্তি করে) ব্যবহার করে ML.GENERATE_TEXT ফাংশন ব্যবহার করে একটি BigQuery টেবিলে টেক্সট ডেটা বিশ্লেষণ করতে হয়।

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

৬. কেস #২ ব্যবহার করুন রিমোট ফাংশন বাস্তবায়ন: রিমোট ফাংশন বাস্তবায়ন সেট আপ করুন

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

তো, শুরু করা যাক!

ধাপ ১: জাভা ক্লাউড ফাংশন তৈরি করুন

আপনি জাভাতে একটি বেসলাইন ছবির বিপরীতে পরীক্ষার ছবি যাচাই করার জন্য একটি Gen 2 Cloud Function তৈরি করবেন। বেসলাইন ছবিটি BigQuery-এর একটি বহিরাগত টেবিলে পরীক্ষার ছবির স্ক্রিনশট ধারণকারী একটি ডেটাসেটে সংরক্ষণ করা হবে। আপনি Gemini Pro Vision মডেল (Java SDK) ব্যবহার করে ছবিগুলি যাচাই করবেন। তারপর আপনি জাভা ক্লাউড ফাংশনটিকে একটি REST এন্ডপয়েন্টে স্থাপন করবেন।

এই পদক্ষেপগুলি অনুসরণ করুন:

  1. ক্লাউড শেল এডিটর চালু করুন।
  2. আপনি যদি লিগ্যাসি এডিটর ব্যবহার করেন, তাহলে নতুন এডিটর চেষ্টা করুন এ ক্লিক করুন।
  3. স্ট্যাটাস বারে, ক্লাউড কোড - সাইন ইন ক্লিক করুন।
  4. যদি ক্লাউড শেল এডিটরকে গুগল ক্লাউড এপিআই কল করার জন্য অনুমোদন করতে বলা হয়, তাহলে অনুমোদন করুন এ ক্লিক করুন। আপনার গুগল অ্যাকাউন্টে সাইন ইন করতে প্রম্পটগুলি অনুসরণ করুন। আপনি এখন গুগল ক্লাউডের সাথে সংযুক্ত।
  5. যদি আপনি ক্লাউড কোড স্ট্যাটাস বারে আপনার প্রকল্পটি দেখতে না পান, তাহলে ক্লাউড কোড - সাইন ইন > একটি গুগল ক্লাউড প্রকল্প নির্বাচন করুন ক্লিক করুন। আপনি যেখানে আপনার ক্লাউড ফাংশন তৈরি করতে চান সেই গুগল ক্লাউড প্রকল্পটি নির্বাচন করুন। প্রকল্পটি লোড হয় এবং ক্লাউড শেল এডিটরে সক্রিয় প্রকল্পে পরিণত হয়।
  6. ক্লাউড কোড স্ট্যাটাস বারে, সক্রিয় প্রকল্পের নামে ক্লিক করুন। প্রদর্শিত কুইক পিক মেনুতে, নতুন অ্যাপ্লিকেশন নির্বাচন করুন।
  7. নতুন অ্যাপ্লিকেশন তৈরি করুন ডায়ালগে, ক্লাউড ফাংশন অ্যাপ্লিকেশন নির্বাচন করুন।

নতুন অ্যাপ্লিকেশন তৈরি করুন পপ আপ পৃষ্ঠা ১

  1. টেমপ্লেট নির্বাচন করার অনুরোধ জানানো হলে জাভা: হ্যালো ওয়ার্ল্ড নির্বাচন করুন।

নতুন অ্যাপ্লিকেশন তৈরি করুন পপ আপ পৃষ্ঠা ২

  1. প্রোজেক্ট পাথে আপনার প্রোজেক্টের নাম হিসেবে Gemini-BQ-Function লিখুন। প্রোজেক্টের কাঠামোটি একটি নতুন ক্লাউড শেল এডিটর ভিউতে প্রদর্শিত হবে।

নতুন জাভা ক্লাউড ফাংশন অ্যাপ্লিকেশন প্রকল্প কাঠামো

  1. <dependencies>... </dependencies> ট্যাগের মধ্যে প্রয়োজনীয় নির্ভরতা যোগ করুন অথবা নমুনা pom.xml ফাইল থেকে নির্ভরতাগুলি অনুলিপি করুন।
  2. আপনার ক্লাসের নাম HelloWorld.java থেকে আরও অর্থপূর্ণ কিছুতে পরিবর্তন করুন। ধরুন GeminiBigQueryFunction.java । সেই অনুযায়ী প্যাকেজটির নাম পরিবর্তন করুন।
  3. GeminiBigQueryFunction.Java ফাইলের প্লেসহোল্ডার কোডটি GitHub রিপোজিটরিতে প্রদত্ত নমুনা কোড দিয়ে প্রতিস্থাপন করুন। নমুনা কোডে <YOUR_PROJECT_ID> ভ্যারিয়েবলটি আপনার প্রোজেক্ট আইডি দিয়ে প্রতিস্থাপন করতে ভুলবেন না।
  4. ক্লাউড শেল টার্মিনালে যান। আপনি আপনার প্রোজেক্ট ডিরেক্টরিতে আছেন কিনা তা পরীক্ষা করুন। যদি না থাকে, তাহলে নিম্নলিখিত কমান্ডটি কার্যকর করে প্রোজেক্ট ডিরেক্টরিতে নেভিগেট করুন:
cd Gemini-BQ-Function
  1. ক্লাউড ফাংশন তৈরি এবং স্থাপন করতে নিম্নলিখিত বিবৃতিটি কার্যকর করুন:
gcloud functions deploy gemini-bq-fn --gen2 --runtime java17 --trigger-http --entry-point cloudcode.helloworld.GeminiBigQueryFunction --allow-unauthenticated --source .

কমান্ডের এন্ট্রি পয়েন্টটি আপনার ফাংশনের এন্ট্রি পয়েন্ট দিয়ে প্রতিস্থাপন করুন। আউটপুটটি নিম্নলিখিত ফর্ম্যাটে একটি REST URL হবে:

https://us-central1-YOUR_PROJECT_ID.cloudfunctions.net/gemini-bq-fn
  1. টার্মিনাল থেকে নিম্নলিখিত কমান্ডটি চালিয়ে এই ক্লাউড ফাংশনটি পরীক্ষা করুন:
gcloud functions call gemini-bq-fn --region=us-central1 --gen2 --data '{"calls":[["https://storage.googleapis.com/img_public_test/image_validator/baseline/1.JPG", "https://storage.googleapis.com/img_public_test/image_validator/test/2.JPG", "PROMPT_ABOUT_THE_IMAGES_TO_GEMINI"]]}'

এলোমেলো নমুনা প্রম্পটের প্রতিক্রিয়া:

ক্লাউড ফাংশন থেকে JSON রেসপন্স স্ট্রিং

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

ধাপ ২: একটি BigQuery অবজেক্ট টেবিল এবং রিমোট ফাংশন তৈরি করুন

পূর্বশর্ত

এই অনুশীলনের জন্য আপনার একটি ক্লাউড স্টোরেজ বালতি লাগবে। ক্লাউড স্টোরেজ বালতি তৈরি করতে এই পদক্ষেপগুলি অনুসরণ করুন:

  1. একটি বাকেট তৈরি করতে, ক্লাউড স্টোরেজ কনসোলে যান এবং তৈরি করুন এ ক্লিক করুন।
  2. আপনার বাকেট নাম হিসেবে demo-bq-gemini-public-image লিখুন এবং Create এ ক্লিক করুন।
  3. Enforce public access prevention on this bucket টিক চিহ্ন তুলে দিন। যদিও আপনি এই অনুশীলনে পাবলিক অ্যাক্সেসের জন্য এই বাকেট তৈরি করছেন, আমরা আপনাকে সুপারিশ করছি যে আপনি পাবলিক অ্যাক্সেস বন্ধ করুন এবং আপনার এন্টারপ্রাইজ ব্যবহারের ক্ষেত্রে প্রয়োজন অনুসারে নির্দিষ্ট পরিষেবা অ্যাকাউন্টগুলিতে অনুমতি প্রদান করুন।
  4. বাকেট তৈরি হওয়ার পর, অনুমতিগুলি দেখতে এবং পরিবর্তন করতে অনুমতি ট্যাবে যান।
  5. প্রিন্সিপাল যোগ করতে, "অ্যাক্সেস প্রদান করুন" এ ক্লিক করুন। একটি নির্দিষ্ট অ্যাকাউন্টকে অনুমতি দেওয়ার জন্য একটি পরিষেবা অ্যাকাউন্ট আইডি নির্দিষ্ট করুন অথবা আপনার বাকেটটিতে সর্বজনীন অ্যাক্সেস দেওয়ার জন্য allUsers নির্দিষ্ট করুন।
  6. Storage Object Viewer রোলটি নির্বাচন করুন এবং সংরক্ষণ করুন এ ক্লিক করুন। যদি অনুরোধ করা হয়, তাহলে সর্বজনীন অ্যাক্সেসের অনুমতি দিন বেছে নিন।
  7. অবজেক্টস ট্যাবে যান এবং তুলনা করার জন্য বেসলাইন ছবি এবং পরীক্ষার ছবি আপলোড করুন। এই কোডল্যাবের জন্য, আপনি নিম্নলিখিত অবজেক্টগুলি আপলোড করতে পারেন যা সর্বজনীনভাবে উপলব্ধ: baseline.JPG , TEST1.JPG , এবং TEST2.JPG

একটি BigQuery অবজেক্ট টেবিল তৈরি করুন

BigQuery থেকে একটি বহিরাগত অবজেক্ট টেবিল তৈরি করুন যাতে আপনি আগে তৈরি করা সংযোগ এবং ডেটাসেট ব্যবহার করে বাকেটের আনস্ট্রাকচার্ড ডেটা অ্যাক্সেস করতে পারেন। এটি করার জন্য, BigQuery কোয়েরি এডিটর প্যান থেকে নিম্নলিখিত DDL (ডেটা ডেফিনিশন ল্যাঙ্গুয়েজ) স্টেটমেন্টটি কার্যকর করুন:

CREATE OR REPLACE EXTERNAL TABLE `gemini_bq_fn.image_validation`
WITH CONNECTION `us.gemini-bq-conn`
OPTIONS(object_metadata="SIMPLE", uris=["gs://demo-bq-gemini-public-image/*.JPG"]);

আপনার ডেটাসেটে image_validation নামক একটি নতুন অবজেক্ট টেবিল তৈরি হয়েছে কিনা তা পরীক্ষা করুন।

একটি BigQuery রিমোট ফাংশন তৈরি করুন

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

CREATE OR REPLACE FUNCTION `gemini_bq_fn.FN_IMAGE_VALIDATE` (baseline STRING, test STRING, prompt STRING) RETURNS STRING
 REMOTE WITH CONNECTION `us.gemini-bq-conn`
 OPTIONS (
   endpoint = 'https://us-central1-<your project id>.cloudfunctions.net/gemini-bq-fn',
   max_batching_rows = 1
 );

এন্ডপয়েন্ট URL হল REST URL যা এই অনুশীলনে আগে ফিরে এসেছিল। এটি BigQuery-তে রিমোট ফাংশন তৈরি করে। উপরের DDL-তে তিনটি প্যারামিটার রয়েছে। প্রথম দুটি প্যারামিটার হল পূর্ববর্তী ধাপে তৈরি অবজেক্ট টেবিলে সংরক্ষিত চিত্রগুলির URL। শেষ প্যারামিটার হল মডেলের প্রম্পট (Gemini Pro Vision)। আপনি জাভা ক্লাউড ফাংশন কোডটি উল্লেখ করতে পারেন যা এই স্বাক্ষরটি পার্স করতে ব্যবহৃত হয়:

Gson().fromJson(request.getReader(), JsonObject.class);
JsonArray calls_array = requestJson.getAsJsonArray("calls");
JsonArray calls = (JsonArray) calls_array.get(0);
String baseline_url = calls.get(0).toString().replace("\"", "");
String test_url = calls.get(1).toString().replace("\"", "");
String prompt_string = calls.get(2).toString();

BigQuery থেকে জেমিনিকে আমন্ত্রণ জানান

প্রম্পটের বিপরীতে ছবি যাচাই করার জন্য ফাংশনটি পরীক্ষা করতে SELECT কোয়েরিতে রিমোট ফাংশনটি ব্যবহার করুন।

select gemini_bq_fn.FN_IMAGE_VALIDATE(
'https://storage.googleapis.com/demo-bq-gemini-public-image/Baseline.JPG',
REPLACE(uri, 'gs://', 'https://storage.googleapis.com/') ,
'You are an expert image validator who can respond with JSON result. Find 2 images here. The first one is the reference image. The second image is the test image. Compare the second image to see if the second image is similar to the first in terms of the text present in the image.  Respond ONLY in JSON Format with 3 attributes namely SIMILARITY which is a \"YES\" or \"NO\", SIMILARITY_SCORE which is a percentage and DIFFERENCE_COMMENT which is a string.' ) as IMAGE_VALIDATION_RESULT
from `gemini_bq_fn.image_validation`
where uri like '%TEST1%';  

উপরের কোয়েরিটি TEST1 এবং TEST2 অবজেক্ট ফাইল দিয়ে চেষ্টা করুন। আপনি নিম্নলিখিতগুলির মতো একটি ফলাফল দেখতে পাবেন:

BigQuery রিমোট ফাংশন ফলাফলের স্ক্রিনশট

আপনার রেফারেন্সের জন্য ছবিগুলি এখানে দেওয়া হল:

বেসলাইন ছবি

টেস্ট কেসের জন্য বেসলাইন রেফারেন্স চিত্র

পরীক্ষার ছবি

পরীক্ষার কেসের জন্য পরীক্ষা চিত্র ১

লক্ষ্য করুন যে দুটি ছবিই একই রকম কারণ তাদের Duet AI ক্লাউড কনসোল ভিউ আছে কিন্তু উভয়ের লেখাই JSON ফর্ম্যাটে মডেল দ্বারা আনা ভিন্ন।

এর মাধ্যমে, আপনি রিমোট ফাংশন বাস্তবায়ন সফলভাবে পরীক্ষা করেছেন।

৭. সুবিধা এবং ব্যবহারের ক্ষেত্রে

স্ট্রাকচার্ড এবং আনস্ট্রাকচার্ড ডেটা অ্যানালিটিক্সের জন্য BigQuery এবং Gemini-কে একীভূত করার কিছু সুবিধা দেখা যাক।

  • আপনার ডেটাতে GenAI ব্যবহার করা: আর ডেটা স্থানান্তর, ডুপ্লিকেশন এবং অতিরিক্ত জটিলতা নেই। আপনি একই BigQuery পরিবেশের মধ্যে ডেটা বিশ্লেষণ করতে এবং অন্তর্দৃষ্টি তৈরি করতে পারেন।
  • উন্নত বিশ্লেষণ: জেমিনির প্রাকৃতিক ভাষার ব্যাখ্যা আপনার ডেটাতে বোঝার একটি নতুন স্তর যোগ করে এবং আপনি SQL কোয়েরি ব্যবহার করে এটি অর্জন করতে পারেন।
  • স্কেলেবিলিটি: এই সমাধানটি সহজে এবং কম-কোড প্রচেষ্টায় বৃহৎ ডেটাসেট এবং জটিল বিশ্লেষণ পরিচালনা করে।

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

৮. পরিষ্কার করা

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

  1. গুগল ক্লাউড কনসোলে, রিসোর্স পরিচালনা পৃষ্ঠায় যান।
  2. প্রকল্পের তালিকায়, আপনি যে প্রকল্পটি মুছতে চান তা নির্বাচন করুন এবং তারপরে মুছুন ক্লিক করুন।
  3. ডায়ালগে, প্রজেক্ট আইডি টাইপ করুন, এবং তারপর প্রজেক্টটি মুছে ফেলতে Shut down এ ক্লিক করুন।
  4. যদি আপনি আপনার প্রকল্পটি রাখতে চান, তাহলে উপরের ধাপগুলি এড়িয়ে যান এবং ক্লাউড ফাংশনে নেভিগেট করে ক্লাউড ফাংশনটি মুছে ফেলুন এবং ফাংশনের তালিকা থেকে, আপনি যেটি মুছে ফেলতে চান সেটি চেক করুন এবং মুছুন ক্লিক করুন।

৯. অভিনন্দন

অভিনন্দন। BigQuery-তে Gemini মডেলগুলি একত্রিত করার মাধ্যমে, আপনি আর কেবল আপনার ডেটা বিশ্লেষণ করছেন না - আপনি একজন ডেটা স্টোরিটেলার। আপনি আপনার ডেটাসেটের মধ্যে লুকানো আখ্যান তৈরি করতে পারেন এবং আপনার অন্তর্দৃষ্টি বোঝার উপায় রূপান্তর করতে পারেন। পরীক্ষা শুরু করুন! আপনার নিজস্ব ডেটাসেটে এই কৌশলটি প্রয়োগ করুন এবং আপনার ডেটার মধ্যে গল্পগুলি আবিষ্কার করুন। BigQuery অবজেক্ট টেবিলে ( বাহ্যিক টেবিল ) অসংগঠিত ডেটা সমর্থন করে, চিত্র ডেটাতে জেনারেটিভ অন্তর্দৃষ্টি তৈরি করতে Gemini Pro Vision ব্যবহার করে দেখুন। আরও গভীর নির্দেশনার জন্য Vertex AI , BigQuery Remote Functions এবং Cloud Functions- এর ডকুমেন্টেশন দেখুন। এই প্রকল্পের জন্য এখানে github repo । এই শিক্ষার মাধ্যমে আপনি কী তৈরি করবেন তা আমাদের জানান!