یاد دادن با مثال در پرامپت
جواب کوتاه
یاد دادن با مثال (few-shot) یعنی توی خود پرامپت چند نمونهی ورودی و جواب بذارید تا مدل از روی اونا بفهمه کار چیه و جواب چه شکلیه. هیچ وزنی عوض نمیشه؛ مدل همون لحظه از روی متن میخونه، که بهش میگن یادگیری درون زمینه. پژوهشها نشون دادن نمونهها بیشتر از هر چیز جوابهای ممکن، شکل ورودی و قالب جواب رو یاد میدن. نمونهی خوب مرتبط، متنوع و برچسبداره؛ معمولا سه تا پنج تا.
یعنی چی
بهجای اینکه نیم صفحه توضیح بدید چی میخواید، سه تا نمونه نشون بدید.
فرض کنید یه نونوایی هر روز دهها پیام از مشتریها میگیره و میخواد هر پیام رو توی یکی از سه دسته بذاره: سوال، گلایه، یا تشکر. میشه یه پاراگراف توضیح نوشت که هر دسته یعنی چی. ولی یه راه سادهتر هم هست: چند تا پیام با دستهی درستشون، توی خود پرامپت. به این میگن یاد دادن با مثال، یا به انگلیسی few-shot.
سه حالت
یه پژوهش ۲۰۲۰ با یه مدل ۱۷۵ میلیاردی سه حالت رو جدا کرد: بی نمونه، که فقط دستور میدید؛ یه نمونه؛ و چند نمونه. توی اون پژوهش، «چند» یعنی هر چند تا که توی پنجرهی زمینه جا بشه؛ معمولا ۱۰ تا ۱۰۰.
جوابهای زیر هر حالت رو برای نشون دادن فرق نوشتیم، نه از یه آزمایش واقعی. بی نمونه، مدل نمیدونه جواب باید یه کلمه باشه یا یه جمله، و اسم دستهها چیه؛ هر بار ممکنه یه شکل جواب بده. با سه نمونه، هم دستهها معلومن، هم قالب: پیام، یه فلش، یه کلمه.
چرا کار میکنه
توی درس پرامپت چیست دیدیم مدل ادامهی محتمل متن رو میسازه. وقتی سه بار پشت هم «پیام ← دسته» دیده، محتملترین ادامهی «پیام ← ؟» یه دستهی دیگه از همون جنسه. پژوهش ۲۰۲۰ اسم این رو گذاشت یادگیری درون زمینه: مدل از روی متنی که جلوشه یاد میگیره، بی اینکه حتی یه وزنش عوض بشه.
همون پژوهش دید کارایی با دو چیز بهتر میشه: وقتی یه توضیح کوتاه از کار هم کنار نمونهها باشه، و وقتی تعداد نمونهها بیشتر بشه. و یه نکتهی مهم دیگه: مدلهای بزرگتر از نمونههای توی زمینه خیلی بهتر استفاده میکردن. این با قانونهای مقیاس جور درمیاد.
فرقش با فاینتیون همینه. فاینتیون با صدها یا هزاران نمونه وزنها رو عوض میکنه و برای همیشه میمونه. یاد دادن با مثال با چند نمونه، فقط برای همون پرامپت کار میکنه.
نمونهها چی یاد میدن
یه پژوهش ۲۰۲۲ یه آزمایش جالب کرد: توی نمونههای پرامپت، جوابها رو تصادفی عوض کرد؛ یعنی عمدا جواب غلط گذاشت. انتظار داشتیم مدل خراب بشه. ولی توی کارهای دستهبندی و چندگزینهای، توی ۱۲ مدل مختلف، کارایی خیلی کم پایین اومد.
پس نمونهها بیشتر چی یاد میدن؟ همون پژوهش سه چیز رو پیدا کرد: جوابهای ممکن (که فقط سه دسته داریم، نه بیشتر)، شکل ورودی (پیام کوتاه مشتری، نه مقاله)، و قالب کلی (پیام، فلش، یه کلمه). یعنی نمونه بیشتر از اینکه جواب رو یاد بده، صحنه رو میچینه. این به این معنی نیست که جواب نمونهها مهم نیست؛ اون آزمایش فقط روی دستهبندی و چندگزینهای بود، و برای کارهایی مثل نوشتن، جواب نمونه خودش الگوی لحن و طوله.
نمونهی خوب
راهنمای پرامپت Claude میگه نمونه یکی از مطمئنترین راهها برای گرفتن قالب، لحن و ساختار دلخواهه، و برای نمونهها سه شرط میذاره.
مرتبط: دقیقا شبیه کار واقعی شما؛ اگه پیامهای مشتریها خودمونی و پرغلطه، نمونهها هم همینطور باشن. متنوع: حالتهای لبه رو هم بپوشونن، مثل پیام خالی یا پیام کنایهدار. و برچسبدار: هر نمونه توی برچسب <example> خودش، تا مدل نمونه رو با دستور قاطی نکنه؛ همون فکری که توی درس مهندسی پرامپت دیدیم.
همون راهنما سه تا پنج نمونه رو برای بهترین نتیجه پیشنهاد میده، و یه ترفند خوب هم داره: میتونید از خود مدل بخواید نمونههاتون رو از نظر ربط و تنوع بسنجه، یا از روی چندتاشون نمونهی بیشتر بسازه.
دام الگو
چرا تنوع اینقدر مهمه؟ چون مدل همهی شباهتهای نمونهها رو میبینه، نه فقط اونی که شما منظورتونه.
فرض کنید سه نمونه جواب به مشتری دادید و هر سه با «سلام!» شروع میشن و کوتاهن. مدل نمیدونه «سلام!» قانونه یا اتفاق؛ پس احتمالا اون رو هم تقلید میکنه، حتی جایی که بهش نمیاد. راهنمای Claude دقیقا برای همین میگه نمونهها رو اونقدر متنوع کنید که مدل الگوی ناخواسته برنداره. قاعدهی ساده: هر چیزی که توی همهی نمونههاتون یکیه، مدل فکر میکنه باید همیشه همون باشه.
ترتیب هم مهمه
نه فقط اینکه کدوم نمونهها رو بذارید؛ ترتیبشون هم مهمه.
یه پژوهش ۲۰۲۱ نشون داد درستی یه مدل با چند نمونه، فقط با عوض کردن قالب، نمونهها یا حتی ترتیبشون، از نزدیک حدس شانسی تا نزدیک بهترین نتیجهی اون روز جابهجا میشه. دلیلش سوگیری مدله: به جوابهایی که نزدیک آخر پرامپت اومدن، و به جوابهایی که توی دادهی آموزش زیاد بودن، تمایل بیشتری داره. پس اگه دو نمونهی آخر هر دو «مثبت» باشن، جوابها بیشتر «مثبت» میشن. اون پژوهش یه راه ساده هم داد: اول ببینیم مدل برای یه ورودی بیمعنی، مثل «هیچی»، چه جوابی ترجیح میده، و همون سوگیری رو از جوابها کم کنیم؛ این کار درستی رو تا ۳۰ امتیاز بالا برد. درس عملی: نمونهها رو قاطی بچینید.
صدها نمونه بهجای چند تا
با بزرگ شدن پنجرهی زمینه، یه سوال تازه پیش اومد: اگه بهجای سه تا نمونه، صدها یا هزاران نمونه بدیم چی؟
یه پژوهش ۲۰۲۴ همین رو امتحان کرد و دید یاد دادن با صدها یا هزاران مثال، توی خیلی از کارها نتیجه رو خیلی بهتر میکنه، و حتی میتونه بر سوگیریهایی که مدل از پیشآموزش داره غلبه کنه؛ گاهی هماندازهی فاینتیون. برای وقتی که نمونهی آدمنوشته کمه، نشون داد میشه از استدلالهایی که خود مدل نوشته، یا حتی فقط سوالها بی جواب، استفاده کرد. البته هزینه با تعداد نمونهها خطی بالا میره، چون همهشون توکن پرامپتن.
چند نکته
- نمونه، بهجای توضیح طولانی. مخصوصا برای قالب و لحن.
- سه تا پنج، متنوع. هر چی یکیه، قانون فرض میشه.
- هر نمونه توی برچسب خودش. از دستور جدا.
- نمونهها جا میگیرن. هر کدوم بخشی از پنجرهی زمینهست.
درس بعد یه ترفند دیگه رو باز میکنه که خیلی وقتها با نمونه هم ترکیب میشه: فکر کردن قدم به قدم.
جمعبندی. آنچه از این درس با خودتان میبرید.
- چند نمونه، بهجای توضیح طولانی.
- هیچ وزنی عوض نمیشه.
- نمونهها جوابهای ممکن، شکل ورودی و قالب رو یاد میدن.
- مرتبط، متنوع، برچسبدار؛ سه تا پنج تا.
- نمونههای همشکل، الگوی ناخواسته یاد میدن.
خودتون رو بسنجید
۱۵ پرسش، هر بار تازه از میان ۳۰ پرسش این درس. آخرش فقط کارنامه رو میبینید: چند تا درست، چند تا نادرست.