Skip to main content
PromptQuorumPromptQuorum
Home/Local LLMs/⁨RAG⁩ محلي ⁨2026⁩: ابنِ أنظمة أسئلة وأجوبة دون واجهات ⁨API⁩ سحابية
Advanced Techniques

⁨RAG⁩ محلي ⁨2026⁩: ابنِ أنظمة أسئلة وأجوبة دون واجهات ⁨API⁩ سحابية

·14 دقيقة للقراءة·By Hans Kuepper · Founder of PromptQuorum, multi-model AI dispatch tool · PromptQuorum

يُتيح التوليد المعزَّز بالاسترجاع (RAG) لنموذج LLM المحلي الإجابة عن أسئلة حول مستنداتك الخاصة. ترفع ملفات PDF وملفات نصية، ويحوّلها النظام إلى embeddings، ويخزّنها في قاعدة بيانات متجهية، ويسترجع الأجزاء ذات الصلة عند الإجابة عن الأسئلة.

يُتيح التوليد المعزَّز بالاسترجاع (RAG) لنموذج LLM المحلي الإجابة عن أسئلة حول مستنداتك الخاصة. ترفع ملفات PDF وملفات نصية، ويحوّلها النظام إلى embeddings، ويخزّنها في قاعدة بيانات متجهية، ويسترجع الأجزاء ذات الصلة عند الإجابة عن الأسئلة. اعتبارًا من أبريل 2026، RAG المحلي جاهز للإنتاج ويلغي تكاليف API.

Key Takeaways

  • RAG = رفع المستندات + الاسترجاع + إجابة LLM المحلي. لا يتطلب تدريبًا.
  • خمس خطوات: (1) تحميل المستندات، (2) تقسيم إلى أجزاء 500-1000 رمز، (3) توليد embeddings، (4) تخزين في قاعدة بيانات متجهية، (5) الاسترجاع عند الاستعلام.
  • أفضل نموذج embedding: nomic-embed-text (137M، يعمل محليًا، متجهات 768 بُعدًا).
  • أفضل قاعدة بيانات متجهية: Chroma (بسيطة، مدمجة) لأقل من مليون مستند؛ Qdrant (موزّعة) للإنتاج.
  • اعتبارًا من أبريل 2026، RAG المحلي أسرع وأرخص من واجهات API السحابية. تعتمد الجودة على دقة الاسترجاع وهندسة المطالبات.

كيف يعمل RAG خطوة بخطوة؟

  1. 1
    استيعاب المستندات: تحميل ملفات PDF أو نصية أو صفحات ويب.
  2. 2
    التقسيم: تقسيم المستندات إلى أجزاء 500-1000 رمز (تداخل 20% لتجنّب قطع السياق).
  3. 3
    Embedding: تحويل كل جزء إلى متجه (768-1536 بُعدًا) باستخدام نموذج embedding محلي.
  4. 4
    التخزين: حفظ المتجهات في قاعدة بيانات متجهية (Chroma، Qdrant، Milvus) مع بيانات وصفية (اسم المستند، الصفحة، الطابع الزمني).
  5. 5
    وقت الاستعلام: تحويل سؤال المستخدم إلى embedding والبحث في قاعدة البيانات المتجهية عن أكثر K جزء تشابهًا (k=5-10).
  6. 6
    تجميع السياق: دمج الأجزاء المسترجَعة في مطالبة مع تعليمات لـLLM المحلي.
  7. 7
    التوليد: يولّد LLM المحلي الإجابة بناءً على السياق المسترجَع.
  8. 8
    العزو: إعادة المستندات التي جاءت منها الإجابة.
بنية RAG المحلي مقسّمة إلى خط أنابيب فهرسة وخط أنابيب استعلام: تحوّل الفهرسة المستندات إلى أجزاء 500-1000 رمز ومتجهات بـ768-1536 بُعدًا تُخزَّن في قاعدة بيانات متجهية، بينما يسترجع الاستعلام أفضل 5-10 أجزاء مطابقة ليولّد LLM المحلي إجابة موثّقة بالمصادر.
بنية RAG المحلي مقسّمة إلى خط أنابيب فهرسة وخط أنابيب استعلام: تحوّل الفهرسة المستندات إلى أجزاء 500-1000 رمز ومتجهات بـ768-1536 بُعدًا تُخزَّن في قاعدة بيانات متجهية، بينما يسترجع الاستعلام أفضل 5-10 أجزاء مطابقة ليولّد LLM المحلي إجابة موثّقة بالمصادر.

ما استراتيجية التقسيم المثلى؟

تحدّد استراتيجية التقسيم جودة الاسترجاع. تقسيم سيئ = معلومات ذات صلة مقسّمة بين الأجزاء، يفشل الاسترجاع.

التقسيم الدلالي (موصى به): التقسيم حسب الجمل أو الفقرات، مع الحفاظ على المعنى. مثال: كل فقرة = جزء واحد.

التقسيم بحجم ثابت: 500 رمز لكل جزء، تداخل 20%. بسيط لكنه قد يقسّم الجمل.

التقسيم العَودي: أولًا حسب الفقرات، ثم حسب الجمل إذا كانت كبيرة جدًا. يحافظ على التسلسل الهرمي.

اعتبارًا من أبريل 2026، التقسيم الدلالي بأجزاء 500-1000 رمز وتداخل 20% هو الأمثل لمعظم حالات الاستخدام.

python
# Python: semantic chunking example
from langchain.text_splitter import RecursiveCharacterTextSplitter

splitter = RecursiveCharacterTextSplitter(
  chunk_size=1000,
  chunk_overlap=200,  # 20% overlap
  separators=["\n\n", "\n", ".", " "]  # Split on paragraph, then sentence
)
chunks = splitter.split_documents(documents)
print(f"Created {len(chunks)} chunks")

أي قاعدة بيانات متجهية يجب أن تستخدم؟

قاعدة البياناتالنوعالسعةجهد الإعدادالأفضل لـ
Chromaمدمجة<مليون مستندpip installالنماذج الأولية، RAG صغير
Qdrantموزّعةغير محدودةDocker أو سحابةالإنتاج، قابلة للتوسّع
Milvusموزّعةغير محدودةمعقّدمؤسسات، نطاق كبير
Weaviateرسم بياني + متجهغير محدودةDockerاستعلامات معقّدة، علاقات
Pinecone (سحابة)مُدارةغير محدودةمفتاح APIبلا خادم، بلا صيانة
مقارنة بين خمس قواعد بيانات متجهية لـ RAG المحلي: Chroma (مدمجة، أقل من مليون مستند)، Qdrant وMilvus (موزّعة، سعة غير محدودة)، Weaviate (رسم بياني مع متجه)، وPinecone (مُدارة سحابيًا).
مقارنة بين خمس قواعد بيانات متجهية لـ RAG المحلي: Chroma (مدمجة، أقل من مليون مستند)، Qdrant وMilvus (موزّعة، سعة غير محدودة)، Weaviate (رسم بياني مع متجه)، وPinecone (مُدارة سحابيًا).

أي نموذج embedding يجب أن تختار؟

النموذجأبعاد المتجهالسرعةالجودةالتوصية
nomic-embed-text (محلي)768سريعممتازالأفضل لـRAG المحلي
bge-m3 (محلي)1024سريعممتازدعم متعدد اللغات
OpenAI text-embedding-3 (سحابي)3072سريع جدًاالأفضل في فئتهنهج هجين
Cohere (سحابي)4096سريعممتازRAG سحابي للإنتاج

كيف تحسّن جودة الاسترجاع؟

تحدّد جودة الاسترجاع نجاح RAG. استرجاع جيد = إجابات جيدة. استرجاع سيئ = هلوسات.

  • اختيار Top K: استرجاع k=5-10 أجزاء. K أعلى = سياق أكثر (أبطأ)، K أقل = تشتيت أقل.
  • عتبة التشابه: تصفية النتائج حسب أدنى درجة تشابه (مثلًا، >0.75). يتجنّب الأجزاء قليلة الصلة.
  • إعادة الترتيب: استخدام reranker (cross-encoder) لإعادة ترتيب الأجزاء حسب الصلة. تحسّن دقة طفيف.
  • البحث الهجين: الجمع بين البحث الدلالي (embeddings) والبحث بالكلمات المفتاحية BM25. يلتقط المستندات ذات الكلمات المفتاحية الدقيقة.
  • توسيع الاستعلام: توسيع استعلام المستخدم بمرادفات أو مصطلحات ذات صلة. يحسّن الاستدعاء (recall).

كيف تقيّم جودة RAG؟

لجودة RAG بُعدان: (1) جودة الاسترجاع (هل حصلنا على أجزاء ذات صلة؟)، و(2) جودة التوليد (هل أجاب LLM جيدًا؟).

تقييم الاسترجاع: إنشاء استعلامات اختبار بمستندات صحيحة معروفة. قياس الدقة (كم من المسترجَع ذو صلة؟) والاستدعاء (هل حصلنا على جميع المستندات ذات الصلة؟).

تقييم التوليد: تشغيل LLM على الأجزاء المسترجَعة وتقييم الإجابات يدويًا (مقياس 0-5) من حيث الدقة والاكتمال.

اعتبارًا من أبريل 2026، يمكن لأدوات التقييم الآلي (مثل Ragas) قياس مقاييس الاسترجاع والتوليد تلقائيًا.

أنماط RAG في الإنتاج

لخدمات الإنتاج، استخدم هذه الأنماط:

  • التخزين المؤقت: تخزين embeddings المستندات المستعلَم عنها بكثرة مؤقتًا لتجنّب إعادة حسابها.
  • الفهرسة التدريجية: إضافة مستندات جديدة دون إعادة فهرسة كل شيء. يدعمها Qdrant وMilvus.
  • المراقبة: تتبّع زمن استجابة الاسترجاع، ومعدل إصابة التخزين المؤقت، وملاحظات المستخدمين حول جودة الإجابات.
  • الحل البديل: إذا فشل الاسترجاع (لا أجزاء ذات صلة)، أجب بـ"لا أملك معلومات حول ذلك" بدلًا من الهلوسة.
  • الإصدارات: الاحتفاظ بإصدارات المستندات لسجلات التدقيق. تخزين أي إصدار استُخدم لكل إجابة.

أخطاء شائعة في تنفيذ RAG المحلي

  • تقسيم المستندات بشكل خاطئ. أجزاء صغيرة كثيرة جدًا = ضوضاء في الاسترجاع. أجزاء كبيرة قليلة = معلومات مقسّمة. اختبر أحجام الأجزاء تجريبيًا.
  • عدم تقييم الاسترجاع. بناء RAG دون اختبار ما إذا كان الاسترجاع يعمل كبناء سيارة دون اختبار المحرك. قِس دائمًا الدقة/الاستدعاء.
  • استخدام embeddings عامة لمستندات متخصصة. قد تحتاج المستندات القانونية أو الطبية أو التقنية إلى embeddings مضبوطة. ضع في اعتبارك نماذج متخصصة بالمجال.
  • نسيان تردد التحديث. إذا تغيّرت المستندات أسبوعيًا، تصبح قاعدة البيانات المتجهية قديمة. ابنِ خط أنابيب لإعادة embedding والتحديثات.
  • توقّع أن يحل RAG محل الضبط الدقيق. RAG هو حقن سياق. الضبط الدقيق هو تكييف نموذج. لأفضل النتائج، اجمع بينهما.

الأسئلة الشائعة حول RAG المحلي

كم عدد المستندات التي يتعامل معها RAG المحلي؟

يتعامل Chroma مع 100 ألف إلى مليون مستند على عتاد استهلاكي. يتوسّع Qdrant إلى مليارات بإعداد موزّع. فوق مليون، استخدم Qdrant أو Milvus.

ما زمن الاستجابة الذي يجب أن أتوقّعه؟

استعلام embedding (nomic-embed-text على CPU): 50-200 مللي ثانية. الاسترجاع (Chroma على القرص): 10-50 مللي ثانية. توليد LLM: 2-10 ثوانٍ (يعتمد على حجم النموذج). الإجمالي: 2-10 ثوانٍ لكل استعلام.

هل يستطيع RAG التعامل مع تحديثات المستندات في الوقت الفعلي؟

نعم. أضف مستندات جديدة إلى قاعدة البيانات المتجهية ديناميكيًا. زمن استجابة الفهرسة 100-500 مللي ثانية لكل مستند، لذا فإن التحديثات في الوقت الفعلي قابلة للتطبيق.

هل RAG المحلي أرخص من واجهات API السحابية؟

نعم. بلا تكلفة لكل رمز، بلا مكالمات API لخدمات خارجية. إعداد embeddings لمرة واحدة ثم استعلامات مجانية.

هل يمكنني استخدام embeddings سحابية مع نماذج LLM محلية؟

نعم. استخدم embeddings من OpenAI أو Cohere أو خدمات سحابية أخرى للفهرسة ثم نماذج LLM محلية للتوليد. نهج هجين.

المصادر

  • توثيق LlamaIndex -- docs.llamaindex.ai
  • دليل RAG من LangChain -- python.langchain.com/docs/use_cases/question_answering
  • توثيق Chroma -- docs.trychroma.com
  • محرك البحث المتجهي Qdrant -- qdrant.tech
  • ورقة RAG (Lewis et al.) -- arxiv.org/abs/2005.11401

A Note on Third-Party Facts

This article references third-party AI models, benchmarks, prices, and licenses. The AI landscape changes rapidly. Benchmark scores, license terms, model names, and API prices can shift between the time of writing and the time you read this. Before making deployment or compliance decisions based on this article, verify current figures on each provider’s official source: Hugging Face model cards for licenses and benchmarks, provider websites for API pricing, and EUR-Lex for current GDPR and EU AI Act text. This article reflects publicly available information as of May 2026.

Run PromptQuorum with a local LLM, your own API keys, or both — you pick the backend.

Join the PromptQuorum Waitlist →

← Back to Local LLMs