RAG और सर्च इंजीनियरिंगमध्यमपाठ 2076 मिनट का पाठ

रिट्रीवल, री-ट्रेनिंग से बेहतर क्यों है

मॉडल केवल वही जानता है जो उसने ट्रेनिंग के दौरान देखा था। रिट्रीवल उसे जवाब देते समय आपके नए और प्राइवेट दस्तावेज़ पढ़ने की सुविधा देता है, और यह भी दिखाता है कि हर जवाब कहाँ से आया।

पाठ वीडियो में

60 सेकंड में

रिट्रीवल, री-ट्रेनिंग से बेहतर क्यों है

मॉडल केवल वही जानता है जो उसने ट्रेनिंग के दौरान देखा था। रिट्रीवल उसे जवाब देते समय आपके नए और प्राइवेट दस्तावेज़ पढ़ने की सुविधा देता है, और यह भी दिखाता है कि हर जवाब कहाँ से…

1/5
आसान शब्दों में
एक परीक्षा की कल्पना करें। एक छात्र परीक्षा से एक रात पहले लाइब्रेरी की हर किताब रटने की कोशिश करता है। दूसरे छात्र को परीक्षा में सही किताब लाने और उसमें से चीज़ें ढूँढने की छूट होती है। दूसरे छात्र के सही होने की संभावना ज़्यादा होती है, वह पेज नंबर दिखा सकता है, और किताब बदलने पर उसे दोबारा पढ़ाई करने की ज़रूरत नहीं होती। रिट्रीवल AI के लिए ओपन-बुक परीक्षा की तरह है।
एक लार्ज लैंग्वेज मॉडल बहुत सारे टेक्स्ट से सीखता है, और फिर उसकी ट्रेनिंग रुक जाती है। उसके बाद उसे नई घटनाओं के बारे में पता नहीं होता, और उसने आपकी कंपनी के प्राइवेट दस्तावेज़ कभी नहीं देखे होते: जैसे आपकी HR पॉलिसी, आपका प्रोडक्ट मैन्युअल, पिछले हफ़्ते का सर्कुलर। अगर आप उससे इनके बारे में पूछेंगे तो वह अंदाज़ा लगा सकता है, और वह अंदाज़ा सुनने में बहुत भरोसेमंद लग सकता है।
Retrieval-augmented generation (RAG) जवाब देते समय इसे ठीक कर देता है। आपका ऐप पहले आपके दस्तावेज़ों में उन हिस्सों को सर्च करता है जो सवाल से मेल खाते हैं। फिर वह उन हिस्सों को प्रॉम्प्ट में डालता है और मॉडल से उन्हीं के आधार पर जवाब देने को कहता है। पढ़ने और लिखने का काम मॉडल करता है। याद रखने का काम आपका सर्च करता है।

RAG का बेसिक लूप

  1. 1

    तैयार करें (एक बार करें, फिर अपडेट रखें)

    अपने दस्तावेज़ों को छोटे हिस्सों (chunks) में बाँटें, और उन्हें उनके सोर्स व तारीख़ के साथ सर्च इंडेक्स में स्टोर करें।
  2. 2

    सर्च करें

    जब कोई सवाल आए, तो ऐसे कुछ चंक्स ढूँढें जिनमें जवाब होने की सबसे ज़्यादा संभावना हो।
  3. 3

    प्रॉम्प्ट तैयार करें

    सवाल और चंक्स को एक साथ रखें, हर चंक के साथ [S1], [S2] जैसी कोई आईडी दें।
  4. 4

    जनरेट करें

    मॉडल सिर्फ़ उन्हीं चंक्स का इस्तेमाल करके जवाब लिखता है, और उनके सोर्स का ज़िक्र करता है।
  5. 5

    सोर्स दिखाएं

    यूज़र जवाब देखता है और क्लिक करके मूल टेक्स्ट पर जा सकता है।

यह तरीक़ा आम तौर पर बेहतर क्यों रहता है

ज़रूरतरिट्रीवल (RAG)री-ट्रेनिंग या फ़ाइन-ट्यूनिंग
नई जानकारीइंडेक्स को आज अपडेट करें; अगले सवाल को यह तुरंत मिल जाएगीदोबारा ट्रेन करें, दोबारा टेस्ट करें, दोबारा डिप्लॉय करें
प्राइवेट दस्तावेज़आपके अपने स्टोर में रहते हैं; आप तय करते हैं कि कौन क्या सर्च कर सकता हैजो कोई भी मॉडल का इस्तेमाल कर सकता है, उसके लिए जानकारी मॉडल के वेट्स (weights) में ही दर्ज हो जाती है
सोर्स का हवाला (Citations)हर जवाब साफ़ बता सकता है कि उसने किस चंक का इस्तेमाल कियामॉडल भरोसेमंद तरीक़े से यह नहीं बता सकता कि कोई जानकारी कहाँ से आई
किसी जानकारी को हटानादस्तावेज़ और उसके चंक्स को डिलीट कर देंट्रेन हो चुके मॉडल से किसी एक बात को पूरी तरह भुलाना बहुत मुश्किल है
शुरुआत करने का ख़र्चएक इंडेक्स और एक सर्च स्टेपहर बदलाव के लिए ट्रेनिंग डेटा, कंप्यूट और टेस्टिंग (evaluation)
नोट
लंबी कॉन्टेक्स्ट विंडो मदद तो करती हैं, लेकिन सर्च की ज़रूरत को ख़त्म नहीं करतीं। आप जितने टोकन भेजते हैं, हर एक का ख़र्च लगता है, जवाब धीमे हो सकते हैं, और शोधकर्ताओं ने दिखाया है कि कुछ मामलों में मॉडल बहुत लंबे प्रॉम्प्ट के बीच की जानकारी का उतनी अच्छी तरह इस्तेमाल नहीं कर पाते, जितनी शुरुआत या अंत की जानकारी का। पाँच सौ पेज भेजने से आम तौर पर सही पाँच पेज भेजना कहीं बेहतर होता है।

फ़ाइन-ट्यूनिंग कब सही साधन है

फ़ाइन-ट्यूनिंग आपके उदाहरणों का इस्तेमाल करके मॉडल के वेट्स (weights) को बदलती है। यह कैसे जवाब देना है यह सिखाने में अच्छी है, लेकिन आज क्या सच है यह सिखाने में कमज़ोर है।
फ़ाइन-ट्यूनिंग इनके लिए सही नहीं है
  • बदलने वाली जानकारियाँ: क़ीमतें, नियम, स्टॉक, शेड्यूल
  • ऐसी जानकारी जहाँ सोर्स दिखाना ज़रूरी हो
  • ऐसे दस्तावेज़ जिन्हें केवल कुछ यूज़र्स को देखने की अनुमति हो
  • कोई भी ऐसी चीज़ जिसे आपको बाद में डिलीट करना पड़ सकता है
फ़ाइन-ट्यूनिंग इनके लिए सही हो सकती है
  • एक तय स्टाइल, टोन या आउटपुट फ़ॉर्मेट
  • एक सीमित, बार-बार होने वाला काम जैसे टिकटों को क्लासिफ़ाई करना
  • किसी छोटे मॉडल से कोई एक काम अच्छी तरह और कम ख़र्च में करवाना
  • किसी ख़ास क्षेत्र (domain) की शब्दावली जिसे बेस मॉडल ठीक से नहीं संभाल पाता
इन दोनों को मिलाया भी जा सकता है। कोई टीम किसी छोटे मॉडल को एक तय फ़ॉर्मेट में छोटे, विनम्र जवाब लिखने के लिए फ़ाइन-ट्यून कर सकती है, और उसे तथ्य देने के लिए फिर भी रिट्रीवल का इस्तेमाल कर सकती है।
असली उदाहरण
केरल का एक सहकारी बैंक एक ऐसा बॉट चाहता है जो लोन नियमों के बारे में कर्मचारियों के सवालों के जवाब दे सके। नियम हर बोर्ड मीटिंग के बाद बदलते हैं। RAG के साथ, टीम नया सर्कुलर अपलोड करती है और बॉट उसी दिन सर्कुलर नंबर का हवाला देते हुए उसका इस्तेमाल करने लगता है। फ़ाइन-ट्यूनिंग के साथ, हर बदलाव का मतलब नया ट्रेनिंग डेटा, नया ट्रेनिंग रन और नए टेस्ट होते।
सावधान रहें
RAG के अपने जोखिम भी हैं। सर्च के ज़रिए मॉडल को ऐसा दस्तावेज़ मिल सकता है जिसे यूज़र को नहीं देखना चाहिए, और किसी दस्तावेज़ में छिपे हुए निर्देश हो सकते हैं। इन्हें Securing RAG: permissions for retrieved documents और Vector stores and embedding leaks में कवर किया गया है। असली यूज़र्स के लिए इसे लॉन्च करने से पहले वे पाठ ज़रूर पढ़ें।
इसे आज़माएँ। किसी ऐसे सवाल के बारे में सोचें जो आप अपने कॉलेज या दफ़्तर के दस्तावेज़ों से पूछना चाहते हैं। क्या अगले महीने इसका जवाब बदल जाएगा? क्या पूछने वाले को सोर्स देखने की ज़रूरत है? अगर किसी का भी जवाब 'हाँ' है, तो यह रिट्रीवल से जुड़ा मामला है।

और देखें और पढ़ें

लैब

तीन वास्तविक लगने वाले मामलों के लिए एक पेज का फ़ैसला नोट: RAG, फ़ाइन-ट्यूनिंग, दोनों या कोई भी नहीं।

~20 min

समस्या

नीचे दिए गए हर मामले के लिए 4–6 लाइनें लिखें: आप कौन-सा तरीक़ा चुनेंगे (RAG, फ़ाइन-ट्यूनिंग, दोनों, या कोई नहीं), और क्यों। इसमें नई जानकारी, सोर्स, प्राइवेसी और ख़र्च का ज़िक्र करें।

  1. एक अस्पताल का स्टाफ़ बॉट जो ड्यूटी रोस्टर और काम के तौर-तरीक़ों (procedure notes) से जुड़े सवालों के जवाब देता है। (मरीज़ों के लिए मेडिकल सलाह तैयार न करें।)
  2. एक ऐसा टूल जो फ़ील्ड अफ़सरों के रफ़ नोट्स को तीन हिस्सों वाले एक तय निरीक्षण रिपोर्ट फ़ॉर्मेट में बदलता है।
  3. एक फ़ोन कंपनी का सपोर्ट बॉट जो मौजूदा रीचार्ज प्लान्स के बारे में पूछे गए सवालों के जवाब देता है।

आखिर में, अपना एक ऐसा उदाहरण लिखें जहाँ बिना रिट्रीवल और बिना फ़ाइन-ट्यूनिंग के, सिर्फ़ साधारण प्रॉम्प्टिंग ही काफ़ी हो।

आपका काम तब पूरा होगा जब

कठिन सवाल

उत्तर देखने से पहले ख़ुद जवाब देने की कोशिश करें। अगर आप इनके जवाब दे सकते हैं, तो आप पाठ समझ गए हैं।

Q1एक मैनेजर कहता है: "आइए अपनी सभी PDF पर फ़ाइन-ट्यून कर लेते हैं ताकि मॉडल को सब कुछ पता हो जाए।" सिर्फ़ इसी योजना पर निर्भर रहने के ख़िलाफ़ दो ठोस कारण बताएं।दिखाएं

पहली बात, जानकारी पुरानी हो जाएगी: PDFs में हर बदलाव के लिए नई ट्रेनिंग और टेस्टिंग की ज़रूरत होगी, जबकि एक index को उसी दिन अपडेट किया जा सकता है। दूसरी बात, मॉडल यह नहीं बता सकता कि कोई जवाब कहाँ से आया, और वह हर यूज़र की अलग-अलग permissions का ध्यान नहीं रख सकता: जिस चीज़ पर भी ट्रेनिंग दी गई है, वह मॉडल का इस्तेमाल करने वाले हर व्यक्ति के लिए उपलब्ध हो जाती है, और उसे बाद में हटाना मुश्किल होता है। retrieval के साथ-साथ, tone या format के लिए Fine-tuning अब भी काम आ सकती है।

Q2"सब कुछ prompt में डाल देना" कब एक सही पहला वर्ज़न हो सकता है?दिखाएं

तब जब डॉक्यूमेंट्स बहुत कम और स्थिर हों, उदाहरण के लिए कुछ पन्नों की एक छोटी पॉलिसी, और bot का इस्तेमाल करने वाला हर व्यक्ति उसे पूरा पढ़ सकता हो। तब एक लंबा prompt आसान रहता है और एक काम का baseline देता है। एक छोटा test set बनाकर रखें ताकि आप बाद में तुलना कर सकें, और जब डॉक्यूमेंट्स बढ़ जाएं, अक्सर बदलने लगें या उनमें permissions लागू हों, तो retrieval पर स्विच कर लें।

जारी रखने के लिए कृपया साइन इन करें।

अक्सर पूछे जाने वाले सवाल

क्या RAG से हैल्युसिनेशन पूरी तरह रुक जाते हैं?

नहीं। सही टेक्स्ट मिलने पर यह इन्हें कम कर देता है, क्योंकि मॉडल के सामने सही तथ्य होते हैं। लेकिन सर्च से चीज़ें छूट सकती हैं, और मॉडल अब भी गलत पढ़ सकता है या अपनी तरफ़ से बातें जोड़ सकता है। यही वजह है कि इस कोर्स में उद्धरण (citations), "नहीं मिला" वाले जवाब और इनके आकलन को शामिल किया गया है।

क्या RAG केवल चैटबॉट्स के लिए है?

नहीं। यही रिट्रीवल स्टेप सर्च पेज, "मिलते-जुलते लेख", सपोर्ट टूल्स जो इंसानी एजेंट्स को जवाब सुझाते हैं, और ऐसे एजेंट्स को चलाने में काम आता है जो कोई कदम उठाने से पहले चीज़ें ढूँढते हैं।

क्या शुरुआत करने के लिए मुझे किसी ख़ास वेक्टर डेटाबेस की ज़रूरत है?

हमेशा नहीं। कुछ हज़ार चंक्स के लिए, एक साधारण इन-मेमोरी सर्च या आपके पहले से चल रहे डेटाबेस का सर्च एक्सटेंशन ही काफ़ी हो सकता है। कोई ख़ास टूल तभी चुनें जब साइज़, स्पीड या फ़ीचर्स के लिए सच में उसकी ज़रूरत हो, और उसके नए डॉक्यूमेंटेशन ज़रूर देखें।

क्या मैं इसके बजाय अपने सारे दस्तावेज़ सीधे प्रॉम्प्ट में डाल सकता हूँ?

कुछ तय पेजों के छोटे सेट के लिए, कभी-कभी हाँ, और तुलना करने के लिए यह एक अच्छा शुरुआती तरीक़ा है। जैसे-जैसे दस्तावेज़ बढ़ते हैं, ख़र्च और स्पीड दोनों ख़राब हो जाते हैं, और मॉडल से बातें छूट सकती हैं। रिट्रीवल प्रॉम्प्ट को छोटा और काम की चीज़ों तक सीमित रखता है।

पाठ का टेस्ट

5 सवाल। पास होने और इस पाठ को पूरा करने के लिए 3 सही होने चाहिए (60%)।

टेस्ट देने और अपनी प्रोग्रेस सेव करने के लिए साइन इन करें