इस लेख को साझा करें
आधुनिक बड़े भाषा मॉडल (LLMs) प्रभावशाली हैं, लेकिन उनकी एक बड़ी सीमा है: उनका ज्ञान उनके वेट्स में स्थिर होता है, जिससे उनके ज्ञान को अपडेट करना और विस्तारित करना मुश्किल हो जाता है। रिट्रीवल-ऑगमेंटेड जेनरेशन (RAG) इस समस्या को हल करने के लिए डिज़ाइन किया गया एक दृष्टिकोण है। मेटा द्वारा 2020 में पेश किया गया, यह एक भाषा मॉडल को बाहरी ज्ञान आधार (उदाहरण के लिए, दस्तावेजों का एक सेट) से जोड़ता है ताकि यह अपने प्रतिक्रियाओं में अद्यतित और विशिष्ट जानकारी शामिल कर सके। व्यवहार में, पूछे गए प्रत्येक प्रश्न के लिए, RAG सिस्टम पहले अपने दस्तावेज़ आधार से प्रासंगिक सामग्री निकालता है, फिर इस प्राप्त संदर्भ को LLM की भाषाई क्षमताओं के साथ जोड़कर एक प्रतिक्रिया उत्पन्न करता है।
नोट: इस लेख में उल्लिखित उदाहरण परियोजना का पूरा स्रोत कोड GitHub पर उपलब्ध है।
RAG क्या है और इसका उपयोग क्यों करें?
RAG प्रणाली की वास्तुकला
TypeScript के साथ व्यावहारिक कार्यान्वयन
कोड विश्लेषण और सर्वोत्तम अभ्यास
तकनीकी स्टैक के लाभ
आगे बढ़ते हुए
रिट्रीवल-ऑगमेंटेड जेनरेशन (RAG) का शाब्दिक अर्थ है "पुनर्प्राप्ति द्वारा संवर्धित पीढ़ी।" विचार ज्ञान को मॉडल से अलग करना है। सभी जानकारी को एक LLM के मापदंडों में शामिल करने की कोशिश करने के बजाय (महंगे फाइन-ट्यूनिंग के माध्यम से) या एक शास्त्रीय मॉडल डिजाइन करना जो डेटा से प्रतिक्रियाओं की भविष्यवाणी करेगा, हम मुख्य मॉडल को टेक्स्ट उत्पन्न करने देते हैं और इसे सूचना पुनर्प्राप्ति के एक मध्यवर्ती चरण के साथ बढ़ाते हैं। एक विशिष्ट RAG पाइपलाइन निम्नानुसार काम करती है:
यह प्रक्रिया मॉडल को पीढ़ी के समय विशिष्ट बाहरी ज्ञान पर भरोसा करने की अनुमति देती है, बिना इसे स्थायी रूप से याद किए। इसकी तुलना एक ऐसे इंसान से की जा सकती है, जो किसी प्रश्न का सामना करने पर, उत्तर देने से पहले पुस्तकों या संदर्भ दस्तावेजों से परामर्श करेगा: LLM बोलने से पहले "अपनी लाइब्रेरी खोजता है"।
RAG दृष्टिकोण विशेष रूप से तब उपयोगी होता है जब एक संवादी सहायक को एक विकसित या विशाल ज्ञान आधार को संभालने की आवश्यकता होती है। यहाँ ठोस उपयोग के मामलों के कुछ उदाहरण दिए गए हैं जहाँ RAG शास्त्रीय तरीकों की तुलना में उत्कृष्ट है:
वृत्तचित्र चैटबॉट: एक कंपनी के तकनीकी प्रलेखन द्वारा संचालित एक सहायक, जो डेवलपर्स या ग्राहकों के सवालों का जवाब सीधे मैनुअल, आंतरिक ज्ञान आधारों, या यहां तक कि स्रोत कोड से प्राप्त करके दे सकता है। उदाहरण के लिए, मॉडल को API विनिर्देशों या ओपन-सोर्स प्रोजेक्ट कोड से जोड़ा जा सकता है ताकि यह समझाया जा सके कि कोई फ़ंक्शन कैसे काम करता है या किसी निश्चित डिज़ाइन का कारण क्या है।
गतिशील FAQs: ग्राहक सहायता संदर्भ में, एक RAG चैटबॉट नवीनतम नीतियों या उत्पाद डेटा के आधार पर सामान्य प्रश्नों (FAQs) का उत्तर दे सकता है। यदि कोई नीति (जैसे, वापसी की शर्तें) बदलती है, तो आपको केवल संदर्भ दस्तावेज़ को अपडेट करने की आवश्यकता है और बॉट इसे तुरंत ध्यान में रखेगा, बिना किसी पुनर्प्रशिक्षण की आवश्यकता के। इसके परिणामस्वरूप हमेशा अद्यतित FAQs होते हैं, जिसमें उत्तर का समर्थन करने के लिए जानकारी का स्रोत प्रदान करने की क्षमता होती है।
कानूनी सहायक: एक सहायक वकीलों या कानूनी पेशेवरों की मदद कर सकता है, किसी दिए गए प्रश्न के लिए कानूनों, केस लॉ, या अनुबंधों के डेटाबेस में प्रासंगिक अंशों को ढूंढकर, फिर प्राकृतिक भाषा में उत्तर तैयार करके। मॉडल को पूरे सिविल कोड को दिल से जानने की आवश्यकता नहीं है; इसे बस उपयुक्त लेखों को देखने की जरूरत है। यही बात एक चिकित्सा सहायक पर भी लागू होती है, जो नवीनतम नैदानिक ज्ञान के आधार पर उत्तर प्रदान करने के लिए वैज्ञानिक प्रकाशनों या चिकित्सा प्रोटोकॉल के डेटाबेस से पूछताछ कर सकता है।
प्रोग्रामिंग सहायक: यह हमारी उदाहरण परियोजना का मामला है – एक सहायक जो कोड रिपॉजिटरी की सामग्री जानता है और इस कोड के बारे में सवालों का जवाब दे सकता है (वास्तुकला, एक मॉड्यूल की भूमिका, संभावित बग, आदि)। एक विशेष प्रोग्रामिंग मॉडल को प्रशिक्षित करने के बजाय, हम रिपॉजिटरी में प्रासंगिक कोड फ़ाइलों की खोज द्वारा संवर्धित एक सामान्यवादी LLM का उपयोग करते हैं।
एक पूर्ण RAG प्रणाली में आमतौर पर निम्नलिखित घटक शामिल होते हैं:
अनुक्रमण और भंडारण
क्वेरी पाइपलाइन
पीढ़ी और पोस्ट-प्रोसेसिंग
typescript
हमारे कार्यान्वयन के लिए, हमने एक आधुनिक और प्रदर्शनकारी स्टैक चुना है:
यह संयोजन प्रदर्शन, विकास में आसानी और लचीलेपन के बीच एक उत्कृष्ट संतुलन प्रदान करता है।
आइए अपनी परियोजना शुरू करके शुरू करें:
bash
typescript
अनुक्रमण RAG प्रणाली में एक महत्वपूर्ण कदम है। इसमें कच्चे दस्तावेजों को उचित आकार के टुकड़ों में बदलना, फिर प्रत्येक टुकड़े के लिए एम्बेडिंग उत्पन्न करना शामिल है।
typescript
typescript
typescript
दस्तावेजों को टुकड़ों में विभाजित करना एक महत्वपूर्ण कदम है जो सीधे परिणामों की गुणवत्ता को प्रभावित करता है। कुछ सर्वोत्तम अभ्यास:
सिमेंटिक खोज की गुणवत्ता आवश्यक है:
प्रॉम्प्ट निर्माण एक कला है जो प्रतिक्रियाओं की गुणवत्ता को दृढ़ता से प्रभावित करती है:
typescript
Bun इस प्रकार के अनुप्रयोग के लिए महत्वपूर्ण लाभ प्रदान करता है:
LangChain LLM-आधारित अनुप्रयोगों के विकास को बहुत सुगम बनाता है:
Ollama बड़ी लचीलेपन के साथ स्थानीय रूप से भाषा मॉडल चलाने की अनुमति देता है:
Qdrant सिमेंटिक खोज के लिए डिज़ाइन किया गया एक आधुनिक वेक्टर डेटाबेस है:
RAG प्रणाली की गुणवत्ता को मापने के लिए:
रिट्रीवल-ऑगमेंटेड जेनरेशन एक बड़ी प्रगति का प्रतिनिधित्व करता है कि हम विशिष्ट उपयोग के मामलों के लिए भाषा मॉडल का लाभ कैसे उठा सकते हैं। ज्ञान को पीढ़ी मॉडल से अलग करके, RAG AI सहायकों के निर्माण को सक्षम बनाता है जो अधिक सटीक, अधिक अद्यतित और अधिक पारदर्शी होते हैं।
TypeScript, Bun, LangChain, Ollama, और Qdrant के साथ हमारा कार्यान्वयन दर्शाता है कि अब आधुनिक और सुलभ प्रौद्योगिकियों के साथ प्रदर्शनकारी RAG सिस्टम बनाना संभव है। यह दृष्टिकोण AI सहायकों की एक नई पीढ़ी के लिए मार्ग प्रशस्त करता है जो बड़े भाषा मॉडल की तरलता और सुसंगतता बनाए रखते हुए विशिष्ट ज्ञान आधारों पर तर्क करने में सक्षम हैं।
GitHub पर पूरा स्रोत कोड एक्सप्लोर करने और इसे अपने स्वयं के उपयोग के मामलों में अनुकूलित करने के लिए स्वतंत्र महसूस करें। RAG एक विकसित हो रही तकनीक है, और इस रोमांचक क्षेत्र में नवाचार के कई अवसर हैं।
Sébastien TIMONER
वेब विकास और तकनीकी टीम प्रबंधन में विशेषज्ञ, मैं प्रभावी डिजिटल समाधानों के निर्माण और अनुकूलन में विशेषज्ञता रखता हूं। React.js, Node.js, TypeScript, Symfony और IoT के लिए Zephyr OS जैसी आधुनिक तकनीकों की गहरी समझ के साथ, मैं offroadLabs में विभिन्न क्षेत्रों की कंपनियों के लिए जटिल SaaS और IoT परियोजनाओं की सफलता सुनिश्चित करता हूं, डिजाइन से लेकर प्रोडक्शन तक।
offroadLabs में, मैं तकनीकी विशेषज्ञता और सहयोगात्मक दृष्टिकोण को जोड़ते हुए कस्टम विकास सेवाएं प्रदान करता हूं। चाहे एक नवीन SaaS समाधान बनाना हो, Zephyr OS के साथ IoT सिस्टम विकसित करना हो, मौजूदा एप्लिकेशन को आधुनिक बनाना हो, या एक टीम के कौशल विकास में सहायता करना हो, मैं प्रत्येक परियोजना की विशिष्ट आवश्यकताओं के अनुरूप मजबूत और प्रभावी समाधान प्रदान करने के लिए प्रतिबद्ध हूं।
मैं ऐक्स-एन-प्रोवेंस के आसपास या पूर्ण रिमोट असाइनमेंट के लिए उपलब्ध हूं।