ahmad hasanzadeh branding logoahmad hasanzadeh branding logo
    خانهپروژه هامقالاتدرباره منتکنولوژی هاارتباط با من
ahmad hasanzadeh branding logoahmad hasanzadeh branding logo

ممنون که سر زدی ッ

© ۱۴۰۵

احمد حسن زاده. تمامی حقوق محفوظ است.

چگونه پرامپت بنویسیم تا از هوش مصنوعی نتیجه بهتری بگیریم؟

چگونه پرامپت بنویسیم تا از هوش مصنوعی نتیجه بهتری بگیریم؟

راهنمای عملی پرامپت‌نویسی برای هوش مصنوعی؛ با اصول، مثال‌های واقعی و اشتباهات رایجی که باعث می‌شود جواب هوش مصنوعی ضعیف باشد.

اگر تا حالا از ChatGPT یا Claude یک جواب کلی، مبهم یا اشتباه گرفته‌اید، مشکل معمولاً از «هوش مصنوعی» نیست؛ از پرامپتی است که به آن داده‌اید. مدل‌های زبانی هیچ ذهن‌خوانی‌ای ندارند؛ آن‌ها دقیقاً همان چیزی را برمی‌گردانند که از متن ورودی برداشت می‌کنند. یاد گرفتن نوشتن پرامپت خوب، همان چیزی است که فاصله بین «یک جواب معمولی» و «جوابی که واقعاً قابل استفاده است» را پر می‌کند.

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

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

چرا ساختار پرامپت مهم‌تر از انتخاب مدل است

خیلی‌ها فکر می‌کنند اگر مدل قوی‌تری انتخاب کنند، جواب بهتری می‌گیرند. اما در عمل، بیشترِ جواب‌های ضعیف از ابهام در درخواست می‌آید، نه از محدودیت مدل. وقتی یک درخواست چند برداشت مختلف دارد، مدل هم یکی از آن برداشت‌ها را حدس می‌زند؛ و معمولاً همان برداشتی که شما مد نظرتان نبوده.

برای مثال این دو درخواست را مقایسه کنید:

plaintext
یک ایمیل برای مشتری بنویس که دیر تحویل گرفته.

در برابر:

plaintext
یک ایمیل عذرخواهی رسمی برای یک مشتری سازمانی بنویس که سفارشش
۵ روز دیرتر از موعد تحویل داده شده. لحن: محترمانه و مسئولانه، بدون
بهانه‌تراشی. طول: حداکثر ۱۵۰ کلمه. در پایان یک تخفیف ۱۰ درصدی
برای سفارش بعدی پیشنهاد بده.

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

آناتومی یک پرامپت خوب

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

۱. زمینه (Context): مدل چه اطلاعات پس‌زمینه‌ای نیاز دارد؟ مخاطب کیست؟ این کار برای چه هدفی انجام می‌شود؟

۲. وظیفه (Task): دقیقاً چه کاری باید انجام شود؟ فعل دقیق و مشخص استفاده کنید («خلاصه کن»، «مقایسه کن»، «بازنویسی کن») نه چیزهای کلی مثل «کمکم کن».

۳. محدودیت‌ها (Constraints): طول، لحن، زبان، چیزهایی که نباید در جواب باشد.

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

۵. مثال (در صورت نیاز): یک یا دو نمونه از خروجی مطلوب، مخصوصاً وقتی فرمت یا لحن خاصی مد نظرتان است.

نکته مهم: شروع کنید با صفر مثال (Zero-shot) و فقط اگر جواب مطابق انتظار نبود، یک مثال اضافه کنید (One-shot). اضافه کردن چند مثال از ابتدا (Few-shot) معمولاً فقط برای کارهای تکراری با فرمت ثابت لازم است، نه برای هر پرامپتی.

به مدل اجازه بدهید بگوید «نمی‌دانم»

یکی از رایج‌ترین دلایل هالوسینیشن (تولید اطلاعات نادرست با اعتماد به نفس بالا) این است که پرامپت هیچ راهی برای «عدم قطعیت» باز نمی‌گذارد. وقتی مدل احساس کند باید حتماً یک جواب قطعی بدهد، گاهی جواب را می‌سازد.

راه‌حل ساده است؛ در پرامپت صریحاً اجازه بدهید:

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

این یک جمله ساده، قابلیت اعتماد به جواب را به‌شکل محسوسی بالا می‌برد.

پرامپت‌های طولانی و پیچیده را ساختاریافته بنویسید

وقتی حجم اطلاعات ورودی زیاد می‌شود (مثلاً چند سند، چند بخش داده، یا چند وظیفه در یک درخواست)، مدل به کمک نیاز دارد تا بفهمد کجا داده تمام می‌شود و کجا دستور شروع می‌شود. استفاده از تیترهای واضح یا جداکننده‌های ساده، بهترین راه است:

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

نیازی نیست تگ‌های XML پیچیده یاد بگیرید؛ فاصله‌گذاری تمیز و تیتربندی ساده، برای اکثر مدل‌های امروزی کافی است. سؤال یا دستور اصلی را همیشه در انتهای پرامپت بگذارید، بعد از اینکه تمام زمینه و داده را دادید؛ این کار باعث می‌شود مدل درست قبل از پاسخ دادن، آخرین چیزی که می‌بیند دقیقاً همان درخواست شما باشد.

مقایسه یک پرامپت مبهم در برابر یک پرامپت ساختاریافته با نتیجه بهتر

شکستن کارهای پیچیده به مراحل کوچک‌تر

اگر از مدل بخواهید یک کار چندمرحله‌ای را یک‌جا انجام دهد (مثلاً «این گزارش را تحلیل کن، نتیجه‌گیری کن و یک ایمیل بر اساسش بنویس»)، احتمال خطا در یکی از مراحل بالا می‌رود و پیدا کردن مشکل سخت‌تر می‌شود. برای کارهای مهم، بهتر است کار را به چند پرامپت جدا تقسیم کنید یا از مدل بخواهید مرحله‌به‌مرحله فکر کند:

plaintext
مرحله ۱: نکات کلیدی این گزارش را استخراج کن.
مرحله ۲: بر اساس آن نکات، سه نتیجه‌گیری اصلی بنویس.
مرحله ۳: بر اساس آن نتیجه‌گیری‌ها، یک ایمیل خلاصه برای مدیر بنویس.

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

اشتباهات رایجی که وقت شما را هدر می‌دهند

  • درخواست‌های خیلی کلی: «این متن را بهتر کن» به جای گفتن اینکه دقیقاً از چه نظر (لحن؟ طول؟ ساختار؟) بهتر شود.
  • مخلوط کردن زمینه و دستور در یک جمله: وقتی داده و دستور قاطی می‌شوند، مدل سخت‌تر می‌تواند آن‌ها را از هم تشخیص دهد.
  • فراموش کردن فرمت خروجی: اگر نگویید خروجی به چه شکل باشد، مدل حدس می‌زند و معمولاً حدسش با نیاز شما یکی نیست.
  • پرامپت‌های خیلی طولانی و بی‌نظم: طولانی بودن به‌تنهایی چیزی را بهتر نمی‌کند؛ هر جمله باید یا محدودیت اضافه کند یا زمینه بدهد. یک پرامپت کوتاه و دقیق، معمولاً از یک پرامپت بلند و مبهم بهتر عمل می‌کند.
  • تست نکردن دوباره: یک پرامپت که یک‌بار خوب جواب داده، همیشه بهترین شکل ممکن آن نیست. تغییرات کوچک را امتحان کنید و نتیجه را مقایسه کنید.

چک‌لیست سریع قبل از ارسال پرامپت

  • وظیفه را با یک فعل مشخص گفته‌ام؟
  • محدودیت‌های لازم (طول، لحن، زبان) را نوشته‌ام؟
  • فرمت خروجی مشخص شده؟
  • اگر داده پیچیده دارم، آن را از دستور جدا کرده‌ام؟
  • به مدل اجازه دادم در صورت عدم قطعیت، آن را اعلام کند؟

جمع‌بندی

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

هوش مصنوعی

نویسنده:

هوش مصنوعی
دقیقه:8
انتشار :۱۴۰۵/۴/۳۱
آپدیت :۱۴۰۵/۴/۳۱

دسته بندی ها

هوش مصنوعی

تگ ها

#Prompt Engineering#AI#ChatGPT#Claude#هوش مصنوعی#بهره‌وری