3.17

View in English

3.17 खोज और सूचना पुनर्प्राप्ति

अवलोकन और प्रेरणा

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

यह अध्याय खोज को प्रथम-श्रेणी आर्किटेक्चर के रूप में देखता है। यह अध्याय 3.4 के डेटा और स्टोरेज निर्णयों के साथ जुड़ता है, क्योंकि खोज इंडेक्स एक विशेष स्टोर है जो क्वेरी के लिए अनुकूलित है, और यह उस सिस्टम ऑफ़ रिकॉर्ड से अलग है जो सत्य का स्वामी होता है। यह अध्याय 3.15 के कैशिंग और डिलीवरी विचारों पर भी निर्भर करता है, क्योंकि खोज परिणाम और सुझाव विलंबता-संवेदनशील और कैश करने योग्य होते हैं। और अब यह अध्याय 6.3 के जनरेटिव कृत्रिम बुद्धिमत्ता कार्य के साथ भारी रूप से ओवरलैप करता है, क्योंकि आधुनिक पुनर्प्राप्ति बड़े भाषा मॉडलों को वह संदर्भ प्रदान करती है जिसकी उन्हें अच्छी तरह उत्तर देने के लिए आवश्यकता होती है।

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

मुख्य सिद्धांत

  • खोज इंडेक्स को एक व्युत्पन्न स्टोर मानें, जो आपके सिस्टम ऑफ़ रिकॉर्ड से अलग हो।
  • प्रासंगिकता एक मापने योग्य गुणवत्ता है, पसंद का मामला नहीं; इसे डेटा से जाँचें।
  • लोग वास्तव में जैसे टाइप करते हैं उससे मेल खाएँ: गलत वर्तनी वाला, संक्षिप्त, और अस्पष्ट।
  • लेक्सिकल और सिमेंटिक पुनर्प्राप्ति दोनों को मिलाएँ; अकेले कोई भी हर क्वेरी को कवर नहीं करता।
  • इंडेक्सिंग पाइपलाइन को केवल प्रारंभिक लोड के लिए नहीं, बल्कि ताज़गी के लिए डिज़ाइन करें।
  • जजमेंट के साथ ऑफ़लाइन और वास्तविक व्यवहार के साथ ऑनलाइन मूल्यांकन करें, और दोनों का उपयोग करें।
  • शार्ड्स और रेप्लिका के साथ खोज को जानबूझकर स्केल करें, और इसे किसी भी अन्य सेवा की तरह ऑब्ज़र्व करें।

सिफ़ारिशें

इनवर्टेड इंडेक्स और एनालिसिस पाइपलाइन से शुरुआत करें

क्लासिक खोज के केंद्र में जो इंजन है वह है इनवर्टेड इंडेक्स: हर टर्म से उन दस्तावेज़ों की सूची तक का मानचित्रण जिनमें वह टर्म मौजूद है, यानी उस दस्तावेज़ की दर्पण-छवि जो अपने टर्म्स सूचीबद्ध करता है। “invoice refund” के लिए पूछें और इंजन “invoice” की पोस्टिंग सूची को “refund” की पोस्टिंग सूची के साथ मिलीसेकंड में इंटरसेक्ट कर देता है, चाहे आपके पास कितने भी करोड़ों दस्तावेज़ क्यों न हों। यही डेटा संरचना है जिसकी वजह से खोज तुरंत महसूस होती है, और इसे समझने से यह स्पष्ट हो जाता है कि खोज क्या अच्छी तरह करती है और क्या नहीं।

इंडेक्स उतना ही अच्छा होता है जितना अच्छा टेक्स्ट आप उसे देते हैं, और यही काम है एनालाइज़र का। एनालिसिस कई चरणों में चलती है। सबसे पहले, टोकनाइज़ेशन टेक्स्ट की धारा को टर्म्स में विभाजित करता है, जो विराम चिह्नों, हाइफ़नेशन, और चीनी जैसी भाषाओं से मिलने पर, जो शब्दों को सीमांकित नहीं करतीं, केवल स्पेस पर विभाजित करने से कहीं अधिक कठिन हो जाता है। फिर नॉर्मलाइज़ेशन अक्षरों को लोअरकेस करता है, एक्सेंट हटाता है, और भिन्न रूपों को समेकित करता है। फिर स्टेमिंग या इसका अधिक सटीक रिश्तेदार लेमेटाइज़ेशन “running,” “ran,” और “runs” को एक सामान्य मूल की ओर घटाता है ताकि एक के लिए क्वेरी बाकी से भी मेल खाए। स्टॉप-वर्ड हैंडलिंग, पर्यायवाची विस्तार, और भाषा पहचान इसे पूरा करते हैं। जो नियम आपको परेशानी से बचाता है वह यह है: इंडेक्स-टाइम एनालिसिस और क्वेरी-टाइम एनालिसिस को सहमत होना चाहिए, क्योंकि कोई टर्म तभी मिलता है जब दोनों पक्ष उसे एक ही तरह नॉर्मलाइज़ करते हैं।

ट्यून करने से पहले प्रासंगिकता रैंकिंग को समझें

मेल खाने वाले दस्तावेज़ों को खोजना आसान आधा हिस्सा है। उन्हें इस तरह क्रमबद्ध करना कि सबसे अच्छा सबसे ऊपर बैठे, कठिन आधा हिस्सा है, और इसे रैंकिंग कहा जाता है। पारंपरिक कार्यभार TF-IDF है, जिसका मतलब है टर्म फ़्रीक्वेंसी गुणा इनवर्स डॉक्यूमेंट फ़्रीक्वेंसी: कोई टर्म तब अधिक मायने रखता है जब वह किसी दस्तावेज़ में बार-बार आता है (टर्म फ़्रीक्वेंसी) और जब वह पूरे संग्रह में दुर्लभ होता है (इनवर्स डॉक्यूमेंट फ़्रीक्वेंसी), इसलिए “photosynthesis” “the” से अधिक वज़न रखता है। अधिकांश आधुनिक इंजन डिफ़ॉल्ट रूप से Okapi BM25 का उपयोग करते हैं, जो एक परिष्करण है जो टर्म फ़्रीक्वेंसी को सैचुरेट करता है (दसवीं बार आना नौवीं बार से बहुत कम जोड़ता है) और दस्तावेज़ की लंबाई के लिए नॉर्मलाइज़ करता है ताकि लंबे दस्तावेज़ केवल आकार से न जीतें। आपको सूत्र निकालने की ज़रूरत नहीं है, लेकिन आपको यह जानना चाहिए कि एक नॉब मौजूद है, उसके सिद्धांतबद्ध डिफ़ॉल्ट हैं, और उसे बदलने से यह बदल जाता है कि कौन-से परिणाम पहले रैंक करते हैं।

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

क्वेरी अंडरस्टैंडिंग में निवेश करें

उपयोगकर्ता उस तरह टाइप नहीं करते जिस तरह आपके दस्तावेज़ लिखे गए हैं। वे गलत वर्तनी लिखते हैं, संक्षिप्त करते हैं, ऐसे पर्यायवाची खोजते हैं जिन्हें आपने कभी इंडेक्स नहीं किया, और चार शब्दों में तीन इरादे ठूँस देते हैं। क्वेरी अंडरस्टैंडिंग वह परत है जो इस अंतर को पाटती है, और यह लगभग किसी भी और चीज़ से अधिक निवेश का प्रतिफल देती है। क्यूरेटेड और माइन किए गए पर्यायवाची जोड़ें ताकि “laptop” “notebook” को खोजे और “heart attack” “myocardial infarction” को खोजे। एडिट डिस्टेंस के माध्यम से टाइपो सहनशीलता जोड़ें, जो दो स्ट्रिंग्स के बीच एकल-अक्षर परिवर्तनों की संख्या है, ताकि “reciept” अभी भी receipts खोज सके। इकाइयों और इरादे का पता लगाएँ ताकि “flights to Paris under $500” शब्दों के एक थैले के बजाय सही फ़िल्टर की ओर रूट हो।

सबसे कठिन क्वेरी को जानबूझकर संभालें। किसी दुर्लभ सटीक स्ट्रिंग की खोज, जैसे ऑर्डर नंबर या कानून की धारा का हवाला, एक सटीक मेल चाहती है और कोई चतुर विस्तार नहीं। एक अस्पष्ट प्राकृतिक-भाषा प्रश्न इसके विपरीत चाहता है। इन्हें एक ही व्यवहार पर मजबूर करने के बजाय अलग-अलग रूट करें। और हमेशा शून्य-परिणाम मामले को डिज़ाइन करें: जब कोई क्वेरी कुछ नहीं लौटाती, तो उसे ढीला करें, विकल्प सुझाएँ, या व्यापक मेल पर वापस जाएँ, क्योंकि खाली पेज उपयोगकर्ता को खोने का सबसे तेज़ तरीका है।

फ़ेसेट्स, ऑटोकंप्लीट, और संरचित फ़िल्टरिंग जोड़ें

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

ऑटोकंप्लीट और सुझाव क्वेरी को उसके जमा होने से पहले ही आकार देते हैं। एक अच्छा सुझावकर्ता उपयोगकर्ता के टाइप करते समय वास्तविक, उच्च-मूल्य वाली क्वेरी प्रस्तावित करता है, वर्तनी को जल्दी सुधारता है, और लोकप्रिय या ट्रेंडिंग इरादों को सामने लाता है। यह विलंबता-नाज़ुक है (हर कीस्ट्रोक एक अनुरोध है) और अध्याय 3.15 के कैशिंग पैटर्न से सीधे लाभान्वित होता है। सुझाव लोगों को उन क्वेरी की ओर भी निर्देशित करते हैं जिन्हें आप अच्छी तरह संभालते हैं, जो चुपचाप समग्र प्रासंगिकता को बढ़ाता है। सुझावकर्ता को अपने स्वयं के छोटे इंडेक्स के रूप में मानें, जिसकी अपनी रैंकिंग हो, जो दस्तावेज़ सामग्री के बजाय क्वेरी लॉग पर ट्यून की गई हो।

लेक्सिकल और वेक्टर खोज को मिलाएँ

क्लासिक खोज शब्दों से मेल खाती है। यह नहीं बता सकती कि “car” और “automobile” का अर्थ एक ही है जब तक आपने उसे न बताया हो, और यह उन प्रश्नों पर लड़खड़ाती है जो ऐसे तरीके से लिखे गए हों जो आपके दस्तावेज़ कभी उपयोग नहीं करते। वेक्टर सर्च इसे टेक्स्ट को एम्बेडिंग के रूप में प्रस्तुत करके संबोधित करती है, जो एक मशीन-लर्निंग मॉडल द्वारा उत्पन्न सघन संख्यात्मक वेक्टर होता है, इस तरह कि समान अर्थ वेक्टर स्पेस में एक-दूसरे के पास पड़ते हैं। फिर पुनर्प्राप्ति उस स्पेस में एक नियरेस्ट-नेबर खोज बन जाती है, और चूँकि स्केल पर सटीक नियरेस्ट-नेबर बहुत धीमा होता है, इंजन अप्रॉक्सिमेट नियरेस्ट नेबर (ANN) एल्गोरिद्म का उपयोग करते हैं जो थोड़ी-सी सटीकता को बड़े गति लाभ के बदले ट्रेड करते हैं। इस तरह की सिमेंटिक खोज सही दस्तावेज़ ढूँढ लेती है भले ही वह क्वेरी से कोई शब्द साझा न करे।

कोई भी तरीका हर जगह नहीं जीतता। लेक्सिकल खोज सटीक टर्म्स, नामों, कोडों, और दुर्लभ कीवर्ड्स में उत्कृष्ट है; यह पारदर्शी है और समझाना सस्ता है। वेक्टर खोज अर्थ, व्याख्या, और प्राकृतिक-भाषा प्रश्नों में उत्कृष्ट है, लेकिन यह एक सटीक पहचानकर्ता चूक सकती है और डीबग करना कठिन है। गंभीर सिस्टमों के लिए मज़बूत डिफ़ॉल्ट हाइब्रिड सर्च है: दोनों को चलाएँ और परिणामों को फ़्यूज़ करें, अक्सर एक तकनीक से जैसे रेसिप्रोकल रैंक फ़्यूज़न, जो दो रैंक की गई सूचियों को उनके स्कोर तुलनीय होने की आवश्यकता के बिना मिश्रित करती है। हाइब्रिड आपको कीवर्ड्स की प्रिसिज़न और सिमेंटिक्स का रीकॉल देती है, और जब कोई भी पक्ष कमज़ोर होता है तो यह सुचारू रूप से नीचे उतरती है।

खोज को रिट्रीवल-ऑगमेंटेड जनरेशन से जोड़ें

खोज का सबसे तेज़ी से बढ़ता उपभोक्ता कोई इंसान नहीं है जो परिणाम सूची पढ़ रहा हो; यह एक भाषा मॉडल है। रिट्रीवल-ऑगमेंटेड जनरेशन (RAG) प्रासंगिक अंशों को पुनर्प्राप्त करके और उन्हें मॉडल के संदर्भ में रखकर एक जनरेटिव मॉडल को आपके डेटा में आधारित करता है, ताकि वह अपनी प्रशिक्षण स्मृति के बजाय आपके तथ्यों से उत्तर दे। अध्याय 6.3 की जनरेशन गुणवत्ता सीधे पुनर्प्राप्ति की गुणवत्ता पर निर्भर करती है: मॉडल को गलत अंश खिलाएँ और वह आत्मविश्वास से एक गलत उत्तर संश्लेषित करेगा। इस अध्याय में सब कुछ (टेक्स्ट को अंशों में चंकिंग करना, उन्हें अच्छी तरह रैंक करना, लेक्सिकल और वेक्टर संकेतों को फ़्यूज़ करना, इंडेक्स को ताज़ा रखना) ठीक-ठीक RAG का पुनर्प्राप्ति आधा हिस्सा है। यदि आपका संगठन बड़े भाषा मॉडलों पर निर्माण कर रहा है, तो आपका खोज सिस्टम ही नींव है, और सही अंशों पर रीकॉल सुधारना अक्सर मॉडल बदलने से अधिक सहायक साबित होता है।

ताज़गी के लिए एक इंडेक्सिंग पाइपलाइन बनाएँ

एक इंडेक्स एक प्रति है, और एक प्रति बहकती है। इंडेक्सिंग पाइपलाइन वह मशीनरी है जो खोज इंडेक्स को सिस्टम ऑफ़ रिकॉर्ड के साथ कदम मिलाकर रखती है: स्रोत परिवर्तनों को पढ़ना, एनालिसिस और एम्बेडिंग चलाना, और इंडेक्स में लिखना, आदर्श रूप से रात के बैच के बजाय एक स्ट्रीम के रूप में। यह एक डेटा-इंजीनियरिंग सरोकार है (अध्याय 7.2), और अध्याय 3.3 से ऑर्डरिंग, रीट्राई, और इडेंपोटेंस के प्रति वही सावधानी लागू होती है, क्योंकि एक ऑर्डर से बाहर अपडेट किसी हटाए गए दस्तावेज़ को पुनर्जीवित कर सकता है। अपना ताज़गी लक्ष्य स्पष्ट रूप से तय करें। किसी कीमत या इन्वेंट्री गिनती को सेकंडों के भीतर खोजने योग्य होने की आवश्यकता हो सकती है; एक आर्काइव की गई नीति दस्तावेज़ घंटों तक पिछड़ सकता है। स्कीमा और एनालाइज़र परिवर्तनों के लिए पूर्ण रीइंडेक्सिंग का समर्थन करें, और इसे बिना डाउनटाइम के चलाने के लिए डिज़ाइन करें, आमतौर पर एक नया इंडेक्स बनाकर और तैयार होने पर एक अलायस को परमाणु रूप से स्विच करके।

प्रासंगिकता को मूल्यांकन से ट्यून करें, राय से नहीं

प्रासंगिकता पर तर्क दावों से नहीं जीते जा सकते, इसलिए राय को मापन से बदलें। ऑफ़लाइन, एक जजमेंट सूची बनाएँ: प्रतिनिधि क्वेरी का एक सेट जो यह इंसानी रेटिंग के साथ जुड़ा हो कि कौन-से परिणाम प्रासंगिक हैं, और अपनी रैंकिंग को इसके विरुद्ध किसी मीट्रिक जैसे NDCG (नॉर्मलाइज़्ड डिस्काउंटेड क्यूमुलेटिव गेन) से स्कोर करें, जो अत्यधिक प्रासंगिक परिणामों को शीर्ष के पास रखने का इनाम देता है और नीचे दबे हुए परिणामों में छूट देता है। ऑफ़लाइन मूल्यांकन आपको दो रैंकिंग कॉन्फ़िगरेशन की तुलना किसी उपयोगकर्ता को छुए बिना करने देता है। ऑनलाइन, वास्तविक व्यवहार देखें: क्लिक-थ्रू दर, क्लिक किए गए परिणामों की स्थिति, क्वेरी पुनर्रचनाएँ, शून्य-परिणाम दर, और कन्वर्ज़न। नियंत्रित प्रयोग चलाएँ (अध्याय 7.4) ताकि एक प्रासंगिकता परिवर्तन किसी अटकल पर नहीं बल्कि होल्डआउट के विरुद्ध सिद्ध हो। दोनों का उपयोग करें, क्योंकि ऑफ़लाइन मीट्रिक तेज़ लेकिन आदर्शीकृत हैं, जबकि ऑनलाइन मीट्रिक वास्तविक लेकिन धीमे और शोरगुल वाले हैं। परिपक्व लूप जजमेंट सूची को बढ़ाने के लिए क्वेरी लॉग की माइनिंग करता है, ताकि सीखते-सीखते मूल्यांकन बेहतर होता जाए।

शार्ड्स और रेप्लिका से स्केल करें, और हर चीज़ को ऑब्ज़र्व करें

खोज दो अक्षों के साथ स्केल होती है। शार्डिंग एक इंडेक्स को दस्तावेज़ों का विभाजन करके कई मशीनों में विभाजित करती है, ताकि एक क्वेरी हर शार्ड में फैले और आंशिक परिणाम मर्ज हों; यह किसी इंडेक्स को एक मशीन की क्षमता से आगे बढ़ने देता है और इंडेक्सिंग लोड को फैलाता है। रेप्लिका हर शार्ड की प्रतिलिपि बनाती हैं ताकि रीड ट्रैफ़िक प्रतियों में फैले और किसी नोड के खोने से डेटा न खोए; रेप्लिका क्वेरी थ्रूपुट की सेवा करते हैं और लचीलापन प्रदान करते हैं। अधिक शार्ड प्रति क्वेरी फ़ैन-आउट लागत बढ़ाते हैं, इसलिए इन्हें किसी गोल संख्या के बजाय अपने डेटा के अनुसार आकार दें। खोज को अध्याय 9.2 की ऑब्ज़र्वेबिलिटी के साथ संचालित करें: क्वेरी विलंबता पर्सेंटाइल ट्रैक करें (औसत से अधिक टेल मायने रखती है), इंडेक्सिंग लैग, कैश हिट दरें, त्रुटि दरें, और प्रथम-श्रेणी संकेतों के रूप में, शून्य-परिणाम दर और क्लिक स्थिति जैसे प्रासंगिकता मीट्रिक। एक खोज सिस्टम जो तेज़ है लेकिन खराब परिणाम लौटाता है, चुपचाप विफल हो रहा है, और केवल प्रासंगिकता टेलीमेट्री ही आपको यह बताएगी।

ट्रेड-ऑफ़: फ़ायदे और नुकसान

तरीकाफ़ायदेनुकसान
लेक्सिकल (BM25) खोजसटीक टर्म्स, कोड, नाम; पारदर्शी; सस्तीबिना ट्यूनिंग के पर्यायवाची और व्याख्या के प्रति अंधी
वेक्टर (सिमेंटिक) खोजअर्थ और प्रश्नों को समझती है; मज़बूत रीकॉलसटीक ID चूकती है; कंप्यूट करना महंगा; डीबग करना कठिन
हाइब्रिड खोजकीवर्ड्स की प्रिसिज़न प्लस सिमेंटिक्स का रीकॉलअधिक चलने वाले हिस्से; फ़्यूज़न को ट्यूनिंग और टेस्टिंग चाहिए
आक्रामक टाइपो और पर्यायवाची विस्तारउच्च रीकॉल; वास्तविक उपयोगकर्ताओं के प्रति क्षमाशीलप्रिसिज़न गिरती है; बिना जाँच के शोरगुल भरे परिणाम
रीयल-टाइम इंडेक्सिंगसेकंडों के भीतर ताज़ा परिणामबैच से अधिक लागत और जटिलता
अधिक शार्डबड़े इंडेक्स; समानांतर इंडेक्सिंगप्रति-क्वेरी फ़ैन-आउट और समन्वय लागत अधिक
ऑफ़लाइन मूल्यांकन (जजमेंट सूचियाँ)तेज़, दोहराने योग्य, इटरेट करना सुरक्षितआदर्शीकृत; वास्तविक उपयोगकर्ता व्यवहार से मेल न खा सकता
ऑनलाइन मूल्यांकन (क्लिक मीट्रिक, टेस्ट)वास्तविक उपयोगकर्ताओं और इरादे को दर्शाता हैधीमा, शोरगुल वाला, ट्रैफ़िक और प्रयोग अनुशासन चाहिए

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

अपनी टीम के साथ चर्चा करने के लिए प्रश्न

  1. आज हम खोज प्रासंगिकता को कैसे मापते हैं, और क्या हमें पता चलेगा अगर यह खराब हो जाए? कई टीमें इसका जवाब नहीं दे सकतीं, जिसका मतलब है कि उनकी प्रासंगिकता वही है जो डिफ़ॉल्ट ने पैदा की, और वे रिग्रेशन के प्रति अंधी उड़ान भर रही हैं। अपने वर्तमान संकेत लाएँ: क्या आपके पास जजमेंट सूची है, क्या आप शून्य-परिणाम दर और क्लिक स्थिति ट्रैक करते हैं, क्या आप दो रैंकिंग कॉन्फ़िगरेशन की वस्तुनिष्ठ तुलना कर सकते हैं? “खोज ठीक लगती है” और “यहाँ सौ ग्रेडेड क्वेरी पर हमारा NDCG है, और यहाँ पिछले महीने का रुझान है” के बीच का अंतर, अंदाज़ा लगाने और इंजीनियरिंग करने के बीच का अंतर है। जो कार्रवाई इसका अनुसरण करती है वह एक छोटी-सी जजमेंट सूची बनाना और क्लिक व्यवहार को इंस्ट्रूमेंट करना है, क्योंकि आप वह ट्यून नहीं कर सकते जिसे आप माप नहीं सकते, और हर प्रासंगिकता परिवर्तन जो आप अंधे होकर शिप करते हैं, वह एक ऐसा परिवर्तन है जिसका आप बचाव नहीं कर सकते।

  2. लेक्सिकल और सिमेंटिक पुनर्प्राप्ति हमें कहाँ-कहाँ विफल करती हैं, और क्या हमें हाइब्रिड जाना चाहिए? शुद्ध कीवर्ड खोज पुनर्रचित प्रश्नों और पर्यायवाची पर चुपचाप विफल होती है, जबकि शुद्ध वेक्टर खोज सटीक पहचानकर्ताओं और दुर्लभ टर्म्स पर चुपचाप विफल होती है, और अधिकांश टीमों ने इन दोनों में से केवल एक ही कभी चलाई है। ऐसे वास्तविक क्वेरी का एक सेट लाएँ जिन्होंने खराब परिणाम लौटाए और यह वर्गीकृत करें कि हर एक क्यों विफल हुई: क्या यह एक गायब पर्यायवाची थी, एक वर्तनी त्रुटि, एक सिमेंटिक मेल न खाना, या एक गायब सटीक मेल? उन विफलताओं में पैटर्न आपको बताएगा कि क्या हाइब्रिड खोज मदद करेगी और पहले प्रयास कहाँ खर्च करना है। यह और भी अधिक मायने रखता है यदि आप किसी भाषा मॉडल को खिला रहे हैं, क्योंकि पुनर्प्राप्ति विफलताएँ आत्मविश्वासी गलत उत्तर बन जाती हैं, और जब एक जनरेटिव परत ऊपर बैठी हो तो खराब परिणाम की लागत तेज़ी से बढ़ती है।

  3. हमारी ताज़गी आवश्यकता क्या है, और क्या हमारी इंडेक्सिंग पाइपलाइन वास्तव में उसे पूरा करती है? ताज़गी को आमतौर पर निर्दिष्ट करने के बजाय मान लिया जाता है, इसलिए टीमें इस बेमेल को किसी घटना के दौरान खोजती हैं जब कोई हटाई गई वस्तु दिखाई देती रहती है या कोई मूल्य अपडेट घंटों पीछे रह जाता है। असली संख्याएँ लाएँ: सिस्टम ऑफ़ रिकॉर्ड में किसी परिवर्तन से उस परिवर्तन के खोजने योग्य होने तक कितना समय लगता है, और यह आपके कैटलॉग के विभिन्न हिस्सों को वास्तव में जो चाहिए उससे कैसे तुलना करता है? उत्तर संभवतः डेटा प्रकार से अलग-अलग होगा, और इसे नाम देना स्ट्रीमिंग बनाम बैच, ऑर्डरिंग, और रीइंडेक्सिंग के बारे में पाइपलाइन निर्णयों को मजबूर करता है। एक इंडेक्स जो उन तरीकों से बासी है जिन्हें आपके उपयोगकर्ता देख सकते हैं, पूरे उत्पाद में विश्वास को कमज़ोर करता है, और एक ताज़गी लक्ष्य जिसे आपने कभी मापा नहीं, वह संभवतः एक ऐसा लक्ष्य है जिसे आप चूक रहे हैं।

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

  5. हम क्वेरी अंडरस्टैंडिंग में कितना निवेश करने के इच्छुक हैं, और विफल होने वाली क्वेरी की समीक्षा कौन करता है? उपयोगकर्ता गलत वर्तनी लिखते हैं, संक्षिप्त करते हैं, और ऐसे शब्दों में प्रश्न पूछते हैं जो आपके दस्तावेज़ कभी उपयोग नहीं करते, इसलिए कच्ची क्वेरी और अच्छे परिणाम के बीच का अंतर वह जगह है जहाँ अधिकांश समझी जाने वाली खोज गुणवत्ता रहती है, फिर भी यह शायद ही कभी किसी का स्पष्ट काम होता है। अपनी शून्य-परिणाम दर, अपनी शीर्ष विफल और पुनर्रचित क्वेरी, और आज आपके पास मौजूद पर्यायवाची, टाइपो-सहनशीलता, और इरादा हैंडलिंग का ईमानदार लेखा-जोखा लाएँ। प्रतिस्पर्धी खिंचाव प्रिसिज़न बनाम रीकॉल है: हर पर्यायवाची और एडिट डिस्टेंस की हर इकाई जो आप अनुमति देते हैं वह अधिक वास्तविक उपयोगकर्ताओं को पकड़ती है और अधिक शोर स्वीकार करती है, इसलिए सही निवेश वह है जिसे आप माप सकते हैं, न कि वह जो उदार लगता है। किसी बड़े या सार्वजनिक संगठन के लिए, विफल क्वेरी की लंबी पूँछ भी अपूर्ण आवश्यकता का एक नक्शा है, और इसे एक निश्चित समय-सारिणी पर समीक्षा करना एक सपोर्ट लागत को एक रोडमैप में बदल देता है, खासकर जहाँ किसी चूके हुए फ़ॉर्म या लाभ के किसी नागरिक के लिए वास्तविक परिणाम होते हैं।

  6. प्रासंगिकता को एक वित्तपोषित, चल रही ज़िम्मेदारी के रूप में कौन रखता है, और लॉन्च के बाद मूल्यांकन लूप कैसे जीवित रहेगा? खोज कभी पूरी नहीं होती: कैटलॉग बदलते हैं, भाषा बहती है, और पिछली तिमाही की ट्यूनिंग चुपचाप क्षीण होती जाती है, इसलिए जिस सिस्टम का कोई जवाबदेह स्वामी नहीं है वह उस दिशा में वापस लौटता है जो डिफ़ॉल्ट पैदा करते हैं। संगठन-चार्ट की वास्तविकता लाएँ: क्या प्रासंगिकता समय और मीट्रिक वाली एक नामित टीम है, या यह एक ऐसा कार्य है जो जिस किसी ने आखिरी बार इंडेक्स को छुआ उस पर आ पड़ता है, और क्या एक जजमेंट सूची और प्रयोग हार्नेस मौजूद है जिसे कोई नया व्यक्ति उठा सके? तनाव यह है कि प्रासंगिकता कार्य अनाकर्षक है और उस क्षण डीफ़ंड करना आसान है जब खोज काम करती हुई प्रतीत होती है, जो ठीक वही क्षण है जब क्षरण शुरू होता है। एंटरप्राइज़ और सरकारी संदर्भों में, स्वामित्व को ठोस दायित्वों से जोड़ें, प्रति-बाज़ार सटीकता, एक्सेसिबिलिटी, बहुभाषी कवरेज, और शून्य-परिणाम क्वेरी की समीक्षा, ताकि ज़िम्मेदारी ऑडिट करने योग्य हो और लॉन्च टीम बिखरने पर वाष्पित न हो।

क्षेत्र लेंस

स्टार्टअप। पहले दिन एक मैनेज्ड सर्च या वेक्टर सेवा के लिए पहुँचें और BM25 डिफ़ॉल्ट शिप करें; अपने खुद के क्लस्टर को तब तक खड़ा न करें जब तक आपके पास ट्यून करने के लिए क्वेरी न हों। उस एक खोज सतह को चुनें जो राजस्व या रिटेंशन को छूती है, पहली रिलीज़ से क्लिक स्थिति और शून्य-परिणाम दर को इंस्ट्रूमेंट करें, और वास्तविक क्वेरी लॉग को, न कि किसी रोडमैप को, यह बताने दें कि पर्यायवाची या सिमेंटिक परत कब जोड़नी है। खोज के लिए आप जो पुनर्प्राप्ति परत बनाते हैं वह बाद में आपका रिट्रीवल-ऑगमेंटेड जनरेशन बैकएंड बन जाती है, इसलिए इसे एक पतले इंटरफ़ेस के पीछे रखें।

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

एंटरप्राइज़। समस्या कई टीमों, कैटलॉग, और भाषाओं में बड़े पैमाने पर प्रासंगिकता है: एक साझा जजमेंट-सूची पद्धति, प्रति-बाज़ार मूल्यांकन, और एक वित्तपोषित प्रासंगिकता फ़ंक्शन ताकि हर समूह BM25 को शून्य से फिर से ट्यून न करे। इंडेक्सिंग पाइपलाइन, ताज़गी लक्ष्य, और उस प्रयोग अनुशासन को मानकीकृत करें जो रैंकिंग परिवर्तनों को गेट करता है, और शार्डिंग और रेप्लिकेशन को आदत के बजाय जानबूझकर आकार दें। बिल्ड बनाम बाय को स्पष्ट रूप से तौलें, क्योंकि एक मैनेज्ड वेक्टर सेवा कुछ नियंत्रण और संभावित लॉक-इन की कीमत पर परिचालन लागत घटा सकती है।

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

उदाहरण

स्टार्टअप। एक दस-सदस्यीय सॉफ़्टवेयर कंपनी अपने सपोर्ट नॉलेज बेस में खोज जोड़ती है ताकि ग्राहक स्वयं-सेवा कर सकें। वे BM25 डिफ़ॉल्ट से शुरू करते हैं और जल्दी ही एक सीमा से टकराते हैं: उपयोगकर्ता सादी भाषा में प्रश्न पूछते हैं जो लेखों के साथ कोई कीवर्ड साझा नहीं करते। वे वेक्टर एम्बेडिंग जोड़ते हैं और रेसिप्रोकल रैंक फ़्यूज़न से दोनों को फ़्यूज़ करते हैं, और डिफ़्लेक्शन रातों-रात सुधर जाता है। ट्यून करने के लिए, वे अपने स्वयं के क्वेरी लॉग की माइनिंग करते हैं, कुछ सौ क्वेरी-लेख जोड़ों को लेबल करते हैं, और साप्ताहिक क्लिक स्थिति ट्रैक करते हैं। जब वे बाद में एक इन-प्रोडक्ट असिस्टेंट जोड़ते हैं, तो वही पुनर्प्राप्ति परत RAG बैकएंड बन जाती है, इसलिए खोज निवेश दो बार भुगतान करता है।

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

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

व्यावसायिक मामला: प्रेरणाएँ, ROI, और TCO

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

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

एंटी-पैटर्न और नुकसान

  • बेमेल एनालिसिस: इंडेक्स-टाइम और क्वेरी-टाइम एनालाइज़र असहमत होते हैं, इसलिए टर्म्स चुपचाप मेल खाने में विफल हो जाते हैं और परिणाम बिना किसी त्रुटि के गायब हो जाते हैं।
  • राय से प्रासंगिकता: रैंकिंग जिसे जो सबसे ज़ोर से तर्क करता है वह ट्यून करता है, बिना किसी जजमेंट सूची, बिना किसी मीट्रिक, और रिग्रेशन पकड़ने का कोई तरीका नहीं।
  • केवल-वेक्टर आस्था: कीवर्ड खोज को पूरी तरह से एम्बेडिंग से बदलना, फिर सटीक ID, कोड, और दुर्लभ टर्म्स पर विफल होना।
  • शून्य परिणामों की अनदेखी: ढीला करने, सुझाव देने, या वापस गिरने के बजाय खाली परिणाम पन्नों को खड़ा रहने देना, और उपयोगकर्ता को खोना।
  • बासी इंडेक्स: एक रात का बैच पाइपलाइन जो कीमतें, स्टॉक, या मिटाव परोसता है जो उपयोगकर्ता देख सकते हैं गलत हैं।
  • रीइंडेक्स डाउनटाइम: अलायस के पीछे के बजाय जगह पर पुनर्निर्माण करना, हर स्कीमा परिवर्तन के दौरान खोज को ऑफ़लाइन ले जाना।
  • हमेशा के लिए बिना ट्यून किए डिफ़ॉल्ट: आउट-ऑफ़-द-बॉक्स BM25 शिप करना और संग्रह व जनसमुदाय के विकसित होने पर इसे कभी न देखना।
  • कोई प्रासंगिकता टेलीमेट्री नहीं: विलंबता और त्रुटियों की निगरानी करना लेकिन शून्य-परिणाम दर या क्लिक स्थिति की नहीं, ताकि खराब परिणाम चुपचाप विफल हों।
  • अत्यधिक उत्साही विस्तार: पर्यायवाची और टाइपो सहनशीलता को तब तक ढेर करना जब तक प्रिसिज़न ढह न जाए और हर क्वेरी शोर लौटाए।

परिपक्वता मॉडल

  • स्तर 1, आरंभ करें (Initiate): खोज एक डिफ़ॉल्ट डेटाबेस क्वेरी है या स्टॉक सेटिंग्स के साथ एक बिना ट्यून किया गया इंजन है, जिसे प्रतिक्रियात्मक रूप से तब खड़ा किया गया जब आखिरकार किसी ने इसके लिए पूछा। कोई प्रासंगिकता मापन नहीं है, कोई क्वेरी-अंडरस्टैंडिंग परत नहीं है, और ताज़गी वही है जो एक बैच जॉब पैदा करती है। खराब परिणाम तभी देखे जाते हैं जब उपयोगकर्ता शिकायत करते हैं, और हर फ़िक्स एक बार का समाधान है।
  • स्तर 2, विकसित करें (Develop): समझदार एनालिसिस, BM25 रैंकिंग, और बुनियादी फ़ेसेट्स व ऑटोकंप्लीट के साथ एक वास्तविक खोज इंजन मौजूद है। कुछ पर्यायवाची और टाइपो सहनशीलता मौजूद है, टीम विलंबता और त्रुटियाँ देखती है, और इसने शून्य-परिणाम क्वेरी को लॉग करना शुरू कर दिया है। प्रथाएँ टीम-दर-टीम और उत्पाद-दर-उत्पाद अलग होती हैं, और प्रासंगिकता अभी भी सबूत के बजाय राय से ट्यून की जाती है।
  • स्तर 3, मानकीकृत करें (Standardize): प्रासंगिकता प्रथा दस्तावेज़ीकृत है और पूरे संगठन में लगातार लागू होती है। टीमें एक साझा जजमेंट-सूची पद्धति और ऑफ़लाइन NDCG व ऑनलाइन क्लिक मीट्रिक से मापती हैं, जहाँ मददगार हो वहाँ हाइब्रिड लेक्सिकल-प्लस-वेक्टर पुनर्प्राप्ति चलाती हैं, इंडेक्सिंग पाइपलाइन को एक बताए गए ताज़गी लक्ष्य पर रखती हैं, और एक अलायस के पीछे बिना डाउनटाइम के रीइंडेक्स करती हैं। शार्डिंग और रेप्लिकेशन जानबूझकर आकार दिए जाते हैं, और प्रासंगिकता मीट्रिक को परिचालन मीट्रिक के साथ निगरानी किया जाता है।
  • स्तर 4, प्रबंधित करें (Manage): खोज को आधार रेखाओं के विरुद्ध मापा और नियंत्रित किया जाता है। हर खोज सतह एक सहमत आधार रेखा के विरुद्ध NDCG रुझान, शून्य-परिणाम दर, क्लिक स्थिति, और पुनर्रचना दर ट्रैक करती है, क्वेरी विलंबता पर्सेंटाइल और इंडेक्सिंग लैग पर सर्विस लेवल ऑब्जेक्टिव के साथ। रैंकिंग और एनालिसिस परिवर्तन तभी शिप होते हैं जब कोई नियंत्रित प्रयोग किसी नामित परिणाम पर नियंत्रण को हरा दे, एक प्रासंगिकता रिग्रेशन स्वचालित रूप से एक अलर्ट ट्रिप करता है, और प्रति-बाज़ार या प्रति-सेगमेंट डैशबोर्ड उपयोगकर्ताओं द्वारा महसूस किए जाने से पहले चुपचाप क्षरण को दृश्यमान बनाते हैं। किसी नॉब को बदलने के निर्णय डेटा पर आधारित होते हैं, स्पष्ट रोलबैक मानदंडों के साथ।
  • स्तर 5, ऑर्केस्ट्रेट करें (Orchestrate): खोज सुधार पूरे संगठन में एकीकृत एक निरंतर, प्रयोग-संचालित लूप है। जजमेंट सूचियाँ माइन किए गए क्वेरी लॉग से बढ़ती हैं, क्वेरी अंडरस्टैंडिंग वास्तविक भाषा के अनुकूल होती है, और पुनर्प्राप्ति को डाउनस्ट्रीम जनरेटिव अनुप्रयोगों की साझा नींव के रूप में ट्यून किया जाता है। पूरे सिस्टम को गति और प्रासंगिकता दोनों के लिए एंड टू एंड ऑब्ज़र्व किया जाता है, और खोज प्रथा कैटलॉग, भाषा, और मॉडल परिदृश्य के बहने पर स्वयं को पुनर्संतुलित करती है।

चर्चा के लिए विचार

  1. आपकी कितनी खोजें शून्य परिणाम लौटाती हैं या पुनर्रचना की ओर ले जाती हैं, और वे क्वेरी अपूर्ण आवश्यकता के बारे में क्या प्रकट करती हैं?
  2. यदि आपने कल कीवर्ड खोज को शुद्ध वेक्टर खोज से बदल दिया, तो कौन-सी क्वेरी टूट जाएँगी, और आपके उपयोगकर्ताओं से पहले आपको यह कैसे पता चलेगा?
  3. आपके संगठन में प्रासंगिकता का स्वामी कौन है, और क्या उनके पास एक जजमेंट सूची और मीट्रिक है, या केवल राय और उपाख्यान?
  4. आपके सिस्टम ऑफ़ रिकॉर्ड में किसी परिवर्तन से उस परिवर्तन के खोजने योग्य होने तक कितनी देरी है, और क्या यह हर डेटा प्रकार के लिए स्वीकार्य है?
  5. यदि कोई भाषा मॉडल आपके खोज परिणामों का उपभोग करता है, तो क्या आपकी पुनर्प्राप्ति गुणवत्ता उस उच्च मानदंड को पूरा करती है जिसकी एक जनरेटिव उत्तर मांग करता है?
  6. आप किसी संशयवादी हितधारक के सामने एक रैंकिंग परिवर्तन का बचाव कैसे करेंगे: एक प्रयोग परिणाम के साथ, या एक कहानी के साथ?

मुख्य निष्कर्ष

  • खोज को एक प्रथम-श्रेणी सिस्टम मानें: अपने स्वयं के डेटा मॉडल, पाइपलाइन, स्केलिंग, और विफलता विधाओं वाला एक व्युत्पन्न इंडेक्स, जो आपके सिस्टम ऑफ़ रिकॉर्ड से अलग हो।
  • किसी और चतुर चीज़ की ओर पहुँचने से पहले बुनियादी बातों (इनवर्टेड इंडेक्स, मेल खाती एनालिसिस, BM25 रैंकिंग, प्रिसिज़न बनाम रीकॉल) में महारत हासिल करें।
  • क्वेरी अंडरस्टैंडिंग (पर्यायवाची, टाइपो सहनशीलता, इरादा, और एक वास्तविक शून्य-परिणाम योजना) में निवेश करें क्योंकि उपयोगकर्ता कभी उस तरह टाइप नहीं करते जैसे आपके दस्तावेज़ पढ़े जाते हैं।
  • हाइब्रिड पुनर्प्राप्ति को डिफ़ॉल्ट बनाएँ जो लेक्सिकल और वेक्टर खोज को फ़्यूज़ करे, और याद रखें कि यही पुनर्प्राप्ति परत रिट्रीवल-ऑगमेंटेड जनरेशन की नींव है।
  • राय को मापन से बदलें: ऑफ़लाइन जजमेंट सूचियाँ और NDCG, ऑनलाइन क्लिक मीट्रिक और नियंत्रित प्रयोग, और प्रासंगिकता टेलीमेट्री जिसे किसी भी प्रोडक्शन संकेत की तरह निगरानी किया जाए।

संदर्भ और आगे पढ़ने के लिए

  • Christopher D. Manning, Prabhakar Raghavan, and Hinrich Schütze, Introduction to Information Retrieval
  • Stephen E. Robertson and Hugo Zaragoza, The Probabilistic Relevance Framework: BM25 and Beyond
  • Ricardo Baeza-Yates and Berthier Ribeiro-Neto, Modern Information Retrieval: The Concepts and Technology behind Search
  • Doug Turnbull and John Berryman, Relevant Search: With Applications for Solr and Elasticsearch
  • Trey Grainger, Doug Turnbull, and Max Irwin, AI-Powered Search
  • Patrick Lewis et al., “Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks”
  • Jeff Johnson, Matthijs Douze, and Hervé Jégou, “Billion-Scale Similarity Search with GPUs”
  • Kalervo Järvelin and Jaana Kekäläinen, “Cumulated Gain-Based Evaluation of IR Techniques”