Back to "تقلل من Segments Graphitic RAG Evidence في وضوحRAG"

This is a viewer only at the moment see the article on how this works.

To update the preview hit Ctrl-Alt-R (or ⌘-Alt-R on Mac) or Enter to refresh. The Save icon lets you save the markdown file to disk

This is a preview from the server running through my markdig pipeline

C# Knowledge Graphs lucidRAG Machine Learning Vector Search

تقلل من Segments Graphitic RAG Evidence في وضوحRAG

Saturday, 17 January 2026

ملاحظة: هذه ليست مقالة مدونة تقليدية. إنها الوصفات التقنية مكتوبة لصفة معينة في وضوحRAG. أقوم بتوصيل هذا الوثيقة بشكل مكرر لبرمجة - "focused LLMs during development to reason about trade" - "offs" , " validate assumptions" و "M SK3" "converge on a rational implementation" .

هذا документ يصف نظام فرعي من وضوحRAG, مشروع أقوم بتطويره

أحد المتطلبات الأساسية وضوحRAG هو القدرة على استخراج أجزاء من الأدلة - جملةM SK1 فقرات, مخطوطات , عنوانات, إطارات , أو بلاكات بنائية - وتأكد من أن تلك الأجزاء تقليد دون تدمير الإشارة المفيدة.

وضوحRAG يعمل من خلال تحليل و استخراج أفضل الدليل المتوفر من الوثائق, الصور, الصوتM SK2 وبيانات هيكلية . خلاف معظم تطبيقات RAG لا تخزين LLM-توليد الإحصائيات كجزء أولي . في كثير من الحالات , لا تحتاج إلى LLM على الإطلاق ( رغم أنه يمكن استخدامه عندما يكون التسارع قابلاً للاستعمال

بدلاً من ذلك, وضوحRAG يطبق مجموعة واسعة من التقنيات الإفتراضية والإحتمالية على :

  • استخراج أجزاء مرشحة
  • تقييم قيمة المعلومات
  • ويحافظون على أقوى ممثلين فقط

المحاكاة هي جزء هام من هذه العملية.

المساواة في الأوتار البسيطة لا تكفي.

تتضاعف المشكلة عند وقت الترقب.

عندما يتم الحصول على النتائج (باستخدام SQL, مداخلات векторيةM SK2 BM 25, أو الهجيناتMSC4 تغذي جزء LLM متعددة التي جميعها تعبر عن نفس الفكرة الكامنة تنتج إجابات مملةMST5 متكررةM ST6 خمسة بالقرب منM st7 قطع متطابقة من दस्तावेज مختلفة لا تضيف وضوحاً |M st8 | إنهم يذيبونها | M st9

لمعالجة هذا, وضوحRAG يتعامل مع تقليل النسبة كـ مشكلة kompilation لفئة first-, ليس بريداً-صفر شاكM SK2

ما تبقى من هذا الوثيقة يصف كيف تم تصميم تلك الاستراتيجية للتفكيك 'Agile Speccing' ملائمة لمتطلبات الرمز LLMS.

هذا يشكّل الأفكار المختلفة , ويدفع الـ LLM إلى توثيقها | ' | |' | العمليات الفكرية | МSK3 | هذا هو المرحلة الأولى لإيجاد الـ يبني الشيء الصحيح.

رؤية المزيد عن وضوحRAG هنا.

استراتيجية تقليل النسبة

وضوحRAG يستخدم استراتيجية ثنائية -phase deduplication لإزالة المحتوى الفائق بينما يحافظ على الإشارات الهامة. هذا هو إشارة -محافظة المرشح, ليس قياس المحتوى.

الرسم البياني

┌─────────────────────────────────────────────────────────────────────────────┐
│                           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    │
└─────────────────────────────────────────────────────────────────────────────┘

ضمانات التصميم

هذه الثوابت تم الحفاظ عليها بواسطة نظام تقليل

Garantie Description
تم حفظ الطلبات تقليل لا يغيّر ترتيب الدلالية بعد تصنيف RRF
لا يفقد مفهومه تفكيك لا يزيل أبداً كل الأمثلة لمفهوم
تم إحترام الحدود للوثيقة ال重複 لا يتجاوز أبداً الحدود للوثيقة عند الإدخال
المحتوى غير قابل للتغيير تقليل لا يغيّر أبداً المداخلات أو المحتوى النصي, فقط علامات الانتقاء والتميز
إختبارية given identical inputs and config, deduplication produces identical outputs

غير الأهداف

هذا النظام يقوم بوضوح لا محاولة :

  • إكتشاف تناقض واقعي - مقطعين يقولون اشياء متعارضة لا تتقلص
  • تشريح الحقيقة - نحن لا نختار ' نسخة "correct" عبر المصادر
  • Collapse paraphrases across documents at ingestion - كل سند يحتفظ بأجزاءه الخاصة
  • تعميم المصطلحات - "ML" و "التعلم الآليM SK4 في دوكات مختلفة يتم حفظها منفصلاً
  • استبدال حل الكيان - ذلك' GraphRAG ' وظيفتهM SK3 تعمل على مستوى مختلف

التفاضل والتكامل & قابلة للتكاثر

تقليل هو محدد بالكامل:

  • المداخلات غير قابلة للتغيير بمجرد حسابها في وقت الإستخراج
  • الفرز مستقر أجزاء - ذات أهمية متساوية تحافظ على ترتيب أصلي
  • لا عشوائية - لا نأخذ العينات, لا تقريباً ANN , لا حد إفتراضي
  • ليس هناك حالة خارجية - القرارات في الخصم تعتمد فقط على مجموعة القطع الحالية

لماذا يهم هذا؟ يمكن للمستخدمين أن يثقوا في نتائج البحث عن الأخطاء البرمجية بأن تشغيل re- مع نفس المدخلات ينتج نفس المخرجات وضوحRAG'أوسع "محدود الغموض" الفلسفة - تطابق الغمض مع السلوك المعرفيM SK4


لماذا Phases ?

المرحلة 1: تقليل نسبة الاستهلاك

الهدف: تقلل من تخزين وتجنب إفراط intra-document

مشكلة: غالباً ما تحتوي الوثائق على محتوى مكرر:

  • نص لوحة ال boiler (headers, footerM SK2 disclaimers )
  • النسخ -أجزاء مسدودة
  • نفس المفهوم يفسر عدة طرق

الحل: تقليد داخل كل وثيقة قبل التصنيف.

رؤية مهمة: تقريباً - تُعامل المحاكاة ك دليل على أهمية مستقلة, ليس الإفراط. إذا أشرح مؤلف مفهوماً بثلاث طرق مختلفة , ذلك مفهوم مهم . نحن نلتقط هذا الإشارة عن طريق زيادة الوضوح

مرحلة 2: استخلاص تقليل

الهدف: منع LLM من الحصول على معلومات إضافية عبر الوثائق

مشكلة: عندما تقوم بالبحث عبر عدة وثائق, يمكن أن تظهر فقرات مماثلة في مصادر مختلفة. لا يجب على LLMM SK2 وصف نفس المعلومات عدة مرات

الحل: بعد التصنيف من قبل RRF (which combines semantic similarity, keyword matchM SK2 salience , and freshnessMSC4 deduplicate across documents keeping the highestMST5scoring segmentM ST6

لماذا بعد RRF? تقييم الـ RRF يمثل أفضل قياس ملموس للأهمية . تقليل قبل التصنيف سيفقد هذا الإشارة .

لماذا يعزز ال Salience فقط عند الإ ingestation

ان الانقسام هو متعمد

المرحلة ما يلتقطه
تحفيز التغذية يركز الكاتب - كم تركز الوثيقة على مفهوم
تقييم البحث أهمية الشؤة - مدى تطابق المحتوى مع إهتمام المستخدم

مزج هذه في عملية البحث قد يربط الرغبة في दस्तावेज مع رغبة المستخدم للوثيقة, لكن قد لا تكون ذات أهمية إلى هذا السؤال. بتحفيز عند الإمتصاصM SK1 نحافظ على إشارة المؤلف' دون تضخيم نتائج البحث


المرحلة 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

العوامل

پارامتر تلقائي وصف S
similarityThreshold ≥0.90 شبيهة الجسيمات فوق التي تعتبر أجزاء متكررة
salienceThreshold 0.05 | الأهمية المحدودة لأخذها بعين الاعتبار ( ضوضاء التصفية
boostPerNearDuplicate 0.15 ≥ زيادة الشجاعة على قرب-مزيج تقليدي (+15%)

أمثلة

تقليد بالضبط (لا تحسن )

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)

المنطق بالنسبة للحدود

  • 0.90 شبيهة: بناء على الأبحاث (NVIDIA NeMo يستخدم 0.90-0.92, معيار صناعي للتفكيك الدلالي)
  • 0.05 الأهمية: يحرك أجزاء ذات قيمة منخفضة جداً من - بينما يحافظ على معظم المحتوى
  • 15% تحسن : إشارة ذات مغزى بدون زيادة -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)

العوامل

پارامتر تلقائي وصف S
similarityThreshold 0.90 ≥ حد شبيهة الجسيمات بالنسبة للخط الcross-doc dedup

لماذا أرسل

RRF (Reciprocal Rank Fusion) combines four signalsM SK2

  1. النتيجة الكثيفة: تشابه لغوي للبحث
  2. BM25 النتيجة: كلمة قاموس match
  3. درجة الشفقة: Importance within document
  4. تقييم الطابع: تحفيز الإلتفاف

تقليل الـ AFTER 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.

اشكال الفشل & التجارة-أف

الحدود المعروفة

حالت الفشل الوصف التخفيض
الايجابية الخاطئة (overM SK1dedup) إثنين من المبادئ المتباينة لكنها مرتبطة ببعضها البعض يمكن أن تتجاوز 0.90 التشابه Trade Accepted - Off favouring reduced redundancy ; threshold is tunable
السلبية الخاطئة (بالأسفل-منخفضة ) Segments very short may embed poorlyM SK1 missing semantic similarity Hash-based exact duplicate detection catches identical text
دمج الهبوط تغيير نماذج الدمج يعترض افتراضات الاستبعاد يتطلب إعادة الدمج الكاملة
الحساسية للترتيب الخيار الجشع يعني أول أعلى - يفوز الجزء العادي يتخفف عن طريق الفرز المستقر; أعلى ً- جزء العادي يتم الحفاظ عليه

التجارة المقبولة

  • الدقة فوق recall: نحن نفضّل في بعض الأحيان الإبقاء بالقرب من - نسخ أكثر من حذف محتويات مختلفة بشكل عشوائي
  • تخزين فوق الدقة: نقوم بتخزينdocument per- بدلاً من التراجع العالمي للحفاظ على أصل المصدر
  • البساطة فوق التحسين: O(n²) هو مقبول بالنسبة للحجمات النموذجية للوثائقM SK2 LSH يضيف تعقيدا

وجهات النظر متعددة اللغات

سلوك تقليل مع محتويات متعددة اللغات:

سيناريو السلوك المنطق
نفس اللغة يطبق الإنخفاض العادي تُلتقط المداخلات شبيهة الدلالية
الاقتباسات اللغوية المتقاطعة لا تقلل يحافظ على المصدر- تنوع اللغة
وثيقة لغة المزج تفكيك داخل مجموعات اللّغة تماثل الدمج يفصل اللّغام بشكل طبيعي

إختيار التصميم: کراس- لا يتم دعم الاستبعاد اللغوي بشكل واضح. هذا يحافظ على القدرة على استخلاص نفس الحقائق في اللغة المفضلة لـ' أو مقارنة كيف أن مختلف مصادر الجملة الأشياء

تحسينات مستقبلية: مداخلة- يمكن أن يطبق الخصم اللغوي من خلال الترجمة - دمجات غير متغيرة إذا احتجنا إلى ذلك


الأمن & وجهات النظر المعارضة

نظام المحاكاة يحتوي على حماية ضمنية:

вектор الهجمة الحماية
إنخفاض نسبة اللعاب عن طريق التكرار تكافئ عند 1.0; نسخ متكررة دقيقة don' لا تكافح
Kopi-paste spam across documents Cross-doc dedup عند استرجاع يزيل النتائج الإفراطية
تلاعب بالدرجات من خلال حقنة متكررة إنخفاض يحدث بعد التصنيف , يمنع التضخم في المرتبة
إنفجار لوح ال boilerplate تسقط إكتشاف التصادم المقطعي بالضبط بدون دفع

ملاحظة: التفكيك ليس حدوداً أمنياً. المحتوى السيئ الذي يمر عبر مرشحات الإمتصاص سيتم индексته. تصفية المحتوى يجب أن تحدث في المسار العلوي


التفاعل مع GraphRAG

المحاكاة و GraphRAG متعامدة بشكل مقصود:

النظام يعمل على الهدف S
تقليل النسبة Segments (text chunks) Remove redundant retrieval results
GraphRAG الكيانات & العلاقات رسم بياني بناء المعرفة , مرجع حل

لماذا نفصل

  • جزء يشير إلى " "Apple" " وجزء آخر يشير الى" شركة" يمكن أن ينحرف كنص متشابه ولكن يمثل نفس الكيان "M SK4" الذي يجب حله في "GraphRAG"
  • Dedup لا يحتاج ' إلى إدراك الكيان ; إنه يعمل فقط على شبيهة الدلالية
  • Entity-aware dedup could be added later as an enhancement, not a replacement

قابلية الملاحظة & قياسات

السجل الحالي

الإدخال:

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

استrufen:

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

قياسات مقترحة

للمراقبة الإنتاجية, تأخذ في الإعتبار المتابعة:

Metric Description Healthy Range S
dedup_ratio_ingestion % أجزاء تم إزالتها عند الإمتصاص
dedup_ratio_retrieval % أزيلت Segments at retrieval
avg_salience_boost متوسط الإرتفاع applied per document 0.05-0.20
max_salience_boost أعلى إرتفاع في الوثيقة
dedup_by_doc_type معدل الخصم تم تقسيمه حسب نوع الوثائق إختلافات МSK2

نصيحة لحل الأخطاء

  • تخفيض التغذية العالي (>50%): يمكن أن يكون للوثيقة لوحة حوضية مفرطة أو أن تكون ناتجة عن طريق الـ -
  • انخفاض نسبة الاستهلاك (<5%): يحتوي على محتويات متنوعة (goodM SK1 أو أن المداخلات ضعيفة (investigate)
  • استبعاد عالي للبحث (>30%): السؤال قد يكون واسعاً جداً , أو corpus لديه العديد من الوثائق المشابهة
  • اللعاب يقترب من 1.0: لقد تم تسليط الضوء على مفهوم ; وتحقق من صحته ' وشرعيته "M SK2" وليس spam

الإعداد

يتم إعداد المحاكاة من خلال 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
      }
    }
  }
}

إعدادات الإمتصاص

پارامتر تلقائي وصف S
Enabled true أُمكن / يُمكن تقليل التدخين في الإمتصاص
SimilarityThreshold 0.90 حد مقاربة الكوسين للكشف عن التكرار
SalienceThreshold 0.05 النقطة المحدودة التي يجب أخذها بعين الاعتبار
EnableSalienceBoost true تحسن الوضوح لقرب-تقليدات
BoostPerNearDuplicate 0.15 الإرتفاع الأساسي لكل تقريبا- نسخة متكررة (+15%)
MaxSalienceBoost 1.0
BoostDecayMode Logarithmic Linear أو Logarithmic التآكل
LogBase 2.0 قاعدة للتحلل لوغاريتمي

إعداد البحث

پارامتر تلقائي وصف S
Enabled true أُمكن / يُمكن استبعاد تفكيك
SimilarityThreshold 0.90 حد مقاربة الكوسين
MinRelevanceScore 0.25 نقاط RRF المحدودة لتشمل

إعدادات التحليل

پارامتر تلقائي وصف S
EnableLogging true عمليات تقليل الملاحظات
EnableMetrics true جمع القياسات للمراقبة
HighIngestionDedupThreshold 0.50 أحذركم إذا >50% تم تقليله عند الإمتصاص
HighRetrievalDedupThreshold 0.30 أحذرك إذا >30% تم تقليله عند الترقب
HighSalienceBoostThreshold 0.60 أحذركم إذا تجاوزت الإرتفاع 60%

تحفيز اشكال الخسارة

الطريقة الخطية (simpleM SK1predicable):

boost = boostPerNearDuplicate × count

مثال: M SK1 بالقرب من-dupes × | | 0.15 |

الطريقة المنطقية (عودة منخفضة,លំនាំដើមM SK2

boost = boostPerNearDuplicate × log₂(1 + count)

مثال: M SK1 بالقرب من-dupes → | | 0.15 \ × log |

يُوصي بنظام ال로그 لأن :

  • أول بعض النسخات لديها المؤشر الأقوى (تركيز المؤلف)
  • العديد من النسخات يمكن أن تشير إلى لوحة ال boiler, ليست مهمة
  • يمنع إنخفاض الجاذبية المنتشرة

وجهات النظر في الأداء

التعقيد

المرحلة التعقيد الحجم الطبيعي التأثير
التدخين O(nM SK3 50-500 أجزاء
إستخراج O(mM SK3 20-100 أجزاء

قياس الطريق

للوثائق الكبيرة جداً (10,000+ أجزاء):

  1. LSH (LocalityM SK1Sensitive Hashing): O(n) تقليل تقريبي
  2. مقارنة بالمجموعات: عملية في قطع لتقليل الذاكرة
  3. التصفية المبكرة: حد الجاذبية الأكثر عدوانية

التنفيذ الحالي مُحسناً لصور مستندات نموذجية. LSH يضيف تعقيداً دون فائدة لأغلب الحالات المستخدمة.


مقارنة بالبحث

المقاربة
lucidRAG
م Curator NVIDIA NeMo دليل SemDeDup
MinHash LSH (standard) ≥0.80 Jaccard MSC5 paper Google C4, GPT-3 paper
SemHash 0.90-0.95 ≥ GitHub

حدنا 0.90 يتوافق مع أفضل الممارسات في مجال المحاكاة الدلالية


ما لا يتم تقليله

نوع المحتوى السبب
متقاطعةM SK1document at ingestion Preserves per-source resolution and attribution
LowM SK1Content of similarity (<0.90) Considered semantically distinct
أنواع مختلفة من الأجزاء الرؤوس مقابل الفقرة لها دورات هيكلية مختلفة
Cross-إقتباسات لغة يحافظ على تنوع اللغة

وضعية تنفيذ

الميزة الحالة موقع
مراحل قابلة للضبط تطبيق DeduplicationConfig श्रेणी
تضخيم التدهور ( مقياس الملاحظات) ♫✅ تم تنفيذه ♫ BoostDecayMode.Logarithmic
التحليلات المنقطعة/ القياسات ✅ المطبقة DeduplicationResult<T> سجل
إدماج خدمة الإتصال بالإنترنت MSC2 تم تنفيذه MSC3 IDeduplicationService

تحسينات مستقبلية

  1. لوحة البيانات التحليلية : تتبع بصري معدلات لكل نوع من الوثائق
  2. کراس-إختيار لغوي: الترجمة-مداخلات غير متغيرة للمغامرة متعددة
  3. المؤسسة-التراجع المُخبر: إستخدم وحدات GraphRAG كإشارة إضافية (لا استبدال)
  4. Prometheus/OpenTelemetry: إخراج القياسات لأنظمة مراقبة لوحات المفاتيح

الخلاصة

هذه الاستراتيجية للتفكيك:

  • يحافظ على الإشارة - قريبة- تعزز النسخ أهمية بدلاً من أن يتم التخلص منها
  • يحترم الحدود - مستندات تحافظ على مجموعات القطع المستقلة
  • ثم تصفر الدرجات - يستخدم إشارة RRF كاملة قبل القطع
  • فشل بشكل آمن - يفضل الحفاظ على المحتوى أكثر من الإزالة العدوانية
  • يظل محددا - نفس المدخلات دائماً تنتج نفس المخرجات
logo

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