HyperAIHyperAI
Back to Headlines

كيف تقيّم جودة الاسترجاع في أنظمة RAG: دقة@ك، استرجاع@ك، ودقة F1@ك

منذ 4 أيام

لتقييم جودة استرجاع المعلومات في أنظمة RAG، يُعدّ قياس أداء آلية الاسترجاع خطوة حاسمة قبل تمرير النتائج إلى نموذج لغة كبير (LLM) لإنشاء الإجابة. فالاسترجاع الفعّال للChunks المحتوية على المعلومات المطلوبة هو الأساس لنجاح النظام ككل. في هذا السياق، تُستخدم مجموعة من المقاييس الشائعة لقياس أداء الاسترجاع، خاصة في السياقات التي تعتمد على تقييم ثنائي (Binary Relevance) ودون أخذ الترتيب بعين الاعتبار (Order-Unaware). أولًا، من المهم التمييز بين نوعين من المقاييس: الثنائي، حيث يُصنف كل Chunk على أنه إما مرتبط أو غير مرتبط بالسؤال، والدرجات، التي تُعطي قيمة تقييم متوسطة من 0 إلى 1 حسب درجة الصلة. كما يُمكن تصنيف المقاييس حسب ما إذا كانت تأخذ الترتيب في الاعتبار أم لا، لكننا نركز هنا على المقاييس غير الحساسة للتسلسل. أبرز هذه المقاييس هي: Hit Rate@k: يقيس ما إذا كان هناك على الأقل một نتيجة متعلقة ضمن أول k نتائج. يأخذ قيمة 1 إذا وُجدت نتيجة صحيحة، و0 إذا لم تُوجد. يُعد أبسط مقياس، ويعطي فكرة سريعة عن قدرة النظام على "الوصول إلى الهدف". Precision@k: يقيس نسبة النتائج الصحيحة بين أول k نتائج. يُحسب بقسمة عدد النتائج الصحيحة على k. يُظهر جودة النتائج – أي ما مدى دقة ما تم استرجاعه. Recall@k: يقيس نسبة النتائج الصحيحة التي تم استرجاعها من بين جميع النتائج الصحيحة الممكنة. يُحسب بقسمة عدد النتائج الصحيحة المُسترجعة على العدد الكلي للنتائج الصحيحة. يُظهر اكتمال الاسترجاع – أي ما مدى قدرة النظام على عدم تفويت أي معلومة مهمة. F1@k: متوسط حسابي موزون بين الدقة (Precision) والاحتواء (Recall)، ويُستخدم لتقدير التوازن بين الجودة والكمية. يُحسب كـ ( 2 \times \frac{\text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}} ). يُعد مقياسًا مثاليًا لتقييم الأداء المتوازن. في تجربة عملية باستخدام رواية "الحرب والسلام"، تم اختبار السؤال: "من هي أنّا بافلوفنا؟" مع تحديد 3 chunks مُتوقعة كإجابات صحيحة. بعد تنفيذ عملية الاسترجاع باستخدام متجهات OpenAI وقاعدة بيانات FAISS، ثم إعادة الترتيب باستخدام نموذج Cross-Encoder، تم حساب المقاييس عند k=10. أظهرت النتائج أن Hit Rate@10 = 1 (تم استرجاع نتيجة صحيحة)، وPrecision@10 = 0.4، وRecall@10 = 0.67، وF1@10 = 0.5. هذا يعني أن النظام نجح في استرجاع نتائج متعلقة، لكنه لم يُسترجع كل المحتوى المطلوب (Recall أقل من 1)، وتم استرجاع بعض النتائج غير الدقيقة (Precision ليست عالية). هذه الأرقام تُظهر أن الاسترجاع جيد لكنه ليس مثاليًا، وتشير إلى ضرورة تحسين النموذج أو طريقة التجزئة أو التمثيل المتجهي. من المهم أن نُقيّم هذه المقاييس على مجموعة من الأسئلة (Test Set) وليس على سؤال واحد فقط، ثم نحسب المتوسطات. كما يمكن تجريب قيم مختلفة لـ k لفهم كيفية تغير الأداء مع توسيع أو تضييق نطاق الاسترجاع. باختصار، تقييم جودة الاسترجاع باستخدام Precision@k، Recall@k، وF1@k يُعدّ ضرورة لفهم أداء نظام RAG، واتخاذ قرارات فنية دقيقة لتحسينه. فالنظام لا يمكنه تقديم إجابات دقيقة إذا لم يُسترجع المحتوى الصحيح أولًا.

Related Links