نمونه اولیه RAG یک توسعهدهنده، از پاسخ دادن به هر پرسشی با شباهت کسینوسی کمتر از ۰.۵۰ خودداری میکرد. این سیستم بینقص کار میکرد—تا زمانی که مدل embedding تغییر داده شد. سپس، محافظ (guard) اجازه داد پاسخهای اشتباه بهصورت بیصدا از آن عبور کنند. این حادثه ثابت میکند که یک آستانه شباهت هاردکد شده میتواند در مدلهای مختلف از کار بیفتد؛ ریسکی که هر سیستمی را که برای بررسیهای امنیتی به شباهت embedding متکی است، تهدید میکند.
چرا آستانه اهمیت داشت
خط لولههای تولید تقویتشده با بازیابی (RAG) اغلب از یک محافظ شباهت استفاده میکنند: اگر شباهت کسینوسی بین یک پرسش و نزدیکترین سند به آن کمتر از یک عدد از پیش تعیین شده باشد، سیستم از پاسخ دادن خودداری میکند. این محافظ از توهم (hallucination) مدل زمانی که بافت (context) بازیابیشده ضعیف است، جلوگیری میکند. در تنظیمات اولیه، آستانه ۰.۵۰ سیستم را صادق نگه میداشت—پرسشهای غیرقابل پاسخ زیر این خط و پرسشهای قابل پاسخ بالای آن قرار میگرفتند.
وقتی بکاِند embedding تغییر کرد، همان نقطه برش ۰.۵۰ دیگر این دو گروه را از هم جدا نکرد. خط لوله شروع به بازگرداندن پاسخهای مطمئن اما نادرست کرد، بدون اینکه کرش یا خطای صریحی رخ دهد. این شکست از معیارهای رتبهبندی استاندارد فرار کرد و تنها زمانی مشخص شد که یک انسان متوجه این انحراف شد.
هندسه جهانی نیست
هر مدل embedding زبان را در یک فضای با ابعاد بالا با هندسه خاص خود نگاشت میکند. بنابراین، مقادیر شباهت کسینوسی از یک مدل به مدل دیگر معانی متفاوتی دارند. یک امتیاز ۰.۵۰ میتواند برای یک مدل در لبه یک شکاف واضح و برای مدل دیگر در عمق یک همپوشانی باشد.
- Voyage-3 – خط ۰.۵۰ بین پرسشهای غیرقابل پاسخ با امتیاز پایین و پرسشهای قابل پاسخ با امتیاز بالا قرار دارد. محافظ طبق انتظار عمل میکند.
- BGE-Small – بسیاری از پرسشهای غیرقابل پاسخ امتیاز بالای ۰.۵۰ میگیرند، بنابراین محافظ هرگز فعال نمیشود. بالا بردن نقطه برش به ۰.۷۰ حاشیه ایمنی را بازیابی میکند.
- Hashing-64 – امتیازهای پرسشهای قابل پاسخ و غیرقابل پاسخ چنان با هم ترکیب شدهاند که هیچ آستانه واحدی آنها را جدا نمیکند؛ این مدل برای پشتیبانی از یک محافظ شباهت بسیار ضعیف است.
این موارد یک حقیقت گستردهتر را نشان میدهند: یک آستانه متعلق به یک جفت مدل-داده خاص است، نه یک قاعده جهانی.
هزینه پنهان یک مقدار ثابت
آستانههای شباهت در بسیاری از وظایف پاییندستی ظاهر میشوند:
- semantic caching
- duplicate detection
- بررسیهای مرتبط بودن اسناد
- entity matching
استفاده از یک مقدار ثابت فرض میکند که تمام مدلهای embedding دارای توزیع امتیاز یکسانی هستند—فرضی خطرناک. وقتی این فرض شکست میخورد، سیستمها بهصورت بیصدا خروجیهای با اعتماد کاذب تولید میکنند، اعتماد کاربر را از بین میبرند و تصمیمات پاییندستی را با دادههای نادرست تغذیه میکنند.
کالیبره کردن محافظهای هر مدل
راه حل ساده است: هرگز یک مقدار ثابت هاردکد شده را عرضه نکنید. با آستانه مانند یک هایپرپارامتر (hyper-parameter) رفتار کنید که باید برای هر مدل embedding جدید تنظیم شود.
- یک مجموعه اعتبارسنجی (validation set) متوسط و برچسبگذاری شده شامل پرسشهای قابل پاسخ و غیرقابل پاسخ تهیه کنید.
- شباهتهای کسینوسی را برای هر جفت پرسش-سند با استفاده از مدل هدف محاسبه کنید.
- دو توزیع را رسم کنید یا نرخ اعتماد کاذب (false-confident rate) را محاسبه کنید—نسبت پرسشهای غیرقابل پاسخی که از آستانه کاندید فراتر میروند.
- کوچکترین مقدار شباهتی را انتخاب کنید که نرخ اعتماد کاذب را زیر یک سطح ریسک قابل قبول نگه میدارد.
از آنجایی که هدف جلوگیری از اعتماد بیش از حد است، معیارهای رتبهبندی سنتی مانند میانگین رتبه معکوس (MRR) کافی نیستند. نرخ اعتماد کاذب مستقیماً حالت شکست محافظ را اندازهگیری میکند.
نکته مقابل: «برخی مدلها آماده استفاده هستند»
درست است که برخی مدلهای خوشرفتار، مانند Voyage-3 در مثال، با محافظ ۰.۵۰ همراستا هستند. اما این موضوع پایداری آینده را تضمین نمیکند. بهروزرسانی مدل، تنظیم دقیق (fine-tuning) یا حتی تغییر در مجموعه دادههای اصلی (corpus) میتواند توزیع شباهت را تغییر داده و دوباره محافظ را از کار بیندازد. تکیه بر یک همراستایی خوششانس، باعث سهلانگاری میشود.
آنچه باید در ادامه زیر نظر گرفت
-
-
-
نتیجهگیری
یک آستانه شباهت، یک سوئیچ ایمنی جهانی نیست؛ بلکه یک محافظ مخصوص به هر مدل است که باید هر بار که بکاِند embedding یا دادههای آن را تغییر میدهید، کالیبره شود. نادیده گرفتن این واقعیت باعث میشود سیستمهای RAG به سمت توهم بیصدا سوق پیدا کنند و هدف اصلی محافظ را از بین ببرند. تنها مسیر قابل اعتماد، کالیبراسیون سیستماتیک برای هر مدل و نظارت مداوم بر نرخ اعتماد کاذب است.
