خبرنامه هوش‌مصنوعی دومان

پرامپت و تکنیک‌های آن

🗓️ تاریخ انتشار: ۱۱ می ۲۰۲۵ ✍️ نویسنده: Pouya Esmaeili

پرامپت (Prompt) ورودی مدل‌ زبانی است که برای رسیدن به پاسخ مورد نظر نوشته می‌شود. یک پرامپت از اجزای مختلفی ساخته شده که مشخص کردن آن‌ها کاربر را برای رسیدن به پاسخ بهتر در زمان کم کمک ‌می‌کند. الزاماً تمامی این اجزا در یک پرامپت وجود ندارد. در ادامه هر کدام از این اجزا با مثالی که در تصویر زیر نمایش داده شده معرفی می‌شود. برای استفاده صحیح از مدل‌های زبانی صرفاً نوشتن پرامپت کافی نیست. بلکه باید پارامترهای مهم در پیکربندی مدل را نیز بشناسید. برای آشنایی بیشتر با این پارامترها اینجا را بخوانید.

مثال بررسی پرامپت و اجزای آن

مثال بررسی پرامپت و اجزای آن

Instruction:

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

Context:

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

Input Data:

اطلاعاتی که به عنوان ورودی نیاز است. در اینجا محتوای فایل CSV دیتای ورودی مورد نیاز مدل است.

Output Indicator:

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

اجزای پرامپت

اجزای پرامپت

در ادامه رایج‌ترین تکنیک‌های پرامپت‌نویسی معرفی می‌شود.

1. ZeroShot Prompting (General Prompting):

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

2. FewShot Prompting:

در این تکنیک کاربر چند مثال برای مدل فراهم می‌کند تا آن را برای رسیدن به الگو و پاسخ مورد نظر خود هدایت کند. تفاوت روش FewShot و ZeroShot در تعداد مثال‌هاست. روش FewShot برای سوالات پیچیده‌تر به کار می‌رود. فراهم کردن مثال‌های متعدد مدل را برای یادگیری روش پاسخگویی به یک تسک/سوال هدایت می‌کند که به آن In-context learning (ICL) گفته می‌شود.

3. Chain of Thoughts (CoT):

در این روش مدل زبانی برای تولید قدم‌های میانی در استنتاج و محاسبات هدایت می‌شود. به عبارت دیگر مدل قدم به قدم روش محاسبه خود را شرح داده و طبق آن پیش می‌رود. این تکنیک به تولید پاسخ دقیق در تسک‌های ریاضیاتی و استنتاجی کمک می‌کند. معمولاً تکنیک Chain of Thoughts به همراه FewShot Prompting به‌کار می‌رود. در تصویر زیر نتیجه روش Chain of Thoughts در مقایسه با ZeroShot Prompting مقایسه شده است. معمولاً برای هدایت مدل با تکنیک Chain of Thoughts باید حداقل یک مثال به آن ارائه شده و از آن درخواست شود مشابه مثال قدم به قدم (Step by Step) پاسخ دهد.

مقایسه Chain of Thoughts و ZeroShot

مقایسه Chain of Thoughts و ZeroShot

نسخه جامع‌تر Chain of Thoughts (CoT) روش Tree of Thoughts (ToT) نام دارد. در ToT به جای یک مسیر مستقیم از استنتاج مسیرهای پیچیده‌تری از استنتاج طی می‌شود. برای مقایسه CoT و ToT تصویر زیر را مشاهده کنید.

مقایسه ToTو CoT

مقایسه ToTو CoT

4. ReAct (Reasoning and Action):

این روش از سرویس‌ها و ابزارهای خارجی در تسک‌های پیچیده نظیر برنامه‌نویسی فیدبک می‌گیرد. روش ReAct از رفتار انسان تقلید کرده و در ایجنت‌های مبتنی بر LLM بسیار مورد استفاده قرار می‌گیرد. به عنوان مثال در نظر بگیرید می‌خواهید با LLM برای یک مساله برنامه بنویسید. بعد از تولید کد آن را اجرا کرده و خطای آن را دوباره به مدل می‌دهید و از آن می‌خواهید که این خطا را تصحیح کند. این چرخه تا رسیدن به پاسخ صحیح ادامه پیدا می‌کند. این چرخه شامل قدم‌های متوالی Reasoning و Action است. در Reasoning مدل پاسخ پیشنهادی را تولید کرده و در Action نتیجه پاسخ قبلی در ابزارها (محیط برنامه‌نویسی، موتور جستجو و یا APIهای سرویس خارجی) اجرا می‌شود. اگر کاربر به پاسخ خود رسیده باشد چرخه قطع شده و در غیر این صورت از نتایج Action برای Reasoning جدید استفاده می‌شود. این چرخه در تصویر زیر نمایش داده شده است.

فلوی ReAct

فلوی ReAct

5. Self-Consistency:

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

6. Meta Prompting:

در این روش از مدل زبانی (ترجیحاً مدل‌های قدرتمندتر) برای ساختن پرامپت یا بهینه کردن یک پرامپت استفاده می‌شود. شما می‌توانید از یک مدل زبانی بخواهید پرامپت شما را ویرایش کند یا آن را برای کاهش هزینه (براساس سایز توکن ورودی و خروجی) بهینه کند. حتی می‌توانید با فراهم جزئیات از یک مدل بخواهید که برای شما پرامپت مناسب را تولید کند.

7. System/ Role prompting:

معمولاً در مدل‌هایی زبانی تصویر کلی آن چیزی که از مدل انتظار در قالب System Prompt یا Instructions مشخص می‌شود.

مثال از فرمت خروجی: همیشه در این ساختار Json Schema پاسخ بده …

مثال از آموزش زبان انگلیسی: فرض کن معلم زبان انگلیسی هستی و در حال یاد دادن زبان به کاربر فارسی زبان هستی.

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

مطالعه بیشتر در: