پرامپتنویسی Few-shot؛ آموزش مدل با چند مثال
با چند مثال ساده خروجی مدل را دقیقتر کن: تفاوت zero-shot و few-shot، تعداد مثال مناسب و خطاهای رایج.

Few-shot prompting یکی از قویترین تکنیکهای پرامپتنویسیه که با یه کار ساده کار میکنه: بهجای اینکه فقط سؤال بپرسی، چند مثال هم میدی تا مدل بفهمه دقیقاً چی میخوای. این مقاله رو میخوام نه تئوری، بلکه عملی بنویسم، با مثالهای واقعی که میتونی همین الان امتحان کنی.
few-shot یعنی چی؟
وقتی با یه LLM کار میکنی، میتونی از سه روش ازش بخوای کاری انجام بده:
- zero-shot: هیچ مثالی نمیدی، فقط دستور میدی. «این متن رو خلاصه کن.»
- one-shot: یه مثال میدی که نشون بده خروجی باید چطور باشه.
- few-shot: دو تا پنج مثال میدی، مدل الگو رو یاد میگیره و بهش پایبند میمونه.
منطقش سادهست: مدلهای زبانی از روی الگو کار میکنن. وقتی چند مثال میدی، داری بهش میگی «این فرمت، این لحن، این سطح جزئیات»، و مدل دقیقاً همونو دنبال میکنه.
چرا few-shot از zero-shot بهتره؟
فرض کن میخوای ChatGPT یا آیرا برات توییت بنویسه. اگه بگی «یه توییت درباره محصول ما بنویس»، احتمالاً یه چیز کلیشهای میگیری.
ولی اگه سه مثال از توییتهای خودت بدی و بعد بگی «حالا با همین لحن یه توییت درباره محصول ما بنویس»، نتیجه کاملاً فرق میکنه.
مثال عملی، دستهبندی احساسات:
متن: «این رستوران عالی بود، غذاش خوشمزه و سرویس سریع بود»
احساس: مثبت
متن: «دو ساعت منتظر موندیم و غذا سرد اومد»
احساس: منفی
متن: «قیمتها معقوله ولی دکور قدیمیه»
احساس: خنثی
متن: «پیتزاش خوب بود ولی پارکینگ نداشت»
احساس: ?
بدون توضیح اضافه، مدل میفهمه باید چی بگه. جواب: خنثی.
ساختار یه few-shot prompt خوب
یه few-shot prompt استاندارد این چهار بخش رو داره:
۱. زمینه (Context) چند جمله که مدل بفهمه چه نقشی داره و هدف چیه.
۲. مثالهای input/output معمولاً ۲ تا ۵ تا مثال. بیشتر از ۵ تا معمولاً کمک نمیکنه و فقط token مصرف میکنه.
۳. سؤال یا وظیفهٔ اصلی همون فرمت مثالها، ولی با ورودی جدید و بدون جواب.
۴. نشانهگر پاسخ یه چیز مثل «جواب:» یا «خروجی:» که مدل بدونه باید از اینجا ادامه بده.
مثال کاربردی برای فارسی: تبدیل لحن
فرض کن میخوای متنهای رسمی رو به لحن دوستانه تبدیل کنی:
ورودی: «خواهشمندیم هرچه سریعتر اقدام فرمایید.»
خروجی: «زودتر انجامش بده، ممنون!»
ورودی: «به استحضار میرساند که موجودی حساب شما ناکافی است.»
خروجی: «حسابت پوله نداره، یه نگاه بنداز.»
ورودی: «لطفاً مدارک لازم را در اسرع وقت ارائه دهید.»
خروجی:
مدل از این سه مثال میفهمه که باید چقدر غیررسمی باشه، چقدر کوتاه بنویسه، و لحن چطور باشه.
وقتی few-shot کار نمیکنه
Few-shot همیشه معجزه نمیکنه. این موارد رو بدون:
مثالهای متناقض: اگه مثالهات سبکهای مختلفی داشته باشن، مدل گیج میشه. همهٔ مثالها باید از یه دست باشن.
وظایف خیلی پیچیده: اگه کار نیاز به استدلال چندمرحلهای داره، few-shot به تنهایی کافی نیست. اونجا باید سراغ chain-of-thought prompting بری.
توکنهای محدود: اگه داری با یه مدل ارزونقیمت کار میکنی که context window کوچیکی داره، مثالهای زیاد میتونن از متن اصلیات فضا بدزدن.
دادههای نادرست: مثالهای اشتباه = خروجی اشتباه. کیفیت مثالها مستقیماً روی کیفیت جواب تأثیر میذاره.
few-shot vs fine-tuning، کِی کدوم رو انتخاب کنی؟
سؤال خوبیه. few-shot یه راهحل موقتیه که در prompt زندگی میکنه. fine-tuning یه راهحل دائمیه که داخل مدل میشینه.
اگه یه وظیفهٔ تکراری داری که هر بار باید مثالهاش رو دوباره تایپ کنی، و کلی توکن هدر میره، شاید وقتشه fine-tuning رو بررسی کنی. ولی برای اکثر کارهای روزمره، few-shot کافیه.
برای کاربر فارسی چه نکتههای خاصی هست؟
فارسی چند چالش خاص داره:
نوشتار چسبیده: کلماتی مثل «میرفتم» یا «میگویند»، مدلها گاهی توکنیزیشن ضعیفی دارن. مثالهای واضح کمک میکنه مدل بفهمه شکل درست چیه.
رسمی vs عامیانه: فارسی دو سطح خیلی متفاوت داره. مثالهات مشخص کنه کدوم سطح میخوای.
اعداد و تاریخ: اگه با تاریخهای شمسی یا اعداد فارسی کار میکنی، حتماً نمونهها رو با همون فرمت بده.
اگه از آیراچت استفاده میکنی، یه مزیت اضافه داری: آیرا از قبل زمینهٔ کارت رو میدونه. این یعنی نیازی نیست هر بار از صفر توضیح بدی، شناخت پیوسته این سربار رو از دوشت برمیداره.
خلاصهٔ عملی
- ۲ تا ۵ مثال کافیه؛ بیشتر معمولاً بهتر نیست
- مثالها باید از یه دست و با کیفیت باشن
- وقتی استدلال پیچیده لازمه، با chain-of-thought ترکیبش کن
- برای وظایف تکراری در مقیاس بزرگ، fine-tuning رو بررسی کن
- برای فارسی، سطح زبانی رو توی مثالها مشخص کن
همچنین بخوان
ادامهٔ مسیر
همهٔ مقالهها ←
پرامپتنویسی به سبک RAG؛ دادن دانش خودت به مدل
وقتی مدل اطلاعات داخلی شرکت یا پروژهات را نمیداند: چطور بدون ساختن سیستم RAG، همان نتیجه را با پرامپت بگیری.

Chain-of-thought در پرامپتنویسی
یه بار از ChatGPT خواستی یه مسئلهٔ ریاضی یا منطقی حل کنه و جواب اشتباه گرفتی؟ احتمالاً مشکل مدل نبود، مشکل نحوهٔ پرسیدن بود.

فرمول CO-STAR در پرامپتنویسی
یه پرامپت خوب انگار داری با یه متخصص صحبت میکنی که هم موضوع رو میدونه، هم دقیقاً میفهمه چی میخوای.

فرمول RACE در پرامپتنویسی
اگه تا حالا از یه AI خواستی کاری انجام بده و نتیجهای که گرفتی با چیزی که تو ذهنت بود خیلی فرق داشت، احتمالاً مشکل از پرامپت بوده.