هوش مصنوعی ۱۶ دقیقه مطالعه

Prompt Engineering — هنر درست سوال پرسیدن از AI

یه واقعیت جالب وجود داره: دو نفر می‌تونن دقیقاً از یه مدل AI استفاده کنن و نتایج کاملاً متفاوتی بگیرن. یکی فکر می‌کنه AI بدرد نخوره، اون یکی فکر می‌کنه معجزه می‌کنه. فرقشون چیه؟ نحوه سؤال پرسیدن. یا همون چیزی که بهش می‌گیم Prompt Engineering.

توی این مقاله، قراره از صفر تا صد Prompt Engineering رو یاد بگیری. نه فقط تئوری، بلکه با مثال‌های عملی که فردا می‌تونی استفاده کنی.

Prompt Engineering چیه؟

Prompt یعنی «دستور» یا «ورودی» که به مدل AI می‌دی. Engineering یعنی مهندسی کردنش. پس Prompt Engineering یعنی هنر و علم نوشتن دستورات مؤثر برای مدل‌های AI.

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

همین اصل برای AI هم صدق می‌کنه. هرچی دقیق‌تر و بهتر بپرسی، جواب بهتری می‌گیری.

چرا Prompt Engineering مهمه؟

سه دلیل اصلی:

۱. صرفه‌جویی در زمان: یه prompt خوب ممکنه توی اولین تلاش جواب دقیق بده. یه prompt بد ممکنه ۱۰ بار رفت و برگشت نیاز داشته باشه.

۲. کیفیت بالاتر: خروجی مدل مستقیماً به کیفیت ورودی بستگی داره. Garbage in, garbage out.

۳. کنترل بیشتر: با prompt درست، می‌تونی فرمت، طول، لحن و محتوای خروجی رو دقیقاً کنترل کنی.

تکنیک ۱: Zero-Shot Prompting

ساده‌ترین نوع prompt. بدون هیچ مثالی، مستقیم سؤال می‌پرسی یا دستور می‌دی.

مثال ضعیف:

ترجمه کن: The cat sat on the mat.

مثال قوی:

جمله انگلیسی زیر رو به فارسی روان و طبیعی ترجمه کن. از کلمات ساده استفاده کن:
The cat sat on the mat.

فرق رو می‌بینی؟ توی مثال قوی، گفتیم ترجمه «روان و طبیعی» باشه و «کلمات ساده» استفاده بشه. این جزئیات به مدل کمک می‌کنه بفهمه دقیقاً چی می‌خوای.

Zero-Shot برای کارهای ساده و مستقیم خوبه. ولی برای کارهای پیچیده‌تر، به تکنیک‌های پیشرفته‌تری نیاز داری.

تکنیک ۲: Few-Shot Prompting

توی این تکنیک، چند مثال به مدل می‌دی تا بفهمه دقیقاً چه الگویی مد نظرته.

مثال:

متن‌های زیر رو بر اساس احساس (مثبت/منفی/خنثی) دسته‌بندی کن:

متن: "این فیلم فوق‌العاده بود!" → مثبت
متن: "غذا سرد بود و گارسون بی‌ادب." → منفی
متن: "ساعت ۳ رسیدم." → خنثی

حالا این متن رو دسته‌بندی کن:
متن: "کتاب خوبی بود ولی آخرش ضعیف بود."

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

نکات مهم Few-Shot:

  • مثال‌هات باید متنوع باشن. اگه همه مثبت باشن، مدل سوگیری پیدا می‌کنه.
  • معمولاً ۳ تا ۵ مثال کافیه. خیلی بیشتر از این ممکنه مدل رو گیج کنه.
  • مثال‌ها رو از ساده به پیچیده مرتب کن.

تکنیک ۳: Chain-of-Thought (زنجیره تفکر)

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

مثال بدون CoT:

اگه ۳ تا سیب داشته باشم و ۲ تاش رو بدم به دوستم،
بعد ۵ تا دیگه بخرم، چند تا سیب دارم؟

مثال با CoT:

اگه ۳ تا سیب داشته باشم و ۲ تاش رو بدم به دوستم،
بعد ۵ تا دیگه بخرم، چند تا سیب دارم؟

لطفاً قدم به قدم حل کن و هر مرحله رو توضیح بده.

با اضافه کردن «قدم به قدم حل کن»، مدل اینطور جواب می‌ده:

۱. شروع: ۳ سیب
۲. ۲ تا دادم: ۳ - ۲ = ۱ سیب
۳. ۵ تا خریدم: ۱ + ۵ = ۶ سیب
جواب: ۶ سیب

این مثال ساده‌ست ولی برای مسائل پیچیده‌تر مثل ریاضی، منطق و برنامه‌نویسی، Chain-of-Thought تفاوت چشمگیری ایجاد می‌کنه. تحقیقات نشون داده استفاده از CoT می‌تونه دقت مدل رو توی مسائل ریاضی تا ۴۰٪ بهبود بده.

تکنیک ۴: System Prompts (پرامپت سیستمی)

System Prompt یه دستور کلی هست که رفتار کلی مدل رو تنظیم می‌کنه. مثل اینکه به یه بازیگر بگی «توی این صحنه نقش یه دکتر رو بازی کن.»

مثال:

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

User: فرق وکالت‌نامه بلاعزل با معمولی چیه؟

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

نکات مؤثر System Prompt:

  • نقش مشخصی تعریف کن: «تو یه … هستی»
  • مخاطب رو مشخص کن: «برای افراد غیرمتخصص» یا «برای توسعه‌دهنده‌های ارشد»
  • محدودیت‌ها رو بگو: «از اصطلاحات پیچیده استفاده نکن»
  • فرمت خروجی رو تعیین کن: «جواب رو توی بولت‌پوینت بده» یا «حداکثر ۲۰۰ کلمه»

تکنیک ۵: Role Playing (ایفای نقش)

این تکنیک شبیه System Prompt هست ولی دقیق‌تر و تخصصی‌تر. به مدل یه شخصیت کامل می‌دی.

مثال:

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

حالا مفهوم "احتمال" رو توضیح بده.

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

تکنیک ۶: Output Formatting (قالب‌بندی خروجی)

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

مثال:

لیست ۵ تا زبان برنامه‌نویسی محبوب برای AI رو بده.
خروجی رو به فرمت JSON بده با ساختار زیر:
{
  "languages": [
    {
      "name": "اسم زبان",
      "why": "دلیل محبوبیت در یک جمله",
      "difficulty": "آسان/متوسط/سخت"
    }
  ]
}

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

تکنیک ۷: Iterative Refinement (بهبود تدریجی)

لازم نیست همیشه با یه prompt همه چیز رو بگیری. می‌تونی مرحله‌ای پیش بری.

مرحله ۱: «یه مقاله درباره مزایای ورزش صبحگاهی بنویس.»

مرحله ۲: «حالا لحنش رو صمیمی‌تر کن و مثال شخصی اضافه کن.»

مرحله ۳: «پاراگراف سوم رو حذف کن و به جاش یه آمار علمی بذار.»

مرحله ۴: «یه مقدمه جذاب‌تر بنویس که خواننده رو درگیر کنه.»

هر مرحله خروجی رو بهتر می‌کنه. این روش مخصوصاً برای تولید محتوا خیلی مؤثره.

تکنیک ۸: Constraint Setting (تعیین محدودیت)

گاهی بهترین کار اینه که بگی چی نمی‌خوای.

مثال:

یه توضیح درباره بلاکچین بنویس.

محدودیت‌ها:
- از کلمات فنی انگلیسی استفاده نکن (همه رو فارسی بگو)
- حداکثر ۱۵۰ کلمه
- برای مخاطب ۱۵ ساله بنویس
- از مثال پول و بانک استفاده کن
- جمله طولانی‌تر از ۱۵ کلمه ننویس

محدودیت‌ها مثل ریل قطار هستن: جلوی منحرف شدن مدل رو می‌گیرن.

اشتباهات رایج در Prompt Engineering

حالا بذار ببینیم چه اشتباهاتی نباید بکنی:

۱. مبهم بودن

بد: «یه چیز جالب بگو.»

خوب: «یه واقعیت علمی جالب درباره مغز انسان بگو که بیشتر مردم نمی‌دونن.»

۲. خیلی طولانی بودن

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

۳. فرض گرفتن

مدل ذهن تو رو نمی‌خونه. اگه یه context خاصی داری، صریحاً بگو. مثلاً به جای «اون مقاله‌ای که دیروز نوشتم رو اصلاح کن» بنویس: «متن زیر رو از نظر دستور زبان اصلاح کن: [متن]»

۴. ندادن context

بد: «کدم کار نمی‌کنه، چرا؟»

خوب: «کد Python زیر ارور TypeError می‌ده. خط ۱۵ مشکلیه. کد: [کد] ارور: [پیام ارور]»

۵. نپرسیدن سؤال follow-up

اگه جواب اول رضایت‌بخش نبود، prompt رو عوض کن و دوباره بپرس. هر بار یه بعد جدید اضافه کن.

۶. استفاده نکردن از مثال

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

الگوهای آماده Prompt

چند الگوی کاربردی که می‌تونی مستقیم استفاده کنی:

برای یادگیری:

مفهوم [X] رو طوری توضیح بده که یه بچه ۱۰ ساله بفهمه.
از یه مثال از زندگی روزمره استفاده کن.
بعد از توضیح، ۳ سؤال بپرس تا مطمئن بشی فهمیدم.

برای نوشتن:

یه [نوع محتوا] درباره [موضوع] بنویس.
مخاطب: [کی]
لحن: [چطور]
طول: [چقدر]
باید شامل: [چه نکاتی]
نباید شامل: [چه چیزایی]

برای دیباگ کد:

کد زیر [زبان] هست و ارور [نوع ارور] می‌ده.
انتظار دارم [رفتار مورد انتظار] ولی [رفتار فعلی] اتفاق می‌افته.
لطفاً:
1. مشکل رو شناسایی کن
2. دلیلش رو توضیح بده
3. کد اصلاح‌شده رو بنویس
[کد]

برای تحلیل:

این [متن/داده/گزارش] رو تحلیل کن.
تمرکز روی: [جنبه خاص]
خروجی رو به این فرمت بده:
- نکات اصلی: [بولت‌پوینت]
- نقاط قوت: [بولت‌پوینت]
- نقاط ضعف: [بولت‌پوینت]
- پیشنهادات: [بولت‌پوینت]

Prompt Engineering برای کدنویسی

اگه برنامه‌نویس هستی، Prompt Engineering می‌تونه بهره‌وریت رو چند برابر کنه. چند نکته اختصاصی:

زبان و فریمورک رو مشخص کن: به جای «یه API بنویس»، بگو «یه REST API با Python و FastAPI بنویس که…»

ورودی و خروجی رو تعریف کن: «تابعی بنویس که لیستی از دیکشنری‌ها بگیره و…»

محدودیت‌های فنی رو بگو: «بدون استفاده از کتابخانه خارجی» یا «سازگار با Python 3.9 به بالا»

از مدل بخواه کدش رو توضیح بده: «کد رو بنویس و هر بخش رو با کامنت توضیح بده.»

آینده Prompt Engineering

یه سؤال مهم: آیا Prompt Engineering همیشه لازمه؟

مدل‌ها هر روز بهتر می‌شن و بهتر می‌فهمن منظورت چیه. ولی حتی بهترین مدل‌ها هم با prompt بهتر، نتیجه بهتری می‌دن. فکر کن مثل رانندگی: ماشین‌های جدید خیلی راحت‌تر از قدیمی‌ها هستن، ولی هنوز باید بلد باشی رانندگی کنی.

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

هر کسی که با AI کار می‌کنه — از برنامه‌نویس گرفته تا بازاریاب، از دانشجو تا مدیر — از یادگیری Prompt Engineering سود می‌بره. این مهارت مثل تایپ کردنه: وقتی یاد بگیریش، توی همه چیز سریع‌تر و بهتر می‌شی.

شروع کن. با همین تکنیک‌هایی که یاد گرفتی، یه prompt بنویس و نتیجه رو ببین. بعد عوضش کن و دوباره امتحان کن. هر بار یه چیز جدید یاد می‌گیری. Prompt Engineering یه مهارته که با تمرین بهتر می‌شه، نه با خوندن.

نظرات

هنوز نظری ثبت نشده. اولین نفر باشید!

نظر خود را بنویسید