تقيس تغطية الاسترجاع ما إذا كان نظام RAG يجلب كل المعلومات ذات الصلة التي تحتاجها الإجابة. تعرفوا على كيفية قياسها وتحسينها.

تغطية الاسترجاع هي المدى الذي يلتقط فيه نظام الاسترجاع كل المعلومات ذات الصلة الموجودة لاستعلام ما، بدلا من جزء منها فقط. في خط معالجة retrieval augmented generation، تجيب عن سؤال أساسي: من بين كل المقاطع في قاعدة المعرفة التي يمكن أن تساعد في الإجابة عن السؤال، كم عددها الذي استخرجه جهاز الاسترجاع فعليا؟ التغطية شرط أساسي لكل ما يأتي لاحقا، لأن النموذج لا يمكنه الاستدلال إلا بناء على ما يُعطى له.
هذا الأمر مهم لأن إجابة AI لا تكون كاملة إلا بقدر اكتمال الأدلة التي تستند إليها. إذا فوّت الاسترجاع مصدرا أساسيا، فلن يراه النموذج أبدا، وتصبح الإجابة ناقصة أو خاطئة مهما بلغت كفاءة النموذج. بالنسبة لكل من يعمل على أنظمة RAG أو يحاول أن يُستشهد به من قبلها، فإن تغطية الاسترجاع هي حيث تبدأ جودة الإجابة.
تصف تغطية الاسترجاع مدى شمولية جمع جهاز الاسترجاع للمواد ذات الصلة باستعلام ما. وهي أساسية لكل من Recall وPrecision: فبدون تغطية، لا يمكن لأي منهما أن ينجح، لأنه لا يوجد ما هو ذو صلة ليُقيّم. في نظام retrieval augmented generation، تحدد التغطية ما إذا كان المولّد يملك المعرفة الأساسية التي يحتاجها لإنتاج إجابة دقيقة.
المفهوم بديهي. تخيلوا قاعدة معرفة تحتوي على عشرة مقاطع ذات صلة بسؤال ما. جهاز استرجاع بتغطية قوية يُظهر معظمها أو كلها، بينما جهاز بتغطية ضعيفة يعيد اثنين أو ثلاثة فقط ويترك الباقي وراءه. عندئذ يكتب النموذج من منظور جزئي، وهذا ما يفسر ظهور إجابات واثقة لكنها ناقصة، حتى عندما تكون المعلومات الصحيحة موجودة في قاعدة البيانات.
الطريقة الأساسية لتحديد التغطية كميا هي Recall. وفقا لـAutoRAG، يمثل Recall نسبة المستندات ذات الصلة المسترجعة إلى العدد الإجمالي للمستندات ذات الصلة في مجموعة البيانات، ويقيس قدرة النظام على العثور على جميع المستندات ذات الصلة. تعني درجة Recall تبلغ 0.5 أن جهاز الاسترجاع يلتقط نصف المواد ذات الصلة المتاحة فقط، وهو ما يشير إلى فقدان حقيقي للمعلومات.
عمليا، يُقاس هذا كـRecall at k، وهو نسبة المستندات ذات الصلة التي تظهر ضمن أفضل k نتيجة. تقدم Redis مثالا واضحا: إذا كانت هناك عشرة مستندات ذات صلة وظهرت سبعة منها ضمن أفضل عشر نتائج، فإن Recall at 10 يساوي 0.7، أي 70 بالمئة. يعني Recall المرتفع احتمالا أقل لتفويت سياق مهم بالنسبة للنموذج، وهذا بالضبط ما تدور حوله التغطية.
تتجه التغطية وPrecision في اتجاهين مختلفين. Precision هو الجزء من المستندات المسترجعة الذي يكون ذا صلة فعلا، بينما Recall، وهو مقياس التغطية، هو الجزء من كل المستندات ذات الصلة الذي تمكنتم من استرجاعه. تصف AutoRAG Precision بأنه دقة ما أعددتموه وRecall بأنه اكتمال ما وجدتموه، وغالبا ما يُلخص المقياسان معا عبر درجة F1، وهي المتوسط التوافقي بينهما.
هذا التوتر حقيقي وعملي. تشير Redis إلى أن حجم الـchunk يفرض مفاضلة بين Precision وRecall: تقلل الـchunks الأصغر من الضوضاء لكنها قد تُجزّئ المعلومات عبر نتائج عديدة، مما يصعّب تحقيق تغطية كاملة، بينما تحافظ الـchunks الأكبر على سياق أكبر. قد يؤدي السعي إلى أقصى تغطية إلى إغراق النموذج بمقاطع هامشية، لذا فإن الهدف هو تغطية كافية لتحقيق الاكتمال دون طمس الإشارة. يقع هذا التوازن في صميم تقييم الاسترجاع.
لدى Recall البسيط نقطة عمياء. ولأن الصلة تُقيّم عادة مستندًا واحدا في كل مرة، يمكن وسم مقطعين بأنهما ذوا صلة حتى لو كانا يقولان الشيء نفسه، لذا فإن Recall المرتفع لا يضمن تغطية كل زاوية مميزة من زوايا السؤال. لهذا السبب تُقاس التغطية أحيانا على مستوى الأفكار لا على مستوى المستندات.
يعالج Subtopic Recall هذا بقياس نسبة المواضيع الفرعية المميزة التي تغطيها أفضل k مستندات مسترجعة، وهي نظرة أكثر دقة من مجرد عد المستندات ذات الصلة. بالنسبة لسؤال واسع، تعني التغطية الحقيقية إظهار كل جانب ذي معنى، لا عشرة مقاطع شبه متطابقة حول جانب واحد. إن تصميم المحتوى والاسترجاع حول مواضيع فرعية مميزة، على غرار بناء topic cluster قوي، يُحسّن هذا الشكل الأعمق من التغطية.
تشكّل عدة خيارات في خط المعالجة التغطية. يأتي الـchunking أولا: فإذا قسمت الحدود فكرة متماسكة عبر أجزاء، قد يلتقط جهاز الاسترجاع جزءا واحدا ويفوّت الباقي، لذا فإن تقطيع المحتوى المدروس يؤثر مباشرة على مدى اكتمال إمكانية العثور على المعلومات. يهم نموذج الـembedding أيضا، إذ تضع الـembeddings الضعيفة المقاطع المترابطة بعيدة عن بعضها في الفضاء المتجهي وتخفض Recall.
طريقة الاسترجاع هي الرافعة الكبرى الأخرى. قد يُفوّت البحث المتجهي الخالص تطابقات المصطلحات الدقيقة، ولهذا تُحسّن المقاربات الهجينة التي تجمع بين البحث بالكلمات المفتاحية والبحث الدلالي التغطية. تفيد Redis بأن البحث الهجين يوفر تحسنا في Recall بنسبة 15 إلى 30 بالمئة مقارنة بالطرق الفردية. رفع k يرفع التغطية أيضا، وإن كان على حساب زمن الاستجابة وPrecision، لذا يجب ضبطه لا تعظيمه.
تُركّب محركات الإجابة المعتمدة على AI استجاباتها من المقاطع التي تسترجعها، لذا فإن التغطية هي البوابة التي يجب أن يمر عبرها محتواكم ليُرى. إذا لم تشمل مجموعة استرجاع المحرك صفحتكم أبدا، فلن يمكن الاستشهاد بها أو تلخيصها أو التوصية بها، بغض النظر عن مدى موثوقية محتواكم. تمثل التغطية القوية من جانب المحرك فرصة لمحتواكم ليكون من بين المصادر التي يتم جمعها.
هذا يعيد صياغة التحسين حول أن تكونوا قابلين للاسترجاع عبر النطاق الكامل من الاستعلامات والمواضيع الفرعية ذات الصلة. المحتوى الذي يعالج موضوعا بشكل شامل، في مقاطع واضحة ومكتفية ذاتيا، أكثر احتمالا أن يكون الـchunk الذي يسد فجوة تغطية. هذا هو generative engine optimization في الممارسة، والجمع بينه وبين بحث الكلمات المفتاحية وتخطيط المحتوى المنضبط يساعدكم على رسم خريطة المواضيع الفرعية التي يحتاج المحرك إلى تغطيتها.
من جانب النظام، ابدؤوا بالـchunking والـembeddings، ثم أضيفوا استرجاعا هجينا لالتقاط التطابقات التي يفوّتها البحث المتجهي وحده. اضبطوا k تصاعديا حتى تصبح التغطية كافية، وفكروا في توسيع الاستعلام (query expansion) بحيث يتوافق سؤال واحد للمستخدم مع الصياغات المتعددة التي قد تستخدمها مقاطعكم ذات الصلة. قياس Recall at k مقابل مجموعة موسومة يخبركم إن كانت هذه التغييرات تسد الفجوات فعليا.
من جانب المحتوى، اكتبوا بحيث يسهل استرجاع صفحاتكم بالكامل. غطّوا المواضيع الفرعية المميزة بشكل صريح، واحرصوا على أن يكون كل مقطع مركزا ومكتفيا ذاتيا، وتجنبوا دفن الحقائق الأساسية داخل أقسام طويلة ومختلطة تُقسَّم إلى chunks بشكل رديء. تعزيز التأسيس لدى AI بهذه الطريقة يعني أنه عندما يبحث المحرك عن أدلة، يكون محتواكم منظما بحيث يمكن العثور عليه.
يصعب قياس التغطية دون Ground Truth. يتطلب Recall معرفة المجموعة الكاملة للمستندات ذات الصلة، وهو أمر مكلف في الوسم وغالبا ذاتي، لذا تعتمد درجات التغطية على جودة مجموعة التقييم. يمكن لرقم Recall مُرضٍ مقابل مجموعة اختبار ضعيفة أن يخفي فجوات حقيقية في الإنتاج.
لا توجد وجبة مجانية مع Precision أيضا. يميل السعي وراء أقصى تغطية إلى جلب مقاطع هامشية تضيف ضوضاء وتكلفة، وتشير Redis إلى أن الاسترجاع يمكن أن يمثل ما يقارب نصف زمن الاستجابة حتى أول رمز (time-to-first-token)، حيث تتفوق خمسة مقاطع عالية الصلة غالبا على عشرين مقطعا هامشيا. الهدف العملي هو تغطية كافية لكل موضوع فرعي مهم، موازنة مع Precision والسرعة التي يحتاجها التطبيق.
تقيس تغطية الاسترجاع ما إذا كان جهاز الاسترجاع يجد كل المعلومات ذات الصلة التي يحتاجها الاستعلام، وتُقاس أساسا عبر Recall، وبشكل أدق عبر تغطية المواضيع الفرعية. إنها أساس جودة RAG، لأن النموذج لا يمكنه الإجابة إلا بناء على ما يُعطى له، وهي تتشكل عبر الـchunking والـembeddings وطريقة الاسترجاع وk.
للتعمق أكثر، اربطوا هذا الموضوع بـتقييم الاسترجاع وبمعمارية retrieval augmented generation الأوسع، واستخدموا أدوات البحث وتخطيط المحتوى الخاصة بـSorank لتغطية المواضيع الفرعية التي تسترجعها المحركات. مصادر مرجعية: Redis، وMeilisearch، وAutoRAG.
التغطية، المقاسة عبر Recall، تسأل ما إذا كنتم قد وجدتم كل المعلومات ذات الصلة الموجودة. Precision يسأل ما إذا كان ما وجدتموه ذا صلة فعلا. يمكن أن يكون لدى نظام ما Precision مرتفع لكن تغطية منخفضة إذا كان يعيد بضع نتائج نظيفة لكنه يفوّت مقاطع أساسية أخرى. يحتاج RAG الجيد إلى تغطية كافية لإعطاء النموذج الصورة الكاملة، موازنة مع Precision حتى لا يغرق في الضوضاء.
المقياس القياسي هو Recall، وغالبا Recall at k، وهو عدد المستندات ذات الصلة المسترجعة ضمن أفضل k نتيجة مقسوما على العدد الإجمالي للمستندات ذات الصلة. إذا كانت هناك عشرة مستندات ذات صلة واسترجع النظام سبعة منها ضمن أفضل عشر نتائج، فإن Recall at 10 يساوي 0.7. يوسّع Subtopic Recall هذا المفهوم ليسأل عن عدد المواضيع الفرعية المميزة التي تغطيها المجموعة المسترجعة، وهي نظرة أكثر دقة للتغطية.
تُركّب محركات الإجابة المعتمدة على AI استجاباتها من الـchunks التي تسترجعها، لذا إذا لم يكن محتواكم أبدا ضمن مجموعة الاسترجاع تلك، فلا يمكن الاستشهاد به. تعني التغطية القوية من جانب المحرك أنه يجمع النطاق الكامل من المصادر ذات الصلة، وهذه فرصتكم لتكونوا واحدا منها. كتابة محتوى واضح وكامل وجيد البنية يعالج مواضيع فرعية مميزة يرفع فرصكم في أن يتم استرجاعكم.