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

आरएजी के साथ क्वेरी उत्तर देने में महारत हासिल करना: बड़े पैमाने पर मीटिंग डेटा में प्रमुख चुनौतियों पर काबू पाना

2025-01-14 को प्रकाशित
ब्राउज़ करें:238

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

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

प्रारंभिक दृष्टिकोण: प्रभावी क्वेरी उत्तर देने के लिए नींव रखना
मैंने पुनर्प्राप्ति और प्रतिक्रिया पीढ़ी को संयोजित करने के लिए डिज़ाइन किए गए एक मूलभूत आरएजी मॉडल के साथ शुरुआत की। उपयोग की गई दो प्रारंभिक तकनीकें थीं:

  1. चंकिंग: बड़े दस्तावेज़ों को वाक्य सीमाओं के आधार पर छोटे खंडों में तोड़ने से खोज का दायरा कम करके पुनर्प्राप्ति में सुधार हुआ।

  2. एंबेडिंग और वेक्टर स्टोरेज: चंकिंग के बाद, प्रत्येक सेगमेंट को वेक्टर डेटाबेस में एम्बेड और संग्रहीत किया गया था, जिससे कुशल खोज सक्षम हो सकी।

हालाँकि, इस सेटअप की सीमाएँ थीं। प्रारंभिक खंडन दृष्टिकोण के कारण अक्सर अप्रासंगिक जानकारी पुनर्प्राप्त हो जाती थी, और उत्पन्न उत्तरों में प्रत्येक प्रश्न के इरादे के साथ सटीकता और संरेखण का अभाव होता था।

बड़े पैमाने पर आरएजी क्वेरी का उत्तर देने में चुनौतियां

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

इन चुनौतियों ने RAG क्वेरी उत्तर देने में सटीकता में सुधार के लिए अधिक उन्नत दृष्टिकोण की आवश्यकता को रेखांकित किया।

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

Mastering Query Answering with RAG: Overcoming Key Challenges in Large-Scale Meeting Data

from langchain_experimental.text_splitter import SemanticChunker
from langchain_openai.embeddings import OpenAIEmbeddings
from langchain.schema import Document

# Initialize OpenAI Embeddings with API key
openai_api_key = ""
embedder = OpenAIEmbeddings(openai_api_key=openai_api_key)
text_splitter = SemanticChunker(embedder)

def prepare_docs_for_indexing(videos):
    all_docs = []

    for video in videos:
        video_id = video.get('video_id')
        title = video.get('video_name')
        transcript_info = video.get('details', {}).get('transcript_info', {})
        summary = video.get('details', {}).get('summary')
        created_at = transcript_info.get('created_at')  # Getting the created_at timestamp

        # Get the full transcription text
        transcription_text = transcript_info.get('transcription_text', '')

        # Create documents using semantic chunking
        docs = text_splitter.create_documents([transcription_text])

        for doc in docs:
            # Add metadata to each document
            doc.metadata = {
                "created_at": created_at,
                "title": title,
                "video_id": video_id,
                "summary": summary
            }
            all_docs.append(doc)

    return all_docs


docs = prepare_docs_for_indexing(videos)

# Output the created documents
for doc in docs:
    print("____________")
    print(doc.page_content)

अधिकतम मार्जिन पुनर्प्राप्ति
इस पद्धति ने प्रासंगिक और अप्रासंगिक डेटा के बीच अंतर करके पुनर्प्राप्ति परिशुद्धता में सुधार किया, यह सुनिश्चित किया कि केवल सबसे अच्छे मिलान वाले डेटा खंड ही पुनर्प्राप्त किए गए थे।

लैम्ब्डा स्कोरिंग
लैम्ब्डा स्कोरिंग का उपयोग करके, मैं प्रासंगिकता के आधार पर परिणामों को रैंक कर सकता हूं, बेहतर उत्तर गुणवत्ता के लिए क्वेरी इरादे के साथ अधिक निकटता से संरेखित प्रतिक्रियाओं को प्राथमिकता दे सकता हूं।

from langchain_community.vectorstores import OpenSearchVectorSearch
from langchain_openai import OpenAIEmbeddings

embeddings = OpenAIEmbeddings()

docsearch = OpenSearchVectorSearch.from_documents(
    docs, embeddings, opensearch_url="http://localhost:9200"
)

query = "your query"
docs = docsearch.max_marginal_relevance_search(query, k=2, fetch_k=10, lambda_param=0.25)

मल्टी-क्वेरी और आरएजी फ़्यूज़न
जटिल प्रश्नों के लिए, सिस्टम कई उप-प्रश्न उत्पन्न करता है। RAG फ़्यूज़न फिर विविध उत्तरों को एक एकल, सामंजस्यपूर्ण प्रतिक्रिया में एकीकृत करता है, प्रतिक्रिया की गुणवत्ता बढ़ाता है और त्रुटि को कम करता है।

def generate_multi_queries(question: str):
    # Template to generate multiple queries
    template = """You are an AI language model assistant. Your task is to generate five 
    different versions of the given user question to retrieve relevant documents from a vector 
    database. By generating multiple perspectives on the user question, your goal is to help
    the user overcome some of the limitations of the distance-based similarity search. 
    Provide these alternative questions separated by newlines. Original question: {question}"""

    # Creating a prompt template for query generation
    prompt_perspectives = ChatPromptTemplate.from_template(template)

    # Generate the queries using ChatOpenAI and output parser
    generate_queries = (
        prompt_perspectives 
        | ChatOpenAI(temperature=0, openai_api_key=openai_api_key) 
        | StrOutputParser() 
        | (lambda x: x.split("\n"))
    )

    # Invoke the chain to generate queries
    multi_queries = generate_queries.invoke({"question": question})

    return multi_queries
def reciprocal_rank_fusion(results: list[list], k=60):
    """Applies Reciprocal Rank Fusion (RRF) to fuse ranked document lists."""
    fused_scores = {}
    for docs in results:
        for rank, doc in enumerate(docs):
            doc_str = dumps(doc)  # Convert to a serializable format
            if doc_str not in fused_scores:
                fused_scores[doc_str] = 0
            fused_scores[doc_str]  = 1 / (rank   k)  # RRF formula

    # Sort documents by the fused score
    reranked_results = [
        (loads(doc), score)
        for doc, score in sorted(fused_scores.items(), key=lambda x: x[1], reverse=True)
    ]
    return reranked_result

Mastering Query Answering with RAG: Overcoming Key Challenges in Large-Scale Meeting Data

उन्नत अनुक्रमण और अनुकूलित वेक्टर खोज
अनुक्रमण तंत्र में सुधार और वेक्टर खोज मापदंडों को परिष्कृत करने से पुनर्प्राप्ति तेज और अधिक सटीक हो गई, खासकर बड़े डेटासेट के लिए।

परिणाम: आरएजी क्वेरी उत्तर देने में प्रमुख उपलब्धियां
इन तकनीकों को लागू करने से महत्वपूर्ण सुधार हुए:

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

मुख्य तथ्य और सीखे गए सबक
इस यात्रा के माध्यम से, मैंने कई मुख्य अंतर्दृष्टि की पहचान की:

  1. अनुकूलनशीलता महत्वपूर्ण है: पहले प्रयास में प्रभावी समाधान शायद ही कभी सामने आते हैं; पुनरावृत्तीय सुधार और लचीलापन आवश्यक है।
  2. स्तरित कार्यप्रणाली मजबूती में सुधार करती है: कई दृष्टिकोणों को एकीकृत करना - सिमेंटिक चंकिंग, अधिकतम मार्जिन पुनर्प्राप्ति, लैम्ब्डा स्कोरिंग - एक मजबूत, अधिक प्रभावी प्रणाली बनाई गई।
  3. संपूर्ण क्वेरी प्रबंधन: मल्टी-क्वेरी जेनरेशन और आरएजी फ़्यूज़न ने कई दृष्टिकोणों से प्रश्नों को संबोधित करने के महत्व पर प्रकाश डाला।
  4. सिमेंटिक्स पर ध्यान केंद्रित करना: अकेले संरचना के बजाय डेटा के भीतर अर्थ पर जोर देने से पुनर्प्राप्ति सटीकता में काफी सुधार हुआ।

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

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

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/cognilium_ai/mastering-query-answering-with-rag-overcoming-key-challenges-in-large-scale-meeting-data-33ji?1 यदि कोई उल्लंघन है , कृपया स्टडी_गोलंग @163.कॉमडिलीट से संपर्क करें
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3