ورقة بناء RAG العربي: قواعد التسوية، ومستخرجات PDF، ونماذج التضمين التي يجب اختبارها أولاً
الورقة الهندسية للاسترجاع العربي: ثماني قواعد للتسوية مع أعمدة لجانب الفهرس وجانب الاستعلام، وقائمة مرتبة لمستخرجات PDF، ونماذج التضمين وإعادة الترتيب التي يجب اختبارها أولاً، وحزمة on-prem التي تبقي البيانات داخل الدولة.
خط المعالجة (pipeline) لـ RAG المضبوط للغة الإنجليزية لا يتعطل مع العربية. بل يسترجع البند الخطأ، ويفوّت رقم مرسوم، ويرفع الفاتورة بهدوء. تكمن الإخفاقات في البنية التحتية: التسوية (normalization)، واستخراج PDF، وفهرس الكلمات المفتاحية، واختيار النموذج (model) الخاص بالتضمين (embedding). تسرد هذه الورقة الإصلاحات بالترتيب الذي يجب تطبيقه.
إنها الرفيق الهندسي لمقالنا الموجه للمشترين حول الأماكن الأربعة التي تكسر فيها العربية خط المعالجة المصمم للإنجليزية، وكيفية وضع ميزانية لها. يشرح ذلك المقال المشكلة لصانع القرار. أما هذا المقال فهو للمهندس الذي يبني النظام.
التجزئة (Tokenization): قسها بنفسك، ولا تعتمد على نسبة جاهزة
أدوات التجزئة القديمة المصممة للإنجليزية تقطع الكلمات العربية إلى أجزاء أكثر بكثير من الكلمات الإنجليزية. أدوات التجزئة الأحدث من عائلات النماذج الكبرى قلصت هذه الفجوة. مقدار هذا التقليص يعتمد على إصدار أداة التجزئة وعلى نصك. العقود، ورسائل الدردشة، وتفريغ المكالمات، كلها تُجزأ بشكل مختلف. أي نسبة تقرأها على الإنترنت تم قياسها على نصوص شخص آخر.
قس نصوصك بدلاً من ذلك. الطريقة لا تستغرق سوى عصر يوم واحد:
- ▸اسحب 200 مستند أو رسالة من حركة البيانات الحقيقية. قم بتضمين اللهجات والنصوص المختلطة عربي-إنجليزي، وليس فقط الفصحى.
- ▸عد الكلمات. ثم عد الـ tokens باستخدام كل أداة تجزئة مرشحة. تنشر OpenAI أدوات التجزئة الخاصة بها في مكتبة tiktoken مفتوحة المصدر. النماذج مفتوحة الأوزان ترفق ملفات التجزئة مع الأوزان، ومكتبة
tokenizersمن Hugging Face تقوم بتحميلها. - ▸اقسم الـ tokens على الكلمات، مرة لكل أداة تجزئة. هذا هو معدل tokens-لكل-كلمة الخاص بك لكل نموذج.
ضع الرقم في معادلات التكلفة وزمن الاستجابة (latency) المذكورة في مقال المشترين. الفجوة بين الصفوف هي التكلفة الحقيقية للتجزئة، بعملتك. سجل الرقم في ورقة البناء. هذا يحدد أيضاً أحجام المقاطع (chunks)، لأن ميزانية المقطع بالـ tokens تستوعب كلمات عربية أقل من الإنجليزية.
قم بالتسوية (Normalize) قبل التضمين أو الفهرسة
الكلمة العربية الواحدة تُكتب بعدة طرق داخل المستند الواحد، وبشكل مختلف مرة أخرى في استعلام المستخدم. بدون التسوية، سيفشل بحث الكلمات المفتاحية في العثور على التطابقات ويتراجع أداء الاسترجاع الهجين. القاعدة الأهم هي الاتساق. طبق نفس الدالة وقت الفهرسة ووقت الاستعلام. أي عدم تطابق بينهما يقلل من معدل الاستدعاء (recall) بصمت.
احتفظ بالنص الأصلي للعرض والاستشهادات. وقم بتسوية نسخة مخصصة للفهرس.
| # | القاعدة | جانب الفهرس | جانب الاستعلام | ملاحظة |
|---|---|---|---|---|
| 1 | أشكال الألف: أ إ آ ٱ تصبح ا | نعم | نعم | أكبر مكسب منفرد للاستدعاء في بحث الكلمات المفتاحية |
| 2 | الألف المقصورة والياء: ى و ي | اختر اتجاهاً واحداً وطبقه | نفس الاتجاه | اتخذ القرار مرة واحدة وقم بتدوينه |
| 3 | التاء المربوطة والهاء: ة و ه | ادمجها لفهرس الكلمات المفتاحية فقط | نفسه | أبقها منفصلة للفهرس الكثيف (dense index)؛ المعنى يختلف |
| 4 | التطويل ـ | إزالة | إزالة | تمديد بصري بلا معنى |
| 5 | التشكيل | إزالة للاسترجاع، احتفظ به في المقطع المخزن | إزالة | تبقى الاستشهادات وفية للمصدر |
| 6 | الهمزة على الواو والياء: ؤ ئ | تسوية لفهرس الكلمات المفتاحية فقط | نفسه | النماذج الكثيفة تتعامل مع الأشكال بنفسها |
| 7 | الأرقام: ٠ إلى ٩ تصبح 0 إلى 9 | نعم | نعم | أرقام المراسيم والتواريخ يجب أن تتطابق في كلا الاتجاهين |
| 8 | علامات العرض الصفري والاتجاهين (ZWJ, ZWNJ, RLM, LRM) | إزالة | إزالة | تتسرب من استخراج PDF |
ثلاث حزم أدوات تطبق هذه القواعد: CAMeL Tools من جامعة نيويورك أبوظبي، وFarasa من معهد قطر لبحوث الحوسبة، وPyArabic. قم بتشغيل تسوية Unicode NFKC أولاً، كما هو محدد في Unicode Standard Annex 15. فهي تحول أشكال العرض العربية، وهي أشكال الحروف المتصلة التي تخزنها بعض ملفات PDF، إلى حروف قياسية.
استخراج PDF والنصوص من اليمين لليسار: حيث تفشل معظم خطوط المعالجة العربية
مستخرجات PDF الافتراضية تشوه اللغة العربية. تخرج الكلمات معكوسة، والحروف منفصلة، والتشكيل متناثر، وخلايا الجداول مبعثرة. ثم تقوم أداة التقطيع بتخزين بيانات تالفة، وتصبح التضمينات مجرد تضمينات لبيانات تالفة.
أدوات يجب اختبارها، مرتبة تقريباً حسب قدرتها على استخراج العربية بشكل صحيح من المرة الأولى:
- ▸PyMuPDF لملفات PDF العربية الرقمية الأصل. يعيد ترتيب النص من اليمين لليسار بشكل أصيل. مشروع pdftext يذكر ذلك كفرق رئيسي في جودة الاستخراج بين PyMuPDF و pdfium في المستندات من اليمين لليسار.
- ▸pdfplumber للجداول، مع معالجة لاحقة خاصة بك من اليمين لليسار على نصوص الخلايا.
- ▸Docling و Unstructured للمستندات المؤسسية المختلطة. كلاهما يحافظ على التخطيط بشكل أفضل من المستخرجات العادية. تحقق منها على ملفاتك الخاصة.
- ▸Marker و MinerU للتخطيطات المعقدة التي تحتوي على معادلات وأشكال.
- ▸Azure Document Intelligence للمسح الضوئي. تدرج Microsoft العربية للنصوص المطبوعة والمكتوبة بخط اليد في جدول دعم اللغات. تسرد الأسئلة الشائعة لـ Amazon Textract ست لغات مدعومة، والعربية ليست من بينها، لذا استبعدها من القائمة.
- ▸Tesseract مع النموذج العربي من tessdata كخيار OCR مفتوح المصدر احتياطي للبيئات المغلقة. توقع نتائج أضعف في المسح الضوئي الرديء والكتابة اليدوية.
بالنسبة للأرشيفات الممسوحة ضوئياً، الخيار أوسع من محرك OCR واحد. يقارن مقال النماذج متعددة الوسائط بين التحليل المدرك للتخطيط مقابل استرجاع صورة الصفحة للمسح الضوئي.
قبل أن تعتمد أداة، استخرج 20 ملف PDF حقيقي بكل خيار مرشح وقارن المخرجات بالصفحة بالعين المجردة. إذا كانت الفقرة الأولى تُقرأ من اليمين لليسار والتشكيل يقع على الحروف الصحيحة، فإن المستخرج يعمل. إذا لم يكن كذلك، فلن ينقذ أي نموذج تضمين خط المعالجة.
التقطيع (Chunking): الخطر في المرجع، وليس الكلمة
القلق الشائع هو أن التقطيع يقسم الكلمات العربية إلى نصفين. هذا نادراً ما يحدث. أدوات التقسيم العودية (Recursive splitters) تقسم عند الفقرات، ثم الأسطر، ثم المسافات. وهي لا تقسم أبداً داخل الكلمة، في أي لغة. أداة تقسيم الحروف الخام بدون فواصل هي فقط من يفعل ذلك، ولا ينبغي أن تكون في خط المعالجة للإنجليزية أيضاً.
الخطر الحقيقي في العربية هو التقسيم داخل مرجع قانوني أو جدول. بند مثل "المادة (12) من المرسوم الملكي رقم م/19" يجب أن يبقى في مقطع واحد مع الرقم الذي يشير إليه. جدول الجرعات يجب أن يبقى سليماً مع صف الرأس الخاص به.
قواعد عملية:
- ▸قسم بناءً على الهيكل أولاً: العناوين، المواد، البنود المرقمة، وحدود الجداول.
- ▸ثم قسم بناءً على علامات الترقيم للجملة العربية: النقطة، وعلامة الاستفهام العربية ؟، والفاصلة المنقوطة العربية ؛. تتضمن CAMeL Tools أداة لتقسيم الجمل.
- ▸حافظ على جملة واحدة من التداخل بين المقاطع المتجاورة، بحيث يفتح المرجع الذي يغلق مقطعاً المقطع التالي أيضاً.
- ▸لا تفصل أبداً صف الجدول عن رأسه. خزن الجدول كمقطع مستقل، أو قطعه صفاً بصف مع تكرار الرأس.
- ▸خزن مسار المادة أو القسم في البيانات الوصفية للمقطع. وبذلك يصل البند المسترجع مع المرسوم الذي ينتمي إليه.
الاسترجاع الهجين: المتجهات الكثيفة مع بحث الكلمات المفتاحية المدرك للزوائد
المتجهات الكثيفة تحمل المعنى. بحث الكلمات المفتاحية (BM25) يحمل السلاسل النصية الدقيقة: أرقام المراسيم، الهويات الوطنية، الاستشهادات بالقضايا، أكواد المنتجات، التواريخ الهجرية. أنت بحاجة لكليهما. لكي يعمل بحث الكلمات المفتاحية العربي، يجب أن يفهم الفهرس الزوائد (clitics)، وهي الكلمات القصيرة التي تلصقها العربية في بداية ونهاية الكلمة. بالنسبة للقارئ، "العقد"، و"والعقد"، و"بالعقد"، و"عقدنا" هي كلمة واحدة. أما بالنسبة لفهرس ساذج فهي أربع كلمات.
مساران ناضجان:
- ▸محلل Lucene العربي، المدمج في Elasticsearch و OpenSearch. توثقه Elastic ضمن محللات اللغات الخاصة بها. يقوم بالتسوية، ويزيل السوابق الشائعة مثل الـ و و و ب و ل، ويطبق مجذراً (stemmer) خفيفاً. إنه رخيص ومفهوم جيداً، وهو الخيار الافتراضي الصحيح.
- ▸التحليل الصرفي لـ CAMeL Tools الذي يغذي محللاً مخصصاً. إنه أكثر دقة في الأشكال المصرفة وأبطأ وقت الفهرسة. استخدمه عندما يفوّت الخيار الافتراضي العديد من الأشكال في استعلامات الاختبار الخاصة بك.
ادمج قائمتي النتائج باستخدام Reciprocal Rank Fusion. لا يحتاج إلى معايرة للدرجات بين الأنظمة الكثيفة والمتناثرة. توثقه Qdrant في دليل الاستعلامات الهجينة، وتدعمه Elasticsearch و Weaviate أيضاً. مرر أفضل 50 إلى 100 مرشح إلى معيد الترتيب.
القائمة المختصرة لنماذج التضمين وإعادة الترتيب
ليس كل نموذج "متعدد اللغات" تم اختباره على العربية. النماذج أدناه لها تغطية عربية موثقة. اختبرها بهذا الترتيب، على مجموعتك الخاصة من الاستعلامات والفقرات المزدوجة.
التضمينات:
- ▸BGE-M3 (BAAI). مخرجات كثيفة ومتناثرة ومتعددة المتجهات من نموذج واحد. أوزان مفتوحة. الخيار الافتراضي عندما يجب تشغيل الاسترجاع on-prem.
- ▸multilingual-e5-large و multilingual-e5-large-instruct (Microsoft). بصمة أصغر من BGE-M3، وموثوق.
- ▸Cohere Embed multilingual. مستضاف. تدرج صفحة نماذج Cohere العربية ضمن اللغات المدعومة.
- ▸OpenAI text-embedding-3-large. مستضاف، موثق في دليل التضمينات. معقول في العربية. اختبره مقابل BGE-M3 قبل اختياره.
- ▸Jina Embeddings v3. أوزان مفتوحة مع خيار الاستضافة. العربية موجودة في قائمة اللغات الموثقة.
معيدات الترتيب (Rerankers):
- ▸BGE Reranker v2 M3 و BGE Reranker v2 Gemma. Cross-encoders متعددة اللغات بأوزان مفتوحة.
- ▸Cohere Rerank. مستضاف، الدفع لكل استعلام، موثق في نظرة عامة على Rerank.
- ▸Jina Reranker v2 multilingual. أوزان مفتوحة مع خيار الاستضافة.
لا تضع أبداً cross-encoder مخصص للإنجليزية فقط أمام المرشحين العرب. إنه يدفن أفضل تطابق تحت المراكز الخمسة الأولى.
احتفظ بنموذج تضمين واحد للاستعلامات العربية والإنجليزية والمختلطة. دع فهرس الكلمات المفتاحية يتولى التسوية الخاصة باللغة. نموذجا تضمين في فهرس واحد يعني هندستين لا تتفقان تماماً أبداً.
قبل أن تقيم أي نموذج، قم بتشفير فقرة من نصوصك باستخدام أداة التجزئة الخاصة به وانظر إلى الأجزاء. دقيقتان في بيئة Python ستظهر لك ما إذا كان النموذج يرى كلمات عربية أم أنقاضاً عربية.
التقييم: مجموعة اختبار تحتوي على العربية
المقاييس الآلية تلتقط التراجعات. لكنها لا تخبرك ما إذا كانت الإجابة صحيحة. قم ببناء مجموعة اختبار من 100 سؤال، مع أسئلة عربية بنسبة تعكس حركة البيانات الفعلية، قبل أن تضبط أي شيء. استمد الأسئلة من استعلامات المستخدمين الحقيقية، وليس من أسئلة مكتوبة أثناء التطوير.
تأكد من وجود خمس فئات: عمليات البحث عن السلاسل النصية الدقيقة مثل أرقام المراسيم والتواريخ، والاستعلامات المعاد صياغتها، والاستعلامات المختلطة عربي-إنجليزي، واستعلامات اللهجات، والأسئلة التي لا تجيب عليها المستندات. قيّم الدقة، وملاءمة الإجابة، واستدعاء السياق باستخدام نموذج حكم قادر على فهم العربية. ثم اطلب من متحدث أصلي قراءة عينة من 50 إلى 100 إجابة لكل إصدار. استعلامات النصوص المختلطة واللهجات تفشل أولاً، لذا أعطها وزناً أكبر في العينة.
حزمة on-prem لعمليات النشر في الخليج
تتطلب العديد من المشاريع في الخليج أن تكون التضمينات، وقاعدة بيانات المتجهات، ونموذج التوليد داخل الدولة، أو على أجهزة العميل الخاصة. نظام حماية البيانات الشخصية في المملكة العربية السعودية، الذي نشرته سدايا (SDAIA)، يقيد نقل البيانات الشخصية خارج المملكة. ويحدد المرسوم بقانون اتحادي رقم 45 لسنة 2021 في الإمارات العربية المتحدة شروط النقل عبر الحدود. وتضيف القواعد القطاعية في الصحة والتمويل المزيد. تشرح قائمة التحقق من الامتثال لـ PDPL الخاصة بنا ما يعنيه كل ذلك لنظام الذكاء الاصطناعي.
الحزمة مفتوحة الأوزان التي تلبي هذه القواعد:
- ▸التوليد: نموذج Qwen أو Llama أو Mistral أو Jais في فئة 8B إلى 32B، يتم تقديمه باستخدام vLLM أو SGLang. انتقل لحجم أكبر فقط إذا أظهرت مجموعة الاختبار فجوة في الأداء.
- ▸التضمينات: BGE-M3 أو multilingual-e5-large على وحدة معالجة رسومات مخصصة، أو مضيف CPU مع المعالجة بالدفعات.
- ▸معيد الترتيب: BGE Reranker v2 M3. يعمل على GPU متواضعة.
- ▸قاعدة بيانات المتجهات: Qdrant أو pgvector. كلاهما يدعم البحث الهجين. المفاضلات عند التوسع موجودة في Qdrant مقابل pgvector عند 10 ملايين متجه.
- ▸OCR: Tesseract مع بيانات عربية داخل بيئات مغلقة، أو نقطة نهاية Azure داخل الدولة إذا سمحت السياسة بذلك.
زمن الاستجابة هو الشكوى المعتادة في on-prem. قس الوقت حتى أول token ووقت الاسترجاع على أجهزتك الخاصة باستخدام موجّهات عربية حقيقية. ثم اعمل على أدوات حزمة التقديم بالترتيب. ما إذا كانت التكلفة الثابتة تتفوق على التسعير لكل token في حجم عملك هو سؤال منفصل، وحسابات نقطة التعادل موجودة في مقالنا حول العائد على الاستثمار في on-premise.
الأسئلة الشائعة
هل ما زلنا بحاجة إلى ترجمة المستندات العربية إلى الإنجليزية قبل الفهرسة؟ لا. نماذج التضمين وإعادة الترتيب متعددة اللغات الحالية تعين العربية مباشرة. الترجمة أولاً تضيف أخطاء، وتزيد زمن الاستجابة، وترفع التكلفة. كما أنها تكسر الاستشهادات، لأن النص المسترجع لم يعد يطابق الصفحة المصدر.
هل يمكن لخط معالجة واحد أن يخدم الفصحى واللهجات الخليجية؟ جزئياً. الفصحى مغطاة جيداً بالنماذج أعلاه. اللهجات أضعف في كل النماذج. ضع استعلامات اللهجات في مجموعة الاختبار أولاً. إذا كان الاستدعاء منخفضاً، أضف خطوة إعادة كتابة من اللهجة إلى الفصحى في جانب الاستعلام، أو قم بإجراء الضبط الدقيق لنموذج التضمين على أزواج من نفس المجال.
هذا الأسبوع، قم بإجراء اثنين من الاختبارات أعلاه على نصوصك الخاصة. استخرج 20 ملف PDF حقيقي بأداتك الحالية وقارنها بالصفحة بالعين المجردة. ثم ابحث في فهرسك عن مصطلح واحد بكل شكل من أشكال الألف وعد الفقرات التي يفوتها كل بحث. سجل الإخفاقات. هذه القائمة هي الصفحة الأولى من ورقة البناء الخاصة بك، وتخبرك بأي قسم أعلاه يجب أن تبدأ.
→ الذكاء الاصطناعي العربي في بيئة الإنتاج: الترميز، اللهجات، والبحث الذي يجد المستند الصحيح → الـ RAG متعدد الوسائط للجداول والرسوم البيانية والمسح الضوئي: ثلاث معماريات ومتى يتم التوجيه حسب الصفحة → تقييم نظام RAG قبل الإطلاق: مجموعة اختبار من 100 سؤال وأربعة مقاييس للقبول