تیپ #۳۲

جستجوی ترکیبی: کلیدواژه به‌علاوهٔ بردار

بازیابی صرفاً برداری معنا را خوب می‌گیرد، اما کد خطا، شناسهٔ سفارش یا نام دقیق محصول را از دست می‌دهد؛ جستجوی کلیدواژه‌ای هم دقیقاً برعکس عمل می‌کند. کافی است هر دو بازیابی را موازی اجرا کنید و فهرست‌های رتبه‌بندی‌شده را با روش RRF ادغام کنید 🔀، یعنی امتیاز هر سند برابر مجموع ۱ تقسیم بر (۶۰ به‌علاوهٔ رتبهٔ آن در هر فهرست) باشد. بعد از ادغام، ۵۰ سند برتر را با یک مدل رتبه‌بندی مجدد امتیازدهی کنید؛ در عمل همین یک تغییر بیشتر خطاهای بازیابی ایجنت را حل می‌کند تا عوض کردن مدل embedding.

توضیح کامل‌تر

در بازیابی اطلاعات دو خانوادهٔ مکمل داریم: روش‌های کلیدواژه‌محور مثل BM25 که بر پایهٔ فراوانی واژه و معکوس فراوانی سند امتیاز می‌دهند، و روش‌های برداری که معنا را در یک فضای پیوسته کدگذاری می‌کنند. ضعف اولی این است که اگر کاربر همان مفهوم را با واژه‌ای دیگر بپرسد، سند مرتبط پیدا نمی‌شود؛ ضعف دومی این است که توکن‌های نادر مثل کد خطا، شمارهٔ سفارش یا نام مدل را تقریباً نادیده می‌گیرد. جستجوی ترکیبی هر دو را موازی اجرا می‌کند و بعد فهرست‌های رتبه‌بندی‌شده را ادغام می‌کند. روش متداول این ادغام RRF است که فقط به رتبهٔ سند در هر فهرست نگاه می‌کند، پس نیازی به نرمال‌سازی امتیازهای ناهم‌مقیاس BM25 و شباهت کسینوسی نیست. فرمولش ساده است: امتیاز نهایی هر سند برابر مجموع ۱ تقسیم بر (k به‌علاوهٔ رتبه)، با k حدود ۶۰ که اثر رتبه‌های اول را کمی مهار می‌کند. برای نمونه، وقتی کاربر دربارهٔ خطای ERR_4032 می‌پرسد، بازیابی برداری ممکن است مستندات عمومی احراز هویت را برگرداند، اما BM25 سند دقیق همان کد را بالا می‌آورد و ترکیب دو فهرست هر دو را در اختیار ایجنت می‌گذارد. بهترین نتیجه وقتی به دست می‌آید که بعد از ادغام، ۵۰ سند برتر را با یک مدل رتبه‌بندی مجدد مثل cross-encoder دوباره امتیازدهی کنید.

نکته پیشرفته
← بازگشت به همهٔ نکته‌های روز