زمان تخمینی مطالعه: 9 دقیقه
از زمان معرفی مدلهای زبانی بزرگ (LLM) اصطلاح “پرامپت” یا اعلان بسیار مورد استفاده قرار گرفته است. برای کاربر نهایی، این پرامپتها بخشی از رابط LLM هستند که از آن برای تعامل با مدل استفاده میکنند. به طور خلاصه،پرامپتها دستورالعملهایی به شکل متن، تصاویر یا فقط دادههای طبیعی هستند که به مدل کمک میکنند تا وظایف خاصی را انجام دهد. کیفیت و عملکرد LLM به کیفیت درخواستی که داده میشود بستگی دارد. مهندسی پرسش به کاربران اجازه میدهد تا دستورات بهینه را برای بهبود پاسخ LLM ایجاد کنند.
پرامپت چیست؟
یک اعلان با پرامپت چیزی است که کاربر به عنوان ورودی به مدل ارائه میدهد. هر بار که شخصی از ChatGPT سؤالی میپرسد یا از آن میخواهد متنی را خلاصه کند، از او میخواهد تا مطابق دستورالعملهای ارائه شده پاسخی ایجاد کند. درخواستها میتوانند به سادگی عبارتی مانند «۲+۲ چیست؟» باشند، و مدل سؤال را درک میکند و سعی میکند مانند یک انسان پاسخ دقیق بدهد. با این حال، مدلهای هوش مصنوعی مولد همیشه دستورات را به درستی درک نمیکنند و ممکن است در جهت اشتباه شروع به کار کنند. برای مقابله با این موضوع، یک پرامپت خوب باید به تفصیل بیان شود، و هیچ چیزی را برای فرضیات باقی نگذاشته و تمام اطلاعات مرتبط را ارائه دهد.
ساختارهای پرامپت در LLM های مدرن
LLM های مدرن دارای سه نوع اعلان(پرامپت) اولیه هستند که به کاربران امکان میدهد پاسخ مدل را تغییر دهند.
- پرامپت کاربر User Prompt: این مورد شامل دستورالعملهای کلی هستند که کاربر مستقیماً مدل زبان را ارائه میکند. به عنوان مثال، “نتیجه جنگ جهانی اول چه بود؟”
- پرامپت دستیار Assistant Prompt: این اعلانها برای تأثیرگذاری بر سبک، لحن، جزئیات و غیره در پاسخ LLM طراحی شدهاند. به عنوان مثال، «یک پاسخ واقعی با ارجاع به متن تاریخی ارائه کنید».
- پرامپت سیستم System Prompt: شبیه به پرامپت دستیار است، اما تمرکز قویتری بر تنظیم ساختار پاسخ با توجه به وظیفه دارد. به عنوان مثال، “جزئیات را به صورت لیست فهرست کنید.”
اعلانهای کاربر از سمت کاربر نهایی میآیند در حالی که توسعهدهندگان و محققان اعلانهای Assistant و System را برای هدایت LLM طراحی میکنند.
مهندسی پرسش Prompt Engineering چیست؟
زیبایی پردازش زبان طبیعی (NLP) در این است که یک مفهوم یا پیام یکسان را میتوان به چندین روش منتقل کرد. ما میتوانیم از عبارات مختلف، انتخاب کلمات یا ساختار جمله استفاده کنیم. همین مفهوم در مورد مدلهای زبان نیز صدق میکند: آنها زبان را مشابه انسانها میفهمند و بسته به نحوه ساخت پرامپت واکنش متفاوتی از خود نشان میدهند. مهندسی پرسش یا پرامپت به ساخت و تنظیم دقیق دستورات برای تولید نتایج دقیق در قالب مورد نظر اشاره دارد. کل فرضیه مهندسی پرسش حول توانایی شما برای توصیف آنچه از مدل زبان نیاز دارید میچرخد.
تکنیکهای مهندسی پرسش
برخی از تکنیکهای محبوب پرسش(مهندسی پرامپت) سریع عبارتند از:
- پرامپت صفر شات Zero-Shot Prompting: این ابتداییترین نوع تکنیک مهندسی پرسش است. در طول درخواست Zero-Shot (ZSP)، کاربران مستقیماً بدون مثال قبلی یک LLM را درخواست میکنند. انتظار میرود LLM بدون راهنمایی و با هر دانشی که دارد پاسخی ایجاد کند.
- پرامپت تک شات One-Shot: پرامپت One-Shot با ارائه یک جفت پرسش-پاسخ به عنوان مثال به همراه پرس و جو واقعی، ZSP را بهبود میبخشد. LLM از مثال یاد میگیرد و سپس سعی میکند پاسخی مشابه به پرس و جو واقعی مورد نظر ایجاد کند.
- پرامپت چند شات Few-Shot Prompting: پرامپت Few-Shot به جای یک بار فراخوانی مدل تک شات، آن را با چند بار فراخوانی پیاده سازی میکند. این تکنیک برای اطمینان از سازگاری مطلق بین همه پاسخها روشی مفید است.
- پرامپت زنجیره فکر Chain-of-Thought Prompting: اعلان CoT در واقع LLM را مجبور میکند تا خروجی خود را قبل از رسیدن به نتیجه به چند مرحله تجزیه کند. این نوع اعلان بیشتر برای کارهای مربوط به استدلال منطقی مانند مسائل ریاضی مفید است. اعلانهای CoT به LLM ها اجازه میدهد تا در پاسخهای خود دقیقتر باشند و لایهای از توضیحپذیری را به فرآیند اضافه کنند.
- پرامپت درخت فکر Tree-of-Thought Prompting: روش ToT مشابه CoT است، اما به جای دنبال کردن یک زنجیره خطی، مسیرهای مختلفی را ایجاد میکند. روش پرامپت ToT به مدل میگوید که مسیرهای تصمیمگیری چندگانه را ارزیابی کند. هر مسیری که به نظر نمیرسد به نتیجهای قابل قبول منجر شود رها میشود. این حالت تفکر انتقادی را در مدل القا میکند و منجر به بهبود نتایج میشود.
- پرامپت تکراری Iterative Prompting: برنامههای مدرن LLM دارای ویژگیهای محاورهای هستند، یعنی میتوانند اعلانهای بعدی را درک کنند و با در نظر گرفتن اعلانهای فعلی و قبلی پاسخهایی تولید کنند. کاربرانی که از پاسخ داده شده ناراضی هستند، میتوانند از LLM جزئیات بیشتری را برای اصلاح خروجی خود بخواهند. به این مفهوم اعلان تکراری میگویند. با هر تکرار، LLM میتواند آخرین پاسخ خود را بسته به درخواست جدید کاربر تغییر دهد.
- پرامپت منفی Negative Prompting: در حالی که بیشتر تکنیکهای پرامپت الزامات کاربر را به LLM منتقل میکنند، پرامپت منفی مشخص میکند که کاربر چه چیزی را نمیخواهد. این موضوع در مدلهای متن به تصویر محبوبتر است، جایی که کاربران میتوانند عناصر خاصی را که میخواهند مدل نادیده بگیرد، مشخص کنند. با این حال، میتواند در LLM ها نیز استفاده شود، به عنوان مثال، برای مشخص کردن اینکه LLM از هیچ انقباضی در پاسخ خود استفاده نمیکند.
مزایای مهندسی پرسش
در ادامه دلایلی چند در برای این که چرا مهندسی پرسش برای استفاده از هوش مصنوعی مولد ضروری است.
- ارتباط و دقت پاسخ بهتر: مهندسی پرسش به کاربران اجازه میدهد تا الزامات مشخص را به مدل منتقل کنند. مدل بهتر درک میکند که چه چیزی در خروجی مورد نیاز است و یک پاسخ دقیق ایجاد میکند. بهینهسازی پاسخهای مدل همچنین تضمین میکند که آنها با دستورالعملهای نظارتی مطابقت دارند و آن را قابل اعتمادتر میکند.
- فرآیند فکری بهبودیافته: برخی از اعلانهایی که با دقت طراحی شدهاند، مدل را مجبور میکنند تا زنجیرهای از فکر را دنبال کند که منجر به پاسخ منطقیتر میشود. علاوه بر این، تکنیکهایی مانند پرامپت چند شات به مدل اجازه میدهد تا از مثال کاربر یاد بگیرد. به این ترتیب، مدل خروجیهایی را در ساختار مورد نظر تولید میکند و برای همه مکالمات آینده ثابت میماند.
- توضیحپذیری بهبودیافته: استفاده از تکنیکهایی مانند تحریک CoT یا ToT مدل را مجبور میکند تا فرآیند فکری خود را توضیح دهد، یعنی اینکه چگونه به یک نتیجه معین رسیده است. توضیح به تعیین دقیق بودن پاسخ کمک میکند و در مورد قابلیت اطمینان مدل در استدلال منطقی صحبت میکند.
- پاسخهای شخصیسازی شده: اعلانهای سیستمی که به خوبی ساخته شدهاند، تضمین میکنند که تمام پاسخهای مدل به روش خاصی ساختار یافتهاند. این به کاربران اجازه میدهد تا چتباتهای شخصیسازیشده بسازند تا به پرسشهای خاص پاسخ دهند و در قالبهای تنظیم شده پاسخ دهند. به عنوان مثال، برای یک ربات آموزشی، اعلان سیستم میتواند از مدل بخواهد که مانند یک استاد کالج پاسخ دهد. به این ترتیب، تمام پاسخهای مدلها بسیار فنی خواهند بود و از زبانی استفاده میکنند که دانشجویان میتوانند آن را درک کنند.
- صرفه جویی در زمان: داشتن پاسخ های دقیق و مرتبط به این معنی است که توسعه دهندگان باید زمان کمتری را برای اشکالزدایی مدل صرف کنند. از آنجایی که دستورالعملهای مدل از پیش تعریف شدهاند، آنها باید زمان کمتری را صرف تکرارهای مختلف اعلانات کنند تا پاسخ مورد نظر را دریافت کنند.
مهندسی پرسش در بینایی کامپیوتر
تاکنون، مهندسی پرسش را از نظر LLM تنها به این دلیل مطرح کردهایم که بیشتر با مدلهای زبانی مرتبط هستند. با این حال، مهندسی پرسش برای مدلهای مدرن تبدیل متن به تصویر مانند DALL.E 3 و Stable Diffusion نیز اعمال میشود. مدل متن به تصویر یک پیام متنی را میپذیرد که تصویر مورد نیاز را توصیف میکند. مدل میتواند نیازهای مختلف را از طریق اعلان درک کند و به همین ترتیب یک پاسخ بصری ایجاد کند. در این سناریو، مهندسی سریع به مدل کمک میکند تا نوع بصری مورد نیاز کاربر را درک کند.
میتوانیم از تکنیکهای مهندسی پرامپت برای بهبود نتایج تصویر تولید شده استفاده کنیم. تکنیکهایی مانند پرامپت تکراری و منفی در بهینهسازی نتایج مدلهای متن به تصویر رایج هستند. برخی از مدلها، مانند Midjourney، پارامترهای اضافی را برای تعیین اعلانهای منفی ارائه میدهند. کاربران میتوانند پارامتر «–no» را به فرمان اضافه کنند و سپس عناصری را که باید نادیده گرفته شوند، اضافه کنند.