مثال دادن برای پاسخ بهتر
فرض کنید از یک مدل هوش مصنوعی می خواهید برای شما یک عنوان بنویسد.
می نویسید:
برای این مقاله یک عنوان جذاب بنویس.
مدل هم یک عنوان پیشنهاد می دهد. شاید خوب باشد، شاید هم چیزی باشد که اصلا با سلیقه شما جور نیست.
حالا یک تغییر کوچک انجام دهید:
برای این مقاله یک عنوان جذاب بنویس. سبک عنوان هایی که دوست دارم شبیه اینهاست:
- چرا بیشتر پرامپت ها جواب خوبی نمی دهند؟
- پنج اشتباهی که کیفیت پاسخ ChatGPT را خراب می کند
- قبل از اینکه از AI جواب بخواهید، این یک کار را انجام دهید
پنج عنوان جدید با همین حس و ساختار پیشنهاد بده.
در درخواست دوم، شما فقط نگفتید چه می خواهید؛ به مدل نشان دادید چه چیزی را خوب می دانید.
این یکی از ساده ترین و موثرترین روش های بهتر کردن پرامپت است:
به جای اینکه فقط توضیح دهید، مثال هم بدهید.
چرا مثال این قدر موثر است؟
وقتی می گویید:
متن را حرفه ای بنویس.
کلمه «حرفه ای» می تواند ده ها معنی داشته باشد.
برای یک وکیل، متن حرفه ای یک شکل دارد. برای یک برند جوان اینستاگرامی شکل دیگری دارد. برای مدیر فنی یک شرکت هم چیز دیگری است.
اما اگر بگویید:
لحن را شبیه این نمونه نگه دار:
«اگر قرار است برای هر پاسخ AI دوباره همه چیز را اصلاح کنید، احتمالا مشکل از ابزار نیست؛ مشکل از نحوه تعریف درخواست است.»
مدل تصویر بسیار روشن تری از چیزی که انتظار دارید پیدا می کند.
یک مثال خوب می تواند همزمان اطلاعات زیادی منتقل کند:
- لحن
- طول جمله ها
- میزان رسمی بودن
- ساختار
- سطح جزئیات
- نوع واژگان
- فرمت خروجی
- چیزهایی که دوست دارید
گاهی یک مثال کوتاه، بیشتر از یک پاراگراف توضیح ارزش دارد.
Zero-shot، One-shot و Few-shot یعنی چه؟
در دنیای پرامپت نویسی معمولا سه اصطلاح می بینید.
Zero-shot
هیچ نمونه ای به مدل نمی دهید.
مثلا:
این نظر مشتری را مثبت، خنثی یا منفی دسته بندی کن:
«محصول خوب بود ولی ارسال خیلی دیر انجام شد.»
مدل باید فقط از دستور شما بفهمد چه کاری لازم است انجام دهد.
One-shot
یک مثال به مدل می دهید.
نمونه:
«کیفیت عالی بود و خیلی راضی بودم.» → مثبتحالا این را دسته بندی کن:
«محصول خوب بود ولی ارسال خیلی دیر انجام شد.»
Few-shot
چند مثال می دهید تا الگوی مورد نظر واضح تر شود.
نمونه ۱:
«کیفیت عالی بود و خیلی راضی بودم.» → مثبتنمونه ۲:
«نه خوب بود نه بد؛ معمولی بود.» → خنثینمونه ۳:
«کالا خراب به دستم رسید.» → منفیحالا این را دسته بندی کن:
«محصول خوب بود ولی ارسال خیلی دیر انجام شد.»
به این روش معمولا Few-shot Prompting گفته می شود.
اسمش شاید کمی دانشگاهی به نظر برسد، اما ایده اش کاملا ساده است:
چند نمونه بده تا مدل الگوی مورد نظر را بفهمد.
مثال دادن برای کنترل لحن
یکی از بهترین کاربردهای مثال، کنترل لحن است.
فرض کنید می خواهید یک متن برای شبکه اجتماعی بنویسید و نمی خواهید شبیه تبلیغات کلیشه ای باشد.
درخواست ضعیف:
یک کپشن صمیمی و حرفه ای برای این پست بنویس.
درخواست بهتر:
یک کپشن برای این پست بنویس. لحن باید صمیمی، مستقیم و حرفه ای باشد؛ بدون جمله های انگیزشی کلیشه ای.
این دو نمونه به لحن مورد نظر من نزدیک هستند:
«AI قرار نیست به جای شما فکر کند. ولی اگر درست از آن استفاده کنید، می تواند بخش زیادی از کارهای تکراری فکر کردن را حذف کند.»
«مسئله این نیست که ChatGPT جواب می دهد یا نه. مسئله این است که آیا شما می دانید چه جوابی لازم دارید.»
حالا یک کپشن 120 تا 150 کلمه ای با همین لحن بنویس.
اینجا مدل دیگر مجبور نیست حدس بزند «صمیمی و حرفه ای» از نظر شما یعنی چه.
شما تعریف را با نمونه جایگزین کرده اید.
مثال دادن برای کنترل ساختار
مثال فقط برای لحن نیست.
می توانید شکل خروجی را هم با نمونه مشخص کنید.
فرض کنید صدها توضیح محصول دارید و می خواهید همه به یک شکل بازنویسی شوند.
به جای توضیح طولانی درباره فرمت، یک نمونه بدهید:
اطلاعات ورودی:
نام: NotebookLM
کاربرد: تحلیل منابع و ساخت خلاصه، سوال و یادداشت
مناسب برای: دانشجویان و پژوهشگرانخروجی مورد نظر:
NotebookLM
ابزار مناسب برای کار با منابع شخصی، خلاصه سازی و استخراج نکات مهم.
مناسب برای: دانشجویان، پژوهشگران و افرادی که با اسناد زیاد کار می کنند.حالا اطلاعات ابزارهای بعدی را دقیقا با همین ساختار تبدیل کن.
این روش برای تولید خروجی های تکرارشونده فوق العاده مفید است.
مثال دادن برای طبقه بندی اطلاعات
یکی دیگر از کاربردهای بسیار خوب Few-shot Prompting، دسته بندی است.
مثلا فرض کنید پیام های پشتیبانی را می خواهید به چهار گروه تقسیم کنید:
- مشکل پرداخت
- مشکل فنی
- درخواست ویژگی
- سوال عمومی
به جای اینکه فقط اسم دسته ها را بدهید، برای هرکدام یک یا دو نمونه قرار دهید.
«پول از حسابم کم شده ولی سفارش ثبت نشده.» → مشکل پرداخت
«دکمه ورود در موبایل کار نمی کند.» → مشکل فنی
«می شود حالت تاریک هم اضافه کنید؟» → درخواست ویژگی
«ساعت کاری پشتیبانی چه زمانی است؟» → سوال عمومی
حالا پیام های زیر را دسته بندی کن.
مدل با دیدن نمونه ها بهتر می فهمد مرز بین دسته ها دقیقا کجاست.
مثال دادن برای تولید JSON یا خروجی ساخت یافته
وقتی می خواهید خروجی در یک نرم افزار یا Workflow استفاده شود، فرمت اهمیت زیادی دارد.
مثلا:
هر متن را به JSON تبدیل کن.
نمونه ورودی:
«جلسه پروژه شنبه ساعت 10 با علی برگزار می شود.»نمونه خروجی:
{ "type": "meeting", "day": "شنبه", "time": "10:00", "person": "علی" }حالا متن های بعدی را با همین Schema تبدیل کن.
با این کار احتمال اینکه مدل نام فیلدها، ساختار یا نوع خروجی را هر بار تغییر دهد کمتر می شود.
البته اگر خروجی قرار است مستقیما وارد سیستم شود، همچنان باید آن را اعتبارسنجی کنید. مدل زبانی جای Validation را نمی گیرد.
مثال دادن در برنامه نویسی
این تکنیک در کدنویسی هم کاربرد زیادی دارد.
فرض کنید پروژه شما یک الگوی مشخص برای API دارد.
اگر فقط بگویید:
یک Endpoint برای ساخت کاربر بنویس.
مدل ممکن است ساختاری تولید کند که با معماری پروژه شما هماهنگ نباشد.
اما اگر یک Endpoint موجود را به عنوان نمونه بدهید و بگویید:
Endpoint جدید را با همان Pattern این نمونه بساز. Naming، Error Handling، Validation و Response Structure را حفظ کن.
نتیجه معمولا بسیار نزدیک تر به کد فعلی پروژه خواهد بود.
در پروژه های واقعی، نمونه موجود در Codebase اغلب از توضیح معماری مفیدتر است.
چند مثال بدهیم؟
قانون ثابتی وجود ندارد.
برای بسیاری از کارها:
- یک مثال برای روشن کردن سبک کافی است.
- دو یا سه مثال برای نشان دادن یک الگو بهتر است.
- مثال های بیشتر زمانی مفید هستند که مسئله پیچیده یا مرز بین دسته ها مبهم باشد.
اما بیشتر همیشه بهتر نیست.
اگر ده ها مثال وارد کنید، پرامپت طولانی تر می شود، هزینه و زمان پردازش بالا می رود و ممکن است نمونه های ضعیف یا متناقض مدل را گیج کنند.
بهتر است به جای تعداد زیاد، چند مثال واضح و نماینده انتخاب کنید.
مثال خوب چه ویژگی هایی دارد؟
یک مثال خوب باید دقیقا همان چیزی را نشان دهد که می خواهید مدل از آن یاد بگیرد.
مثلا اگر هدف شما کنترل لحن است، نمونه ای انتخاب کنید که لحنش دقیق باشد.
اگر هدف فرمت است، نمونه باید فرمت صحیح را نشان دهد.
اگر هدف طبقه بندی است، مثال ها باید مرز بین دسته ها را روشن کنند.
سه ویژگی مهم:
1. نمونه باید درست باشد
اگر مثال شما اشتباه باشد، مدل اشتباه را به عنوان الگو دریافت می کند.
2. نمونه باید مرتبط باشد
مثالی که شباهتی به کار واقعی ندارد، کمک زیادی نمی کند.
3. نمونه ها نباید با هم تناقض داشته باشند
اگر در یک نمونه متن کوتاه می خواهید و در نمونه بعدی خروجی بسیار طولانی است، مدل نمی داند کدام الگو مهم تر است.
فقط مثال مثبت ندهید
گاهی لازم است به مدل نشان دهید چه چیزی نمی خواهید.
مثلا:
این سبک را می خواهم:
«سه راه ساده برای بهتر کردن پاسخ AI»این سبک را نمی خواهم:
«با این راز باورنکردنی دنیای هوش مصنوعی را منفجر کنید!»
یا:
خروجی خوب:
کوتاه، مستقیم، بدون مقدمه اضافی.خروجی بد:
شروع با «در دنیای پرشتاب امروز...» و چند پاراگراف مقدمه عمومی.
نمونه منفی می تواند مرزها را خیلی سریع روشن کند.
یکی از اشتباهات رایج: مثال خیلی خاص
گاهی یک مثال آن قدر خاص است که مدل به جای فهمیدن سبک، خود محتوا را تقلید می کند.
فرض کنید می خواهید مدل چند عنوان درباره امنیت سایبری تولید کند، اما تنها نمونه شما درباره ChatGPT است.
ممکن است ساختار یا واژه های آن نمونه بیش از حد وارد خروجی شوند.
راه بهتر این است که چند مثال با موضوع های متفاوت ولی سبک یکسان بدهید.
این کار به مدل نشان می دهد چیزی که باید حفظ شود «الگو» است، نه موضوع نمونه.
مثال دادن بهتر است یا توضیح دادن؟
معمولا ترکیب هر دو بهترین نتیجه را می دهد.
یک ساختار خوب می تواند این باشد:
- بگویید چه کاری می خواهید.
- Context لازم را بدهید.
- چند قانون مهم را مشخص کنید.
- یک یا چند مثال قرار دهید.
- شکل خروجی نهایی را تعیین کنید.
مثلا:
برای یک وب سایت آموزشی، توضیح کوتاه ابزارهای AI بنویس.
مخاطب افراد تازه کار هستند. متن باید ساده، مستقیم و بدون تبلیغ باشد.
نمونه:
Perplexity
ابزار جستجو و تحقیق با تمرکز روی پاسخ همراه با منبع. برای شروع تحقیق و پیدا کردن مسیرهای اولیه مفید است، اما منابع اصلی همچنان باید بررسی شوند.حالا برای ChatGPT، Claude و NotebookLM هرکدام بین 40 تا 60 کلمه با همین ساختار بنویس.
در این پرامپت هم هدف مشخص است، هم Context، هم محدودیت و هم نمونه.
یک Template آماده
برای بسیاری از کارها می توانید از این قالب استفاده کنید:
می خواهم [کار مورد نظر] را انجام دهی.
زمینه: [اطلاعات مهم درباره مخاطب، پروژه یا شرایط]
قوانین:
- [محدودیت ۱]
- [محدودیت ۲]
- [محدودیت ۳]
نمونه خروجی خوب:
[نمونه]اگر لازم است، نمونه خروجی نامناسب:
[نمونه ای که نمی خواهید]حالا برای این ورودی انجام بده:
[ورودی واقعی]
لازم نیست همیشه همه بخش ها را پر کنید. هدف این است که مدل مجبور نباشد چیزهای مهم را حدس بزند.
تمرین: یک درخواست واقعی را با مثال بهتر کنید
یک کاری را انتخاب کنید که معمولا از AI می خواهید.
مثلا:
- نوشتن ایمیل
- ساخت عنوان
- خلاصه کردن متن
- تولید کپشن
- دسته بندی اطلاعات
- نوشتن توضیح محصول
- تولید کد
اول درخواست را بدون مثال بنویسید و خروجی را ببینید.
بعد یک یا دو نمونه از خروجی مطلوبتان به پرامپت اضافه کنید و دوباره همان درخواست را اجرا کنید.
دو خروجی را کنار هم بگذارید و این سوال ها را بررسی کنید:
- آیا لحن بهتر شد؟
- آیا ساختار نزدیک تر شد؟
- آیا نیاز به اصلاح کمتر شد؟
- آیا مدل بهتر فهمید دقیقا چه می خواهید؟
این مقایسه خیلی سریع نشان می دهد که آیا مثال دادن برای کار شما ارزش دارد یا نه.
جمع بندی
وقتی مدل خروجی دلخواه شما را تولید نمی کند، همیشه لازم نیست پرامپت را طولانی تر کنید.
گاهی کافی است یک نمونه خوب به آن نشان دهید.
اگر بخواهیم اصل این مقاله را در یک جمله خلاصه کنیم:
به جای اینکه فقط بگویید چه می خواهید، گاهی بهتر است نشان دهید چه می خواهید.
این همان ایده اصلی One-shot و Few-shot Prompting است و یکی از کاربردی ترین ابزارهایی است که می توانید برای کنترل لحن، ساختار، دسته بندی و فرمت خروجی مدل های هوش مصنوعی استفاده کنید.