Vertex AI की मदद से, Google का बेहतरीन सर्च सिस्टम बनाना

1. वेब कंटेनर इंस्टॉल करने से पहले

कोडलैब का यह मॉड्यूल जारी रखने से पहले, इन बातों का ध्यान रखें.

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

  • एलएलएम के बारे में बुनियादी जानकारी
  • आरएजी सिस्टम की बुनियादी जानकारी

आपको इनके बारे में जानकारी मिलेगी

  • एक ऐसा Google क्वालिटी सर्च इंजन कैसे बनाएं जो अपलोड किए गए डेटा से आपके सवालों के जवाब दे सके
  • Vertex AI Datastore कैसे बनाएं
  • Vertex AI Agents बनाने का तरीका
  • ऐप्लिकेशन को डिप्लॉय करने के लिए, CloudRun का फ़ायदा लेने का तरीका

आपको इन चीज़ों की ज़रूरत होगी

  • Google Cloud खाता
  • Google Cloud प्रोजेक्ट
  • टर्मिनल वाला IDE

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

Google Search एक बेहतरीन टूल है. यह लोगों की क्वेरी के हिसाब से काम के नतीजे दिखाने के लिए, वेब पेजों और अन्य कॉन्टेंट के बहुत बड़े इंडेक्स का इस्तेमाल करता है. ऐसा करने के लिए, रिट्रीवल ऑगमेंटेड जनरेशन (आरएजी) तकनीक का इस्तेमाल किया जा सकता है. यह आधुनिक एआई की एक अहम तकनीक है.

RAG पहले किसी दस्तावेज़ के संग्रह से काम के पैसेज हासिल करके काम करता है. इसके लिए कई तरीके इस्तेमाल किए जाते हैं, जैसे कि कीवर्ड मैचिंग, सिमेंटिक समानता, और मशीन लर्निंग. काम के पैसेज वापस मिलने के बाद, उनका इस्तेमाल लोगों की क्वेरी के बारे में खास जानकारी जनरेट करने या जवाब देने के लिए किया जाता है.

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

RAG यह पक्का करता है कि जनरेट किया गया टेक्स्ट, दस्तावेज़ के संग्रह से मिले सबूत पर आधारित हो. इससे, आपको ग़लतफ़हमी से बचने में मदद मिलती है. इस वजह से यह जानकारी का ज़्यादा भरोसेमंद और भरोसेमंद स्रोत बन जाता है.

RAG एक बेहतरीन तकनीक है, जिसका इस्तेमाल कई तरह के ऐप्लिकेशन में किया जा रहा है. इनमें सर्च इंजन, चैटबॉट, और सवाल का जवाब देने वाले सिस्टम शामिल हैं. आने वाले समय में, एआई के इस्तेमाल में इस टेक्नोलॉजी की अहम भूमिका होगी.

यहां कुछ उदाहरण दिए गए हैं कि आरएजी का इस्तेमाल कैसे किया जाता है:

  • कई सर्च सिस्टम, आरएजी का इस्तेमाल करके ऐसे नतीजे जनरेट करते हैं जो लोगों की क्वेरी के हिसाब से काम के होते हैं.
  • चैटबॉट, जानकारी देने वाले और दिलचस्प लगने वाले लोगों के सवालों के जवाब देने के लिए RAG का इस्तेमाल करते हैं.
  • सवाल का जवाब देने वाले सिस्टम, RAG का इस्तेमाल करके सटीक और पूरी जानकारी वाले सवालों के जवाब जनरेट करते हैं.

RAG एक तरह की तकनीक है जिसका इस्तेमाल कई तरह के डोमेन और ऐप्लिकेशन में टेक्स्ट जनरेट करने के लिए किया जा सकता है. यह एक बेहतरीन टूल है. यह एआई को ज़्यादा बेहतर और जानकारी देने वाला बनाने में मदद कर रहा है.

इस कोडलैब में, हम एक आरएजी सिस्टम बनाएंगे, जो आपके अपलोड किए गए कलेक्शन में से आपके सवालों के जवाब देने में मदद करेगा. Vertex AI Search/Agent Builder नाम का एक अनोखा RAG प्लैटफ़ॉर्म आपको तेज़ी से आरएजी सिस्टम बनाने में मदद करता है. इससे, दस्तावेज़ों को इकट्ठा करने, पार्स करने, चंकने, एम्बेड करने, क्वेरी एक्सपैंशन, कैंडिडेट डेटा फ़ेच करने, और रैंकिग करने में आपको मदद मिलती है. एक अलग तरह का RAG सिस्टम आपको तुरंत शुरुआत करने में मदद करता है. हालांकि, Google Cloud हर प्रोसेस के लिए अलग-अलग एपीआई भी उपलब्ध कराता है, ताकि आप खुद के आरएजी सिस्टम बना सकें. इससे आपके आरएजी सिस्टम को कारोबार की ज़रूरतों के हिसाब से बेहतर बनाने में मदद मिलती है.

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

इस कोडलैब के खत्म होने तक, आपके पास एक चालू आरएजी सिस्टम हो जाएगा. यह आपको तथ्यों पर आधारित जानकारी देकर, आपके सवालों के जवाब देने में मदद कर सकता है. साथ ही, आपको तथ्यों के साथ-साथ तथ्यों पर आधारित जानकारी भी मिल जाएगी.

साथ ही, आपको Google Cloud पर इस आरएजी आर्किटेक्चर को बनाने के लिए, Vertex AI Search API इस्तेमाल करने के तरीके की बेहतर जानकारी भी मिलेगी. इसके अलावा, आपको इस RAG आर्किटेक्चर ऐप्लिकेशन (फ़्रंटएंड और बैकएंड के साथ) को CloudRun पर डिप्लॉय करने का तरीका भी पता चलेगा. यह ऐसा प्लैटफ़ॉर्म है जहां ऐप्लिकेशन को Google Cloud पर कंटेनर के तौर पर डिप्लॉय किया जा सकता है. इसके लिए सर्वर नहीं है.

2d055d874603a6.png

ऐप्लिकेशन कैसे काम करता है

  • अपना डेटा अपलोड करें: उपयोगकर्ता अपने डेटा के संग्रह यानी PDF फ़ाइल को इनपुट के तौर पर अपलोड कर सकते हैं.
  • खोज बार में क्वेरी पूछें: उपयोगकर्ता अपलोड किए गए डेटा के संग्रह के आधार पर, खोज बार में सवाल पूछ सकते हैं.
  • जवाब फिर से पाना: उपयोगकर्ता, खोज के नतीजों/उम्मीदवारों को फिर से ढूंढ सकते हैं. साथ ही, क्वेरी के सही होने या न होने की जांच कर सकते हैं. साथ ही, यह भी देख सकते हैं कि जो जवाब दिया गया है वह सही है या नहीं.

2. एनवायरमेंट का सेटअप

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

1829c3759227c19b.png

  1. Cloud Shell से कनेक्ट करने के बाद, यह जांच लें कि आपकी पुष्टि पहले ही हो चुकी है. साथ ही, यह देखें कि प्रोजेक्ट को आपके प्रोजेक्ट आईडी पर सेट करने के लिए, नीचे दिए गए निर्देश का इस्तेमाल किया गया हो:
gcloud auth list
  1. Cloud Shell में यह कमांड चलाएं, ताकि यह पुष्टि की जा सके कि gcloud कमांड को आपके प्रोजेक्ट के बारे में जानकारी है.
gcloud config list project
  1. अगर आपका प्रोजेक्ट सेट नहीं है, तो इसे सेट करने के लिए नीचे दिए गए कमांड का इस्तेमाल करें:
gcloud config set project <YOUR_PROJECT_ID>
  1. पक्का करें कि नीचे दिए गए एपीआई चालू हों:
  • Cloud Run
  • Vertex AI
  • Cloud Storage

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

3. पहला चरण: GCP बकेट बनाएं

  • कंसोल में जाएं और खोज बार पर, Cloud Storage टाइप करें.
  • सुझाए गए नतीजों में से Cloud Storage चुनें. 21d2bc910e71f7ec.png
  • ' बकेट बनाएं' पर क्लिक करें

adf5c0382f6c3540.png

  • बकेट को ऐसा नाम दें जो दुनिया भर में यूनीक हो
  • 'जारी रखें' पर क्लिक करें
  • जगह के टाइप में, एक से ज़्यादा इलाका चुनें
  • ड्रॉप-डाउन में जाकर, us (multiple regions in United States) विकल्प चुनना न भूलें

731aead7d8497725.png

  • ' बकेट बनाएं' पर क्लिक करें

f7ac409ed9c4af21.png

4. दूसरा चरण: Vertex AI Datastore बनाएं

  • कंसोल पेज के खोज बार में, "Vertex AI Agent Builder" टाइप करें
  • पहला प्रॉडक्ट, "एजेंट बिल्डर" चुनें

c4a67b92bb7900e3.png

  • एजेंट बिल्डर पेज पर, "डेटा स्टोर" पर क्लिक करें, जैसा कि बाईं ओर के नेविगेशन बार में दिखाया गया है

f86f67d344d398fb.png

  • "डेटा स्टोर बनाएं" पर क्लिक करें

e64e771f33543f46.png

  • Cloud Storage को अपने डेटा स्टोर के तौर पर चुनें
  • Cloud Storage आइकॉन के नीचे "चुनें" पर क्लिक करें

3a8d22888e7eedc2.png

  • "फ़ोल्डर" विकल्प के नीचे दिए गए टैब पर, "ब्राउज़ करें" बटन पर क्लिक करें
  • पहले चरण में बनाया गया बकेट चुनें
  • नीचे दिए गए विकल्पों में, "लिंक किए गए बिना स्ट्रक्चर वाले दस्तावेज़ (मेटाडेटा के साथ JSONL)" को चुनना न भूलें
  • 'जारी रखें' पर क्लिक करें

13876b5d12dbe1fb.png

  • कॉन्फ़िगरेशन पेज पर, अपने डेटा स्टोर की जगह के तौर पर "ग्लोबल" चुनें
  • डेटा स्टोर को ऐसा नाम दें जिसकी पहचान की जा सके
  • 'बनाएं' पर क्लिक करें

618b7a456fbffad4.png

ब्रोनी:

  • "बनाएं" बटन के ठीक ऊपर, आपको दस्तावेज़ को प्रोसेस करने का विकल्प दिख सकता है.
  • डिजिटल, ओसीआर या लेआउट पार्सर जैसे अलग-अलग पार्सर के साथ काम किया जा सकता है
  • चंकिंग की ऐडवांस सुविधा भी चालू की जा सकती है और अपने हिसाब से साइज़ की सीमाएं तय की जा सकती हैं

38471c1d3411610d.png

5. तीसरा चरण: एजेंट बनाएं

  • डेटा स्टोर बनाने के बाद, बाईं ओर नेविगेशन बार में ऐप्लिकेशन पर क्लिक करें और "ऐप्लिकेशन" चुनें
  • "ऐप्लिकेशन बनाएं" बटन पर क्लिक करें
  • ऐप्लिकेशन का टाइप "Search" करने के लिए चुनें. हालांकि, एजेंट, बातचीत वाले बॉट, सुझाव वगैरह बनाए जा सकते हैं

ae5294e33f63567c.png

  • पक्का करें कि आपने कॉन्टेंट में "सामान्य" चुना है. आपके पास डेटा स्टोर, इस्तेमाल किए जाने वाले डेटा, और सिस्टम के हिसाब से मीडिया या सुझाव चुनने का भी विकल्प है.
  • Enterprise वर्शन और बेहतर एलएलएम, दोनों सुविधाओं को चालू करना न भूलें
  • अपने ऐप्लिकेशन का नाम डालें
  • अपनी कंपनी का नाम डालें

f8a41c9751f7a8d3.png

  • पक्का करें कि "ग्लोबल" के तौर पर सेट किए गए क्षेत्र को चुनें
  • "जारी रखें" पर क्लिक करें ed17b18e094ba59a.png
  • अगली स्क्रीन में, वह डेटा स्टोर चुनें जिसे आपने दूसरे चरण में बनाया है
  • "बनाएं" पर क्लिक करें

bc77006e0025ae9e.png

6. चौथा चरण: ऐप्लिकेशन को डॉक करना

  • Google Cloud Console में अपना टर्मिनल खोलें
  • नीचे दिए गए निर्देश का इस्तेमाल करके, डेटा स्टोर करने की जगह <sample_repository_link> का क्लोन बनाएं

git clone https://github.com/kkrishnan90/vertex-ai-search-agent-builder-demo

  • यहां दिए गए निर्देश का इस्तेमाल करके, डायरेक्ट्री बदलें और क्लोन की गई रिपॉज़िटरी पर जाएं

cd vertex-ai-search-agent-builder-demo

  • फ़ोल्डर का स्ट्रक्चर
  • बैकएंड - इसमें Python आधारित एपीआई को लागू किया जाएगा. इससे आपके फ़्रंटएंड के साथ इंटरैक्ट करने के लिए, आरामदेह एंडपॉइंट बनाने में मदद मिलेगी.
  • फ़्रंटएंड - इसमें प्रतिक्रिया आधारित ऐप्लिकेशन होल्ड होगा और यह यूज़र इंटरफ़ेस (यूआई) दिखाएगा. इसमें रेस्ट एंडपॉइंट के ज़रिए बैकएंड पर, ऐप्लिकेशन लेवल के ज़रूरी कॉल भी शामिल होंगे
  • Dockerfile - इस फ़ाइल में, Docker कंटेनर बनाने के लिए ज़रूरी सभी निर्देश शामिल होंगे
  • रिपॉज़िटरी डायरेक्ट्री के रूट में, नीचे दिया गया कमांड चलाएं. इससे डॉकर इमेज बनाने में मदद मिलेगी (ध्यान दें: Macbooks में ऐसे डॉकर कंटेनर बनाते समय - - platform फ़्लैग का इस्तेमाल ज़रूर करें जो M1, M2 वगैरह जैसे Apple Silicon चिप का इस्तेमाल करते हैं. अगर Windows मशीन का इस्तेमाल करके या आपका सीपीयू आर्किटेक्चर Intel पर आधारित है, तो यह फ़्लैग ज़रूरी नहीं है)

docker build --platform linux/amd64 -t your-image-name .

  • डॉकर कंटेनर बिल्ड पूरा होने के बाद, कंटेनर को सही टैग के साथ टैग करने के लिए, नीचे दिया गया कमांड चलाएं. इससे यह पक्का किया जा सकेगा कि आपने इमेज का वर्शन उपलब्ध कराया है. याद रखें, ऐप्लिकेशन के कई वर्शन हो सकते हैं. इसलिए, Docker कंटेनर में टैग के तौर पर कई वर्शन हो सकते हैं. यह पक्का करें कि नए स्टेबल वर्शन का हमेशा इस्तेमाल किया जाए. यह DevOps के नज़रिए से, अच्छा सुझाया गया तरीका है.

docker tag your-image-name REGION-docker.pkg.dev/PROJECT-ID/REPOSITORY-NAME/IMAGE-NAME:TAG

  • डॉकर कंटेनर इमेज को टैग करने के बाद, हमें उस इमेज को Google Artifact Registry (GAR) में भेज दें. GAR, Google की ओर से पूरी तरह से मैनेज किया जाने वाला प्लैटफ़ॉर्म है. यह डॉकर कंटेनर को मैनेज करने और वर्शन कंट्रोल करने में आपकी मदद करता है. नीचे दिया गया निर्देश चलाएं, जो ऊपर टैग किए गए कंटेनर को GAR में पुश करेगा. ज़्यादा जानकारी के लिए, यह लिंक देखें [ https://cloud.google.com/artifact-registry/docs/docker/pushing-and-pulling]

docker push REGION-docker.pkg.dev/PROJECT-ID/REPOSITORY-NAME/IMAGE-NAME:TAG

7. पांचवां चरण: अपने ऐप्लिकेशन को Cloud Run पर डिप्लॉय करना

  • अपने टर्मिनल को छोटा करें. Google Cloud Console के खोज बार में, Cloud Run खोजें
  • सुझाए गए Cloud Run प्रॉडक्ट पर क्लिक करें

592103eb61c16738.png

  • "सेवा बनाएं" पर क्लिक करें
  • अगले पेज में, पक्का करें कि "किसी मौजूदा कंटेनर इमेज से एक बदलाव लागू करें" चुना गया है
  • नीचे, "चुनें" पर क्लिक करें
  • अब आपको दाईं ओर नेविगेशन बार दिखेगा.
  • यह देखना न भूलें कि Artifact Registry को टैब के तौर पर चुना गया है या नहीं
  • पक्का करें कि प्रोजेक्ट सही तरीके से चुना गया हो
  • डिप्लॉय किए गए अपने कंटेनर की इमेज के लिंक पर, एकार्डियन को बड़ा करने के लिए, ऐरो पर क्लिक करें
  • कंटेनर टैग चुनें और उसे बड़ा करें (इस्तेमाल किए गए सबसे नए टैग चुनें - नए टैग के साथ, जैसे कि v1, v2 वगैरह.)
  • कंटेनर टैग के नाम के नीचे दिखाई गई कंटेनर इमेज पर क्लिक करें

aac35d55d7dd874e.png

  • 'कॉन्फ़िगर करें' सेक्शन में
  • अपने Cloud Run ऐप्लिकेशन के लिए सेवा का नाम दें (यह Cloud Run पर ऐप्लिकेशन डिप्लॉय करते समय, यह यूआरएल का हिस्सा होगा)
  • सही इलाका चुनें (इस मामले में us-central1 या अपनी पसंद का कोई भी क्षेत्र)
  • पुष्टि करने के नीचे
  • पक्का करें कि "बिना पुष्टि वाले उन अनुरोधों को अनुमति दें" चुना गया हो जिनकी पुष्टि नहीं की गई है
  • सीपीयू के बंटवारे और कीमत के तहत
  • "सीपीयू को सिर्फ़ अनुरोध की प्रोसेसिंग के दौरान असाइन किया जाता है" चुनें
  • सर्विस ऑटो स्केलिंग को 1 पर बदलें (प्रोडक्शन के लिए, यह सुझाव दिया जाता है कि अपने रोज़ के ट्रैफ़िक को मैनेज करने के लिए कम से कम इंस्टेंस चालू रखें, इसे 0 यानी शून्य भी छोड़ा जा सकता है)
  • इंटरनेट से ट्रैफ़िक को आपके ऐप्लिकेशन को ऐक्सेस करने की अनुमति देने के लिए, "इन्ग्रेस डेटा कंट्रोल" को "सभी" पर सेट करें
  • "बनाएं" पर क्लिक करें
  • इससे एक Cloud Run इंस्टेंस डिप्लॉय होगा और उसके प्रावधान में कुछ मिनट लगेंगे

b8b147265b8d457b.png

  • डिप्लॉय होने के बाद, आपको सार्वजनिक तौर पर उपलब्ध यूआरएल दिखेगा. इससे वेब ऐप्लिकेशन को ऐक्सेस किया जा सकता है

1dfdb007c52581a1.png

8. यह सब कैसे काम करता है

  • ऐप्लिकेशन के होम पेज पर पहुंचने के बाद, "दस्तावेज़ अपलोड करें" बटन पर क्लिक करें
  • PDF फ़ाइल अपलोड करें
  • अपलोड पूरा होने के बाद
  • वेब पेज पर सबसे ऊपर मौजूद खोज बार पर क्लिक करें
  • अपलोड किए गए अपने दस्तावेज़ के बारे में क्वेरी खोजना शुरू करें
  • अपनी क्वेरी टाइप करने और 'खोजें' पर क्लिक करने के बाद, उसमें आपके अपलोड किए गए दस्तावेज़ से सभी काम के जवाब दिखेंगे
  • आप बैकएंड कोड पर गौर करके और नीचे दिए गए जैसे और कॉन्फ़िगरेशन जोड़ सकते हैं
  • स्निपेट जोड़ना
  • डेटा एक्सट्रैक्ट करने वाले सेगमेंट जोड़ना
  • जवाब जोड़े जा रहे हैं
  • जवाब को बेहतर बनाने में एलएलएम की मदद करने के लिए, टॉप-K नतीजों को ट्यून करना. यह Google Search पर एआई की खास जानकारी वाली सुविधा जैसा है
  • ऐड-ऑन के तौर पर, दस्तावेज़ अपलोड करते समय भी मेटाडेटा टैग जोड़े जा सकते हैं. इससे फ़िल्टर और फ़िल्टर की जा सकने वाली कैटगरी बनाने में मदद मिलेगी

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

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

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

10. बधाई

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

यह तो बस शुरुआत है, फिर भी हम पूरी तरह पसंद के मुताबिक बनाए जा सकने वाले खुद के आरएजी एपीआई की मदद से कमाल कर सकते हैं. इससे आपको पाइपलाइन की प्रोसेस के हर हिस्से को असरदार तरीके से मैनेज करने के लिए ज़्यादा पारदर्शिता, ताकत, और क्षमता मिलती है.