Teams Retrieval-Augmented Generation (RAG) ला डेमोमधून प्रोडक्शन सर्व्हिसमध्ये नेण्याचा प्रयत्न करत असताना, त्यांना काही महत्त्वाचे निर्णय घ्यावे लागतात, जे एका उपयुक्त असिस्टंटला गोंधळ निर्माण करणाऱ्या असिस्टंटपासून वेगळे करतात. पाच डिझाइन निवडी—chunking, embedding model, vector store, hybrid search, आणि evaluation—वापरकर्त्यांना मिळणारा precision, recall, आणि latency नियंत्रित करतात.
प्रोटोटाइपमधून प्रोडक्शनमध्ये जाणे का महत्त्वाचे आहे
बहुतेक ट्युटोरियल्स काही ओळींच्या कोडमध्ये RAG पाइपलाइन कार्यान्वित करतात, परंतु लाईव्ह ट्रॅफिकसाठी आवश्यक असलेल्या इंजिनिअरिंग शिस्तीपर्यंत (engineering rigor) ते पोहोचत नाहीत.
1. Chunking strategy – पहिला क्वालिटी गेट
Chunk size सर्वात महत्त्वाचा असतो. मोठे chunks असो तर त्यामध्ये असणारा मुख्य सिग्नल असंबद्ध मजकुरामुळे दबला जातो; तर खूप लहान chunks मुळे मॉडेलला सुसंगत उत्तरे तयार करण्यासाठी आवश्यक असलेला आजूबाजूचा संदर्भ (context) मिळत नाही. Fixed-size splitting मुळे मूळ साहित्याची नैसर्गिक रचना दुर्लक्षित होते.
व्यावहारिक नियम (Practical rule-of-thumb)
- लॉजिकल बाउंड्रीजवर विभागणी करा: डॉक्युमेंट्समधील हेडर्स, आर्टिकल्समधील पॅराग्राफ ब्रेक, कोडमधील फंक्शन डेफिनिशन्स.
- Chunks इतके लहान ठेवा की अचूक रिट्रिव्हल (retrieval) होईल, परंतु LLM च्या जनरेशन स्टेपसाठी मोठा 'पॅरेंट सेक्शन' (parent section) राखून ठेवा. ही “parent-child” पद्धत रिट्रिव्हरला नेमका तुकडा (snippet) शोधू देते, तर जनरेटरला वस्तुनिष्ठ राहण्यासाठी पुरेसा संदर्भ मिळतो.
2. Embedding models – साम्य (similarity) कसे ठरवले जाते
Embedding model मजकुराचे वेक्टर्समध्ये रूपांतर करते, ज्याची तुलना सिमिलॅरिटी सर्च इंजिन करते. OpenAI चे text-embedding-3-large सारखे मजबूत जनरल-पर्पज मॉडेल बहुतेक डोमेन्ससाठी एक भक्कम बेसलाईन देते. जर तुमचा डेटा अत्यंत विशेष क्षेत्रातील असेल—जसे की कायदेशीर मते (legal opinions), वैद्यकीय रेकॉर्ड्स, तांत्रिक तपशील—तर डोमेन-विशिष्ट मॉडेल तपासा, परंतु ते तुमच्या स्वतःच्या डेटावर प्रत्यक्ष सुधारणा (tangible lift) मोजल्यानंतरच वापरा.
कधी बदलणे आवश्यक आहे
- केवळ तेव्हाच बदला जेव्हा तुम्हाला तुमच्या ॲप्लिकेशनसाठी महत्त्वाच्या रिलेव्हन्स स्कोर्समध्ये (उदा. उच्च context precision) मोजण्यायोग्य वाढ दिसून येईल.
3. Vector database – स्टोअरचे स्केलिंग करणे
तुमच्या सध्याच्या इन्फ्रास्ट्रक्चरला आणि अपेक्षित वेक्टर संख्येला साजेसे vector store निवडा.
- pgvector PostgreSQL मध्ये चालते आणि सुमारे दहा लाख वेक्टर्स सहज हाताळू शकते. जे संघ आधीच रिलेशनल डेटाबेस वापरत आहेत आणि ज्यांना कमी देखभालीचे (low-maintenance) सोल्यूशन हवे आहे, त्यांच्यासाठी हे आदर्श आहे.
- Qdrant हे 1M–100M च्या रेंजमध्ये उत्तम काम करते, मोठ्या कॉर्पससाठी उच्च थ्रूपुट (throughput) आणि कमी लेटन्सी (latency) प्रदान करते.
- Pinecone पूर्णपणे मॅनेज्ड क्लाउड सर्व्हिस प्रदान करते, ज्यामुळे सेल्फ-होस्टिंगचा ऑपरेशनल भार कमी होतो.
4. Hybrid search आणि reranking – अर्थ आणि अचूकता यांचा समतोल
शुद्ध वेक्टर सर्च सिमेंटिक साम्यामध्ये (semantic similarity) उत्कृष्ट असते, परंतु वापरकर्त्यांना अपेक्षित असलेले नेमके कीवर्ड मॅचेस (keyword matches) कदाचित सुटू शकतात. Hybrid search वेक्टर इंडेक्सवर पारंपारिक BM25 कीवर्ड इंडेक्सचा थर लावते आणि नंतर दोन्ही रिझल्ट लिस्ट एकत्र करते. Reciprocal Rank Fusion (RRF) दोन्ही लिस्टमधील रँकच्या आधारावर प्रत्येक उमेदवाराला स्कोअर देते आणि त्यांना एकत्रित करते, ज्यामुळे दोन्हीपैकी कोणत्याही लिस्टमध्ये वरच्या क्रमांकावर असलेल्या गोष्टींना प्राधान्य मिळते.
Reranking एक अंतिम अचूकता फिल्टर (precision filter) जोडते. हायब्रिड रिट्रिव्हलनंतर, टॉप-N (सामान्यतः 50) उमेदवारांना cross-encoder कडे पाठवा—हे एक असे मॉडेल आहे जे क्वेरी-डॉक्युमेंट जोडीला एकत्रितपणे स्कोअर देते. क्रॉस-एनकोडरचे स्कोर्स मूळ सिमिलॅरिटी नंबर्सची जागा घेतात, ज्यामुळे तुम्ही LLM कडे पाठवण्यापूर्वी सर्वात संबंधित chunk निवडू शकता. ही अतिरिक्त पायरी अनेकदा उत्तराच्या गुणवत्तेत लक्षणीय सुधारणा करते, विशेषतः लांब किंवा गोंधळलेल्या (noisy) कॉर्पससाठी.
5. Evaluation आणि abstention – महत्त्वाच्या गोष्टी मोजणे
तुम्ही ज्या सिस्टमचे मोजमाप करत नाही, ती तुम्ही सुधारू शकत नाही. RAGAS फ्रेमवर्क चार मेट्रिक्स सुचवते जे एकत्रितपणे RAG पाइपलाइनचे आरोग्य दर्शवतात:
- Context Precision – रिट्रिव्ह केलेल्या chunks पैकी प्रत्यक्षात उत्तर असलेल्या chunks प्रमाण.
- Context Recall – रिट्रिव्ह केलेल्या सर्व संबंधित chunks चा हिस्सा.
- Faithfulness – जनरेट केलेले उत्तर रिट्रिव्ह केलेल्या संदर्भाच्या (context) मर्यादेत राहते आणि हॅलुसिनेशन (hallucinations) टाळते, त्या प्रमाणात.
- Answer Relevance – अंतिम उत्तर मूळ क्वेरीला किती चांगल्या प्रकारे समाधान देते.
प्रोडक्शन ट्रॅफिकचे प्रतिबिंब दर्शवणाऱ्या रोलिंग टेस्ट सेटवर या मेट्रिक्सचा मागोवा घ्या.
एक अंतिम, अनेकदा दुर्लक्षित सुरक्षा उपाय म्हणजे abstention. मॉडेलला कमी आत्मविश्वासाने उत्तर देण्यास भाग पाडण्याऐवजी, faithfulness किंवा relevance स्कोअरवर एक थ्रेशोल्ड (threshold) सेट करा जो “मला माहित नाही” असा प्रतिसाद देईल. वापरकर्ते आत्मविश्वासाने दिलेल्या चुकीच्या उत्तरापेक्षा अनिश्चिततेची स्पष्ट कबुली देण्याला पसंती देतात, आणि हा पर्याय पुढील सपोर्ट खर्च कमी करतो.
या पाच क्षेत्रांपैकी प्रत्येक क्षेत्राकडे केवळ 'सेट-अँड-फॉर्गेट' कॉन्फिगरेशन म्हणून न पाहता एक निर्णय बिंदू (decision point) म्हणून पहा, आणि तुम्ही RAG ला एका झगमगीत डेमोमधून एका विश्वासार्ह प्रोडक्शन सर्व्हिसमध्ये बदलू शकता. याचे फळ: एक अशी सिस्टम जी वेगाने उत्तरे देते, विषयावर राहते आणि कधी शांत राहावे हे देखील तिला माहित असते.
