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

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

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

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

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

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

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

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

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

परिचय

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

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

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

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

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

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

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

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

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

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

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

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

2d055ded874603a6.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 बकेट बनाना

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

adf5c0382f6c3540.png

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

731aead7d8497725.png

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

f7ac409ed9c4af21.png

  • बकेट बन जाने के बाद, alphabet-metadata.json को रिपॉज़िटरी से अपलोड करें

4. दूसरा चरण: Vertex AI डेटास्टोर बनाना

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

c4a67b92bb7900e3.png

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

f86f67d344d398fb.png

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

e64e771f33543f46.png

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

3a8d22888e7eedc2.png

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

13876b5d12dbe1fb.png

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

618b7a456fbffad4.png

ब्राउनी:

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

38471c1d3411610d.png

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

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

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

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

  • जब Docker कंटेनर बन जाए, तो कंटेनर को सही टैग से टैग करने के लिए, यह कमांड चलाएं. इससे यह पक्का किया जा सकेगा कि आपने अपनी इमेज का कोई वर्शन दिया है. याद रखें, ऐप्लिकेशन के एक से ज़्यादा वर्शन हो सकते हैं. इसलिए, डॉकर कंटेनर में टैग के तौर पर कई वर्शन हो सकते हैं. डेवलपमेंट ऑपरेशंस (डीओपी) के हिसाब से, यह पक्का करना कि हमेशा सबसे नए वर्शन का इस्तेमाल किया जाए, एक अच्छा तरीका है.

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

  • Docker कंटेनर इमेज को टैग करने के बाद, अब इमेज को Google Artifact Registry (GAR) में पुश करें. GAR, Google का एक ऐसा प्लैटफ़ॉर्म है जिसे पूरी तरह से मैनेज किया जाता है. इसकी मदद से, अपने Docker कंटेनर को मैनेज किया जा सकता है और उनके वर्शन को कंट्रोल किया जा सकता है. यहां दिया गया कमांड चलाएं. इससे, ऊपर टैग किए गए कंटेनर को 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 फ़ाइल अपलोड करना
  • अपलोड पूरा होने के बाद
  • वेब पेज पर सबसे ऊपर मौजूद, खोज बार पर क्लिक करें
  • अपलोड किए गए दस्तावेज़ से जुड़ी क्वेरी खोजना
  • क्वेरी टाइप करने और 'खोजें' पर क्लिक करने के बाद, आपको अपलोड किए गए दस्तावेज़ से काम के सभी जवाब दिखने चाहिए
  • आप बैकएंड कोड पर गौर करके और नीचे दिए गए जैसे ज़्यादा कॉन्फ़िगरेशन जोड़ सकते हैं
  • स्निपेट जोड़ना
  • जानकारी निकालने वाले सेगमेंट जोड़ना
  • जवाब जोड़ना
  • एलएलएम को जवाब की खास जानकारी देने में मदद करने के लिए, सबसे ज़्यादा खोजे गए शब्दों के नतीजों को ट्यून करना (Google Search पर एआई की खास जानकारी जैसा कुछ)
  • दस्तावेज़ अपलोड करते समय, ऐड-ऑन के तौर पर मेटाडेटा टैग भी जोड़े जा सकते हैं. इससे फ़ेसेट और फ़िल्टर की जा सकने वाली कैटगरी जनरेट करने में मदद मिलेगी

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

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

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

10. बधाई हो

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

यह सिर्फ़ शुरुआत है. हम अपने हिसाब से बनाए जा सकने वाले DIY RAG API की मदद से, बहुत कुछ कर सकते हैं. इससे आपको पाइपलाइन प्रोसेस के हर हिस्से को असरदार तरीके से मैनेज करने के लिए, ज़्यादा पारदर्शिता, बेहतर सुविधाएं, और बेहतर परफ़ॉर्मेंस मिलती है.