التوليد المعزز بالاسترجاع
Retrieval-Augmented Generation (RAG)
ربط النموذج اللغوي بمصادر موثوقة: التقطيع والفهرسة والاسترجاع وبناء الموجّه والاستشهاد والتقييم.
البنية
الفهرسة: مستندات → تنظيف → تقطيع → تضمين → قاعدة متجهات (+ بيانات وصفية)
الاستعلام: سؤال → تضمين → استرجاع top-k → إعادة ترتيب → موجّه مع المقاطع → نموذج → إجابة + مصادرالتقطيع
- مقاطع من 200 إلى 800 رمز تقريباً بحسب نوع المحتوى، مع تداخل صغير.
- احترم بنية المستند: العناوين والفقرات والجداول.
- احفظ بيانات وصفية: المصدر، والصفحة، والتاريخ، واللغة.
مثال مختصر مستقل عن المزود
from sentence_transformers import SentenceTransformer
import numpy as np
emb = SentenceTransformer("sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2")
chunks = [{"id": "ml-1", "text": "التحقق المتقاطع يقسم البيانات إلى طيات..."},
{"id": "dl-3", "text": "الانتشار الخلفي يحسب التدرجات بقاعدة السلسلة..."}]
M = emb.encode( for c in chunks], normalize_embeddings=True)
def retrieve(question, k=3, min_score=0.35):
q = emb.encode(question, normalize_embeddings=True)
scores = M @ q
order = np.argsort(scores)[::-1][:k]
return [(chunks[i], float(scores[i])) for i in order if scores[i] >= min_score]
def build_prompt(question, hits):
ctx = "\n\n".join(f"[{c['id']}] {c['text']}" for c, _ in hits)
return ("أجب عن السؤال اعتماداً على المقاطع التالية فقط، واذكر معرّف المقطع بين قوسين. "
"إذا لم تجد الإجابة فيها فقل إنها غير متوفرة.\n\n"
f"المقاطع:\n{ctx}\n\nالسؤال: {question}")
hits = retrieve("كيف أقيّم نموذجي بموثوقية؟")
prompt = build_prompt("كيف أقيّم نموذجي بموثوقية؟", hits)
# answer = call_llm(prompt) ← دالة تستدعي النموذج الذي تختارهتحسينات شائعة
- البحث الهجين: BM25 + تضمينات.
- إعادة الترتيب: نموذج cross-encoder يعيد ترتيب أفضل النتائج.
- إعادة صياغة الاستعلام أو تقسيمه إلى أسئلة فرعية.
- ترتيب السياق: ضع المقاطع الأهم في البداية أو النهاية، إذ أظهرت دراسة Lost in the Middle أن النماذج قد تهمل المعلومات في وسط السياق الطويل.
التقييم
| المكون | المقياس |
|---|---|
| الاسترجاع | Recall@k، MRR |
| الإجابة | الصحة مقارنة بإجابة مرجعية |
| الأمانة | هل كل ادعاء مدعوم بمقطع؟ |
| الاستشهاد | هل تشير المصادر فعلاً إلى ما يُستشهد به؟ |
الأمان
المستندات قد تحتوي على تعليمات مدسوسة («تجاهل التعليمات السابقة…»). عامل المقاطع كبيانات لا كتعليمات، وقيّد ما يمكن للنظام فعله بناءً عليها، وتحكم في صلاحيات الوصول إلى المستندات بحسب المستخدم.
مصطلحات الدرس
- أمانة الإجابة Faithfulness
- مدى استناد الإجابة المولدة إلى المقاطع المسترجعة دون إضافة ادعاءات غير مدعومة.
- التقطيع إلى مقاطع Chunking
- تقسيم المستندات إلى مقاطع بحجم مناسب للاسترجاع والسياق، مع تداخل اختياري بينها.
- التوليد المعزز بالاسترجاع Retrieval-Augmented Generation
- نهج يجمع بين استرجاع معلومات من مصادر خارجية وتوليد إجابة من نموذج لغوي مستنداً إليها.
الملخص
التوليد المعزز بالاسترجاع (RAG) يسترجع مقاطع ذات صلة من مصادر خارجية ويضعها في سياق النموذج اللغوي ليجيب استناداً إليها. يتكون من مرحلة فهرسة (تقطيع المستندات وتضمينها وتخزينها) ومرحلة استعلام (استرجاع المقاطع وإعادة ترتيبها وبناء الموجّه والتوليد مع الاستشهاد). يقلل الهلوسة ويتيح تحديث المعرفة دون إعادة تدريب، لكنه يعتمد على جودة الاسترجاع، ويجب تقييم صلة المقاطع وأمانة الإجابة لها، مع الحذر من حقن الموجّهات عبر المستندات.
أسئلة مراجعة
-
ما مرحلتا نظام RAG؟
الفهرسة (تقطيع وتضمين وتخزين) والاستعلام (استرجاع وبناء موجّه وتوليد).
-
لماذا يجب أن يقول النظام «لا أعرف» أحياناً؟
عندما لا تحتوي المقاطع المسترجعة على الإجابة، لأن الإجابة دونها تعني الاعتماد على ذاكرة النموذج واحتمال الهلوسة.
المصادر والمراجع
إكمال الدرس
أكملت كل دروس المسار! يمكنك الآن طلب شهادة إكمال المسار.
اطلب الشهادة