مهندسی پرامپت
امروزه، با ظهور ChatGPT و سایر ابزارهای هوش مصنوعی، طیف گستردهای از افراد، از کاربران عادی گرفته تا متخصصان و توسعهدهندگان، به شکل گستردهای از مدلهای زبانی یا Language Models برای اهداف مختلف استفاده میکنند. یکی از مفاهیم کلیدی در این زمینه، مهندسی پرامپت (Prompt Engineering) است؛ حوزهای نوظهور که به طراحی و بهینهسازی ورودیها (پرامپتها) برای استفاده بهتر از این مدلها میپردازد. با توجه به علاقه زیاد به کار با مدلهای زبانی بزرگ، تصمیم گرفتهام یک آموزش جامع برای مهندسی پرامپت آماده کنم. در این پست، اصول اولیه مهندسی پرامپت، شامل تعریف، اهمیت و کاربردهای کلیدی تا تکنیکهای پیشرفته آن را آموزش خواهم داد. با هوسم همراه باشید…

مهندسی پرامپت چگونه متولد شد؟
برای پاسخ به این سوال، بهتر است به سال 2017 بازگردیم! سالی که مقاله مهم “Attention Is All You Need” توسط تیم تحقیقاتی گوگل ارائه شد. این مقاله شبکه ترنسفورمر را معرفی کرد که ساختاری انقلابی برای پردازش زبان طبیعی (NLP) بود و در ابتدا برای ترجمه ماشینی (Machine Translation) پیشنهاد شده بود. این ساختار تحولی بزرگ در مدلسازی زبان (Language Modeling) ایجاد کرد و زمینه را برای توسعه مدلهای زبانی قدرتمند فراهم ساخت.
سال بعد (2018)، مدلهای مهمی مانند BERT و GPT ارائه شدند. BERT بیشتر بر درک زبان (Language Understanding) تمرکز داشت و برای وظایفی مانند سوالجواب (Question Answering) و تحلیل متن عملکرد خوبی داشت. اما GPT که توسط OpenAI توسعه یافت، بر تولید متن (Language Generation) تمرکز داشت و نسل جدیدی از مدلهای زبانی را پایهریزی کرد.
در ادامه، OpenAI مدلهای پیشرفتهتر خود، یعنی GPT-2 (2019) و GPT-3 (2020) را معرفی کرد. GPT-3 با 175 میلیارد پارامتر به یکی از بزرگترین و قدرتمندترین مدلهای زبانی جهان تبدیل شد و توانایی فوقالعادهای در تولید متن طبیعی و انجام وظایف مختلف از خود نشان داد.
با معرفی GPT-3 در ژوئن 2020، کاربران متوجه شدند که کیفیت پاسخهای تولیدشده به شدت به کیفیت ورودی (پرامپت یا Prompt) وابسته است. این وابستگی باعث شد که مهندسی پرامپت (Prompt Engineering) به عنوان یک حوزه مهم و کلیدی در تعامل با مدلهای زبانی مطرح شود. در واقع، مهندسی پرامپت ابزاری است برای طراحی ورودیهایی که مدلها را به سمت تولید پاسخهای دقیقتر، مرتبطتر و متناسب با نیاز کاربر هدایت میکند.

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

پرامپت همانند پلی است که درخواست کاربر را به مدل منتقل میکند. یک پرامپت مناسب باعث میشود که مدل بتواند به بهترین شکل ممکن درخواست را درک کند و پاسخ دقیق و مرتبطی ارائه دهد. مثالی از اهمیت کیفیت پرامپت را در شکل زیر مشاهده کنید.

در تصویر بالا مشاهده میکنید که دو پرامپت به DeepSeek دادم:
- پرامپت اول: “امروز غذا چی درست کنم؟”؛ یک پرامپت کلی که جواب کلی دریافت کردم. اتفاقا در جواب هم کاملا مشخص هست که پرامپت من کلی بوده. در ابتدای پیام اشاره کرده که بستگی به سلیقه و مواد اولیه دارد و در انتهای پیام نوشته، اگر مواد خاصی دارید یا ترجیح میدهید، میتوانم پیشنهاد دقیقتری دهم. در پرامپت دوم جزئیات بیشتری قرار دادم.
- پرامپت دوم: “من امروز مهمون دارم، وقت زیادی ندارم و مواد غذایی من محدود هست. مرغ، سیبزمینی، ماست و کاهو دارم. 5 غذای مناسب براساس این مواد غذایی به من پیشنهاد کن.”؛ حالا مشاهده میکنید که 5 غذای خوب همراه با نحوه آمادهسازی آنها را در اختیار من گذاشته است.
حال که پرامپت و اهمیت آن را درک کردید، میتوانیم یک گام به جلوتر برویم؛ ببینیم مهندسی پرامپت چیست؟
مهندسی پرامپت چیست؟
مهندسی پرامپت به فرآیند طراحی و بهینهسازی دستورات ورودی (پرامپتها) برای مدلهای زبانی بزرگ (LLM) مثل GPT یا T5 اشاره دارد. این پرامپتها راهنمایی برای مدل محسوب میشوند تا خروجیهای خاص و باکیفیت مورد نظر کاربر را تولید کنند.
چرا مهندسی پرامپت مهم است؟
مهندسی پرامپت مهارتی کاربردی و ارزشمند برای تمامی افرادی است که با مدلهای زبانی بزرگ (LLMs) در تعامل هستند؛ از کاربران عمومی که استفاده آنها به ابزارهایی مانند ChatGPT و Midjourney محدود میشود، تا محققان و توسعهدهندگانی که در بالاترین سطوح پژوهش و فناوری با این مدلها کار میکنند.
بهصورت خلاصه، مهندسی پرامپت به دلایل زیر مهم است:
- ارتباط دقیق: پرامپتها نیت کاربر را به زبانی قابل فهم برای ماشین بیان میکنند.
- افزایش کارایی: مدلهای زبانی توانایی زیادی دارند که با طراحی پرامپت خوب میتوان از این توانایی حداکثر بهره را برد.
- صرفهجویی در زمان و هزینه: مهندسی پرامپت، با کاهش فرآیند آزمونوخطا، باعث صرفهجویی در زمان و منابع میشود.
کاربردهای مهندسی پرامپت
مهندسی پرامپت به صورت گسترده در زمینههای زیر استفاده میشود:
- تولید محتوا: نوشتن مقاله، گزارش و محتوای خلاقانه.
- آموزش: طراحی آزمون، خلاصهسازی مفاهیم یا ارائه توضیحات.
- برنامهنویسی: نوشتن کد، رفع اشکال و توضیح الگوریتمها.
- تحلیل داده: خلاصهسازی دادهها یا استخراج اطلاعات.
- پشتیبانی مشتری: خودکارسازی پاسخها و طراحی چتباتها.
- هنر و خلاقیت: خلق هنرهای متنی یا تصویری با ابزارهایی مانند DALL-E یا MidJourney.
شاید شما هم از ابزارهای خلق تصویر استفاده کرده باشید. در شکل زیر، دو نمونه تصویر به عنوان پرامپت خوب و بد آوردهام:
- پرامپت بد (تصویر چپ):
Draw a city
- پرامپت خوب (تصویر راست):
Create a vibrant, detailed illustration of a futuristic city at sunset, with flying cars, glowing skyscrapers, and people walking on elevated pathways. Use warm colors for the sky and cool tones for the buildings to create contrast

امیدوارم، تا اینجا پرامپت و مهندسی پرامپت و اهمیت این دو را به خوبی درک کرده باشید. درادامه، وارد مباحث تخصصیتر میشویم.
تکنیکهای پیشرفته مهندسی پرامپت
در این بخش، به تکنیکهای پیشرفته مهندسی پرامپت پرداخته میشود. این تکنیکها به ما کمک میکند که کارهای پیچیده را انجام دهیم و حداکثر بهره را قابلیتهای LLM-ها ببریم. درادامه، به معرفی تعدادی از تکنیکهای پیشرفته مهندسی پرامپت پرداختهام…
تکنیک Zero-shot Prompting
تکنیک Zero-shot Prompting به این معناست که یک مدل زبانی بتواند وظایف مشخصی را بدون داشتن هیچ نمونه یا مثالی از پیش (Zero-shot) انجام دهد. در این روش، مدل مستقیما یک دستور دریافت میکند و بدون ارائه نمونههای راهنما، پاسخ مناسب را تولید میکند.
مدلهای زبانی بزرگ امروزی، مانند GPT، روی حجم وسیعی از دادهها آموزش دیدهاند. همین موضوع باعث شده است که بدون نیاز به آموزش خاص روی یک تسک مشخص، در برخی وظایف عملکرد قابل قبولی داشته باشند. ارزیابیها نشان دادهاند که این مدلها قابلیت Zero-shot Learning را دارند، یعنی میتوانند تنها با دریافت دستور مناسب، وظایفی مانند کلاسبندی متن، خلاصهسازی، و پاسخ به سوالات را انجام دهند.
بهعنوان مثال، اگرچه مدل GPT مستقیما برای طبقهبندی متن آموزش ندیده است، اما در مثال زیر مشاهده میشود که با پیروی از دستور، پاسخ مطلوبی را تولید میکند:
Classify the text into neutral, negative, or positive. Text: The food was decent, not great but not bad either. Sentiment:
خروجی مدل:
Neutral
اگر Zero-shot جواب مطلوبی ارائه نداد، بهتر هست که در پرامپت چند نمونه یا مثال قرار دهیم. این کار به Few-shot Prompting نام دارد. در بخش بعدی، این روش را توضیح میدهم.
تکنیک Few-shot Prompting
مدلهای زبانی بزرگ تواناییهای قابل توجهی در Zero-shot دارند، اما در انجام وظایف پیچیدهتر با این روش دچار محدودیت میشوند. Few-shot Prompting روشی است که به مدل کمک میکند تا از طریق یادگیری در بستر متن یا پرامپت (In-context Learning) عملکرد بهتری داشته باشد. در این روش، چند نمونه در پرامپت قرار میدهیم تا مدل بر اساس آنها پاسخهای دقیقتری تولید کند. این نمونهها به مدل جهت میدهند و باعث میشوند که خروجیهای بهتری ارائه دهد.
Classify the following movie reviews into Positive, Neutral, or Negative sentiment. Here are some examples: Example 1: Text: "The movie was absolutely amazing! The storyline was engaging, and the acting was top-notch." Sentiment: Positive Example 2: Text: "It was an average film. Not too exciting, but not terrible either." Sentiment: Neutral Example 3: Text: "I regret watching this movie. The plot was weak, and the characters were unconvincing." Sentiment: Negative "Now, classify the following review:" Text: "The cinematography was beautiful, but the story felt slow and uninspiring." Sentiment:
خروجی مدل:
Neutral
البته، با مدلهای پیشرفته امروزی، چندان نیازی نیست که آنقدر با جزئیات مثالها را مشخص کنیم. با پرامپتی شبیه مثال زیر که حتی لیبل جملات هم رندومی و نادرست هست، مدل میتواند نتیجه مطلوب را ارائه دهد:
I absolutely enjoy the view! // Negative This restaurant is amazing! // Neutral The service was terrible! // Positive What an unforgettable time! //
خروجی مدل:
Positive
ادامه دارد…
منبع اول و اصلی این آموزش، وبسایت ارزشمند promptingguide.ai هست.
دیدگاهتان را بنویسید