میانی۳ دقیقه مطالعه

بازیابی‌افزوده به زبان ساده — و جایی که معمولاً خراب می‌شود

بازیابی‌افزوده مسئله‌ی «مدل اسناد ما را نمی‌شناسد» را حل می‌کند، ولی یک مسئله‌ی جدید می‌سازد: کنترل دسترسی.

مدل زبانی اسناد داخلی شما را ندیده است. اگر از آن بپرسید «مرخصی استحقاقی امسال چند روز است؟»، یا نمی‌داند، یا بدتر: عددی می‌سازد که مطمئن به‌نظر می‌رسد.

بازیابی‌افزوده راه‌حل این مسئله است. به‌جای اینکه مدل از حافظه‌اش جواب بدهد، اول از اسناد خودتان می‌خواند و بعد جواب می‌دهد.

چطور کار می‌کند

سه مرحله، ساده‌تر از آنچه به‌نظر می‌رسد:

یک — اسناد را تکه‌تکه می‌کنیم. آیین‌نامه‌ی صد صفحه‌ای به قطعات کوچک‌تر شکسته می‌شود؛ مثلاً هر بند یک قطعه.

دو — هر قطعه را به عدد تبدیل می‌کنیم. هر تکه متن به یک بردار عددی تبدیل می‌شود که معنای تقریبی‌اش را نمایندگی می‌کند. متن‌های هم‌معنا بردارهای نزدیک به هم می‌گیرند.

سه — موقع پرسش، نزدیک‌ترین‌ها را پیدا و به مدل می‌دهیم. پرسش کاربر هم به بردار تبدیل می‌شود، نزدیک‌ترین قطعات پیدا می‌شوند، و همراه پرسش به مدل داده می‌شوند: با توجه به این متن‌ها، به این سؤال جواب بده.

نتیجه: مدل از سند شما جواب می‌دهد، نه از حافظه‌اش. و می‌تواند بگوید جواب را از کجا آورده.

جایی که معمولاً خراب می‌شود

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

کنترل دسترسی

این مهم‌ترین مورد است و بیشترین دفعات هم نادیده گرفته می‌شود.

وقتی همه‌ی اسناد سازمان در یک پایگاه برداری ریخته می‌شوند، سامانه به‌طور پیش‌فرض هیچ تصوری از «چه کسی اجازه دارد چه چیزی را ببیند» ندارد. کارمند بخش فروش سؤالی می‌پرسد و پاسخ از سند حقوق و دستمزد می‌آید.

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

تکه‌کردن بد

اگر متن را وسط یک جمله یا وسط یک جدول بشکنید، قطعه‌ای می‌سازید که به‌تنهایی معنا ندارد. مدل از قطعه‌ی بی‌معنا، جواب بی‌معنا می‌سازد.

قاعده‌ی عملی: تکه‌ها را روی مرزهای طبیعی سند ببرید — بند، بخش، ردیف جدول. و کمی هم‌پوشانی بین تکه‌های مجاور بگذارید تا جمله‌ی مرزی گم نشود.

فارسی و مسئله‌های خودش

نیم‌فاصله، «ی» و «ک» عربی در برابر فارسی، و اعداد فارسی در برابر لاتین همگی باعث می‌شوند دو متن یکسان از نظر انسان، برای ماشین دو چیز متفاوت باشند. اگر متن پیش از تبدیل به بردار نرمال‌سازی نشود، بازیابی به‌طور نامحسوس بد کار می‌کند.

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

تزریق دستور از داخل سند

اگر سندی که بازیابی می‌شود حاوی متنی باشد که برای مدل دستور محسوب شود، مدل ممکن است از آن پیروی کند. سندی که کاربر بارگذاری کرده ورودی نامعتمد است — حتی اگر داخل شبکه‌ی خودتان باشد.

توهم اینکه ارجاع یعنی درستی

اینکه پاسخ به یک سند ارجاع می‌دهد، به این معنا نیست که سند را درست خوانده. مدل ممکن است سند درست را بیاورد و باز هم از آن نتیجه‌ی نادرست بگیرد. ارجاع، بازبینی را ممکن می‌کند؛ جایگزینش نمی‌شود.

چه چیزی بازیابی‌افزوده نیست

آموزش مدل نیست. مدل چیزی یاد نمی‌گیرد و بعد از پایان مکالمه چیزی به خاطر نمی‌سپارد.

و راه‌حل هر مسئله‌ای هم نیست. اگر پرسش نیازمند محاسبه روی هزاران ردیف باشد، بازیابی‌افزوده ابزار درستی نیست؛ یک پرس‌وجوی پایگاه داده است.

اقدام مشخص

اگر می‌خواهید بازیابی‌افزوده را جدی بررسی کنید، از این دو سؤال شروع کنید:

۱. کدام مجموعه سند بیشترین جست‌وجوی روزانه را می‌گیرد؟ ۲. برای همان مجموعه، چه کسی اجازه‌ی دیدن چه چیزی را دارد — و آیا این قاعده جایی مکتوب است؟

اگر جواب سؤال دوم «مکتوب نیست» باشد، آن اولین کاری است که باید انجام شود، پیش از هر انتخاب فنی.

یاد گرفتید؛ حالا می‌خواهید پیاده کنید؟

همین‌جا پاسخ دهید و پتانسیل اتوماسیون کسب‌وکارتان را بسنجید.

یک جلسه‌ی نیم‌ساعته کافی است تا همین مفهوم را روی کار واقعی خودتان پیاده کنیم.

اگر این خدمات مناسب شما نباشد، صریحاً به شما می‌گویم.