ग्राफिक आरएजी प्रमाण खण्डों का दुगुनाकरण सुदृढ़आरएजी (हिन्दी (Hindi))

ग्राफिक आरएजी प्रमाण खण्डों का दुगुनाकरण सुदृढ़आरएजी

Saturday, 17 January 2026

//

16 minute read

नोट यह एक पारंपरिक ब्लॉग लेख नहीं है तकनीकी विवरण में एक ठोस विशेषता के लिए लिखा गया सुदृढ़आरएजी. मैं बार-बार इस दस्तावेज को कोड के रूप में खिसकाता हूँ।

यह दस्तावेज़ से एक उपप्रणाली का वर्णन करता है सुदृढ़आरएजीएक परियोजना मैं सक्रिय रूप से विकसित कर रहा हूँ

एक मुख्य आवश्यकता सुदृढ़आरएजी बाहर निकालने की क्षमता है साक्ष्यों के खंड sentences दुगुना उपयोगी संकेत को नष्ट करने के बिना

सुदृढ़आरएजी विश्लेषण और निकालने के द्वारा कार्य करता है उत्तम दस्तावेजों से उपलब्ध साक्ष्य नहीं LLM को भंडारित करें।

इसके बजाय सुदृढ़आरएजी निर्धारात्मक और संभाव्यतावादी तकनीकों का एक विस्तृत दायरा लागू करता है

  • प्रत्याशित खंड निकालें
  • उनके सूचनात्मक मूल्य का मूल्यांकन
  • और केवल सबसे मजबूत प्रतिनिधियों को बनाए रखें

डीडुप्लिकेट इस प्रक्रिया का एक महत्वपूर्ण हिस्सा है

साधारण स्ट्रिंग समानता पर्याप्त नहीं है।

पुनःप्राप्ति समय पर समस्या जटिल होती है

जब परिणाम निकाले जाते हैं, तो SQL के माध्यम से (Vektor embeddings,BM\25,\ या हाइब्रिड्स),\ LLM को एकाधिक खंडों का आहार देते हुए, जो सभी एक ही मूल विचार व्यक्त करते हैं, नीरसता उत्पन्न करता है।

इस को संबोधित करने के लिए सुदृढ़आरएजी दोहरेपन को एक के रूप में देखता है प्रथम- वर्ग संकलन समस्याएक पोस्ट नहीं है

इस दस्तावेज का बाकी वर्णन है कि कैसे उस डेड्यूप्लिकेशन रणनीति को डिजाइन किया गया था 'अजील स्पेक्टिंग कोड LLMS. की आवश्यकताओं के लिए अनुकूल

यह विचारों को crystallize करता है-, different concepts and forces the LLM to document it सही बात बनाता है.

इसके बारे में अधिक देखें सुदृढ़आरएजी यहाँ

दोगुना करने की रणनीति

सुदृढ़आरएजी महत्वपूर्ण संकेतों को सुरक्षित करते हुए अतिरिक्त सामग्री को समाप्त करने के लिए दो चरण द्वैतरण रणनीति का उपयोग करता है सिग्नल-संरक्षित फिल्टरसामग्री मानकीकरण नहीं है

ऑवरव्यू

┌─────────────────────────────────────────────────────────────────────────────┐
│                           INGESTION (Per Document)                          │
│                                                                             │
│  Document → Extract → Embed → DEDUPE (intra-doc) → Index to Vector Store   │
│                                   │                                         │
│                                   ├─ Near-duplicates: boost salience        │
│                                   └─ Exact duplicates: drop (no boost)      │
└─────────────────────────────────────────────────────────────────────────────┘
                                    │
                                    ▼
┌─────────────────────────────────────────────────────────────────────────────┐
│                          RETRIEVAL (Cross Document)                         │
│                                                                             │
│  Query → Search → Rank (RRF) → DEDUPE (cross-doc) → Top K → LLM Synthesis  │
│                                   │                                         │
│                                   └─ Keep segment with highest RRF score    │
└─────────────────────────────────────────────────────────────────────────────┘

डिजाइन गारंटी

इन असमानताओं को डेड्यूप्लिकेशन सिस्टम द्वारा रखा जाता है

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


गैर

यह प्रणाली स्पष्ट रूप से करता है नहीं को कोशिश करें

  • तथ्यात्मक विरोधाभास पहचानें - दो खंड जो विपरीत बातें कहते हैं दोहरा नहीं है
  • सत्य को कैनानिकल करना - हम नहीं ' स्रोतों के बीच एक "correct" संस्करण चुनते हैं
  • इनग्रास पर दस्तावेज़ों के बीच पैराफ्रेज को संक्षिप्त करें - प्रत्येक दस्तावेज अपने ही खंड रखता है
  • सामान्यीकरण शब्दावली भिन्न डक में - "ML" और "मेंशिकी सीखनेM SK4 को अलग से सुरक्षित किया जाता है
  • इकाई रिजोल्यूशन बदलें - That's GraphRAGMSC2s jobM SK3 operating at a different level

निर्धारिता & पुनरावृत्तिशीलता

दुरूपण पूर्ण रूप से निर्णायक है

  • एम्बेडिंग अपरिवर्तनीय हैं एक बार निकालने के समय पर संगणित
  • क्रमबद्ध स्थिर है - समान सारिता के साथ खंड मूल क्रम बनाए रखें
  • कोई अनियमितता नहीं - नमूनाकरण नहीं
  • कोई बाहरी स्थिति नहीं - कटौती निर्णय केवल मौजूदा खंड सेट पर निर्भर करते हैं

यह क्यों महत्वपूर्ण है उपयोगकर्ता त्रुटिमोचन पुनःप्राप्ति परिणाम यह विश्वास कर सकते हैं कि re-सही इनपुटों के साथ चलाने से समान आउटपुट उत्पन्न करता है सुदृढ़आरएजीअधिक व्यापक "सीमित अस्पष्टता


क्यों दो चरण

चरण 1: इंजेक्शन डिडुप्लिकेट

लक्ष्य भंडारण को कम करें और दस्तावेज़ में अतिरिक्तता को रोकें

समस्या: दस्तावेजों में अक्सर बार-बार अंतर्वस्तु होती है

  • बॉयलप्लेट पाठ
  • प्रतिलिपि बनाएँ
  • एक ही संकल्पना कई तरीके से समझा गया

समाधान अनुक्रमण करने से पहले प्रत्येक दस्तावेज के भीतर प्रतिलिपि बनाएँ

कुंजी अंतर्दृष्टि लगभग-डुप्लीकेट को इस रूप में माना जाता है महत्व का स्वतंत्र प्रमाणredundancy नहीं

चरण 2: पुनःप्राप्ति डुप्लिकेटेशन

लक्ष्य दस्तावेजों में अतिरिक्त सूचना प्राप्त करने से एलएलएम को रोकें

समस्या: जब अनेक दस्तावेजों के बीच क्वेरी किया जाता है, समान अनुच्छेद विभिन्न स्रोतों में प्रकट हो सकते हैं

समाधान आरआरएफ द्वारा रैंकिंग के बाद (जो अर्थिक समानता को संयोजन करता है, शब्दकुञ्जी मिलानM SK2 प्रासंगिकता

आरआरएफ के बाद क्यों आरआरएफ अंक प्रासंगिकता का सर्वोत्तम समग्र मापन है

केवल खुराक पर क्यों सलीन्स को बढ़ाया जाता है

विभाजन जानबूझकर है

चरण क्या यह ग्रहण करता है
आgestion boost लेखक बल देता है
पुनःप्राप्ति अंक Query relevance - how well content matches user intent

इन को पुनर्प्राप्ति पर मिलाना दस्तावेज़ अभिप्राय के साथ उपयोगकर्ता अभिप्रेत से बंधा जाएगा उस दस्तावेज़ में, लेकिन प्रासंगिक नहीं हो सकता इस क्वेरी में. इंजेक्शन में वृद्धि करते हुए , हम बिना क्वेरी परिणामों को पक्षपात करने के लेखक की सिग्नल को सुरक्षित रखते हैं


चरण 1: इंजेक्शन डिडुप्लिकेट

स्थान

src/Mostlylucid.DocSummarizer.Core/Services/BertRagSummarizer.cs

विधि

DeduplicateSegments()

एल्गोरिथम

1. Filter segments by minimum salience threshold (0.05)
2. Sort by salience score (highest first)
3. For each segment:
   a. If no embedding → keep (can't compare)
   b. Check cosine similarity against all selected segments
   c. If similarity >= 0.90:
      - If same ContentHash → exact duplicate, drop silently
      - If different ContentHash → near-duplicate, boost kept segment's salience
   d. If no match → add to selected list
4. Apply salience boosts: +15% per near-duplicate merged
5. Cap salience at 1.0 to prevent any single concept from dominating

पैरामीटर

पैरामीटर |-----------|---------|-------------| | similarityThreshold कोसाइन समानता जिसके ऊपर से खंडों को दुरूपित माना जाता है | salienceThreshold विचार करने के लिए न्यूनतम भेदभाव | boostPerNearDuplicate | | 0.15 | || | समीप के लिए सलायन बढ़ाता है।

उदाहरण

यथार्थ प्रतिलिपि (नहीं Boost

Segment A: "Contact us at [email protected]" [hash: abc123]
Segment B: "Contact us at [email protected]" [hash: abc123]  ← same hash
Result: Keep A, drop B, no boost (likely boilerplate)

निकट-डुप्लीकेट (बॉस्ट लागू

Segment A: "Machine learning models require training data" [hash: abc123]
Segment B: "ML systems need data for training" [hash: def456]  ← different hash, 0.92 similarity
Segment C: "Training data is essential for ML" [hash: ghi789]  ← different hash, 0.91 similarity
Result: Keep A with +30% salience boost (concept emphasized 3 ways)

थ्रेसहोल्ड के लिए तर्क

  • समानता अनुसंधान के आधार पर (NVIDIA NeMo सेमेटिक डेड्यूप के लिए उद्योग मानक का प्रयोग करता है
  • 0.05 अधिकतर सामग्री बनाए रखने के दौरान बहुत कम मूल्य खंड फ़िल्टर करता है
  • वृद्धि अर्थपूर्ण संकेत बिना अधिक -weighting बार-बार अवधारणाओं के

चरण 2: पुनःप्राप्ति डुप्लिकेटेशन

स्थान

src/LucidRAG.Core/Services/AgenticSearchService.cs

विधि

DeduplicateByEmbeddingPostRanking()

एल्गोरिथम

1. Receive ranked results (already sorted by RRF or dense score)
2. For each segment (in score order):
   a. If no embedding → keep
   b. Check cosine similarity against all selected segments
   c. If similarity >= 0.90 → skip (higher-scored duplicate already selected)
   d. If no match → add to selected list
3. Return deduplicated list (maintains score ordering)

पैरामीटर

पैरामीटर |-----------|---------|-------------| | similarityThreshold क्रॉस के लिए कोसाइन समानता दहेज

क्यों पोस्ट

आरआरएफ (प्रतिस्परिक रैंक फ्यूजन) चार संकेतों को संयोजित करता है

  1. घनत्व प्राप्ताङ्क क्वेरी के लिए वैचारिक समानता
  2. प्राप्ताङ्क शब्दकोश match
  3. सलिंस स्कोर दस्तावेज़ के भीतर महत्व
  4. ताज़ाता प्राप्ताङ्क ग्राह्य वृद्धि

RRF के बाद डुप्लिकेट करने का अर्थ है कि हम सभी आयामों में क्वेरी से बेहतर अनुरूप सेगमेंट बनाए रखें

उदाहरण

Query: "How do I configure authentication?"

Results before dedup:
1. [Doc A] "Authentication is configured via config.yaml..." (RRF: 0.052)
2. [Doc B] "Configure auth using the config.yaml file..." (RRF: 0.048, similarity to #1: 0.93)
3. [Doc A] "Set the API key in environment variables..." (RRF: 0.041)

Results after dedup:
1. [Doc A] "Authentication is configured via config.yaml..." (RRF: 0.052)
2. [Doc A] "Set the API key in environment variables..." (RRF: 0.041)

Doc B's similar paragraph dropped - Doc A's version had higher RRF score.

विफल मोड & व्यापार

ज्ञात सीमाएं

विफल मोड विवरण
गलत सकारात्मक (over दो अलग-अलग लेकिन घनिष्ठ रूप से संबंधित संकल्पनाओं को समानता से अधिक हो सकता है 0.90 अनुरूपता
गलत ऋणात्मक (under Very short segments may embed poorly
एम्बेडिंग ड्रिफ्ट एम्बेडिंग मॉडलों को बदलने से डेड्यूप आकलन अमान्य हो जाता है
क्रम संवेदनशीलता घृणापूर्ण चयन का अर्थ होता है, पहला उच्च होता है।

स्वीकृत व्यापार

  • रिकार्ड पर यथार्थता हम कभी-कभी अलग-अलग सामग्री को दुर्घटनावश हटाने के बजाय प्रतिलिपिओं के निकट रखना पसंद करते हैं
  • शुद्धता से अधिक भंडारण हम स्रोत आtribution को सुरक्षित रखने के लिए वैश्विक डेड्यूप की बजाय per- दस्तावेज़ भंडारित करें
  • अनुकूलन पर सरलता O(n²) सामान्य दस्तावेज़ आकारों के लिए स्वीकार्य है

बहुभाषीय विचार

बहुभाषीय सामग्री के साथ डुप्लिकेट व्यवहार

Scenario Behavior Rationale
एक ही भाषा सामान्य डेड्यूप लागू होता है
Cross-language paraphrases न डुप्लिकेट किया गया नहीं है।
मिश्रित भाषा दस्तावेज़ भाषा समूहों के भीतर डेड्यूप सम्मिलित समानता प्राकृतिक रूप से भाषाओं को अलग करती है

डिजाइन विकल्प क्रॉस-भाषिक डेड्यूप स्पष्ट रूप से समर्थित नहीं है।

भावी वृद्धि: क्रॉस-लिंगिक डिड्यूप अनुवाद के माध्यम से परतित किया जा सकता है


सुरक्षा & प्रतिद्वंद्वी विचार

डिडुप्लिकेट सिस्टम में अप्रत्यक्ष संरक्षण शामिल हैं

आक्रामक भेक्टर
पुनरावृत्ति के माध्यम से सूक्ष्म मुद्रास्फीति exactly duplicates don't boost
दस्तावेज़ों में स्पैम को नक़ल करें पुनर्प्राप्ति पर डॉक डेड्यूप अतिरिक्त परिणामों को हटाता है
डुप्लीकेट इंजेक्शन के माध्यम से प्राप्ताङ्क परिचालन रैंकिंग के बाद कटौती होती है
बॉयलप्लेट बाढ़ सही हैश मैच पता लगाने में तेजी के बिना गिरता है

नोट डिडुप्लिकेट एक सुरक्षा सीमा नहीं है


GraphRAG के साथ परस्पर क्रिया

गुणन और ग्राफ आर ए जी जानबूझकर आयतीय हैं

प्रणाली उद्देश्य पर कार्य करता है
दुगुना सेगमेंट्स
ग्राफ आर ए जी इकाइयां & रिश्ताएं ज्ञान ग्राफ बनाना

क्यों अलग करें

  • एक खंड जो "Apple" और दूसरा खंड जिसमें "the companyM SK3 उल्लिखित करता है, समान पाठ के रूप में अपवाद कर सकता है लेकिन वही इकाई को दर्शाता है कि
  • डेड्यूप को इकाई जागरूकता की जरूरत नहीं है-' यह सिर्फ सेमेटिक समानता पर कार्य करता है
  • Entity-aware dedup को एक वृद्धि के रूप में बाद में जोड़ा जा सकता है

प्रेक्षणता & मापन

मौजूदा लॉगिंग

इंजेक्शन

[dim]Deduplication: 150 → 98 segments[/]

पुनःप्राप्ति

Post-ranking deduplication: 50 → 42 segments (removed 8 cross-doc duplicates)

सिफारिशित मापन

उत्पादन मॉनिटरिंग के लिए

मीट्रिक विवरण स्वस्थ रेंज S
dedup_ratio_ingestion इंजेक्शन पर हटाए गए खंड
dedup_ratio_retrieval प्रतिप्राप्ति पर हटाए गए खंड
avg_salience_boost प्रति दस्तावेज़ लागू औसत वृद्धि
max_salience_boost एक दस्तावेज में सबसे अधिक वृद्धि
dedup_by_doc_type दस्तावेज़ प्रकार के अनुसार खंडित कटौती दर

त्रुटिमोचन टिप

  • उच्च इंजेक्शन डिड्यूप (>50%): दस्तावेज़ में अधिक बॉयलप्लेट हो सकता है या स्वचालित रूप से उत्पन्न किया जा सकता है
  • कम इंजेक्शन डिड्यूप (<5%): दस्तावेज़ में विविध अंतर्वस्तु है (goodM SK1 या अंतःकरण खराब हैं
  • उच्च पुनर्प्राप्ति डिड्यूप (>30%): Query may be too broad, or corpus has many similar documents
  • सलिन्स approaching 1.0: संकल्पना को बहुत जोर दिया गया था; यह सत्यापित करें' वैध है

कॉन्फ़िगरेशन

डिडुप्लिकेट के माध्यम से कॉन्फ़िगर किया गया है DocSummarizerConfig.Deduplication खंड में appsettings.json:

{
  "DocSummarizer": {
    "Deduplication": {
      "Ingestion": {
        "Enabled": true,
        "SimilarityThreshold": 0.90,
        "SalienceThreshold": 0.05,
        "EnableSalienceBoost": true,
        "BoostPerNearDuplicate": 0.15,
        "MaxSalienceBoost": 1.0,
        "BoostDecayMode": "Logarithmic",
        "LogBase": 2.0
      },
      "Retrieval": {
        "Enabled": true,
        "SimilarityThreshold": 0.90,
        "MinRelevanceScore": 0.25
      },
      "Analytics": {
        "EnableLogging": true,
        "EnableMetrics": true,
        "HighIngestionDedupThreshold": 0.50,
        "HighRetrievalDedupThreshold": 0.30,
        "HighSalienceBoostThreshold": 0.60
      }
    }
  }
}

इंजेक्शन कॉन्फ़िगरेशन

पैरामीटर |-----------|---------|-------------| | Enabled | true सक्षम करें | SimilarityThreshold | 0.90 दोहरा पता लगाने के लिए कोसाइन समानता थ्रेसहोल्ड | SalienceThreshold | 0.05 | विचार करने के लिए न्यूनतम salience | EnableSalienceBoost | true | निकट के लिए उत्कर्षण बढ़ाता है | BoostPerNearDuplicate | 0.15 | बेस boost per near-duplicate | MaxSalienceBoost | 1.0 अधिकतम salience cap | | BoostDecayMode | Logarithmic | Linear या Logarithmic पतन | | LogBase | 2.0 लघुगणकीय विघटन के लिए आधार

पुनःप्राप्ति कॉन्फ़िगरेशन

पैरामीटर |-----------|---------|-------------| | Enabled | true सक्षम करें | SimilarityThreshold | 0.90 कोसाइन समानता थ्रेसहोल्ड | MinRelevanceScore | 0.25 न्यूनतम आरआरएफ अंक को शामिल करने के लिए |

विश्लेषण कॉन्फ़िगरेशन

पैरामीटर |-----------|---------|-------------| | EnableLogging | true लॉग डिडुप्लिकेट ऑपरेशन्स | EnableMetrics | true मॉनिटरिंग के लिए मापदंड एकत्रित करें | HighIngestionDedupThreshold | 0.50 | चेतावनी दें यदि | HighRetrievalDedupThreshold | 0.30 चेतावनी दें यदि >30% पुनःप्राप्ति पर दोहराया गया है | HighSalienceBoostThreshold | 0.60 | चेतावनी दें यदि वृद्धि से अधिक है

विफलता मोड बढ़ाएँ

रेखीय मोड (simple

boost = boostPerNearDuplicate × count

उदाहरण-: 3 near - dupes

लघुगणकीय मोड (ह्रास के परिणाम

boost = boostPerNearDuplicate × log₂(1 + count)

उदाहरण

लघुगणकीय मोड सिफारिश की जाती है क्योंकि

  • पहले कुछ अनुकरणों में सबसे मजबूत संकेत है
  • कई प्रतिलिपि बोयलप्लेट इंगित कर सकते हैं
  • बहती हुई सलायंस मुद्रास्फीति को रोकता है

निष्पादन विचार

जटिलता

चरण | जटिलता |-------|------------|--------------|--------| प्रवेश खंड पुनःप्राप्ति

स्केलिंग पथ

बहुत बड़े दस्तावेजों के लिए (10,000+ खंड

  1. LSH (LocalityM SK1Sensitive Hashing): O(nM SK1 अनुमानित कटौती
  2. बैच तुलना स्मृति को कम करने के लिए खंडों में प्रक्रिया करें
  3. आरंभिक फिल्टरिंग अधिक आक्रामक साइज थ्रेसहोल्ड

वर्तमान क्रियान्वयन विशिष्ट दस्तावेज़ आकारों के लिए अनुकूलित है


अनुसंधान के साथ तुलना

दृष्टिकोण |----------|-----------|--------| | lucidRAG एनवीडीया नेमो क्यूरेटर SemDeDupdocs | MinHash LSH गूगल C4, GPT-3 कागज | | SemHash जिटहब |

हमारे शून्य 0.90 सेंटिकल डेड्यूप्लिकेशन के लिए उद्योग के सर्वोत्तम प्रथाओं के अनुरूप है


क्या डुप्लीकेट नहीं है

सामग्री क़िस्म |--------------|--------| अभिग्रहण पर | क्रॉस | - | दस्तावेज || | प्रति स्रोत रिजोल्यूशन और आबंटन को सुरक्षित करता है कम भिन्न खंड प्रकार | शीर्षक और अनुच्छेद में भिन्न संरचनात्मक भूमिकाएं हैं | क्रॉस


क्रियान्वयन की स्थिति

विशेषता स्थिति
कॉन्फ़िगर योग्य थ्रेसहोल्ड्स DeduplicationConfig श्रेणी
बौस्ट डेसी ( लॉग स्केल ) BoostDecayMode.Logarithmic
डेडप विश्लेषण DeduplicationResult<T> रिकार्ड
डीआई सेवा एकीकरण IDeduplicationService

भावी संवर्धन

  1. डेड्यूप विश्लेषण डैशबोर्ड प्रति दस्तावेज़ प्रकार की दरों का दृश्य ट्रैकिंग
  2. क्रॉस अनुवाद-बहुभाषीय डेड्यूप के लिए अपरिवर्तनीय अंतःस्थापित
  3. Entity-informed dedup: GraphRAG इकाइयों को अतिरिक्त संकेत के रूप में उपयोग करें (बदल नहीं करता है
  4. प्रोमेथ्यूस मॉनिटरिंग डैशबोर्ड के लिए निर्यात माप

सारांश

यह गुणन रणनीति

  • संकेत को सुरक्षित करता है - Near-duplicates boost importance rather than being discarded
  • सीमाओं का सम्मान करता है - दस्तावेज़ स्वतंत्र खण्ड सेट बनाए रखें
  • दर्जे फिर फ़िल्टर करता है - क्रॉस से पहले पूर्ण आरआरएफ संकेत का उपयोग करता है
  • सुरक्षित रूप से असफल - आक्रामक हटाने के बजाय सामग्री को रखना पसंद करता है
  • स्थिरतावादी बना रहता है - एक ही इनपुट हमेशा एक ही आउटपुट का उत्पादन करता है
Finding related posts...
logo

© 2026 Scott Galloway — Unlicense — All content and source code on this site is free to use, copy, modify, and sell.