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

1। পরিচিতি

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

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

পদ্ধতি 1: দূরবর্তী মডেল আহ্বান

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

পদ্ধতি 2: দূরবর্তী ফাংশন বাস্তবায়ন

আপনি কি নির্মাণ করবেন

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

দূরবর্তী মডেল আহ্বানের জন্য প্রবাহ চিত্র

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

দূরবর্তী ফাংশন বাস্তবায়নের জন্য প্রবাহ চিত্র

বিঃদ্রঃ:

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

কেন BigQuery?

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

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

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

3. আপনি শুরু করার আগে

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

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

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

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

জিক্লাউড কমান্ড এবং ব্যবহারের জন্য ডকুমেন্টেশন পড়ুন।

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

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

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

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

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

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

  1. ডেটাসেট তৈরি করুন ক্লিক করুন।
  2. Dataset ID ক্ষেত্রে 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।

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

  1. BigQuery পৃষ্ঠার এক্সপ্লোরার প্যানে অ্যাড ক্লিক করুন।

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

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

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

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

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

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

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

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

ধাপ 1: একটি 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)

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

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

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

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

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

দূরবর্তী মডেলে একটি অনুরোধ পাঠাতে একটি 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 ক্যোয়ারী ফলাফল

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

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

6. কেস #2 রিমোট ফাংশন ইমপ্লিমেন্টেশন ব্যবহার করুন: রিমোট ফাংশন ইমপ্লিমেন্টেশন সেট আপ করুন

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

চল শুরু করা যাক!

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

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

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

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

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

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

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

  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 ডেটাতে এই এন্ডপয়েন্ট ব্যবহার করা যাক।

ধাপ 2: একটি 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
 );

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

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 রিমোট ফাংশন ফলাফলের স্ক্রিনশট

এখানে আপনার রেফারেন্সের জন্য ছবি আছে:

বেসলাইন ইমেজ

টেস্ট কেসের জন্য বেসলাইন রেফারেন্স ইমেজ

পরীক্ষার ছবি

টেস্ট কেসের জন্য টেস্ট ইমেজ 1

লক্ষ্য করুন যে দুটি চিত্রই একই রকম যে তাদের ডুয়েট এআই ক্লাউড কনসোল ভিউ রয়েছে তবে উভয়ের পাঠ্যই ভিন্ন, যেমনটি মডেলটি একটি JSON ফর্ম্যাটে নিয়ে এসেছে।

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

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

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

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

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

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

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

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

9. অভিনন্দন

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