مفهوم اصلی
Reranking یک مرحله Post-Retrieval در سیستم RAG است که بعد از Retrieval اولیه و قبل از ارسال اطلاعات به LLM انجام میشود.
هدف:
مرتبسازی دوباره Documentهای بازیابیشده با استفاده از مدلهای قدرتمندتر، تا مرتبطترین Documentها در اختیار LLM قرار بگیرند.
مشکل Retrieval اولیه
در یک سیستم RAG معمولاً ابتدا:
- Vector Database
- Hybrid Search
- Semantic Search
تعدادی Document یا Chunk را پیدا میکنند.
اما همیشه Documentهای اول، بهترین پاسخ را ندارند.
مثال
Prompt:
What is the capital of Canada?
Vector Database ممکن است Documentهایی برگرداند که از نظر معنایی مرتبط هستند، اما پاسخ مستقیم نیستند.
مثلاً:
Toronto is in Canada
The capital of France is Paris
Canada is the maple syrup capital of the world
این Documentها شامل کلمات مرتبط هستند، اما پاسخ سؤال را نمیدهند.
اینجا Reranker وارد میشود.
Reranker:
- Documentها را دوباره بررسی میکند.
- میزان ارتباط واقعی را محاسبه میکند.
- Ranking را اصلاح میکند.
فرآیند Reranking
مراحل کلی:
مرحله 1: Retrieval اولیه
Vector Database تعداد زیادی Document برمیگرداند.
مثلاً:
- 20 تا 100 Document
مرحله 2: Reranking
مدل Reranker:
- هر Document را بررسی میکند.
- یک Relevance Score تولید میکند.
- Documentها را دوباره مرتب میکند.
مرحله 3: ارسال به LLM
در نهایت فقط تعداد محدودی Document ارسال میشوند.
مثلاً:
- 5 تا 10 Document
چرا ابتدا تعداد زیادی Document میگیریم؟
در سیستمهای دارای Reranker معمولاً:
Over-fetching
انجام میشود.
یعنی:
به جای اینکه فقط 5 Document بگیریم:
ابتدا:
- 20 تا 100 Document
میگیریم.
سپس Reranker بهترینها را انتخاب میکند.
معماری Rerankerها
معمولاً Rerankerها از معماری:
Cross-Encoder
استفاده میکنند.
ارتباط Cross-Encoder و Reranking
Cross-Encoder:
- Prompt
- Document
را همزمان بررسی میکند.
بنابراین:
- ارتباط معنایی عمیقتری میفهمد.
- Ranking دقیقتری ایجاد میکند.
مشکل Cross-Encoder در Search مستقیم
اگر Knowledge Base شامل:
- میلیونها
- میلیاردها
Document باشد:
باید همه Documentها با Prompt مقایسه شوند.
این کار:
- بسیار کند
- پرهزینه
است.
چرا Cross-Encoder برای Reranking مناسب است؟
چون Retrieval اولیه قبلاً تعداد Documentها را کاهش داده است.
مثلاً:
قبل:
1,000,000 Document
بعد از Search:
50 Document
حالا Cross-Encoder فقط روی 50 مورد اجرا میشود.
نتیجه:
- کیفیت بالا
- هزینه قابل قبول
هزینه Reranking
Reranker مقداری Latency اضافه میکند.
زیرا:
- باید Documentها دوباره پردازش شوند.
اما معمولاً این افزایش زمان ارزش دارد، چون کیفیت Retrieval بهتر میشود.
LLM-Based Reranking
یک روش جدیدتر:
استفاده از خود LLM برای Reranking است.
نحوه کار
به جای:
Cross-Encoder
Prompt و Document به LLM داده میشوند.
LLM:
- میزان ارتباط را بررسی میکند.
- یک امتیاز عددی تولید میکند.
مزیت
LLM میتواند:
- Context پیچیدهتر را درک کند.
- ارتباط معنایی عمیقتری پیدا کند.
محدودیت
مشکل مشابه Cross-Encoder دارد:
- پردازش هر Document هزینهبر است.
- فقط بعد از Retrieval اولیه قابل استفاده است.
مقایسه روشها
| روش | کیفیت | سرعت | کاربرد |
|---|---|---|---|
| Bi-Encoder Search | خوب | سریع | Retrieval اصلی |
| Cross-Encoder | بسیار بالا | کند | Reranking |
| LLM Reranking | بالا | کند | Reranking پیشرفته |
جایگاه Reranking در Pipeline RAG
معمولاً معماری به شکل زیر است:
User Query
|
↓
Query Parsing
|
↓
Hybrid Search / Vector Search
|
↓
Retrieve 20-100 Documents
|
↓
Reranker
|
↓
Select Top 5-10 Documents
|
↓
Augmented Prompt
|
↓
LLM Response
مزایای Reranking
- افزایش Search Relevance
- انتخاب دقیقتر Documentهای مرتبط
- کاهش ورود اطلاعات بیربط به Prompt
- بهبود کیفیت پاسخ نهایی LLM
پیشنهاد عملی
برای بهبود یک سیستم RAG:
Reranking یکی از اولین تکنیکهایی است که باید بررسی شود.
زیرا:
- پیادهسازی آن معمولاً ساده است.
- تأثیر زیادی روی کیفیت Retrieval دارد.
تنظیم پیشنهادی اولیه
یک روش معمول:
- ابتدا:
Retrieve 15 تا 25 Document
- سپس:
Rerank آنها
- در نهایت:
ارسال بهترین Documentها به LLM
جمعبندی
- Reranking مرحلهای بعد از Retrieval و قبل از LLM است.
- هدف آن مرتبسازی دوباره Documentهای بازیابیشده بر اساس ارتباط واقعی است.
- معمولاً از Cross-Encoder استفاده میکند.
- Cross-Encoder برای Search کل Knowledge Base کند است، اما برای تعداد محدود Document بسیار مناسب است.
- LLM-Based Reranking نیز امکانپذیر است اما هزینه مشابهی دارد.
- Over-fetch کردن Documentها و سپس Rerank کردن آنها باعث افزایش قابل توجه کیفیت Retrieval میشود.
- Reranking یکی از سادهترین و مؤثرترین روشها برای بهبود سیستم RAG است.