مفهوم اصلی
در یک سیستم RAG (Retrieval-Augmented Generation)، وظیفه اصلی Retriever این است که از میان اسناد موجود در Knowledge Base، مرتبطترین اطلاعات را پیدا کند و در اختیار LLM قرار دهد.
برای طراحی یک Retriever قدرتمند، روشهای مختلف جستجو استفاده میشوند. در این ماژول چند تکنیک مختلف بررسی خواهد شد، اما ابتدا باید یک دید کلی از معماری Retriever داشته باشیم.
جریان کلی کار Retriever
زمانی که یک سیستم RAG یک Prompt دریافت میکند:
- Prompt ابتدا به Retriever ارسال میشود.
- Retriever به Knowledge Base دسترسی دارد.
- Knowledge Base را میتوان مانند مجموعهای از فایلهای متنی ذخیرهشده در یک دیتابیس تصور کرد.
- Retriever مشخص میکند کدام اسناد بیشترین ارتباط را با Prompt دارند.
- اسناد انتخابشده به LLM ارسال میشوند تا در ساخت پاسخ استفاده شوند.
تکنیکهای اصلی جستجو در Retriever
بیشتر Retrieverهای مدرن از دو روش اصلی جستجو استفاده میکنند:
- Keyword Search
- Semantic Search
ترکیب این دو روش باعث ایجاد Hybrid Search میشود.
1. Keyword Search (جستجوی کلمه کلیدی)
مفهوم اصلی
در Keyword Search، Retriever به دنبال اسنادی میگردد که شامل همان کلمات موجود در Prompt باشند.
مثال:
Prompt:
How to configure firewall rules?
سیستم به دنبال اسنادی میگردد که کلمات زیر را داشته باشند:
- configure
- firewall
- rules
ویژگیها
مزایا:
- روش قدیمی و آزمایششده است.
- دههها در سیستمهای Information Retrieval استفاده شده است.
- نسبت به کلمات دقیق حساس است.
محدودیت:
اگر یک سند مفهوم مشابهی داشته باشد اما از کلمات متفاوتی استفاده کند، ممکن است پیدا نشود.
2. Semantic Search (جستجوی معنایی)
مفهوم اصلی
در Semantic Search، Retriever به جای تمرکز روی کلمات دقیق، معنی متن را بررسی میکند.
یعنی:
اسنادی را پیدا میکند که مفهوم مشابهی با Prompt دارند.
مثال
Prompt:
How can I protect my computer from attacks?
ممکن است سندی پیدا شود که نوشته:
Best practices for cybersecurity defense
با اینکه کلمات دقیق یکی نیستند، اما مفهوم مشابه است.
مزیت Semantic Search
این روش انعطاف بیشتری دارد، زیرا:
- نیاز نیست کلمات دقیق سؤال در سند وجود داشته باشند.
- اسناد مرتبط از نظر معنا نیز پیدا میشوند.
ترکیب نتایج جستجو
هر روش جستجو یک لیست از اسناد تولید میکند.
معمولاً:
- Keyword Search حدود ۲۰ تا ۵۰ سند برمیگرداند.
- Semantic Search نیز حدود ۲۰ تا ۵۰ سند برمیگرداند.
اغلب:
- بعضی اسناد در هر دو لیست وجود دارند.
- اما به دلیل تفاوت روش جستجو، رتبه آنها در هر لیست متفاوت است.
Metadata Filtering (فیلتر کردن Metadata)
بعد از انجام جستجو، لیست اسناد بر اساس Metadata فیلتر میشود.
Metadata چیست؟
اطلاعات اضافی درباره هر سند.
مثال:
یک شرکت ممکن است اسناد مختلفی داشته باشد:
- اسناد مربوط به تیم مهندسی
- اسناد مربوط به منابع انسانی (HR)
- اسناد مربوط به فروش
مثال فیلتر Metadata
فرض کنید کاربر عضو تیم Engineering است.
سیستم میداند کاربر متعلق به این بخش است.
بنابراین:
- اسناد مربوط به Engineering اجازه عبور پیدا میکنند.
- اسناد مربوط به HR حذف میشوند.
ترکیب نهایی نتایج
پس از فیلتر Metadata، Retriever دو لیست دارد:
- لیست حاصل از Keyword Search
- لیست حاصل از Semantic Search
این دو لیست با هم ترکیب میشوند تا:
- رتبهبندی نهایی اسناد ایجاد شود.
- مرتبطترین اسناد مشخص شوند.
خروجی نهایی Retriever
در پایان:
- اسناد با بالاترین رتبه انتخاب میشوند.
- این اسناد به Prompt اضافه میشوند.
- Prompt تقویتشده (Augmented Prompt) به LLM ارسال میشود.
- مرحله Retrieval کامل میشود.
Hybrid Search چیست؟
روشی که از چند تکنیک جستجو برای رتبهبندی نهایی اسناد استفاده میکند، Hybrid Search نام دارد.
در معماری Retriever، Hybrid Search معمولاً شامل:
- Keyword Search
- Semantic Search
- Metadata Filtering
است.
نقش هر تکنیک در عملکرد Retriever
Keyword Search
کمک میکند سیستم:
- به کلمات دقیق استفادهشده توسط کاربر حساس باشد.
- اسناد دارای اصطلاحات مشخص را پیدا کند.
Semantic Search
کمک میکند سیستم:
- مفهوم سؤال را درک کند.
- اسنادی با معنی مشابه را پیدا کند، حتی اگر کلمات متفاوت باشند.
Metadata Filtering
کمک میکند سیستم:
- اسناد را بر اساس قوانین مشخص حذف یا محدود کند.
- معیارهایی را اعمال کند که دو روش جستجوی دیگر قادر به انجام آن نیستند.
طراحی یک Retriever قدرتمند
برای ساخت یک Retriever با عملکرد بالا باید:
- نقاط قوت هر تکنیک را شناخت.
- تعادل مناسبی بین روشها ایجاد کرد.
- تنظیمات را متناسب با نیاز پروژه تغییر داد.
هیچ روش واحدی برای همه پروژهها بهترین نیست و طراحی Retriever باید بر اساس شرایط و نیازهای سیستم انجام شود.
جمعبندی
- Retriever وظیفه پیدا کردن اسناد مرتبط برای LLM را دارد.
- بیشتر Retrieverهای مدرن از ترکیب Keyword Search و Semantic Search استفاده میکنند.
- Keyword Search بر تطابق دقیق کلمات تمرکز دارد.
- Semantic Search بر شباهت معنایی تمرکز دارد.
- Metadata Filtering اسناد را بر اساس معیارهای مشخص محدود میکند.
- ترکیب این روشها Hybrid Search نام دارد.
- عملکرد یک Retriever خوب به تنظیم مناسب تعادل بین این تکنیکها بستگی دارد.