در دنیای مدلهای زبانی بزرگ (LLM)، «مسیر خوشبختی» اغلب جایی است که بیشتر توسعهدهندگان فکر خود را متوقف میکنند. ما پرامپتهایی میسازیم که وقتی کاربر ورودی واضح، منسجم و ساختارمند ارائه میدهد، به زیبایی کار میکنند. با این حال، در محیطهای تولید، کاربران آنقدرها قابل پیشبینی نیستند. آنها پرسشهای مبهم، محدودیتهای متناقض و درخواستهای خارج از محدوده ارائه میدهند. اگر سیستم شما نتواند این موارد حاشیهای را بهخوبی مدیریت کند، با خطر توهم (Hallucination)، تولید خروجیهای ناامن یا صرفاً بیفایده بودن مواجه میشود.
این راهنما استراتژیهای پیشرفتهای را برای طراحی پرامپتهایی که تحت فشار نیز مقاوم باقی میمانند، بررسی میکند، با تمرکز ویژه بر ابهام و دستورالعملهای متناقض.
درک حالتهای شکست
وقتی یک LLM با ابهام مواجه میشود، اغلب تلاش میکند «حدس بزند» که نیت محتملتر چیست. این میتواند منجر به پاسخهای اشتباه اما با اطمینان شود. بهطور مشابه، وقتی با دستورالعملهای متناقض (مثلاً «مختصر باشید» در مقابل «جزئیات جامع ارائه دهید») مواجه میشود، مدلها ممکن است نوسان کنند یا یکی از محدودیتها را کاملاً نادیده بگیرند. هدف از طراحی مقاوم پرامپت حذف این ورودیها نیست، بلکه مدیریت رفتار مدل هنگام وقوع آنهاست.
استراتژی ۱: مدیریت صریح ابهام
به جای اتکا به حدس زدن توسط مدل، صریحاً به آن دستور دهید که ابهام را شناسایی و مدیریت کند. یک الگوی قدرتمند رویکرد «اول شفافسازی» است. اگر نیت نامشخص باشد، مدل باید به جای تلاش برای یک پاسخ پرخطر، درخواست شفافسازی کند.
SYSTEM:
شما یک دستیار مفید هستید. وقتی پرسش کاربر مبهم است یا از بافت حیاتی برخوردار نیست:
1. نیت را حدس نزنید.
2. ابهامهای خاصی که شناسایی کردهاید را فهرست کنید.
3. ۱ تا ۲ سؤال هدفمند بپرسید تا درخواست را شفاف کنید.
4. اگر پرسش واضح است، با پاسخ ادامه دهید.
USER: "باگ را رفع کن."
چرا این کار میکند: با ارائه یک شاخه شرطی در پرامپت سیستم، شما مدل را مجبور میکنید که ورودی را در مقابل یک آستانه شفافیت ارزیابی کند، قبل از تولید خروجی نهایی. این از تله «توهم با اطمینان» جلوگیری میکند.
استراتژی ۲: حل تناقضها با سلسلهمراتب
دستورالعملهای متناقض منبع رایعی از خطا هستند. راه حل ایجاد یک سلسلهمراتب سختگیرانه از محدودیتهاست. شما باید به مدل بگویید که وقتی قوانین در تضاد هستند چه کار کند. برای مثال، ایمنی همیشه بر مفید بودن اولویت دارد، یا قالببندی خاص بر لحن کلی اولویت دارد.
SYSTEM:
این قوانین را به ترتیب اولویت دنبال کنید:
1. ایمنی: هرگز محتوای مضر، غیرقانونی یا پرتعصب تولید نکنید.
2. دقت: حقایق را اختراع نکنید. اگر مطمئن نیستید، بگویید که نمیدانید.
3. قالب: همیشه خروجی JSON معتبر تولید کنید.
4. لحن: حرفهای و مختصر باشید.
اگر قانون ۳ با قانون ۴ در تضاد باشد (مثلاً JSON نیاز به کلیدهای پرحرف دارد)، قانون ۳ را اولویت دهید.
USER: "فیزیک کوانتوم را به صورت مختصر در قالب JSON توضیح دهید."
نکته عملی: از نمایههای عددی یا برچسبهای اولویت صریح (PRIORITY: HIGH) استفاده کنید تا سلسلهمراتب برای مدل بدون ابهام باشد. LLMها در دنبال کردن دستورالعملهای ترتیبی صریح بهتر از استنباط اولویت ضمنی عمل میکنند.
استراتژی ۳: کدگذاری دفاعی با مثالهای Few-Shot
قوانین انتزاعی گاهی اوقات کافی نیستند. نشان دادن رفتار مطلوب در موارد حاشیهای از طریق پرامپتگذاری Few-shot بسیار مؤثر است. مثالهایی را شامل شوید که در آنها ورودی نامنظم است و نشان دهید که مدل چگونه باید واکنش نشان دهد.
Example 1:
Input: "یک شعر درباره عشق بنویس اما طوری که مثل یک ربات به نظر برسد و همچنین بسیار احساسی باشد."
Output:
"نیاز به شفافسازی: 'ربات' و 'بسیار احساسی' لحنهای متناقضی هستند.
آیا ترجیح میدهید ساختاری مکانیکی با محتوای احساسی داشته باشد، یا ارائهای رباتیک با کلمات کلیدی احساسی؟
گزینه A: تمرکز بر ساختار.
گزینه B: تمرکز بر واژگان."
Example 2:
Input: "2+2 را محاسبه کنید."
Output: "4"
با نشان دادن دقیق به مدل که چگونه تنش بین ویژگیهای متضاد را مدیریت کند، رفتار آن را در یک الگوی ملموس ریشهدار میکنید، نه در منطق انتزاعی.
نتیجهگیری
مهندسی مقاوم پرامپت فقط درباره وادار کردن مدل بر انجام کاری که شما میخواهید نیست؛ بلکه درباره آموزش آن است که چگونه کاری را که نباید انجام دهد، انجام ندهد. با پیادهسازی بررسیهای صریح ابهام، ایجاد اولویتهای سلسلهمراتبی واضح و استفاده از مثالهای دفاعی Few-shot، میتوانید سیستمهای هوش مصنوعی بسازید که در برابر خطای کاربر و ورودیهای غیرقابل پیشبینی مقاوم باشند. به یاد داشته باشید: بهترین پرامپت شکست را پیش از وقوع آن پیشبینی میکند.