MODULE 03 / LESSON 23

Reranking در سیستم‌های RAG

مفهوم اصلی Reranking یک مرحله Post-Retrieval در سیستم RAG است که بعد از Retrieval اولیه و قبل از ارسال اطلاعات به LLM انجام می‌شود. هدف: مرتب‌سازی دوباره Documentهای بازیابی‌شده با استفاده از مدل‌های قدرتمندتر، تا مرتبط‌ترین…

نویسنده: محمد ابوطالبی۶۴۲ واژهماژول ۳: Vector Database

مفهوم اصلی

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هایی برگرداند که از نظر معنایی مرتبط هستند، اما پاسخ مستقیم نیستند.

مثلاً:

  1. Toronto is in Canada

  2. The capital of France is Paris

  3. 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 دارد.

تنظیم پیشنهادی اولیه

یک روش معمول:

  1. ابتدا:
Retrieve 15 تا 25 Document
  1. سپس:
Rerank آنها
  1. در نهایت:
ارسال بهترین Documentها به LLM

جمع‌بندی

  • Reranking مرحله‌ای بعد از Retrieval و قبل از LLM است.
  • هدف آن مرتب‌سازی دوباره Documentهای بازیابی‌شده بر اساس ارتباط واقعی است.
  • معمولاً از Cross-Encoder استفاده می‌کند.
  • Cross-Encoder برای Search کل Knowledge Base کند است، اما برای تعداد محدود Document بسیار مناسب است.
  • LLM-Based Reranking نیز امکان‌پذیر است اما هزینه مشابهی دارد.
  • Over-fetch کردن Documentها و سپس Rerank کردن آن‌ها باعث افزایش قابل توجه کیفیت Retrieval می‌شود.
  • Reranking یکی از ساده‌ترین و مؤثرترین روش‌ها برای بهبود سیستم RAG است.