غالباً ما يُعد بناء خط أنابيب لتوليد المعلومات المعززة بالاسترجاع (RAG) الخطوة الأولى في تحديث تطبيقات المؤسسات باستخدام نماذج اللغة الكبيرة (LLMs). ومع ذلك، فإن الرحلة من النموذج الأولي إلى نظام جاهز للإنتاج هي حيث تعثر معظم الفرق. التحدي الجوهري ليس في بناء النظام؛ بل في قياس جودته. على عكس البرمجيات التقليدية التي لدينا فيها اختبارات وحدة حتمية، تقدم أنظمة RAG عناصر احتمالية في كل مرحلة: الاسترجاع، وتجزئة السياق، والتوليد. هذا يجعل التقييم أكثر تعقيداً بشكل كبير. في هذا المنشور، سنقوم بتحليل بنية تقييم RAG، متجاوزين مقاييس الدقة البسيطة إلى أطر عمل قوية ومؤتمتة.
لماذا تفشل المقاييس القياسية
لسنوات طويلة، اعتمدنا على مقاييس مثل BLEU أو ROUGE لتقييم توليد النصوص. تعتمد هذه المقاييس على تداخل n-gram مع نص مرجعي. في سياق RAG، هذا النهج معيب جوهرياً. إذا استرجع النظام المستند الصحيح لكنه صاغ الإجابة بشكل مختلف عن المرجع، فإن BLEU سيحاسبه بشدة، حتى لو كانت الإجابة صحيحة من الناحية الواقعية. علاوة على ذلك، لا يخبرنا BLEU شيئاً عن مكون الاسترجاع نفسه. يمكن لنظام أن يسترجع مستندات غير ذات صلة تماماً ولا يزال يهذي بإجابة تبدو شبيهة ظاهرياً بالحقيقة الأرضية، ومع ذلك تظل عديمة الفائدة للمستخدم.
لتقييم RAG بشكل صحيح، يجب أن نفكك المشكلة إلى مرحلتين متميزتين: تقييم الاسترجاع و تقييم التوليد. تتطلب كل مرحلة مقاييس محددة تعالج أنماط الفشل الفريدة الخاصة بها.
قياس أداء الاسترجاع
قبل النظر في ما يولده نموذج اللغة الكبير (LLM)، يجب أن نتأكد من أن نافذة السياق تُغذى بمعلومات ذات صلة. المقاييس الأساسية لهذا الغرض هي الاستدعاء عند K (Recall@K) و متوسط الرتبة العكسية (MRR). يقيس Recall@K جزء المستندات ذات الصلة التي تم استرجاعها من بين أفضل K نتائج. إذا كانت إجابات الحقيقة الأرضية الخاصة بك موجودة في معرفات المستندات [101, 102]، وقام مسترجعك بإرجاع [101, 50, 99]، فإن Recall@2 الخاص بك هو 0.5 (50%).
ومع ذلك، في بيئة الإنتاج، غالباً ما تفتقر إلىannotations للحقيقة الأرضية لكل استعلام. هنا يصبح معدل الإصابة (Hit Rate) عملياً. إذا كنا نعرف أن الإجابة موجودة في قاعدة المعرفة، هل قام المسترجع بسحب القطعة التي تحتوي على تلك الإجابة؟ بالإضافة إلى ذلك، يمكن لدرجات التشابه الدلالي باستخدام نماذج التضمين (Embedding) أن توفر دليلاً أولياً للصلة عندما تكون البيانات الموسومة شحيحة.
تقييم التوليد باستخدام LLM-as-a-Judge
يعد تقييم خطوة التوليد أكثر تعقيداً لأن الإجابة "الصحيحة" الوحيدة نادراً ما تكون موجودة. لقد أحدث نهج LLM-as-a-Judge (نموذج اللغة الكبير كحكم) تحولاً في هذا المشهد. من خلال استخدام نموذج لغة كبير أكثر قوة (مثل GPT-4 أو Claude 3) لنقد إخراج نموذج اللغة الخاص بتطبيقك، يمكننا أتمتة عملية التقييم.
تشمل المقاييس الرئيسية هنا:
- الوفاء (Faithfulness): هل تعتمد الإجابة المولدة حصرياً على السياق المقدم؟ إذا أضف النموذج معرفة خارجية أو اهتدى بحقائق غير موجودة في القطع المسترجعة، فإنه يفشل في هذا المقياس.
- صلة الإجابة (Answer Relevance): هل تتناول الإجابة المولدة سؤال المستخدم فعلياً؟
يتطلب تنفيذ ذلك هندسة حث (Prompt Engineering) دقيقة لتقليل التحيز من نموذج الحكم. فيما يلي مثال مفاهيمي بلغة Python باستخدام بنية مكتبة تقييم قياسية:
from ragas import evaluate
from datasets import Dataset
# Define your test dataset
data_samples = {
'question': ["What is the capital of France?", "Who wrote Hamlet?"],
'answer': ["Paris is the capital of France.", "William Shakespeare wrote Hamlet."],
'contexts': [["Paris is the capital city of France.", "The Eiffel Tower is in Paris."], ["William Shakespeare was an English playwright.", "Hamlet is a tragedy by Shakespeare."]],
'ground_truth': ["Paris", "William Shakespeare"]
}
# Evaluate using default metrics (faithfulness, answer_relevance, context_precision)
result = evaluate(
dataset,
metrics=[faithfulness, answer_relevance, context_precision]
)
print(result)
أدوات عملية: RAGAS و TruLens
إن بناء هذه المقيّمين من الصفر أمر شاق. ظهرت مكتبات مثل RAGAS (نظام تقييم التوليد المعزز بالاسترجاع) و TruLens لحل هذه المشكلة. يحظى RAG بشعبية كبيرة لأنه يسمح بالتقييم القائم على السياق فقط، مما يعني أنك لا تحتاج دائماً إلى إجابات للحقيقة الأرضية لمرحلة التوليد، بل فقط لمرحلة الاسترجاع. فهو يحسب درجة RAGAS المركبة التي توازن بين الوفاء، ودقة السياق، وصلة الإجابة، مما يمنحك رقماً واحداً لتتبع التحسينات بمرور الوقت.
الخاتمة
لا يعد تقييم أنظمة RAG مهمة لمرة واحدة، بل عملية مستمرة. مع نمو قاعدة المعرفة الخاصة بك وتعقيد استعلاماتك، ستفشل المعايير الثابتة في التقاط الفروق الدقيقة لأداء نظامك. من خلال الجمع بين مقاييس الاسترجاع الحتمية وحكام التوليد الاحتماليين المعتمدين على LLM، يمكنك بناء حلقة تغذية راجعة قوية. ابدأ بقياس الاستدعاء، ثم أضف فحوصات الوفاء، وأخيراً، نفذ اختبارات الانحدار المؤتمتة في خط أنابيب CI/CD الخاص بك لضمان تطور نظام RAG الخاص بك بمسؤولية.