MODULE 02 / LESSON 14

Hybrid Search در Retriever

مفهوم اصلی در بخش‌های قبلی، سه تکنیک اصلی مورد استفاده در Retriever بررسی شدند: Metadata Filtering Keyword Search Semantic Search هر کدام از این روش‌ها نقاط قوت و ضعف متفاوتی دارند. ایده Hybrid Search این است که این تکنیک‌ها را…

نویسنده: محمد ابوطالبی۹۹۴ واژهماژول ۲: Retriever

مفهوم اصلی

در بخش‌های قبلی، سه تکنیک اصلی مورد استفاده در Retriever بررسی شدند:

  1. Metadata Filtering
  2. Keyword Search
  3. Semantic Search

هر کدام از این روش‌ها نقاط قوت و ضعف متفاوتی دارند.

ایده Hybrid Search این است که این تکنیک‌ها را با هم ترکیب کنیم تا Retriever بتواند از مزایای هر روش استفاده کند.


مرور تکنیک‌های Retrieval

1. Metadata Filtering

مفهوم

Metadata Filtering با استفاده از معیارهای ثابت موجود در Metadata اسناد، نتایج جستجو را محدود می‌کند.

مثال Metadata:

  • نوع سند
  • سطح دسترسی
  • بخش سازمانی
  • تاریخ ایجاد

مزایا

  • سریع است.
  • پیاده‌سازی آن ساده است.
  • رفتار آن قابل درک و قابل پیش‌بینی است.

محدودیت

Metadata Filtering به‌تنهایی یک روش جستجوی واقعی نیست.

اما یک ویژگی مهم دارد:

تنها روشی است که می‌تواند یک فیلتر قطعی Yes/No روی اسناد اعمال کند.

مثلاً:

  • این کاربر اجازه دیدن این سند را دارد یا ندارد.
  • این سند مربوط به این بخش سازمانی است یا نیست.

2. Keyword Search

مفهوم

Keyword Search اسناد را بر اساس وجود کلمات مشابه با Prompt رتبه‌بندی می‌کند.


مزایا

  • سریع است.
  • ساده پیاده‌سازی می‌شود.
  • در بسیاری از موارد عملکرد بسیار خوبی دارد.

بهترین کاربرد

زمانی که Prompt و Document شامل:

  • اصطلاحات فنی
  • نام دقیق محصولات
  • کلمات تخصصی

باشند.

مثال:

جستجوی:

Cisco Catalyst 9300 configuration

نیاز به تطابق دقیق کلمات دارد.


محدودیت

Keyword Search فقط تطابق دقیق کلمات را می‌بیند.

اگر:

  • معنی مشابه باشد.
  • اما کلمات متفاوت باشند.

ممکن است سند مرتبط پیدا نشود.


3. Semantic Search

مفهوم

Semantic Search اسناد را بر اساس شباهت معنایی با Prompt رتبه‌بندی می‌کند.

در این روش:

  • Prompt به Vector تبدیل می‌شود.
  • Documentها نیز به Vector تبدیل می‌شوند.
  • نزدیک‌ترین Vectorها انتخاب می‌شوند.

مزایا

انعطاف بالایی دارد.

می‌تواند اسنادی را پیدا کند که:

  • کلمات یکسان ندارند.
  • اما معنی مشابه دارند.

محدودیت

Semantic Search:

  • کندتر از Keyword Search است.
  • محاسبات بیشتری نیاز دارد.

معماری Hybrid Search

در یک Retriever معمولاً این مراحل انجام می‌شود:


مرحله ۱: دریافت Prompt

کاربر یک Prompt ارسال می‌کند.

Prompt وارد Retriever می‌شود.


مرحله ۲: اجرای دو نوع Search

Retriever به صورت همزمان دو جستجو انجام می‌دهد:

Keyword Search

خروجی:

یک لیست رتبه‌بندی‌شده از اسناد.


Semantic Search

خروجی:

یک لیست رتبه‌بندی‌شده دیگر از اسناد.


مثلاً:

هر روش می‌تواند ۵۰ سند برگرداند.

در این دو لیست:

  • بعضی اسناد مشترک هستند.
  • اما ممکن است رتبه متفاوتی داشته باشند.

مرحله ۳: اعمال Metadata Filtering

هر دو لیست با Metadata Filter بررسی می‌شوند.

هدف:

حذف اسنادی که شرایط لازم را ندارند.

مثال:

اگر کاربر عضو تیم Engineering باشد:

  • اسناد HR حذف می‌شوند.
  • فقط اسناد مرتبط باقی می‌مانند.

مثال:

بعد از فیلتر:

Keyword Search:

50 documents → 35 documents

Semantic Search:

50 documents → 30 documents

مرحله ۴: ترکیب رتبه‌بندی‌ها

اکنون دو لیست رتبه‌بندی‌شده داریم:

  1. Ranking مربوط به Keyword Search
  2. Ranking مربوط به Semantic Search

باید این دو را به یک Ranking نهایی تبدیل کنیم.

یکی از الگوریتم‌های رایج:

Reciprocal Rank Fusion (RRF)

است.


Reciprocal Rank Fusion (RRF)

مفهوم اصلی

RRF اسناد را بر اساس رتبه‌ای که در هر لیست دارند امتیاز می‌دهد.

هدف:

  • اسنادی که در هر دو لیست رتبه خوبی دارند تقویت شوند.
  • اسنادی که فقط در یک لیست رتبه خوبی دارند نیز فرصت داشته باشند.

فرمول ساده RRF

امتیاز یک سند:

Score = 1 / Rank

(در حالت ساده که K برابر صفر فرض شده است.)


مثال

اگر یک Document:

در Keyword Search:

رتبه دوم داشته باشد:

1 / 2 = 0.5

و در Semantic Search:

رتبه دهم داشته باشد:

1 / 10 = 0.1

امتیاز نهایی:

0.5 + 0.1 = 0.6

پارامتر K در RRF

پارامتر:

K

برای کنترل تأثیر رتبه‌های بالا استفاده می‌شود.


وقتی K = 0 باشد

سند رتبه اول:

1 point

سند رتبه دهم:

0.1 point

اختلاف:

۱۰ برابر

بنابراین رتبه اول تأثیر بسیار زیادی دارد.


وقتی K افزایش پیدا کند

مثلاً:

K = 50

امتیازها متعادل‌تر می‌شوند.

رتبه اول:

1 / 50

رتبه دهم:

1 / 60

اختلاف کمتر می‌شود.

در نتیجه:

  • رتبه اول همچنان مهم است.
  • اما بیش از حد بر نتیجه مسلط نمی‌شود.

نکته مهم درباره RRF

RRF فقط به:

  • رتبه سند

توجه می‌کند.

به مقدار واقعی Score توجه نمی‌کند.

مثلاً:

اگر:

  • سند اول خیلی بهتر از سند دوم باشد.

این اختلاف در RRF دیده نمی‌شود.


پارامتر Beta در Hybrid Search

در Retriever معمولاً پارامتر دیگری وجود دارد:

Beta

که وزن بین دو روش Search را تعیین می‌کند.


مثال:

β = 0.8

یعنی:

  • ۸۰٪ اهمیت برای Semantic Search
  • ۲۰٪ اهمیت برای Keyword Search

مقدار اولیه پیشنهادی Beta

یک نقطه شروع معمول:

70% Semantic Search
30% Keyword Search

است.

یعنی:

β = 0.7

اما باید برای هر پروژه تنظیم شود.


تنظیم وزن‌ها بر اساس نوع کاربرد

زمانی که تطابق دقیق کلمات مهم است

مثلاً:

  • نام محصول
  • کد خطا
  • اصطلاح فنی

وزن Keyword Search بیشتر می‌شود.


زمانی که معنی مهم‌تر است

مثلاً:

  • پرسش‌های عمومی
  • جستجوی مفهومی

وزن Semantic Search بیشتر می‌شود.


مرحله نهایی Retrieval

پس از ایجاد Ranking نهایی:

Retriever تعداد مشخصی از بهترین اسناد را برمی‌گرداند.

این تعداد معمولاً:

Top K

نام دارد.

مثلاً:

اگر Top K برابر ۵ باشد:

۵ سند اول Ranking نهایی انتخاب می‌شوند.


مزایای Hybrid Search

Hybrid Search اجازه می‌دهد Retriever از مزایای هر تکنیک استفاده کند.

تکنیک مزیت اصلی
Metadata Filtering حذف قطعی اسناد بر اساس قوانین
Keyword Search تطابق دقیق کلمات
Semantic Search تطابق بر اساس معنی

امکان تنظیم Hybrid Search

برای بهینه‌سازی سیستم می‌توان موارد مختلفی را تغییر داد:

BM25

تنظیم پارامترهای الگوریتم Keyword Search.


Metadata

انتخاب اینکه چه Metadataهایی برای فیلتر استفاده شوند.


RRF

تغییر وزن Keyword Search و Semantic Search.


اهمیت ارزیابی Retriever

برای تنظیم درست Hybrid Search باید بدانیم Retriever چقدر خوب عمل می‌کند.

بنابراین مرحله بعدی:

  • ارزیابی عملکرد Retriever

بررسی خواهد شد.


جمع‌بندی

  • Hybrid Search ترکیبی از Metadata Filtering، Keyword Search و Semantic Search است.
  • Keyword Search برای تطابق دقیق کلمات مناسب است.
  • Semantic Search برای پیدا کردن مفاهیم مشابه مناسب است.
  • Metadata Filtering کنترل قطعی روی اسناد قابل استفاده ایجاد می‌کند.
  • نتایج Keyword و Semantic Search با الگوریتم‌هایی مانند RRF ترکیب می‌شوند.
  • RRF بر اساس رتبه اسناد امتیازدهی می‌کند.
  • پارامترهای K و Beta امکان تنظیم رفتار Hybrid Search را فراهم می‌کنند.
  • یک Retriever قدرتمند با تنظیم مناسب تعادل بین روش‌های مختلف ساخته می‌شود.