كيفية تقييم جودة الاسترجاع في خطوط أنابيب RAG (الجزء 3): DCG@k وNDCG@k


تأكد أيضًا من مراجعة الأجزاء السابقة:

👉الجزء 1: الدقة@k، وRecall@k، وF1@k

👉الجزء 2: متوسط ​​الرتبة المتبادلة (MRR) ومتوسط ​​الدقة (AP)

في سلسلة منشوراتي حول تدابير تقييم الاسترجاع لخطوط أنابيب RAG، ألقينا نظرة تفصيلية على مقاييس تقييم الاسترجاع الثنائي. وبشكل أكثر تحديدًا، في الجزء الأول، تناولنا مقاييس تقييم الاسترجاع الثنائية، مثل HitRate@K، وRecall@K، وPrecision@K، وF1@K. تُعد مقاييس تقييم الاسترجاع الثنائية وغير المدركة للترتيب في الأساس النوع الأساسي من المقاييس التي يمكننا استخدامها لتسجيل أداء آلية الاسترجاع الخاصة بنا؛ يقومون فقط بتصنيف النتيجة إما على أنها ذات صلة أو غير ذات صلة، وتقييم ما إذا كانت النتائج ذات الصلة تصل إلى المجموعة المستردة.

بعد ذلك، في الجزء الثاني، قمنا بمراجعة مقاييس التقييم الثنائية والمدركة للترتيب مثل متوسط ​​الرتبة المتبادلة (MRR) ومتوسط ​​الدقة (AP). تقوم المقاييس الثنائية المدركة للترتيب بتصنيف النتائج إما على أنها ذات صلة أو غير ذات صلة وتتحقق مما إذا كانت تظهر في مجموعة الاسترجاع، ولكن علاوة على ذلك، فإنها تحدد أيضًا مدى جودة تصنيف النتائج. بمعنى آخر، يأخذون في الاعتبار أيضًا الترتيب الذي يتم من خلاله استرجاع كل نتيجة، بصرف النظر عما إذا كان يتم استرجاعها أم لا في المقام الأول.

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

هناك مقاييس ذات صلة متدرجة شائعة الاستخدام سنلقي نظرة عليها في منشور اليوم وهما المكاسب التراكمية المخصومة (DCG@K) والمكاسب التراكمية المخصومة الطبيعية (NDCG@k).


أكتب 🍨كريم البياناتحيث أتعلم وأجرب الذكاء الاصطناعي والبيانات. اشترك هنا للتعلم والاستكشاف معي.


بعض التدابير المتدرجة

بالنسبة لمقاييس الاسترجاع المتدرجة، من المهم أولاً فهم مفهوم الملاءمة المتدرجة. وهذا يعني أنه بالنسبة للمقاييس المتدرجة، يمكن أن يكون العنصر المسترد ذا صلة إلى حد ما، كما تم تحديده بواسطة rel_i.

الصورة من قبل المؤلف

🎯 المكاسب التراكمية المخفضة (DCG@k)

الربح التراكمي المخصوم (DCG@k) عبارة عن مقياس تقييم استرجاع متدرج ومدرك للترتيب، مما يسمح لنا بتحديد مدى فائدة النتيجة المستردة، مع الأخذ في الاعتبار الترتيب الذي يتم استرجاعها به. يمكننا حسابها على النحو التالي:

الصورة من قبل المؤلف

هنا البسط rel_i هي الأهمية المتدرجة للنتيجة المستردة، وهي في الأساس تقدير كمي لمدى ملاءمة قطعة النص المستردة. علاوة على ذلك، فإن مقام هذه الصيغة هو سجل ترتيب النتيجة أي. بشكل أساسي، يسمح لنا هذا بمعاقبة العناصر التي تظهر في المجموعة المستردة ذات الرتب الأدنى، مع التأكيد على فكرة أن النتائج التي تظهر في الأعلى أكثر أهمية. وبالتالي، كلما كانت النتيجة أكثر صلة بالموضوع، زادت النتيجة، ولكن كلما انخفض الترتيب الذي تظهر فيه، انخفضت النتيجة.

دعنا نستكشف هذا الأمر بمثال بسيط:

الصورة من قبل المؤلف

على أية حال، إحدى المشكلات الرئيسية في DCG@k هي أنها، كما ترون، هي في الأساس دالة مجموع لجميع العناصر ذات الصلة. وبالتالي، فإن المجموعة المستردة التي تحتوي على المزيد من العناصر (k أكبر) و/أو عناصر أكثر صلة ستؤدي حتمًا إلى DCG@k أكبر. على سبيل المثال، إذا أخذنا في الاعتبار k = 4، فسننتهي بـ DCG@4 = 28.19. وبالمثل، فإن DCG@6 سيكون أعلى، وهكذا. مع زيادة k، يزداد عادةً DCG@k، نظرًا لأننا نقوم بتضمين المزيد من النتائج، ما لم تكن العناصر الإضافية ذات صلة بالموضوع. ومع ذلك، هذا لا يعني بالضرورة أن أداء الاسترجاع الخاص به متفوق. على العكس من ذلك، فإن هذا يسبب مشكلة لأنه لا يسمح لنا بمقارنة المجموعات المستردة بقيم k المختلفة بناءً على DCG@k.

تم حل هذه المشكلة بشكل فعال من خلال المقياس المتدرج التالي الذي سنناقشه لاحقًا اليوم – NDCG@k. ولكن قبل ذلك، نحتاج إلى تقديم IDCG@K، المطلوب لحساب NDCG@K.

🎯 المكاسب التراكمية المخفضة المثالية (IDCG@k)

الربح التراكمي المخصوم المثالي (IDCG@k)، كما يوحي اسمه، هو DCG الذي سنحصل عليه في الوضع المثالي حيث يتم تصنيف مجموعتنا المستردة بشكل مثالي بناءً على مدى صلة النتائج المستردة. دعونا نرى ما سيكون عليه IDCG في مثالنا:

الصورة من قبل المؤلف

على ما يبدو، بالنسبة إلى k ثابت، فإن IDCG@k سيكون دائمًا مساويًا أو أكبر من أي DCG@k، لأنه يمثل النتيجة لاسترجاع مثالي وتصنيف النتائج لـ k معين.

وأخيرا، يمكننا الآن حساب الربح التراكمي المخصوم الطبيعي (NDCG@k)، باستخدام DCG@k وIDCG@k.

🎯 المكاسب التراكمية المخصومة الطبيعية (NDCG@k)

يعد الربح التراكمي المخصوم الطبيعي (NDCG@k) في الأساس تعبيرًا طبيعيًا عن DCG@k، مما يحل مشكلتنا الأولية ويجعلها قابلة للمقارنة لأحجام المجموعات المستردة المختلفة k. يمكننا حساب NDCG@k باستخدام هذه الصيغة المباشرة:

الصورة من قبل المؤلف

بشكل أساسي، NDCG@k يسمح لنا بتحديد مدى قرب الاسترجاع والتصنيف الحالي لدينا من المستوى المثالي، بالنسبة لـ k معين. وهذا يزودنا بسهولة بعدد ذلك يكون قابلة للمقارنة لقيم مختلفة من k . في مثالنا، NDCG@k=5 سيكون:

الصورة من قبل المؤلف

بشكل عام، يمكن أن يتراوح NDCG@k من 0 إلى 1، حيث يمثل 1 استرجاعًا مثاليًا وتصنيفًا للنتيجة، ويشير 0 إلى فوضى كاملة.

إذًا، كيف يمكننا فعليًا حساب DCG وNDCG في بايثون؟

إذا كنت قد قرأت دروس RAG التعليمية الأخرى، فأنت تعرف أن هذا هو المكان الذي الحرب والسلام ومع ذلك، فإن مثال الكود هذا أصبح ضخمًا جدًا بحيث لا يمكن تضمينه في كل منشور، لذا بدلاً من ذلك سأوضح لك كيفية حساب DCG وNDCG في Python، وأبذل قصارى جهدي للحفاظ على هذا المنشور بطول معقول.

لحساب مقاييس الاسترجاع هذه، نحتاج أولاً إلى تحديد مجموعة الحقيقة الأساسية، تمامًا كما فعلنا في الجزء الأول عند حساب Precision@K وRecall@K. الفرق هنا هو أنه بدلاً من وصف كل قطعة مستردة بأنها ذات صلة أم لا، باستخدام الارتباطات الثنائية (0 أو 1)، نقوم الآن بتعيين درجة ملاءمة متدرجة لها؛ على سبيل المثال، من غير ذي صلة تمامًا (0) إلى ذو صلة فائقة (5). وبالتالي، فإن مجموعة الحقيقة الأساسية لدينا ستتضمن أجزاء النص التي لديها أعلى درجات الصلة لكل استعلام.

على سبيل المثال، لاستعلام مثل “من هي آنا بافلوفنا؟”، قد تحصل المجموعة المستردة التي تتطابق تمامًا مع الإجابة على درجة 3، والقطعة التي تذكر المعلومات المطلوبة جزئيًا يمكن أن تحصل على 2، والقطعة غير ذات الصلة تمامًا ستحصل على درجة صلة تساوي 0.

باستخدام قوائم الصلة المتدرجة هذه لمجموعة النتائج المستردة، يمكننا بعد ذلك حساب DCG@k، وIDCG@k، وNDCG@k. سوف نستخدم بايثون math مكتبة للتعامل مع المصطلحات اللوغاريتمية:

import math

أولًا، يمكننا تحديد دالة للحساب دي سي جي @ ك على النحو التالي:

# DCG@k
def dcg_at_k(relevance, k):
    k = min(k, len(relevance))
    return sum(rel / math.log2(i + 1) for i, rel in enumerate(relevance[:k], start=1))

يمكننا أيضًا الحساب IDCG@k تطبيق منطق مماثل. في الأساس، IDCG@k يكون دي سي جي @ ك من أجل استرجاع وتصنيف مثاليين؛ وبالتالي يمكننا حسابها بسهولة عن طريق الحساب دي سي جي @ ك بعد فرز النتائج تنازليا حسب أهميتها.

# IDCG@k
def idcg_at_k(relevance, k):
    ideal_relevance = sorted(relevance, reverse=True)
    return dcg_at_k(ideal_relevance, k)

وأخيرا، بعد أن قمنا بالحساب دي سي جي @ ك و IDCG@k، يمكننا أيضًا الحساب بسهولة NDCG@k كوظيفتهم. وبشكل أكثر تحديدًا:

# NDCG@k
def ndcg_at_k(relevance, k):
    dcg = dcg_at_k(relevance, k)
    idcg = idcg_at_k(relevance, k)
    return dcg / idcg if idcg > 0 else 0.0

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

relevance = [3, 2, 3, 0, 1]

بعد ذلك، يمكننا حساب مقاييس الاسترجاع المتدرجة باستخدام وظائفنا:

print(f"DCG@5: {dcg_at_k(relevance, 5):.4f}")
print(f"IDCG@5: {idcg_at_k(relevance, 5):.4f}")
print(f"NDCG@5: {ndcg_at_k(relevance, 5):.4f}")

وكان ذلك! هذه هي الطريقة التي نحصل بها على مقاييس أداء الاسترجاع المتدرجة لخط أنابيب RAG الخاص بنا في Python.

وأخيرًا، كما هو الحال مع جميع مقاييس أداء الاسترجاع الأخرى، يمكننا أيضًا متوسط ​​درجات المقياس عبر استعلامات مختلفة للحصول على درجة إجمالية أكثر تمثيلاً.

في ذهني

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

وهذا يسمح لنا بقياس أداء آلية الاسترجاع وتقييمه وتحسينه في نهاية المطاف، مما يمهد الطريق في نهاية المطاف لبناء خط أنابيب RAG فعال ينتج إجابات ذات معنى، ترتكز على المستندات التي نختارها.


أحب هذا المنصب؟ لنكن أصدقاء! انضم إلي على:

📰المكدس الفرعي 💌 واسطة 💼ينكدين اشتري لي القهوة!


اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

زر الذهاب إلى الأعلى