مهندسی پرامپت (Prompt Engineering) چیست؟ راهنمای کامل تکنیکها و ابزارها
مهندسی پرامپت (Prompt Engineering) یکی از کلیدیترین مهارتها در کار با مدلهای زبانی بزرگ (LLMها) مانند ChatGPT است. در این حوزه، ما یاد میگیریم چطور با طراحی و بهینهسازی پرسشها و دستورات (پرامپتها)، مدل را به سمت تولید پاسخهای دقیقتر، کاربردیتر و مرتبطتر هدایت کنیم.
در سطح پیشرفته، مهندسی پرامپت نهتنها شامل نوشتن یک سوال ساده است، بلکه ترکیبی از تکنیکهای خاص، استفاده از ابزارهای تخصصی، و بهکارگیری الگوهای آماده برای بهینهسازی خروجی مدل میباشد. در این مقاله، با تکنیکهای پیشرفته مانند Zero-shot Prompting، One-shot Prompting، Few-shot Prompting، Chain-of-Thought (CoT) و Self-Consistency آشنا میشوید و همچنین با ابزارهای پرکاربردی مثل LangChain، OpenAI Playground، Hugging Face و IBM AI Classroom آشنا خواهیم شد.
Zero-shot Prompting – اجرای وظیفه بدون نمونه قبلی
Zero-shot Prompting روشی است که در آن، مدل زبانی بدون دیدن هیچ نمونه یا آموزش قبلی برای یک وظیفه خاص، تنها بر اساس دانش قبلی خود به سوال پاسخ میدهد. مثلا اگر از مدل بپرسیم:
«برج ایفل در برلین قرار دارد. درست یا غلط؟»
مدل باید بدون داشتن مثال آموزشی مشابه، صرفا با تکیه بر دانش عمومی خود پاسخ «غلط» را بدهد. این روش زمانی مفید است که بخواهیم سرعت پاسخدهی بالا باشد یا نمونههای آموزشی در دسترس نباشند.
مزیت اصلی Zero-shot این است که نیاز به تهیه داده آموزشی ندارد و میتواند طیف وسیعی از سوالات عمومی را پاسخ دهد. البته دقت آن وابسته به میزان دانش قبلی و کیفیت آموزش پایه مدل است و ممکن است در مسائل تخصصی یا کماطلاع، پاسخ نادرست بدهد.
One-shot Prompting – استفاده از یک نمونه راهنما
در One-shot Prompting، قبل از ارائه سوال اصلی، یک نمونه مشابه به مدل داده میشود تا فرمت و نوع پاسخ را بیاموزد. مثلا:
نمونه راهنما:
“How is the weather today؟” → ترجمه به فرانسه: “Quel temps fait-il aujourd’hui؟”
سوال اصلی:
“Where is the nearest supermarket؟”
مدل با توجه به نمونه، پاسخ را در همان قالب تولید میکند:
“Où est le supermarché le plus proche ؟”
این روش باعث میشود مدل ساختار و قالب پاسخ را دقیقتر درک کند. در واقع One-shot بین حالت بدون مثال و چندین مثال، یک حد وسط ایجاد میکند و برای وظایفی که به قالببندی خاص نیاز دارند، بسیار کاربردی است.
Few-shot Prompting – یادگیری از چند نمونه
در Few-shot Prompting، به مدل چند نمونه آموزشی (مثلا ۳ تا ۵ مثال) داده میشود تا بتواند از این الگوها تعمیم دهد و به سوال جدید پاسخ دهد. مثلا:
نمونهها:
- “I love this place!” → Emotion: Positive
- “This food tastes awful.” → Emotion: Negative
- “I am not sure about this decision.” → Emotion: Neutral
سوال جدید:
“That movie was so scary, I had to cover my eyes.”
مدل با استفاده از نمونهها، احساس جمله را «ترس» یا «منفی» تشخیص میدهد. Few-shot برای وظایفی که نیاز به تشخیص زمینه و یادگیری الگو از چند نمونه دارند، بسیار موثر است.
Chain-of-Thought Prompting – استدلال مرحله به مرحله
Chain-of-Thought (CoT) Prompting تکنیکی است که مدل را تشویق میکند تا فرآیند استدلال خود را به صورت گامبهگام بیان کند. این روش در مسائل چندمرحلهای، محاسباتی یا منطقی، دقت و شفافیت پاسخ را بالا میبرد.
مثلا:
Consider the problem: ‘A store had 22 apples. They sold 15 apples today and got a new delivery of 8 apples. How many apples are there now؟’
Break down each step of your calculation.
مدل به جای پاسخ مستقیم، به این شکل فکر میکند:
Sure—let’s do it step by step.
- Start with the initial amount
- Apples at the start: 22
- Subtract the apples sold (15)
- Compute 22-15 digit by digit:
- One’s place: 2-5 → can’t, so borrow 1 ten from the 2 tens.
- Now tens are 1 (since we borrowed), ones become 12.
- Ones: 12−5=7
- Tens: 1−1=0
- Result after selling: 7 apples
- Add the new delivery (8)
- Compute 7+8:
- Ones: 7+8=15 → write 5, carry 1 ten
- Tens: 0+1=1
- Result after delivery: 15 apples
Answer: 15 apples.
این روش هم باعث شفافیت پاسخ میشود و هم احتمال خطا را کم میکند.
Self-Consistency – اطمینان از صحت پاسخ با چند مسیر حل
Self-Consistency روشی برای افزایش دقت و اطمینان از پاسخ مدل است. در این روش، مدل چند بار و با مسیرهای محاسباتی متفاوت، مسئله را حل میکند و سپس پاسخی که بیشترین تکرار را دارد انتخاب میشود.
مثال:
When I was 6, my sister was half of my age. Now I am 70, what age is my sister?
Provide three independent calculations and explanations, then determine the most consistent result.
Understanding the statement
- When you were 6, your sister was half your age.
- Half of 6 = 3.
- That means at that time, your sister was 3 years old.
- Therefore, your sister is 3 years younger than you forever.
Calculation 1 — Age difference method
- At age 6, you were 3 years older than your sister: 6−3=3.
- That difference stays constant over your lives.
- You are now 70 → sister’s age = 70−3=67.
Result: 67 years old.
Calculation 2 — Timeline method
- When you were 6, your sister was 3.
- Time passed until you reached 70: 70−6=64 years have gone by.
- Add the same 64 years to your sister’s age back then: 3+64=67.
Result: 67 years old.
Calculation 3 — Ratio trap check
Sometimes “half your age” tricks people into thinking it’s always half at any time, which isn’t true for age. Let’s test:
- If we mistakenly kept the “half” rule now: 70÷2=35 → this would not match reality because the age gap would no longer be 3.
- Since the difference is constant, this approach is invalid. Correcting it brings us back to 70−3=67.
Correct result: 67 years old.
Most consistent result across valid methods: Your sister is 67 years old.
If you like, I can also show you why people often get 35 as a wrong answer — it’s an interesting logical fallacy.
مدل سه روش محاسبه مختلف انجام میدهد و همه به پاسخ ۶۷ سال میرسند. این تطبیق بین چند مسیر، احتمال خطا را به شدت کاهش میدهد و پاسخ مطمئنتری ارائه میدهد.
ابزارهای مهم مهندسی پرامپت
برای اجرای بهتر تکنیکهای بالا، ابزارهای تخصصی زیادی وجود دارد:
- OpenAI Playground: محیطی برای آزمایش و بهینهسازی پرامپتها به صورت بلادرنگ.
- LangChain: فریمورکی برای طراحی، مدیریت و اجرای پرامپتها با استفاده از الگوهای آماده (Prompt Templates).
- Hugging Face Model Hub: کتابخانهای بزرگ از مدلهای پیشآموزشدیده برای زبانها و وظایف مختلف.
- IBM AI Classroom: پلتفرمی آموزشی برای یادگیری و تمرین مهندسی پرامپت.
این ابزارها امکان تست سریع، بهینهسازی، اشتراکگذاری و تحلیل عملکرد پرامپتها را فراهم میکنند.
LangChain و استفاده از Prompt Template
در LangChain میتوان با استفاده از Prompt Template، قالبهای آمادهای برای تولید پرامپت ساخت. این قالبها شامل دستورالعملها، چند مثال (Few-shot) و سوال اصلی هستند.
مثلا:
1 2 3 4 5 6 7 8 |
from langchain.prompts import PromptTemplate template = PromptTemplate.from_template("Tell me a {adjective} joke about {content}.") prompt = template.format(adjective="funny", content="chickens") print(prompt) |
خروجی:
“Tell me a funny joke about chickens.”
این روش باعث میشود پرامپتها استاندارد، انعطافپذیر و قابل استفاده مجدد باشند.
(Agents) در مهندسی پرامپت
Agentها در مهندسی پرامپت، سیستمهایی هستند که با ترکیب مدلهای زبانی و ابزارهای جانبی، وظایف پیچیده را انجام میدهند. نمونهها:
- عامل پرسش و پاسخ (Q&A Agent) با ذکر منابع
- عامل تولید محتوا و خلاصهسازی
- عامل تحلیل داده و هوش تجاری
- عامل چندزبانه برای ترجمه و ارتباط بینفرهنگی
این عاملها میتوانند به طور خودکار چندین پرامپت را ترکیب کنند و نتایج دقیقتری ارائه دهند.
جمعبندی
در این مقاله با تکنیکهای پیشرفته مهندسی پرامپت آشنا شدیم: Zero-shot، One-shot، Few-shot، Chain-of-Thought و Self-Consistency. همچنین ابزارهای مهمی مثل LangChain و مفهوم Agents را بررسی کردیم. مهارت در استفاده از این روشها باعث میشود بتوانید از مدلهای زبانی بزرگ حداکثر بهره را ببرید و پاسخهای دقیق، مرتبط و خلاقانه دریافت کنید.