Prompt Injection از کجا میاد؟ سردرگمیِ مدل توی نقشها
خلاصهٔ کاملتر
نویسندهها میگن ریشهٔ prompt injection رو باید توی نحوهٔ درکِ مدل از «نقشها» پیدا کرد. یه مدلِ زبانی همهچی — پرامپتِ سیستم، پیامِ کاربر، خروجیِ ابزارها و استدلالِ قبلیِ خودش — رو به شکلِ یه رشتهٔ متنیِ پیوسته میگیره. برای اینکه بفهمه هر تیکه مالِ کیه، این رشته با تگهای نقش مثلِ ، ، و برچسب میخوره؛ هر تگ به مدل میگه که با متنِ بعدش چطور رفتار کنه.
به گفتهٔ مقاله این تگها بارِ سنگینی رو دوش میکشن: اعتماد و اولویت ( بالاتر از و اون بالاتر از )، تهدید، هویت و حالتِ تولید. Prompt injection وقتی اتفاق میافته که این مرزها بشکنن و یه متنِ کماختیار، اختیارِ یه نقشِ بالاتر رو بهدست بیاره؛ مثلاً یه دستورِ مخفی توی یه صفحهٔ وب که با تگِ (یعنی دادهٔ بیرونی) اومده، ولی مدل مثلِ دستورِ کاربر بهش عمل میکنه.
برای اینکه بفهمن مدل درونش هر توکن رو مالِ چه نقشی میدونه، ابزاری به اسمِ role probe ساختن که میزانِ «فکرکردنِ» مدل به هر نقش رو نمره میده (مثلاً CoTness برای و Userness برای ). آزمایشهاشون یه چیزِ عجیب نشون داد: وقتی تگها رو کامل حذف میکنن یا متنِ استدلالی رو داخلِ تگِ میذارن، مدل بازم اون متن رو مثلِ استدلالِ خودش میبینه. یعنی سبکِ نوشتار، تگِ واقعی رو دور میزنه.
نتیجه اینه که مدل نقش رو از روی یه ویژگیِ ناامن (سبکِ نوشتار) تشخیص میده، نه از روی تگِ امن. نویسندهها روی همین یه حمله به اسمِ CoT Forgery ساختن: یه استدلالِ جعلی که شبیهِ فکرکردنِ خودِ مدله رو داخلِ پیامِ کاربر یا خروجیِ ابزار تزریق میکنن. چون مدل استدلالِ قبلیِ خودش رو بیچونوچرا قبول داره، این متنِ جعلی رو هم مثلِ نتیجهگیریِ خودش میپذیره و بهش عمل میکنه.
به گفتهٔ اونها این حمله نرخِ موفقیتِ jailbreak رو از نزدیکِ صفر به حدودِ ۶۰٪ میرسونه و برخلافِ بیشترِ حملهها، روی همهٔ مدلهایی که تست کردن جواب میده، چون یه ضعفِ ساختاریه نه ترفندِ مخصوصِ یه مدل. جالب اینکه اگه فقط سبکِ اون استدلالِ جعلی رو ساده کنن (به قولِ خودشون destyling)، موفقیت از ۶۱٪ به ۱۰٪ میافته؛ تغییری که برای آدم تقریباً نامرئیه ولی درکِ نقشِ مدل رو کامل عوض میکنه.
نویسندهها میگن حتی لازم نیست حمله پیچیده باشه؛ صرفِ گذاشتنِ یه برچسبِ ساده جلوی یه دستور کافیه که مدل اون رو بیشتر شبیهِ متنِ کاربر ببینه. در پایان استدلال میکنن که نقشها درواقع برای جدا نگهداشتنِ هدفهای رقیب (مثلِ کاوش در برابرِ ارتباط، یا داده در برابرِ دستور) ساخته شدن و پیشنهاد میدن یه زیرشاخهٔ پژوهشیِ تازه دربارهٔ «علمِ نقشها» شکل بگیره، چون این مرزها اونقدرها که فکر میکنیم محکم نیستن.
نکات کلیدی:
- مدلهای زبانی همهچی رو به شکلِ یه رشتهٔ متنی میبینن و نقشِ هر بخش رو با تگها مشخص میکنن
- ابزارِ role probe نشون میده مدل نقش رو از روی سبکِ نوشتار حدس میزنه نه تگِ واقعی
- حملهٔ CoT Forgery با تزریقِ استدلالِ جعلی، اعتمادِ مدل به فکرِ خودش رو میدزده
- این حمله نرخِ jailbreak رو تا حدودِ ۶۰٪ بالا میبره و بین مدلهای مختلف قابلانتقاله
- نویسندهها prompt injection رو نمونهای از «سردرگمیِ نقش» میدونن و خواستارِ پژوهشِ بیشتر روی نقشها هستن




