मुझे बचपन की एक बात बहुत साफ़ याद है। मेरी उम्र कोई 10 या 11 साल रही होगी और हम पोंटा डेलगाडा में रहते थे। मैं हिस्ट्री चैनल और डिस्कवरी के डॉक्यूमेंट्री कार्यक्रम देखने के लिए बहुत उत्साहित होकर घर लौटता था। हर दिन, बिना किसी अपवाद के, मेरा दिमाग़ हज़ारों छोटी-छोटी बातें याद करता था, जैसे “अरे, प्राचीन यूनानियों के कुछ मंदिरों में ऐसी मशीनें थीं जो सिक्के डालने पर पवित्र जल देती थीं!” साल-दर-साल यह एक आदत बनती गई, जो आज भी बनी हुई है। इन पिछले लगभग 36 वर्षों में मैंने विज्ञान, इतिहास, दर्शन और दूसरे विषयों पर दसियों हज़ार डॉक्यूमेंट्री और जानकारी देने वाले वीडियो देखे होंगे। और ज़ाहिर-सी सच्चाई यह है कि मैंने जो सुना, देखा और पढ़ा, उसका 99.9% मेरे दिमाग़ में कहीं भी नहीं बचा।
कुछ तथ्य ज़रूर रह गए, क्योंकि वे यूनानी मशीनों वाली बात जितने दिलचस्प थे, या क्योंकि मैंने उन्हें लिख लिया और बाद में फिर पढ़ा, या क्योंकि मैंने उन्हें इतने अच्छे से समझ लिया कि वे अब मेरे सामान्य ज्ञान का हिस्सा हैं, या क्योंकि वे दूसरी यादगार घटनाओं से जुड़े हैं, या बस इसलिए कि उनकी याद अभी ताज़ा है।
इससे एक दिलचस्प तुलना निकलती है, हालाँकि दोनों चीज़ें एक जैसी नहीं हैं। फाउंडेशन मॉडल (ऐसे AI मॉडल जिन्हें बड़ी मात्रा में विविध डेटा पर प्रशिक्षित किया जाता है और जिन्हें अलग-अलग कामों के लिए ढाला जा सकता है) के पास भी हर पल सारी जानकारी उपलब्ध नहीं होती। लेकिन प्रशिक्षण के दौरान सीखे गए ज्ञान और सक्रिय कॉन्टेक्स्ट में फ़र्क करना ज़रूरी है। सक्रिय कॉन्टेक्स्ट वह जानकारी है जो मॉडल को किसी ख़ास कॉल के लिए दी जाती है।
प्रशिक्षण के दौरान उन्हें जितना डेटा मिलता है, उतना कोई इंसान अपनी पूरी ज़िंदगी में नहीं ग्रहण कर सकता। उस सामग्री का कुछ हिस्सा मॉडल के बुनियादी ज्ञान के मिश्रण में शामिल हो जाता है। इंसानों की तरह मॉडल भी फ़र्ज़ी ख़बरें और ग़लत धारणाएँ अपना सकते हैं।
रोज़मर्रा के सामान्य इस्तेमाल में मॉडल अपने इस बुनियादी ज्ञान को कॉन्टेक्स्ट के कई स्रोतों से जोड़ते हैं। अगर मैं चाहता हूँ कि कोई AI एजेंट मेरे ईमेल इनबॉक्स की छँटाई और प्राथमिकता तय करने का काम अपने आप करे, तो वह अपने बुनियादी ज्ञान, मेरे दिए हुए प्रक्रिया-संबंधी ज्ञान (निर्देशों) और ईमेल के भीतर मौजूद डेटा (उस ख़ास काम की जानकारी) का इस्तेमाल करेगा। लेकिन यहाँ हम इस तकनीक की सबसे बड़ी सीमाओं में से एक से टकराते हैं, मॉडलों की कॉन्टेक्स्ट विंडो सीमित होती है। कुछ अत्याधुनिक मॉडलों की विंडो लगभग 10 लाख टोकन की है। अंग्रेज़ी पाठ के लिए मोटे तौर पर माना जाए, तो एक टोकन औसतन लगभग चार अक्षरों के बराबर होता है। इसलिए 10 लाख टोकन, द लॉर्ड ऑफ़ द रिंग्स के मूल अंग्रेज़ी संस्करण के तीनों खंडों के पूरे पाठ का लगभग डेढ़ गुना होते हैं।
यहाँ मैं एजेंट की परिभाषा ऐसे प्रोग्राम के रूप में कर रहा हूँ जो निर्णय लेने और टूल इस्तेमाल करने के लिए किसी फाउंडेशन मॉडल (FM) का उपयोग करता है। जब भी उसे जानकारी लेनी और निर्णय करना होता है, वह मॉडल को कॉल करता है। जो जानकारी उस कॉल में शामिल नहीं होती, वह कॉन्टेक्स्ट के तौर पर उपलब्ध नहीं होगी, भले ही पिछली किसी कॉल में मौजूद रही हो। इस सीमा से निपटने के लिए उद्योग में तरीके विकसित हुए हैं। एजेंट को ज़रूरत का कॉन्टेक्स्ट, ज़रूरत के समय देने वाली प्रक्रियाओं को मैं यहाँ कॉन्टेक्स्ट प्रबंधन की तकनीकें कह रहा हूँ। बुनियादी विचारों में से एक है progressive disclosure of information, यानी जानकारी को क्रमशः उपलब्ध कराना। इसमें समय के साथ कॉन्टेक्स्ट दिया जाता है और साथ ही ऐसे टूल उपलब्ध कराए जाते हैं जिनसे एजेंट अपनी ज़रूरत की जानकारी ख़ुद खोज सके।

यह पूरा क्षेत्र अपेक्षाकृत नया है, इसलिए ऐसा कोई एक समाधान नहीं है जो हर परिस्थिति में काम करे। उद्योग में कई व्यावहारिक तरीके आम हैं, और सबसे ज़्यादा इस्तेमाल होने वालों में से एक है Retrieval-Augmented Generation (RAG)। इस तकनीक में दस्तावेज़ों को आम तौर पर अलग-अलग मानदंडों के आधार पर हिस्सों में बाँटा जाता है, जैसे तय आकार, अर्थ-संबंधी संदर्भ या दस्तावेज़ की संरचना। अक्सर इन हिस्सों को संख्यात्मक निरूपण में बदला जाता है, जिन्हें हम एम्बेडिंग कहते हैं।1 ज़रूरत होने पर एजेंट इस जानकारी में खोज करता है, अपने काम के लिए प्रासंगिक माने गए हिस्से प्राप्त करता है और उनसे उत्तर बनाता है। सामान्यतः वह शब्द-आधारित खोज (ख़ास शब्दों को तलाशना), अर्थ-आधारित खोज (ऐसे हिस्से तलाशना जिनका अर्थ काम की माँग से मिलता हो), या हाइब्रिड खोज (दोनों) कर सकता है। बहुत बड़े दस्तावेज़ों में कोई ख़ास जानकारी खोजने के लिए यह बहुत उपयोगी है, जैसे 500 पन्नों के अनुबंध से ज़रूरी जानकारी निकालने वाला परिचित उदाहरण। हालाँकि एजेंट खोज को ठीक से तैयार करे, तब भी हो सकता है कि काम पूरा करने के लिए आवश्यक सभी हिस्से उसे न मिलें और उसके पास अधूरा कॉन्टेक्स्ट रह जाए। फिर भी उद्योग और अकादमिक जगत, दोनों में इस तकनीक की खूब चर्चा होती है, और मैंने जो कार्यान्वयन देखे हैं, उनमें से लगभग सभी में इसका इस्तेमाल हुआ है।
लेकिन यही एक तरीका नहीं है। जनरेटिव AI की दुनिया में सबसे ज़्यादा चर्चा में रहने वाले नामों में से एक, आंद्रेज कारपैथी, ने LLM Wiki का प्रस्ताव दिया।2 यह तरीका Markdown फ़ाइलों (.md) का उपयोग करता है। ये एक ख़ास फ़ॉर्मैटिंग वाली साधारण टेक्स्ट फ़ाइलें होती हैं, जिनसे एक सूचकांक और स्रोतों से संकलित ज्ञान के आपस में जुड़े पन्ने बनाए और बनाए रखे जाते हैं। एजेंट ज़रूरत पड़ने पर संबंधित पन्नों को पूरा पढ़ सकता है। यह वैसा ही है जैसे मैं किसी नई चीज़ की उपयोगकर्ता पुस्तिका खोलूँ और विषय-सूची देखकर केवल अपने काम के हिस्से पढ़ूँ। कई उपयोगों के लिए यह मेरा पसंदीदा तरीका रहा है, क्योंकि इसमें संगति है और इसका रखरखाव या हाथ से बदलाव करना आसान है। लेकिन जटिल उपयोगों में इसका रखरखाव, उदाहरण के लिए किसी दस्तावेज़ के नए संस्करण की एम्बेडिंग बनाकर सूचकांक अपडेट करने से ज़्यादा मेहनत माँग सकता है। LLM Wiki को बनाए रखने के लिए हम सूचना-आसवन की पाइपलाइन बना सकते हैं। मेरा मतलब है, जानकारी का घनत्व बनाए रखते हुए पाठ की मात्रा घटाना। कारपैथी का प्रस्ताव भी यही है। लेकिन मेरे अनुभव में मॉडल इस आसवन में अभी काफ़ी चूक करते हैं। वे अक्सर मूल जानकारी की बारीकियाँ और दस्तावेज़ के समग्र उद्देश्य को खो देते हैं। और जानकारी को परखने और सँभालने की मेहनत जल्दी ही भारी पड़ने लगती है।
आख़िर में, चूँकि यह लेख लंबा हो रहा है और मैं यहाँ तक पढ़ने वालों का उत्साह नहीं तोड़ना चाहता, मैं संक्षेप में GraphRAG, यानी Graph Retrieval-Augmented Generation, पर बात करना चाहूँगा। शायद पहले यह समझ लें कि ग्राफ़ क्या होता है। यह एक गणितीय या कम्प्यूटेशनल संरचना है जिसमें शीर्षों (नोड्स) का एक समूह, किनारों या कड़ियों से जुड़ा होता है... चलिए, ज़रा साँस ले लें। आसान शब्दों में, यह जानकारी और डेटा के बीच संबंध दिखाने का एक तरीका है, जैसा नीचे है। इसका अच्छा उदाहरण सोशल नेटवर्क है, जहाँ कई लोगों के नाम आपस में जुड़े हो सकते हैं, लेकिन जुड़ाव की एक दिशा होती है। Joaquina, Manuel को फ़ॉलो करती है; Manuel, Ramiro को फ़ॉलो करता है; और Ramiro, Joaquina को फ़ॉलो करता है। इसका मतलब यह नहीं कि Manuel, Joaquina को फ़ॉलो करता है या Joaquina, Ramiro को। लोग नोड्स हैं और कड़ियाँ फ़ॉलो करने के संबंध हैं। जानकारी में दिशा हो सकती है और संबंध स्पष्ट होते हैं।
A से B की ओर तीर का मतलब है “A, B को फ़ॉलो करता है”। विपरीत संबंध अपने आप निहित नहीं होता।
GraphRAG एक नॉलेज ग्राफ़ का इस्तेमाल करता है, जिसमें इकाइयाँ (अवधारणाएँ, वस्तुएँ, लोग) और उनके बीच संबंध होते हैं। इससे ऐसा जाल बनता है जिसमें प्रश्न पूछे जा सकते हैं। एजेंट इन संबंधों के रास्ते चलते हुए किसी काम को पूरा करने की जानकारी ज़्यादा आसानी से खोज सकता है। जो जानकारी मिलती है, वह उत्तर बनाने के लिए कॉन्टेक्स्ट के रूप में मॉडल को दी जाती है। यह क्षमता तब ख़ास उपयोगी हो सकती है जब कई दस्तावेज़ों की जानकारी को जोड़ना हो। दूसरे तरीकों की तरह, जानकारी और संबंधों को परखना और सँभालना ज़रूरी है, ख़ासकर जब उन्हें एजेंट स्वायत्त रूप से बनाता हो। उदाहरण के लिए, अगर संबंध ग़लत, अधूरे या पुराने हैं, तो एजेंट महत्वपूर्ण जानकारी छोड़ सकता है या उन कड़ियों पर उत्तर टिका सकता है जिनका अब कोई मतलब नहीं रह गया। मेरे साथ भी ऐसा हुआ है कि यह तरीका अपनाने के बाद नेटवर्क इतना जटिल हो गया कि न मैं और न ही एजेंट (शाउटआउट Sr. Alfredo को) समझ पा रहे थे कि उसमें क्या है।
ये तीनों तरीके एक-दूसरे को बाहर नहीं करते। किसी अपेक्षाकृत जटिल एंटरप्राइज़ कार्यान्वयन में, अगर दृष्टिकोण परिपक्व हो, तो परिस्थिति के अनुसार तीनों का इस्तेमाल भी हो सकता है। किसी विकी में RAG के ज़रिए खोज की जा सकती है, और GraphRAG ख़ुद भी प्राप्त की गई जानकारी से उत्तर निर्माण को सहारा देने का एक तरीका है। किसका इस्तेमाल कब करना चाहिए, इस बारे में मेरी समझ का सार यह है।
| तकनीक | परिभाषा | कब इस्तेमाल करूँ | मुख्य सीमाएँ |
|---|---|---|---|
| दस्तावेज़ RAG | दस्तावेज़ों से प्रासंगिक अंश खोजकर उन्हें कॉन्टेक्स्ट के रूप में मॉडल को देता है। | जब किसी बड़े या बार-बार बदलने वाले संग्रह में ख़ास जानकारी खोजनी हो, जैसे अनुबंध की धाराएँ या तकनीकी दस्तावेज़। | निर्णायक अंश छूट सकता है या कोई नियम उसके अपवाद से अलग हो सकता है। दस्तावेज़ों के विभाजन, खोज और सूचकांक के अपडेट पर ध्यान देना पड़ता है। |
| LLM Wiki | कई स्रोतों के ज्ञान को संकलित करने वाले आपस में जुड़े पन्ने बनाए रखता है, ताकि उन्हें पढ़ा और दोबारा इस्तेमाल किया जा सके। | जब मैं किसी विषय या परियोजना का ज्ञान जमा कर रहा हूँ और पहले से तैयार व्याख्याओं, निर्णयों और संबंधों का पुनः उपयोग करना चाहता हूँ। | संकलन में बारीकियाँ खो सकती हैं या ग़लतियाँ बनी रह सकती हैं। अपडेट और विरोधाभासों को सँभालना पड़ता है, और विकी का उपयोग भी सही पन्ने खोज पाने पर निर्भर रहता है। |
| GraphRAG | इकाइयों के बीच स्पष्ट संबंधों का उपयोग करके उत्तर में सहायक जानकारी खोजता और व्यवस्थित करता है। | जब प्रश्न लोगों, अवधारणाओं, निर्णयों या घटकों के बीच उन संबंधों पर निर्भर हो जो अक्सर कई दस्तावेज़ों में बिखरे होते हैं। | ग़लत या अधूरे संबंध खोज को प्रभावित करते हैं। ग्राफ़ बनाना और बनाए रखना जटिल हो सकता है; ज़्यादा कड़ियाँ बेहतर कॉन्टेक्स्ट की गारंटी नहीं हैं। |
लेकिन कॉन्टेक्स्ट प्रबंधन की चर्चा यहीं ख़त्म नहीं होती। यह इस विषय पर लिखी जाने वाली मेरी लेख-श्रृंखला का पहला लेख है। आगे हम caching, compaction, context pruning और सबएजेंटों के ज़रिए कॉन्टेक्स्ट को अलग रखने पर बात करेंगे। जल्द मिलते हैं।
-
RAG के लिए अर्थ-आधारित एम्बेडिंग ज़रूरी नहीं हैं। केवल शब्दों पर आधारित खोज, जैसे BM25, शब्दों और उनके आने की आवृत्ति से जुड़ी सांख्यिकी का इस्तेमाल करती है। हाइब्रिड खोज में इस हिस्से को अर्थ-आधारित खोज के साथ जोड़ा जाता है। Anthropic का शब्द-आधारित, अर्थ-आधारित और हाइब्रिड खोज का विवरण देखें। ↩
-
LLM का अर्थ large language model, यानी बड़ा भाषा मॉडल है। दोनों नामों में कुछ समानता है, लेकिन वे पर्याय नहीं हैं। LLM भाषा-केंद्रित मॉडल का वर्णन करता है; FM अलग-अलग कामों के अनुकूल ढल सकने वाली बुनियाद के रूप में उसके उपयोग पर ज़ोर देता है। कई सामान्य-उद्देश्य LLM, फाउंडेशन मॉडल हैं, लेकिन चित्र, ऑडियो और अन्य प्रकार की सामग्री के फाउंडेशन मॉडल भी होते हैं। Stanford CRFM की परिभाषा देखें। ↩