مدلهای زبانی بزرگ (LLM) پردازش زبان طبیعی را متحول کردهاند، اما حتی پیشرفتهترین مدلها نیز بدون راهنمایی مناسب ممکن است در انجام وظایف خاص با مشکل مواجه شوند. پرامپتنویسی چندنمونهای (Few-Shot Prompting) پل ارتباطی بین دانش عمومی و اجرای وظیفهمحور است. با ارائه تعداد کمی از نمونههای ورودی-خروجی در زمینه پرامپت، میتوانید دقت، ثبات و مرتبط بودن خروجیهای مدل را بهطور قابلتوجهی بهبود بخشید، بدون اینکه نیاز به تنظیم مجدد (Fine-tuning) وزنهای مدل باشد.
پرامپتنویسی چندنمونهای چیست؟
پرامپتنویسی چندنمونهای یک تکنیک یادگیری در زمینه (In-context Learning) است که در آن پرامپت شامل چند نمونه (یا "شات") از ورودی مورد نظر و خروجی متناظر با آن است. این تکنیک از قابلیت معماری ترنسفورمر برای توجه به زمینه اخیر بهره میبرد و به مدل اجازه میدهد الگو یا نیازمندیهای وظیفه را استنباط کند. برخلاف پرامپتنویسی بدون نمونه (Zero-shot) که صرفاً به دانش از پیش آموزشدیده مدل تکیه دارد، پرامپتنویسی چندنمونهای یک چارچوب مشخص برای پیروی مدل فراهم میکند.
چرا اهمیت دارد؟
- نیازی به بازآموزی نیست: از هزینههای محاسباتی و تلاش برای برچسبگذاری دادههای مرتبط با تنظیم مجدد (Fine-tuning) جلوگیری میکنید.
- انعطافپذیری: میتوانید با تغییر ساده نمونهها در پرامپت، به سرعت روی تعاریف وظایف کار کنید.
- دقت بهبودیافته: نمونهها ابهام را کاهش داده و مدل را به سمت فرمت یا لحن خاص مورد نیاز هدایت میکنند.
ساختاردهی پرامپتهای مؤثر
ساختار پرامپت چندنمونهای شما حیاتی است. هر نمونه باید به وضوح تفکیک شود، اغلب با استفاده از جداکنندهها برای تفکیک دستورالعمل، نمونهها و پرسش نهایی. یک الگوی رایج استفاده از یک فرمت یکپارچه برای هر شات است، مانند تفکیک ورودی از خروجی با یک رشته خاص مانند "خروجی:" یا استفاده از تگهای شبیه XML.
این مثال را برای یک وظیفه تحلیل احساسات در نظر بگیرید:
Task: Classify the sentiment of the following movie reviews as Positive, Negative, or Neutral.
Example 1:
Input: "This movie was a waste of time. The plot was predictable and the acting was poor."
Output: Negative
Example 2:
Input: "I absolutely loved the cinematography. It was a visual feast."
Output: Positive
Example 3:
Input: "The movie was okay, nothing special. I slept through half of it."
Output: Neutral
Now, classify the following review:
Input: "The acting was decent, but the script fell flat. I wouldn't recommend it."
Output:
بهترین روشها و تکنیکها
۱. انتخاب نمونههای باکیفیت و متنوع
نمونههای شما به عنوان حقیقت مرجع (Ground Truth) برای مدل عمل میکنند. اطمینان حاصل کنید که بدون ابهام، نماینده وظیفه و در صورت نیاز، پوششدهنده موارد حاشیهای (Edge Cases) هستند. تنوع در نمونههای چندنمونهای شما به مدل کمک میکند تا تعمیم بهتری داشته باشد. اگر در حال طبقهبندی اسناد هستید، نمونههایی از موضوعات یا دستهبندیهای مختلف را شامل شوید.
۲. ترتیب اهمیت دارد
تحقیقات نشان میدهد که ترتیب نمونهها میتواند بر خروجی مدل تأثیر بگذارد. قرار دادن شبیهترین نمونه به پرسش نهایی در انتهای لیست اغلب نتایج بهتری را به همراه دارد، زیرا مدل توجه بیشتری به زمینه اخیر میدهد (پدیدهای مرتبط با سوگیری تازگی در مکانیزمهای توجه).
۳. استفاده از جداکنندههای واضح
از جداکنندههای منحصربهفرد برای تفکیک نمونههای خود از پرامپت نهایی استفاده کنید. این کار از گیج شدن مدل درباره اینکه کجا دستورالعمل تمام میشود و کجا داده شروع میشود، جلوگیری میکند. برای مثال، استفاده از تگهای `
۴. پرامپتها را مختصر نگه دارید
اگرچه گاهی اوقات تعداد بیشتر شاتها میتواند دقت را بهبود بخشد، اما همچنین تعداد توکنها و هزینه را افزایش میدهد. با ۲ تا ۳ شات شروع کنید و اگر عملکرد افت کرد، به تدریج موارد بیشتری اضافه کنید. همیشه از مصرف توکنها برای اطمینان از کارایی نظارت کنید.
کاربرد عملی: تولید کد
پرامپتنویسی چندنمونهای بهطور خاص در تولید کد قدرتمند است. با ارائه چند جفت ورودی-خروجی از قطعات کد، میتوانید مدل را هدایت کنید تا به کنوانسیونهای کدنویسی، کتابخانهها یا الگوهای خاص پایبند باشد.
You are a Python expert. Write a function to reverse a string.
Example 1:
Input: "hello"
Output:
def reverse_string(s):
return s[::-1]
Example 2:
Input: "world"
Output:
def reverse_string(s):
return s[::-1]
Now, write a function to check if a string is a palindrome.
Output:
در این مورد، مدل میبیند که خروجی مورد انتظار سبک خاصی از تعریف تابع است، که آن را برای تولید یک نتیجه یکپارچه برای وظیفه جدید هدایت میکند.
نتیجهگیری
پرامپتنویسی چندنمونهای یک تکنیک چندمنظوره و قدرتمند در جعبه ابزار مهندس پرامپت است. با طراحی دقیق پرامپتها با نمونههای باکیفیت، متنوع و ساختارمند، میتوانید عملکرد LLMها را در طیف وسیعی از وظایف بهطور قابلتوجهی افزایش دهید. چه در حال ساخت یک چتبات، یک سیستم طبقهبندی خودکار یا یک دستیار کد باشید، درک و اعمال اصول پرامپتنویسی چندنمونهای منجر به خروجیهای دقیقتر، یکپارچهتر و قابلاعتمادتر خواهد شد. با ادامه تکامل مدلها، تسلط بر این تکنیکهای یادگیری در زمینه همچنان یک مهارت بنیادین برای توسعهدهندگان کار با هوش مصنوعی باقی خواهد ماند.