osFoundry / Platform
MMR विविधता
Maximal Marginal Relevance ऐसे परिणाम चुनता है जो अलग-अलग कोण कवर करते हैं, सिर्फ़ शीर्ष मैच नहीं।
यह क्या है
MMR डाइवर्सिटी osFoundry का एक रिट्रीवल स्टेज है जो आपके नॉलेज बेस पर क्वेरी चलने पर Maximal Marginal Relevance लागू करता है। सिर्फ़ रेलेवेंस के आधार पर रैंकिंग की एक जानी-मानी कमज़ोरी है: टॉप नतीजे अक्सर आपस में लगभग डुप्लिकेट होते हैं, क्योंकि वे सभी एक ही तरीक़े से क्वेरी से मैच करते हैं। अगर पाँच चंक एक ही पैराग्राफ़ को दोहराते हैं, तो उनमें से चार कॉन्टेक्स्ट-विंडो की जगह बर्बाद करते हैं और मॉडल को सवाल का दूसरा या तीसरा पहलू कभी दिखता ही नहीं। MMR इसे यों ठीक करता है: वह हर कैंडिडेट को दो आधारों पर स्कोर करता है, क्वेरी से उसकी रेलेवेंस और पहले से चुने गए चंक से उसकी असमानता, और फिर ऐसे नतीजे चुनता है जो रेलेवेंट *भी* हों और आपस में अलग *भी*।
osFoundry के भीतर, MMR उस कस्टम RAG पाइपलाइन का एक स्टेज है जिसे आप osStudio में हर चैट Path के लिए बनाते हैं। कोई क्वेरी पहले हाइब्रिड रिट्रीवल से गुज़रती है (एम्बेडिंग सर्च के साथ BM25 कीवर्ड सर्च); फिर आप फ़िल्टर और रीरैंक स्टेज जोड़ सकते हैं, और MMR को उनके बाद रख सकते हैं ताकि वह पहले से ही उच्च-गुणवत्ता वाले कैंडिडेट सेट को डाइवर्सिफ़ाई करे। यह स्टेज MMR के मानक कंट्रोल देता है: एक lambda पैरामीटर जो शुद्ध रेलेवेंस और शुद्ध डाइवर्सिटी के बीच स्लाइड करता है, वह कैंडिडेट पूल जिसका आकार वह चुनता है, और वह कितने चंक प्रॉम्प्ट में भेजता है। चूँकि हर स्टेज एक वर्शन्ड, JSON Schema से वैलिडेटेड कॉन्फ़िग है, इसलिए एक कोड-चैट Path और एक कस्टमर-सक्सेस Path अलग-अलग तरीक़े से डाइवर्सिफ़ाई कर सकते हैं, और आप सोर्स कोड को छुए बिना किसी बदलाव को रोलबैक कर सकते हैं।
यह सबसे ज़्यादा तब मायने रखता है जब सवाल व्यापक या अस्पष्ट हों, और जब कॉर्पस में शब्दावली एक-दूसरे से ओवरलैप करती हो, जहाँ टॉप एम्बेडिंग हिट एक ही जगह घनी होकर जमा हो जाते हैं। MMR टॉप-1 की कच्ची रेलेवेंस थोड़ी छोड़कर बदले में कवरेज हासिल करता है, जो आम तौर पर बेहतर आधार वाले जवाब देता है, क्योंकि मॉडल को वह दायरा दिखता है जो नॉलेज बेस में असल में मौजूद है। यह osFoundry के BYOK और local-first रुख़ के साथ मेल खाता है: रिट्रीवल और डाइवर्सिफ़िकेशन आपके workspace में चलते हैं, एम्बेडिंग एक मैनेज्ड Voyage प्रॉक्सी या आपकी अपनी key से गुज़रती हैं, और कोई पर-सीट फ़ीस पाइपलाइन पर रोक नहीं लगाती।
मुख्य क्षमताएँ
- आपकी रिट्रीवल पाइपलाइन में एक MMR (Maximal Marginal Relevance) स्टेज जोड़ता है जो रेलेवेंस और रिडंडेंसी को संतुलित करता है, ताकि टॉप नतीजे टॉप मैच को दोहराने के बजाय अलग-अलग पहलू कवर करें
- osStudio में हर Path के लिए MMR कॉन्फ़िगर करें: रेलेवेंस/डाइवर्सिटी के बीच का lambda ट्रेडऑफ़, कैंडिडेट पूल का आकार, और कितने अंतिम चंक प्रॉम्प्ट तक पहुँचें, यह तय करें
- retrieve, filter और rerank स्टेज के बाद चेन होता है, इसलिए MMR कच्चे एम्बेडिंग हिट के बजाय पहले से रैंक किए गए कैंडिडेट सेट को डाइवर्सिफ़ाई करता है
- हाइब्रिड एम्बेडिंग + BM25 रिट्रीवल के नतीजों पर चलता है, जहाँ Voyage एम्बेडिंग मैनेज्ड प्रॉक्सी या BYOK के तहत आपकी अपनी keys से उपलब्ध हैं
- हर MMR कॉन्फ़िग एक JSON Schema-वैलिडेटेड, वर्शन्ड osStudio कॉन्फ़िग है जिसमें रोलबैक शामिल है, इसलिए अलग-अलग चैट सरफ़ेस सोर्स कोड बदले बिना अलग-अलग तरह से डाइवर्सिफ़ाई कर सकते हैं
उपयोग के मामले
- सपोर्ट इंजीनियर: एक व्यापक ट्रबलशूटिंग सवाल पाँच लगभग एक जैसे चंक लौटाता है; MMR उन जगहों को अलग-अलग कारणों से भरता है ताकि जवाब एक से ज़्यादा फ़ेल्योर मोड कवर करे
- रिसर्चर: एक बड़े डॉक्यूमेंट सेट पर क्वेरी, जहाँ टॉप एम्बेडिंग हिट एक ही सेक्शन में जमा हो जाते हैं; MMR कॉर्पस के अलग-अलग हिस्सों से पैसेज सामने लाता है ताकि संश्लेषण ज़्यादा पूर्ण हो
- osStudio पाइपलाइन बिल्डर: एक कोड-चैट Path पर MMR का lambda सख़्त रेलेवेंस के लिए ट्यून करता है, जबकि एक डिस्कवरी Path को ज़्यादा डाइवर्स छोड़ देता है, यह सब रोलबैक वाली वर्शन्ड कॉन्फ़िग के रूप में
सामान्य प्रश्न
Maximal Marginal Relevance (MMR) क्या है और मैं इसे RAG में क्यों जोड़ूँ?
MMR एक सिलेक्शन तरीक़ा है जो कैंडिडेट पैसेज को क्वेरी से रेलेवेंस के आधार पर रैंक करता है, साथ ही पहले से चुने पैसेज से समानता पर पेनल्टी लगाता है। आप इसे तब जोड़ते हैं जब आपके टॉप रिट्रीवल नतीजे अक्सर लगभग डुप्लिकेट होते हैं: MMR के बिना, एक व्यापक सवाल पाँच ऐसे चंक लौटा सकता है जो एक ही बात कहते हैं, और मॉडल सिर्फ़ एक पहलू देखता है। MMR सबसे रेलेवेंट चंक रखता है, पर बाकी जगहें अलग और पूरक पैसेज से भरता है।
osFoundry में MMR डाइवर्सिटी कैसे चालू करूँ?
MMR उस कस्टम RAG पाइपलाइन का एक स्टेज है जिसे आप osStudio में हर चैट Path के लिए कॉन्फ़िगर करते हैं। आप MMR स्टेज को अपने retrieve, filter और वैकल्पिक rerank स्टेज के बाद जोड़ते हैं, फिर उसका lambda (रेलेवेंस-बनाम-डाइवर्सिटी ट्रेडऑफ़), वह कैंडिडेट पूल जिससे वह खींचता है, और अंतिम चंक की संख्या तय करते हैं। कॉन्फ़िग JSON Schema से वैलिडेटेड और वर्शन्ड है, इसलिए आप इसे ट्यून कर सकते हैं, एक Path पर टेस्ट कर सकते हैं, और ज़रूरत पड़ने पर रोलबैक कर सकते हैं।
MMR एक रीरैंकर से कैसे अलग है?
एक रीरैंकर कैंडिडेट को सिर्फ़ इस आधार पर फिर से स्कोर करता है कि हर एक क्वेरी से कितना अच्छा मैच करता है, जिससे टॉप-k प्रिसिज़न बेहतर होता है। MMR एक अलग लक्ष्य ऑप्टिमाइज़ करता है: यह चुने गए सेट में रिडंडेंसी घटाते हुए रेलेवेंस बढ़ाता है। ये दोनों पूरक हैं: osFoundry में आप आम तौर पर पहले रीरैंक करते हैं ताकि सबसे अच्छे मैच वाले कैंडिडेट मिलें, फिर MMR लगाते हैं ताकि जो चंक आगे जाएँ वे एकमात्र सबसे अच्छे मैच को दोहराने के बजाय अलग-अलग पहलू कवर करें।