युनिट 1 / 11

RAG म्हणजे काय आणि ते का आवश्यक आहे?

नफा:

  • आरएजी मॉडेलचे वजन न बदलता संदर्भ इंजेक्ट करते आणि 'ओपन बुक परीक्षा' लॉजिकसह कार्य करते हे स्पष्ट करणे
  • RAG ची तुलना किंमत, समयसूचकता आणि वापर परिस्थितीनुसार फाइन-ट्यूनिंग आणि दीर्घ संदर्भ दृष्टिकोनासह करणे
  • अनुक्रमणिका आणि क्वेरी टप्प्यांचा समावेश असलेल्या विशिष्ट RAG पाइपलाइनच्या चरणांची यादी करणे

भाषा मॉडेल कितीही शक्तिशाली असले तरीही (मजकूर समजून घेणारी आणि तयार करणारी कृत्रिम बुद्धिमत्ता; आम्ही त्याला आतापासून थोडक्यात मॉडेल म्हणू) असो, त्याला तुमच्या कंपनीने काल केलेला करार, तुमचे अंतर्गत विकी (अंतर्गत ज्ञान आधार) पृष्ठ किंवा आज सकाळी प्रकाशित केलेली रिलीझ नोट माहीत नसते. मॉडेल प्रशिक्षित झाल्याच्या तारखेपर्यंत सामान्य ज्ञानापर्यंत मर्यादित आहे; याला "शिक्षण कट ऑफ डेट" म्हणतात. RAG (Retrieval-Augmented Generation) नेमकी ही पोकळी भरून काढते: ते प्रश्नाशी संबंधित कंपनीचे दस्तऐवज शोधते, ते मॉडेलला संदर्भ म्हणून देते (म्हणजेच उत्तर तयार करताना तो वाचलेला अतिरिक्त मजकूर) आणि या संदर्भावर आधारित उत्तर तयार केले आहे.

या युनिटमध्ये, आम्ही स्पष्टपणे पाहू की RAG म्हणजे काय, कोणत्या पर्यायांना प्राधान्य दिले जाते आणि विशिष्ट RAG पाइपलाइनच्या पायऱ्या. त्यानंतरची सर्व एकके या नकाशाचे भाग एक एक करून खोल करतील.

RAG ची मूलभूत कल्पना: ओपन बुक परीक्षा

चला एका वाक्यात RAG चे स्पष्टीकरण देऊ: "प्रथम संबंधित दस्तऐवज शोधा, नंतर मॉडेलला ते दस्तऐवज वाचण्यास सांगा आणि त्यानुसार उत्तर मुद्रित करा."

सर्वात उपयुक्त साधर्म्य हे आहे: RAG मॉडेलला “बंद पुस्तक परीक्षा” वरून “ओपन बुक परीक्षा” मध्ये हलवते. बंद पुस्तक परीक्षेत विद्यार्थी केवळ आठवणीतूनच उत्तरे देतात; तुम्हाला जे आठवत नाही ते बनवण्याचा धोका जास्त असतो. खुल्या पुस्तकाच्या परीक्षेत विद्यार्थी त्याच्या समोर ठेवलेल्या स्त्रोताकडे पाहून उत्तरे देतो. RAG मध्ये, मॉडेल यापुढे त्याच्या स्वतःच्या मेमरीमधून उत्तर देत नाही, परंतु आपण दिलेल्या वर्तमान आणि विशिष्ट मजकूरावरून.

गंभीर मुद्दा: RAG मॉडेलचे वजन बदलत नाही, म्हणजेच मॉडेलने शिकलेले अब्जावधी संख्यात्मक पॅरामीटर्स. तुम्ही मॉडेलला पुन्हा प्रशिक्षण देत नाही. प्रत्येक प्रश्नासाठी, तुम्ही त्या प्रश्नाशी संबंधित मजकूराचे भाग प्रॉम्प्टमध्ये इंजेक्ट करता (मॉडेलला पाठवलेला सूचना मजकूर). त्यामुळे दस्तऐवज अद्यतनित केल्यावर तुम्हाला मॉडेलला पुन्हा प्रशिक्षण देण्याची गरज नाही; तुम्ही फक्त शोध डेटाबेसमधील संबंधित रेकॉर्ड रिफ्रेश करा.

सूचना: दोन प्रश्न RAG ची गुणवत्ता निर्धारित करतात: (1) तुम्हाला योग्य दस्तऐवज सापडला का? (2) मॉडेलने ते बरोबर वाचले आहे का? पहिली "पुनर्प्राप्ती गुणवत्ता" आहे, दुसरी "जनरेशन गुणवत्ता" आहे. दोन स्वतंत्रपणे मोजले जातात आणि सुधारले जातात.

RAG, फाइन-ट्यूनिंग किंवा दीर्घ संदर्भ?

संघटनात्मक समस्येवर उपाय शोधताना तीन मार्ग अनेकदा गोंधळलेले असतात. चला त्यांच्यातील फरक स्पष्ट करूया. फाइन-ट्यूनिंग म्हणजे मॉडेलचे वजन तुमच्या डेटासह अपडेट करणे आणि नवीन वर्तन/शैली शिकवणे. दीर्घ संदर्भ म्हणजे कोणत्याही निवडीशिवाय सर्व कागदपत्रे थेट प्रॉम्प्टमध्ये भरणे.

दृष्टीकोन

काय करते

ते केव्हा योग्य आहे?

खर्च / जोखीम

रॅग

संदर्भ म्हणून संबंधित दस्तऐवज इंजेक्ट करते

वारंवार बदलणारी, विस्तृत, विशिष्ट माहिती

कमी; अद्यतनित करणे सोपे आहे, स्त्रोत उद्धृत केले जाऊ शकते

फाइन-ट्यूनिंग

नवीन डेटासह वजन अद्यतनित करते

निश्चित शैली/स्वरूप/भाषा शिकवणे

उंच; प्रत्येक अद्यतनासह पुन्हा प्रशिक्षण आवश्यक आहे

फक्त दीर्घ संदर्भ

प्रॉम्प्टमध्ये सर्व कागदपत्रे भरते

लहान, स्थिर दस्तऐवज सेट

टोकनची किंमत आणि "मधला भाग गमावण्याचा" धोका वाढतो

नियमानुसार: फाइन-ट्यूनिंग मॉडेल कसे बोलायचे ते शिकवते; RAG मॉडेलला काय माहित आहे ते सांगते. बऱ्याच एंटरप्राइझ परिस्थितींमध्ये, RAG प्रथम वापरला जातो कारण तो स्वस्त, अपडेट करण्यायोग्य आहे आणि उत्तराचा स्त्रोत दर्शवू शकतो. दस्तऐवज संच खरोखरच लहान आणि निश्चित असल्यास लांब संदर्भ वाजवी आहे (उदा. एकल 20-पृष्ठ मॅन्युअल); परंतु हजारो पृष्ठांसह, ते महाग आहे आणि मॉडेल लांब मजकुराच्या मध्यभागी माहिती गमावू शकते.

एक नमुनेदार RAG पाइपलाइन

RAG मध्ये दोन मुख्य टप्पे असतात: अनुक्रमणिका (तयारी, एकदा किंवा वेळोवेळी केली जाते) आणि क्वेरी (प्रत्येक वापरकर्त्याच्या प्रश्नावर चालते).

चरण-दर-चरण अनुक्रमणिका (ऑफलाइन, वापरकर्ता प्रतीक्षा न करता):

  1. संकलित करा: स्त्रोतांकडून दस्तऐवज काढा (पीडीएफ, विकी, तिकीट प्रणाली, डेटाबेस, ईमेल).
  2. चंकिंग: लांब मजकूर लहान आटोपशीर तुकड्यांमध्ये खंडित करा.
  3. एम्बेड करा: प्रत्येक भाग एम्बेडिंगमध्ये रूपांतरित करा (मजकूराचा अर्थ वाहणारा संख्या वेक्टर).
  4. सेव्ह करा: वेक्टर डेटाबेसमध्ये मजकूर आणि मेटाडेटा (स्रोत, तारीख, अधिकृतता माहिती) सोबत वेक्टर लिहा.

चरण-दर-चरण क्वेरी (ऑनलाइन, वापरकर्ता वाट पाहत असताना):

  1. वापरकर्त्याचा प्रश्न एम्बेडिंगमध्ये रूपांतरित करा.
  2. वेक्टर डेटाबेसमधून सर्वात समान भाग पुनर्प्राप्त करा.
  3. हे तुकडे + प्रश्न एका प्रॉम्प्ट टेम्पलेटमध्ये ठेवा.
  4. मॉडेलमधून संदर्भित उत्तर आणि त्याचे स्रोत मिळवा.

# चौकशी टप्प्याची संकल्पनात्मक रूपरेषा (भाषेवर अवलंबून नाही) प्रश्न = "किती दिवसांची वार्षिक रजा?"question_vektor = embed(प्रश्न)भाग = vektor_db.search(question_vektor, top_k=4) # सर्वात समान भाग प्रॉम्प्ट = f"""प्रश्नाचे उत्तर द्या संदर्भ वापरून प्रश्नाचे उत्तर द्या, जर CONTEXT बद्दल माहिती नसेल तर खाली उत्तर द्या." फिटिंग.CONTEXT:{parts}प्रश्न: {प्रश्न}"""उत्तर = model.uret(prompt) # उदा. मॉडेल: क्लॉड-ऑपस-4-8

हा प्रवाह प्रत्येक टप्प्याचा नकाशा आहे, जो आपण पुढील युनिट्समध्ये एक-एक करून अनपॅक करू.

कमकुवत प्रॉम्प्ट / मजबूत प्रॉम्प्ट

समान RAG संदर्भासह, प्रॉम्प्टची गुणवत्ता उत्तर बदलते.

कमकुवत प्रॉम्प्ट (मॉडेल फिटिंगसाठी खुले, संसाधनांची आवश्यकता नाही):

ही माहिती वापरा आणि वार्षिक रजा म्हणा: {parts}. प्रश्न: {प्रश्न}

शक्तिशाली प्रॉम्प्ट (ग्राउंडिंग + "मला माहित नाही" परवानगी + संसाधन विनंती):

फक्त खालील CONTEXT वर आधारित उत्तर द्या. संदर्भात कोणतेही स्पष्ट उत्तर नसल्यास, "मला दस्तऐवजीकरणात याबद्दल माहिती सापडली नाही" असे लिहा; अंदाज लावू नका. तुमच्या उत्तराच्या शेवटी तुम्ही ज्या तुकड्यावर अवलंबून आहात त्याचा [स्रोत: file_name] टॅग जोडा. संदर्भ: {तुकडे} प्रश्न: {प्रश्न}

तीन मिनी केसेस

केस 1 - मानव संसाधन सहाय्यक (मानव संसाधन). एका कंपनीकडे 340 पानांची एचआर हँडबुक असते आणि कर्मचारी दिवसाला सरासरी 90 प्रश्न विचारतात. फाइन-ट्यूनिंगचा प्रयत्न केला गेला, परंतु मॅन्युअल मासिक अद्यतनित केल्यामुळे, प्रत्येक वेळी पुन्हा प्रशिक्षण आवश्यक होते; खर्च दरमहा हजारो डॉलर्सपर्यंत पोहोचला. RAG वर स्विच केल्यानंतर, अद्यतन "दस्तऐवज री-इंडेक्स करा" पायरी (मिनिटे) पर्यंत कमी केले गेले आणि मॅन्युअल मापनात योग्य-उत्तर दर 71% वरून 93% पर्यंत वाढला.

केस 2 - ग्राहक समर्थन. सपोर्ट टीमकडे 12,000 निराकरण केलेली तिकिटे आणि 800 मदत लेख आहेत. प्रतिनिधीला व्यक्तिचलितपणे उत्तर शोधण्यासाठी सरासरी 4 मिनिटे लागतात. जेव्हा RAG सहाय्यकाने 5 सर्वात संबंधित रेकॉर्ड आणले आणि मसुदा प्रतिसाद तयार केला, तेव्हा वेळ 40 सेकंदांपर्यंत कमी करण्यात आला; पण संघाने "चुकीचा लेख आणून अनिश्चित दिसण्याचा धोका" ओळखला आणि स्त्रोताचा हवाला देणे अनिवार्य केले.

केस 3 - कायदा. एका कंत्राटी संघाने विचारले, "कोणत्या करारामध्ये गोपनीयतेचे कलम 5 वर्षे टिकते?" तो प्रश्न विचारतो. दीर्घ संदर्भ चाचणीमध्ये, 60 करार एकाच प्रॉम्प्टमध्ये भरले गेले; मॉडेलने मधले दोन करार वगळले. जेव्हा फक्त संबंधित आयटम RAG सह सादर केले गेले तेव्हा टोकन किंमत 80% कमी झाली आणि गहाळ वगळणे रीसेट केले गेले.

RAG का आवश्यक आहे?

  • वर्तमानता: प्रशिक्षणाच्या कट-ऑफ तारखेनंतर तुम्ही माहितीमध्ये प्रवेश करता.
  • विशेष माहिती: तुमची अंतर्गत कागदपत्रे कोणत्याही मॉडेलच्या प्रशिक्षणामध्ये समाविष्ट केलेली नाहीत; फक्त तुम्हीच देऊ शकता.
  • पडताळणीयोग्यता: तुम्ही उत्तराचा स्रोत (उद्धरण) उद्धृत करू शकता — लेखापरीक्षण आणि विश्वासासाठी आवश्यक.
  • हेलुसिनेशन कंट्रोल: हे मॉडेल बनवण्याऐवजी त्याच्या समोर ठेवलेल्या मजकुरावर अवलंबून असते.
  • किंमत: फाइन-ट्यूनिंगपेक्षा ऑपरेशनमध्ये ठेवणे खूप स्वस्त आणि जलद आहे.
खबरदारी: RAG ही जादू नाही. तुम्ही चुकीचा तुकडा आणल्यास, मॉडेल चुकीच्या उत्तरावर "आत्मविश्वासू" दिसत आहे. "पुनर्प्राप्ती गुणवत्ता = RAG गुणवत्ता" हे वाक्य लक्षात ठेवा.

सामान्य चुका

  • फाइन-ट्यूनिंगसाठी आरएजीची चूक करणे: आरएजी वजन बदलत नाही; हे फक्त संदर्भ जोडते. या दोघांना गोंधळात टाकल्याने चुकीची वास्तुरचना निवडली जाईल.
  • "मला माहित नाही" परवानगी देत ​​नाही: जर प्रॉम्प्टने मॉडेलला रिक्त जागा भरण्यासाठी मोकळे सोडले तर ते तयार होईल.
  • स्त्रोतांचा हवाला देत नाही: स्त्रोताशिवाय उत्तर तपासले जाऊ शकत नाही; वापरकर्त्याला चूक लक्षात येत नाही.
  • सर्वकाही एका प्रॉम्प्टमध्ये क्रॅम करणे: लांब संदर्भ स्वस्त दिसतो परंतु महाग असतो आणि मधली माहिती चुकते.
  • पुनर्प्राप्तीचे मोजमाप न करता पिढीमध्ये अडकणे: उत्तर खराब असल्यास, प्रथम विचारा "योग्य भाग आला का?" विचारले पाहिजे.

सारांशात

  • RAG हा एक दृष्टिकोन आहे जो प्रश्नाशी संबंधित कागदपत्रे संदर्भ म्हणून मॉडेलमध्ये इंजेक्ट करतो; वजन बदलत नाही ("ओपन बुक परीक्षा").
  • फाइन-ट्यूनिंग शैली/स्वरूप शिकवते, RAG वर्तमान आणि विशिष्ट माहिती देते; दीर्घ संदर्भ लहान निश्चित सेटसाठी चांगले कार्य करते. बऱ्याच परिस्थितींमध्ये, प्रथम RAG चा प्रयत्न केला जातो.
  • पाइपलाइनचे दोन टप्पे आहेत: ऑफलाइन इंडेक्सिंग (खंड + एम्बेडिंग + सेव्ह) आणि ऑनलाइन क्वेरी (पुनर्प्राप्त + प्रॉम्प्ट + जनरेट).
  • RAG वेळोवेळी, विशिष्ट माहिती, पडताळणी, भ्रमनिरास नियंत्रण आणि कमी किमतीत प्रदान करते.
  • सिस्टमची गुणवत्ता थेट पुनर्प्राप्तीच्या गुणवत्तेवर अवलंबून असते: चुकीचा तुकडा म्हणजे चुकीचे उत्तर.

अर्ज कार्य

तुमच्या स्वतःच्या टीमकडून माहितीचा खरा स्रोत निवडा (उदा. प्रक्रिया दस्तऐवज किंवा FAQ पृष्ठ). (1) या स्त्रोताबद्दल 5 तथ्यात्मक प्रश्न लिहा. (2) दस्तऐवजाच्या कोणत्या भागामध्ये प्रत्येक प्रश्नाचे योग्य उत्तर आहे ते लक्षात घ्या - ही तुमची "सुवर्ण उत्तर" यादी बनते. (३) वरील "स्ट्राँग प्रॉम्प्ट" टेम्प्लेट वापरून, संदर्भ म्हणून संबंधित विभाग व्यक्तिचलितपणे पेस्ट करा आणि मॉडेल विचारा. (४) मॉडेलने दिलेल्या उत्तराची सोनेरी उत्तराशी तुलना करा आणि खरे/असत्य अशी खूण करा. मूल्यमापनाची ही पहिली मॅन्युअल आवृत्ती आहे जी तुम्ही भविष्यातील युनिट्समध्ये स्वयंचलित कराल.

चेकलिस्ट

  • [ ] मी एका वाक्यात स्पष्ट करू शकतो की RAG वजन बदलत नाही, ते फक्त संदर्भ जोडते.
  • [ ] मी आरएजी, फाइन-ट्यूनिंग आणि दीर्घ संदर्भ आणि जे योग्य आहे ते वेगळे करू शकतो.
  • [ ] मी अनुक्रमणिका (कलेक्ट-श्रेड-एम्बेड-सेव्ह) आणि क्वेरी (एम्बेड-फेच-प्रॉम्प्ट-जनरेट) फेज क्रमाने मोजू शकतो.
  • [ ] मी प्रॉम्प्टमध्ये "जर ते संदर्भात नसेल, तर मला माहित नाही म्हणा" आणि "स्रोत उद्धृत करा" सूचना का जोडल्या हे मला माहीत आहे.
  • [ ] मी माझ्या स्वतःच्या बाबतीत "पुनर्प्राप्ती गुणवत्ता = RAG गुणवत्ता" हे तत्त्व स्वीकारू शकतो.