مفهوم اصلی
مانند هر نرمافزار دیگری، بعد از ساخت و راهاندازی یک Retriever باید بررسی کنیم که آیا واقعاً عملکرد مناسبی دارد یا خیر.
اگرچه میتوان Retriever را از نظر مواردی مانند:
- Latency (تأخیر پاسخ)
- Throughput (توان پردازشی)
- Resource Usage (مصرف منابع)
ارزیابی کرد، اما مهمترین معیار:
کیفیت جستجو (Search Quality) است.
یعنی:
آیا Retriever اسناد مرتبط را پیدا میکند؟
اجزای لازم برای ارزیابی Retriever
برای استفاده از معیارهای ارزیابی، سه جزء اصلی نیاز است:
1. Prompt
Prompt کاربر باید مشخص باشد.
زیرا یک Retriever ممکن است:
- برای یک Prompt عملکرد عالی داشته باشد.
- برای Prompt دیگر عملکرد ضعیفی داشته باشد.
2. لیست اسناد بازگرداندهشده
باید بدانیم Retriever برای آن Prompt چه اسنادی را برگردانده است.
این لیست معمولاً:
- رتبهبندیشده است.
- از مرتبطترین تا کمارتباطترین مرتب شده است.
3. Ground Truth
باید بدانیم پاسخ درست چیست.
یعنی:
تمام اسناد مرتبط موجود در Knowledge Base که Retriever باید پیدا میکرد.
برای ارزیابی Retriever باید بدانیم:
- چه اسنادی درست هستند.
- کدام اسناد باید بازگردانده میشدند.
Precision و Recall
دو معیار رایج برای ارزیابی کیفیت Retriever:
- Precision
- Recall
Precision
مفهوم
Precision بررسی میکند:
از بین اسنادی که Retriever برگردانده، چند درصد واقعاً مرتبط هستند؟
فرمول:
Precision =
Relevant Retrieved Documents
----------------------------
Total Retrieved Documents
مثال
فرض کنید:
- ۱۰ سند مرتبط در Knowledge Base وجود دارد.
- Retriever تعداد ۱۲ سند برمیگرداند.
- ۸ مورد از آنها مرتبط هستند.
Precision:
8 / 12 = 66%
یعنی:
۶۶ درصد نتایج Retriever مفید بودهاند.
Recall
مفهوم
Recall بررسی میکند:
از تمام اسناد مرتبط موجود، چند مورد توسط Retriever پیدا شدهاند؟
فرمول:
Recall =
Relevant Retrieved Documents
----------------------------
Total Relevant Documents
مثال
در همان مثال:
- کل اسناد مرتبط = ۱۰
- اسناد مرتبط پیدا شده = ۸
Recall:
8 / 10 = 80%
یعنی Retriever توانسته ۸۰٪ اطلاعات مرتبط را پیدا کند.
مقایسه Precision و Recall
Precision
تمرکز:
آیا نتایجی که آوردم قابل اعتماد هستند؟
Precision پایین یعنی:
- اسناد غیرمرتبط زیادی برگردانده شدهاند.
Recall
تمرکز:
آیا چیزی مهم را از دست دادهام؟
Recall پایین یعنی:
- اسناد مرتبط زیادی پیدا نشدهاند.
مثال تغییر تنظیمات Retriever
اجرای اول:
نتیجه:
- ۱۲ سند برگشت داده شد.
- ۸ مورد مرتبط بود.
Precision:
8/12 = 66%
Recall:
8/10 = 80%
اجرای دوم:
نتیجه:
- ۱۵ سند برگشت داده شد.
- ۹ مورد مرتبط بود.
Precision:
9/15 = 60%
Recall:
9/10 = 90%
نتیجه:
- Precision کاهش پیدا کرد.
- Recall افزایش پیدا کرد.
یعنی:
کمی از دقت نتایج کم شد تا اطلاعات بیشتری پیدا شود.
Trade-off بین Precision و Recall
در عمل معمولاً باید بین این دو تعادل ایجاد کرد.
حالت ایدهآل:
- تمام اسناد مرتبط پیدا شوند.
- هیچ سند غیرمرتبطی برنگردد.
یعنی:
- Precision = 100%
- Recall = 100%
اما معمولاً رسیدن همزمان به هر دو دشوار است.
ارزیابی بر اساس Top K
معیارهای Retrieval به تعداد اسنادی که Retriever برمیگرداند وابسته هستند.
برای استانداردسازی معمولاً از مفهوم:
Top K
استفاده میشود.
یعنی:
K سندی که Retriever بالاترین رتبه را به آنها داده است.
مثال:
- Precision@5
- Recall@10
مثال Precision@K
فرض کنید Retriever یک لیست رتبهبندیشده برگردانده است.
در:
Precision@5
فقط ۵ سند اول بررسی میشوند.
اگر:
- ۲ مورد از ۵ سند مرتبط باشند:
Precision@5:
2/5 = 40%
Precision@10
اگر:
- ۶ مورد از ۱۰ سند مرتبط باشند:
Precision@10:
6/10 = 60%
Recall@K
فرض کنید:
کل اسناد مرتبط:
8 documents
در Top 10:
6 relevant documents
پس:
Recall@10 = 6/8 = 75%
انتخاب مقدار K
برای شرایط سختتر:
- Top 1
- Top 2
- Top 5
استفاده میشود.
اما معمولاً بازه:
- Top 5 تا Top 15
دید کاملتری از عملکرد Retriever میدهد.
Mean Average Precision (MAP)
مفهوم
برای ارزیابی بهتر رتبهبندی اسناد، از:
Mean Average Precision (MAP@K)
استفاده میشود.
MAP بررسی میکند:
آیا Retriever اسناد مرتبط را در رتبههای بالاتر قرار داده است؟
محاسبه Average Precision
مثال:
فرض کنید ۶ سند اول Retriever بررسی میشوند.
برای هر رتبه:
Precision@K محاسبه میشود.
فقط رتبههایی که سند مرتبط دارند استفاده میشوند.
مثلاً اسناد مرتبط در رتبههای:
- 1
- 4
- 5
قرار دارند.
Precisionها:
1
0.5
0.6
جمع:
2.1
تقسیم بر تعداد اسناد مرتبط:
2.1 / 3 = 0.7
پس:
Average Precision:
0.7
Mean Average Precision
برای چندین Prompt:
- Average Precision هر Prompt محاسبه میشود.
- میانگین آنها گرفته میشود.
نتیجه:
MAP
چرا MAP مهم است؟
MAP به رتبهبندی خوب پاداش میدهد.
اگر یک سند غیرمرتبط در رتبه بالا قرار گیرد:
- Precision رتبههای بعدی کاهش پیدا میکند.
- MAP کاهش پیدا میکند.
بنابراین:
MAP بالا یعنی:
Retriever اسناد مرتبط را در رتبههای بالای لیست قرار میدهد.
Reciprocal Rank (RR)
مفهوم
این معیار بررسی میکند:
اولین سند مرتبط در چه رتبهای قرار گرفته است؟
فرمول:
RR = 1 / Rank
مثال
اگر اولین سند مرتبط:
رتبه ۲ باشد:
1/2 = 0.5
اگر:
رتبه ۴ باشد:
1/4 = 0.25
هرچه سند مرتبط پایینتر باشد، امتیاز کمتر میشود.
Mean Reciprocal Rank (MRR)
برای چندین Prompt:
میانگین Reciprocal Rank گرفته میشود.
نام آن:
MRR (Mean Reciprocal Rank)
است.
مثال محاسبه MRR
فرض کنید برای ۴ جستجو:
اولین سند مرتبط در رتبههای زیر قرار دارد:
- رتبه ۱
- رتبه ۳
- رتبه ۶
- رتبه ۲
مقادیر:
1/1 = 1
1/3
1/6
1/2
میانگین:
(1 + 1/3 + 1/6 + 1/2) / 4
نتیجه:
MRR = 0.5
مقایسه معیارها
| معیار | هدف |
|---|---|
| Recall@K | پیدا کردن اسناد مرتبط |
| Precision@K | جلوگیری از اسناد غیرمرتبط |
| MAP@K | بررسی کیفیت رتبهبندی |
| MRR | بررسی اینکه اولین نتیجه مرتبط چقدر زود پیدا میشود |
کاربرد معیارها در تنظیم Retriever
این معیارها کمک میکنند بفهمیم تغییرات سیستم مفید بودهاند یا نه.
مثلاً در Hybrid Search:
میتوان:
- وزن Semantic Search را تغییر داد.
- وزن Keyword Search را تغییر داد.
سپس بررسی کرد:
- Recall چه تغییری کرده؟
- Precision چه تغییری کرده؟
محدودیت معیارهای ارزیابی
مشکل اصلی:
همه این معیارها نیاز به:
Ground Truth
دارند.
یعنی باید از قبل مشخص باشد:
- کدام اسناد مرتبط هستند.
ساخت این مجموعه داده:
- زمانبر است.
- معمولاً نیاز به بررسی دستی دارد.
اما نتیجه:
یک سیستم قابل اندازهگیری است که میتوان آن را:
- در زمان توسعه
- در محیط Production
مانیتور کرد.
جمعبندی
- مهمترین معیار موفقیت Retriever، کیفیت جستجو است.
- برای ارزیابی نیاز به Prompt، نتایج Retriever و Ground Truth داریم.
- Precision نشان میدهد چه مقدار از نتایج بازیابیشده واقعاً مرتبط هستند.
- Recall نشان میدهد چه مقدار از اطلاعات مرتبط پیدا شده است.
- معمولاً بین Precision و Recall یک Trade-off وجود دارد.
- MAP کیفیت رتبهبندی اسناد مرتبط را ارزیابی میکند.
- MRR بررسی میکند اولین سند مرتبط چقدر سریع در رتبهبندی ظاهر میشود.
- برای ارزیابی واقعی Retriever باید مجموعهای از Promptها و اسناد مرتبط از قبل آماده شود.