اصول پایه پرامپت نویسی (Prompt Engineering) مجموعه‌ای از قواعد بنیادین است که رعایت آن‌ها، کیفیت خروجی مدل‌های زبانی را به‌طور چشمگیری افزایش می‌دهد.
این اصول شامل وضوح، زمینه، مثال، قالب خروجی، محدودیت و استدلال گام‌به‌گام است.
هر یک از این اصول، لایه‌ای از کنترل را به پرامپت نویس می‌دهد.
یادگیری تدریجی و تمرین مستمر، کلید تسلط بر این اصول است.
این راهنما اصول پایه، تکنیک‌های کلیدی و مسیر یادگیری را به‌صورت فنی بررسی می‌کند.

اصول پایه پرامپت نویسی، ستون‌های اصلی تعامل مؤثر با مدل‌های زبانی بزرگ (Large Language Models یا LLM) هستند. بدون تسلط بر این اصول، حتی با قوی‌ترین مدل، خروجی نامنظم و غیرقابل‌اتکا خواهد بود. برای درک این اصول، ابتدا باید بدانیم پرامپت نویسی چیست و سپس لایه‌های آن را به‌تفصیل بررسی کنیم.

در تجربه کار روی پروژه‌های مختلف، دیده‌ام که بسیاری از مشکلات خروجی مدل، به نادیده گرفتن یک اصل پایه برمی‌گردد. گاهی یک اصل ساده مانند «تعریف قالب خروجی» می‌تواند تفاوت میان خروجی قابل‌پردازش و خروجی بی‌استفاده باشد. اگر با ضرورت پرامپت نویسی آشنا هستید، آماده‌اید تا وارد جزئیات اصول پایه شوید.

اصول پایه پرامپت نویسی را می‌توان با اصول پایه معماری مقایسه کرد: هرچه شالوده محکم‌تر باشد، بنای نهایی پایدارتر خواهد بود. در پرامپت نویسی، این شالوده همان اصولی هستند که در ادامه بررسی می‌کنیم. تسلط بر این اصول، پیش‌نیاز یادگیری تکنیک‌های پیشرفته است.

اصل اول: وضوح

وضوح، مهم‌ترین اصل پرامپت نویسی است. یک پرامپت واضح، تنها یک تفسیر ممکن دارد. اگر پرامپت شما می‌تواند به چند شکل مختلف تفسیر شود، پس واضح نیست و مدل ممکن است تفسیری را انتخاب کند که با انتظار شما هم‌خوان نباشد.

روش‌های افزایش وضوح

  • استفاده از افعال دقیق: به‌جای «بررسی کن» از «تحلیل کن و سه مزیت و سه عیب فهرست کن» استفاده کنید.
  • حذف کلمات مبهم: کلماتی مانند «خوب»، «حرفه‌ای» یا «مناسب» را با معیارهای مشخص جایگزین کنید.
  • تعریف هدف: هدف پرامپت را صریح بیان کنید.
  • مشخص کردن مخاطب: مخاطب پاسخ را مشخص کنید تا سطح تخصص تنظیم شود. برای جزئیات، پست نقش و مخاطب در پرامپت نویسی را ببینید.
  • کمّی‌سازی معیارها: طول، تعداد، زمان و سطح را با عدد مشخص کنید.

نمونه‌ای از پرامپت واضح و مبهم

پرامپت مبهم:

یک مقاله خوب درباره وردپرس بنویس.

پرامپت واضح:

یک مقاله ۲۰۰۰ کلمه‌ای به زبان فارسی درباره «افزونه‌های ضروری وردپرس برای فروشگاه اینترنتی» بنویس.
مقاله باید شامل این بخش‌ها باشد:
1. مقدمه (۱۵۰ کلمه)
2. ۵ افزونه ضروری با توضیح هر یک (۳۰۰ کلمه برای هر افزونه)
3. ملاحظات انتخاب افزونه (۲۰۰ کلمه)
4. نتیجه‌گیری (۱۰۰ کلمه)
لحن مقاله رسمی و آموزشی باشد.

برای مطالعه عمیق‌تر این اصل، پست افزایش وضوح در پرامپت را ببینید.

وضوح، هزینه‌ای است که یک بار پرداخت می‌کنید تا در هر اجرا سود ببرید.

اصل دوم: زمینه

زمینه (Context)، اطلاعات پس‌زمینه‌ای است که به مدل کمک می‌کند موقعیت را درک کند. بدون زمینه کافی، مدل مجبور است بر اساس دانش عمومی خود پاسخ دهد که ممکن است با انتظار شما هم‌خوان نباشد.

انواع زمینه

  • زمینه کسب‌وکار: اطلاعات درباره سازمان، محصول یا مشتری.
  • زمینه فنی: اطلاعات درباره فناوری، معماری یا محدودیت‌ها.
  • زمینه فرهنگی: اطلاعات درباره زبان، منطقه یا مخاطب.
  • زمینه زمانی: اطلاعات درباره دوره یا نسخه.
  • زمینه کاربر: اطلاعات درباره کاربری که پرسش را مطرح می‌کند.

نمونه‌ای از زمینه مؤثر

Context: The website is a Persian-language WooCommerce store
with over 10,000 products. The client is concerned about
checkout performance on mobile devices.

این زمینه، مدل را به سمت پاسخ‌هایی هدایت می‌کند که برای یک فروشگاه فارسی‌زبان با حجم بالای محصول و تمرکز بر موبایل مناسب هستند. برای مطالعه عمیق‌تر این اصل، پست نقش زمینه و بافت در پرامپت نویسی را ببینید.

مدیریت پنجره زمینه

هر مدل زبانی، یک پنجره زمینه محدود دارد. مدیریت این پنجره، یکی از چالش‌های اصلی در سامانه‌های تولیدی است. برای جزئیات، پست مدیریت پنجره زمینه در پرامپت نویسی را ببینید.

اصل سوم: مثال

مثال‌ها، الگوی مورد انتظار را به مدل نشان می‌دهند. در وظایف با ساختار مشخص، مثال‌ها می‌توانند دقت خروجی را به‌طور چشمگیری افزایش دهند. این تکنیک که Few-shot Prompting نامیده می‌شود، در پروژه‌های واقعی بسیار مؤثر است.

نمونه‌ای از Few-shot Prompting

Example 1:
Input: "وردپرس کند است"
Output: {"category": "performance", "severity": "high"}

Example 2:
Input: "افزونه با قالب تداخل دارد"
Output: {"category": "compatibility", "severity": "medium"}

Now classify: "دیتابیس بهینه نیست"

این ساختار، مدل را به سمت الگوی مورد انتظار هدایت می‌کند و دقت خروجی را افزایش می‌دهد. برای مطالعه عمیق‌تر این اصل، پست استفاده از مثال در پرامپت را ببینید.

تعداد مناسب مثال‌ها

تعداد مناسب مثال‌ها به نوع وظیفه بستگی دارد. در وظایف ساده، ۱ تا ۳ مثال کافی است. در وظایف پیچیده، ۵ تا ۱۰ مثال ممکن است لازم باشد. برای مقایسه صفر-نمونه و چند-نمونه، پست تفاوت پرامپت صفر-نمونه و چند-نمونه را ببینید.

اصل چهارم: قالب خروجی

قالب خروجی، ساختار مورد انتظار پاسخ را تعیین می‌کند. تعریف صریح قالب، خروجی را قابل‌پردازش‌تر و پایدارتر می‌کند. در سامانه‌های تولیدی، این اصل حیاتی است.

انواع قالب خروجی

  • JSON: مناسب برای پردازش برنامه‌نویسی.
  • Markdown: مناسب برای مستندسازی.
  • XML: مناسب برای کاربردهای خاص.
  • جدول: مناسب برای مقایسه.
  • لیست: مناسب برای مراحل.

نمونه‌ای از تعریف قالب

پاسخ خود را در قالب JSON زیر ارائه کن:
{
  "summary": "خلاصه ۲ جمله‌ای",
  "steps": ["مرحله ۱", "مرحله ۲", "مرحله ۳"],
  "warnings": ["هشدار ۱", "هشدار ۲"]
}

این قالب، خروجی را قابل‌پردازش در یک برنامه می‌کند. برای مطالعه عمیق‌تر این اصل، پست درخواست خروجی در قالب خاص را ببینید.

JSON Schema و اعتبارسنجی

در سامانه‌های حرفه‌ای، می‌توان از JSON Schema برای اعتبارسنجی خروجی مدل استفاده کرد. برای جزئیات، پست JSON Schema برای کنترل پاسخ مدل را ببینید.

اصل پنجم: محدودیت‌ها

محدودیت‌ها، مرزهایی هستند که مدل باید در پاسخ خود رعایت کند. این محدودیت‌ها، دامنه پاسخ را کنترل و از خروجی‌های نامطلوب جلوگیری می‌کنند.

انواع محدودیت‌ها

  • محدودیت طول: مثلاً حداکثر ۵۰۰ کلمه.
  • محدودیت محتوا: مثلاً پرهیز از موضوعات خاص.
  • محدودیت لحن: مثلاً رسمی یا دوستانه.
  • محدودیت زبان: مثلاً پاسخ به فارسی.
  • محدودیت ساختار: مثلاً پرهیز از بولت‌پوینت.
  • محدودیت منابع: مثلاً فقط بر اساس اسناد ارائه‌شده.

نمونه‌ای از تعریف محدودیت

Constraints:
- پاسخ حداکثر ۳۰۰ کلمه باشد.
- از اصطلاحات فنی انگلیسی با توضیح فارسی استفاده کن.
- از نقل‌قول مستقیم از منابع دیگر پرهیز کن.
- در صورت عدم اطمینان، صریحاً اعلام کن.

برای مطالعه عمیق‌تر این اصل، پست اعمال محدودیت‌ها در پرامپت را ببینید.

اصل ششم: استدلال گام‌به‌گام

در وظایف پیچیده، از مدل بخواهید گام‌به‌گام استدلال کند. این تکنیک که زنجیره تفکر (Chain of Thought) نامیده می‌شود، دقت را در مسائل استدلالی افزایش می‌دهد.

نمونه‌ای از استدلال گام‌به‌گام

مسئله را گام‌به‌گام حل کن و هر مرحله را نشان بده.

این دستور ساده، مدل را به تقسیم مسئله به گام‌های کوچک‌تر وادار می‌کند و احتمال خطا را کاهش می‌دهد. برای مطالعه عمیق‌تر این اصل، پست زنجیره تفکر در پرامپت نویسی را ببینید.

تکنیک‌های پیشرفته استدلال

پس از تسلط بر زنجیره تفکر، می‌توانید تکنیک‌های پیشرفته‌تری مانند درخت تفکر در پرامپت نویسی و روش خودسازگاری در پرامپت نویسی را یاد بگیرید.

اصل هفتم: بهبود تدریجی

طراحی پرامپت، یک فرایند تکرارشونده است. پرامپت اولیه به‌ندرت کامل است و باید در چند دور بهبود یابد. برای جزئیات، پست اصلاح تدریجی پرامپت را ببینید.

مراحل بهبود تدریجی

  1. نسخه اولیه: یک پرامپت ساده بنویسید و خروجی را بررسی کنید.
  2. شناسایی نقص: نقاط ضعف خروجی را در یک لیست یادداشت کنید.
  3. افزودن اجزا: بر اساس نقاط ضعف، اجزای جدیدی اضافه کنید.
  4. آزمون A/B: دو نسخه را با یکدیگر مقایسه کنید.
  5. تثبیت نسخه نهایی: نسخه برتر را ذخیره کنید.

نسخه‌بندی پرامپت

برای حفظ قابلیت ردیابی، همه تغییرات پرامپت را ثبت کنید. برای جزئیات، پست نسخه‌بندی پرامپت را ببینید.

اصل هشتم: ارزیابی

ارزیابی، بخش جدایی‌ناپذیر پرامپت نویسی است. بدون ارزیابی، نمی‌توان کیفیت پرامپت را سنجید و بهبود داد. برای جزئیات، پست ارزیابی کیفیت پرامپت را ببینید.

معیارهای ارزیابی

  • دقت: درصد پاسخ‌های درست.
  • پایداری: یکنواختی خروجی در اجراهای مختلف.
  • قابلیت پردازش: ساختاریافته بودن خروجی.
  • هزینه: تعداد توکن مصرفی.
  • تأخیر: زمان اجرا.

آزمون A/B

برای ارزیابی دقیق، دو نسخه از پرامپت را در یک مجموعه تست مشترک مقایسه کنید. برای جزئیات، پست آزمون A/B برای پرامپت‌ها را ببینید.

اصل نهم: امنیت

امنیت، یکی از جنبه‌های حیاتی پرامپت نویسی است که اغلب نادیده گرفته می‌شود. در سامانه‌هایی که به مدل زبانی متصل هستند، دو نوع حمله اصلی وجود دارد: تزریق پرامپت و نشت پرامپت.

تزریق پرامپت

در تزریق پرامپت، مهاجم با دستکاری ورودی، رفتار مدل را تغییر می‌دهد. این حمله می‌تواند به افشای اطلاعات یا اجرای دستور مخرب منجر شود. برای جزئیات، پست تزریق پرامپت چیست را ببینید.

دفاع چندلایه

برای دفاع در برابر این حملات، باید از یک رویکرد چندلایه استفاده کرد. برای جزئیات، پست دفاع در برابر تزریق پرامپت را ببینید.

حاکمیت پرامپت

در سازمان‌های بزرگ، پرامپت‌ها باید در یک چارچوب حاکمیتی مدیریت شوند. برای جزئیات، پست حاکمیت پرامپت را ببینید.

مسیر یادگیری گام‌به‌گام

یادگیری اصول پایه پرامپت نویسی، یک مسیر تدریجی است:

گام اول: تسلط بر وضوح

با تمرین نوشتن پرامپت‌های واضح شروع کنید. هر پرامپت را چند بار بازنویسی کنید و خروجی را مقایسه کنید.

گام دوم: افزودن زمینه

پس از تسلط بر وضوح، زمینه را به پرامپت‌ها اضافه کنید و اثر آن را بر خروجی مشاهده کنید.

گام سوم: استفاده از مثال

در وظایف ساختاریافته، از مثال‌ها استفاده کنید. تعداد و کیفیت مثال‌ها را آزمایش کنید.

گام چهارم: تعریف قالب خروجی

برای همه پرامپت‌ها، قالب خروجی تعریف کنید. از JSON، Markdown یا XML بر اساس نیاز استفاده کنید.

گام پنجم: اعمال محدودیت‌ها

محدودیت‌های مناسب را به پرامپت‌ها اضافه کنید تا دامنه پاسخ را کنترل کنید.

گام ششم: استدلال گام‌به‌گام

در وظایف پیچیده، از زنجیره تفکر استفاده کنید. در صورت نیاز، به تکنیک‌های پیشرفته‌تر مانند درخت تفکر و خودسازگاری ارتقا دهید.

گام هفتم: ارزیابی و بهبود

هر پرامپت را ارزیابی کنید و بر اساس نتایج، آن را بهبود دهید. این چرخه را به‌صورت مستمر تکرار کنید.

گاممهارتتمرین پیشنهادی
۱وضوحبازنویسی پرامپت‌های مبهم
۲زمینهافزودن زمینه به پرامپت‌های ساده
۳مثالطراحی مثال برای وظایف طبقه‌بندی
۴قالب خروجیتعریف JSON برای خروجی
۵محدودیت‌هااعمال محدودیت طول و لحن
۶استدلالاستفاده از زنجیره تفکر
۷ارزیابیآزمون A/B و نسخه‌بندی

پرسش‌های پرتکرار درباره اصول پایه

مهم‌ترین اصل پرامپت نویسی کدام است؟

وضوح، مهم‌ترین اصل است. اگر پرامپت واضح نباشد، سایر اصول نیز نمی‌توانند کیفیت خروجی را تضمین کنند.

آیا همه اصول باید در یک پرامپت رعایت شوند؟

خیر. در وظایف ساده، ممکن است فقط دو یا سه اصل لازم باشد. در وظایف پیچیده، همه اصول ممکن است ضروری شوند. هدف، انتخاب حداقل اصول لازم برای رسیدن به خروجی مطلوب است.

آیا مثال همیشه لازم است؟

خیر. در وظایف عمومی و شناخته‌شده، مثال ممکن است ضروری نباشد. اما در وظایف ساختاریافته یا تخصصی، مثال می‌تواند دقت را به‌طور چشمگیری افزایش دهد.

چطور بفهمم پرامپت من به اندازه کافی واضح است؟

سه معیار: پایداری خروجی، دقت پاسخ و قابلیت پردازش. اگر خروجی مدل در اجراهای مختلف مشابه، دقیق و ساختاریافته باشد، پرامپت شما واضح است.

چند وقت طول می‌کشد تا اصول پایه را یاد بگیرم؟

یادگیری اصول پایه، چند هفته تمرین مداوم نیاز دارد. اما تسلط بر آن‌ها، نیازمند کار روی پروژه‌های واقعی و مواجهه با چالش‌های متنوع است.

آیا اصول پایه در همه مدل‌ها یکسان است؟

اصول کلی مشابه است، اما مدل‌های مختلف ممکن است به برخی ساختارها حساس‌تر باشند. توصیه می‌شود پرامپت خود را برای هر مدل، جداگانه تنظیم کنید.

آیا می‌توان اصول را به‌صورت خودکار یاد گرفت؟

خیر. اگرچه ابزارهایی برای تولید پرامپت وجود دارند، اما تسلط بر اصول، نیازمند تمرین، تجربه و درک عمیق است.

آیا اصول پایه بر هزینه اجرا اثر دارند؟

بله. برخی اصول مانند مثال و زمینه، هزینه توکن را افزایش می‌دهند. بنابراین، باید بین بهبود دقت و افزایش هزینه تعادل برقرار کرد.

آیا اصول پایه بر امنیت اثر دارند؟

بله. رعایت اصول پایه، به‌ویژه وضوح و محدودیت‌ها، می‌تواند در برابر حملات تزریق مقاومت ایجاد کند. اما این اصول نمی‌توانند جایگزین لایه‌های دفاعی دیگر شوند.

چطور می‌توانم اصول پایه را در تیم خود آموزش دهم؟

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

آیا اصول پایه پرامپت نویسی برای همه زبان‌ها یکسان است؟

اصول پایه یکی است، اما در زبان‌های مختلف، ملاحظات زبانی و فرهنگی متفاوتی وجود دارد. برای زبان فارسی، دقت بر نیم‌فاصله و ساختار جمله اهمیت دارد.

نتیجه‌گیری کاربردی

اصول پایه پرامپت نویسی، شالوده تعامل مؤثر با مدل‌های زبانی هستند. این اصول شامل وضوح، زمینه، مثال، قالب خروجی، محدودیت، استدلال گام‌به‌گام، بهبود تدریجی، ارزیابی و امنیت است. تسلط بر این اصول، کیفیت، پایداری و قابلیت پردازش خروجی را به‌طور چشمگیری افزایش می‌دهد.

تسلط بر اصول پایه پرامپت نویسی، یک سرمایه‌گذاری بلندمدت است که در هر پروژه بازدهی می‌دهد.

مسیر یادگیری این اصول، تدریجی و مستمر است. با شروع از وضوح، افزودن زمینه و مثال، تعریف قالب خروجی و اعمال محدودیت‌ها، می‌توان به سطح حرفه‌ای رسید. توصیه می‌کنم پرامپت‌های خود را به‌عنوان دارایی سازمانی مدیریت کنید و از یک چارچوب نسخه‌بندی مشخص استفاده کنید. برای کسب اطلاعات بیشتر درباره مبانی پرامپت نویسی، صفحه Prompt Engineering را در ویکی‌پدیا مطالعه کنید.

اگر تجربه‌ای در یادگیری یا آموزش اصول پایه پرامپت نویسی دارید، برای ما جالب است بدانید کدام اصل برای شما بیشترین تأثیر را داشته است. تجربه خودتان را در دیدگاه‌ها بنویسید.