نحوه راه‌اندازی آزمایش

نویسنده یک سیستم کوچک تولید مبتنی بر بازیابی (RAG) را بر پایه دو سند کتابچه قوانین پرداخت بنا کرد و دو بررسی را انجام داد:

  • آزمون فراخوانی (Recall) – آیا صفحه صحیح در میان پنج نتیجه برتر ظاهر شد؟ نتیجه: ۶۰٪.
  • آزمون پاسخ – آیا پاسخ نهایی تولید شده توسط مولد صحیح بود؟ نتیجه: ۹۰٪.

شکاف ۴۰ درصدی غیرممکن به نظر می‌رسید. اگر سیستم بازیابی (retriever) در چهار مورد از هر ده مورد، صفحه صحیح را پیدا نمی‌کرد، چگونه مدل می‌توانست در نه مورد از هر ده مورد، پاسخ صحیح را بدهد؟

اولین تلاش‌ها برای «اصلاح» سیستم بازیابی

توسعه‌دهنده دو ترفند رایج را امتحان کرد:

  • جستجوی ترکیبی (Hybrid search) – ترکیب سیگنال‌های واژگانی و برداری. میزان فراخوانی تغییری نکرد.
  • بازرتبه‌بندی‌کننده (Reranker) – تغییر ترتیب پنج صفحه بازیابی‌شده. میزان فراخوانی به ۷۰٪ رسید اما همچنان با دقت پاسخ ۹۰ درصدی فاصله زیادی داشت.

هر دو ابزار فقط آنچه را که قبلاً بازیابی شده است بازآرایی می‌کنند؛ آن‌ها نمی‌توانند صفحه‌ای را که هرگز وارد مجموعه کاندیدا نشده است، از هیچ خلق کنند. مشکل جای دیگری بود.

مشکل از معیار بود، نه مدل

نویسنده به جای قضاوت درباره موفقیت بر اساس برچسب صفحه، واقعیت‌های موجود در تکه‌های (chunks) بازیابی‌شده را بررسی کرد. در سه مورد از چهار «شکست»، واقعیت صحیح وجود داشت، اما در صفحه‌ای متفاوت از آنچه اسکریپت آزمایش انتظار داشت، قرار داشت. سیستم ارزیابی، سیستم بازیابی را به دلیل یافتن پاسخ صحیح در یک صفحه غیرمنتظره، جریمه می‌کرد.

وقتی معیار به این تغییر کرد که «آیا هر یک از تکه‌های بازیابی‌شده حاوی واقعیت مورد نیاز هست؟»، میزان فراخوانی به ۹۰٪ جهش کرد و با دقت پاسخ مطابقت یافت. سیستم بازیابی درست کار می‌کرد؛ اما چارچوب ارزیابی مشکل داشت.

چرا فراخوانی (recall) سنتی می‌تواند گمراه‌کننده باشد

  • برچسب‌گذاری در سطح صفحه، شکست‌های کاذب ایجاد می‌کند. یک واقعیت واحد ممکن است در چندین صفحه ظاهر شود. برچسب زدن تنها به یک صفحه به عنوان حقیقت مرجع (ground truth)، سایر موارد صحیح را به عنوان خطا در نظر می‌گیرد.
  • مجموعه‌های متنی (corpora) کوچک، این اثر را تشدید می‌کنند. در صورت وجود اسناد کم، یک صفحه با برچسب اشتباه می‌تواند میزان فراخوانی را به شدت تغییر دهد، در حالی که دقت پاسخ ثابت می‌ماند.
  • نویز جاسازی (Embedding noise) واقعیت‌ها را پنهان می‌کند. بردارهای امتیازدهی را برای کل صفحات محاسبه می‌کنند؛ متن‌های حقوقی یا فنی اطراف، سیگنال مرتبط بودن جمله هدف را رقیق کرده و باعث می‌شود صفحه، با وجود وجود واقعیت مورد نظر، در رتبه‌بندی پایین‌تر قرار گیرد.

نکات کاربردی برای متخصصان RAG

  • شکست‌های رتبه‌بندی را از شکست‌های بازیابی جدا کنید. بازرتبه‌بندی‌کننده‌ها فقط مشکل اول را حل می‌کنند؛ اگر تکه (chunk) صحیح هرگز وارد مجموعه کاندیدا نشود، تغییر ترتیب هیچ کمکی نمی‌کند.
  • داده‌های آزمایش را در سطح واقعیت برچسب‌گذاری کنید. هر پرس‌وجو (query) را به قطعه اطلاعات خاصی که به آن نیاز دارد متصل کنید، نه به یک شناسه سند واحد.
  • برای مجموعه‌داده‌های کوچک، به بنچمارک‌های مقیاس‌بزرگ اعتماد نکنید. مجموعه‌های متنی کوچک و تخصصی رفتار متفاوتی دارند و امتیازات فراخوانی عمومی می‌توانند فریبنده باشند.
  • مراقب دانه‌بندی (granularity) جاسازی باشید. یک تکه در اندازه یک صفحه، کلمات زیادی را در خود جای می‌دهد و متن‌های حقوقی اطراف می‌تواند رتبه واقعیت مورد نظر شما را کاهش دهد.

خلاصه کلام: وقتی ارزیابی با وظیفه (task) همسو نباشد، امتیاز بالای دقت پاسخ می‌تواند با رقم پایین فراخوانی سنتی همزیستی داشته باشد. اصلاح معیار، و نه مدل، باعث صرفه‌جویی در زمان، کاهش هشدارهای کاذب و دستیابی به استقرار‌های RAG قابل‌اعتمادتر می‌شود.