تفاصيل العمل

تطبيق (RAG Technique) Chat with PDFs

? يسمح التطبيق بالتفاعل مع ملفات PDF من خلال الدردشة باستخدام أحد النماذج اللغوية الكبيرة (LLM) مما يساعد في تلخيص النصوص أو استخلاص معلومات معينة منها ويسهّل التعامل مع المستندات الطويلة ويساعد في تقديم إجابات أفضل وأحدث وأكثر دقة مقارنة مع إجابات النموذج الذاتية أو حتى تقديم إجابات لم تكن متوفرة النموذج أصلاً لأنها ليست من البيانات التي تم تدريبه عليها كأن تكون بيانات خاصة أو لاحقة لزمن إصدار النموذج أو غير ذلك (يعتمد ذلك على تقنية تعرف بـ RAG).

? في هذا التطبيق تم الاعتماد على نموذج Mistral NeMo الذي تم بناءه من قبل شركة Mistral الشهيرة بالتعاون مع NVIDIA وهو متاح للاستخدام من خلال منصة Hugging Face أو موقع الشركة.

? يعد هذا النموذج من أفضل النماذج اللغوية بحجم 12 مليار معلمة (12B parameters model) وبنافذة سياق كبيرة (large context window) يصل طولها إلى (128k tokens).

⭕ ملاحظة: يعتبر النموذج ضعيفاً نوعاً ما في المحادثات العربية ولكنه جيد في الإنجليزية جداً مقارنة بحجمه الصغير نسبياً.

تم تصميم واجهة مستخدم تفاعلية بسيطة باستخدام Streamlit وهي إحدى أطر عمل Python التي تركز على تسهيل تصميم واجهات مستخدم تفاعلية باستخدام Python فقط.

تقوم الواجهة بأخذ المدخلات النصية وإرسالها للنموذج من خلال الـ API ليتم توليد إجابات مناسبة ثم عرضها للمستخدم، أيضاً تم استخدام API من Google translate من أجل ترجمة الإجابات التي تظهر في حال ضغط المستخدم على زر الترجمة الذي يظهر أسفل كل إجابة يتم توليدها (تمت إضافة هذا الزر من أجل تسهيل المحادثات باللغة الإنجليزية على من لا يتقنها تفادياً لضعف النموذج في العربية).

بعد تحميل الملفات يُمَرَّر محتواها إلى النموذج ليتم تحديث ذاكرة النموذج بالبيانات المُقدَّمة وعند كتابة الإرسال في مربع الإدخال من المستخدم يتم النظر في إحدى حالتين:

1- إن كان المرسَل ذو صلة بالملفات المحملة فإن النموذج يولد الإجابة بناءً على قدرته في توليد النصوص وعلى ما استخلصه من الملف الذي تم رفعه أو الملفات.

2- إن كان المرسَل ليس له صلة بالملفات المحملة فيتم توليد الإجابة من بيانات النموذج الأساسية التي تم تدريبه عليها.

يتم الاعتماد في هذا التطبيق وتطبيقات أخرى مشابهة بشكل أساسي على (LangChain) وهي إحدى أطر عمل Python الشائعة لتطبيقات NLP.

توضح الصور المرفقة واجهة التطبيق وأجزاء من محادثات مع النموذج يتم فيها الإجابة على الاستفسارات بحسب ملف PDF المقدم.

? باختصار عن RAG وكيف تعمل؟

(Retrieval-Augmented Generation) هي تقنية تعتمد على دمج استرجاع المعلومات مع توليد النصوص لتعزيز قدرات النماذج اللغوية الكبيرة (LLMs) على تقديم إجابات أكثر دقة وموثوقية.

الفكرة الأساسية هي أن النموذج لا يعتمد فقط على المعرفة المخزنة داخله، بل يسترجع المعلومات من مصادر خارجية ثم يستخدم تلك المعلومات لتوليد إجابات أو نصوص بناءً على الطلب دون الحاجة إلى إعادة تدريبه على هذه البيانات المخصصة كما يحصل في الضبط الدقيق (Fine Tuning)

عندما يطرح المستخدم سؤالاً، يقوم النظام أولاً بتمرير هذا السؤال إلى نظام الاسترجاع (Retriever) الذي يبحث عن أجزاء من النصوص ذات الصلة من الملفات المحملة.

يتم تمرير هذه النصوص المسترجعة إلى نظام التوليد (Generator) الذي يقوم بتوليد إجابة تعتمد على تلك المعلومات بشكل تفاعلي بناءً على قدرته في توليد النصوص.

بطاقة العمل

اسم المستقل عبدالرحمن ا.
عدد الإعجابات 0
عدد المشاهدات 2
تاريخ الإضافة
تاريخ الإنجاز