أفضل تقنية تعرف ضوئي على العربية جربتها لم تكن محرك OCR

هذه تدوينة بناء على الملأ عن لبيبة، المساعد الذكي بتقنية RAG الذي بنيته بمفردي لإدارة الشؤون القانونية في زين.

كل عرض تجريبي لأنظمة RAG يبدأ بالطريقة نفسها: حمّل ملفات PDF نظيفة، قسّمها، أنشئ التضمينات، اطرح سؤالًا، واحصل على إجابة ساحرة. ثم تقابل أرشيفًا حقيقيًا. أرشيفنا كان سنوات من المراسلات القانونية العربية — خطابات ممسوحة ضوئيًا بترويسات وأختام وتواقيع وخطوط متنوعة، وأحيانًا نسخة مائلة من نسخة مصورة. الخطوة الأولى في أي خط معالجة هي «استخراج النص»، وعند الخطوة الأولى انهار كل شيء.

القيد الذي شكّل كل شيء

قبل أن تفهم قصة OCR، تحتاج سياقًا واحدًا: لم يكن مسموحًا لأي شيء في هذا النظام أن يغادر بنية زين التحتية. هذه مستندات قانونية — إرسالها إلى واجهة OCR سحابية أو نموذج لغوي مستضاف لم يكن مطروحًا أصلًا. المنظومة كلها تعمل محليًا: واجهة Nuxt.js، وخلفية FastAPI، ونماذج محلية يشغّلها Ollama خلف وسيط LiteLLM. الوسيط أهم مما يبدو: أعطاني واجهة واحدة متوافقة مع OpenAI لكل النماذج، فأستطيع تبديل النماذج أثناء التجارب دون لمس كود التطبيق.

محركات OCR التقليدية والعربية: تركيبة صعبة

بدأت من حيث يبدأ الجميع — محركات OCR التقليدية. مع العربية، تراوحت النتائج بين المتواضعة والضارة فعلًا. الحروف المتصلة، والتشكيل، واتجاه الكتابة من اليمين لليسار مختلطًا بأرقام مرجعية وتواريخ من اليسار لليمين، وخطوط الترويسات الزخرفية — كل واحدة من هذه تُضعف التعرف، والخطابات القانونية تجمعها كلها في صفحة واحدة.

نمط الفشل الذي أخافني لم يكن النص المفقود، بل النص الخاطئ الواثق. في نظام RAG، أخطاء OCR لا تبدو أخطاءً للمستخدم — تُضمَّن وتُسترجَع وتُقدَّم داخل إجابة سلسة. مدخلات فاسدة تعني مخرجات فاسدة بنبرة موثوقة. ولإدارة قانونية، هذا وحده كافٍ لإسقاط النظام.

الحل: دع النموذج يقرأ بنفسه

جاء الحل من اتجاه استبعدته في البداية باعتباره مكلفًا: تجاوز محرك OCR كليًا ودع نموذجًا بصريًا يقرأ صور الصفحات مباشرة. كنت أشغّل gemma4:26b محليًا للتوليد أصلًا؛ توجيهه نحو المستندات الممسوحة غيّر معادلة الإدخال بالكامل.

حيث كان محرك OCR يرى بكسلات ويخمّن حروفًا، قرأ النموذج البصري الصفحة كما يقرؤها الإنسان. تعامل مع الترويسة، وتجاهل الختم المتداخل مع فقرة، وحافظ على اتجاه النص من اليمين لليسار، والأهم — أنتج نصًا نظيفًا بما يكفي للتضمين والاسترجاع بثقة.

المقايضات بصراحة

  • أبطأ وأثقل من محرك OCR. نموذج بصري يقرأ كل صفحة يستهلك وقت GPU حقيقيًا. هذا مقبول للإدخال لأنه عملية دفعية غير متزامنة — لا أحد ينتظرها. لن أضعه في مسار متزامن يواجه المستخدم.
  • النماذج البصرية تهلوس أيضًا. محرك OCR يفشل بصوت عالٍ بحروف مشوهة؛ النموذج اللغوي قد يفشل بنعومة بأن «يصحح» ما يقرؤه إلى شيء يبدو منطقيًا. التدقيق العشوائي لمخرجات النموذج مقابل المستندات الأصلية صار جزءًا من سير عمل الإدخال، لا فكرة لاحقة.
  • القيد المحلي يزيد الأمر صعوبة لا سهولة. نماذج الرؤية السحابية المتقدمة كانت ستؤدي أفضل غالبًا، لكنها كانت خارج الحسابات. الدرس: نموذج مفتوح الأوزان تستطيع تشغيله فعلًا أثمن من نموذج أفضل لا تستطيع.

ما كنت سأقوله لنفسي في البداية

جودة الإدخال هي سقف كل ما بعدها. لا براعة في الاسترجاع ولا هندسة في الموجهات تستعيد معلومة تشوهت عند الدخول. إن كانت مادتك مستندات عربية ممسوحة ضوئيًا، فوزّع جهدك وفقًا لذلك: قضيت في قراءة المستندات قراءة صحيحة وقتًا أطول من أي جزء آخر في النظام — وكان القرار الصائب.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني.