इन-प्लेस एलएलएम इनसाइट: स्ट्रक्चर्ड और अनस्ट्रक्चर्ड डेटा ऐनलिटिक्स के लिए BigQuery और Gemini

1. शुरुआती जानकारी

बड़े पैमाने पर डेटासेट में अहम जानकारी होती है, लेकिन काम की जानकारी हासिल करना मुश्किल काम हो सकता है. आम तौर पर, आंकड़ों से जुड़े पारंपरिक टूल में सटीक और मानवीय जानकारी नहीं दी जाती. इससे डेटा को समझने में हमें मदद मिलती है. डेटा वेयरहाउस में ज़्यादा से ज़्यादा, बिना स्ट्रक्चर वाला डेटा मौजूद होता है, लेकिन अहम जानकारी पाने के लिए इस डेटा को हमेशा ऐक्सेस नहीं किया जा सकता. अनस्ट्रक्चर्ड टेक्स्ट, इमेज, और वीडियो में आपके कारोबार को आगे बढ़ाने के लिए अहम जानकारी होती है. एलएलएम, आपके डेटा को बेहतर तरीके से समझने में मदद करते हैं. जैसे, जानकारी का विश्लेषण करना, भावनाओं का विश्लेषण करना, ऑब्जेक्ट की पहचान करना वगैरह. आने वाले मल्टीमॉडल मॉडल (और ऑब्जेक्ट टेबल के ज़रिए BigQuery में इमेज और वीडियो जैसे ऑब्जेक्ट डेटा को सेव करने की सुविधा) आने से, BigQuery के साथ Gemini 1.0 Pro और Gemini 1.0 Pro Vision जैसे बेहतरीन एलएलएम इंटिग्रेट करके, डेटा का विश्लेषण बेहतर तरीके से किया जा सकता है.

इस कोडलैब में, हम आपके एंटरप्राइज़ डेटा से एलएलएम इनसाइट बनाने के इन दो तरीकों पर चर्चा करेंगे. साथ ही, इन दो तरीकों पर आपको BigQuery में मौजूद हज़ारों पंक्तियों में जानकारी को स्केल करना होगा:

पहला तरीका: रिमोट मॉडल को शुरू करना

  • SELECT क्वेरी में ML.GENERATE_TEXT का इस्तेमाल करके, BigQuery से Gemini 1.0 Pro को कॉल करें.
  • इस तरीके का इस्तेमाल तब करें, जब BigQuery में यह मॉडल पहले से ही रिमोट मॉडल के तौर पर उपलब्ध हो और आपको इसका इस्तेमाल सबसे पहले करना हो. BigQuery दस्तावेज़ में जिस मॉडल का इस्तेमाल करना है उसका स्टेटस देखें.

दूसरा तरीका: रिमोट फ़ंक्शन को लागू करना

आपको क्या बनाना होगा

  • रिमोट मॉडल शुरू करने वाले तरीके के लिए, BigQuery में ML.GENERATE_TEXT कंस्ट्रक्शन में Gemini 1.0 Pro के रिमोट मॉडल का इस्तेमाल करके, इंटरनेट पर संग्रहित किताबों के डेटासेट (जो BigQuery में सार्वजनिक रूप से उपलब्ध है) के लिए, जगह की जानकारी देने वाला टूल बनाया जा सकता है.

रिमोट मॉडल को शुरू करने के लिए फ़्लो डायग्राम

  • रिमोट फ़ंक्शन को लागू करने वाले तरीके के लिए, आपको बेसलाइन इमेज के लिए टेस्ट इमेज की पुष्टि करने के लिए, इमेज की पुष्टि करने वाला प्रोग्राम बनाना होगा. इसके लिए, आपको एक ऐसा डेटासेट बनाना होगा जिसमें टेस्ट इमेज के स्क्रीनशॉट दिखाए गए हों. यह स्क्रीनशॉट, बाहरी टेबल में मौजूद होगा. इसके बाद, Gemini 1.0 Pro Vision की बेसलाइन इमेज से इस बात की पुष्टि करने के लिए कहें. इसके बाद, आपको Gemini Pro Vision कॉल को लागू करने वाला Java Cloud Function बनाना होगा और BigQuery में इसे रिमोट फ़ंक्शन के तौर पर शुरू करना होगा.

रिमोट फ़ंक्शन को लागू करने के लिए फ़्लो डायग्राम

ध्यान दें:

BigQuery में रिमोट मॉडल के तौर पर, Vertex AI के जनरेटिव एआई मॉडल की संख्या ज़्यादा हो सकती है. इसका मतलब है कि इन मॉडल को BigQuery के ML.GENERATE_TEXT कंस्ट्रक्शन की मदद से ऐक्सेस किया जा सकता है. हालांकि, रिमोट मॉडल की उपलब्धता के मामले में भी, आपके पास Cloud Functions के साथ इस्तेमाल के उदाहरण के लिए, पसंद के मुताबिक बेहतर कस्टमाइज़ेशन बनाने का विकल्प हमेशा होता है. इसके बाद, इन मॉडल को BigQuery से रिमोट फ़ंक्शन के तौर पर ऐक्सेस किया जा सकता है.

BigQuery ही क्यों?

BigQuery, बिना सर्वर वाला मल्टी-क्लाउड डेटा वेयरहाउस है. यह बाइट से पेटाबाइट तक स्केल किया जा सकता है और इसमें काम करने के लिए बहुत कम खर्च होता है. इसलिए, मशीन लर्निंग का ट्रेनिंग डेटा सेव करने के लिए यह सही विकल्प है. पहले से मौजूद BigQuery मशीन लर्निंग (BQML) और विश्लेषण करने की सुविधाओं का इस्तेमाल करके, सिर्फ़ एसक्यूएल क्वेरी का इस्तेमाल करके बिना कोड वाले अनुमान बनाए जा सकते हैं. इसके अलावा, फ़ेडरेटेड क्वेरी वाले बाहरी सोर्स का डेटा भी ऐक्सेस किया जा सकता है. इससे, मुश्किल ETL पाइपलाइन की ज़रूरत नहीं पड़ती.

BigQuery पूरी तरह से मैनेज किया गया क्लाउड डेटा वेयरहाउस है. इसकी मदद से, उपयोगकर्ताओं को स्ट्रक्चर्ड, सेमी-स्ट्रक्चर्ड, और अनस्ट्रक्चर्ड डेटा का विश्लेषण करने में मदद मिलती है.

2. ज़रूरी शर्तें

  • Chrome या Firefox जैसा ब्राउज़र
  • आपके पास ऐसा Google Cloud प्रोजेक्ट होना चाहिए जिसमें बिलिंग की सुविधा चालू हो.

3. शुरू करने से पहले

  1. Google Cloud Console में, प्रोजेक्ट सिलेक्टर पेज पर, Google Cloud प्रोजेक्ट चुनें या बनाएं.
  2. पक्का करें कि आपके Cloud प्रोजेक्ट के लिए बिलिंग की सुविधा चालू हो. किसी प्रोजेक्ट के लिए बिलिंग चालू है या नहीं, यह देखने का तरीका जानें .
  3. आपको Cloud Shell का इस्तेमाल करना होगा. यह Google Cloud में चलने वाला एक कमांड-लाइन एनवायरमेंट है. यह पहले से लोड होकर, Google Cloud में आता है. Google Cloud Console में सबसे ऊपर मौजूद, Cloud Shell को चालू करें पर क्लिक करें.

Cloud Shell बटन की इमेज को चालू करें

  1. Cloud Shell से कनेक्ट करने के बाद, यह जांच लें कि आपकी पुष्टि पहले ही हो चुकी है. साथ ही, यह देखें कि प्रोजेक्ट को आपके प्रोजेक्ट आईडी पर सेट करने के लिए, नीचे दिए गए निर्देश का इस्तेमाल किया गया हो:
gcloud auth list
  1. Cloud Shell में यह कमांड चलाएं, ताकि यह पुष्टि की जा सके कि gcloud कमांड को आपके प्रोजेक्ट के बारे में जानकारी है.
gcloud config list project
  1. अगर आपका प्रोजेक्ट सेट नहीं है, तो इसे सेट करने के लिए नीचे दिए गए कमांड का इस्तेमाल करें:
gcloud config set project <YOUR_PROJECT_ID>
  1. एपीआई चालू करने के लिए, Gemini for Google Cloud Marketplace पर जाएं. Cloud Shell टर्मिनल में, इस कमांड का इस्तेमाल भी किया जा सकता है:
gcloud services enable cloudaicompanion.googleapis.com --project PROJECT_ID
  1. पक्का करें कि नीचे दिए गए एपीआई चालू हों:
  • BigQuery
  • BigQuery कनेक्शन
  • Cloud फ़ंक्शन
  • Cloud Run
  • Vertex AI
  • Cloud Build
  • Cloud Storage API

gcloud कमांड का इस्तेमाल करने का विकल्प इस लिंक का इस्तेमाल करके कंसोल से होकर जाता है.

gcloud के लिए कमांड और इसके इस्तेमाल के बारे में जानने के लिए, दस्तावेज़ देखें.

4. BigQuery डेटासेट और बाहरी कनेक्शन बनाना

सबसे पहले, डेटासेट और क्लाउड रिसॉर्स कनेक्शन बनाएं.

BigQuery में मौजूद डेटासेट, आपके ऐप्लिकेशन की सभी टेबल और ऑब्जेक्ट के लिए एक कंटेनर होता है.

डेटासेट बनाने के लिए, ये काम करें:

  1. Google Cloud Console में BigQuery पेज पर जाएं.
  2. एक्सप्लोरर पैनल में, वह प्रोजेक्ट चुनें जिसमें आपको डेटासेट बनाना है.
  3. कार्रवाई विकल्प (वर्टिकल एलिप्सिस आइकॉन) को बड़ा करें. इसके बाद, डेटासेट बनाएं पर क्लिक करें.

ऐक्शन मेन्यू और डेटासेट बनाने के विकल्प की इमेज

  1. डेटासेट बनाएं पर क्लिक करें.
  2. डेटासेट आईडी फ़ील्ड में gemini_bq_fn डालें.
  3. अपनी जगह के टाइप को Multi-region के तौर पर सेट करें और US(multiple regions in United States. की डिफ़ॉल्ट वैल्यू स्वीकार करें
  4. डेटासेट बनाएं पर क्लिक करें.
  5. देखें कि डेटासेट बनाया गया है और एक्सप्लोरर पैनल में मौजूद आपके प्रोजेक्ट आईडी की सूची में शामिल किया गया है.

आपके Cloud Function के साथ इंटरैक्ट करने के लिए, BigQuery कनेक्शन ज़रूरी है. रिमोट फ़ंक्शन बनाने के लिए, आपको BigQuery कनेक्शन बनाना होगा. इस कोडलैब में, हम Cloud फ़ंक्शन के ज़रिए BigQuery से मॉडल ऐक्सेस करने के लिए, BigLake कनेक्शन का इस्तेमाल करेंगे. BigLake कनेक्शन, BigQuery ऐक्सेस कंट्रोल और सुरक्षा को बनाए रखते हुए, बाहरी डेटा सोर्स को कनेक्ट करने में मदद करते हैं. हमारे मामले में, Vertex AI Gemini Pro API को जोड़ा जाता है.

BigLake कनेक्शन बनाने के लिए, यह तरीका अपनाएं:

  1. BigQuery पेज के एक्सप्लोरर पैनल में जोड़ें पर क्लिक करें.

बाहरी कनेक्शन जोड़ने के लिए, &#39;जोड़ें&#39; बटन वाला BigQuery कंसोल

  1. बाहरी डेटा सोर्स के कनेक्शन पर क्लिक करें.
  2. कनेक्शन टाइप मेन्यू में जाकर, Vertex AI Remote Model, रिमोट फ़ंक्शन, और BigLake (Cloud Resource) को चुनें.
  3. कनेक्शन आईडी फ़ील्ड में, gemini-bq-conn के तौर पर अपने कनेक्शन का नाम डालें.
  4. अपनी जगह के टाइप को Multi-region के तौर पर सेट करें और US(multiple regions in United States. की डिफ़ॉल्ट वैल्यू स्वीकार करें
  5. कनेक्शन बनाएं पर क्लिक करें.
  6. कनेक्शन पर जाएं पर क्लिक करें. इसके बाद,कनेक्शन की जानकारी वाले पैनल में मौजूद सेवा खाता आईडी को कॉपी करें.

कनेक्शन की जानकारी का स्क्रीनशॉट

  1. आईएएम और एडमिन पेज पर जाएं और ऐक्सेस दें पर क्लिक करें.
  2. नए सिद्धांत फ़ील्ड में, सेवा खाता आईडी चिपकाएं.
  3. भूमिका सूची से Vertex AI user भूमिका चुनें और फिर सेव करें पर क्लिक करें.

सेवा खाते के स्क्रीनशॉट का ऐक्सेस दें

अब आपने डेटासेट और BigQuery कनेक्शन बना लिया है. इसके बाद, आपको रिमोट मॉडल को शुरू करने के लिए ज़रूरी चरणों को पूरा करना होगा.

5. इस्तेमाल का उदाहरण #1 रिमोट मॉडल इन्वोकेशन: रिमोट मॉडल को शुरू करने की प्रक्रिया सेट अप करना

आपने अपना डेटासेट और कनेक्शन बना लिया है, तो अब Vertex AI Gemini Pro फ़ाउंडेशन मॉडल के आधार पर BigQuery में एक मॉडल बनाएं. इस प्रैक्टिस को पूरा करने के बाद, आपका एलएलएम ऐप्लिकेशन सिर्फ़ एसक्यूएल क्वेरी का इस्तेमाल करके चलेगा.

पहला चरण: ऐसी BigQuery टेबल बनाएं जिसमें रिमोट मॉडल का इनपुट डेटा शामिल हो

अपने डेटासेट में books नाम की एक टेबल बनाएं. इसमें इंटरनेट आर्काइव बुक के डेटासेट की bigquery-public-data.gdelt_internetarchivebooks.1905 टेबल से करीब 50 रिकॉर्ड शामिल हो सकते हैं. यह डेटा BigQuery के सार्वजनिक तौर पर इस्तेमाल के लिए होता है.

ऐसा करने के लिए, BigQuery एसक्यूएल एडिटर पैनल से नीचे दिया गया डीडीएल (डेटा डेफ़िनिशन लैंग्वेज) स्टेटमेंट चलाएं:

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

दूसरा चरण : BigQuery मॉडल बनाना

अपने डेटासेट में कोई मॉडल बनाएं. ऐसा करने के लिए, BigQuery SQL Editor पैनल से, यहां दिया गया डीडीएल चलाएं:

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 क्वेरी का नतीजा

बधाई हो! आपने BigQuery टेबल में टेक्स्ट डेटा का विश्लेषण करने के लिए, ML.GENERATE_TEXT फ़ंक्शन की मदद से रिमोट मॉडल (gemini-pro मॉडल के आधार पर) के इस्तेमाल का तरीका सही से दिखाया है.

आइए, अब BigQuery के रिमोट फ़ंक्शन का इस्तेमाल करके, किसी दूसरे Vertex AI मॉडल को आज़माते हैं. मान लें कि आपको BigQuery में रिमोट तरीके से भी इस मॉडल को पसंद के मुताबिक बनाने के ज़्यादा विकल्प चाहिए. BigQuery दस्तावेज़ में, इस्तेमाल किए जा सकने वाले मॉडल की जानकारी दी गई है.

6. इस्तेमाल का उदाहरण #2 रिमोट फ़ंक्शन को लागू करना: रिमोट फ़ंक्शन को लागू करने की सुविधा सेट अप करना

इस अभ्यास में, आपको Java Cloud Function के आधार पर BigQuery में एक ऐसा फ़ंक्शन बनाने की जानकारी मिलेगी जो Gemini 1.0 Pro Vision फ़ाउंडेशन मॉडल को लागू करेगा. सबसे पहले, आपको Gemini 1.0 Pro Vision मॉडल का इस्तेमाल करके इमेज की तुलना करने के लिए, Java Cloud Function बनाना और डिप्लॉय करना होगा. इसके बाद, BigQuery में रिमोट फ़ंक्शन बनाना होगा जो डिप्लॉय किए गए Cloud Function को शुरू करेगा. याद रखें कि BigQuery में किसी भी रिमोट फ़ंक्शन को एक्ज़ीक्यूट करने के लिए, यही प्रोसेस अपनाई जा सकती है.

आइए, शुरू करते हैं!

पहला चरण: Java Cloud फ़ंक्शन बनाना

आपको बेसलाइन इमेज के लिए टेस्ट इमेज की पुष्टि करने के लिए, Java में जेन 2 क्लाउड फ़ंक्शन बनाना होगा. बेसलाइन इमेज, BigQuery में मौजूद बाहरी टेबल में टेस्ट इमेज के स्क्रीनशॉट वाले डेटासेट में सेव होती है. Gemini Pro Vision मॉडल (Java SDK) का इस्तेमाल करके, इमेज की पुष्टि की जा सकती है. इसके बाद, आपको REST एंडपॉइंट पर Java क्लाउड फ़ंक्शन डिप्लॉय करना होगा.

यह तरीका अपनाएं:

  1. Cloud Shell Editor लॉन्च करें.
  2. अगर लेगसी एडिटर का इस्तेमाल किया जा रहा है, तो नया एडिटर आज़माएं पर क्लिक करें.
  3. स्टेटस बार में, Cloud कोड - साइन इन करें पर क्लिक करें.
  4. अगर Cloud Shell Editor को Google Cloud API कॉल करने की अनुमति मांगी जाए, तो अनुमति दें पर क्लिक करें. अपने Google खाते में साइन इन करने के लिए निर्देशों का पालन करें. अब आपका डिवाइस Google Cloud से कनेक्ट हो गया है.
  5. अगर आपको Cloud कोड के स्टेटस बार में अपना प्रोजेक्ट नहीं दिखता है, तो Cloud Code - साइन इन करें > कोई Google Cloud प्रोजेक्ट चुनें पर क्लिक करें. वह Google Cloud प्रोजेक्ट चुनें जिसमें आपको Cloud Functions बनाना है. प्रोजेक्ट लोड होने के बाद, Cloud Shell Editor में चालू प्रोजेक्ट बन जाता है.
  6. क्लाउड कोड के स्टेटस बार में, उस प्रोजेक्ट के नाम पर क्लिक करें जो चालू है. दिखाई देने वाले झटपट चुनें मेन्यू में, नया ऐप्लिकेशन चुनें.
  7. नया ऐप्लिकेशन बनाएं डायलॉग में, Cloud Functions ऐप्लिकेशन चुनें.

नया ऐप्लिकेशन बनाने का पॉप-अप पेज 1

  1. टेंप्लेट चुनने का प्रॉम्प्ट मिलने पर, Java: Hello World चुनें.

नया ऐप्लिकेशन बनाने का पॉप-अप पेज 2

  1. प्रोजेक्ट पाथ में, अपने प्रोजेक्ट के नाम के तौर पर Gemini-BQ-Function डालें. प्रोजेक्ट का स्ट्रक्चर, नए Cloud Shell Editor व्यू में दिखता है.

Java Cloud Function ऐप्लिकेशन प्रोजेक्ट का नया स्ट्रक्चर

  1. <dependencies>... </dependencies> टैग में ज़रूरी डिपेंडेंसी जोड़ें या सैंपल pom.xml फ़ाइल से डिपेंडेंसी कॉपी करें.
  2. अपनी क्लास के नाम को HelloWorld.java से बदलकर, ज़्यादा काम का नाम करें. मान लें कि GeminiBigQueryFunction.java. पैकेज का नाम उसी हिसाब से बदलें.
  3. GeminiBigQueryFunction.Java फ़ाइल में प्लेसहोल्डर कोड को GitHub रिपॉज़िटरी में दिए गए सैंपल कोड से बदलें. सैंपल कोड में, वैरिएबल <YOUR_PROJECT_ID> को अपने प्रोजेक्ट आईडी से बदलना न भूलें.
  4. Cloud Shell टर्मिनल पर जाएं. देखें कि आप अपनी प्रोजेक्ट डायरेक्ट्री में हैं या नहीं. अगर नहीं, तो यहां दिया गया निर्देश अपनाकर प्रोजेक्ट डायरेक्ट्री पर जाएं:
cd Gemini-BQ-Function
  1. Cloud फ़ंक्शन बनाने और उसे डिप्लॉय करने के लिए, यह स्टेटमेंट चलाएं:
gcloud functions deploy gemini-bq-fn --gen2 --runtime java17 --trigger-http --entry-point cloudcode.helloworld.GeminiBigQueryFunction --allow-unauthenticated --source .

कमांड के एंट्री पॉइंट को अपने फ़ंक्शन के एंट्री पॉइंट से बदलें. आउटपुट इस फ़ॉर्मैट में REST यूआरएल है:

https://us-central1-YOUR_PROJECT_ID.cloudfunctions.net/gemini-bq-fn
  1. टर्मिनल से यह कमांड चलाकर, इस Cloud Function को टेस्ट करें:
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"]]}'

रैंडम सैंपल प्रॉम्प्ट का जवाब:

Cloud फ़ंक्शन से मिली JSON रिस्पॉन्स स्ट्रिंग

बहुत बढ़िया! Gemini Pro के विज़न मॉडल को लागू करने के लिए, Cloud Function का सामान्य वर्शन तैयार है. BigQuery रिमोट फ़ंक्शन में, सीधे BigQuery डेटा पर इस एंडपॉइंट का इस्तेमाल किया जा सकता है.

दूसरा चरण: BigQuery ऑब्जेक्ट टेबल और रिमोट फ़ंक्शन बनाना

ज़रूरी शर्त

कसरत के इस हिस्से के लिए आपको Cloud Storage बकेट की ज़रूरत होगी. Cloud Storage बकेट बनाने के लिए, यह तरीका अपनाएं:

  1. बकेट बनाने के लिए, Cloud Storage कंसोल में जाएं और बनाएं पर क्लिक करें.
  2. अपने बकेट के नाम के रूप में demo-bq-gemini-public-image डालें और बनाएं पर क्लिक करें.
  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 क्वेरी एडिटर पैनल से, यहां दिया गया डीडीएल (डेटा डेफ़िनिशन लैंग्वेज) स्टेटमेंट लागू करें:

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 में रिमोट फ़ंक्शन बनाएं, ताकि Gemini Pro Vision मॉडल को लागू करने वाला Java Cloud फ़ंक्शन शुरू किया जा सके. इसे एक ही डेटासेट में बनाएं. ऐसा करने के लिए, BigQuery कंसोल के एसक्यूएल एडिटर पैनल से, यहां दिया गया डीडीएल चलाएं:

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 में रिमोट फ़ंक्शन बन जाता है. ऊपर दिए गए डीडीएल में तीन पैरामीटर हैं. पहले दो पैरामीटर, पिछले चरण में बनाई गई ऑब्जेक्ट टेबल में स्टोर की गई इमेज के यूआरएल हैं. आखिरी पैरामीटर, मॉडल के लिए प्रॉम्प्ट (Gemini Pro Vision) है. यहां दिए गए Java Cloud Functions कोड का इस्तेमाल किया जा सकता है, जिसका इस्तेमाल इस हस्ताक्षर को पार्स करने के लिए किया जाता है:

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 से Gemini को शुरू करना

प्रॉम्प्ट के हिसाब से इमेज की पुष्टि करने वाले फ़ंक्शन की जांच करने के लिए, 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 की जांच करें

ध्यान दें कि दोनों इमेज में Duet AI क्लाउड कंसोल व्यू एक जैसा है. हालांकि, दोनों में टेक्स्ट अलग-अलग है और मॉडल की ओर से JSON फ़ॉर्मैट में बनाया गया टेक्स्ट अलग-अलग है.

इसके साथ, आपने रिमोट फ़ंक्शन के लागू होने की जांच पूरी कर ली है.

7. फ़ायदे और इस्तेमाल के उदाहरण

चलिए, स्ट्रक्चर्ड और अनस्ट्रक्चर्ड डेटा के आंकड़ों के लिए, BigQuery और Gemini को इंटिग्रेट करने के फ़ायदों के बारे में जानते हैं.

  • अपने डेटा में जनरेटिव एआई का इस्तेमाल करना: अब डेटा को एक जगह से दूसरी जगह नहीं ले जाना, डुप्लीकेट करना, और अतिरिक्त जटिलता की ज़रूरत नहीं है. एक ही BigQuery एनवायरमेंट में डेटा का विश्लेषण किया जा सकता है और इनसाइट जनरेट की जा सकती है.
  • बेहतर आंकड़े: Gemini के बारे में आम तौर पर जानकारी देने वाली सुविधा, आपके डेटा को बेहतर तरीके से समझने में मदद करती है. एसक्यूएल क्वेरी का इस्तेमाल करके ऐसा किया जा सकता है.
  • बढ़ाए जा सकने की योग्यता: यह समाधान, बड़े डेटासेट और मुश्किल विश्लेषण को आसानी और कम कोड वाली प्रोसेस से मैनेज करता है.

इसके लिए कई आवेदन आते हैं. फ़ाइनेंस (मार्केट ट्रेंड का विश्लेषण), खुदरा (ग्राहक की भावना), स्वास्थ्य सेवा (मेडिकल रिपोर्ट की खास जानकारी) वगैरह से जुड़ी स्थितियों पर ध्यान दें. ऐसे मामले में, आंकड़ों और कारोबार की टीमों को कम मेहनत, संसाधनों, और आसान भाषा और पसंद के टूल की मदद से इनका इस्तेमाल करना चाहिए.

8. व्यवस्थित करें

इस पोस्ट में इस्तेमाल किए गए संसाधनों के लिए, आपके Google Cloud खाते पर शुल्क न लगे, इसके लिए यह तरीका अपनाएं:

  1. Google Cloud Console में, संसाधन मैनेज करें पेज पर जाएं.
  2. प्रोजेक्ट की सूची में, वह प्रोजेक्ट चुनें जिसे मिटाना है. इसके बाद, मिटाएं पर क्लिक करें.
  3. डायलॉग बॉक्स में, प्रोजेक्ट आईडी टाइप करें. इसके बाद, प्रोजेक्ट मिटाने के लिए, शट डाउन करें पर क्लिक करें.
  4. अगर आपको अपना प्रोजेक्ट बनाए रखना है, तो ऊपर दिए गए चरणों को छोड़ दें और Cloud Functions पर जाकर, Cloud Functions को मिटाएं. फ़ंक्शन की सूची में, जिस फ़ंक्शन को मिटाना है उसे चुनें. इसके बाद, मिटाएं पर क्लिक करें.

9. बधाई

बधाई। BigQuery में इंटिग्रेट किए गए Gemini मॉडल के साथ, अब आपको न सिर्फ़ डेटा का विश्लेषण करना है, बल्कि डेटा के बारे में बताना भी बेहतर होगा. अपने डेटासेट में छिपी हुई कहानियां जनरेट की जा सकती हैं. साथ ही, अपनी इनसाइट को समझने का तरीका बदला जा सकता है. एक्सपेरिमेंट करना शुरू करें! इस तकनीक को अपने डेटासेट में इस्तेमाल करें और अपने डेटा में स्टोरी खोजें. BigQuery की मदद से ऑब्जेक्ट टेबल ( बाहरी टेबल) में स्ट्रक्चर्ड डेटा नहीं जोड़ा जा सकता. इसलिए, इमेज के डेटा के बारे में जनरेटिव इनसाइट बनाने के लिए, Gemini Pro Vision का इस्तेमाल करें. ज़्यादा जानकारी के लिए, Vertex AI, BigQuery रिमोट फ़ंक्शन, और Cloud Functions के दस्तावेज़ देखें. यहां इस प्रोजेक्ट के लिए, GitHub रेपो दिया गया है. हमें बताएं कि इस लर्निंग की मदद से आपने क्या बनाया है!