الامتحان النهائي: أنظمة RAG الكاملة
تقييم شامل يغطّي الوحدات العشر كلها. 50 سؤالًا تختبر إتقانك لمفاهيم RAG وتنفيذها.
التعليمات
- أجب عن الأسئلة الخمسين كلها
- كل سؤال يساوي نقطتين
- درجة النجاح: 70% (70 نقطة)
- الوقت المقترح: 60-90 دقيقة
الجزء 1: الأساسيات (س1-10)
س1: علامَ يشير RAG وما الغرض الرئيسي منه؟
الإجابة: Retrieval-Augmented Generation. يعزّز نماذج LLM بتزويدها بوثائق مسترجعة ذات صلة كسياق لإجابات أدق ومثبتة.
س2: سمِّ المراحل الثلاث الرئيسية لخط أنابيب RAG.
الإجابة: 1) الفهرسة (دون اتصال)، 2) الاسترجاع (متصل)، 3) التوليد (متصل).
س3: ما المشكلات الأربع الرئيسية التي يعالجها RAG لنماذج LLM؟
الإجابة: 1) الهلوسات، 2) انقطاع المعرفة، 3) غياب الوصول إلى البيانات الخاصة، 4) حدود الـ tokens/السياق.
س4: اشرح الفرق بين RAG وfine-tuning.
الإجابة: يضيف RAG المعرفة عبر الاسترجاع (ديناميكي وقابل للتحديث)؛ يغيّر fine-tuning سلوك النموذج (ثابت ويتطلّب إعادة تدريب).
س5: ما حجم الـ chunk والتداخل النموذجي لأنظمة RAG؟
الإجابة: حجم الـ chunk: 500-1500 حرف؛ التداخل: 10-20% من حجم الـ chunk (مثلًا 200 حرف لـ chunks من 1000 حرف).
س6: ما هي embeddings ولماذا هي مهمة لـ RAG؟
الإجابة: تمثيلات متجهية كثيفة للنص تلتقط المعنى الدلالي. تمكّن البحث بالتشابه لإيجاد الوثائق ذات الصلة.
س7: ما هو cosine similarity وما نطاقه؟
الإجابة: مقياس يقيس الزاوية بين المتجهات؛ النطاق من -1 إلى 1 (1 = الاتجاه نفسه، 0 = متعامد).
س8: سمِّ ثلاث قواعد بيانات متجهية شائعة.
الإجابة: أي ثلاث من: Pinecone، Weaviate، Chroma، Qdrant، Milvus، pgvector، FAISS.
س9: ما هو HNSW ولماذا يُستخدم كثيرًا؟
الإجابة: Hierarchical Navigable Small World - خوارزمية قائمة على الرسوم البيانية للبحث التقريبي السريع عن أقرب جار بجودة جيدة.
س10: ما هو المسترجع في LangChain؟
الإجابة: مكوّن يأخذ استعلامًا ويعيد الوثائق ذات الصلة من vector store.
الجزء 2: معالجة الوثائق (س11-18)
س11: سمِّ ثلاثة أنواع من محمّلات الوثائق في LangChain.
الإجابة: أي ثلاث من: PyPDFLoader، TextLoader، CSVLoader، WebBaseLoader، UnstructuredPDFLoader، Docx2txtLoader.
س12: ما هو RecursiveCharacterTextSplitter وكيف يعمل؟
الإجابة: مقسّم نص يحاول التقسيم حسب الفقرة ثم الجملة ثم الكلمة ثم الحرف، متبعًا تسلسل فواصل.
س13: لماذا يُعد تداخل الـ chunks مهمًا؟
الإجابة: يمنع قطع المعلومات عند حدود الـ chunks ويحافظ على السياق بينها.
س14: كيف ينبغي التعامل مع الجداول في الوثائق؟
الإجابة: أبقِ الجداول كـ chunks مفردة للحفاظ على البنية؛ استخدم مستخرجات متخصّصة مثل Camelot لملفات PDF.
س15: ما هو OCR ومتى يُحتاج إليه؟
الإجابة: التعرف الضوئي على الحروف - لازم لملفات PDF الممسوحة والصور حيث النص غير قابل للقراءة آليًا.
س16: أي metadata ينبغي الحفاظ عليها أثناء معالجة الوثائق؟
الإجابة: ملف المصدر، رقم الصفحة، فهرس الـ chunk، التاريخ، المؤلف، نوع الوثيقة، وأي سمات خاصة بالمجال.
س17: ما هو التقسيم الدلالي (semantic chunking)؟
الإجابة: تقسيم النص بناءً على التشابه الدلالي بدل عدد أحرف ثابت.
س18: كيف تتعامل مع ملفات CSV كبيرة جدًا؟
الإجابة: عالجها على دفعات باستخدام pandas chunksize أو مقاربات بث مماثلة.
الجزء 3: Embeddings (س19-25)
س19: ما الذي يحدّد جودة الـ embedding؟
الإجابة: معمارية النموذج، وبيانات التدريب، وعدد الأبعاد. استخدم معايير MTEB للمقارنة.
س20: سمِّ نموذجي embedding تجاريين واثنين مفتوحَي المصدر.
الإجابة: تجاريان: OpenAI text-embedding-3، Cohere embed-v3. مصدر مفتوح: BGE، E5، Sentence Transformers.
س21: ما هو MTEB؟
الإجابة: Massive Text Embedding Benchmark - المعيار القياسي لمقارنة جودة نماذج embedding.
س22: متى ينبغي التفكير في استضافة embeddings ذاتيًا؟
الإجابة: حجم كبير (>10M وثيقة)، متطلبات خصوصية البيانات، متطلبات زمن استجابة (<20ms)، أو تحسين التكلفة.
س23: ماذا يحدث إذا استخدمت نماذج embedding مختلفة للفهرسة والاستعلام؟
الإجابة: يفشل الاسترجاع أو يكون أداؤه ضعيفًا جدًا - يجب أن تكون المتجهات من النموذج نفسه لتكون قابلة للمقارنة.
س24: ما المقايضة مع أبعاد embedding أعلى؟
الإجابة: جودة أفضل لكن تخزين أكثر وبحث أبطأ.
س25: كيف يعمل تقليل الأبعاد في text-embedding-3-large؟
الإجابة: يقطع معامل الأبعاد المتجه مع الحفاظ على الجودة عبر تحسين أثناء التدريب.
الجزء 4: الاسترجاع (س26-32)
س26: ما هو البحث الهجين؟
الإجابة: الجمع بين البحث بالكلمات المفتاحية (BM25) والبحث الدلالي المتجهي لنتائج أفضل.
س27: ما هو MMR ومتى تستخدمه؟
الإجابة: Maximum Marginal Relevance - يوازن بين الصلة والتنوّع. استخدمه عندما تريد نتائج متنوعة.
س28: ما هو reranking؟
الإجابة: إعادة تقييم نتائج الاسترجاع الأولية بنموذج أقوى (cross-encoder) لدقة أفضل.
س29: ما هو Reciprocal Rank Fusion؟
الإجابة: طريقة لدمج الترتيبات من عدة مسترجعات في ترتيب نهائي واحد.
س30: ما الفرق بين التصفية قبل الاسترجاع وبعده؟
الإجابة: قبل الاسترجاع: التصفية قبل البحث (أكثر كفاءة). بعد الاسترجاع: تصفية النتائج بعد البحث.
س31: ما هو HyDE؟
الإجابة: Hypothetical Document Embeddings - توليد إجابة افتراضية، تحويلها إلى embedding، واستخدامها للاسترجاع.
س32: ما هو استرجاع self-query؟
الإجابة: استخدام نموذج LLM لاستخراج استعلام دلالي ومرشّحات metadata من إدخال بلغة طبيعية.
الجزء 5: الأطر والتقييم (س33-40)
س33: ما هو LCEL في LangChain؟
الإجابة: LangChain Expression Language - طريقة قابلة للتركيب لبناء chains باستخدام عامل الأنبوب (|).
س34: ما الفرق بين LangChain وLlamaIndex؟
الإجابة: LangChain: بناء chains لأغراض عامة. LlamaIndex: يركّز على فهرسة البيانات والاستعلام عنها.
س35: ماذا يفعل نوع السلسلة "stuff"؟
الإجابة: يضع كل الوثائق المسترجعة في prompt واحد - الأفضل للسياقات الصغيرة.
س36: ما هو RAGAS؟
الإجابة: Retrieval Augmented Generation Assessment - إطار لتقييم RAG تلقائيًا.
س37: سمِّ أربعة مقاييس RAGAS.
الإجابة: Faithfulness، answer_relevancy، context_precision، context_recall.
س38: ماذا يقيس faithfulness؟
الإجابة: ما إذا كانت الإجابة المولَّدة مثبتة في السياق المسترجع (مدعومة به).
س39: فيما يُستخدم LangSmith؟
الإجابة: تتبّع تطبيقات LangChain وتصحيح أخطائها ومراقبتها.
س40: كيف تصحّح خطأ «استُرجعت وثائق خاطئة»؟
الإجابة: اطبع الوثائق المسترجعة، تحقّق من حجم الـ chunk، تأكّد من نموذج embedding، واختبر باستعلامات معروفة.
الجزء 6: الإنتاج (س41-50)
س41: ما هو التخزين المؤقت الدلالي؟
الإجابة: تخزين مؤقت للنتائج للاستعلامات المتشابهة دلاليًا (وليس التطابقات الدقيقة فقط).
س42: ما هو تعدّد المستأجرين في RAG؟
الإجابة: خدمة عدة مؤسسات من نظام واحد مع عزل البيانات.
س43: سمِّ مقاربتين لعزل المستأجرين.
الإجابة: 1) عزل عبر namespace، 2) تصفية metadata باستخدام tenant_id.
س44: ما الذي ينبغي تتبّعه للفوترة في RAG بنموذج SaaS؟
الإجابة: الاستعلامات، الـ tokens المستخدمة، الوثائق المفهرسة، التخزين المستخدم.
س45: ما هو حقن الـ prompt؟
الإجابة: إدخال خبيث مصمَّم للتلاعب بسلوك نموذج LLM.
س46: كيف تمنع حقن الـ prompt؟
الإجابة: التحقّق من الإدخال، والتنظيف، وتصميم prompt آمن.
س47: ما الذي ينبغي تسجيله للتدقيق في RAG الإنتاجي؟
الإجابة: معرّف المستخدم، الاستعلام، الوثائق التي تم الوصول إليها، الطابع الزمني، metadata الإجابة.
س48: عند أي نطاق ينبغي التفكير في sharding؟
الإجابة: حوالي مليون وثيقة فأكثر تتطلّب عادةً sharding.
س49: ما هي الفهرسة القائمة على الطوابير؟
الإجابة: إضافة الوثائق إلى طابور للمعالجة الخلفية غير المتزامنة.
س50: ما العامل الرئيسي في جودة إجابة RAG؟
الإجابة: جودة الاسترجاع - إذا استرجعت الوثائق الصحيحة، يمكن لنموذج LLM توليد إجابات جيدة.
التقييم
| الدرجة | التقدير | التقييم |
|---|---|---|
| 90-100 | A | ممتاز - خبير RAG |
| 80-89 | B | جيد - فهم متين |
| 70-79 | C | ناجح - راجع النقاط الضعيفة |
| 60-69 | D | دون النجاح - يحتاج مزيدًا من الدراسة |
| <60 | F | مراجعة جوهرية مطلوبة |
🎉 تهانينا!
إذا أكملت هذا الامتحان والدورة، فأنت تملك الآن معرفة شاملة بأنظمة RAG. واصل البناء والتجريب!