Hallucination

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

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

مدل اول Factuality ـه. یعنی مدل اصلا اطلاعات درست رو نداره و از خودش یه چیزی در میاره. مثلا یه متد معرفی می‌کنه که هیچ‌وقت توی اون API وجود نداشته، یا یه citation جعلی میده و غیره.

این اتفاق معمولا وقتی میفته که اطلاعاتش قدیمیه یا چیزی خارج از knowledge cutoff ازش پرسیدی. اینجا مشکل کمبود دانسته‌هاست، پس باید اطلاعات درست رو بهش بدی که میشه مثلاً documentation ، فایل پروژه یا هر context مرتبط.

مدل دوم Faithfulness ـه. این یکی یه کم ترسناک‌تره، چون اطلاعات درست از همون اول جلوی مدل بوده، ولی وسط کار حواسش ازش پرت شده. مثلاً تو مستندات رو کامل براش فرستادی، اما بعد از یه گفت‌وگوی طولانی دیگه به اون بخش توجه نمی‌کنه و بر اساس حدس خودش جواب می‌ده. اینجا مشکل نداشتن اطلاعات نیست، مشکل اینه که اطلاعات درست بین کلی چیز دیگه گم شده.

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

برای اینکه بفهمی با کدوم نوع hallucination طرفی، اول از خودت بپرس اطلاعات درست از قبل داخل context بوده یا نه.

اگه نبوده، مشکل Factuality ـه و باید اطلاعات بیشتری به مدل بدی.

اگه بوده ولی مدل نادیدش گرفته، مشکل Faithfulness ـه و اتفاقاً باید context رو سبک‌تر کنی. چون هرچی اطلاعات بیشتری اضافه کنی، فقط شلوغ‌ترش کردی و احتمال اینکه دوباره حواسش پرت بشه بیشتر میشه.

برای همین تشخیص درست خیلی مهمه. اگه یه مشکل Faithfulness رو با Factuality اشتباه بگیری، هی مستندات بیشتری اضافه می‌کنی و اوضاع حتی بدتر هم میشه.

در نهایت هر جواب اشتباهی hallucination نیست. بهتره همیشه مشخص کنی منظورت Factuality ـه یا Faithfulness ، چون این دو تا علت‌های متفاوتی دارن و راه‌حلشون هم یکی نیست.